Это хорошо.
Тогда я посмотрю код, но чуть попозже. Пока же отмечу то, что сразу бросилось в глаза.
Вы (как, впрочем, и большинство авторов ардуиновских “библиотек”) злоупотребляете спецификатором доступа private
. Вы можете объяснить, почему Вы его использовали здесь? По-моему, в нём нет никакой нужды. Но этим Вы убили возможность создания класса-наследника, т.е. это противоречит самой идее ООП.
Нет, я понимаю, что внутренним переменным не стоит быть public
, но private
их надо делать только в том случае, если Вы твёрдо уверены, что никаким классам-наследникам не нужен доступ к ним. В Вашем же случае – реально нужен почти ко всему. А значит, их надо было объявлять protected
.
Посмотрите, как в Arduino IDE реализован класс String
– его делали грамотные ребята.
Чуть позже я посмотрю код повнимательнее и оттопчусь на том, что замечу, не исчезайте.