X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhwdriver.c;h=2850946ffaf4e8392737f9222b9fa2b6611715a3;hb=c9cfcd25917c4ee5767fa097d4fa8fb8a4888a6d;hp=f5b5b2574a9f9115863c9f0aeed70ed23e237bdf;hpb=3d70d77709b023499b09e7d0f0e3c20f3c58f140;p=libsigrok.git diff --git a/src/hwdriver.c b/src/hwdriver.c index f5b5b257..2850946f 100644 --- a/src/hwdriver.c +++ b/src/hwdriver.c @@ -63,6 +63,7 @@ static struct sr_key_info sr_key_info_config[] = { {SR_CONF_SCALE, SR_T_STRING, NULL, "Scale", NULL}, {SR_CONF_SIGNAL_GENERATOR, SR_T_STRING, NULL, "Signal generator", NULL}, {SR_CONF_POWERMETER, SR_T_STRING, NULL, "Power meter", NULL}, + {SR_CONF_MULTIPLEXER, SR_T_STRING, NULL, "Multiplexer", NULL}, /* Driver scan options */ {SR_CONF_CONN, SR_T_STRING, "conn", @@ -71,6 +72,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", @@ -181,6 +184,34 @@ static struct sr_key_info sr_key_info_config[] = { "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}, + {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_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_RANGE, SR_T_STRING, "range", + "Range", NULL}, + {SR_CONF_DIGITS, SR_T_STRING, "digits", + "Digits", NULL}, + {SR_CONF_PHASE, SR_T_FLOAT, "phase", + "Phase", NULL}, + {SR_CONF_DUTY_CYCLE, SR_T_FLOAT, "output_duty_cycle", + "Duty Cycle", NULL}, + {SR_CONF_POWER, SR_T_FLOAT, "power", + "Power", NULL}, + {SR_CONF_POWER_TARGET, SR_T_FLOAT, "power_target", + "Power Target", NULL}, + {SR_CONF_RESISTANCE_TARGET, SR_T_FLOAT, "resistance_target", + "Resistance Target", NULL}, /* Special stuff */ {SR_CONF_SESSIONFILE, SR_T_STRING, "sessionfile", @@ -252,6 +283,8 @@ static struct sr_key_info sr_key_info_mq[] = { {SR_MQ_APPARENT_POWER, 0, "apparent_power", "Apparent power", NULL}, {SR_MQ_MASS, 0, "mass", "Mass", NULL}, {SR_MQ_HARMONIC_RATIO, 0, "harmonic_ratio", "Harmonic ratio", NULL}, + {SR_MQ_ENERGY, 0, "energy", "Energy", NULL}, + {SR_MQ_ELECTRIC_CHARGE, 0, "electric_charge", "Electric charge", NULL}, ALL_ZERO }; @@ -567,6 +600,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) @@ -635,7 +674,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; @@ -657,7 +697,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;