|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alexandr S. Agranovsky 2:5020/400 10 Feb 2003 00:54:07 To : Zahar Kiselev Subject : Re: Правильный выбор инструмента --------------------------------------------------------------------------------
Hi, Zahar Kiselev
ZK> Есть электронное устройство, содержащее микроконтроллер и подключенное к
ZK> машине с Линуксом через ком-порт. Оно посылает некие байты и принимает некие
ZK> команды, реализуя некоторый специфический протокол общения. Соответственно
ZK> требуется написать программу, реализующую автомат с заданным множеством
ZK> состояний и возможных переходов между ними. Причем переходы
ZK> между состояниями(и соответствующие действия) должны выполняться не только
ZK> когда устройство что-то там прислало, но и когда оно _не_ прислало чего-то
ZK> за отведенный промежуток времени. В задаче спрашивается - как, с помощью
ZK> чего, рекомендуется писать программы подобного типа? Понятно, что можно
ZK> наплодить крайне запутанную конструкцию из множества "if ... then" и кучи
ZK> меток переходов. Hо может быть существует какой-то набор инструментов для
ZK> написания подобных программ?
Проще взять исходники ppp и выдрать из него реализацию
finite state machine (конечный автомат). В нем, кстати, таймауты
тоже учтены. Более того, сам протокол PPP базируется на идее КА
и все подпротоколы PPP (LCP, IPCP, ....) определены как
наборы соответствующих состояний одного и того же КА.
- ---
Alexandr S. Agranovsky llb@udmnet.ru
--- ifmail v.2.15dev5
* Origin: LLB, LLC (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/36429c07fee9.html, оценка из 5, голосов 10
|