SR_CONF_SERIALCOMM,
};
-static const uint32_t devopts[] = {
+static const uint32_t drvopts[] = {
SR_CONF_MULTIMETER,
+};
+
+static const uint32_t devopts[] = {
SR_CONF_CONTINUOUS,
SR_CONF_LIMIT_SAMPLES | SR_CONF_SET,
SR_CONF_LIMIT_MSEC | SR_CONF_SET,
int dropped, ret;
size_t len;
uint8_t buf[128];
+ size_t ch_idx;
+ char ch_name[12];
dmm = (struct dmm_info *)di;
sdi->inst_type = SR_INST_SERIAL;
sdi->conn = serial;
sdi->priv = devc;
- sr_channel_new(sdi, 0, SR_CHANNEL_ANALOG, TRUE, "P1");
+ dmm->channel_count = 1;
+ if (dmm->packet_parse == sr_metex14_4packets_parse)
+ dmm->channel_count = 4;
+ for (ch_idx = 0; ch_idx < dmm->channel_count; ch_idx++) {
+ snprintf(ch_name, sizeof(ch_name), "P%zu", ch_idx);
+ sr_channel_new(sdi, ch_idx, SR_CHANNEL_ANALOG, TRUE, ch_name);
+ }
devices = g_slist_append(devices, sdi);
scan_cleanup:
return std_scan_complete(di, devices);
}
-static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sdi,
- const struct sr_channel_group *cg)
+static int config_set(uint32_t key, GVariant *data,
+ const struct sr_dev_inst *sdi, const struct sr_channel_group *cg)
{
struct dev_context *devc;
return sr_sw_limits_config_set(&devc->limits, key, data);
}
-static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi,
- const struct sr_channel_group *cg)
+static int config_list(uint32_t key, GVariant **data,
+ const struct sr_dev_inst *sdi, const struct sr_channel_group *cg)
{
- return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, NULL, devopts);
+ return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, drvopts, devopts);
}
static int dev_acquisition_start(const struct sr_dev_inst *sdi)
sr_sw_limits_acquisition_start(&devc->limits);
std_session_send_df_header(sdi);
- /* Poll every 50ms, or whenever some data comes in. */
serial = sdi->conn;
serial_source_add(sdi->session, serial, G_IO_IN, 50,
receive_data, (void *)sdi);
.context = NULL, \
}, \
VENDOR, MODEL, CONN, BAUDRATE, PACKETSIZE, TIMEOUT, DELAY, \
- REQUEST, VALID, PARSE, DETAILS, sizeof(struct CHIPSET##_info) \
+ REQUEST, 1, VALID, PARSE, DETAILS, sizeof(struct CHIPSET##_info) \
}).di
SR_REGISTER_DEV_DRIVER_LIST(serial_dmm_drivers,
sr_metex14_packet_valid, sr_metex14_parse,
NULL
),
+ DMM(
+ "metex-m3860m", metex14,
+ "Metex", "M-3860M", "9600/7n2/rts=0/dtr=1", 9600,
+ 4 * METEX14_PACKET_SIZE, 0, 0, sr_metex14_packet_request,
+ sr_metex14_4packets_valid, sr_metex14_4packets_parse,
+ NULL
+ ),
DMM(
"metex-m4650cr", metex14,
"Metex", "M-4650CR", "1200/7n2/rts=0/dtr=1", 1200,
sr_metex14_packet_valid, sr_metex14_parse,
NULL
),
+ DMM(
+ "peaktech-4390a", metex14,
+ "PeakTech", "4390A", "9600/7n2/rts=0/dtr=1", 9600,
+ 4 * METEX14_PACKET_SIZE, 0, 0, sr_metex14_packet_request,
+ sr_metex14_4packets_valid, sr_metex14_4packets_parse,
+ NULL
+ ),
DMM(
"radioshack-22-168", metex14,
"RadioShack", "22-168", "1200/7n2/rts=0/dtr=1", 1200,