diff options
Diffstat (limited to 'examples/arduino/arduino.ino')
| -rw-r--r-- | examples/arduino/arduino.ino | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/examples/arduino/arduino.ino b/examples/arduino/arduino.ino index 2f4c3f7..88cbcaa 100644 --- a/examples/arduino/arduino.ino +++ b/examples/arduino/arduino.ino @@ -1,5 +1,6 @@ #include <modbus.h> +// #include <SoftwareSerial.h> /* Baud rate for UART */ #define BAUD 9600 @@ -25,15 +26,16 @@ modbus_slave_device modbus_dev_single; * in a single point-to-point connection? */ /* Not illustrated beyond the definition, but should be clear enough */ modbus_slave_device modbus_dev_multiple[10]; +// SoftwareSerial myserial(5, 6); uint16_t reg; void setup() { Serial.begin(BAUD); - + // myserial.begin(BAUD); /* Set the slave ID to 1 */ - modbus_dev_single.slave_id = 1; + modbus_dev_single.slave_id = 3; /* Attach the default HardwareSerial class instance to this node */ modbus_dev_single.modbus_uart = &Serial; @@ -47,27 +49,34 @@ void loop() if (status == MB_OK) { /* Do something with data in the response buffer */ /* ... */ + // Serial.write((uint8_t)modbus_dev_single.response_buffer); ClearResponseBuffer(&modbus_dev_single); } } MB_StatusTypeDef ArduinoSerial_Tx(void* serial, uint16_t* buf, uint8_t* len, uint8_t* timeout) { - HardwareSerial* _serial = static_cast<HardwareSerial*>(serial); - if (_serial->availableForWrite()) { - _serial->write((uint8_t)*buf); - } - _serial->flush(); + // SoftwareSerial *_serial = static_cast<SoftwareSerial*>(serial); + Stream *_serial = static_cast<Stream*>(serial); + // HardwareSerial* _serial = static_cast<HardwareSerial*>(serial); + _serial->write((uint8_t)*buf); + // if (_serial->availableForWrite()) { + // _serial->write((uint8_t)*buf); + // } + // _serial->flush(); /* HardwareSerial class funcs do not return any UART errors, sadly */ return MB_OK; } MB_StatusTypeDef ArduinoSerial_Rx(void* serial, uint16_t* buf, uint8_t* len, uint8_t* timeout) { - HardwareSerial* _serial = static_cast<HardwareSerial*>(serial); + // HardwareSerial* _serial = static_cast<HardwareSerial*>(serial); + // SoftwareSerial *_serial = static_cast<SoftwareSerial*>(serial); + Stream *_serial = static_cast<Stream*>(serial); buf = _serial->read(); /* HardwareSerial class funcs do not return any UART errors, sadly */ return MB_OK; } + |
