www.open-tager.ru
http://www.open-tager.ru/forum/

"Аскет" - пульт
http://www.open-tager.ru/forum/viewtopic.php?f=5&t=2058
Страница 12 из 33

Автор:  Pingvin [ 31 окт 2013, 12:07 ]
Заголовок сообщения:  Re: "Аскет" - пульт

Sabbah писал(а):
Набросал схему пульта, правильно ли я все сделал? Вопрос на какую ногу выводить ИК диод (просто понятия пока не имею как менять в прошивке вывод на нужную ногу)? Еще вопрос, можно показать один пример какие изменения в прошиве тага производятся при приеме команды с пульта респаун к примеру?
Вложение:
Ascet_3_1_pult_scheme.jpg

Сойдет, но вместо светодиодов повязки можно бузер зацепить, к примеру, а Вы викинули.

Да туда же и выводить.
При смене команд прошивку менять не придется.
Все будет через конфигуратор.

За любой кнопкой можно будет закрепить любую команду.

А в таге - вроде приводил уже!

Будет свич, в котором будут идентифицироваться команды и вызываться соответствующие обработчики.
А уж как обрабатывать команды - тут ХЗ!
У людей поспрашивать надо.

Автор:  Sabbah [ 31 окт 2013, 12:26 ]
Заголовок сообщения:  Re: "Аскет" - пульт

Pingvin писал(а):
Вот шаблон

Код:
   
   switch(joystick_event)
   {
      case key_up_pressing:
         {
         
         
            if (fire_mode()==queues)//если "Shift" нажат
            {

            }
            else //"Shift" не нажат
            {
               send_message(ID_Command, Command_ImmediateNewGame);
            }

      
      
         joystick_event = no_pressing;
         }
   
      break;
      case key_right_pressing:
         {

   
            if (fire_mode()==queues)//если "Shift" нажат
            {

            }
            else //"Shift" не нажат
            {
                        
            }
   
         joystick_event = no_pressing;
         }
      break;
      case key_down_pressing:
         {

            if (fire_mode()==queues)//если "Shift" нажат
            {

            }
            else //"Shift" не нажат
            {
                        
            }
   
         joystick_event = no_pressing;
         }
      break;
      case key_left_pressing:
         {
            if (fire_mode()==queues)//если "Shift" нажат
            {

            }
            else //"Shift" не нажат
            {
                        
            }
   
         joystick_event = no_pressing;
         }
      break;
      case key_central_pressing:
         {
            if (fire_mode()==queues)//если "Shift" нажат
            {

            }
            else //"Shift" не нажат
            {
               send_message(ID_Add_Health, 10);      
            }
            


            joystick_event = no_pressing;

         }
      break;
      default: joystick_event = no_pressing;
   
   
      }
   


У меня определено

Код:
#define ID_Add_Health 0x80 //сообщение добавить жизни
#define ID_Add_Rounds 0x81 //сообщение добавить патронов
#define ID_Command 0x83 //сообщение-команда
#define Control_Byte 0xE8 //корректное значение контрольного байта сообщения

#define  Command_ImmediateNewGame 0x05 //командв "новая игра"



Поэтому

Код:
send_message(ID_Command, Command_ImmediateNewGame);


равносильно

Код:
send_message(0x83, 0x05 );



Все коды команд описаны в протоколе.

Изображение




http://www.open-tag.ru/forum/download/file.php?id=2300

Данный код приведен для пульта и я вроди все понял, а вот как реализуется прием и выполнение на таге не помню, чтобы выкладывали. В своей прошивке под 3.0 уже внес изменения алгоритма передачи как и у вас. Вы както заставили таг ожить при подаче сигнала респаун, вот и интересно как это сделано, просто нужен хоть один пример для того, чтобы уже ковырять дальше самому.

Автор:  Pingvin [ 31 окт 2013, 13:34 ]
Заголовок сообщения:  Re: "Аскет" - пульт

Вот тут обсуждалось.
http://www.open-tag.ru/forum/viewtopic.php?f=5&t=2178

Правде не совсем точно, когда писал не знал все тонкости!

Извиняюсь - весь в мыле, не было времени совсем.
Но вроде закончили, займусь пультом все выложу.

Автор:  Pingvin [ 16 дек 2013, 14:08 ]
Заголовок сообщения:  Re: "Аскет" - пульт

Пультик сварганил (железо).
Завтра начну прошивку ковырять уже конкретно.

Автор:  Sabbah [ 16 дек 2013, 16:40 ]
Заголовок сообщения:  Re: "Аскет" - пульт

Кулл, а можешь схему показать или фотку платы, хочу провериться.

Автор:  Pingvin [ 16 дек 2013, 17:52 ]
Заголовок сообщения:  Re: "Аскет" - пульт

Sabbah писал(а):
Кулл, а можешь схему показать или фотку платы, хочу провериться.

Схема точно та же.
Просто оформил как пульт.

Автор:  Pingvin [ 17 дек 2013, 09:25 ]
Заголовок сообщения:  Re: "Аскет" - пульт

Sabbah - понял, почему у тебя прошивка пульта не работала.

Сейчас ковырять начал - том жать надо было клавишу UP джойстика.
При нажатом fire_mode пуляет "New Game", при не нажатом "Admin kill".
Ща ИК припаяю и провербю на LW платке.

Потерпи немного - скоро выложу альфа версию.

P.S. Проверил на LW плате - работает.
P.S.S. Не могу долго кодить. Сегодня у окулиста был, зрачки расширели, бошка болеть начинает. :( :x

Автор:  Sabbah [ 17 дек 2013, 11:29 ]
Заголовок сообщения:  Re: "Аскет" - пульт

Ясно, спасибо, жду :D

Автор:  Pingvin [ 17 дек 2013, 12:09 ]
Заголовок сообщения:  Re: "Аскет" - пульт

Как же, цуко, удобно наращивать функционал, когда "скелет" системы удачно реализован. ;)
Одно удовольствие! :)
Реально работы на день.
И в основном - копи/паста.
Как то надо автомтизировать процесс написания однотипных функций и переменных.
Прекомпилятор должен это позволять.


С конфигуратором поболе придется повозиться.

Это из оперы - сам себя не похвалишь... :lol:

А с пультом реально удобно - оценил! ;) :)

Автор:  Pingvin [ 17 дек 2013, 14:01 ]
Заголовок сообщения:  Re: "Аскет" - пульт

Рабочий день закончился.
Чуть чуть не добил.

Надо придумать дефалтовые настройки.
Ими же инициализировать пульт сразу после прошивки.

Страница 12 из 33 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/