Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2017-05-24 16:16:07 ЛС | профиль | цитата
Вот именно, что пока

Если у кого есть работающее железо - скажите, вышеизложенные рассуждения соответствуют действительности, али как ???
Теория - это одно, а жизнь - другое.

В принципе, железо у меня есть (в нескольких экземплярах), но руки пока не доходят...
Сейчас делаю комплект п/плат для Изделия, пойдут в изготовление -- куплю "хороший" осциллограф и, вот тогда уже, начну плотно работать с софтом.

Однако, Netspirit, поставил задачу возможности некоторого "кольцевания". Она может иметь смысл, если распознавать еще и ошибки приема (тоже задача, между прочим, хотя там и нет принципиальных сложностей).
Ну начал он сыпать какими то там FrameError -- закрыть при этом порт без плясок с бубном, не самое плохое было бы.

Моя мысль пока такая: CloseCom состоит только из установки Event-а на закрытие одного из потоков.
Он, выйдя из "вечного цикла", устанавливает Event на закрытие другого потока.
Который, в свою очередь выйдя из "вечного цикла", убивает файл (CloseHandle(hFile)).
Сами потоки в режиме AutoFree, конечно же.
Закольцевать doOpen не получится, а вот doClose - вполне себе.

В качестве окончательной "шлифовки" можно было бы завести опциональное формирование пакета. На все случаи жизни ответа не дашь, конечно же.
Но, даже "опциональная парочка" могла бы принести пользу.
Например - таймаут, и концевой символ. Если св-ва "пустые" - то как и сейчас, пусть юзер этим занимается.
А вот коллеге kaban4ik-у, уже помощь была бы (см. его схему в этом топике).
У Modbus-ASCII - кажется (в смысле - по памяти) символ ';' является концевым для пакета.

Ну это такой как бы план, как бы работы
карма: 9

0
файлы: 1Интерфейсная плата.rar [523.3KB] [821]
Редактировалось 1 раз(а), последний 2017-05-24 16:16:44