Написал маленькую прораммку на C# котороая посылает данные в последовательный порт бинарные данные и считывает.
Программа очень простая.
Под Win XP работает замечательнольно. А под Win 98 начинает ся развлекалово.
То что читаю с помощью SerialPort.ByteRead() приходит нормально. А то что читаю с помощью SerialPort.Read(byte[] data,int offset, int count) считывает неправильно.
Т.е. первые два байта считываеются с помощью SerialPort.ByteRead() и всё ок а дальше считывается полный бред.
Может кто нить огбьяснит мне такое поведение порта? А ещё как нить расскажет как это исправить.
Вариаант типа использовать ByteRead() для чтения всего контента не предлагать.
Интересно.
В предыдущем своём проекте, ещё на MS VS2003, я работал с портом используюя АПИшные CreateFile, ReadFile, WriteFile (разумеется, в нормальной обёртке, с функциями упакованными в dll)
В новом проекте (уже на MS VS2005) делаю уже с использованием появившего во втором фреймворке класса SerialPort. Но работу с железом пока не проверял.
msdn говорит, что платформа Windows98 для класса SerialPort поддерживается... но если программа отлично работающая в XP, не корректно работает на 98-м, то скорее всего нормальной совместимости нет (так как Com порт он и есть COM порт, что в DOS-е, что в XP)
-------------------------------------------
надышаться можно только ветром...
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Всё ребята извините за беспокойство. Сам ступил. Оказыватся что когда ставишь свойство порта Parity в состояние NONE программа считает что бита паритета нет. А потому и сбиивается иснхронизауия и далее прёт всякая ерунда.
Хотя при в Help стоит что он простоо не проверяется, а не отсутсвует ( могу ошибаться. это с моим уровнем знания англиского проблеммы). в общем всем спаисбо.