Протокол данных MilesTag II
последнее обновление 25 июля 2010
перевод с английского (оригинал находится здесь)
Частота несущей инфракрасного сигнала.
Частота несущей выбирается из следующих значений: 38кГц/40кГц/56кГц. Системная частота несущей должна соотвествовать типу применяемого датчика инфракрасного сигнала.
Пакеты данных
Пакет выстрела = Заголовок + 14 бит данных
[Заголовок] — [8 бит] — [6 бит]
Пакет сообщения = Заголовок + 24 бита данных (или больше)
[Заголовок] — [8 бит] — [8 бит] — [8 бит] …
Заголовок и биты данных кодируются на 56кГц несущей инфракрасного сигнала используя широтную модуляцию. Тип модуляции похож на формат используемый во множестве пультов дистанционного управления.
Широтная модуляция
Значение битов данных ("1" или "0") и заголовок кодируется длиной импульса. Каждый импульс представляет собой вспышку инфракрасного сигнала, промодулированного с частотой 56 кГц длительностью соответствующей значению бита данных.
- Заголовок является импульсом (56 кГц несущей) длительностью 2400 микросекунд.
- Бит со значением "1" — импульс (56 кГц несущей) длительностью 1200 микросекунд.
- Бит со значением "0" — импульс (56 кГц несущей) длительностью 600 микросекунд.
- Промежуток (несущая отсутствует) между битами длится 600 микросекунд.
Пакет выстрела содержит 2 байта: [Заголовок]-[ID игрока]-[повреждение]
Формат данных: [Заголовок]-[0ppppppp]-[ttdddd]
Заголовок = (2.4 миллисекундная вспышка)
ID игрока = 8 бит
Формат данных: 0ppppppp (Первый бит для пакета выстрела всегда = "0")
ppppppp = ID игрока(7 бит)
Повреждение = 6 бит
Формат данных: ttdddd
tt = ID команды (2 бита), где
00 = Красные
01 = Синие
10 = Желтые
11 = Зеленые
dddd = повреждение (4 бита), где
0000 = 1
0001 = 2
0010 = 4
0011 = 5
0100 = 7
0101 = 10
0110 = 15
0111 = 17
1000 = 20
1001 = 25
1010 = 30
1011 = 35
1100 = 40
1101 = 50
1110 = 75
1111 = 100
Пакет сообщения содержит 3 байта данных: [Заголовок]-[Байт1]-[Байт2]-[0xE8]
Пакет команд содержит 3 байта данных: [Заголовок]-[0x83]-[Команда]-[0xE8]
Команда = см. в таблице ниже
Пакет системных данных имеет дополнительные байты данных:
[Заголовок]-[0x87]-[Тип]-[0xE8]-[данные]-[данные]…
Тип 0×01 = Данные копирования
Тип 0×03 = Данные очков (часть 1)
Тип 0×04 = Данные очков (часть 2)
Тип 0×05 = Данные очков (часть 3)
Команды |
|||
Байт 1 | Байт 2 | Примечания | |
0×80 | Добавить здоровья | от 1 до 100 | |
0×81 | Добавить магазин | от 1 до 100 | |
0×82 | Зарезервировано | ||
0×83 | Команда | 0×00 | Убийство администратором |
0×01 | Поставить/снять паузу | ||
0×02 | Начать игру | ||
0×03 | Восстановить значения по умолчанию | ||
0×04 | Респаун | ||
0×05 | Новая игра (немедленно) | ||
0×06 | Заполнить магазин | ||
0×07 | Закончить игру | ||
0×08 | Сбросить таймер | ||
0×09 | Зарезервировано | ||
0x0A | Инициализировать игрока | ||
0x0B | Взорвать игрока | ||
0x0C | Новая игра (готовность) | ||
0x0D | Восстановить жизнь | ||
0x0E | Зарезервировано | ||
0X0F | Восстановить броню | ||
0×10 | Зарезервировано | ||
0×11 | Зарезервировано | ||
0×12 | Зарезервировано | ||
0×13 | Зарезервировано | ||
0×14 | Сбросить очки | ||
0×15 | Проверить датчики | ||
0×16 | Обездвижить игрока | ||
0×17 | Разрядить оружие у игрока | ||
0×84 | Зарезервировано | ||
0×85 | Зарезервировано | ||
0×86 | Зарезервировано | ||
0×87 | Системные данные | 0×00 | Зарезервировано |
0×01 | Скопировать данные | ||
0×02 | Зарезервировано | ||
0×03 | Данные об очках (часть 1) | ||
0×04 | Данные об очках (часть 2) | ||
0х05 | Данные об очках (часть 3) | ||
0х88 | Зарезервировано | ||
0×89 | Зарезервировано | ||
0х8А |
Ящик с патронами (дозарядка на интерактивном устройстве) |
0×00-0x0F | ID ящика с патронами (0-15) |
0х8B |
Медицинская аптечка (дозарядка на интерактивном устройстве) |
0×00-0x0F | ID аптечки (0-15) |
0х8С |
Захват флага (интерактивное устройство) |
0×00-0x0F | ID флага |
Данные копирования (неполные) | |||
Байт |
значение |
||
1 | 0×87 | ID команды | Системные данные |
2 | 0×01 | Значение данных | Данные копирования |
3 | 0xE8 | Передаваемые значения | |
4 | 0×08 | Неизменно | |
5 | 0xE8 | Неизменно | |
6 | 0×21 | Неизменно | |
7 | 0 to 3 | ID команды | |
8 | Зарезервировано | ||
9 | 1 to 200 | Коробка патронов | |
0 | 1 to 200 | Аптечка | |
Зарезервировано | |||
1 to 240 | LED Timeout | ||
Звуки | 8 | ||
Скорость перегрева | 9 | ||
Зарезервировано | 10 | ||
Зарезервировано | 11 | ||
Переносимые данные | Повреждение | 12 | |
от 1 до 240 | Емкость магазина | 13 | |
от 1 до 200 | Количество магазинов | 14 | |
Тип стрельбы | 15 | ||
3,4,5,6 | Количество гранат | 16 | |
Переносимые данные | Темп стрельбы | 17 | |
Задержка перезарядки | 18 | ||
Мощность инфракрасного излучения | 19 | ||
Диапазон излучения | 20 | ||
биты | 21 | ||
Переносимые данные | Здоровье | 22 | |
Зарезервировано | 23 | ||
длительность респауна | 24 | ||
Броня | 25 | ||
биты | 26 | ||
биты | 27 | ||
Длительность шока | 28 | ||
Время до старта | 29 | ||
Отсрочка смерти | 30 | ||
от 5 до 240 | Ограничения времени | 31 | |
Количество респаунов | 32 | ||
Зарезервировано | 33 | ||
Контрольная сумма |