C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 Здравствуйте, гость ( Вход | Регистрация )   Скачать форум | Поиск по Форуму | Участники | Помощь
 Поиск по:   сайтy   
   архиву форума   
  ОтветитьНовая тема
Работа с COM портом под WinXP
« предыдущая тема | следующая тема » Подписаться на тему | Отправить тему на E-mail | Распечатать тему
Human
Отправлено: 04.03.2004, 23:39 Цитировать


Unregistered









Какие внешние компоненты работают с последовательным портом под XP? Раньше я пользовался ComThread, под 98, Me все работает замечательно, а под XP невозможно даже проинициализировать порт.
Или объясните, плиз, мне убогому sad.gif как вынуть данные с ком порта через потоки.
 
Top
Искандер
  Отправлено: 05.03.2004, 18:38 Цитировать


Unregistered









А чем API-шные функции не нравятся? В потоке - так совсем замечательно работает.
 
Top
Admin
Отправлено: 05.03.2004, 18:56 Цитировать


Владимир


Группа: Администратор
Сообщений: 1190
Пользователь № 1
Регистрация: 17.11.02



Тема:
http://borland.xportal.ru/forum/viewtopic.php?t=7699

Посмотрите компоненты nrComm Lib:
http://www.deepsoftware.ru/nrcomm

--------------------

Но настанет пора, и проснется народ, разогнет он могучую спину,
И на бар и царя, на попов и господ он отыщет покрепче дубину.
 
Послать сообщение E-mail адрес Домашняя страница  Top
Human
Отправлено: 05.03.2004, 22:38 Цитировать


Unregistered









QUOTE (Искандер @ 05/03/2004, 19:40)
А чем API-шные функции не нравятся? В потоке - так совсем замечательно работает.

Догадываюсь sad.gif
Пример кода, плиз, как получить байт из кома через потоки
 
Top
Human
Отправлено: 05.03.2004, 22:51 Цитировать


Unregistered









QUOTE (Admin @ 05/03/2004, 19:58)
Тема:
http://borland.xportal.ru/forum/viewtopic.php?t=7699

Посмотрите компоненты nrComm Lib:
http://www.deepsoftware.ru/nrcomm

1. out под XP не пройдет? Я правильно понял? Нужно войти в нулевое кольцо?

2. Где-же ключик то добыть? sad.gif
ComTread, которым я пользовался, freeware был...
 
Top
Guest
Отправлено: 07.03.2004, 09:35 Цитировать


Unregistered









QUOTE (Human @ 05/03/2004, 23:40)
Догадываюсь sad.gif
Пример кода, плиз, как получить байт из кома через потоки

Итак, код.
Предположим, что инициализировали порт. Теперь как принять байт из порта. Обычно, чтобы чего-нибудь из него считать, надо чего-нибудь туда записать)) Т. е. запрос.
CODE

// два массива, по длине с большой избыточностью,
// но это у меня при отладке используется.
unsigned char   Buff[2000], Buffa[2000];
//тут формируем пачку запроса,
//т. е. запихиваем данные в Buff, + CRC
//.....................................

//а теперь пишем в устройсто и ждем реакции
//обычно три раза

for (Retry=3; Retry; Retry--){
WriteFile (PortHANDLE,Buff,12,&l,NULL);
ReadFile  (PortHANDLE,Buffa,50,&TempRead,NULL);
if ((l)&&(crc8 (&Buffa[0],l-2)==Buffa[l-1])) break;
}
//а теперь смотрим, удачно ли прошло наше бдение на порту
if (!Retry){
//Устройство не ответило, или превышено кол-во попыток
return false;
//тут еще можно какие-то флаги выставить, мол сдохла железяка))
}
//А тут начинаем анализ полученного пакета,
//считаем чот все в порядке
//т. е. работаем с Buff

Теперь о потоках, весь вышепреведенный код прекрасно крутится внутри потока, как получить код наружу, т. е. вывести все это на визуальные элементы. Тут вроде все достаточно просто, только про синхронизацию не забыть, критическими секциями все вполне обходится.
 
Top
Искандер
Отправлено: 07.03.2004, 09:44 Цитировать


Unregistered









Хотя, как мне кажется, могут возникнуть вопросы с организацией потоков? Если да, то об этом чуть позже))
 
Top
** Алексей
Отправлено: 31.03.2005, 12:35 Цитировать


Unregistered









На Torry.ru лежит куча компонентов для работы с Сом портом.
Я использую TMS Async32 под ХР, все вроде бы работает нормально,
единственно с чем я не могу разобраться, так это с тайм аутами.
 
Top
Konstantine
Отправлено: 31.03.2005, 16:24 Цитировать


Мастер участка


Группа: Модератор
Сообщений: 545
Пользователь № 790
Регистрация: 17.08.04



аналогично с LPT тут: http://www.cbuilder.ru/forums/index.php?ac...159ee20369126ae

--------------------
Нет ничего более постоянного чем временное...
 
Послать сообщение E-mail адрес ICQ  Top
Rius
Отправлено: 01.04.2005, 08:50 Цитировать


Мастер участка


Группа: Участник
Сообщений: 321
Пользователь № 863
Регистрация: 29.10.04



Компонент (поточный) для BCB для работы с COM. Проверен лично в WinXP, под 98 говорят тоже работает.

User Attached Image Скачать файл
Comm_2005.04.01___11.48.rar ( Количество загрузок: 4611 )




--------------------
Глубина, глубина...
 
Послать сообщение E-mail адрес ICQ  Top
ksili
Отправлено: 06.02.2007, 10:52 Цитировать


Ученик-кочегар


Группа: Участник
Сообщений: 5
Пользователь № 4123
Регистрация: 06.02.07



Rius, а можно вкратце как эти классы использовать (хотя бы на словах, какая последовательность действий, чтобы инициализировать, чтобы записать строку в порт, и чтобы считать)?
А то несколько классов с кучей свойств,а комментариев почти нет. С чего начинать непонятно
 
Послать сообщение E-mail адрес  Top
ksili
Отправлено: 06.02.2007, 11:20 Цитировать


Ученик-кочегар


Группа: Участник
Сообщений: 5
Пользователь № 4123
Регистрация: 06.02.07



Вроде начинаю понимать. Сначала всё это надо инсталлировать как компонент, а потом использовать этот компонент.
Только у меня при инсталляции просит файл *.dpk, а есть только *.dcr. sad.gif Что делать?
 
Послать сообщение E-mail адрес  Top
11 ответов с: 04.03.2004, 23:39 Подписаться на тему | Отправить тему на E-mail | Распечатать тему

Back to Работа с внешними устройствами
ОтветитьНовая тема