Erv&Sed 0 6 октября, 2008 Опубликовано 6 октября, 2008 · Жалоба Добрые люди подскажите как надо получать пакеты от драйвера Ethernet`а, желательно llPacket`ом. Как отправлять - понятно, там есть не двусмысленная ф-я: void llPacketSend( Uint32 dev, PBM_Handle hPkt ) Но как принимать - загадка. Я понимаю что надо работать с пакетным буфером, надо как-то через очереди оформлять, но как это делается - не понятно, и в документациях я ничего не нащел. Посмотрел примерную перечень команд для NE2000 совместимых драйверов - тоже самое, есть явная команда "отправить", но нет команды "принять". Есть абсолютно недокументированная библиотечная ф-я _extern void EtherRxPacket( PBM_Handle hPkt ); но нормально с ней работать т.ж. не получается. lp1: _llPacketServiceCheck( i ); if( !(i & FLAG_EVENT_ETHERNET) ) goto lp1; llPacketService(); Если мы выходим из цикла значит уже есть пакет?? Можно считать из PBMQ_rx?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Erv&Sed 0 8 октября, 2008 Опубликовано 8 октября, 2008 · Жалоба _llPacketServiceCheck( i ) - устанавливает флаги (FLAG_EVENT_ETHERNET ...) только тогда, когда вызывается переодически (с периодом 100мс), при "polling`е" он эти флаги не устанавливает. Теперь я пакеты получаю, но слишком медленно, а многое даже не получаю. У кого какие мысли по уэтому поводу, может включенный стек мещает, или у процесса слышклм высокий приоритет и он мещает драйверу, HAL`у или что еще??? Неужели никто не работал с NDK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться