|
Модераторы: Akina |
|
JusTalionis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
COM-порт открыт при помощи оператора Open как файл.
Задача: получать с него периодически появляющиеся данные. Можно, конечно, непрерывно проверять его: пришли данные, или нет. Но это грубое решение. Хочется использовать событие от COM-порта. Можно ли это сделать без использования контрола? |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
В указанных условиях - однозначно нет.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Denjs |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
я запускал в отдельном потоке именно циклическое чтение, предварительно настроив таймаут чтения. т.е. второй поток висит скажем 1 ms потом смотрит - не вывешен ли флаг завершитсья , складывает полученные полученные данные и снова в цикл чтения. Таймаут даже нафиг не нужен кроме того, что иначе процессор будет вешаться...
Не совсем красиво, но я почему-то не смог подсунуть ссылку на метод заданного объекта вместо указателя на функцию асинхронного вызова (или как там оно называется...)... потому пришлось извращатсья с потоками, ибо организовывать отдельную "висячую функцию" посреди набора объектов - это имхо сродни извращению... |
|||
|
||||
JusTalionis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
Я понимаю, что извращение. Просто еще файл контрола тянуть с собой не хочется ужасно.
Думал, мож с API что-нить подходящее можно наворотить. |
|||
|
||||
GorbunovDiman |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 89 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
Люди а как вообще работать с COM портом?
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
Берем описание драйвера IOPort и читаем до полного просветления -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
GorbunovDiman |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 89 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
А где его отрыть? |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
Отбросить предубеждения и использовать поиск по Инету. Гугль дает нужную ссылку уже на первой странице.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
JusTalionis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
||||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
А с СОМ-портом, пардон, с использованием IRQ, а не поллинга, ты как собираешься мимо портов ввода-вывода работать? использование IOPort просто избавляет от необходимости писАть собственный драйвер ядра.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
JusTalionis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
Это, в общем "нелегальный" путь. Например в XP обращение к железу не весьма приветствуется.
Как мне показалось, GorbunovDiman спрашивал про штатные бейсиковские способы работы с COM. |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
Гм... мне это утверждение кажется сомнительным. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Denjs |
|
||||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
да что вы все прицепились к этому ioPORTS? мы народ плечистый - нам работать с контроллером напрямую - раз плюнуть.. да? подыму в обсуждение тему работы с COM-портами через файлы. в отношении QB не скажу что и как, но если заинтересует C++ исходник - что бы по аналогии разобраться - примеры есть и много. могу и свои исходники дать.
а я не соглашусь. "нелегальный" путь - это мягко сказано... это настоящее "варварство". Причем не приветствуется оно нигде. ни в windows ни в linux. Непосредственно "железом" такого рода должны заниматься драйвера или система. и я молчу об относительной сложности работы с контроллером "напрямую" по сравнению с работой с файлами. Это сообщение отредактировал(а) Denjs - 13.3.2008, 23:39 |
||||
|
|||||
JusTalionis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
Akina
Не знаю именно про "IOPort", но что-то очень похожее я юзал, и в 98 всё было ОК, а под XP - фигушки Denjs В VB даже по сравнению с QB по этой теме есть существенные различия, а про Си - вообще молчу. Это сообщение отредактировал(а) JusTalionis - 13.3.2008, 23:32 |
|||
|
||||
Denjs |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
гм... а в VB что? *DCB структуру на что-то другое заменили? Это сообщение отредактировал(а) Denjs - 13.3.2008, 23:46 |
|||
|
||||
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |