jenya7 0 24 июня, 2021 Опубликовано 24 июня, 2021 (изменено) · Жалоба У меня есть сеть датчиков которые подсоединяются к базовой станции. В случае CAN, LAN(UDP) всё ясно. А если я хочу связать по WIFI, какие мои действия? Все подключаются к общему Access Point и получают IP? А потом что? Я должен знать IP каждого узла чтобы обратиться к нему? А может отконфигурировать базовую станцию как Access Point? И что тогда, поднимать сервер на ней? Изменено 24 июня, 2021 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба 1 hour ago, jenya7 said: Все подключаются к общему Access Point и получают IP? А потом что? Я должен знать IP каждого узла чтобы обратиться к нему? Имя, не IP. Курите маны на тему DHCP Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба взял борд с вай-фай, подключился к AP. с лэптопом подключился к тому же AP. пингую в обе стороны, пинга нет. что не так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба 4 hours ago, jenya7 said: что не так? А 'борд с wifi' весь стек TCP/IP поддерживает? В частности DHCP (используется для получения IP) и ICMP ECHO (который для Ping используется) Ещё можно посмотреть на AP список подключённых клиентов - есть ли там ваша борда (и выдан ли её DHCP адрес)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба Just now, xvr said: А 'борд с wifi' весь стек TCP/IP поддерживает? В частности DHCP (используется для получения IP) и ICMP ECHO (который для Ping используется) Ещё можно посмотреть на AP список подключённых клиентов - есть ли там ваша борда (и выдан ли её DHCP адрес)? AP выдал IP и тому и другому. борд Ping поддерживает. у него в API есть функция WIFI_Ping(uint8_t *ip_addr, uint32_t count, uint32_t delay, int32_t * status). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 24 июня, 2021 Опубликовано 24 июня, 2021 · Жалоба Курим multicast вообще и mDNS в частности Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 25 июня, 2021 Опубликовано 25 июня, 2021 · Жалоба 13 hours ago, jenya7 said: борд Ping поддерживает. у него в API есть функция WIFI_Ping(uint8_t *ip_addr, uint32_t count, uint32_t delay, int32_t * status). Это пинг с борда наружу, а нужен в другую сторону Для чистоты эксперимента попробуйте пинг с самой АП (у них обычно в сервисном меню есть), ну и пинг по IP 12 hours ago, gosha-z said: Курим multicast вообще и mDNS в частности АП обычно включает DNS сервер, который подхватывает локально розданные DHCP клиенты. Но кто знает, может у ТС на ноуте руками DNS прописан (на провайдера). Тогда работать не будет Кстати, а что ping на ноуте пишет? Он не может достучаться до борды или вообще её не знает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 27 июня, 2021 Опубликовано 27 июня, 2021 (изменено) · Жалоба On 6/25/2021 at 11:08 AM, xvr said: Кстати, а что ping на ноуте пишет? Он не может достучаться до борды или вообще её не знает? Отвечает - Destination host unreachable. Со стороны контроллера возвращает статус -1. Изменено 27 июня, 2021 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 32 27 июня, 2021 Опубликовано 27 июня, 2021 · Жалоба О - у меня такая же проблема ! Взял плату с WiFi. Включил питание - лампочка моргает, а пинга нет. Что мне делать ? Кто-то сможет дать совет ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 27 июня, 2021 Опубликовано 27 июня, 2021 (изменено) · Жалоба подключил еще один лэптоп к тому же AP. оба лэптопа пингуются. похоже WIFI модуль дерьмовый. убрал из кода if (WIFI_STATUS_OK == WIFI_ReceiveData(SOCKET, udp_rx_buf, 1000, &udp_rx_len, 0 )) { if (udp_rx_len > 0) USART_SendInt(SYS_USART, udp_rx_len, 1); } и пинг пошел. вопрос теперь кто есть кто. датчики клиенты а база сервер? С TCP геморой. нужно коннектится к IP которого я не знаю. Может открыть UDP и посылать мультикаст? Изменено 27 июня, 2021 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 28 июня, 2021 Опубликовано 28 июня, 2021 (изменено) · Жалоба Пытаюсь открыть UDP сервер. API категорически игнорирует UDP поэтоиу по описанию сделал ф-цию. Quote How to setup a UDP Comm Sever 1. Set Protocol to UDP 2. Set Local port number 3. Start UDP Comm Sever Spoiler ES_WIFI_Status_t ES_WIFI_UdpServer(ES_WIFIObject_t *Obj, uint32_t socket, uint16_t port) { ES_WIFI_Status_t ret = ES_WIFI_STATUS_OK; LOCK_WIFI(); //Open a socket sprintf((char*)Obj->CmdData,"P0=%d\r", socket); ret = AT_ExecuteCommand(Obj, Obj->CmdData, Obj->CmdData); if(ret != ES_WIFI_STATUS_OK) { UNLOCK_WIFI(); return ret; } //Select UDP Protocol sprintf((char*)Obj->CmdData,"P1=1\r"); ret = AT_ExecuteCommand(Obj, Obj->CmdData, Obj->CmdData); if(ret != ES_WIFI_STATUS_OK) { UNLOCK_WIFI(); return ret; } sprintf((char*)Obj->CmdData,"P2=%d\r", port); ret = AT_ExecuteCommand(Obj, Obj->CmdData, Obj->CmdData); if(ret != ES_WIFI_STATUS_OK) { UNLOCK_WIFI(); return ret; } //Start UDP Comm Server sprintf((char*)Obj->CmdData,"P5=1\r"); ret = AT_ExecuteCommand(Obj, Obj->CmdData, Obj->CmdData); if(ret != ES_WIFI_STATUS_OK) { UNLOCK_WIFI(); return ret; } return ret; } всё проходит на ура но когда получаю данные Spoiler ES_WIFI_Status_t ES_WIFI_AltReceiveData(ES_WIFIObject_t *Obj, uint8_t Socket, uint8_t *pdata, uint16_t Reqlen, uint16_t *Receivedlen, uint32_t Timeout) { uint32_t wkgTimeOut; ES_WIFI_Status_t ret = ES_WIFI_STATUS_ERROR; if (Timeout == 0) { wkgTimeOut = NET_DEFAULT_NOBLOCKING_READ_TIMEOUT; } else { wkgTimeOut = Timeout; } LOCK_WIFI(); if(Reqlen <= ES_WIFI_PAYLOAD_SIZE ) { sprintf((char*)Obj->CmdData,"R1=%d\r", Reqlen); ret = AT_ExecuteCommand(Obj, Obj->CmdData, Obj->CmdData); if(ret == ES_WIFI_STATUS_OK) { sprintf((char*)Obj->CmdData,"R2=%lu\r", wkgTimeOut); ret = AT_ExecuteCommand(Obj, Obj->CmdData, Obj->CmdData); if(ret == ES_WIFI_STATUS_OK) { sprintf((char*)Obj->CmdData,"R0\r"); ret = AT_RequestReceiveData(Obj, Obj->CmdData, (char *)pdata, Reqlen, Receivedlen); if (ret != ES_WIFI_STATUS_OK) { DEBUG("AT_RequestReceiveData failed\n"); } } else { DEBUG("setting timeout failed\n"); } } else { DEBUG("setting requested len failed\n"); *Receivedlen = 0; } } UNLOCK_WIFI(); return ret; } на sprintf((char*)Obj->CmdData,"R0\r"); ret = AT_RequestReceiveData(Obj, Obj->CmdData, (char *)pdata, Reqlen, Receivedlen); получаю ошибку ES_WIFI_STATUS_UNEXPECTED_CLOSED_SOCKET. что может быть? Изменено 28 июня, 2021 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 12 июля, 2021 Опубликовано 12 июля, 2021 · Жалоба On 6/27/2021 at 9:57 AM, jenya7 said: убрал из кода if (WIFI_STATUS_OK == WIFI_ReceiveData(SOCKET, udp_rx_buf, 1000, &udp_rx_len, 0 )) { if (udp_rx_len > 0) USART_SendInt(SYS_USART, udp_rx_len, 1); } и пинг пошел. Это странно. Похоже вы как то исчерпали ресурсы WIFI борды, что у неё даже ping отвалился On 6/27/2021 at 9:57 AM, jenya7 said: вопрос теперь кто есть кто. датчики клиенты а база сервер? Датчики клиенты, конечно, а сервер вы должны сами где то запустить (АП сервером не является - она чисто точка коммутации) On 6/28/2021 at 8:24 AM, jenya7 said: получаю ошибку ES_WIFI_STATUS_UNEXPECTED_CLOSED_SOCKET. что может быть? Количество сокетов не переполнилось? Их там совсем не много (штук 5 на всё - если WIFI на ESP8266). Попробуйте поуправлять WIFI вручную с терминала - можно будет отличить поломанные протоколы от программных ошибок Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rkit 1 12 июля, 2021 Опубликовано 12 июля, 2021 · Жалоба Технически в вайфае допустимы vendor-specific frame. Ими можно пулять в эфир и принимать без всякой точки доступа и ip. Останется только в софте реализовать нужный функционал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 12 июля, 2021 Опубликовано 12 июля, 2021 · Жалоба 1 hour ago, xvr said: Количество сокетов не переполнилось? Их там совсем не много (штук 5 на всё - если WIFI на ESP8266). Попробуйте поуправлять WIFI вручную с терминала - можно будет отличить поломанные протоколы от программных ошибок А почему 5? ISM43362 вроде как нехилый WIFI MCU. ESP8266 модули (2$) быстренько подключились к AP, пингуются, посылают, принимают. Эта скотина ISM43362 (около 20$) раз подключается AP раз нет. когда подключается - AP выдает ему IP, но он не пингуется. WIFI_StartUdpServer(SOCKET, PORT) конечно падает. категорически разочарован этим модулем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 12 июля, 2021 Опубликовано 12 июля, 2021 · Жалоба Just now, jenya7 said: А почему 5? ISM43362 вроде как нехилый WIFI MCU. Это у ESP(некоторые идентификаторы в ваших листингах меня в эту сторону настроили). С ISM не работал, увы. Не подскажу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться