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]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
static int dev_acquisition_stop(struct sr_dev_inst *sdi)
{
struct sr_scpi_dev_inst *scpi;
static int dev_acquisition_stop(struct sr_dev_inst *sdi)
{
struct sr_scpi_dev_inst *scpi;
* to avoid leaving the device in a state where it's not expecting
* commands.
*/
* 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);
sr_scpi_source_remove(sdi->session, scpi);
std_session_send_df_end(sdi);
channel = g_malloc0(sizeof(struct channel_spec));
channel->name = "1";
channel->voltage[0] = channel->current[0] = channel->power[0] = 0.0;
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;
channel->voltage[2] = channel->current[2] = 0.01;
channel->voltage[3] = channel->voltage[4] = 3;
channel->current[3] = channel->current[4] = 4;
static const struct philips_pm2800_module_spec {
/* Min, max, programming resolution. */
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 } },
} philips_pm2800_module_specs[] = {
/* Autoranging modules. */
[PM2800_MOD_30V_10A] = { { 0, 30, 0.0075, 2, 4 }, { 0, 10, 0.0025, 2, 4 }, { 0, 60 } },
spec->current[0], spec->current[1],
spec->power[0], spec->power[1]);
(*channels)[i].name = (char *)philips_pm2800_names[i];
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;
(*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;
struct sr_scpi_dev_inst *scpi;
struct pps_channel *pch;
const struct channel_spec *ch_spec;
struct sr_scpi_dev_inst *scpi;
struct pps_channel *pch;
const struct channel_spec *ch_spec;
scpi = sdi->conn;
/* Retrieve requested value for this state. */
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;
pch = devc->cur_channel->priv;
ch_spec = &devc->device->channels[pch->hw_output_idx];
packet.type = SR_DF_ANALOG;
analog.spec->spec_digits = ch_spec->power[3];
}
analog.meaning->mqflags = SR_MQFLAG_DC;
analog.spec->spec_digits = ch_spec->power[3];
}
analog.meaning->mqflags = SR_MQFLAG_DC;
sr_session_send(sdi, &packet);
g_slist_free(analog.meaning->channels);
}
sr_session_send(sdi, &packet);
g_slist_free(analog.meaning->channels);
}
struct channel_spec {
const char *name;
/* Min, max, programming resolution, spec digits, encoding digits. */
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 {
};
struct channel_group_spec {