Протокол данных 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 | ||
| Контрольная сумма | |||
