mail_robot писал(а):
А третий байт вообще протоколом майлс не предусмотрен, но он есть. 5 раз проверил.
В данном случае он поменялся в зависимости от цвета команды.
Мои предположения:
- Первые 4 бита цвет команды
- Вторые 4 бита размер повреждения (так как он не поменялся) и равен 2, что соответствует прошитому урону 2.
могу ошибаться конечно. Мож кто владеет вопросом лучше меня. Зачем третий байт и что там упаковано?
Так присылал свой протокол Сергей, лично его выкладывал в ветке разработчиков
Цитата:
В оборудовании LASERWAR используется дополненный формат, в котором задействовано 24 бита:
[Header]-[0ppppppp]-[ttdddd00]-[cccccccc]
где р - биты идентификатор а игрока
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) - выстел никогда не будет воспринят как команда, и наоборот - команда не будет засчитана как выстрел.