]> sigrok.org Git - libsigrok.git/commitdiff
hwdriver: introduce SR_CONF_FORCE_DETECT config key (scan option)
authorGerhard Sittig <redacted>
Sat, 1 Aug 2020 15:12:50 +0000 (17:12 +0200)
committerGerhard Sittig <redacted>
Sat, 22 Aug 2020 07:10:29 +0000 (09:10 +0200)
Often previously unsupported models might be covered by existing code,
but would not match against a builtin list of known devices.

Introduce a config key which provides a scan option for users to force
the use of a driver with an unsupported device. This increases the
probability of requests for support of an additional model which are
associated with a successful use of that very device, and eliminates
the necessity to build from source for the trivial cases.

It's up to individual drivers whether they support forced detection,
and how they interpret the value of the scan option.

include/libsigrok/libsigrok.h
src/hwdriver.c

index 2779490d9db0134d322e29f3eabfe5d63daf889c..070107eeef294b6d5463bb9c94ae9572ca2f31c4 100644 (file)
@@ -753,6 +753,16 @@ enum sr_configkey {
         */
        SR_CONF_MODBUSADDR,
 
+       /**
+        * User specified forced driver attachment to unknown devices.
+        *
+        * By design the interpretation of the string depends on the
+        * specific driver. It typically would be either a replacement
+        * '*IDN?' response value, or a sub-driver name. But could also
+        * be anything else and totally arbitrary.
+        */
+       SR_CONF_FORCE_DETECT,
+
        /* Update sr_key_info_config[] (hwdriver.c) upon changes! */
 
        /*--- Device (or channel group) configuration -----------------------*/
index 1016507e12eb38951749e4545ebb2eb2b330531c..03d268e1397a39f382faeb86935d5e68fb74a046 100644 (file)
@@ -71,6 +71,8 @@ static struct sr_key_info sr_key_info_config[] = {
                "Serial communication", NULL},
        {SR_CONF_MODBUSADDR, SR_T_UINT64, "modbusaddr",
                "Modbus slave address", NULL},
+       {SR_CONF_FORCE_DETECT, SR_T_STRING, "force_detect",
+               "Forced detection", NULL},
 
        /* Device (or channel group) configuration */
        {SR_CONF_SAMPLERATE, SR_T_UINT64, "samplerate",