]> sigrok.org Git - libsigrok.git/blobdiff - src/hwdriver.c
hameg-hmo: Add SR_CONF_HIGH_RESOLUTION and SR_CONF_PEAK_DETECTION.
[libsigrok.git] / src / hwdriver.c
index c81a87a169d0f9e8ef52a1abba87b51c4cb5d63a..342abeb9ef780f4d7b3040de8555dc03cc5a1478 100644 (file)
@@ -81,14 +81,20 @@ static struct sr_key_info sr_key_info_config[] = {
                "Pattern", NULL},
        {SR_CONF_RLE, SR_T_BOOL, "rle",
                "Run length encoding", NULL},
+       {SR_CONF_TRIGGER_SOURCE, SR_T_STRING, "triggersource",
+               "Trigger source", NULL},
        {SR_CONF_TRIGGER_SLOPE, SR_T_STRING, "triggerslope",
                "Trigger slope", NULL},
+       {SR_CONF_TRIGGER_PATTERN, SR_T_STRING, "triggerpattern",
+               "Trigger pattern", NULL},
+       {SR_CONF_HIGH_RESOLUTION, SR_T_BOOL, "highresolution",
+               "High resolution", NULL},
+       {SR_CONF_PEAK_DETECTION, SR_T_BOOL, "peakdetection",
+               "Peak detection", NULL},
        {SR_CONF_AVERAGING, SR_T_BOOL, "averaging",
                "Averaging", NULL},
        {SR_CONF_AVG_SAMPLES, SR_T_UINT64, "avg_samples",
                "Number of samples to average over", NULL},
-       {SR_CONF_TRIGGER_SOURCE, SR_T_STRING, "triggersource",
-               "Trigger source", NULL},
        {SR_CONF_HORIZ_TRIGGERPOS, SR_T_FLOAT, "horiz_triggerpos",
                "Horizontal trigger position", NULL},
        {SR_CONF_BUFFERSIZE, SR_T_UINT64, "buffersize",
@@ -121,6 +127,10 @@ static struct sr_key_info sr_key_info_config[] = {
                "Hold min", NULL},
        {SR_CONF_VOLTAGE_THRESHOLD, SR_T_DOUBLE_RANGE, "voltage_threshold",
                "Voltage threshold", NULL },
+       {SR_CONF_LOGIC_THRESHOLD, SR_T_STRING, "logic_threshold",
+               "Logic threshold (predefined)", NULL},
+       {SR_CONF_LOGIC_THRESHOLD_CUSTOM, SR_T_FLOAT, "logic_threshold_custom",
+               "Logic threshold (custom)", NULL},
        {SR_CONF_EXTERNAL_CLOCK, SR_T_BOOL, "external_clock",
                "External clock mode", NULL},
        {SR_CONF_SWAP, SR_T_BOOL, "swap",
@@ -177,8 +187,14 @@ static struct sr_key_info sr_key_info_config[] = {
                "Under-voltage condition", NULL},
        {SR_CONF_UNDER_VOLTAGE_CONDITION_ACTIVE, SR_T_BOOL, "uvc_active",
                "Under-voltage condition active", NULL},
+       {SR_CONF_UNDER_VOLTAGE_CONDITION_THRESHOLD, SR_T_FLOAT, "uvc_threshold",
+               "Under-voltage condition threshold", NULL},
        {SR_CONF_TRIGGER_LEVEL, SR_T_FLOAT, "triggerlevel",
                "Trigger level", NULL},
+       {SR_CONF_EXTERNAL_CLOCK_SOURCE, SR_T_STRING, "external_clock_source",
+               "External clock source", NULL},
+       {SR_CONF_OFFSET, SR_T_FLOAT, "offset",
+               "Offset", NULL},
 
        /* Special stuff */
        {SR_CONF_SESSIONFILE, SR_T_STRING, "sessionfile",
@@ -565,6 +581,12 @@ SR_PRIV void sr_hw_cleanup_all(const struct sr_context *ctx)
  *
  * A floating reference can be passed in for data.
  *
+ * @param key The config key to use.
+ * @param data The GVariant data to use.
+ *
+ * @return The newly allocated struct sr_config. This function is assumed
+ *         to never fail.
+ *
  * @private
  */
 SR_PRIV struct sr_config *sr_config_new(uint32_t key, GVariant *data)
@@ -633,7 +655,8 @@ SR_PRIV int sr_dev_acquisition_stop(struct sr_dev_inst *sdi)
 }
 
 static void log_key(const struct sr_dev_inst *sdi,
-       const struct sr_channel_group *cg, uint32_t key, int op, GVariant *data)
+       const struct sr_channel_group *cg, uint32_t key, unsigned int op,
+       GVariant *data)
 {
        const char *opstr;
        const struct sr_key_info *srci;
@@ -655,7 +678,7 @@ static void log_key(const struct sr_dev_inst *sdi,
 
 static int check_key(const struct sr_dev_driver *driver,
                const struct sr_dev_inst *sdi, const struct sr_channel_group *cg,
-               uint32_t key, int op, GVariant *data)
+               uint32_t key, unsigned int op, GVariant *data)
 {
        const struct sr_key_info *srci;
        gsize num_opts, i;