]> sigrok.org Git - libsigrok.git/blobdiff - hardware/kecheng-kc-330b/protocol.h
demo: Code cleanup.
[libsigrok.git] / hardware / kecheng-kc-330b / protocol.h
index 8541a68be234820ba6bf2530b90c9c69971e3c3d..eabda85b8554c476b530af268226c0920513fd6d 100644 (file)
@@ -38,7 +38,7 @@
 #define EP_OUT 2
 
 /* 500ms */
-#define DEFAULT_SAMPLE_INTERVAL 1
+#define DEFAULT_SAMPLE_INTERVAL 0
 #define DEFAULT_ALARM_LOW 40
 #define DEFAULT_ALARM_HIGH 120
 #define DEFAULT_WEIGHT_TIME SR_MQFLAG_SPL_TIME_WEIGHT_F
 /* Live */
 #define DEFAULT_DATA_SOURCE DATA_SOURCE_LIVE
 
+enum {
+       LIVE_SPL_IDLE,
+       LIVE_SPL_WAIT,
+       LOG_DATA_IDLE,
+       LOG_DATA_WAIT,
+};
 
 enum {
        CMD_CONFIGURE = 0x01,
        CMD_IDENTIFY = 0x02,
        CMD_SET_DATE_TIME = 0x03,
+       CMD_GET_STATUS = 0x04,
+       CMD_GET_LOG_INFO = 0x05,
+       CMD_GET_LOG_DATA = 0x07,
        CMD_GET_LIVE_SPL = 0x08,
 };
 
@@ -59,10 +68,13 @@ enum {
        DATA_SOURCE_MEMORY,
 };
 
+enum {
+       DEVICE_ACTIVE,
+       DEVICE_INACTIVE,
+};
+
 /** Private, per-device-instance driver context. */
 struct dev_context {
-       /* Model-specific information */
-
        /* Acquisition settings */
        uint64_t limit_samples;
        int sample_interval;
@@ -72,18 +84,28 @@ struct dev_context {
        int data_source;
 
        /* Operational state */
+       int state;
+       gboolean config_dirty;
        uint64_t num_samples;
+       uint64_t stored_samples;
        void *cb_data;
-       int usbfd[10];
+       struct libusb_transfer *xfer;
+       unsigned char buf[128];
 
        /* Temporary state across callbacks */
+       gint64 last_live_request;
 
 };
 
 SR_PRIV int kecheng_kc_330b_handle_events(int fd, int revents, void *cb_data);
+SR_PRIV void kecheng_kc_330b_receive_transfer(struct libusb_transfer *transfer);
 SR_PRIV int kecheng_kc_330b_configure(const struct sr_dev_inst *sdi);
 SR_PRIV int kecheng_kc_330b_set_date_time(struct sr_dev_inst *sdi);
 SR_PRIV int kecheng_kc_330b_recording_get(const struct sr_dev_inst *sdi,
                gboolean *tmp);
+SR_PRIV int kecheng_kc_330b_status_get(const struct sr_dev_inst *sdi,
+               int *status);
+SR_PRIV int kecheng_kc_330b_log_info_get(const struct sr_dev_inst *sdi,
+               unsigned char *buf);
 
 #endif