www.open-tager.ru

открытый лазертаг форум
Текущее время: 28 апр 2024, 02:12

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


Реклама

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


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



Начать новую тему Ответить на тему  [ Сообщений: 5319 ]  На страницу Пред.  1 ... 450, 451, 452, 453, 454, 455, 456 ... 532  След.
Автор Сообщение
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 14 авг 2015, 17:56 
Не в сети
Аксакал форума
Аватар пользователя

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


У вас BLUETOOTH_ANTICHIT разве может иметь ещё какие-то значения кроме DISABLE и ENABLE ? Или для чего elif?

Сделайте проще
Код:
#define BLUETOOTH_ANTICHIT DISABLE

#if BLUETOOTH_ANTICHIT == ENABLE
if((!(TSOP_IN&TSOP_PIN))&&(!(BT_STATE_IN&BT_STATE_PIN)))//если на входе INT0 низкий уровень и нет блютус соединения
#else
if(!(TSOP_IN&TSOP_PIN))//если на входе INT0 низкий уровень
#endif


Все верно, можно и так, спасибо.

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 14 авг 2015, 19:50 
Не в сети
Завсегдатай

Зарегистрирован: 07 май 2013, 10:37
Сообщений: 237
Откуда: Барановичи, Беларусь
Так а последняя прошивка на 36000гц?? Уменя просто цопы 4836


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

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
iranklim писал(а):
Так а последняя прошивка на 36000гц?? Уменя просто цопы 4836

Частота несущей ИК сигнала F0 выбирается в настройках.

Можно и на 36 кГц играть, и на 56 кГц
Можно и через Аскет-конфигуратор настроить

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


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

Зарегистрирован: 07 май 2013, 10:37
Сообщений: 237
Откуда: Барановичи, Беларусь
О классно. А новый конфигуратор работает под виндой xp?? И есть ли мануал как пульт распаять? Ну всмысте какие кнопки на какие ноги или выходы?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 14 авг 2015, 20:55 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
iranklim писал(а):
О классно. А новый конфигуратор работает под виндой xp?? И есть ли мануал как пульт распаять? Ну всмысте какие кнопки на какие ноги или выходы?

Работает и под XP и под Семеркой.

Мануал должен быть где то - в репозитории нет?

P.S. Нет мануала в репах, к сожалению. Но вроде как джойстик подключаются 5 кнопок, рядом - курок, перезаряд и режим огня. Режим огня работает как клавиша "Shift" на клавиатуре.
То есть при её нажатии на кнопках дополнительные команды получаются.
Изображение

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 15 авг 2015, 15:12 
Не в сети
Завсегдатай

Зарегистрирован: 07 май 2013, 10:37
Сообщений: 237
Откуда: Барановичи, Беларусь
А таг все эти 10 команд уже понимает?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 16 авг 2015, 00:02 
Не в сети
Местный

Зарегистрирован: 21 фев 2013, 19:18
Сообщений: 417
Откуда: Украина
iranklim писал(а):
А таг все эти 10 команд уже понимает?

Таг понимает команды, новая игра и сменить цвет команды.


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

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Меня спрашивают - как реализовать недостающие команды пульта?
Отвечаю...
Берем прошивку в прикрепленном архиве.
Она понимает старт игры и смену цвета команды.
Делаем по аналогии.
В файле ltag_ascetic.c
Находим кусок кода

