#1 Програмування Arduino » Передати посилання на HardwareSerial або EspSoftwareSerial::UART у кла » 2023-07-15 16:53:15

p-a-h-a
відповідей: 0

Доброго дня. Пишу бібліотеку яка має друкувати певні данні через Serial.
У скечі необхідно передати яким саме Serial буде користуватися бібліотека хардварними(їх 2 шт) чи софтварним.
Ось мої намагання:

#include "Arduino.h"
#include <variant>
#include "SoftwareSerial.h"

HardwareSerial &hwSerial(Serial);
EspSoftwareSerial::UART swSwrial;


class mySerial
{
public:
  mySerial(auto &serialType)
  {
    serial = serialType;
  }

  void print()
  {
    serial.begin(9600); // Error!!! класс "std::variant<HardwareSerial, EspSoftwareSerial::UART>" не содержит члена "begin"C/C++(135)
    serial.print("Hallo"); //Error!!! класс "std::variant<HardwareSerial, EspSoftwareSerial::UART>" не содержит члена "print"
  }

private:
  std ::variant<HardwareSerial, EspSoftwareSerial::UART> &serial;
};

void Setup()
{
 mySerial mySerial(hwSerial); 
 mySerial.print();
}

Помилки написані в коментарях до коду. Прошу допомогти розібратися в питанні.

Підвал форуму