X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fmic-985xx%2Fprotocol.h;h=5b2efb3a890259aa22fa8e6c678ce24fe82470dc;hb=b07b42f319488d821d23c3310133872df70987c5;hp=e854b1d49c7ced82601e81c91d128f8782a5d940;hpb=0cd8e23140612703406a57316bb0a507fb8f1994;p=libsigrok.git diff --git a/hardware/mic-985xx/protocol.h b/hardware/mic-985xx/protocol.h index e854b1d4..5b2efb3a 100644 --- a/hardware/mic-985xx/protocol.h +++ b/hardware/mic-985xx/protocol.h @@ -28,21 +28,22 @@ #include "libsigrok.h" #include "libsigrok-internal.h" -/* Message logging helpers with driver-specific prefix string. */ -#define DRIVER_LOG_DOMAIN "mic-985xx: " -#define sr_log(l, s, args...) sr_log(l, DRIVER_LOG_DOMAIN s, ## args) -#define sr_spew(s, args...) sr_spew(DRIVER_LOG_DOMAIN s, ## args) -#define sr_dbg(s, args...) sr_dbg(DRIVER_LOG_DOMAIN s, ## args) -#define sr_info(s, args...) sr_info(DRIVER_LOG_DOMAIN s, ## args) -#define sr_warn(s, args...) sr_warn(DRIVER_LOG_DOMAIN s, ## args) -#define sr_err(s, args...) sr_err(DRIVER_LOG_DOMAIN s, ## args) +/* Message logging helpers with subsystem-specific prefix string. */ +#define LOG_PREFIX "mic-985xx: " +#define sr_log(l, s, args...) sr_log(l, LOG_PREFIX s, ## args) +#define sr_spew(s, args...) sr_spew(LOG_PREFIX s, ## args) +#define sr_dbg(s, args...) sr_dbg(LOG_PREFIX s, ## args) +#define sr_info(s, args...) sr_info(LOG_PREFIX s, ## args) +#define sr_warn(s, args...) sr_warn(LOG_PREFIX s, ## args) +#define sr_err(s, args...) sr_err(LOG_PREFIX s, ## args) /* Note: When adding entries here, don't forget to update MIC_DEV_COUNT. */ enum { + MIC_98581, MIC_98583, }; -#define MIC_DEV_COUNT 1 +#define MIC_DEV_COUNT 2 struct mic_dev_info { char *vendor; @@ -51,6 +52,8 @@ struct mic_dev_info { uint32_t max_sample_points; gboolean has_temperature; gboolean has_humidity; + uint8_t packet_size; + gboolean (*packet_valid)(const uint8_t *); struct sr_dev_driver *di; int (*receive_data)(int, int, void *); }; @@ -75,13 +78,15 @@ struct dev_context { int64_t starttime; - struct sr_serial_dev_inst *serial; - uint8_t buf[SERIAL_BUFSIZE]; int bufoffset; int buflen; }; +SR_PRIV gboolean packet_valid_temp(const uint8_t *buf); +SR_PRIV gboolean packet_valid_temp_hum(const uint8_t *buf); + +SR_PRIV int receive_data_MIC_98581(int fd, int revents, void *cb_data); SR_PRIV int receive_data_MIC_98583(int fd, int revents, void *cb_data); SR_PRIV int mic_cmd_get_device_info(struct sr_serial_dev_inst *serial);