|
Модераторы: Akina |
|
JusTalionis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
Random действует не так, как в QB, а при открытии COM как файл, этот режим предпочтителен. (Не знаю почему, но так в мануалах утверждают.)
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
Через файлы - без поллинга? Если можно, сюда хотя бы основы исходного кода. Желательно упростить и прокомментировать, чтобы и обезьяна поняла суть происходящего... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Denjs |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
поллингы? ааа.... поллитры?! )) да) в начале сложно, но это удобнее чем работать с контроллером напрямую - и не засоряем систему лишними драйверами... и удобнее пользователю - никаких доп драйверов для работы программы не нужно. куски кода - для QT4 - потому не сильно пугайтесь увидев что незнакомое... "выдрал" не чистив от комментариев, ссылок на функции других классов и др. ... думаю сути дела это не мешает.... открываем .. DevPath_ - имя порта.
самое геморройное - инициация DCB. Она переписывается по шаблону и правится в нужных местах.
таймауты настроены так: - операция чтения не может длится более 100 ms. читаем
Из read вываливаемся через 100 ms (?) или раньше - если пришли данные. Я предпочитаю крутить это в цикле в отдельном потоке и "складывать" эти данные в основной поток. Как уже говорил - это все содержимое единого класса и мне не хотелось делать "висячие функции" вне какого-либо класса для реализации "асинхронного режима".. а так - полная эмуляция асинхронности )) за счет 2-х потоков... пишем
Закрываем:
полный исходник тут: otpdlinks.berlios.de там - же и сопоставление оных режимов в линуксе в обертке единого кроссплатформенного класса... не сочтите за рекламу а будете бить - не бейте сильно ))) Буду рад услышать замечания и кАменты. Думаю что данные куски без особого труда копируются и переводятся/переписываются по образцу в тот язык который вам надо... думаю отражения одних и тех-же функций win-библиотек есть во всех языках... кстати обезьяны не работают с компортами...незачем им понимать метафизическую сущность serial-device ^_^ Это сообщение отредактировал(а) Denjs - 14.3.2008, 03:12 |
||||||||||
|
|||||||||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
ТО есть все-таки именно поллинг. С определенным интервалом спрашиваем, а не пришло ли там чего...
При работе же на уровне железа поллинг не нужен - приход каждого байта генерирует аппаратное прерывание, и его обработчик занимается приемом данных и помещением их в очередь. Он же может при достижении определенного содержимого стартовать процедуры обработки принятых данных. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Denjs |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
кстати - не совсем "спрашиваем с определнным интервалом"... скорее "возобновляем ожидание" поступления данных с определенным интервалом. обратились в read - и повисли на 100 ms или пока не придут данные. вывалились? ничего не пришло? не надо завершаться?(смотрим флаги) - и снова в ожидание чтения. а при поступлении данных - read() завершается сразу - не дожидаясь пока истечет таймаут. т.е. событие отлавливается практически немедленно. ____________ просмотрел ещё раз описание DCB... гы... ) господа - под линукс рабоать с компортом удобнее - там в стандартный драйвер можно подсунуть указатель на асинхронный обработчик событий от порта.... Циклическая обработка, (или "поллинг"?), во втором потоке появилась только из-за того, что но у меня "не вышло" подсунуть указатель на метод класса, как на обработчик события поступления данных - данные структуры ориентированы на функциональный стиль программирования и это не совсем удобно... почему-то искренне считал что DCB практически полностью эквивалентен структуре termios... и в него можно подсунуть указатель на обработчик события поступления данных который будет вызываться при появлении новых данных на входе... виноват, ошибся... тут надо только 2 потока и waitForCommEvent() как я пониаю... ? под виндоус все-таки убого )) извиняюсь... Akina, ваша правда судя по всему ) но работать с ioPorts - ещё большее извращение )) Это сообщение отредактировал(а) Denjs - 14.3.2008, 13:17 |
|||
|
||||
GorbunovDiman |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 89 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
А теперь это всё на С переведите мне на ВБ
Это сообщение отредактировал(а) Akina - 17.3.2008, 21:14 |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 453 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
JusTalionis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
||||
|
||||
GorbunovDiman |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 89 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
Ладно , понял. Добавлено через 4 минуты и 12 секунд Кстати правда кто небудь переведите |
|||
|
||||
Denjs |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
ЗкоГаденеГ? &_$ |
|||
|
||||
JusTalionis |
|
||||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
Экий ты меркантильный. Не вздумай у мя чо-нить спросить - тоже тугрики потребую. С тебя конкретно.
А остальным - даю пример работы с COM через API. Скачано в Интернете, но где именно - не знаю. Автору, бесплатно подарвшему его всем - огромный респект! frmSerial -форма:
SerialPort -модуль:
Собственно, это и есть запрошенный "перевод". Полный проект находится ниже в приаттаченном зипе. Присоединённый файл ( Кол-во скачиваний: 42 ) vb_serial_comms.zip 3,68 Kb |
||||
|
|||||
cardinal |
|
|||
Инженер Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
JusTalionis, чиркани пару слов пожалуйста на эту тему, я думаю это стоит того, чтобы поместить в FAQ.
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
JusTalionis |
|
|||
Опытный Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
Черкану обязательно; обещаю. Но только после того, как добью эту проблему до победного. (С вашей объединенной помощью )
|
|||
|
||||
cardinal |
|
|||
Инженер Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Спасибо!
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
GorbunovDiman |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 89 Регистрация: 3.3.2008 Репутация: нет Всего: нет |
Огромное спасибо
|
|||
|
||||
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |