www.open-tager.ru

открытый лазертаг форум
Текущее время: 19 апр 2024, 05:47

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


Реклама

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


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



Начать новую тему Ответить на тему  [ Сообщений: 321 ]  На страницу Пред.  1 ... 24, 25, 26, 27, 28, 29, 30 ... 33  След.
Автор Сообщение
 Заголовок сообщения: Re: "Аскет" - пульт
СообщениеДобавлено: 21 фев 2017, 06:13 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Ещё раз повторю - любую команду можно назначить за любой клавишей (и её сочетанием с шифтом).
Прошивку при этом не нужно править.
Но нужно реализовать реакцию на эти команды в прошивке тага - тоже ничего сложного.
Так что даже если другой "навороченный" пульт купите у "производителя" - реагировать таг не будет.
Давайте сделаем (добавим понимаемых команд), если тема интересна.
Ничего сложного, повторюсь.

А в пульте дофига команд заложено.
Вот реакция платы ЛВ 4 поколения
https://www.youtube.com/watch?v=0D0QF9F3JUY


Вы какие то малолюбознательные, хлопчики. :)
Есть в репозитории такой файлик https://github.com/PingvinOpenTag/LTAsc ... commands.h

и там расписано
Код:
const unsigned char command_47[] PROGMEM = "pult_key_up_cmd=";
const unsigned char command_48[] PROGMEM = "pult_key_up_cmd?";
const unsigned char command_49[] PROGMEM = "pult_key_right_cmd=";
const unsigned char command_50[] PROGMEM = "pult_key_right_cmd?";
const unsigned char command_51[] PROGMEM = "pult_key_down_cmd=";
const unsigned char command_52[] PROGMEM = "pult_key_down_cmd?";
const unsigned char command_53[] PROGMEM = "pult_key_left_cmd=";
const unsigned char command_54[] PROGMEM = "pult_key_left_cmd?";
const unsigned char command_55[] PROGMEM = "pult_key_central_cmd=";
const unsigned char command_56[] PROGMEM = "pult_key_central_cmd?";
const unsigned char command_57[] PROGMEM = "pult_shift_and_key_up_cmd=";
const unsigned char command_58[] PROGMEM = "pult_shift_and_key_up_cmd?";
const unsigned char command_59[] PROGMEM = "pult_shift_and_key_right_cmd=";
const unsigned char command_60[] PROGMEM = "pult_shift_and_key_right_cmd?";
const unsigned char command_61[] PROGMEM = "pult_shift_and_key_down_cmd=";
const unsigned char command_62[] PROGMEM = "pult_shift_and_key_down_cmd?";
const unsigned char command_63[] PROGMEM = "pult_shift_and_key_left_cmd=";
const unsigned char command_64[] PROGMEM = "pult_shift_and_key_left_cmd?";
const unsigned char command_65[] PROGMEM = "pult_shift_and_central_cmd=";
const unsigned char command_66[] PROGMEM = "pult_shift_and_central_cmd?";
const unsigned char command_67[] PROGMEM = "pult_reload_cmd=";
const unsigned char command_68[] PROGMEM = "pult_reload_cmd?";


это ни что иное, как команды для присвоения кнопкам пульта милес команд, а так же для просмотра - что же назначено той или иной кнопке или сочетанию её с шифтом.
Просто берете из описания протокола нужную команду, приводите её к десятичному виду и назначаете
pult_key_up_cmd=чего_то_там

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: "Аскет" - пульт
СообщениеДобавлено: 21 фев 2017, 06:55 
Не в сети
Аксакал форума
Аватар пользователя

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

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: "Аскет" - пульт
СообщениеДобавлено: 21 фев 2017, 07:06 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
А у меня, по-моему - до сих пор пульт на 36 КГц.
С близкого расстояния работает.

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


Последний раз редактировалось Pingvin 21 фев 2017, 08:03, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: "Аскет" - пульт
СообщениеДобавлено: 21 фев 2017, 07:32 
Не в сети
Аксакал форума
Аватар пользователя

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

Код:
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_word(&pult_shift_and_key_up_command, cmd_union_tmp.raw); //shift+key_UP
cmd_union_tmp.message.DATA = 0x01; //Blue
eeprom_write_word(&pult_shift_and_key_right_command, cmd_union_tmp.raw); //shift+key_RIGHT
cmd_union_tmp.message.DATA = 0x02; //Yellow
eeprom_write_word(&pult_shift_and_key_down_command, cmd_union_tmp.raw); //shift+key_DOWN
cmd_union_tmp.message.DATA = 0x03; //Green
eeprom_write_word(&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_word(&pult_shift_and_key_central_command, cmd_union_tmp.raw); //shift+key_CENTRAL ïåðåêëþ÷åíèå ìîùíîñòè ÈÊ èçëó÷åíèÿ óëèöà/ïîìåùåíèå
cmd_union_tmp.message.DATA = Command_ImmediateNewGame;
eeprom_write_word(&pult_key_up_command, cmd_union_tmp.raw); //key_UP ñòàðò èãðû
cmd_union_tmp.message.DATA = Command_Admin_Kill;
eeprom_write_word(&pult_key_down_command, cmd_union_tmp.raw); //key_DOWN Admin Kill
cmd_union_tmp.message.DATA = Command_Full_Health;
eeprom_write_word(&pult_key_central_command, cmd_union_tmp.raw); //key_CENTRAL Full_Health
cmd_union_tmp.message.DATA = Command_Full_Ammo;
eeprom_write_word(&pult_key_left_command, cmd_union_tmp.raw); //key_LEFT Full Ammo
cmd_union_tmp.message.DATA = Command_Health_Double ;
eeprom_write_word(&pult_key_right_command, cmd_union_tmp.raw); //key_RIGHT óäâîòü æèçíü
}




