From 2bfe5cc650043bb3171380beb17fdce6f663f049 Mon Sep 17 00:00:00 2001 From: Tomas Hozza Date: Sat, 23 May 2015 21:41:53 +0200 Subject: [PATCH] Add begin function to the GatewayTransport class Signed-off-by: Tomas Hozza --- libraries/MySensors/MyGateway.cpp | 6 ++++++ libraries/MySensors/MyGatewayTransport.h | 3 +++ libraries/MySensors/MyGatewayTransportSerial.cpp | 4 ++++ libraries/MySensors/MyGatewayTransportSerial.h | 3 +++ 4 files changed, 16 insertions(+) diff --git a/libraries/MySensors/MyGateway.cpp b/libraries/MySensors/MyGateway.cpp index db4e4ee..404b5b4 100644 --- a/libraries/MySensors/MyGateway.cpp +++ b/libraries/MySensors/MyGateway.cpp @@ -73,6 +73,12 @@ void MyGateway::begin(void (*_msgCallback)(const MyMessage &) #endif #endif + // initialize the transport driver + if (!transport.begin()) { + debug(PSTR("transport driver init fail\n")); + while(1); // Nothing more we can do + } + // Start MySensors in repeater mode MySensor::begin(_msgCallback, GATEWAY_ADDRESS, true, GATEWAY_ADDRESS); diff --git a/libraries/MySensors/MyGatewayTransport.h b/libraries/MySensors/MyGatewayTransport.h index d94006f..da03ff5 100644 --- a/libraries/MySensors/MyGatewayTransport.h +++ b/libraries/MySensors/MyGatewayTransport.h @@ -30,6 +30,9 @@ public: // MyProtocol constructor MyGatewayTransport(MyProtocol &protocol = *new MyProtocolDefault()); + // initialize the transport driver + virtual bool begin() = 0; + // Send message to controller virtual bool send(MyMessage &message) = 0; diff --git a/libraries/MySensors/MyGatewayTransportSerial.cpp b/libraries/MySensors/MyGatewayTransportSerial.cpp index e0f79bf..f5acbed 100644 --- a/libraries/MySensors/MyGatewayTransportSerial.cpp +++ b/libraries/MySensors/MyGatewayTransportSerial.cpp @@ -25,6 +25,10 @@ MyGatewayTransportSerial::MyGatewayTransportSerial(MyProtocol &_protocol) : MyGa } +bool MyGatewayTransportSerial::begin() { + return true; +} + bool MyGatewayTransportSerial::send(MyMessage &message) { Serial.print(protocol.format(message)); // Serial print is always successful diff --git a/libraries/MySensors/MyGatewayTransportSerial.h b/libraries/MySensors/MyGatewayTransportSerial.h index 678e932..44434cf 100644 --- a/libraries/MySensors/MyGatewayTransportSerial.h +++ b/libraries/MySensors/MyGatewayTransportSerial.h @@ -33,6 +33,9 @@ public: // MyGateway constructor MyGatewayTransportSerial(MyProtocol &protocol = *new MyProtocolDefault()); + // initialize the transport driver + bool begin(); + // Send message to controller bool send(MyMessage &message);