Протокол LASERWAR v4.7


Протокол ИК-обмена оборудования LASERWAR 4-го поколения основан на открытом протоколе MilesTag II Data Protocol, соответственно при разработке 4-го поколения ставилась задача максимально обеспечить совместимость с оборудованием, использующим протокол MILES. Тем не менее есть некоторые различия, которые будут описаны ниже.

1. Формат выстрела

При выстреле в протоколе Майлс используется следующая последовательность данных (так называемый “короткий” пакет) из 14 бит:
[Header]-[0ppppppp]-[ttdddd]
где p - биты идентификатора игрока (ID);
  t - биты идентификатора команды;
  d - биты, отвечающие за силу выстрела.
tt = Идентификатор команды (цвет)
00 = Красные
01 = Синие
10 = Желтые
11 = Зеленые
dddd = Сколько единиц здоровья отнимает выстрел
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

В оборудовании LASERWAR используется дополненный формат, в котором задействовано 24 бита:
[Header]-[0ppppppp]-[ttdddd00]-[cccccccc]
где p - биты идентификатора игрока;
  t - биты идентификатора команды;
  d - биты, отвечающие за силу выстрела;
  c - контрольная сумма CRC.

[Header]-[0ppppppp]-[ttdddd] - Майлс
[Header]-[0ppppppp]-[ttdddd00]-[cccccccc] - LASERWAR

При сравнении форматов видно, что первые 14 бит у них идентичны, таким образом, ружья на базе "родного" Майлс без проблем принимают и обрабатывают "выстрел" 4-го поколения LASERWAR. В свою очередь, оборудование 4-го поколения LASERWAR проверяет количество принятых бит в посылке - если их 14, то дальше принятый сигнал обрабатывается как сигнал Майлса. Если же принятых битов 24, то сначала проверяется правильность принятого пакета по контрольной сумме и, если все нормально, то обрабатывается попадание. Такое усложнение позволяет свести практически к нулю количество ложных попаданий.

Важно: Контрольная сумма рассчитывается именно как сумма первых двух байт посылки, точнее ее младшие 8 значащих бит: CRC = Lo(Byte1 + byte2). Это сделано для исключения ложных попаданий при настройке оборудования через ИК-канал (при настройке формат посылки тоже имеет 3 байта, но CRC = Byte1 XOR Byte 2) - выстрел никогда не будет воспринят как команда, и наоборот - команда не будет засчитана как выстрел.

2. Таблица команд

Команды Майлс передаются в следующем виде:
[Header]-[0x83]-[Command]-[0xE8]
Чтоб не повторяться, рассмотрим реализованные в 4-м поколении функции протокола и дополнения к ним.

Таблица реализованных команд:
Байт 1
Значение байта 1
Байт 2
Значение байта 2
0x80
Add Health
1 to 100
0x81
Add Rounds
1 to 100
0x83
Command
0x00
Admin Kill
0x01
Pause/Unpause
0x02
Start Game
0x04
Respawn
0x05
New Game (Immediate)
0x06
Full Ammo
0x07
End Game
0x0B
Explode Player
0x0C
New Game (Ready)
0x0D
Full Health
0x15
Test Sensors
0x16
Stun Player
0x17
Disarm Player
0x8A
Clips Pickup
0x00-0x0F
Ammo Box ID (0-15)
0x8B
Health Pickup
0x00-0x0F
Medic Box ID (0-15)

Таблица дополнительных команд 4-го поколения LASERWAR:
Байт 1
Значение байта 1
Байт 2
Значение байта 2
0x83
Command
0x09
Смена цвета (синий/красный)
0x0E
Смена мощности (49%/99%)
0x10
Удвоить жизнь
0x11
Точка захвачена
0x12
Бомба деактивирована
0xA0
Радиация
1 – 100
Отнимает (байт 2) здоровья
0xA1
Аномалия
1 – 100
Прибавляет (байт 2) здоровья
0xA8
Пресеты настр.
1 – 16
№ пресета (Destroyer Nano)
0xA9
Сменить цвет
0 – 3
цвет команды
0xAA
Воспроизвести звук
0 – 32
№ звука

Всю информацию, представленную на данной странице, можно скачать в формате MS Word. Скачать документ
скачать софт
Введите Ваш номер телефона и мы перезвоним Вам сами