Для Arduino создается библиотека для работы с платой WiFi.
Плата может работать на произвольном Hardware или Software порту Mega 2556.
Следовательно, для работы библиотеки требуется передать в нее порт Serial, например передать ссылку или указатель.
Например:
myClass::begin(HardwareSerial *SerialName) {
//Не подходит, поскольку далее придется использовать такой синтаксис чтобы разыменовывать указатель:
(*SerialName).end();
//или:
SerialName <- begin(9600);
}
А требуется использовать классический синтаксис.
Практически получилось использовать следующую конструкцию:
в файле myLibrary.h
HardwareSerial *SerialName;
//и тут же
HardwareSerial & MyPort = *SerialName;
Тогда в файле myLibrary.cpp я уже могу использовать:
myClass::begin(HardwareSerial *SerialName) {
HardwareSerial & MyPort = *SerialName;
MyPort.end();
MyPort.begin(9600);
}
Проблема в том, что создание объекта
HardwareSerial & MyPort = *SerialName;
приходится делать в КАЖДОМ методе, и он уничтожается после его выполнения (после выполнения в основной программе
myClass.begin();
например). Создать однократно (глобально) MyPort со ссылкой на переданный Serial для использования во всей библиотеке у меня не получается...
Так вот, требуется чтобы
HardwareSerial & MyPort = *SerialName;
создавался в библиотеке ОДИН раз, для использования во всех методах. Можно ли это организовать при работе с Arduino IDE?