From 76f208abe773a8edba1f8dee22f76f6f13fee6cb Mon Sep 17 00:00:00 2001 From: Henrik Ekblad Date: Sun, 13 Sep 2015 18:26:18 +0200 Subject: [PATCH] Clean up Ethernet defines a bit Setting MY_CONTROLLER_IP_ADDRESS turns on client mode. Setting MY_IP_ADDRESS turns off DHCP mode --- libraries/MySensors/MySensor.h | 17 ++++++++++------- .../core/MyGatewayTransportEthernet.cpp | 4 ++-- .../EthernetGateway/EthernetGateway.ino | 11 +++-------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/libraries/MySensors/MySensor.h b/libraries/MySensors/MySensor.h index 3327516..f368f9f 100644 --- a/libraries/MySensors/MySensor.h +++ b/libraries/MySensors/MySensor.h @@ -26,7 +26,7 @@ #include "MyConfig.h" -#if defined(MY_GATEWAY_SERIAL) || defined(MY_GATEWAY_W5100_CLIENT) || defined(MY_GATEWAY_W5100_SERVER) +#if defined(MY_GATEWAY_SERIAL) || defined(MY_GATEWAY_W5100) #define MY_GATEWAY_FEATURE #define MY_NODE_TYPE "gateway" #elif defined(MY_REPEATER_FEATURE) @@ -102,7 +102,7 @@ // We assume that a gateway having a radio also should act as repeater #define MY_REPEATER_FEATURE #endif - #if defined(MY_GATEWAY_W5100_CLIENT) || defined(MY_GATEWAY_W5100_SERVER) + #if defined(MY_GATEWAY_W5100) #include "drivers/AVR/Ethernet_W5100/utility/socket.cpp" #include "drivers/AVR/Ethernet_W5100/utility/w5100.cpp" #include "drivers/AVR/Ethernet_W5100/DNS.cpp" @@ -110,19 +110,22 @@ #include "drivers/AVR/Ethernet_W5100/EthernetUdp.cpp" #include "drivers/AVR/Ethernet_W5100/IPAddress.cpp" + #if defined(MY_CONTROLLER_IP_ADDRESS) + #define MY_GATEWAY_CLIENT_MODE + #endif + #if !defined(MY_PORT) - #error You must define MY_PORT + #error You must define MY_PORT (cotroller or gatway port to open) #endif #if !defined(USE_UDP) #include "drivers/AVR/Ethernet_W5100/EthernetServer.cpp" #endif - #if defined(MY_GATEWAY_W5100_CLIENT) && !defined(MY_CONTROLLER_IP_ADDRESS) - #error You must define MY_CONTROLLER_IP_ADDRESS when acting as client - #endif - #if defined(MY_GATEWAY_W5100_CLIENT) + #if defined(MY_GATEWAY_CLIENT_MODE) #include "drivers/AVR/Ethernet_W5100/EthernetClient.cpp" #include "core/MyGatewayTransportEthernet.cpp" + #else + // What do we do here? #endif #elif defined(MY_GATEWAY_SERIAL) #include "core/MyGatewayTransportSerial.cpp" diff --git a/libraries/MySensors/core/MyGatewayTransportEthernet.cpp b/libraries/MySensors/core/MyGatewayTransportEthernet.cpp index 83fa9b1..18bd233 100644 --- a/libraries/MySensors/core/MyGatewayTransportEthernet.cpp +++ b/libraries/MySensors/core/MyGatewayTransportEthernet.cpp @@ -66,13 +66,13 @@ bool gatewayTransportSend(MyMessage &message) else { _ethernetMsg = protocolFormat(message); #ifdef MY_USE_UDP - _ethernetServer.beginPacket(_ethernetControllerIP, MY_CONTROLLER_PORT); + _ethernetServer.beginPacket(_ethernetControllerIP, MY_PORT); _ethernetServer.write(_ethernetMsg, strlen(_ethernetMsg)); // returns 1 if the packet was sent successfully return _ethernetServer.endPacket(); #else EthernetClient client; - if (client.connect(_ethernetControllerIP, MY_CONTROLLER_PORT)) { + if (client.connect(_ethernetControllerIP, MY_PORT)) { client.write(_ethernetMsg, strlen(_ethernetMsg)); client.stop(); return true; diff --git a/libraries/MySensors/examples/EthernetGateway/EthernetGateway.ino b/libraries/MySensors/examples/EthernetGateway/EthernetGateway.ino index 687468c..3dd66d8 100644 --- a/libraries/MySensors/examples/EthernetGateway/EthernetGateway.ino +++ b/libraries/MySensors/examples/EthernetGateway/EthernetGateway.ino @@ -63,10 +63,8 @@ #define MY_RADIO_NRF24 -// W5100 Ethernet in client mode (node opens conmection to controller) -#define MY_GATEWAY_W5100_CLIENT -// W5100 Ethernet in client mode (controller opens conmection to node) -//#define MY_GATEWAY_W5100_SERVER +// W5100 Ethernet gateway +#define MY_GATEWAY_W5100 // Set default gateway protocol (http://www.mysensors.org/download/serial_api_15) #define MY_GATEWAY_PROTOCOL_DEFAULT @@ -88,10 +86,8 @@ // The port to keep open on node server mode / or port to contact in client mode #define MY_PORT 5003 -// Controller ip address (client mode) +// Controller ip address (enables client mode). Undefine this to act as sever. #define MY_CONTROLLER_IP_ADDRESS 192, 168, 178, 254 -// The port you want to contact on controller (client mode) -#define MY_CONTROLLER_PORT 5003 // The MAC address can be anything you want but should be unique on your network. // Newer boards have a MAC address printed on the underside of the PCB, which you can (optionally) use. @@ -124,7 +120,6 @@ void setup() { - dataCallback(); } void loop() {