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);