- ret = sr_scpi_cmd_resp(sdi, devc->device->commands,
- channel_group_cmd, channel_group_name, data, gvtype, cmd);
+ is_hmp_sqii = FALSE;
+ is_hmp_sqii |= cmd == SCPI_CMD_GET_OUTPUT_REGULATION;
+ is_hmp_sqii |= cmd == SCPI_CMD_GET_OVER_TEMPERATURE_PROTECTION_ACTIVE;
+ is_hmp_sqii &= devc->device->dialect == SCPI_DIALECT_HMP;
+ if (is_hmp_sqii) {
+ if (!cg) {
+ /* STAT:QUES:INST:ISUMx query requires channel spec. */
+ sr_err("Need a channel group for regulation or OTP-active query.");
+ return SR_ERR_NA;
+ }
+ ret = sr_scpi_cmd_resp(sdi, devc->device->commands,
+ 0, NULL, data, gvtype, cmd, channel_group_name);
+ } else {
+ ret = sr_scpi_cmd_resp(sdi, devc->device->commands,
+ channel_group_cmd, channel_group_name, data, gvtype, cmd);
+ }