]> sigrok.org Git - libsigrok.git/commitdiff
scpi-pps: Change some floats to doubles.
authorUwe Hermann <redacted>
Thu, 20 Jul 2017 20:23:25 +0000 (22:23 +0200)
committerUwe Hermann <redacted>
Fri, 21 Jul 2017 14:49:01 +0000 (16:49 +0200)
This makes the code more consistent with the rest of the code-base
and also allows std_gvar_min_max_step_array() to work here.

Without this change:

  src/hardware/scpi-pps/api.c: In function ‘config_list’:
  src/hardware/scpi-pps/api.c:570:40: warning: passing argument 1 of ‘std_gvar_min_max_step_array’ from incompatible pointer type [-Wincompatible-pointer-types]
      *data = std_gvar_min_max_step_array(ch_spec->voltage);
                                          ^~~~~~~
  In file included from src/scpi.h:30:0,
                   from src/hardware/scpi-pps/api.c:23:
  src/libsigrok-internal.h:964:19: note: expected ‘const double *’ but argument is of type ‘const float *’
   SR_PRIV GVariant *std_gvar_min_max_step_array(const double a[3]);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  src/hardware/scpi-pps/api.c:573:40: warning: passing argument 1 of ‘std_gvar_min_max_step_array’ from incompatible pointer type [-Wincompatible-pointer-types]
      *data = std_gvar_min_max_step_array(ch_spec->frequency);
                                          ^~~~~~~
  In file included from src/scpi.h:30:0,
                   from src/hardware/scpi-pps/api.c:23:
  src/libsigrok-internal.h:964:19: note: expected ‘const double *’ but argument is of type ‘const float *’
   SR_PRIV GVariant *std_gvar_min_max_step_array(const double a[3]);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  src/hardware/scpi-pps/api.c:576:40: warning: passing argument 1 of ‘std_gvar_min_max_step_array’ from incompatible pointer type [-Wincompatible-pointer-types]
      *data = std_gvar_min_max_step_array(ch_spec->current);
                                          ^~~~~~~
  In file included from src/scpi.h:30:0,
                   from src/hardware/scpi-pps/api.c:23:
  src/libsigrok-internal.h:964:19: note: expected ‘const double *’ but argument is of type ‘const float *’
   SR_PRIV GVariant *std_gvar_min_max_step_array(const double a[3]);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~

src/hardware/scpi-pps/api.c
src/hardware/scpi-pps/profiles.c
src/hardware/scpi-pps/protocol.c
src/hardware/scpi-pps/protocol.h

index 70b5435106846fffa65813b887efa34442c7484a..3ac44a3c01a77b16e959a8ce662285d4bf199dd7 100644 (file)
@@ -622,7 +622,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
 static int dev_acquisition_stop(struct sr_dev_inst *sdi)
 {
        struct sr_scpi_dev_inst *scpi;
-       float f;
+       double d;
 
        scpi = sdi->conn;
 
@@ -631,7 +631,7 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi)
         * to avoid leaving the device in a state where it's not expecting
         * commands.
         */
-       sr_scpi_get_float(scpi, NULL, &f);
+       sr_scpi_get_double(scpi, NULL, &d);
        sr_scpi_source_remove(sdi->session, scpi);
 
        std_session_send_df_end(sdi);
index f3c58dcaacb03d5c6b0f1be1a0359ee627ecce65..cd895ec0a2c0a988661a470047576fc55731da7b 100644 (file)
@@ -204,9 +204,9 @@ static int chroma_62000p_probe_channels(struct sr_dev_inst *sdi,
        channel = g_malloc0(sizeof(struct channel_spec));
        channel->name = "1";
        channel->voltage[0] = channel->current[0] = channel->power[0] = 0.0;
-       channel->voltage[1] = (float)volts;
-       channel->current[1] = (float)amps;
-       channel->power[1]   = (float)watts;
+       channel->voltage[1] = volts;
+       channel->current[1] = amps;
+       channel->power[1]   = watts;
        channel->voltage[2] = channel->current[2] = 0.01;
        channel->voltage[3] = channel->voltage[4] = 3;
        channel->current[3] = channel->current[4] = 4;
@@ -393,9 +393,9 @@ enum philips_pm2800_modules {
 
 static const struct philips_pm2800_module_spec {
        /* Min, max, programming resolution. */
-       float voltage[5];
-       float current[5];
-       float power[5];
+       double voltage[5];
+       double current[5];
+       double power[5];
 } philips_pm2800_module_specs[] = {
        /* Autoranging modules. */
        [PM2800_MOD_30V_10A] = { { 0, 30, 0.0075, 2, 4 }, { 0, 10, 0.0025, 2, 4 }, { 0, 60 } },
@@ -481,7 +481,7 @@ static int philips_pm2800_probe_channels(struct sr_dev_inst *sdi,
                                spec->current[0], spec->current[1],
                                spec->power[0], spec->power[1]);
                (*channels)[i].name = (char *)philips_pm2800_names[i];
-               memcpy(&((*channels)[i].voltage), spec, sizeof(float) * 15);
+               memcpy(&((*channels)[i].voltage), spec, sizeof(double) * 15);
                (*channel_groups)[i].name = (char *)philips_pm2800_names[i];
                (*channel_groups)[i].channel_index_mask = 1 << i;
                (*channel_groups)[i].features = PPS_OTP | PPS_OVP | PPS_OCP;
index 4c7a649cda1f2aec73c8756b69b6af82123c3d10..5afaa5e9743d20fc87f108a6d6eee25d28fc9ccf 100644 (file)
@@ -67,7 +67,7 @@ SR_PRIV int scpi_pps_receive_data(int fd, int revents, void *cb_data)
        struct sr_scpi_dev_inst *scpi;
        struct pps_channel *pch;
        const struct channel_spec *ch_spec;
-       float f;
+       double d;
        int cmd;
 
        (void)fd;
@@ -82,7 +82,7 @@ SR_PRIV int scpi_pps_receive_data(int fd, int revents, void *cb_data)
        scpi = sdi->conn;
 
        /* Retrieve requested value for this state. */
-       if (sr_scpi_get_float(scpi, NULL, &f) == SR_OK) {
+       if (sr_scpi_get_double(scpi, NULL, &d) == SR_OK) {
                pch = devc->cur_channel->priv;
                ch_spec = &devc->device->channels[pch->hw_output_idx];
                packet.type = SR_DF_ANALOG;
@@ -106,7 +106,7 @@ SR_PRIV int scpi_pps_receive_data(int fd, int revents, void *cb_data)
                        analog.spec->spec_digits = ch_spec->power[3];
                }
                analog.meaning->mqflags = SR_MQFLAG_DC;
-               analog.data = &f;
+               analog.data = &d;
                sr_session_send(sdi, &packet);
                g_slist_free(analog.meaning->channels);
        }
index d4425e725573cb0813267cc7f4be8ff02adea283..e93658208831324953fdf3f3de61cd1b12e063e7 100644 (file)
@@ -101,10 +101,10 @@ struct scpi_pps {
 struct channel_spec {
        const char *name;
        /* Min, max, programming resolution, spec digits, encoding digits. */
-       float voltage[5];
-       float current[5];
-       float power[5];
-       float frequency[5];
+       double voltage[5];
+       double current[5];
+       double power[5];
+       double frequency[5];
 };
 
 struct channel_group_spec {