Пока сделал так
Код:
//miles протокол идентификаторы сообщения
#define ID_Add_Health 0x80 //сообщение добавить жизни
#define ID_Add_Rounds 0x81 //сообщение добавить патронов
#define ID_Command 0x83 //сообщение-команда
#define ID_Clips_Pickup 0x8A //сообщение
#define ID_Health_Pickup 0x8B
#define ID_Flag_Pickup 0x8C
//LW дополнительные идентификаторы сообщения
#define ID_Radiation 0xA0
#define ID_Anomaly 0xA1
#define ID_Presetting 0xA8
#define ID_Change_Color 0xA9
#define ID_Play_Sound 0xAA
//miles команды
#define Command_ImmediateNewGame 0x05 //команда "новая игра"
#define Command_Admin_Kill 0x00 //команда "выключения" игрока
#define Command_Full_Health 0x0D //жизни - 100%
#define Command_Full_Ammo 0x06 //полные патроны
//LW дополнительные команды
#define Command_IR_Power_Change 0x0E
#define Command_Health_Double 0x10
//контрольный байт
#define Control_Byte 0xE8 //корректное значение контрольного байта сообщения
Код:
void pult_reset_to_defaul(void){//устанавливаем команды для кнопок пульта по умолчанию
tcommand_union cmd_union_tmp;
cmd_union_tmp.message.ID = ID_Change_Color;
cmd_union_tmp.message.DATA = 0x00; //Red
eeprom_write_byte(&pult_shift_and_key_up_command, cmd_union_tmp.raw); //shift+key_UP
cmd_union_tmp.message.DATA = 0x01; //Blue
eeprom_write_byte(&pult_shift_and_key_right_command, cmd_union_tmp.raw); //shift+key_RIGHT
cmd_union_tmp.message.DATA = 0x02; //Yellow
eeprom_write_byte(&pult_shift_and_key_down_command, cmd_union_tmp.raw); //shift+key_DOWN
cmd_union_tmp.message.DATA = 0x03; //Green
eeprom_write_byte(&pult_shift_and_key_left_command, cmd_union_tmp.raw); //shift+key_LEFT
cmd_union_tmp.message.ID = ID_Command;
cmd_union_tmp.message.DATA = Command_IR_Power_Change;
eeprom_write_byte(&pult_shift_and_key_central_command, cmd_union_tmp.raw); //shift+key_CENTRAL переключение мощности ИК излучения улица/помещение
cmd_union_tmp.message.DATA = Command_ImmediateNewGame;
eeprom_write_byte(&pult_key_up_command, cmd_union_tmp.raw); //key_UP старт игры
cmd_union_tmp.message.DATA = Command_Admin_Kill;
eeprom_write_byte(&pult_key_down_command, cmd_union_tmp.raw); //key_DOWN Admin Kill
cmd_union_tmp.message.DATA = Command_Full_Health;
eeprom_write_byte(&pult_key_central_command, cmd_union_tmp.raw); //key_CENTRAL Full_Health
cmd_union_tmp.message.DATA = Command_Full_Ammo;
eeprom_write_byte(&pult_key_left_command, cmd_union_tmp.raw); //key_LEFT Full Ammo
cmd_union_tmp.message.DATA = Command_Health_Double ;
eeprom_write_byte(&pult_key_right_command, cmd_union_tmp.raw); //key_LEFT удвоть жизнь
}
Не могу придумать, как проверить - инициализировался ли пульт хотя бы раз?
Потому после перепрошивки нужно будет зайти в меню настроек и выбрать "Настройки по умолчанию".
Ща перепрошью, да пойду на "кошках" тренироваться. а "кошка" у меня пока одна - плата LW.
Гляну, как взбрыкивать будет на те или иные команды.