ESP8266, UDP Client pakketten worden niet verzonden

Arduino specifieke Software
Berichten: 6
Geregistreerd: 25 Feb 2018, 18:23

ESP8266, UDP Client pakketten worden niet verzonden

Berichtdoor mnalxz » 25 Feb 2018, 18:50

Hallo,

ben al weken aan het zoeken en debuggen waarom ik in een ESP8266 UDP Server niet mijn door een ander board verzonden ESP8266 Client pakketten ontvang.
In deze UDP Server welke op beide boards aanwezig is ontvang ik nl wel de pakketten van een UDP Client applicatie welke door mijn PC verzonden zijn.
Hieruit zou dan dus ook moeten blijken dat de WiFi connectie van beide boards OK is.

PC = 10.0.0.6 naar poort 2101 op Server2, en vervolgens naar poort 2102 op Server1 (beide Servers) lijken correct te ontvangen
Server1 = 10.0.0.191 ontvangst poort = 2102, deze bevat ook de client welke verzend naar poort 2101. (een forward van het bericht van de PC dus, maar ook een zelfstndig bericht versturen op basis van een toetsdruk of ander event..)
Server2 = 10.0.0.193 ontvangst poort = 2101.

Er blijkt dus geen probleem te zijn bij het ontvangen van de berichten vanaf de PC, maar het bericht verzonden door de client wordt nooit ontvangen in Server2..

hieronder een klein stukje code van de client routine:

// Used includes
#include <ESP8266WiFi.h> // Library for WeMos D1 (with ESP8266)
#include <WiFiUdp.h> // Wifi UDP Library for ESP8266


void SentMessToFamily()
{
WiFiUDP UDPClientForFamilyIP;

String Msg = "SC"
const char* message = Msg.c_str();

int ChrSent = 0;

Serial.println(UDPClientForFamilyIP.operator =(UDPClientForFamilyIP));
UDPClientForFamilyIP.begin(2101); // Port for receive of Reply from Client, NOT USED YET for input
Serial.println("Reply port set..");
Serial.println(UDPClientForFamilyIP.operator =(UDPClientForFamilyIP));


UDPClientForFamilyIP.beginPacket("10.0.0.193", 2101);
ChrSent = UDPClientForFamilyIP.write(message, Msg.length());
UDPClientForFamilyIP.endPacket();

Serial.print(ChrSent);
Serial.print(" Char of Message sent to Client --> ");
Serial.println(message);

yield();


Serial.println(UDPClientForFamilyIP.operator =(UDPClientForFamilyIP));
UDPClientForFamilyIP.stop();
Serial.println("Client stopped..");
Serial.println(UDPClientForFamilyIP.operator =(UDPClientForFamilyIP));

}

de logging van server1 laat het volgende zien:
SINGLE click. (Switch ON / OFF the Lights.)
0
Reply port set..
1
2 Char Message sent to Client --> SC
1
Client stopped..
0
LSR,De Lamp(en) gaan nu AAN het is nu 16:55:52

de logging van Server2 laat het volgende zien:
Received packet of size 2
From 10.0.0.6, Port 2101
Incomming Packet : SC
===============================================================
Sent packet of size 3
To 10.0.0.6, Port 2101
Reply Sent : OK

hierna blijft het angstvallig stil op Server2, de client berichten verzonden door module met Server1 door de client routine lijken niet ontvangen te zijn op Server2 ???

Wie ziet hier wat er mis gaat, of is er wellicht een denkfout in het spel ?

PS : ik maak gebruik van de Wemos D1-R2 boards.

Advertisement

Gebruikers-avatar
Berichten: 210
Geregistreerd: 03 Sep 2013, 10:03
Woonplaats: Katwijk ZH

Re: ESP8266, UDP Client pakketten worden niet verzonden

Berichtdoor baco1978 » 25 Feb 2018, 20:46

Ik ben hier op dit vlak niet echt in thuis,
maar als ik zo de code na loop

zie ik dat je een nieuwe IP sessie opent

lijkt het me voor de hand liggend dat je eerst de openstaande sessie met de pc sluit voordat je weer een nieuwe sessie opent
Met vriendelijke groet Arjan

Berichten: 6
Geregistreerd: 25 Feb 2018, 18:23

Re: ESP8266, UDP Client pakketten worden niet verzonden

Berichtdoor mnalxz » 25 Feb 2018, 21:46

baco1978 schreef:Ik ben hier op dit vlak niet echt in thuis,
maar als ik zo de code na loop

zie ik dat je een nieuwe IP sessie opent (KLOPT een tijdelijke)

lijkt het me voor de hand liggend dat je eerst de openstaande sessie met de pc sluit voordat je weer een nieuwe sessie opent



Hallo,

bedankt voor jou reply, dit had ik echter als eerste geprobeerd, bij het binnen komen van de procedure de Server1 stoppen en testen of deze gestopt was, en vervolgens de code zoals deze in het bericht stond, en tenslotte de Server1 weer starten en testen of deze ook daadwerkelijk gestart was.

Het resultaat op Server2 werd hier echter niet anders van..

Nog steeds werden de UDP berichten niet ontvangen op de Server2 module.

ook had ik de diverse modes gepropbeerd, ook dit zonder succes.. (WIFI_AP_STA, WIFI_AP, WIFI_STA)

Gebruikers-avatar
Berichten: 210
Geregistreerd: 03 Sep 2013, 10:03
Woonplaats: Katwijk ZH

Re: ESP8266, UDP Client pakketten worden niet verzonden

Berichtdoor baco1978 » 25 Feb 2018, 23:13

ik denk dat dit je probleem is

ChrSent = UDPClientForFamilyIP.write(message, Msg.length());

aanpassen naar:
UDPClientForFamilyIP.write(message, Msg.length());
Met vriendelijke groet Arjan

Berichten: 6
Geregistreerd: 25 Feb 2018, 18:23

Re: ESP8266, UDP Client pakketten worden niet verzonden

Berichtdoor mnalxz » 26 Feb 2018, 20:02

baco1978 schreef:ik denk dat dit je probleem is

ChrSent = UDPClientForFamilyIP.write(message, Msg.length());

aanpassen naar:
UDPClientForFamilyIP.write(message, Msg.length());



ik weet zeker van niet..
de functie write levert als functie resultaat het daadwerkelijk aantal verzonden karakters (2 dus zoals uit de logging blijkt, dit is dus correct)

Berichten: 6
Geregistreerd: 25 Feb 2018, 18:23

Re: ESP8266, UDP Client pakketten worden niet verzonden

Berichtdoor mnalxz » 08 Jul 2018, 16:02

Uiteindelijk zelf het probleem op kunnen lossen na enorm veel zoeken en testen.

Het probleem zat uiteindelijk niet in de code zelf maar in de configuratie van mijn router.

Voor WiFi was hier een setting aanwezig genaamd "AP-isolation" en deze was ingesteld op "enabled" !!!

Dit houdt zoveel in als dat wanneer multiple devices verbonden zijn VIA WIFI IN HET ZELFDE NETWERK deze onderling niet met elkaar kunnen communiceren ...

Dus deze setting maar omgezet naar "disabled", zodat de devices WEL met elkaar kunnen communiceren, PROBLEEM OPGELOST.


MNALXZ...

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 14 gasten