|
LwIP TCP-сервер и UDP-клиент на одном MCU+LAN8720A? |
|
|
|
Oct 21 2016, 06:10
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Всем привет!
Проект без операционной системы с LwIP-стеком (low-level "core" / "callback" or "raw" API) на одном микроконтроллере (основная программа + TCP-сервер (Modbus TCP)), работает.
Меня интересует, можно ли в этот проект добавить еще и UDP-клиент (SNTP-клиент) и не будет ли TCP-сервер конфликтовать с UDP-клиентом? По отдельности TCP-сервер работает, UDP-клиент работает, а как все вместе совместить (в проект c TCP-сервером добавить UDP-клиент)? Я еще с такой задачей не сталкивался, поэтому сильно не ругайте.
Если что, то в качестве PHY используется LAN8720A, разъем RJ45 один, проект на STM32, но микроконтроллер пока не важен, меня интересует сама возможность совмещения серера и клиента.
|
|
|
|
|
 |
Ответов
|
Oct 22 2016, 08:33
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(Pridnya @ Oct 21 2016, 09:10)  ...совмещения серера и клиента. логическое дробление в данном случае не накладывает никаких ограничений на реализацию. в Ваших вопросах сквозит просьба увидеть готовый пример. хочется процитировать один мультик: - "Вы и есть за меня будете?!" - "Ага!" удачи Вам (круглый)
|
|
|
|
|
Oct 24 2016, 05:25
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(kolobok0 @ Oct 22 2016, 11:33)  логическое дробление в данном случае не накладывает никаких ограничений на реализацию. в Ваших вопросах сквозит просьба увидеть готовый пример. Вы похоже не представляете как выглядит готовый пример в моем случае. У меня основная программа и ModbusTCP сервер уже занимают около 130 килобайт. Мне нужно добавить в программу UDP-клиента (SNTP-клиента). Я ожидал увидеть что-то типа такого. И пояснение "расположите код там-то, не забудьте настроить это". Цитата // UDP Server Initialisierung: upcb = udp_new(); if (upcb) { udp_bind(upcb, IP_ADDR_ANY, UDP_SERVER_PORT); udp_recv(upcb, udp_server_receive_callback, NULL); }
// TCP Server Initialisierung: tpcb = tcp_new(); if (tpcb != NULL) { tcp_bind(tpcb, IP_ADDR_ANY, TCP_SERVER_PORT); tpcb = tcp_listen(tpcb); tcp_accept(tpcb, tcp_callback_accept); } Цитата(kolobok0 @ Oct 22 2016, 11:33)  хочется процитировать один мультик:
- "Вы и есть за меня будете?!" - "Ага!" [CENSORED]
Сообщение отредактировал IgorKossak - Oct 24 2016, 10:56
Причина редактирования: переход на личности, бан на неделю
|
|
|
|
|
Oct 24 2016, 07:23
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(HardEgor @ Oct 24 2016, 09:31)  Да хоть 500 кБ. Колобок в чем-то прав - вы просто не понимаете как работает TCP/UDP/IP и хотите готовый рецепт. Да там под сотню настроек и все надо не забыть. Возьмите готовые примеры и посмотрите как сделано в нём, совместить дело пяти минут. Или вот на другом процессоре совмещенный. Упоминание об объеме проекта с TCP-стеком (основная программа + ModbusTCP), который у меня работает, означало, что мне не нужен чей-то пример, как студенту для кусовика. Я тоже могу написать, что вы не понимаете, как работает TCP/UDP/IP, LwIP-стек на STM32F407 без операционной системы т.к. советуте мне почитать AN3966 Application note LwIP TCP/IP stack demonstration for STM32F4x7 microcontrollers, которую я уже много раз перечитал и из которой мне уже взять нечего. В этом документе описаны общие сведения о вариантах использования стека (три вида API) и о примерах (9 отдельных примеров). Все примеры по даны для конкретного использования, т.е. там не как в стеке Microchip, когда стек конфигурируется утилитой и мы получае сразу несколько вариантов использования. По отдельности я пробовал запускать все эти примеры, но мне нужно то, что указано в теме (совместить или добавить к TCP-серверу UDP-клиент). В примерах от ST для каждого варианта использования стека (9 примеров) есть свой проект (отдельный) , т.е. там не все варианты сразу, которые можно директивами условной компиляции включить/выключить из кода ( или той сотней настроек, про которую вы упоминаете). Цитата This demonstration package contains nine applications running on top of the LwIP stack: • Applications running in standalone mode (without an RTOS): –A Web server –A TFTP server –A TCP echo client application –A TCP echo server application –A UDP echo client application –A UDP echo server application • Applications running with the FreeRTOS operating system: –A Web server based on netconn API –A Web server based on socket API –A TCP/UDP echo server application based on netconn API Кроме того вы упоминаете о сотне настроек, а из этой сотни менять мало что нужно. Это еще один аргумент в мою пользу.
Сообщение отредактировал Pridnya - Oct 24 2016, 07:35
|
|
|
|
|
Oct 24 2016, 07:56
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(Pridnya @ Oct 24 2016, 14:23)  Упоминание об объеме проекта с TCP-стеком (основная программа + ModbusTCP), который у меня работает, означало, что мне не нужен чей-то пример, как студенту для кусовика. Мда...., если бы вы знали какие объемы пишут студенты, вы бы не приводили такие аргументы. Объем о качестве специалиста ничего не говорит. У меня программа в 160 кБ, хотя я написал всего 2кБ и что? Цитата По отдельности я пробовал запускать все эти примеры, но мне нужно то, что указано в теме (совместить или добавить к TCP-серверу UDP-клиент). т.е. второй пример, где всё совмещено, вы даже не открывали? Ну тогда ничем не могу вам помочь. Цитата Кроме того вы упоминаете о сотне настроек, а из этой сотни менять мало что нужно. Это еще один аргумент в мою пользу. В какую пользу? Это вам надо разобраться, а не мне....
|
|
|
|
|
Oct 24 2016, 08:32
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(HardEgor @ Oct 24 2016, 10:56)  т.е. второй пример, где всё совмещено, вы даже не открывали? Ну тогда ничем не могу вам помочь. Если вы про TFTP-сервер, то я этот пример не открывал и вообще с FTP протоколом еще не работал. Я запускал по отдельности UDP-клиент, UDP-сервер, TCP-клиент, TCP-сервер. Мне нужно то, что указано в теме. А так вообще интересный путь: есть 6 примеров 1) –A Web server 2) –A TFTP server 3) –A TCP echo client application 4) –A TCP echo server application 5) –A UDP echo client application 6) –A UDP echo server application чтобы совместить 4-й и 5-й, нужно разобраться как работает 2-й. Хоть бы кто ссылку дал на TCP-сервер плюс UDP-клиент. PS: Так на ум приходит тоже пример STM32F4 USB RNDIS драйвер (управление устройством через Web-интерфейс), там Сергей Фетисов через USB работает по WEB-интерфейсу. Его пример рабочий, использует LwIP, Я его код проверял в работе на STM32F4DISCOVERY. Или его же Ethernet поверх USB на STM32F4. PPS: А я хотел бы видеть 7) –A TCP echo server application + A UDP echo client application
Сообщение отредактировал Pridnya - Oct 24 2016, 08:46
|
|
|
|
Сообщений в этой теме
Pridnya LwIP TCP-сервер и UDP-клиент на одном MCU+LAN8720A? Oct 21 2016, 06:10 scifi Цитата(Pridnya @ Oct 21 2016, 09:10) Меня... Oct 21 2016, 07:14 Pridnya Цитата(scifi @ Oct 21 2016, 10:14) Не пре... Oct 21 2016, 08:01 Pridnya Цитата(scifi @ Oct 21 2016, 10:14) Не пре... Oct 21 2016, 13:23      mantech Цитата(Pridnya @ Oct 24 2016, 11:32) Серг... Oct 25 2016, 12:16       Pridnya Цитата(mantech @ Oct 25 2016, 15:16) Сорр... Oct 31 2016, 11:01     Pridnya Цитата(HardEgor @ Oct 24 2016, 10:56) т.е... Oct 24 2016, 09:36 scifi Lwip - это такая штука, про которую нужно знать, к... Oct 24 2016, 07:34 Pridnya Цитата(scifi @ Oct 24 2016, 10:34) Lwip -... Oct 24 2016, 07:46  Сергей Борщ QUOTE (Pridnya @ Oct 24 2016, 11:32) Я за... Oct 24 2016, 10:00 kolobok0 Цитата(Pridnya @ Oct 21 2016, 09:10) ...м... Oct 25 2016, 00:03 Pridnya Цитата(kolobok0 @ Oct 25 2016, 03:03) 1) ... Nov 3 2016, 07:59  Pridnya Оказалось все проще простого: достаточно добавить ... Nov 3 2016, 12:10 krounis Цитата(Pridnya @ Oct 21 2016, 13:10) Всем... Jan 25 2018, 11:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|