X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fbrymen-dmm%2Fprotocol.h;h=7c9aaae6cd0710b8c3f3d41823eeb159243eeb5a;hb=a4e435eb49c1fa30c31d5851b404001324cafe33;hp=7c981cc13ee492bf0bd50f96f174a78adbf717b5;hpb=601fb67cc4977d7e04e20916bde52147b35df970;p=libsigrok.git diff --git a/hardware/brymen-dmm/protocol.h b/hardware/brymen-dmm/protocol.h index 7c981cc1..7c9aaae6 100644 --- a/hardware/brymen-dmm/protocol.h +++ b/hardware/brymen-dmm/protocol.h @@ -21,18 +21,14 @@ #define LIBSIGROK_HARDWARE_BRYMEN_DMM_PROTOCOL_H #include +#include +#include +#include +#include #include "libsigrok.h" #include "libsigrok-internal.h" -/* Message logging helpers with driver-specific prefix string. */ -#define DRIVER_LOG_DOMAIN "brymen-dmm: " -#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) - +#define LOG_PREFIX "brymen-dmm" #define DMM_BUFSIZE 256 @@ -59,8 +55,6 @@ struct dev_context { /** Start time of acquisition session */ int64_t starttime; - struct sr_serial_dev_inst *serial; - uint8_t buf[DMM_BUFSIZE]; int bufoffset; int buflen; @@ -68,10 +62,10 @@ struct dev_context { }; /** - * Callback that assesses the size and status of the incoming packet + * Callback that assesses the size and status of the incoming packet. * * @return PACKET_HEADER_OK - This is a proper packet header. - * PACKET_NEED_MORE_DATA The buffer does not contain the entire header + * PACKET_NEED_MORE_DATA The buffer does not contain the entire header. * PACKET_INVALID_HEADER Not a valid start of packet. */ typedef int (*packet_length_t)(const uint8_t *buf, int *len); @@ -82,9 +76,13 @@ SR_PRIV int brymen_packet_request(struct sr_serial_dev_inst *serial); SR_PRIV int brymen_packet_length(const uint8_t *buf, int *len); SR_PRIV gboolean brymen_packet_is_valid(const uint8_t *buf); +SR_PRIV int brymen_parse(const uint8_t *buf, float *floatval, + struct sr_datafeed_analog *analog, void *info); + SR_PRIV int brymen_stream_detect(struct sr_serial_dev_inst *serial, uint8_t *buf, size_t *buflen, packet_length_t get_packet_size, - packet_valid_t is_valid, + packet_valid_callback is_valid, uint64_t timeout_ms, int baudrate); + #endif