-bugfix Arduino set knxUart

This commit is contained in:
Bernhard 2019-09-08 17:50:54 +02:00
parent 36c2cc2e29
commit e4dbda5f16
8 changed files with 32 additions and 34 deletions

View File

@ -3,9 +3,9 @@
#include <Arduino.h>
Stream& ArduinoPlatform::SerialDebug = Serial;
Stream& ArduinoPlatform::SerialDebug = SerialUSB;
ArduinoPlatform::ArduinoPlatform(HardwareSerial& knxSerial) : _knxSerial(knxSerial)
ArduinoPlatform::ArduinoPlatform(HardwareSerial* knxSerial) : _knxSerial(knxSerial)
{
}
@ -68,19 +68,21 @@ int ArduinoPlatform::readBytes(uint8_t * buffer, uint16_t maxLen)
return 0;
}
void ArduinoPlatform::knxUart( HardwareSerial& serial )
void ArduinoPlatform::knxUart( HardwareSerial* serial )
{
closeUart();
_knxSerial = serial;
setupUart();
}
HardwareSerial& ArduinoPlatform::knxUart()
HardwareSerial* ArduinoPlatform::knxUart()
{
return _knxSerial;
}
void ArduinoPlatform::setupUart()
{
_knxSerial.begin(19200, SERIAL_8E1);
_knxSerial->begin(19200, SERIAL_8E1);
while (!_knxSerial)
;
}
@ -88,33 +90,33 @@ void ArduinoPlatform::setupUart()
void ArduinoPlatform::closeUart()
{
_knxSerial.end();
_knxSerial->end();
}
int ArduinoPlatform::uartAvailable()
{
return _knxSerial.available();
return _knxSerial->available();
}
size_t ArduinoPlatform::writeUart(const uint8_t data)
{
//printHex("<p", &data, 1);
return _knxSerial.write(data);
return _knxSerial->write(data);
}
size_t ArduinoPlatform::writeUart(const uint8_t *buffer, size_t size)
{
//printHex("<p", buffer, size);
return _knxSerial.write(buffer, size);
return _knxSerial->write(buffer, size);
}
int ArduinoPlatform::readUart()
{
int val = _knxSerial.read();
int val = _knxSerial->read();
//if(val > 0)
// printHex("p>", (uint8_t*)&val, 1);
return val;
@ -127,7 +129,7 @@ size_t ArduinoPlatform::readBytesUart(uint8_t *buffer, size_t length)
uint8_t* pos = buffer;
while (toRead > 0)
{
size_t val = _knxSerial.readBytes(pos, toRead);
size_t val = _knxSerial->readBytes(pos, toRead);
pos += val;
toRead -= val;
}
@ -267,4 +269,4 @@ void println(double num)
void println(void)
{
ArduinoPlatform::SerialDebug.println();
}
}

View File

@ -7,7 +7,7 @@ extern Stream& _serialDBG;
class ArduinoPlatform : public Platform
{
public:
ArduinoPlatform(HardwareSerial& knxSerial);
ArduinoPlatform(HardwareSerial* knxSerial);
// ip stuff
uint32_t currentIpAddress();
@ -25,8 +25,8 @@ class ArduinoPlatform : public Platform
int readBytes(uint8_t* buffer, uint16_t maxLen);
//uart
virtual void knxUart( HardwareSerial& serial );
virtual HardwareSerial& knxUart();
virtual void knxUart( HardwareSerial* serial);
virtual HardwareSerial* knxUart();
virtual void setupUart();
virtual void closeUart();
virtual int uartAvailable();
@ -40,5 +40,5 @@ class ArduinoPlatform : public Platform
protected:
uint32_t _mulitcastAddr;
uint16_t _mulitcastPort;
HardwareSerial& _knxSerial;
HardwareSerial* _knxSerial;
};

View File

@ -6,11 +6,11 @@
#include "knx/bits.h"
Esp32Platform::Esp32Platform() : ArduinoPlatform(Serial1)
Esp32Platform::Esp32Platform() : ArduinoPlatform(&Serial1)
{
}
Esp32Platform::Esp32Platform( HardwareSerial& s) : ArduinoPlatform(s)
Esp32Platform::Esp32Platform( HardwareSerial* s) : ArduinoPlatform(s)
{
}
@ -36,7 +36,7 @@ void Esp32Platform::macAddress(uint8_t * addr)
void Esp32Platform::restart()
{
Serial.println("restart");
ArduinoPlatform::SerialDebug.println("restart");
ESP.restart();
}
@ -95,4 +95,4 @@ void Esp32Platform::commitToEeprom()
EEPROM.commit();
}
#endif
#endif

View File

@ -3,7 +3,6 @@
#include <WiFi.h>
#include <WiFiUdp.h>
#define SerialDBG Serial
class Esp32Platform : public ArduinoPlatform
{
@ -35,4 +34,4 @@ private:
WiFiUDP _udp;
};
#endif
#endif

View File

@ -7,11 +7,11 @@
#include "knx/bits.h"
EspPlatform::EspPlatform() : ArduinoPlatform(Serial)
EspPlatform::EspPlatform() : ArduinoPlatform(&Serial)
{
}
EspPlatform::EspPlatform( HardwareSerial& s) : ArduinoPlatform(s)
EspPlatform::EspPlatform( HardwareSerial* s) : ArduinoPlatform(s)
{
}
@ -37,7 +37,7 @@ void EspPlatform::macAddress(uint8_t * addr)
void EspPlatform::restart()
{
Serial.println("restart");
ArduinoPlatform::SerialDebug.println("restart");
ESP.reset();
}

View File

@ -3,7 +3,6 @@
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#define SerialDBG Serial
class EspPlatform : public ArduinoPlatform
{
@ -36,4 +35,4 @@ private:
WiFiUDP _udp;
};
#endif
#endif

View File

@ -6,17 +6,17 @@
#include <Arduino.h>
#include <FlashAsEEPROM.h>
SamdPlatform::SamdPlatform() : ArduinoPlatform(Serial1)
SamdPlatform::SamdPlatform() : ArduinoPlatform(&Serial1)
{
}
SamdPlatform::SamdPlatform( HardwareSerial& s) : ArduinoPlatform(s)
SamdPlatform::SamdPlatform( HardwareSerial* s) : ArduinoPlatform(s)
{
}
void SamdPlatform::restart()
{
SerialDBG.println("restart");
ArduinoPlatform::SerialDebug.println("restart");
NVIC_SystemReset();
}

View File

@ -4,17 +4,15 @@
#ifdef ARDUINO_ARCH_SAMD
#define SerialDBG SerialUSB
class SamdPlatform : public ArduinoPlatform
{
public:
SamdPlatform();
SamdPlatform( HardwareSerial& s);
SamdPlatform( HardwareSerial* s);
void restart();
uint8_t* getEepromBuffer(uint16_t size);
void commitToEeprom();
};
#endif
#endif