X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Flascar-el-usb%2Fprotocol.h;h=eb3b5536a00875b786e259e5097347f6bb95cee2;hb=a7be14ada20d594c5338613a73788e8f89c0d9d5;hp=80d23824378955fe9a62a6f4d96627e252e75cb7;hpb=6aa1eb4ea33e1aeeef772cd234f140464eea3fe2;p=libsigrok.git diff --git a/hardware/lascar-el-usb/protocol.h b/hardware/lascar-el-usb/protocol.h index 80d23824..eb3b5536 100644 --- a/hardware/lascar-el-usb/protocol.h +++ b/hardware/lascar-el-usb/protocol.h @@ -39,6 +39,7 @@ #define LASCAR_EP_OUT 2 /* Max 100ms for a device to positively identify. */ #define SCAN_TIMEOUT 100000 +#define MAX_CONFIGBLOCK_SIZE 256 /** Private, per-device-instance driver context. */ struct dev_context { @@ -47,18 +48,20 @@ struct dev_context { const struct elusb_profile *profile; int usbfd[10]; /* Generic EL-USB */ - unsigned char *config; + unsigned char config[MAX_CONFIGBLOCK_SIZE]; unsigned int log_size; unsigned int rcvd_bytes; unsigned int sample_size; unsigned int logged_samples; unsigned int rcvd_samples; - unsigned int limit_samples; + uint64_t limit_samples; /* Model-specific */ - /* EL-USB-CO: these are something like calibration values fixed per - * device, used to convert the sample values to CO ppm. */ + /* EL-USB-CO: these are something like scaling and calibration values + * fixed per device, used to convert the sample values to CO ppm. */ float co_high; float co_low; + /* Temperature units as stored in the device config. */ + int temp_unit; }; enum { @@ -73,9 +76,13 @@ struct elusb_profile { int logformat; }; -SR_PRIV unsigned char *lascar_get_config(libusb_device_handle *dev_hdl); +SR_PRIV int lascar_get_config(libusb_device_handle *dev_hdl, + unsigned char *configblock, int *configlen); SR_PRIV int lascar_el_usb_handle_events(int fd, int revents, void *cb_data); SR_PRIV void lascar_el_usb_receive_transfer(struct libusb_transfer *transfer); +SR_PRIV int lascar_start_logging(const struct sr_dev_inst *sdi); +SR_PRIV int lascar_stop_logging(const struct sr_dev_inst *sdi); +SR_PRIV int lascar_is_logging(const struct sr_dev_inst *sdi); SR_PRIV int hw_dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data); #endif