diff --git a/library.json b/library.json index d280e7c..90a3d41 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "SimpleSerialProtocol", - "version": "1.5.0", + "version": "1.6.0", "description": "Easy-to-use serial protocol system for arduino type devices.", "keywords": "Serial, Connectivity, USB, Simple", "repository": diff --git a/src/SerialConnection.h b/src/SerialConnection.h index 26d90b2..622f9fc 100644 --- a/src/SerialConnection.h +++ b/src/SerialConnection.h @@ -41,7 +41,7 @@ class SerialConnection Stream *serialRefrence; public: - void init(HardwareSerial &serialObject, unsigned long serialBaud); + void init(int serialIndex, unsigned long serialBaud); void send(char * data); char* handle(); char* getPacketMarker(int type); @@ -49,9 +49,32 @@ class SerialConnection }; -void SerialConnection::init(HardwareSerial &serialObject, unsigned long serialBaud) { - serialObject.begin(serialBaud); - serialRefrence = &serialObject; +void SerialConnection::init(int serialIndex, unsigned long serialBaud) { + if (serialIndex == 0) { + Serial.begin(serialBaud); + serialRefrence = &Serial; + } + + #ifdef Serial1 + else if (serialIndex == 1) { + Serial1.begin(serialBaud); + serialRefrence = &Serial1; + } + #endif + + #ifdef Serial2 + else if (serialIndex == 2) { + Serial2.begin(serialBaud); + serialRefrence = &Serial2; + } + #endif + + #ifdef Serial3 + else if (serialIndex == 3) { + Serial3.begin(serialBaud); + serialRefrence = &Serial3; + } + #endif }; char* SerialConnection::handle() { diff --git a/src/SimpleSerialProtocol.h b/src/SimpleSerialProtocol.h index 34e5d05..7122ed6 100644 --- a/src/SimpleSerialProtocol.h +++ b/src/SimpleSerialProtocol.h @@ -26,15 +26,19 @@ class SimpleSerialProtocol private: SerialConnection serialConnection; public: - bool init(HardwareSerial &serialObject, unsigned long baud); + bool init(int deviceIndex, unsigned long baud); bool receivePackets(void (*callback)(Packet)); bool sendPacket(char* ID, char* command, char* data); }; +bool SimpleSerialProtocol::init(int deviceIndex, unsigned long baud) { + // Check if device index is in range + if (deviceIndex < 0 || deviceIndex > 4) { + return false; + } -bool SimpleSerialProtocol::init(HardwareSerial &serialObject, unsigned long baud) { // Init serial connection - serialConnection.init(serialObject, baud); + serialConnection.init(deviceIndex, baud); // Serial Connection Delay delay(5);