Re[7]: Проблема с SerialPort
От: HowardLovekraft  
Дата: 07.11.08 19:22
Оценка:
Здравствуйте, Yeti_Bigfoot, Вы писали:

Y_B>по после этой конструкции прерывание не срабатывает


Понял. Событие.

Y_B>А разве не надо переинициализировать его?.. тогда надо просто сделать ожидание пока все не Y_B>уйдут, и менять паритет?

Y_B>Но после такого подхода на осциллографе никто даже не уходит.

Не знаю, что точно вы подразумеваете под переинициализацией, но то, что смена четности безболезненно может делаться для открытого порта, уверен. Я про общий случай — что точно делает SerialPort, надо смотреть. Сеттер свойства SerialPort.Parity в конечном счете вызовет API SetCommState.

По поводу ожидания отправки данных. Не факт, что метод Write этого не ждет. Рефлектора под рукой нет, глянуть не могу. На асме х.з., на API я бы вызывал WaitCommEvent.

В любом случае, для того, чтоб узнать, что на самом деле происходит с портом, настоятельно рекомендую portmon. Намного более информативная вещь, чем осциллограф. Интереса ради поставьте его и посмотрите, сколько лишних телодвижений делает SerialPort на каждый чих.

А так — слишком много неизвестных. Не видя протокола обмена с устройством, лога обращений к драйверу порта, не зная, что за конвертор вы используете, сложно сказать что-то более определенное.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.