Вадим Белкин, у меня похожая ситуация. В моем случае разная длина пакетов обусловлена искажениями при передаче. Причём возникает это только при стрельбе с малого расстояния - до 7-8 метров.
Однако пакет данных в лазертаге имеет фиксированную длину, поэтому в программе нужно просто наложить на него битовую маску, чтобы отсечь лишние старшие биты.
Кстати, для проверки конкретности полученного пакета Laserwar использует собственную, расширенную версию протокола с контрольной суммой. Она передаётся после основного пакета данных, что позволяет сохранить совместимость с Milestag и обнаруживать ошибки.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Однако пакет данных в лазертаге имеет фиксированную длину, поэтому в программе нужно просто наложить на него битовую маску, чтобы отсечь лишние старшие биты.
Кстати, для проверки конкретности полученного пакета Laserwar использует собственную, расширенную версию протокола с контрольной суммой. Она передаётся после основного пакета данных, что позволяет сохранить совместимость с Milestag и обнаруживать ошибки.