Код:
      switch(rx_event)//выясним, какое именно событие произошло
               {
                  case RX_COMPLETE:    //получен пакет
                  {                  
                     rx_event = NOT_EVENT;   
                     if(!get_buffer_bit(0)) //если этот бит равен 0, то это пакет с данными (выстрел)
                     {
                        rx_packet = get_packet_value();
                        hit_processing(rx_packet);
                        rx_event = NOT_EVENT;
                     }
                     break;
                  }
                  
                  case RX_MESSAGE_COMPLITE://принято сообщение
                  {
                     rx_event = NOT_EVENT;                     
                     if(get_buffer_bit(0)) //если этот бит равен 1, то это пакет с командой
                           {
                                 ir_message = get_ir_message_from_buffer();//выдергиваем значения команды из буфера ИК приемника
                       
                               if (ir_message.control_byte ==Valid_value )//сообщение принято корректно (контрольный байт принят без ошибок)
                      {
                        switch(ir_message.ID)//если имя команды
                                 {
                                    case Add_Health: //добавить "жизни"
                                    {
                              //код для добавления жизни
                                       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://"выключить" игрока
                                 {
                                    
                                    
                                    break;
                                    
                                 }
                                 default: break;
                              
                              }
                              
                           
                              break;
                                    }
                                 }
                            }

                           }
                     else//контрольный байт сообщения не корректный - ошибка приема
                     {
                     }
                     
                     
                     
                     
                     rx_event = NOT_EVENT;
                     break;

                  }
                  
                  
                  case RX_ERROR:      //ошибка приема
                  {
                            if((!ir_error_ignore)&&(!eeprom_is_open))//если не надо игнорировать ошибку и звук не воспроизводиться уже
                            {
                  //   cli();
                     BULLETS_OUT_LED_ON;
                     /*
                     timer2=0;
                     while(timer2 < 4000);
                     */
                     play_sound_8();
                     BULLETS_OUT_LED_OFF;
                            }
                            rx_event = NOT_EVENT;
                  //   sei();
                     break;
                  }
                  
                  case NOT_EVENT:      //ошибка приема
                  {
                  //   cli();
                  //   rx_event = NOT_EVENT;   
                  //   sei();
                     break;
                  }



               }



   }


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

#define Add_Health 0x80 //добавить жизнь
#define Add_Rounds 0x81 //добавить патроны
Добавьте код обработчика в фигурные скобки
Код:
                                {
                                    case Add_Health: //добавить "жизни"
                                    {
                              //код для добавления жизни
                                       break;
                                    }
                                    case Add_Rounds://добавить "патронов"
                                    {
                                 
                               //код для добавления патронов
                                       break;
                                    }


Коды команд определяются в файле
miles_protocol.h


#define Add_Health 0x80 //сообщение добавить жизни
#define Add_Rounds 0x81 //сообщение добавить патронов
#define Change_color 0xA9//сообщение сменить цвет команды
#define Command 0x83 //сообщение-команда
#define Valid_value 0xE8 //корректное значение контрольного байта сообщения
Например, хотим добавить команду - почеши пузо.
Определяем её в вышеназванном хедере, пусть её код - 0x33, например

#define Pocheshi_Puzo 0x33 //сообщение почеши пузо
#define Add_Health 0x80 //сообщение добавить жизни
#define Add_Rounds 0x81 //сообщение добавить патронов
#define Change_color 0xA9//сообщение сменить цвет команды
#define Command 0x83 //сообщение-команда
#define Valid_value 0xE8 //корректное значение контрольного байта сообщения

и добавляем обработчик в файл ltag_ascetic.c

{

case Pocheshi_Puzo: //почесать пузо
{
//код для чесания пуза

break;
}

case Add_Health: //добавить "жизни"
{
//код для добавления жизни
break;
}
case Add_Rounds://добавить "патронов"
{

//код для добавления патронов
break;
}


ID команд можно узнать, посмотрев описание протокола Милес Таг 2
Где то PDF тут валялся

Есть небольшая тонкость - сообщение не есть команда.
Оно может содержать в себе команду, если ID сообщения = 0x83

#define Command 0x83 //сообщение-команда

Кроме того - команды могут ещё иметь свои параметры.
В общем - надо знать протокол.


Вложения:
LTAscetic_Atmega32_set_team_color.zip [350.04 KiB]
Скачиваний: 262

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 31 авг 2015, 00:26 
Не в сети
Завсегдатай

Зарегистрирован: 07 май 2013, 10:37
Сообщений: 237
Откуда: Барановичи, Беларусь
Слушайте задумался над отдачей. Как у кого реализована. Хочу в хитмана впихнуть.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 31 авг 2015, 00:57 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 07 апр 2011, 18:05
Сообщений: 3669
iranklim писал(а):
Слушайте задумался над отдачей. Как у кого реализована. Хочу в хитмана впихнуть.

Пока единственный реализованный способ - вибро-моторчик. Правда Форпост в сентябре обещал продемонстрировать абсолютно новый тип ;)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5319 ]  На страницу Пред.  1 ... 450, 451, 452, 453, 454, 455, 456 ... 532  След.

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


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

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


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

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