Нужно оправлять устройством по RS232. Протокол требует:
1й байт — "$" с единицей в бите четности, в остальных байтах бит четности — 0
Все это нужно делать из-под Windows 95/98/NT
Пробовал ставить MARKPARITY/SPACEPARITY находу — SetCommState отрабатывает, GetCommState говорит, что все установлено, но бит четности как был 0, так и остался (видно на осцилографе). Неужели придется свой драйвер писать?!
Помогите с этим разобраться.
Здравствуйте 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?
Здравствуйте Аноним, Вы писали:
А>Так вот, когда программа переключает четность (MARK/SPACE), а эмулятор работает без контроля четности (NOPARITY) — эмулятор пакетик получает, а программа ответ — нет. Т.е что-то все-таки меняется в настройках порта. Это наблюдалось под Win2k.
Попробуй отключить флаг выскакивания при получении ошибки четности(не помню как назвается). В W2K это существенно, для Win9x не влияет.
Здравствуйте Dima2, Вы писали:
D>Попробуй отключить флаг выскакивания при получении ошибки четности(не помню как назвается). В W2K это существенно, для Win9x не влияет.