X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Frdtech-tc%2Fprotocol.h;h=e495375ca673dc7b46bef478fbec0c964e237be4;hb=HEAD;hp=fb0259067858a7a9600a07d254713306b3da88f5;hpb=e2bcf2e3b4190877c64ffdbb6a99d64a063cc402;p=libsigrok.git diff --git a/src/hardware/rdtech-tc/protocol.h b/src/hardware/rdtech-tc/protocol.h index fb025906..e495375c 100644 --- a/src/hardware/rdtech-tc/protocol.h +++ b/src/hardware/rdtech-tc/protocol.h @@ -25,7 +25,16 @@ #define LOG_PREFIX "rdtech-tc" -#define RDTECH_TC_BUFSIZE 256 +/* + * Keep request and response buffers of sufficient size. The maximum + * request text currently involved is "bgetva\r\n" which translates + * to 9 bytes. The poll response (a measurement, the largest amount + * of data that is currently received) is 192 bytes in length. Add + * some slack for alignment, and for in-flight messages or adjacent + * data during synchronization to the data stream. + */ +#define RDTECH_TC_MAXREQLEN 12 +#define RDTECH_TC_RSPBUFSIZE 256 struct rdtech_dev_info { char *model_name; @@ -43,14 +52,17 @@ struct rdtech_tc_channel_desc { }; struct dev_context { + gboolean is_bluetooth; + char req_text[RDTECH_TC_MAXREQLEN]; struct rdtech_dev_info dev_info; const struct rdtech_tc_channel_desc *channels; size_t channel_count; struct feed_queue_analog **feeds; struct sr_sw_limits limits; - uint8_t buf[RDTECH_TC_BUFSIZE]; + uint8_t buf[RDTECH_TC_RSPBUFSIZE]; size_t rdlen; int64_t cmd_sent_at; + size_t rx_after_tx; }; SR_PRIV int rdtech_tc_probe(struct sr_serial_dev_inst *serial, struct dev_context *devc);