rigol-ds: replace some magic numbers by appropriate constant or variable

This fixes bug #406.
This commit is contained in:
Aurelien Jacobs 2014-09-08 00:47:27 +02:00 committed by Uwe Hermann
parent bc4a2a46ed
commit effb9dd1c2
2 changed files with 12 additions and 9 deletions

View File

@ -237,12 +237,13 @@ static struct sr_dev_driver *di = &rigol_ds_driver_info;
static void clear_helper(void *priv) static void clear_helper(void *priv)
{ {
struct dev_context *devc; struct dev_context *devc;
unsigned int i;
devc = priv; devc = priv;
g_free(devc->data); g_free(devc->data);
g_free(devc->buffer); g_free(devc->buffer);
g_free(devc->coupling[0]); for (i = 0; i < ARRAY_SIZE(devc->coupling); i++)
g_free(devc->coupling[1]); g_free(devc->coupling[i]);
g_free(devc->trigger_source); g_free(devc->trigger_source);
g_free(devc->trigger_slope); g_free(devc->trigger_slope);
g_free(devc->analog_groups); g_free(devc->analog_groups);
@ -356,7 +357,7 @@ static struct sr_dev_inst *probe_device(struct sr_scpi_dev_inst *scpi)
if (devc->model->has_digital) { if (devc->model->has_digital) {
devc->digital_group = g_malloc0(sizeof(struct sr_channel_group*)); devc->digital_group = g_malloc0(sizeof(struct sr_channel_group*));
for (i = 0; i < 16; i++) { for (i = 0; i < ARRAY_SIZE(devc->digital_channels); i++) {
if (!(channel_name = g_strdup_printf("D%d", i))) if (!(channel_name = g_strdup_printf("D%d", i)))
return NULL; return NULL;
ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE, channel_name); ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE, channel_name);
@ -702,7 +703,7 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi,
return SR_ERR_CHANNEL_GROUP; return SR_ERR_CHANNEL_GROUP;
} }
g_variant_get(data, "(tt)", &p, &q); g_variant_get(data, "(tt)", &p, &q);
for (i = 0; i < 2; i++) { for (i = 0; i < devc->model->analog_channels; i++) {
if (cg == devc->analog_groups[i]) { if (cg == devc->analog_groups[i]) {
for (j = 0; j < ARRAY_SIZE(vdivs); j++) { for (j = 0; j < ARRAY_SIZE(vdivs); j++) {
if (vdivs[j][0] != p || vdivs[j][1] != q) if (vdivs[j][0] != p || vdivs[j][1] != q)
@ -723,7 +724,7 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi,
return SR_ERR_CHANNEL_GROUP; return SR_ERR_CHANNEL_GROUP;
} }
tmp_str = g_variant_get_string(data, NULL); tmp_str = g_variant_get_string(data, NULL);
for (i = 0; i < 2; i++) { for (i = 0; i < devc->model->analog_channels; i++) {
if (cg == devc->analog_groups[i]) { if (cg == devc->analog_groups[i]) {
for (j = 0; j < ARRAY_SIZE(coupling); j++) { for (j = 0; j < ARRAY_SIZE(coupling); j++) {
if (!strcmp(tmp_str, coupling[j])) { if (!strcmp(tmp_str, coupling[j])) {
@ -785,8 +786,10 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi,
/* If a channel group is specified, it must be a valid one. */ /* If a channel group is specified, it must be a valid one. */
if (cg) { if (cg) {
if (cg != devc->analog_groups[0] for (i = 0; i < devc->model->analog_channels; i++)
&& cg != devc->analog_groups[1]) { if (cg == devc->analog_groups[i])
break;
if (i >= devc->model->analog_channels) {
sr_err("Invalid channel group specified."); sr_err("Invalid channel group specified.");
return SR_ERR; return SR_ERR;
} }
@ -803,7 +806,7 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi,
NULL, 0, sizeof(int32_t)); NULL, 0, sizeof(int32_t));
return SR_OK; return SR_OK;
} else { } else {
for (i = 0; i < 2; i++) { for (i = 0; i < devc->model->analog_channels; i++) {
if (cg == devc->analog_groups[i]) { if (cg == devc->analog_groups[i]) {
*data = g_variant_new_fixed_array(G_VARIANT_TYPE_INT32, *data = g_variant_new_fixed_array(G_VARIANT_TYPE_INT32,
analog_hwcaps, ARRAY_SIZE(analog_hwcaps), sizeof(int32_t)); analog_hwcaps, ARRAY_SIZE(analog_hwcaps), sizeof(int32_t));

View File

@ -728,7 +728,7 @@ SR_PRIV int rigol_ds_get_dev_cfg(const struct sr_dev_inst *sdi)
devc->la_enabled = !strcmp(t_s, "ON") ? TRUE : FALSE; devc->la_enabled = !strcmp(t_s, "ON") ? TRUE : FALSE;
sr_dbg("Logic analyzer %s, current digital channel state:", sr_dbg("Logic analyzer %s, current digital channel state:",
devc->la_enabled ? "enabled" : "disabled"); devc->la_enabled ? "enabled" : "disabled");
for (i = 0; i < 16; i++) { for (i = 0; i < ARRAY_SIZE(devc->digital_channels); i++) {
cmd = g_strdup_printf(":DIG%d:TURN?", i); cmd = g_strdup_printf(":DIG%d:TURN?", i);
res = sr_scpi_get_string(sdi->conn, cmd, &t_s); res = sr_scpi_get_string(sdi->conn, cmd, &t_s);
g_free(cmd); g_free(cmd);