www.open-tager.ru

открытый лазертаг форум
Текущее время: 23 ноя 2024, 18:38

Часовой пояс: UTC + 3 часа [ Летнее время ]


Реклама

Правила форума


В разделе запрещены - обсуждение оборудования не поддерживающего открытых протоколов, реклама и ссылки на готовые продукты лазертага, обсуждение политики производителей и самих производителей. Виден всем.



Начать новую тему Ответить на тему  [ Сообщений: 5319 ]  На страницу Пред.  1 ... 498, 499, 500, 501, 502, 503, 504 ... 532  След.
Автор Сообщение
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 21 май 2018, 19:55 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
maksim писал(а):
Что то никакой реакции на команды A3XXE8 и A8XXE8)))Загляните в исхожник ,что можит быть не так ....


Я не вижу в коде изменений.
Куда добавляли?

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 21 май 2018, 20:12 
Не в сети
Старожил

Зарегистрирован: 02 фев 2012, 17:24
Сообщений: 820
Откуда: Украина,Киев
ltag_ascetic.c Там в самон низу....


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 21 май 2018, 20:14 
Не в сети
Старожил

Зарегистрирован: 02 фев 2012, 17:24
Сообщений: 820
Откуда: Украина,Киев
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://"выключить" игрока
{


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 21 май 2018, 20:35 
Не в сети
Старожил

Зарегистрирован: 02 фев 2012, 17:24
Сообщений: 820
Откуда: Украина,Киев
На лтк1 Урон задается командой A8ххЕ8 ,где хх 1-15 ......1(0),2(1),4(2),5(3),7(4),10(5),15(6),17(7),
20(8),25(9),30(10),35(11),40(12),50(13),75(14),100(15)) Желательно и на аскете так сделать)))Чтобы пульт один был и для аскета и для ЛТК1...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 22 май 2018, 08:28 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
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://"выключить" игрока
{



В архиве этого не было!
Сейчас перепроверю...

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 22 май 2018, 08:42 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
maksim писал(а):
Что то никакой реакции на команды A3XXE8 и A8XXE8)))Загляните в исхожник ,что можит быть не так ....


А-ха-ха!
Понял!

Вы добавили обработчики в функцию, которая с блютус каналом работает - то есть обрабатывает сигнал с беспроводной повязки.


То же самое нужно добавить в обработчик сигнала "с провода" - он почти в самом начале файла.

Это конечно не очень правильно - два обработчика иметь.
Но пока некогда переписывать, полно планов незаконченных.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 22 май 2018, 14:52 
Не в сети
Старожил

Зарегистрирован: 02 фев 2012, 17:24
Сообщений: 820
Откуда: Украина,Киев
Добавил код )))Все работает))) Еще убить игрока, подскадите какой там код должен быть?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 22 май 2018, 17:10 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Кстати - чтобы урон применился тут же, без перезагрузки.
Добавьте в код
Код:
set_gun_damage(gun_damage());

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 22 май 2018, 17:11 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
maksim писал(а):
Добавил код )))Все работает))) Еще убить игрока, подскадите какой там код должен быть?

Попозже посмотрю.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 22 май 2018, 17:21 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Тут надо внимательно смотреть. Но в первом приближении что то типа этого

Код:
life = 0;
         life_in_percent=0;
         WOUND_LED_ON;
         display_life(life);//îòîáðàçèì óðîâåíü æèçíè íà äèîäàõ
         display_life_update();//îòîáðàçèì óðîâåíü æèçíè íà ÆÊÈ
         volatile uint8_t keypress_cntr; //ñ÷åò÷èê öèêëîâ, â òå÷åíèè êîòîðûõ êóðîê áûë íàæàò
         keypress_cntr = 0;
         
         while (eeprom_is_open);//äîæäåìñÿ, ïîêà eerom çàêðîåòñÿ
playgameoversound();
lcd_bl_off();
            display_status();
            rx_event = rx_event = NOT_EVENT;
            ir_message.control_byte = 0;
            while(!(((ir_message.control_byte ==Valid_value)&&(ir_message.ID==Command)&&(ir_message.param==0x05))||(joystick_event == key_central_pressing)))//ïîêà íå ïîëó÷èì êîìàíäó "ñòàðò"
            {//[while]
               rx_event = NOT_EVENT;
               while((rxCount==0)&&(rx_event != RX_MESSAGE_COMPLITE)&&(joystick_event == no_pressing))//ïîêà íåò íèêàêèõ êîìàíä ïóëüòà
               {//[while]
                  WOUND_LED_INVERT;
                  USART_PutChar('1');
                  timer2 = 0;
                  while (timer2 < 1000);
                  WOUND_LED_INVERT;
                  timer2 = 0;
                  while (timer2 < 1000);
               }//[while]
               
               if(joystick_event!=key_central_pressing)joystick_event = no_key_pressing;
               if (rx_event == RX_MESSAGE_COMPLITE) ir_message = get_ir_message_from_buffer();//ïðèøëà êîìàíäà ïóëüòà, âûäåðãèâàåì çíà÷åíèÿ êîìàíäû èç áóôåðà ÈÊ ïðèåìíèêà   
               else //[else]
               {                     
                  if (rxCount>0) finde_message_in_bt_buffer();                     
               }//[else]                                 
            }//[while]
            /*
            while(keypress_cntr < 20)
            {
               WOUND_LED_INVERT;
               USART_PutChar('1');
               timer2 = 0;
               while (timer2 < 1000);
               WOUND_LED_INVERT;
               timer2 = 0;
               while (timer2 < 1000);
               switch (FIRE_KEY_IN&FIRE_KEY_PIN) //ïðîâåðÿåì, íàæàò ëè êóðîê
               {
                  case 0:  keypress_cntr++ ; break;
                  case FIRE_KEY_PIN: keypress_cntr = 0; break;
                  default: keypress_cntr = 0;   
               }
                  
            }
            */
         }   //end else //òà÷ ìåìîðè íå çàïèñàí â ïàìÿòü
         //"îæèâàåì" - íà÷èíàåì íîâóþ èãðó                     
         if (simples_in_queue>1) //åñëè çâóê âûñòðëà âîñïðîèçâîäèòñÿ
         {//[if]
            simples_in_queue=1;//çàêðîåì eeprom
            while (eeprom_is_open);//äîæäåìñÿ, ïîêà eerom çàêðîåòñÿ
         }//[if]
         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;



_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5319 ]  На страницу Пред.  1 ... 498, 499, 500, 501, 502, 503, 504 ... 532  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB