X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Flecroy-xstream%2Fprotocol.c;h=7aebdc59004e8b940de06e39686b079f10362022;hb=758906aa711c2936e7e9adcb449f70905087a5d9;hp=b4fae5bfc93aca32364be74e16e94384b65a16ce;hpb=b295fa5190b5c75d37d66de84a0884e46a23d78e;p=libsigrok.git diff --git a/src/hardware/lecroy-xstream/protocol.c b/src/hardware/lecroy-xstream/protocol.c index b4fae5bf..7aebdc59 100644 --- a/src/hardware/lecroy-xstream/protocol.c +++ b/src/hardware/lecroy-xstream/protocol.c @@ -74,24 +74,7 @@ struct lecroy_wavedesc { }; } __attribute__((packed)); -static const uint32_t lecroy_devopts[] = { - SR_CONF_OSCILLOSCOPE, - SR_CONF_LIMIT_FRAMES | SR_CONF_GET | SR_CONF_SET, - 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_HDIV | SR_CONF_GET, - SR_CONF_TRIGGER_SLOPE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, - SR_CONF_HORIZ_TRIGGERPOS | SR_CONF_GET | SR_CONF_SET, - SR_CONF_SAMPLERATE | SR_CONF_GET, -}; - -static const uint32_t lecroy_analog_devopts[] = { - SR_CONF_NUM_VDIV | SR_CONF_GET, - SR_CONF_COUPLING | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, - SR_CONF_VDIV | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, -}; - -static const char *lecroy_coupling_options[] = { +static const char *coupling_options[] = { "A1M", // AC with 1 MOhm termination "D50", // DC with 50 Ohm termination "D1M", // DC with 1 MOhm termination @@ -101,22 +84,14 @@ static const char *lecroy_coupling_options[] = { }; static const char *scope_trigger_slopes[] = { - "POS", - "NEG", - NULL, + "POS", "NEG", NULL, }; -static const char *lecroy_xstream_trigger_sources[] = { - "C1", - "C2", - "C3", - "C4", - "LINE", - "EXT", - NULL, +static const char *trigger_sources[] = { + "C1", "C2", "C3", "C4", "LINE", "EXT", NULL, }; -static const struct sr_rational lecroy_timebases[] = { +static const struct sr_rational timebases[] = { /* picoseconds */ { 20, 1000000000000 }, { 50, 1000000000000 }, @@ -166,7 +141,7 @@ static const struct sr_rational lecroy_timebases[] = { { 1000, 1 }, }; -static const struct sr_rational lecroy_vdivs[] = { +static const struct sr_rational vdivs[] = { /* millivolts */ { 1, 1000 }, { 2, 1000 }, @@ -187,10 +162,7 @@ static const struct sr_rational lecroy_vdivs[] = { }; static const char *scope_analog_channel_names[] = { - "CH1", - "CH2", - "CH3", - "CH4", + "CH1", "CH2", "CH3", "CH4", }; static const struct scope_config scope_models[] = { @@ -200,21 +172,15 @@ static const struct scope_config scope_models[] = { .analog_channels = 4, .analog_names = &scope_analog_channel_names, - .devopts = &lecroy_devopts, - .num_devopts = ARRAY_SIZE(lecroy_devopts), - - .analog_devopts = &lecroy_analog_devopts, - .num_analog_devopts = ARRAY_SIZE(lecroy_analog_devopts), - - .coupling_options = &lecroy_coupling_options, - .trigger_sources = &lecroy_xstream_trigger_sources, + .coupling_options = &coupling_options, + .trigger_sources = &trigger_sources, .trigger_slopes = &scope_trigger_slopes, - .timebases = lecroy_timebases, - .num_timebases = ARRAY_SIZE(lecroy_timebases), + .timebases = timebases, + .num_timebases = ARRAY_SIZE(timebases), - .vdivs = lecroy_vdivs, - .num_vdivs = ARRAY_SIZE(lecroy_vdivs), + .vdivs = vdivs, + .num_vdivs = ARRAY_SIZE(vdivs), .num_xdivs = 10, .num_ydivs = 8, @@ -236,8 +202,8 @@ static void scope_state_dump(const struct scope_config *config, tmp, state->analog_channels[i].vertical_offset); } - tmp = sr_period_string(((float)config->timebases[state->timebase].q) / - ((float)config->timebases[state->timebase].p)); + tmp = sr_period_string(config->timebases[state->timebase].p, + config->timebases[state->timebase].q); sr_info("Current timebase: %s", tmp); g_free(tmp); @@ -315,8 +281,7 @@ static int analog_channel_state_get(struct sr_scpi_dev_inst *scpi, if (sr_scpi_get_string(scpi, command, &tmp_str) != SR_OK) return SR_ERR; - if (array_float_get(tmp_str, lecroy_vdivs, ARRAY_SIZE(lecroy_vdivs), - &j) != SR_OK) { + if (array_float_get(tmp_str, ARRAY_AND_SIZE(vdivs), &j) != SR_OK) { g_free(tmp_str); sr_err("Could not determine array index for vertical div scale."); return SR_ERR; @@ -390,8 +355,7 @@ SR_PRIV int lecroy_xstream_state_get(struct sr_dev_inst *sdi) if (sr_scpi_get_string(sdi->conn, "TIME_DIV?", &tmp_str) != SR_OK) return SR_ERR; - if (array_float_get(tmp_str, lecroy_timebases, ARRAY_SIZE(lecroy_timebases), - &i) != SR_OK) { + if (array_float_get(tmp_str, ARRAY_AND_SIZE(timebases), &i) != SR_OK) { g_free(tmp_str); sr_err("Could not determine array index for timbase scale."); return SR_ERR; @@ -687,7 +651,7 @@ SR_PRIV int lecroy_xstream_receive_data(int fd, int revents, void *cb_data) * the first enabled channel. */ if (++devc->num_frames == devc->frame_limit) { - sdi->driver->dev_acquisition_stop(sdi); + sr_dev_acquisition_stop(sdi); } else { devc->current_channel = devc->enabled_channels; lecroy_xstream_request_data(sdi);