Com-порт под Виндой
Есть ли кто писал для COM-порта под Виндой - отзовитесь.
А проблема такова. Приспичило накидать для прогу для COM-порта, которая должна была
управлять промышленным контроллером. Не имея двух машин для тестирования, я написал
прогу и симулятор кнтроллера, который подвесил на другой порт и просто их соединил (порты на одной машине). Долго мучался - глюки шли, причём не систематически, но потом всё-таки выловил - если послать байт 0001 0001, т. е. 17, то принимающий порт категорически отказывается его распознавать,
просто тихо сидит и молчит, типа передача и не начиналась, а во всех других случаях передаётся без проблем?
Да, кстати, под DOS на той же машине те же вещи проходят без проблем.
Цитата:
Originally posted by vinivor
Привет!
Есть ли кто писал для COM-порта под Виндой - отзовитесь.
А проблема такова. Приспичило накидать для прогу для COM-порта, которая должна была
управлять промышленным контроллером. Не имея двух машин для тестирования, я написал
прогу и симулятор кнтроллера, который подвесил на другой порт и просто их соединил (порты на одной машине). Долго мучался - глюки шли, причём не систематически, но потом всё-таки выловил - если послать байт 0001 0001, т. е. 17, то принимающий порт категорически отказывается его распознавать,
просто тихо сидит и молчит, типа передача и не начиналась, а во всех других случаях передаётся без проблем?
Да, кстати, под DOS на той же машине те же вещи проходят без проблем.
Привет!
Есть ли кто писал для COM-порта под Виндой - отзовитесь.
А проблема такова. Приспичило накидать для прогу для COM-порта, которая должна была
управлять промышленным контроллером. Не имея двух машин для тестирования, я написал
прогу и симулятор кнтроллера, который подвесил на другой порт и просто их соединил (порты на одной машине). Долго мучался - глюки шли, причём не систематически, но потом всё-таки выловил - если послать байт 0001 0001, т. е. 17, то принимающий порт категорически отказывается его распознавать,
просто тихо сидит и молчит, типа передача и не начиналась, а во всех других случаях передаётся без проблем?
Да, кстати, под DOS на той же машине те же вещи проходят без проблем.
Мне кажется, глюк чисто системный. С этим в VB и C
встречался не раз. Причем досовкая прога, которая работает напрямую с регистрами, в винде под эмуляцией ДОС глючит - не всегда принимает, а в чистом ДОСе - все в порядке...
Цитата:
Originally posted by vinior
если послать байт 0001 0001, т. е. 17, то принимающий порт категорически отказывается его распознавать,
просто тихо сидит и молчит, типа передача и не начиналась, а во всех других случаях передаётся без проблем
если послать байт 0001 0001, т. е. 17, то принимающий порт категорически отказывается его распознавать,
просто тихо сидит и молчит, типа передача и не начиналась, а во всех других случаях передаётся без проблем
Возможно причина в том что 17 это число принятое по умолчанию для члена XonChar структуры DCB? Если выполнить GetCommState то в этом можно убедиться... Я использую ком-порт для общения с железом и все методы управления потоком отключаю, и тогда спокойно посылаю/принимаю с одного порта на другой...