![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Lex/TU |
|
|||
|
Unregistered |
Никогда не работал с асинхронным режимом 232 порта помогите
Какие функции использовать и как этот режим инициализировать ??? |
|||
|
||||
| np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: нет Всего: 10 |
Блин, чувак мне это нужно. Слушай месяц прошел. Разобрался???
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
работать так же (CreateFile / ReadFile ) а для инициализации нужно в CreateFile передать структуру overlapped
+ все єто уже не раз обсуждалось... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: нет Всего: 10 |
Может есть какая стороняя бесплатная библиотека для работы с com портом? Вы ничего не использовали?
А обязательно работать через create file может можно какнибудь подругому? Это сообщение отредактировал(а) np9mi7 - 2.4.2005, 14:17 |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 3 Всего: 44 |
Я все делаю средставми winApi.
Как всегда CreateFile,, только устанавливаешь флаг FILE_FLAG_OVERLAPPED - дескать работать буду асинхронно. Потом при чтении/записи передаешь в последнем параметре указатель наструктуру OVERLAPPED. В ней должен быть уже создан event (есть там такое поле). Так вот. в этом случае при чтении/записи функция не будт ждать когда действие завершитс, ты можешь рабоать дальше, а вот когда это произойдет, тогда у тебя event будет системой выставлен. вобщем чаще всего это ждут при помощи WaitForSingleObject. Но в чем суть такого подхода. Тут в параллельном потоке можно ждать от порта других сообщений. при помощи функции WaitCommEvent. Вобщем, вот тебе MSDN ms-help://MS.MSDNQTR.2003APR.1033/dnfiles/html/msdn_serial.htm Вот тебе он же в переводе http://www.bcbdev.ru/msdn/hh/commun_6g37.htm наслаждайся. Если чего надо спрашивай -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: нет Всего: 5 |
в воскресень посылал парню одному пример работы с ком портом. Могу и тебе послать (елси это конечно был не ты). Еслинет от могу итебе выслать. Вообще на эту тему есть приеры тут codeproject.com
-------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: нет Всего: 10 |
Это был не я...
Многопоточные примеры? |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: нет Всего: 5 |
Прием данных с порта в нити.
А более одного пиложеия или одной нити с ком портом работать не получится на прямую. Если тебе надо раздавать данные из ком порта нескольким программам или нитям, тогда надо мутить свой серер ком порта. Котрый будет хранить данные которые пришли, и отдавать их тому тко попросит. Может конечно у MS такой уже сделан, я с этим не разбирался. Когда производится чтение с порта, он очишается. Это сообщение отредактировал(а) knave - 5.4.2005, 13:06 -------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| WM_SASHA |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.4.2007 Где: Узбекистан г.Ташк ент Репутация: нет Всего: нет |
привет всем...а как подать напряжение на CTS(готовность к передаче)? например мне хочеться чтобы был подсчёт замыканий на ком порте.если я правильно понял замыкать нужно жилы CTS и DSR...кстати когда я получаю событие EV_DSR ,сбрасывается ли CTS на единицу?нужно чтобы напряжение подавалось всегда,от ком порта больше и не требуется,кроме как сообщать о замыкании CTS и DSR.
|
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: -1 Всего: 3 |
WM_SASHA, походу в виндовсе со стандартным драйвером никак
-------------------- я не гольфист - я хоккеист |
|||
|
||||
| WM_SASHA |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 12.4.2007 Где: Узбекистан г.Ташк ент Репутация: нет Всего: нет |
думал что так можно.....однако отсюда вылез вопрос: почему WaitCommEvent(hCom, &dwEvtMask, &o)) сразу срабатывает?потому что нет записи и чтения в порт?....пробовал вставить функции записи или чтения перед циклом, и после создания события в структуре OVERLAPPED.........всёравно проскакивает..........и как написать правильный цикл ожидания события,чтобы загрузка процессора не была высокой.....Sleep() не помогает...не помогает он и в другой программе...несколько потоков делают вычисления..ставлю 1000 милисекунд....всёравно загрузка процессора 100 процентная. может чтение и запись выделить в другой поток?а начинать чтение или запись в цикле перед WaitCommEvent(hCom, &dwEvtMask, &o)), используя функцию посылающая строку для чтения или записи в другой поток, и сразу же возвращающую управление в вызывающий поток?.....ой намутил я |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Попробуй перед циклом сбросить событие : ResetEvent(o.hEvent); Это сообщение отредактировал(а) ksili - 11.8.2007, 06:37 -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |