Есть прибор, который может по 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 |
Требуется:
Дополнительное условие:
В случае нештатного прерывания программы, должен отсылаться запрос на выключение прибора.
Дополнительная задача:
Сделать асинхронное считывание данных, то есть при запросе передается действие, которое нужно совершить после считывания и очередь выполнения освобождается.