помогите с программированием Com (RS232)
От: tdg12 Россия  
Дата: 19.06.02 11:18
Оценка:
Нужно оправлять устройством по RS232. Протокол требует:
1й байт — "$" с единицей в бите четности, в остальных байтах бит четности — 0

Все это нужно делать из-под Windows 95/98/NT

Пробовал ставить MARKPARITY/SPACEPARITY находу — SetCommState отрабатывает, GetCommState говорит, что все установлено, но бит четности как был 0, так и остался (видно на осцилографе). Неужели придется свой драйвер писать?!
Помогите с этим разобраться.
Re: помогите с программированием Com (RS232)
От: Максим Алексейкин Россия  
Дата: 19.06.02 11:48
Оценка:
Здравствуйте tdg12, Вы писали:

T>Нужно оправлять устройством по RS232. Протокол требует:

T>1й байт — "$" с единицей в бите четности, в остальных байтах бит четности — 0

T>Все это нужно делать из-под Windows 95/98/NT


T>Пробовал ставить MARKPARITY/SPACEPARITY находу — SetCommState отрабатывает, GetCommState говорит, что все установлено, но бит четности как был 0, так и остался (видно на осцилографе). Неужели придется свой драйвер писать?!

T>Помогите с этим разобраться.

А fParity = TRUE ставишь?
ICQ #311116826
Re[2]: помогите с программированием Com (RS232)
От: Аноним  
Дата: 19.06.02 12:55
Оценка:
Здравствуйте Максим Алексейкин, Вы писали:

МА>А fParity = TRUE ставишь?


Точно, не ставлю :(
Думал это только для EVENPARITY/ODDPARITY :)

Вот только интересно получается:
т.к устройство территориально далеко, я проверял работу программы при помощи "эмулятора" устройства. Т.е маленькая программа, получающая данные с порта и птправляющая разумные ответы. Все это зацеплено через нульмодем.
Так вот, когда программа переключает четность (MARK/SPACE), а эмулятор работает без контроля четности (NOPARITY) — эмулятор пакетик получает, а программа ответ — нет. Т.е что-то все-таки меняется в настройках порта. Это наблюдалось под Win2k.
Может fParity имеет смысл только для 9x?
Re[3]: помогите с программированием Com (RS232)
От: Dima2  
Дата: 20.06.02 08:38
Оценка:
Здравствуйте Аноним, Вы писали:

А>Так вот, когда программа переключает четность (MARK/SPACE), а эмулятор работает без контроля четности (NOPARITY) — эмулятор пакетик получает, а программа ответ — нет. Т.е что-то все-таки меняется в настройках порта. Это наблюдалось под Win2k.


Попробуй отключить флаг выскакивания при получении ошибки четности(не помню как назвается). В W2K это существенно, для Win9x не влияет.
Re[4]: помогите с программированием Com (RS232)
От: Dima2  
Дата: 20.06.02 08:43
Оценка:
Здравствуйте Dima2, Вы писали:

D>Попробуй отключить флаг выскакивания при получении ошибки четности(не помню как назвается). В W2K это существенно, для Win9x не влияет.


fAbortOnError = 0
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.