Я хочу создать новую библиотеку, которая контролирует библиотеку Arduino Serial.
Вот что я хочу ...
main Sketch
#include <newLibrary.h>
newLibrary connection(2,9600); // 2 is Serial2, 9600 is baudRate
void main()
{
connection.start();
}
newLibrary. cpp
newLibrary::newLibrary (uint8_t port, long baudRate)
{
__port = port;
__baudRate = baudRate;
}
void newLibrary::start()
{
(Serial+port).begin(); // I need to add port to Serial to make Serial2
}
Что я хочу сделать, это:
Пользователь будет выбирать, какой последовательный порт (например, Serial / Serial1 / Serial2 et c ...) будет использоваться с;
newLibrary connection(2,9600); // 2 is Serial2, 9600 is baudRate
и после этого функция запуска в newLibrary.h запустит этот последовательный порт с помощью алгоритма, подобного;
void newLibrary::start()
{
(Serial+port).begin(); // Which is equal to Serial.begin() or Serial1.begin() etc
}
Я знаю, что это можно сделать, если оператор или регистр переключения ...
Но есть ли другой способ?
Например, макросы ....
Я знаю, что макросы можно использовать как;
#define serialPort (Serial##1) // so the serialPort refers to Serial1
Но этот способ у меня не работает ....