|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Zahar Kiselev 2:5030/382.1 10 Feb 2003 08:08:50 To : Vladimir Bormotov Subject : Re: Правильный выбор инструмента -------------------------------------------------------------------------------- Feb 09 23:58 03, Vladimir Bormotov wrote to Zahar Kiselev: ZK>> Есть электронное устройство, содержащее ZK>> микроконтроллер и подключенное к машине с Линуксом через ком-порт. VB> ...в системе видно через /dev/ttyS* Важно не то, через что оно видно. Важен последовательный протокол обмена. ZK>> Оно посылает некие байты и принимает некие команды, реализуя ZK>> некоторый специфический протокол общения. Соответственно требуется ZK>> написать программу, реализующую автомат с заданным множеством ZK>> состояний и возможных переходов между ними. Причем переходы между ZK>> состояниями (и соответствующие действия) должны выполняться не только ZK>> когда устройство что-то там прислало, но и когда оно _не_ прислало ZK>> чего-то за отведенный промежуток времени. VB> почему-то вспомнилось "Hити придумали те, кто не в состоянии VB> реализовать конечный автомат" - кто-то из отцов Unix'а ;) Вот инструмент (либо методика) реализации КА и ищется. ZK>> В задаче спрашивается - как, с помощью чего, рекомендуется писать ZK>> программы подобного типа? VB> с помощью чего угодно. я бы сказал import asyncore, сам знаешь где Спасибо, поглядим. ZK>> Понятно, что можно наплодить крайне запутанную конструкцию из ZK>> множества "if ... then" и кучи меток переходов. Hо может быть ZK>> существует какой-то набор инструментов для написания подобных ZK>> программ? VB> голова программера. Владение этой головы любимым инструментом, Я предполагаю, что есть и что-то специализированное(инструмент, либо хотябы методика), просто мы с тобой не знаем. И вот почему - сейчас _очень_ много пишут на ЯВУ для всяких контроллеров, осуществляющих обмен данными. От промышленных девайсов до внутренностей сотовых телефонов. Сомневаюсь, что все это программируют "в лоб", без удобств. VB> Если "идейно, на пальцах" - вашаешь select на порт, которому дается VB> timeout. Он вывалится или если что-то пришло, или если кончилось VB> время. С этой частью задачи как раз все понятно. Select на порт даже я умею вешать. VB> Далее, "дело это все аккуратно закодить" ;))) А вот в этой-то части и заключался мой вопрос. Тут у нас в эхе иногда присутствует сотрудник Nokia, может быть он увидит эти письма и что-нибудь скажет - так как эта фирма много телекоммуникациями занимается. Zahar(@spbdept.rbc.ru) --- Msged/LNX 6.1.1 * Origin: Остров Большой Березовый: http://birch-island.spb.ru (2:5030/382.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/32883e47490d.html, оценка из 5, голосов 10
|