maksim писал(а):
break;
case RX_ERROR: //ошибка приема
{
if((!ir_error_ignore)&&(!eeprom_is_open))
{
play_sound_8();
keyboard_event=no_key_pressing;
}
}
break;
case RX_MESSAGE_COMPLITE://принято сообщение
{
// rx_event = NOT_EVENT;
if(get_bt_buffer_bit(0)) //если этот бит равен 1, то это пакет с командой
{
ir_message = get_ir_message_from_bt_buffer();//выдергиваем значения команды из буфера ИК приемника
if (ir_message.control_byte ==Valid_value )//сообщение принято корректно (контрольный байт принят без ошибок)
{
switch(ir_message.ID)//если имя команды
{
case Add_Health: //добавить "жизни"
{
//код для добавления жизни
break;
}
case Set_life:// установить хх жизней
{
life_in_percent = ir_message.param;
life = (life_in_percent*10)/125;
if ((life==0)&&(life_in_percent>0)) life=1;
status_need_update = true;
eeprom_write_byte(&life_after_start,ir_message.param);
beep(1000, 2, 128);
break;
}
case Set_damage://установить хх урон
{
eeprom_write_byte(&eeprom_damage,ir_message.param);
beep(1000, 2, 128);
break;
}
case Add_Rounds://добавить "патронов"
{
//код для добавления патронов
break;
}
case Change_color:
{
//код для смены цвета
if((ir_message.param>=0)&&(ir_message.param<=3))
{
eeprom_write_byte(&eeprom_team_id,ir_message.param );
set_team_color(team_id()); //Устанавливаем идентификатор (цвет) команды
for (uint8_t i=0; i <ir_message.param; i++ )
{
beep(1000, 2, 128);
timer2 = 0;
while (timer2 < 1000);
}
beep(1000, 2, 128);
}
else
{
//ошибка смены цвета
beep(1000, 3, 128);
beep(500, 3, 128); //Воспроизводим звук (частота, длительность, громкость)
beep(1000, 3, 128);
beep(500, 3, 128); //Воспроизводим звук (частота, длительность, громкость)
}
break;
}
case Command://какая то дополнительноя команда
{
switch(ir_message.param)//выясним, какая это командв
{
case 0x05://начать новую игру немедленно
{
if (simples_in_queue>1) //если звук выстрла воспроизводится
{
simples_in_queue=1;//закроем eeprom
while (eeprom_is_open);//дождемся, пока eerom закроется
}
init_var(); //инициализируем переменные
joystick_event=no_pressing; //очищаем события джойстика
keyboard_event=no_key_pressing;//очищаем события триггера
reload_key_event=no_key_pressing;//очищаем события перезарядки
rx_event = NOT_EVENT; //очищаем события ИК приемника
display_status();//обновляем информацию на дисплее
display_life(life);//отобразим уровень жизни на диодах
WOUND_LED_ON;
playstartsound();//Воспроизводим звук "старт игры"
//код обработки дополнительной команды
WOUND_LED_OFF;
break;
}
case 0x00://"выключить" игрока
{
В архиве этого не было!
Сейчас перепроверю...