Конфигурация demo_pycon - это демонстрационная и тестовая программа, показывающая, как можно использовать язык программирования python для создания клиент-серверных приложений для DAQ системы. Она использует библиотеку StdPyApp.
Название происходит от demo python console, т.к. в основе взаимодействия программы python и пакета crwdaq лежит консоль stdin/stdout, переназначенная в анонимный канал связи. Программа python читает команды и данные для обработки из консоли stdin, которая подключена к каналу и работает в асинхронном (неблокирующем) режиме. Результаты обработки передаются путем печати в консоль stdout, которая тоже подключена к каналу связи. За приемопередачу и обработку команд и данных на стороне crwdaq отвечает клиентская программа на языке daqpascal.
Основным способом взаимодействия являются команды в
формате DaqScript, т.е.
@Command Data. Признаком команды является
символ @, за которым следует непустой
идентификатор команды, пробел и данные, формат которых зависит от
команды. Команда завершается маркером конца строки EOL
(end of line). Признак команды должен быть первым символом в
строке. Простые команды передают данные в виде списка значений,
разделенных пробелами и/или запятыми. Двоичные данные передаются в
закодированном виде, например, в виде HEX или
BASE64. В ответ на клиентские запросы сервер отвечает
командами аналогичного формата.
Количество команд неограничено, скорость приемопердачи и анализа не зависит от размера таблицы команд. Поэтому нет большого смысле делать чрезмерно сложные команды, лучше позаботиться об их понятности (для этого надо давать легко понятные имена).
В данном примере серверная программа demo_pycon.py вычисляет синусовую волну (wave) по требованию клиенской программы demo_pycon_main_ctrl.pas на языке DaqPascal. Кроме того, клиентская программа посылает запросы, нужные для оценки частоты опросов PollRate и времени отклика PingTime.
Здесь приведены некоторые команды программы demo_pycon.py.
#################### некоторые команды: запросы > и ответы <
> @help # справка по командам (для прикладных разработчиков)
> @wave t # посылка запроса для расчета волны в момент времени t
< @wave t sin cos # возврат результата расчета - волна t sin(t) cos(t)
> @para a f n # уставка параметров amlitude,frequency,noise
< @para a f n # возврат актуальных значений этих параметров
> @pingecho t # посылка пинга для оценки времени отклика
< @pingecho t # возврат пинга для оценки времени отклика
> @pollcount # посылка запроса счетчика циклов
< @pollcount c # возврат счетчика циклов c
#################### и так далееЖелаем приятного использования тестовой программы demo_pycon.
CRW-DAQ Copyright (c) 2001-2025 Alexey Kuryakin daqgroup@mail.ru