X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhameg-hmo%2Fprotocol.c;fp=src%2Fhardware%2Fhameg-hmo%2Fprotocol.c;h=9135601c73f905010c04f3a6b932910ba0eff3f4;hb=a12456f1bbc65111b0bf0c7f72b03af097246a17;hp=ef30c6f72950c0860482a1540b4572ce70216bd0;hpb=0c96de7223a47a21e509bc2c4560e50651d389e5;p=libsigrok.git diff --git a/src/hardware/hameg-hmo/protocol.c b/src/hardware/hameg-hmo/protocol.c index ef30c6f7..9135601c 100644 --- a/src/hardware/hameg-hmo/protocol.c +++ b/src/hardware/hameg-hmo/protocol.c @@ -326,7 +326,7 @@ static const char *scope_digital_channel_names[] = { "D8", "D9", "D10", "D11", "D12", "D13", "D14", "D15", }; -static const struct scope_config scope_models[] = { +static struct scope_config scope_models[] = { { /* HMO Compact2: HMO722/1022/1522/2022 support only 8 digital channels. */ .name = {"HMO722", "HMO1022", "HMO1522", "HMO2022", NULL}, @@ -374,7 +374,6 @@ static const struct scope_config scope_models[] = { .name = {"RTC1002", "HMO1002", "HMO1202", NULL}, .analog_channels = 2, .digital_channels = 8, - .digital_pods = 1, .analog_names = &scope_analog_channel_names, .digital_names = &scope_digital_channel_names, @@ -417,7 +416,6 @@ static const struct scope_config scope_models[] = { .name = {"HMO3032", "HMO3042", "HMO3052", "HMO3522", NULL}, .analog_channels = 2, .digital_channels = 16, - .digital_pods = 2, .analog_names = &scope_analog_channel_names, .digital_names = &scope_digital_channel_names, @@ -460,7 +458,6 @@ static const struct scope_config scope_models[] = { .name = {"HMO724", "HMO1024", "HMO1524", "HMO2024", NULL}, .analog_channels = 4, .digital_channels = 8, - .digital_pods = 1, .analog_names = &scope_analog_channel_names, .digital_names = &scope_digital_channel_names, @@ -502,7 +499,6 @@ static const struct scope_config scope_models[] = { .name = {"HMO2524", "HMO3034", "HMO3044", "HMO3054", "HMO3524", NULL}, .analog_channels = 4, .digital_channels = 16, - .digital_pods = 2, .analog_names = &scope_analog_channel_names, .digital_names = &scope_digital_channel_names, @@ -544,7 +540,6 @@ static const struct scope_config scope_models[] = { .name = {"RTB2002", NULL}, .analog_channels = 2, .digital_channels = 16, - .digital_pods = 2, .analog_names = &scope_analog_channel_names, .digital_names = &scope_digital_channel_names, @@ -586,7 +581,6 @@ static const struct scope_config scope_models[] = { .name = {"RTB2004", NULL}, .analog_channels = 4, .digital_channels = 16, - .digital_pods = 2, .analog_names = &scope_analog_channel_names, .digital_names = &scope_digital_channel_names, @@ -628,7 +622,6 @@ static const struct scope_config scope_models[] = { .name = {"RTM3002", NULL}, .analog_channels = 2, .digital_channels = 16, - .digital_pods = 2, .analog_names = &scope_analog_channel_names, .digital_names = &scope_digital_channel_names, @@ -670,7 +663,6 @@ static const struct scope_config scope_models[] = { .name = {"RTM3004", NULL}, .analog_channels = 4, .digital_channels = 16, - .digital_pods = 2, .analog_names = &scope_analog_channel_names, .digital_names = &scope_digital_channel_names, @@ -712,7 +704,6 @@ static const struct scope_config scope_models[] = { .name = {"RTA4004", NULL}, .analog_channels = 4, .digital_channels = 16, - .digital_pods = 2, .analog_names = &scope_analog_channel_names, .digital_names = &scope_digital_channel_names, @@ -997,7 +988,7 @@ static int digital_channel_state_get(struct sr_dev_inst *sdi, if (config->logic_threshold_for_pod) idx = i + 1; else - idx = i * 8; + idx = i * DIGITAL_CHANNELS_PER_POD; g_snprintf(command, sizeof(command), (*config->scpi_dialect)[SCPI_CMD_GET_DIG_POD_THRESHOLD], @@ -1191,6 +1182,8 @@ SR_PRIV int hmo_init_device(struct sr_dev_inst *sdi) sr_dbg("Unsupported device."); return SR_ERR_NA; } + /* Configure the number of PODs given the number of digital channels. */ + scope_models[model_index].digital_pods = scope_models[model_index].digital_channels / DIGITAL_CHANNELS_PER_POD; devc->analog_groups = g_malloc0(sizeof(struct sr_channel_group*) * scope_models[model_index].analog_channels); @@ -1237,7 +1230,7 @@ SR_PRIV int hmo_init_device(struct sr_dev_inst *sdi) ch = sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE, (*scope_models[model_index].digital_names)[i]); - group = i / 8; + group = i / DIGITAL_CHANNELS_PER_POD; devc->digital_groups[group]->channels = g_slist_append( devc->digital_groups[group]->channels, ch); } @@ -1468,7 +1461,7 @@ SR_PRIV int hmo_receive_data(int fd, int revents, void *cb_data) packet.payload = &logic; sr_session_send(sdi, &packet); } else { - group = ch->index / 8; + group = ch->index / DIGITAL_CHANNELS_PER_POD; hmo_queue_logic_data(devc, group, data); }