VVB (13.11.2012 10:12 - 10:22, просмотров: 501) ответил VVB на Ещё вопросы по lwIP.
Хочу уточнить про netconn. В документации lwIP не описана пользовательская callback функция, передаваемая в качестве аргумента при создании сетевого соединения. Я попробовал, она вызывается много раз со всякими непонятными аргументами. Я не понял, как можно вычислить факт приёма от ПК данных.
У меня есть задача, которая вызывает функцию netconn_write() при наличии данных для передачи (от прибора к ПК, данные этой задаче передаются через очередь RTOS). Но мне также для этого ТСР соединения нужно и принимать данные (от ПК к прибору). Так как приём данных от ПК это асинхронная операция по отношению к наличию данных для передачи на ПК, то я понимаю, что должна быть моя callback, обслуживающая факт наличия данных от ПК.
Но я не понимаю, как с использованием netconn API можно асинхронно принять данные.
С RAW API вроде бы всё ясно, там требуемая мне функциональность реализуется на раз-два. Но т.к. я не использовал RAW API, то мне надо переписывать прогу.
Вообще это возможно с netconn API?
Увидел, что при наличии callback при создании соединения вызывается моя callback с параметром NETCONN_EVT_RCVPLUS, из recv_tcp(). Это как раз то, что мне надо? Не будет ли проблем при работе с одним netconn в моей задаче передачи данных и в задаче tcpip_thread()?