Пробуем Stream для Esp32

This commit is contained in:
2023-11-17 00:18:23 +03:00
parent 96b982082a
commit f2738c6e3d
4 changed files with 12 additions and 6 deletions

View File

@@ -6,6 +6,7 @@
#include <SoftwareSerial.h> #include <SoftwareSerial.h>
#else #else
#include <HardwareSerial.h> #include <HardwareSerial.h>
#include <SoftwareSerial.h>
#endif #endif
@@ -28,7 +29,7 @@ class IoTUart : public IoTItem {
#ifdef ESP8266 #ifdef ESP8266
SoftwareSerial* _myUART; SoftwareSerial* _myUART;
#else #else
HardwareSerial* _myUART; Stream* _myUART;
#endif #endif
}; };

View File

@@ -14,8 +14,13 @@ IoTUart::IoTUart(const String& parameters) : IoTItem(parameters) {
_myUART->begin(_speed); _myUART->begin(_speed);
#endif #endif
#ifdef ESP32 #ifdef ESP32
_myUART = new HardwareSerial(_line); if (_line >= 0) {
_myUART->begin(_speed, SERIAL_8N1, _rx, _tx); _myUART = new HardwareSerial(_line);
((HardwareSerial*)_myUART)->begin(_speed, SERIAL_8N1, _rx, _tx);
} else {
_myUART = new SoftwareSerial(_rx, _tx);
((SoftwareSerial*)_myUART)->begin(_speed);
}
#endif #endif
} }
@@ -33,7 +38,7 @@ void IoTUart::uartPrintStrInUTF16(const char *strUTF8, int length) {
// не определяются исключения по формату UTF-8 // не определяются исключения по формату UTF-8
for (int i=0; i < length; i++) { for (int i=0; i < length; i++) {
if (strUTF8[i] < 176) { // если байт соответствует коду ASCII, значит берем как есть, но расширяем до двух байт if (strUTF8[i] < 176) { // если байт соответствует коду ASCII, значит берем как есть, но расширяем до двух байт
_myUART->write(0x00); //_myUART->write(0x00);
_myUART->write(strUTF8[i]); _myUART->write(strUTF8[i]);
} else { // иначе понимаем, что имеем дело с двумя байтами (да UTF8 может иметь и больше, но это ограничение наше) } else { // иначе понимаем, что имеем дело с двумя байтами (да UTF8 может иметь и больше, но это ограничение наше)
_myUART->write(0x04); // указываем номер диапазона символов кириллицы первым байтом на выходе _myUART->write(0x04); // указываем номер диапазона символов кириллицы первым байтом на выходе

View File

@@ -9,7 +9,7 @@
#ifdef ESP8266 #ifdef ESP8266
SoftwareSerial* myUART = nullptr; SoftwareSerial* myUART = nullptr;
#else #else
HardwareSerial* myUART = nullptr; Stream* myUART = nullptr;
#endif #endif
class IoTmUART : public IoTUart { class IoTmUART : public IoTUart {

View File

@@ -5,5 +5,5 @@
extern SoftwareSerial* myUART; extern SoftwareSerial* myUART;
#else #else
#include <HardwareSerial.h> #include <HardwareSerial.h>
extern HardwareSerial* myUART; extern Stream* myUART;
#endif #endif