X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Farachnid-labs-re-load-pro%2Fapi.c;h=0c00c2fa2411ee03cfd0c669358bd3b1fb2f9232;hb=f6e7b6124a646b0ece644681d4e0172ffb30a561;hp=79fa4242319cbc38be860cc9db219df7729e2224;hpb=43376f3324cddd257a0260b06d9db8180c35fdf3;p=libsigrok.git diff --git a/src/hardware/arachnid-labs-re-load-pro/api.c b/src/hardware/arachnid-labs-re-load-pro/api.c index 79fa4242..0c00c2fa 100644 --- a/src/hardware/arachnid-labs-re-load-pro/api.c +++ b/src/hardware/arachnid-labs-re-load-pro/api.c @@ -59,7 +59,6 @@ static const uint32_t devopts_cg[] = { static GSList *scan(struct sr_dev_driver *di, GSList *options) { struct sr_dev_inst *sdi; - struct drv_context *drvc; struct dev_context *devc; struct sr_config *src; struct sr_serial_dev_inst *serial; @@ -72,8 +71,6 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) char *bufptr; double version; - drvc = di->context; - conn = serialcomm = NULL; for (l = options; l; l = l->next) { src = l->data; @@ -143,6 +140,7 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) cg->channels = g_slist_append(cg->channels, ch); devc = g_malloc0(sizeof(struct dev_context)); + sr_sw_limits_init(&devc->limits); sdi->priv = devc; serial_close(serial); @@ -229,11 +227,8 @@ static int config_get(uint32_t key, GVariant **data, ret = SR_OK; switch (key) { case SR_CONF_LIMIT_SAMPLES: - *data = g_variant_new_uint64(devc->limit_samples); - break; case SR_CONF_LIMIT_MSEC: - *data = g_variant_new_uint64(devc->limit_msec); - break; + return sr_sw_limits_config_get(&devc->limits, key, data); case SR_CONF_REGULATION: *data = g_variant_new_string("CC"); /* Always CC mode. */ break; @@ -292,11 +287,8 @@ static int config_set(uint32_t key, GVariant *data, ret = SR_OK; switch (key) { case SR_CONF_LIMIT_SAMPLES: - devc->limit_samples = g_variant_get_uint64(data); - break; case SR_CONF_LIMIT_MSEC: - devc->limit_msec = g_variant_get_uint64(data); - break; + return sr_sw_limits_config_set(&devc->limits, key, data); case SR_CONF_ENABLED: ret = reloadpro_set_on_off(sdi, g_variant_get_boolean(data)); break; @@ -335,22 +327,15 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) serial_source_add(sdi->session, serial, G_IO_IN, 100, reloadpro_receive_data, (void *)sdi); - std_session_send_df_header(sdi, LOG_PREFIX); + sr_sw_limits_acquisition_start(&devc->limits); + std_session_send_df_header(sdi); memset(devc->buf, 0, RELOADPRO_BUFSIZE); devc->buflen = 0; - devc->num_samples = 0; - devc->starttime = g_get_monotonic_time(); return SR_OK; } -static int dev_acquisition_stop(struct sr_dev_inst *sdi) -{ - return std_serial_dev_acquisition_stop(sdi, - std_serial_dev_close, sdi->conn, LOG_PREFIX); -} - static struct sr_dev_driver arachnid_labs_re_load_pro_driver_info = { .name = "arachnid-labs-re-load-pro", .longname = "Arachnid Labs Re:load Pro", @@ -365,7 +350,7 @@ static struct sr_dev_driver arachnid_labs_re_load_pro_driver_info = { .dev_open = std_serial_dev_open, .dev_close = std_serial_dev_close, .dev_acquisition_start = dev_acquisition_start, - .dev_acquisition_stop = dev_acquisition_stop, + .dev_acquisition_stop = std_serial_dev_acquisition_stop, .context = NULL, }; SR_REGISTER_DEV_DRIVER(arachnid_labs_re_load_pro_driver_info);