diff --git a/src/RS485.cpp b/src/RS485.cpp index ba6e80f..05bdcbb 100644 --- a/src/RS485.cpp +++ b/src/RS485.cpp @@ -19,6 +19,18 @@ #include "RS485.h" +#ifdef __MBED__ +#include "pinDefinitions.h" +RS485Class::RS485Class(HardwareSerial& hwSerial, PinName txPin, PinName dePin, PinName rePin) : + _serial(&hwSerial), + _txPin(PinNameToIndex(txPin)), + _dePin(PinNameToIndex(dePin)), + _rePin(PinNameToIndex(rePin)), + _transmisionBegun(false) +{ +} +#endif + RS485Class::RS485Class(HardwareSerial& hwSerial, int txPin, int dePin, int rePin) : _serial(&hwSerial), _txPin(txPin), @@ -186,4 +198,8 @@ void RS485Class::setDelays(int predelay, int postdelay) _postdelay = postdelay; } +#ifdef RS485_SERIAL_PORT +RS485Class RS485(RS485_SERIAL_PORT, RS485_DEFAULT_TX_PIN, RS485_DEFAULT_DE_PIN, RS485_DEFAULT_RE_PIN); +#else RS485Class RS485(SERIAL_PORT_HARDWARE, RS485_DEFAULT_TX_PIN, RS485_DEFAULT_DE_PIN, RS485_DEFAULT_RE_PIN); +#endif diff --git a/src/RS485.h b/src/RS485.h index 3f9fdff..cc298b2 100644 --- a/src/RS485.h +++ b/src/RS485.h @@ -22,11 +22,13 @@ #include +#ifndef RS485_DEFAULT_TX_PIN #ifdef PIN_SERIAL1_TX #define RS485_DEFAULT_TX_PIN PIN_SERIAL1_TX #else #define RS485_DEFAULT_TX_PIN 1 #endif +#endif #ifdef __AVR__ #define RS485_DEFAULT_DE_PIN 2 @@ -35,9 +37,11 @@ #define RS485_DEFAULT_DE_PIN A1 #define RS485_DEFAULT_RE_PIN A0 #else +#ifndef RS485_DEFAULT_DE_PIN #define RS485_DEFAULT_DE_PIN A6 #define RS485_DEFAULT_RE_PIN A5 #endif +#endif #define RS485_DEFAULT_PRE_DELAY 50 @@ -45,6 +49,9 @@ class RS485Class : public Stream { public: +#ifdef __MBED__ + RS485Class(HardwareSerial& hwSerial, PinName txPin, PinName dePin, PinName rePin); +#endif RS485Class(HardwareSerial& hwSerial, int txPin, int dePin, int rePin); virtual void begin(unsigned long baudrate);