Bu işlem "2.2.2. Сервис pico-tcp"
sayfasını silecektir. Lütfen emin olun.
Данный сервис является альтернативной утилитой для цифрового осциллографа PS400A, осуществляющей сбор данных. Данный сервис использует TCP-протокол для связи с пользовательским клиентом. Папка с кодом: тык
Сервис работает в фоновом режиме и принимает клиентские соедениния с локальной машины с сетевого порта 5003
. Протокол управления осциллографа подразумевает сообщения вида:
1.1. Магическое слово (1-й байт сообщения): 0xAA
Смысл 2-го байта зависит от ситуации:
2.1. Команда (2-й байт сообщения): 0x00 - 0x0E
2.2. Ответ сервера: 0xC0 - 0xCE
(в ответ на успешное завершение сответствующей команды)
2.3. Флаг ошибки: 0xFF
(если возникла ошибка на сервере)
В случае ошибки 3-й байт указывает на место, где та произошла, и четыре следующих байта содержат код ошибки. Коды ошибок содержатся в файле PicoStatus.h. В иных случаях, начиная с 3-го байта идут параметры команды (сообщение от клиента) или запрашиваемые значения величин (сообщение от сервера).
0x01
- pico_open()
: открыть устройство для работы0x02
- pico_xml_config(uint32_t size, char filename[size])
: считать параметры из файла XML0x03
- pico_close()
: закрыть устройство0x04
- pico_get_current_params()
: возвращает клиенту текушие значения количества точек, моментов измерений, частоты дискретизации и числа каналов0x05
- pico_probe()
: пробное сообщение на сервер0x06
- pico_set_points(uint32_t size, uint32_t points[size])
: установить значения количества точек0x07
- pico_set_sample_rate(uint32_t sample_rate)
: установить значение частоты дискретизации0x08
- pico_set_times(uint32_t size, uint32_t times[size])
: установить значения моментов измерения0x09
- pico_configure_channels(uint32_t channels, uint8_t trig_channel, int32_t direction, uint16_t threshold, int16_t auto_ms)
: конфигурация каналов осциллографа (число каналов, триггер, направление триггера, пороговое напряжение, время автотриггера в мс)0x0A
- pico_begin_measurement()
: начать измерение0x0C
- pico_set_params(uint32_t size, uint32_t points[size], uint32_t times[size], uint32_t sample_rate, uint32_t number_channels)
: установить параметры (кол-во точек и моменты отсчета, частоту дискретизации и число каналов)0x0D
- pico_exit()
: закрыть устройство и закончить сетевой сеанс0x0E
- pico_stop()
: остановить измерениеДопустим пользователь хочет открыть устройство для работы:
cmd$ open
Сервер открывает устройство и при успехе клиент выводит:
Pico device openned
Если же на сервере возникла ошибка, клиент парсит ее из тела ответа и выводит:
Error at ADC: 0xFF
Error code: PICO_NOT_FOUND
Далее пользователь может захотеть установить значения количества точек. Пример команды:
set_points 2 [2000, 24000]
Дальнейшее общение сервера и клиента аналогично предыдущим примерам
Bu işlem "2.2.2. Сервис pico-tcp"
sayfasını silecektir. Lütfen emin olun.