From: Gerhard Sittig Date: Sun, 9 Jun 2019 08:34:51 +0000 (+0200) Subject: serial-dmm: add support for default connections (USB cables) X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=0527cc3ad7f47830d9e31e231a1b0bb4010c849d;p=libsigrok.git serial-dmm: add support for default connections (USB cables) Some meters which are supported by the serial-dmm driver don't strictly require the user's COM port specification. When a known (usually bundled, or even builtin) cable type is used, we can provide a default conn= spec and thus improve usability. Prepare the DMM_CONN() macro, accept user overrides. --- diff --git a/src/hardware/serial-dmm/api.c b/src/hardware/serial-dmm/api.c index 7a7be0c2..1f724c71 100644 --- a/src/hardware/serial-dmm/api.c +++ b/src/hardware/serial-dmm/api.c @@ -61,7 +61,7 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) dmm = (struct dmm_info *)di; - conn = NULL; + conn = dmm->conn; serialcomm = dmm->serialcomm; for (l = options; l; l = l->next) { src = l->data; @@ -194,8 +194,9 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) return SR_OK; } -#define DMM(ID, CHIPSET, VENDOR, MODEL, SERIALCOMM, PACKETSIZE, TIMEOUT, \ - DELAY, REQUEST, VALID, PARSE, DETAILS) \ +#define DMM_CONN(ID, CHIPSET, VENDOR, MODEL, \ + CONN, SERIALCOMM, PACKETSIZE, TIMEOUT, DELAY, \ + REQUEST, VALID, PARSE, DETAILS) \ &((struct dmm_info) { \ { \ .name = ID, \ @@ -215,10 +216,15 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) .dev_acquisition_stop = std_serial_dev_acquisition_stop, \ .context = NULL, \ }, \ - VENDOR, MODEL, SERIALCOMM, PACKETSIZE, TIMEOUT, DELAY, \ + VENDOR, MODEL, CONN, SERIALCOMM, PACKETSIZE, TIMEOUT, DELAY, \ REQUEST, 1, NULL, VALID, PARSE, DETAILS, sizeof(struct CHIPSET##_info) \ }).di +#define DMM(ID, CHIPSET, VENDOR, MODEL, SERIALCOMM, PACKETSIZE, TIMEOUT, \ + DELAY, REQUEST, VALID, PARSE, DETAILS) \ + DMM_CONN(ID, CHIPSET, VENDOR, MODEL, NULL, SERIALCOMM, PACKETSIZE, \ + TIMEOUT, DELAY, REQUEST, VALID, PARSE, DETAILS) + SR_REGISTER_DEV_DRIVER_LIST(serial_dmm_drivers, /* * The items are sorted by chipset first and then model name. diff --git a/src/hardware/serial-dmm/protocol.h b/src/hardware/serial-dmm/protocol.h index 27533b6e..0713f5cf 100644 --- a/src/hardware/serial-dmm/protocol.h +++ b/src/hardware/serial-dmm/protocol.h @@ -29,6 +29,8 @@ struct dmm_info { const char *vendor; /** Model. */ const char *device; + /** conn string. */ + const char *conn; /** serialcomm string. */ const char *serialcomm; /** Packet size in bytes. */