Pacifist писал(а):
Добавил исходники. Настройка сделана по протоколу LTagKirov. Так что программа настройки теоретически должна быть совместимой с платами LTagKirov в реализованной части настроек.
Посмотрел код, получается ты пропихнул ИК протокол настройки LTK через базу LW - щЁрт побери как я сам не догадался так сделать. Для тех кто не понял, конфигуратор Tag8 через USB базу ЛВ может настроить LTK v2
Pacifist писал(а):
Кажется на этом моя миссия заканчивается
Нифига теперь не отвертишся
Код:
Основная задумка формата он не привязан к конфигурируемым данным как команды Майлс например.
По ИК каналу можно будет передать в дальнейшем до 255 различных конфигурационных двухбайтовых параметров.
// Используем для конфигурирования через ИК канал
// Пароль доступа устанавливается через СОМ порт или по ИК каналу
#define MILES_CFG_PASS 0xBC // H (0..255) L(0..255) Пароль по доступу к CFG, число от 0..65535
#define MILES_CFG_D1 0xBD // H (0..255) L(0..255) Число для конфигурации от 0..65535
#define MILES_CFG_D2 0xBE // H (0..255) L(0..255) Число для конфигурации повтор
#define MILES_CFG_SYMB 0xBF // Х (0..255) Y(0..255) Символ команды, с повтором для контроля
// Сначала открываем доступ: передав пароль в команде
// Два числа D1 D2 передаются друг за другом,
// Затем символ(код) команды, если данные совпадают производится запись.
// По окончании конфигурирования, выключить доступ по ИК каналу,
// передав отличный от правильного пароль
Пароль нужен только чтобы возможно было настраивать одновременно много макетов не пряча их в шкафу и не доставать по одному перед конфигурированием.
В принципе пароль не обязателен, что и было сделано в проекте Tag8.
Пример передачи конфигурации
Код:
изменение только одного параметра №1 на значение 4 должно выглядеть так:
0xBC пасс пасс (ввести пароль)
0xBD 0х04 0х00 (передать значение)
0xBE 0х04 0х00 (повторить значение)
0xBF 0х01 0х01 (передать № параметра, которому значение будет присвоено)
0xBC 0х00 0х00 (закрыть сессию)
Для смены нескольких параметров за одну сессию, открытие сессии и закрытие может быть только один раз в начале и конце. В принципе закрывать сессию тоже не обязательно можно просто выключить маркер, пароль для следующей сессии просто вводится заново. в ЛТК пароль для сессии тоже параметр и его можно поменять через этот протокол, и запись во флеш тоже идёт отдельной командой в этом протоколе, но это просто расширение протокола поддерживать его не обязательно.
Вот описание основных кодов параметров, в целях унификации желательно их придерживаться, для простоты использовал буквы, но осталось ещё куча непечатных символов
http://www.open-tager.ru/forum/viewtopic.php?f=5&t=417&start=160#p30635. Этот же протокол свёрнутый в одно сообщение может работать через СОМ порт(и переходник блютуф тоже), за подробностями смотрите по ссылке.
Протокол не использует квитирование, так как клонирование в корке тоже его не использует, а только определяет CRC блока, но при этом всё более менее работает. После приёма конфигурации если всё успешно передалось и не было ошибок можно поиграть маркером какой-нибудь звук или всё-таки отправить через ИК канал сигнал квитирования, если очень свербит. Протокол позволяет не закладывать жёстко структуру пакета (как в случае клонирования) и не требует грузить все параметры, обычно хочется поменять всего парочку.