]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/hameg-hmo/api.c
Factor out std_session_send_df_end() helper.
[libsigrok.git] / src / hardware / hameg-hmo / api.c
index 1b36f04e396e126819fbbeb2ba3d79da221c2373..c293d2b44dd9e7024a06e8e9e7cee7d68d2b2d21 100644 (file)
@@ -28,6 +28,7 @@ SR_PRIV struct sr_dev_driver hameg_hmo_driver_info;
 
 static const char *manufacturers[] = {
        "HAMEG",
+       "Rohde&Schwarz",
 };
 
 static const uint32_t drvopts[] = {
@@ -436,17 +437,17 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd
                break;
        case SR_CONF_TRIGGER_SLOPE:
                tmp = g_variant_get_string(data, NULL);
+               for (i = 0; (*model->trigger_slopes)[i]; i++) {
+                       if (g_strcmp0(tmp, (*model->trigger_slopes)[i]) != 0)
+                               continue;
+                       state->trigger_slope = i;
+                       g_snprintf(command, sizeof(command),
+                                  (*model->scpi_dialect)[SCPI_CMD_SET_TRIGGER_SLOPE],
+                                  (*model->trigger_slopes)[i]);
 
-               if (!tmp || !(tmp[0] == 'f' || tmp[0] == 'r'))
-                       return SR_ERR_ARG;
-
-               state->trigger_slope = (tmp[0] == 'r') ? 0 : 1;
-
-               g_snprintf(command, sizeof(command),
-                          (*model->scpi_dialect)[SCPI_CMD_SET_TRIGGER_SLOPE],
-                          (state->trigger_slope == 0) ? "POS" : "NEG");
-
-               ret = sr_scpi_send(sdi->conn, command);
+                       ret = sr_scpi_send(sdi->conn, command);
+                       break;
+               }
                break;
        case SR_CONF_COUPLING:
                if (cg_type == CG_NONE) {
@@ -768,13 +769,10 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
 {
        struct dev_context *devc;
        struct sr_scpi_dev_inst *scpi;
-       struct sr_datafeed_packet packet;
 
        (void)cb_data;
 
-       packet.type = SR_DF_END;
-       packet.payload = NULL;
-       sr_session_send(sdi, &packet);
+       std_session_send_df_end(sdi, LOG_PREFIX);
 
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;