Здравствуйте, гость ( Вход | Регистрация )
|
ldimitri |
3.4.2009, 9:25
Сообщение
#1
|
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 3.4.2009 Пользователь №: 657 Спасибо сказали: 0 раз(а) Репутация: 0
|
Суть вопроса состоит в следующем:
Пишется класс-оболочка для драйвера устройства, одна из функций этого драйвера устанавливает callback на события устройства. Как можно сделать так, чтобы внеклассовая функция знала, что в данный какой-либо конкретный момент времени ей нужно использовать методы определенного класса?(устройств может быть подключено одновременно несколько, на каждое пойдет свой собственный объект класса-оболочки). |
|
|
|
![]() |
|
ldimitri |
3.4.2009, 14:29
Сообщение
#2
|
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 3.4.2009 Пользователь №: 657 Спасибо сказали: 0 раз(а) Репутация: 0
|
Есть драйвер. Он поддерживает до восьми одновременно подключенных устройств. Есть возможнось работы по поллингу(уже реализована в Qt-классе) и по callback. в callback'e должно происходить чтение принятых данных в структуру(определенную в хедере драйвера).
Это делается примерно так: Суть в том, что этой функции заранее неизвестны ассоциации номеров устройств и объектов, устанавливается она посредине инициализации устройства, и вот в "передаче данных в экземпляр класса, ответственного за конкретный номер устройства" и есть сама загвоздка. До чего додумался с момента предыдущего поста: 1. Думал сделать а-ля COM - есть класс, ответственный за создание, удаление, управление объектами и связями "объект-номер устройства". При таком раскладе - на каждое устройство прописывать по одному callback'у да еще держать пачку глобальных переменных. 2. Другой вариант - анализ в самой callback-функции наличия ассоциированных объектов с конкретным номером устройства - при этом получается что функция слишком нагружается, а она должна быстро счтитать, отослать и - ret. Жду других идей, критики(я ее особенно люблю - когда меня критикуют мне все жестче идеи в голову приходят |
|
|
|
ldimitri Qt и callback функции Windows 3.4.2009, 9:25
Litkevich Yuriy Цитата(ldimitri @ 3.4.2009, 13:25) Как мо... 3.4.2009, 9:57
kuler вот так:
void func()
{
obj->Process... 3.4.2009, 10:17
trdm Цитата(kuler @ 3.4.2009, 11:17) вот так:
... 3.4.2009, 11:03
kwisp ldimitri,
ничего не понятно может быть поэтому жу... 3.4.2009, 13:38
kwisp Цитата(ldimitri @ 3.4.2009, 15:29) заране... 3.4.2009, 14:40
kwisp ну что как успехи с хитрой задачей? 7.4.2009, 23:28
ldimitri Цитата(kwisp @ 8.4.2009, 0:28) ну что как... 8.4.2009, 9:54![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 13.12.2025, 19:23 |