X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/rigol/blobdiff_plain/90e416c4df00269ab86d349ff677d0a2c0b0bd40..f416d675a06903504d86cab1e7b1065b98ab5705:/scope.h diff --git a/scope.h b/scope.h index 9eafd91..6c4f954 100644 --- a/scope.h +++ b/scope.h @@ -1,6 +1,46 @@ +struct measure_s { + double vpp; + double vmax; + double vmin; + double vamplitude; + double vtop; + double vbase; + double vaverage; + double vrms; + + double overshoot; + double preshoot; + + double frequency; + double risetime; + double falltime; + + double period; + double pwidth; + double nwidth; + double pdutycycle; + double ndutycycle; + + double pdelay; + double ndelay; +}; + +struct channel_s { + int bwlimit_enabled; + char coupling[32]; + int displayed; + int inverted; + double offset; + double probe; + double scale; + int filter_enabled; + int memory_depth; + char vernier[32]; +}; + struct scope { struct { - struct usb_dev_handle *dev; + struct libusb_device_handle *dev; int ep_bulk_out; int ep_bulk_in; unsigned int wMaxPacketSize_in; @@ -8,6 +48,77 @@ struct scope { int brokenRigol; struct usbtmc_capabilities *cap; } usb; + struct { + struct { + char lang[32]; + int counter_enabled; + int beep_enabled; + } system; + + struct { + int key_lock; + } keyboard; + + struct { + struct measure_s ch1; + struct measure_s ch2; + + int total; + char source[32]; + } measure; + + struct { + char type[32]; + char mode[32]; + int averages; + double srate_ch1; + double srate_ch2; + double srate_digital; + } acquire; + + struct { + char type[32]; + char grid[32]; + int persist; + char mnudisplay[32]; + int mnustatus; + char screen[32]; + int brightness; + int intensity; + } display; + + struct { + struct channel_s ch1; + struct channel_s ch2; + } channel; + + struct { + char mode[32]; + double offset; + double delayed_offset; + double scale; + char format[32]; + } timebase; + + struct { + char mode[32]; + + /* TODO */ + } trigger; + + struct { + /* TODO */ + } la; + + struct { + int displayed; + } math; + + struct { + int displayed; + } fft; + } status; + char idn[128]; }; @@ -16,4 +127,12 @@ struct scope* initscope(void); void closescope(struct scope* sc); void claimscope(struct scope* sc); void releasescope(struct scope* sc); +void resetscope(struct scope* sc); char *scope_idn(struct scope *sc); +char *scope_get_string(struct scope *sc, char *cmd, int maxlen); +int scope_get_truth_value(struct scope *sc, char *cmd); +int scope_get_int(struct scope *sc, char *cmd); +double scope_get_double(struct scope *sc, char*cmd); +void update_scope_measurements(struct scope *sc); +int update_scope_status(struct scope *sc); +char *scope_get_data(struct scope *sc, char *source, int *len);