SerialPort. По Read не приходят данные
От: UncleJ Россия  
Дата: 08.02.06 11:53
Оценка:
Здравствуйте.

Хоть тем, посвященных SerialPort создано немало, я так и не смог найти ответ на свой вопрос.

Ситуация такая:
Мне необходимо общаться с платой по COM-порту.
Тестовая программа под ДОС и старая версия, написанная под VC6 работают нормально. Т.е. отсылают набор символов и получают ответ от платы.
Но мне так и не получилось добиться этого при помощи SerialPort.
В ответ ничего не приходит.
Все осложняется еще и тем, что для проверки работоспособности приходится ездить к черту на кулички.

Решил написать тестовый пример, чтобы хоть примерно определить на каком этапе у меня возникает ошибка.



sp = new SerialPort(comboPort.Items[comboPort.SelectedIndex].ToString(), 1200);
sp.WriteTimeout = 20;
sp.ReadTimeout = 20;
sp.Open();


Порт открывается (sp.IsOpen == true)

Дальше просто пытаюсь прослушать порт:
string s = sp.ReadExisting();


Чтобы не ездить далеко и тестировать на плате, подключил мышь к COM-порту. Она определилась виндой автоматически и поэтому открыть соответствующий порт я уже не могу.
Поэтому в устройствах я деинсталлировал ее. Теперь порт открывается. Но по ReadExisting ничего не приходит.

Меня вот что интересует:

1. Вообще возможно в качестве тестируемого устройства использовать мышь так как это сделал я? Должны ли какие-то данные приходить в этом случае от нее?

2. Если должны, то почему такой простой код не работает?

3. Если не должны (либо мышь не подходит для теста), то какими еще подручными средствами можно проверить работоспособность кода, не мотаясь к самой плате?

Если есть что добавить к написанному, буду рад услышать. С сом-портом и SerialPort работаю впервые, поэтому нахожусь в глубокой растеренности.
Re: SerialPort. По Read не приходят данные
От: UncleJ Россия  
Дата: 09.02.06 07:56
Оценка:
Друзья.
Помогите, пожалуйста, очень надо
Re: SerialPort. По Read не приходят данные
От: MBo  
Дата: 09.02.06 08:14
Оценка:
Используй событие DataReceived
Для тестирования можно использовать перемычку Com1-Com2 с разводкой (для 9-контактных разъемов) 5-5, 2-3, 3-2
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.