};
static const uint32_t devopts_cg[] = {
- SR_CONF_ENABLED | SR_CONF_GET,
+ SR_CONF_ENABLED | SR_CONF_SET,
SR_CONF_REGULATION | SR_CONF_GET,
SR_CONF_VOLTAGE | SR_CONF_GET,
SR_CONF_CURRENT | SR_CONF_GET,
const char *conn, *serialcomm;
char buf[100];
char *bufptr;
+ double version;
devices = NULL;
drvc = di->context;
return NULL;
}
+ version = g_ascii_strtod(buf + 8, NULL);
+ if (version < 1.10) {
+ sr_info("Firmware >= 1.10 required (got %1.2f).", version);
+ serial_close(serial);
+ return NULL;
+ }
+
sdi = g_malloc0(sizeof(struct sr_dev_inst));
sdi->status = SR_ST_ACTIVE;
sdi->vendor = g_strdup("Arachnid Labs");
* - SR_CONF_OVER_VOLTAGE_PROTECTION_THRESHOLD
* - SR_CONF_OVER_CURRENT_PROTECTION_ACTIVE
* - SR_CONF_OVER_CURRENT_PROTECTION_THRESHOLD
+ * - SR_CONF_ENABLED (state cannot be queried, only set)
*/
ret = SR_OK;
case SR_CONF_LIMIT_MSEC:
*data = g_variant_new_uint64(devc->limit_msec);
break;
- case SR_CONF_ENABLED:
- *data = g_variant_new_boolean(TRUE); /* Always on. */
- break;
case SR_CONF_REGULATION:
*data = g_variant_new_string("CC"); /* Always CC mode. */
break;
case SR_CONF_LIMIT_MSEC:
devc->limit_msec = g_variant_get_uint64(data);
break;
+ case SR_CONF_ENABLED:
+ ret = reloadpro_set_on_off(sdi, g_variant_get_boolean(data));
+ break;
case SR_CONF_CURRENT_LIMIT:
ret = reloadpro_set_current_limit(sdi,
g_variant_get_double(data));