scpi-pps: Change some floats to doubles.

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]);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
This commit is contained in:
Uwe Hermann 2017-07-20 22:23:25 +02:00
parent 54d471f498
commit bcee129962
4 changed files with 16 additions and 16 deletions

View 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);

View 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;

View 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);
}

View 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 {