реклама на сайте
подробности

 
 
> Lwip: netconn TCP app
k000858
сообщение Oct 27 2017, 06:09
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978



В проекте используется LwIP + FreeRTOS. Поднят TCP сервер на Netconn API.
Необходимо данные из входящего соединения отправлять в последовательный порт, и в обратную сторону.
Проблема в том, что реализация TCP соединения подразумевает блокирующую функцию обработки принятых данных

Код
            while (netconn_recv(ntcnn232->newc, &buf) == ERR_OK)
            {


То есть пока не принял данные по TCP не могу отправить принятые данные по последовательному порту.

Как быть в этой ситуации?

Пока реализовано так: 2 задачи ОС:
1) сидит в блокирующей функции и отправляет принимаемые данные в последовательный порт
2) отправляет данные, принимаемые по последовательному порту, в TCP

Но это создает кучу проблем, например работа этих задач может "сломать" соединение.

Есть альтернативы как это можно реализовать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kolobok0
сообщение Oct 27 2017, 16:07
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(k000858 @ Oct 27 2017, 09:09) *
В проекте используется LwIP + FreeRTOS....То есть пока не принял данные по TCP не могу отправить принятые данные по последовательному порту. ...Есть альтернативы как это можно реализовать?


Насколько я понимаешь - LwIP реализован согласно соответствующих RFC, в том числе и со стороны юзанья.
Насколько помнишь - стандартный протокол должен обеспечивать как блокирующий так и не блокирующий режим работы.

это раз.
ну и второе - тот вариант что у Вас уже реализован(проглядел когда начинал писал)...
Не совсем понятен Ваш термин "сломать" соединение. Если в логике нет проблем, то ищите в коде..

как то так
(круглый)

Сообщение отредактировал kolobok0 - Oct 27 2017, 16:09
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01326 секунд с 7
ELECTRONIX ©2004-2016