Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Логика программы. Com-порт. [D7, XP]


Страницы:   1 2

Unknowing ©   (2006-10-29 11:28:00) 

Доброго времени суток! Вопрос такой: есть устройство подключенное с СОМ-порту ком-а. Утройство передаёт бинарное сообщение типа
ID_length_[message_struct] с частотой 10 Гц. Как правильно составить логику опроса порта для вывода информации на экран и одновременно в файл(второй поток) без потери данных...Конкретизируя, как правильно создать буфер и как с ним работать? :)


Anatoly Podgoretsky   (2006-10-29 12:31:00) [21]

> Ответ на сообщение [2]

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


Unknowing   (2006-10-29 12:31:00) [22]


> Ketmar ©   (29.10.06 12:25) [9]

Ну чучки сегодня!! И челсями всякими владеют и советы ценные раздают! :) Спасибо!


>Всем откликнувшимся

Всё же если есть код, буду очень благодарен!! :)


Ketmar   (2006-10-29 12:25:00) [23]

>[7] Джо(c) 29-Oct-2006, 12:21
>automata :)
гугль находит и моё написание. %-)

>[8] Unknowing(c) 29-Oct-2006, 12:21
>накапливать байты сообщения от ID до конца сообщения и
>сразу передать в буфер?
угу. можно и так. %-)

>Если у Вас есть кусок рабочего кода буду весьма признателен!
неа. нету. чукча не писатель, чукча читатель-советчик.


Unknowing   (2006-10-29 12:21:00) [24]


> Ketmar ©   (29.10.06 12:16) [5]

Конечный автомат...С этим ясно. Т.е. в процедуре приема накапливать байты сообщения от ID до конца сообщения и сразу передать в буфер? Если у Вас есть кусок рабочего кода буду весьма признателен! ;) (прошу прощения за нескромность, но не программисту сложновато сегодня)


Джо   (2006-10-29 12:21:00) [25]


> FSA -- это "finite state automate".

automata :)


Ketmar   (2006-10-29 12:17:00) [26]

оно же называется иногда FSM -- "finite state machine".


Ketmar   (2006-10-29 12:16:00) [27]

как приходят -- так и принимать. кто лучше тебя знает, как дивайс передаёт?
а передавать -- когда весь пакет приехал. а чтобы это определить, как раз можно использовать FSA.
FSA -- это "finite state automate".


Unknowing   (2006-10-29 12:12:00) [28]


> Ketmar ©   (29.10.06 12:09) [3]


> собрал все байты, да отдал разборщику.

Вот тут-то я и торможу! Как быть с частотой приема и когда всё это разбощику передавать... Ну, не пойму!!! А Fsa что такое?


Ketmar   (2006-10-29 12:09:00) [29]

а дальше -- формат пакета известен? вот и всё. собрал все байты, да отдал разборщику. можно в цикле байты собирать, можно FSA сделать.


Unknowing   (2006-10-29 11:43:00) [30]


> Anatoly Podgoretsky ©   (29.10.06 11:37) [1]

А по какому событию его (буфер) разбирать в голове не укладывается... По событию прихода байта я его сразу передаю в буфер... А дальше что?! Ступор...


Anatoly Podgoretsky   (2006-10-29 11:37:00) [31]

> Ответ на сообщение [0]

С такой частотой сложно потерять и на IBM PC
Буфер например можно создать с помощью GetMem или выделить его статически на
этапе компиляции, что проще и надежнее


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо