for (i = 0; i < num_channel_groups; i++) {
cgs = &channel_groups[i];
- cg = g_malloc0(sizeof(struct sr_channel_group));
- cg->name = g_strdup(cgs->name);
+ cg = sr_channel_group_new(sdi, cgs->name, NULL);
for (j = 0, mask = 1; j < 64; j++, mask <<= 1) {
if (cgs->channel_index_mask & mask) {
for (l = sdi->channels; l; l = l->next) {
pcg = g_malloc0(sizeof(struct pps_channel_group));
pcg->features = cgs->features;
cg->priv = pcg;
- sdi->channel_groups = g_slist_append(sdi->channel_groups, cg);
}
sr_scpi_hw_info_free(hw_info);
gvtype = G_VARIANT_TYPE_DOUBLE;
cmd = SCPI_CMD_GET_OVER_CURRENT_PROTECTION_THRESHOLD;
break;
+ case SR_CONF_OVER_CURRENT_PROTECTION_DELAY:
+ gvtype = G_VARIANT_TYPE_DOUBLE;
+ cmd = SCPI_CMD_GET_OVER_CURRENT_PROTECTION_DELAY;
+ break;
case SR_CONF_OVER_TEMPERATURE_PROTECTION:
if (devc->device->dialect == SCPI_DIALECT_HMP) {
/* OTP is always enabled. */
channel_group_cmd, channel_group_name,
SCPI_CMD_SET_OVER_CURRENT_PROTECTION_THRESHOLD, d);
break;
+ case SR_CONF_OVER_CURRENT_PROTECTION_DELAY:
+ d = g_variant_get_double(data);
+ ret = sr_scpi_cmd(sdi, devc->device->commands,
+ channel_group_cmd, channel_group_name,
+ SCPI_CMD_SET_OVER_CURRENT_PROTECTION_DELAY, d);
+ break;
case SR_CONF_OVER_TEMPERATURE_PROTECTION:
if (g_variant_get_boolean(data))
ret = sr_scpi_cmd(sdi, devc->device->commands,
case SR_CONF_OVER_CURRENT_PROTECTION_THRESHOLD:
*data = std_gvar_min_max_step_array(ch_spec->ocp);
break;
+ case SR_CONF_OVER_CURRENT_PROTECTION_DELAY:
+ *data = std_gvar_min_max_step_array(ch_spec->ocp_delay);
+ break;
default:
return SR_ERR_NA;
}