Как передать в функцию объект последовательного порта?
- Войдите на сайт для отправки комментариев
Пнд, 07/03/2016 - 13:25
Добрый день!
Из разрозненных функций собираю свою библиотеку для работы с GSM, ориентируясь прежде всего на Мегу. Соответственно, в конструктор класса нужно передать порт, с которым нужно будет работать. На такую конструкцию компилятор ругается
HardwareSerial _SerialPort = Serial; void GSM_begin(HardwareSerial SerialPort) { _SerialPort = SerialPort; }
error: use of deleted function 'HardwareSerial& HardwareSerial::operator=(const HardwareSerial&)
Как правильно организовать выбор объекта (Serial...Serial3) ?
Передавайте Stream*
Ну или, если прямо вот так надо HardwareSerial, то передавайте указатель на него:
Потому как оператор копирования по вполне разумным причинам в классе закрыт. А вообще - удобнее работать со Stream*, от которого много чего наследуется, в том числе и HardwareSerial. Писать, читать, не задумываясь, что там на самом деле за класс - это удобно. Вместо порта нужна будет запись в файл - передали Stream* файла - и айда, без малейшей переделки кода ;)
Спасибо!
Спасибо!
Да незчт, обращайтесь.