Skip to end of metadata
Go to start of metadata

Есть прибор, который может по TCP/IP интерфейсу получать команды и возвращать ответ. Доступны следующие команды:

ЗапросОтветКомментарий
"start\n""OK\n" / "Error $code\n" / Empty

Вместо $code подставлен код ошибки. Empty означает, что ответ не пришел в течение одной секунды.

Команда переводит прибор в инициализированное состояние.

"stop\n""OK\n" / "Error $code\n" / EmptyПереводит прибор в неинициализированное состояние
"read\n""result=$result\n"/ "Error $code\n" / EmptyСчитывает текущее показание прибора в формате 00.000

Требуется:

  • Создать виртуальный прибор, который будет работать по такому протоколу. Открывать серверный TCP socket и принимать входящие подключения. Возвращаемые значения должны быть заранее заданной функцией времени.
  • Создать программу для считывания данных с прибора с фиксированной периодичностью и записи их в тестовый файл. Периодичность считывания и параметры подключения к прибору должны быть настраивамыми из конфигурационного файла.

Дополнительное условие:

В случае нештатного прерывания программы, должен отсылаться запрос на выключение прибора.

Дополнительная задача:

Сделать асинхронное считывание данных, то есть при запросе передается действие, которое нужно совершить после считывания и очередь выполнения освобождается.

  • No labels