можете и здесь исправить.


В файле miles_protocol.h расшифровка комманд (определены макросы)
Код:

//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 //êîððåêòíîå çíà÷åíèå êîíòðîëüíîãî áàéòà ñîîáùåíèÿ

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: "Аскет" - пульт
СообщениеДобавлено: 21 фев 2017, 08:56 
Не в сети
Местный
Аватар пользователя

Зарегистрирован: 06 фев 2012, 01:30
Сообщений: 420
Откуда: Мордор
Получается надо все равно править прошивку тагера. Я посмотрел в последней прошивке в репозитории к тагеру V 3.1, у меня на дисплеи при попадании в тагер высвечивается id стрелявшего, его урон и номер команды. В связи с этим хотелось бы еще реализовать сём статистики с тагера. С чего нужно начать что бы реализовать данную возможность?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: "Аскет" - пульт
СообщениеДобавлено: 21 фев 2017, 10:12 
Не в сети
Аксакал форума
Аватар пользователя

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

Удобней всего хранить статистику во внутренней eeprom контроллера.
Если места хватит (должно хватить).
Так же есть вариант хранить во внешней eeprom (микросхеме), но тогда нужно, чтобы место осталось после записи звуков.
Ну и сложнее будет реализовать, хотя можно тоже.


Переменные, хранимые во внутренней eeprom контроллера определяются так
Код:

volatile EEMEM tteam_color eeprom_team_id;
//volatile uint8_t shift_register_buffer; //в этой переменной будем хранить данные для сдвигового регистра перед отправкой
volatile EEMEM uint8_t eeprom_player_id;
volatile EEMEM tgun_damage eeprom_damage;
volatile EEMEM uint8_t eeprom_bullets_in_clip; // количество патронов в обойме
volatile EEMEM uint8_t eeprom_clips; // количество обойм при инициализации
volatile EEMEM uint8_t eeprom_reload_duration; // длительность перезарядки (в секундах)
volatile EEMEM uint16_t eeprom_batt_full_voltage; // напряжение полностью заряженной батареи (значение АЦП)
volatile EEMEM uint16_t eeprom_batt_low_voltage; // напряжение полностью разряженной батареи (значение АЦП)
volatile EEMEM uint8_t eeprom_curr_ir_pin; //определяет мощность ИК излучения
volatile EEMEM ttm_serial_num eeprom_tm_serial_num;



Если память не подводит, то размер внутренней eeprom 256 байт.
Нужно подсчитать - сколько уже использована, а сколько осталось.
По моим прикидкам - у нас ещё более 200 байт свободно в eeprom (внутренней).

Потом придумаем команду, которая будет выводить статистику по UART (блютус).
И реализуем её. ;)

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: "Аскет" - пульт
СообщениеДобавлено: 21 фев 2017, 13:06 
Не в сети
Старожил

Зарегистрирован: 02 фев 2012, 17:24
Сообщений: 820
Откуда: Украина,Киев
Понятно )))Спасибо )))Сейчас буду пробывать править прошивку тага на новые какието команды...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: "Аскет" - пульт
СообщениеДобавлено: 21 фев 2017, 23:10 
Не в сети
Местный
Аватар пользователя

Зарегистрирован: 06 фев 2012, 01:30
Сообщений: 420
Откуда: Мордор
maksim писал(а):
Я научился компилировать,урааа))))

Ты заливаешь прошивку через bootloader или напрямую через программатор?
Через какое железо ставишь прошивку?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: "Аскет" - пульт
СообщениеДобавлено: 21 фев 2017, 23:55 
Не в сети
Старожил

Зарегистрирован: 02 фев 2012, 17:24
Сообщений: 820
Откуда: Украина,Киев
напрямую заливал через юсбасп)))Я через бутлодер не умею)))Хотя нада научится...)))


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: "Аскет" - пульт
СообщениеДобавлено: 22 фев 2017, 03:31 
Не в сети
Старожил

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


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 321 ]  На страницу Пред.  1 ... 24, 25, 26, 27, 28, 29, 30 ... 33  След.

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


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

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


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

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