UDP/TCP client mode repaired (#766)

This commit is contained in:
Soef
2017-03-07 18:55:40 +01:00
committed by Henrik Ekblad
parent 7824e12823
commit e7ae5d144e
2 changed files with 21 additions and 18 deletions
+1
View File
@@ -8,3 +8,4 @@ Makefile.inc
build
bin
*.sublime-workspace
.idea
+20 -18
View File
@@ -137,31 +137,33 @@ bool gatewayTransportInit(void)
delay(1000);
#endif /* MY_GATEWAY_ESP8266 */
#ifdef MY_USE_UDP
_ethernetServer.begin(_ethernetGatewayPort);
#elif defined(MY_GATEWAY_CLIENT_MODE)
#if defined(MY_CONTROLLER_URL_ADDRESS)
if (client.connect(MY_CONTROLLER_URL_ADDRESS, MY_PORT)) {
#if defined(MY_GATEWAY_CLIENT_MODE)
#if defined(MY_CONTROLLER_URL_ADDRESS)
if (client.connect(MY_CONTROLLER_URL_ADDRESS, MY_PORT)) {
#else
if (client.connect(_ethernetControllerIP, MY_PORT)) {
if (client.connect(_ethernetControllerIP, MY_PORT)) {
#endif
debug(PSTR("Eth: connect\n"));
_w5100_spi_en(false);
gatewayTransportSend(buildGw(_msgTmp, I_GATEWAY_READY).set(MSG_GW_STARTUP_COMPLETE));
_w5100_spi_en(true);
presentNode();
} else {
client.stop();
debug(PSTR("Eth: Failed to connect\n"));
}
debug(PSTR("Eth: connect\n"));
_w5100_spi_en(false);
gatewayTransportSend(buildGw(_msgTmp, I_GATEWAY_READY).set(MSG_GW_STARTUP_COMPLETE));
_w5100_spi_en(true);
presentNode();
}
else {
client.stop();
debug(PSTR("Eth: Failed to connect\n"));
}
#elif defined(MY_USE_UDP)
_ethernetServer.begin(_ethernetGatewayPort);
#else
#if defined(MY_GATEWAY_LINUX) && defined(MY_IP_ADDRESS)
_ethernetServer.begin(_ethernetGatewayIP);
#else
// we have to use pointers due to the constructor of EthernetServer
// we have to use pointers due to the constructor of EthernetServer
_ethernetServer.begin();
#endif
#endif /* USE_UDP */
_w5100_spi_en(false);
return true;
}
@@ -204,7 +206,7 @@ bool gatewayTransportSend(MyMessage &message)
return false;
}
}
nbytes = client.write(_ethernetMsg, strlen(_ethernetMsg));
nbytes = client.write((const uint8_t*)_ethernetMsg, strlen(_ethernetMsg));
#endif
#else
// Send message to connected clients
@@ -298,7 +300,7 @@ bool gatewayTransportAvailable(void)
if (packet_size) {
//debug(PSTR("UDP packet available. Size:%d\n"), packet_size);
#if defined(MY_GATEWAY_ESP8266)
#if defined(MY_GATEWAY_ESP8266) && !defined(MY_GATEWAY_CLIENT_MODE)
_ethernetServer.read(inputString[0].string, MY_GATEWAY_MAX_RECEIVE_LENGTH);
inputString[0].string[packet_size] = 0;
debug(PSTR("UDP packet received: %s\n"), inputString[0].string);