rigol-ds: Support VS5000 series devices.

This commit is contained in:
Martin Ling 2013-12-04 21:38:05 +00:00
parent b8705e99e4
commit 962af1a379
3 changed files with 17 additions and 2 deletions

View File

@ -164,6 +164,16 @@ static const struct rigol_ds_model supported_models[] = {
{"DS2072", RIGOL_DS2000, PROTOCOL_IEEE488_2, {5, 1000000000}, {500, 1}, {500, 1000000}, false, 14}, {"DS2072", RIGOL_DS2000, PROTOCOL_IEEE488_2, {5, 1000000000}, {500, 1}, {500, 1000000}, false, 14},
{"DS2102", RIGOL_DS2000, PROTOCOL_IEEE488_2, {5, 1000000000}, {500, 1}, {500, 1000000}, false, 14}, {"DS2102", RIGOL_DS2000, PROTOCOL_IEEE488_2, {5, 1000000000}, {500, 1}, {500, 1000000}, false, 14},
{"DS2202", RIGOL_DS2000, PROTOCOL_IEEE488_2, {2, 1000000000}, {500, 1}, {500, 1000000}, false, 14}, {"DS2202", RIGOL_DS2000, PROTOCOL_IEEE488_2, {2, 1000000000}, {500, 1}, {500, 1000000}, false, 14},
{"VS5022", RIGOL_VS5000, PROTOCOL_LEGACY, {20, 1000000000}, {50, 1}, {2, 1000}, false, 14},
{"VS5022D", RIGOL_VS5000, PROTOCOL_LEGACY, {20, 1000000000}, {50, 1}, {2, 1000}, true, 14},
{"VS5042", RIGOL_VS5000, PROTOCOL_LEGACY, {10, 1000000000}, {50, 1}, {2, 1000}, false, 14},
{"VS5042D", RIGOL_VS5000, PROTOCOL_LEGACY, {10, 1000000000}, {50, 1}, {2, 1000}, true, 14},
{"VS5062", RIGOL_VS5000, PROTOCOL_LEGACY, {5, 1000000000}, {50, 1}, {2, 1000}, false, 14},
{"VS5062D", RIGOL_VS5000, PROTOCOL_LEGACY, {5, 1000000000}, {50, 1}, {2, 1000}, true, 14},
{"VS5102", RIGOL_VS5000, PROTOCOL_LEGACY, {2, 1000000000}, {50, 1}, {2, 1000}, false, 14},
{"VS5102D", RIGOL_VS5000, PROTOCOL_LEGACY, {2, 1000000000}, {50, 1}, {2, 1000}, true, 14},
{"VS5202", RIGOL_VS5000, PROTOCOL_LEGACY, {2, 1000000000}, {50, 1}, {2, 1000}, false, 14},
{"VS5202D", RIGOL_VS5000, PROTOCOL_LEGACY, {2, 1000000000}, {50, 1}, {2, 1000}, true, 14},
}; };
SR_PRIV struct sr_dev_driver rigol_ds_driver_info; SR_PRIV struct sr_dev_driver rigol_ds_driver_info;

View File

@ -469,7 +469,10 @@ SR_PRIV int rigol_ds_receive(int fd, int revents, void *cb_data)
len < ACQ_BUFFER_SIZE ? len : ACQ_BUFFER_SIZE); len < ACQ_BUFFER_SIZE ? len : ACQ_BUFFER_SIZE);
} else { } else {
waveform_size = probe->type == SR_PROBE_ANALOG ? waveform_size = probe->type == SR_PROBE_ANALOG ?
DS1000_ANALOG_LIVE_WAVEFORM_SIZE : DIGITAL_WAVEFORM_SIZE; (devc->model->series == RIGOL_VS5000 ?
VS5000_ANALOG_LIVE_WAVEFORM_SIZE :
DS1000_ANALOG_LIVE_WAVEFORM_SIZE) :
DIGITAL_WAVEFORM_SIZE;
len = sr_scpi_read(scpi, (char *)devc->buffer, len = sr_scpi_read(scpi, (char *)devc->buffer,
waveform_size - devc->num_frame_bytes); waveform_size - devc->num_frame_bytes);
} }

View File

@ -37,6 +37,7 @@
#define DS1000_ANALOG_LIVE_WAVEFORM_SIZE 600 #define DS1000_ANALOG_LIVE_WAVEFORM_SIZE 600
#define DS2000_ANALOG_LIVE_WAVEFORM_SIZE 1400 #define DS2000_ANALOG_LIVE_WAVEFORM_SIZE 1400
#define VS5000_ANALOG_LIVE_WAVEFORM_SIZE 2048
/* Needs to be made configurable later */ /* Needs to be made configurable later */
#define DS2000_ANALOG_MEM_WAVEFORM_SIZE_1C 14000 #define DS2000_ANALOG_MEM_WAVEFORM_SIZE_1C 14000
#define DS2000_ANALOG_MEM_WAVEFORM_SIZE_2C 7000 #define DS2000_ANALOG_MEM_WAVEFORM_SIZE_2C 7000
@ -50,10 +51,11 @@ enum rigol_ds_series {
RIGOL_DS2000, RIGOL_DS2000,
RIGOL_DS4000, RIGOL_DS4000,
RIGOL_DS6000, RIGOL_DS6000,
RIGOL_VS5000,
}; };
enum rigol_protocol_flavor { enum rigol_protocol_flavor {
/* Used by DS1000 series */ /* Used by DS1000 and VS5000 series */
PROTOCOL_LEGACY, PROTOCOL_LEGACY,
/* Used by DS2000, DS4000, DS6000, ... series */ /* Used by DS2000, DS4000, DS6000, ... series */
PROTOCOL_IEEE488_2, PROTOCOL_IEEE488_2,