SR_CONF_TRIGGER_SLOPE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
SR_CONF_TRIGGER_SOURCE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
SR_CONF_TIMEBASE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
- SR_CONF_NUM_TIMEBASE | SR_CONF_GET,
+ SR_CONF_NUM_HDIV | SR_CONF_GET,
SR_CONF_HORIZ_TRIGGERPOS | SR_CONF_GET | SR_CONF_SET,
};
"4"
};
-static const char *scope_digital_channel_names[] = {
+static const char *scope_digital_channel_names_8[] = {
"D0",
"D1",
"D2",
"D7"
};
-static struct scope_config scope_models[] = {
+static const char *scope_digital_channel_names_32[] = {
+ "A0",
+ "A1",
+ "A2",
+ "A3",
+ "A4",
+ "A5",
+ "A6",
+ "A7",
+ "B0",
+ "B1",
+ "B2",
+ "B3",
+ "B4",
+ "B5",
+ "B6",
+ "B7",
+ "C0",
+ "C1",
+ "C2",
+ "C3",
+ "C4",
+ "C5",
+ "C6",
+ "C7",
+ "D0",
+ "D1",
+ "D2",
+ "D3",
+ "D4",
+ "D5",
+ "D6",
+ "D7",
+};
+
+static const struct scope_config scope_models[] = {
{
.model_id = {"710105", "710115", "710125", NULL},
.model_name = {"DLM2022", "DLM2032", "DLM2052", NULL},
.pods = 0,
.analog_names = &scope_analog_channel_names,
- .digital_names = &scope_digital_channel_names,
+ .digital_names = &scope_digital_channel_names_8,
.devopts = &dlm_devopts,
.num_devopts = ARRAY_SIZE(dlm_devopts),
.pods = 1,
.analog_names = &scope_analog_channel_names,
- .digital_names = &scope_digital_channel_names,
+ .digital_names = &scope_digital_channel_names_8,
+
+ .devopts = &dlm_devopts,
+ .num_devopts = ARRAY_SIZE(dlm_devopts),
+
+ .analog_devopts = &dlm_analog_devopts,
+ .num_analog_devopts = ARRAY_SIZE(dlm_analog_devopts),
+
+ .coupling_options = &dlm_coupling_options,
+ .trigger_sources = &dlm_4ch_trigger_sources,
+ .trigger_slopes = &dlm_trigger_slopes,
+
+ .timebases = &dlm_timebases,
+ .num_timebases = ARRAY_SIZE(dlm_timebases),
+
+ .vdivs = &dlm_vdivs,
+ .num_vdivs = ARRAY_SIZE(dlm_vdivs),
+
+ .num_xdivs = 10,
+ .num_ydivs = 8,
+ },
+ {
+ .model_id = {"701307", "701308", "701310", "701311",
+ "701312", "701313", NULL},
+ .model_name = {"DL9040", "DL9040L", "DL9140", "DL9140L",
+ "DL9240", "DL9240L", NULL},
+ .analog_channels = 4,
+ .digital_channels = 0,
+ .pods = 0,
+
+ .analog_names = &scope_analog_channel_names,
+ .digital_names = NULL,
+
+ .devopts = &dlm_devopts,
+ .num_devopts = ARRAY_SIZE(dlm_devopts),
+
+ .analog_devopts = &dlm_analog_devopts,
+ .num_analog_devopts = ARRAY_SIZE(dlm_analog_devopts),
+
+ .coupling_options = &dlm_coupling_options,
+ .trigger_sources = &dlm_4ch_trigger_sources,
+ .trigger_slopes = &dlm_trigger_slopes,
+
+ .timebases = &dlm_timebases,
+ .num_timebases = ARRAY_SIZE(dlm_timebases),
+
+ .vdivs = &dlm_vdivs,
+ .num_vdivs = ARRAY_SIZE(dlm_vdivs),
+
+ .num_xdivs = 10,
+ .num_ydivs = 8,
+ },
+ {
+ .model_id = {"701320", "701321", NULL},
+ .model_name = {"DL9505L", "DL9510L", NULL},
+ .analog_channels = 4,
+ .digital_channels = 16,
+ .pods = 4,
+
+ .analog_names = &scope_analog_channel_names,
+ .digital_names = &scope_digital_channel_names_32,
+
+ .devopts = &dlm_devopts,
+ .num_devopts = ARRAY_SIZE(dlm_devopts),
+
+ .analog_devopts = &dlm_analog_devopts,
+ .num_analog_devopts = ARRAY_SIZE(dlm_analog_devopts),
+
+ .coupling_options = &dlm_coupling_options,
+ .trigger_sources = &dlm_4ch_trigger_sources,
+ .trigger_slopes = &dlm_trigger_slopes,
+
+ .timebases = &dlm_timebases,
+ .num_timebases = ARRAY_SIZE(dlm_timebases),
+
+ .vdivs = &dlm_vdivs,
+ .num_vdivs = ARRAY_SIZE(dlm_vdivs),
+
+ .num_xdivs = 10,
+ .num_ydivs = 8,
+ },
+ {
+ .model_id = {"701330", "701331", NULL},
+ .model_name = {"DL9705L", "DL9710L", NULL},
+ .analog_channels = 4,
+ .digital_channels = 32,
+ .pods = 4,
+
+ .analog_names = &scope_analog_channel_names,
+ .digital_names = &scope_digital_channel_names_32,
.devopts = &dlm_devopts,
.num_devopts = ARRAY_SIZE(dlm_devopts),
* @param config This is the scope configuration.
* @param state The current scope state to print.
*/
-static void scope_state_dump(struct scope_config *config,
+static void scope_state_dump(const struct scope_config *config,
struct scope_state *state)
{
unsigned int i;
* @return SR_ERR on error, SR_OK otherwise.
*/
static int analog_channel_state_get(struct sr_scpi_dev_inst *scpi,
- struct scope_config *config,
+ const struct scope_config *config,
struct scope_state *state)
{
int i, j;
* @return SR_ERR on error, SR_OK otherwise.
*/
static int digital_channel_state_get(struct sr_scpi_dev_inst *scpi,
- struct scope_config *config,
+ const struct scope_config *config,
struct scope_state *state)
{
unsigned int i;
{
struct dev_context *devc;
struct scope_state *state;
- struct scope_config *config;
+ const struct scope_config *config;
float tmp_float;
gchar *response;
int i;
*
* @return The newly allocated scope_state struct.
*/
-static struct scope_state *dlm_scope_state_new(struct scope_config *config)
+static struct scope_state *dlm_scope_state_new(const struct scope_config *config)
{
struct scope_state *state;
/* Add analog channels. */
for (i = 0; i < scope_models[model_index].analog_channels; i++) {
- if (!(ch = sr_channel_new(i, SR_CHANNEL_ANALOG, TRUE,
- (*scope_models[model_index].analog_names)[i])))
- return SR_ERR_MALLOC;
- sdi->channels = g_slist_append(sdi->channels, ch);
+ ch = sr_channel_new(sdi, i, SR_CHANNEL_ANALOG, TRUE,
+ (*scope_models[model_index].analog_names)[i]);
devc->analog_groups[i] = g_malloc0(sizeof(struct sr_channel_group));
/* Add digital channels. */
for (i = 0; i < scope_models[model_index].digital_channels; i++) {
- if (!(ch = sr_channel_new(i, SR_CHANNEL_LOGIC, TRUE,
- (*scope_models[model_index].digital_names)[i])))
- return SR_ERR_MALLOC;
- sdi->channels = g_slist_append(sdi->channels, ch);
+ ch = sr_channel_new(sdi, i, SR_CHANNEL_LOGIC, TRUE,
+ (*scope_models[model_index].digital_names)[i]);
devc->digital_groups[i / 8]->channels = g_slist_append(
devc->digital_groups[i / 8]->channels, ch);
devc->current_channel = devc->current_channel->next;
if (dlm_channel_data_request(sdi) != SR_OK) {
- sr_err("Failed to request aquisition data.");
+ sr_err("Failed to request acquisition data.");
goto fail;
}