X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhameg-hmo%2Fapi.c;h=617c78d96838c0434ff0ce479912aec9790be0c0;hb=4fa4db2c7983235fff5891127f5f4648a3762172;hp=0070b61569800e3132bbc8ae4e816eb1dac13696;hpb=c8ecfa6ea483e53f2ea735bc58ba93d4eac6b4f6;p=libsigrok.git diff --git a/src/hardware/hameg-hmo/api.c b/src/hardware/hameg-hmo/api.c index 0070b615..617c78d9 100644 --- a/src/hardware/hameg-hmo/api.c +++ b/src/hardware/hameg-hmo/api.c @@ -200,6 +200,9 @@ static int config_get(uint32_t key, GVariant **data, case SR_CONF_TRIGGER_SLOPE: *data = g_variant_new_string((*model->trigger_slopes)[state->trigger_slope]); break; + case SR_CONF_TRIGGER_PATTERN: + *data = g_variant_new_string(state->trigger_pattern); + break; case SR_CONF_HORIZ_TRIGGERPOS: *data = g_variant_new_double(state->horiz_triggerpos); break; @@ -250,7 +253,7 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { int ret, cg_type, idx, j; - char command[MAX_COMMAND_SIZE], float_str[30]; + char command[MAX_COMMAND_SIZE], float_str[30], *tmp_str; struct dev_context *devc; const struct scope_config *model; struct scope_state *state; @@ -341,6 +344,21 @@ static int config_set(uint32_t key, GVariant *data, (*model->trigger_slopes)[idx]); ret = sr_scpi_send(sdi->conn, command); break; + case SR_CONF_TRIGGER_PATTERN: + tmp_str = (char *)g_variant_get_string(data, 0); + idx = strlen(tmp_str); + if (idx == 0 || idx > model->analog_channels + model->digital_channels) + return SR_ERR_ARG; + g_snprintf(command, sizeof(command), + (*model->scpi_dialect)[SCPI_CMD_SET_TRIGGER_PATTERN], + tmp_str); + if (sr_scpi_send(sdi->conn, command) != SR_OK || + sr_scpi_get_opc(sdi->conn) != SR_OK) + return SR_ERR; + g_free(state->trigger_pattern); + state->trigger_pattern = g_strdup(tmp_str); + ret = SR_OK; + break; case SR_CONF_COUPLING: if (!cg) return SR_ERR_CHANNEL_GROUP;