]> git.zerfleddert.de Git - rigol/blobdiff - scope.h
update to libusb-1.0
[rigol] / scope.h
diff --git a/scope.h b/scope.h
index 119c1508212a7f04127b82843ad02a43e3f48bef..6c4f9549621cdf07219df1a24291629fd5c9bc89 100644 (file)
--- a/scope.h
+++ b/scope.h
@@ -1,5 +1,124 @@
+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 usb_dev_handle *usbdev;
+       struct {
+               struct libusb_device_handle *dev;
+               int ep_bulk_out;
+               int ep_bulk_in;
+               unsigned int wMaxPacketSize_in;
+               unsigned char bTag;
+               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];
 };
 
@@ -8,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);
Impressum, Datenschutz