А как же быть с Аскет-конфигуратором?
Неужели придется его переписывать?
Он же ничего не знает о наших новых командах?
Не знает -- узнает!
И для этого не надо в нем ничего переписывать!
Надо просто добавить наши новые команды в описание протокола.
Строка-описание протокола находится в файле commands.h
Найдите её
Код:
const unsigned char protocol[] PROGMEM =
"Патронов в магазине;int(0,90);bullets_in_clip?;bullets_in_clip=\r\n"
"Магазинов;int(0,100);clips?;clips=\r\n"
...
"Напряжение заряженной батареи;int(3000,45000);batt_full_voltage?;batt_full_voltage=\r\n"
"Напряжение разряженной батареи;int(2700,45000);batt_low_voltage?;batt_low_voltage=\r\n";
Здесь каждая строка описывает один из настраевымых параметров.
[Имя_параметра];[тип(миниальное_допустимое_значение,максимальное_допустимое_значение);[команда_для_чтения_параметра];[команда_для_присвоения_значения_параметру]
типов поддерживается пока два - целый тип и перечисляемый тип.
Наша новая переменная целого типа, поэтому добавим в описание протокола строку
"Жизнь после старта игры;int(0,100);life_after_start?;life_after_start=\r\n";
Код:
const unsigned char protocol[] PROGMEM =
"Патронов в магазине;int(0,90);bullets_in_clip?;bullets_in_clip=\r\n"
"Магазинов;int(0,100);clips?;clips=\r\n"
...
"Напряжение заряженной батареи;int(3000,45000);batt_full_voltage?;batt_full_voltage=\r\n"
"Напряжение разряженной батареи;int(2700,45000);batt_low_voltage?;batt_low_voltage=\r\n";
"Жизнь после старта игры;int(0,100);life_after_start?;life_after_start=\r\n";
Все!
Конфигуратор получит описание параметров от "Аскета" запросив протокол - отправив ему команду
protocol?В ответ прилетят вышеописанные строки.
После этого конфигуратор в табличке с параметрами создаст строку для нашего нового параметра, в первой колонке будет его название,
во второй - считанное значение.
Ячейка во второй колонке будет доступна для редактирования, причем конфигуратор подберёт подходящий виджет для редактирования параметра и делегирует его в ячейку.
Для перечисляемый типов - выпадающий список с допустимыми значениями, для целых чисел - Spin Box
Когда мы нажмем кнопку "Записать параметры" - конфигуратор отправит в СОM-порт команду на присвоение значения этому параметру и следом новое значение, взятое из ячейки.
Но это уже тема отельного разговора....