Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непонятное поведение COM-порта 
:(
    Опции темы
Vetal1
Дата 6.8.2008, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Есть 2 прибора, оба отсылают данные на одинаковых параметрах передачи: "COM2", 115200, Parity.None, 8, StopBits.One

Скачанная с интернета прога-терминал COM-порта читает данные с обоих портов, причем они верные, а вот один и тот же код C# работает почему-то только с одим прибором, со вторым программа выполняется без ошибок, но событие sp.DataReceived не срабатывает (хотя порт открыт и данные на него идут!!!). Вот код считывания.


Код

                sp = new SerialPort("COM2", 115200, Parity.None, 8, StopBits.One);
                sp.Open();
                sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);

                .........

                void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
               {}


Даже и не знаю что тут делать...

Это сообщение отредактировал(а) Vetal1 - 6.8.2008, 11:56
PM MAIL   Вверх
Vetal1
Дата 6.8.2008, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



http://community.livejournal.com/ru_progra...thread=13628322 - что-то похожее написано тут, может кто объяснит где ставить Invoke???
PM MAIL   Вверх
Vetal1
Дата 6.8.2008, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Пробую читать данные без события, создавая параллельный поток читающий sp.ReadExisting(), он считывает данные из буфера, которые были в нем на момент открытия, больше в буфер ничего не поступает. Соответственно поток опрашивает буфер постоянно, но найти в нем ничего не может. Почему данные могут не поступать в буфер? smile 
PM MAIL   Вверх
Vetal1
Дата 7.8.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Написал все с использованием Win32 функций, все заработало. Действительно странно, почему буфер блокировался при открытии соединения с использованием средств .NET (причем только во втором случае), может быть это из-за кривонаписанных драйверов, формирующих виртуальный COM-порт???
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0627 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.