|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 10 Feb 2003 00:58:23 To : Zahar Kiselev Subject : Re: Правильный выбор инструмента --------------------------------------------------------------------------------
Hi, Zahar!
>>>>> "ZK" == Zahar Kiselev <Zahar.Kiselev@p1.f382.n5030.z2.fidonet.org> writes:
ZK> Тут уже не раз говорились совершенно правильные слова о выборе
ZK> наиболее соответствующего решаемой задаче инструмента. Проблема лишь в
ZK> том, что далеко не всегда бывает просто такой инструмент
ZK> обнаружить. Это только под виндами все знают "что чем делать". Пусть
ZK> не всегда правильно знают, но знают. А в случае линукса - обычно
ZK> "разводят руками".
нет, в случае линукса, все пользуют то, что знают.
А некоторые, даже если им предлагают вполне конкретные альтернативы,
продолжают утверждать, что то, что они знают гораздо лучше, чем что-то
новое ;)))
ZK> Вот очередная задачка - она возникла не у меня, но хотелось бы помочь
ZK> советом хорошему человеку. Есть электронное устройство, содержащее
ZK> микроконтроллер и подключенное к машине с Линуксом через ком-порт.
...в системе видно через /dev/ttyS*
ZK> Оно посылает некие байты и принимает некие команды, реализуя некоторый
ZK> специфический протокол общения. Соответственно требуется написать
ZK> программу, реализующую автомат с заданным множеством состояний и
ZK> возможных переходов между ними. Причем переходы между состояниями (и
ZK> соответствующие действия) должны выполняться не только когда
ZK> устройство что-то там прислало, но и когда оно _не_ прислало чего-то
ZK> за отведенный промежуток времени.
почему-то вспомнилось "Hити придумали те, кто не в состоянии реализовать
конечный автомат" - кто-то из отцов Unix'а ;)
ZK> В задаче спрашивается - как, с помощью чего, рекомендуется писать
ZK> программы подобного типа?
с помощью чего угодно. я бы сказал import asyncore, сам знаешь где :)
Там конечно не все out-of-box, но базовая функциональность для
chat-протоколов (когда в одном канале передачи информации идет обмен
туда-сюда) есть. Таймауты тоже привешиваются ;)
ZK> Понятно, что можно наплодить крайне запутанную конструкцию из
ZK> множества "if ... then" и кучи меток переходов. Hо может быть
ZK> существует какой-то набор инструментов для написания подобных
ZK> программ?
голова программера. Владение этой головы любимым инструментом,
библиотеками к этому инсрументу и тд. и тп.
Если "идейно, на пальцах" - вашаешь select на порт, которому дается
timeout. Он вывалится или если что-то пришло, или если кончилось время.
Далее, "дело это все аккуратно закодить" ;)))
--
Bor.
--- ifmail v.2.15dev5
* Origin: BorHomeLand (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/25418cd68aac.html, оценка из 5, голосов 10
|