struct scope {
- struct usb_dev_handle *usbdev;
+ struct {
+ struct usb_dev_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 {
+ /* TODO */
+ } measure;
+
+ struct {
+ char type[32];
+ char mode[32];
+ int averages;
+ double srate_chan1;
+ double srate_chan2;
+ double srate_digital;
+ } acquire;
+
+ struct {
+ /* TODO */
+ } display;
+
+ struct {
+ /* TODO */
+ } channel;
+
+ struct {
+ char mode[32];
+ double offset;
+ double delayed_offset;
+ double scale;
+ char format[32];
+ } timebase;
+
+ struct {
+ /* TODO */
+ } trigger;
+
+ struct {
+ /* TODO */
+ } la;
+
+ struct {
+ /* TODO */
+ } math;
+ } status;
char idn[128];
};
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);
+int update_scope_status(struct scope *sc);