mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 14:12:16 +03:00
Пробуем Stream для Esp32
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -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); // указываем номер диапазона символов кириллицы первым байтом на выходе
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user