#tcp #ascii
#tcp #ascii
Вопрос:
как полный новичок, я хотел бы понять, что нам посылает наше табло места проведения.
Это некоторые из захваченных данных: 1 7f 02G11 8271947 00 001 36 01 7f 02G11 8271947 00 001 036 01 7f 02G11 8271947 00 001 036 01 7f 02G12780 80 3-17f2G13780 80 3,1 7f2G14780 80 3 1 7f2G16700 3) 17f2G118271947 00 0013617f2G12780 80 3-17f2G13780 80 3,1 7f2G14780 80 3 1 7f2G16700 3) 17f2G118271947 00 0013617f2G118271947 00 00136 17f2G11 8271947 00 001 36 01 7f 02G12780 80 3-1 7f2G13780 80 3,1 7f2G14780 80 3 1 7f2G16700 3) 17f2G11 8271947 00 001 36 01 7f 02G12780 80 3-1 7f2G13780 80 3,1 7f2G14780 80 3 1 7f2G16700 3) 17f2G1278120080 3>1 7f2G13780 80 3,1 7f2G14780 80 3 1 7f2G118271947 00 0013617f2G118271947 00 001361 7f 02G11 8271947 00 00136 17f 02G11 8271947 00 00136 1 7f 02G1278120080 3>1 7f2G13780 80 3,1 7f2G14780 80 3 1 7f 02G16700 3) 17f 02G1278120080 3>1 7f2G13780 80 3,1 7f2G14780 80 3 1 7f2G118271947 00 001361 7f 2G1278120080 3>1 7f2G13780 80 3,1 7f2G14780 80 3 1 7f2G16700 3) 1 7f 02G11 8271947 00 00136 17f 02G1278120080 3>1 7f2G13780 80 3,1 7f2G14780 80 3 1 7f2G16700 3)17f 2G1278120080 3>1 7f2G137c050080 3Y17f2G14780 80 3 1 7f2G1278120080 3>1 7f2G137c050080 3Y 01 7f 02G14780 80 3 1 7f2G118271947 00 0013617f2G118271947 00 0013617f2G118271947 00 0013617f2G11827194700 001 36 017f 02G11 8271947 00 00136 01 7f 02G11 8271947 00 00136 01 7f 02G1278120080 3>1 7f2G137c050080 3Y17f2G14780 80 3 1 7f 02G16700 3) 17f 02G12781200802003,1 7f2G137c050080 3Y17f2G14780 80 3 1 7f2G118071946 00 001 35 01 7f 02G11 8071946 00 001 35 1 7f 02G137 c050080 3Y 1 7f 02G11 8071946 00 001 35 1 7f 02G11 8071946 00 001 35 1 7f 02G127 8120080200 3,17f 02G118071946 00 0013517f 02G118071946 00 001 35
Не могли бы вы указать мне правильное направление, как использовать эти захваченные данные для определения времени и оценки? Как вы называете этот формат отправляемых данных? Я просто не могу найти правильный ключ к Google для получения какого-либо руководства, руководств, информации.
Ответ №1:
Это формат сообщений с фиксированным полем старой школы. И это не совсем доступный для печати ASCII или даже ASCII, поскольку он содержит байты со значениями, превышающими 127 десятичных знаков. Поэтому я бы назвал это двоичным фиксированным форматом поля. Непечатаемые или не ASCII-байты «экранируются» обратной косой чертой, за которой следуют две шестнадцатеричные цифры, например, «82» — это 8*16 2 или 130 десятичных знаков.
Очевидно, вас интересуют часы и результаты хоккейных матчей, которые передаются сообщением типа 11. Похоже, что в ваши захваченные данные включены сообщения других типов, включая типы 12, 13, 14, 15 и 17, которые имеют разную длину. Вам понадобится документация для всех других форматов, чтобы декодировать этот поток, поскольку не похоже, что длина сообщения включена в поток сообщений.
Также кажется, что существует протокол более высокого уровня, поскольку сообщениям при захвате предшествует » 01 7f 02G», на который я бы не стал рассчитывать, оставаясь фиксированным, поскольку он должен содержать некоторую соответствующую информацию, например, к какому совпадению относится сообщение. Вы можете лучше видеть сообщения, выделив эту преамбулу:
Также кажется, что за каждым сообщением следует » 03″ плюс один символ ASCII, который меняется без видимой причины.
Первое сообщение в потоке имеет тип 11 и состоит из следующих 15 байтов: «118271947 00 001». Если вы используете документацию для этого типа сообщений, вы можете расшифровать его следующим образом:
- Первые два байта равны «11», что указывает на тип сообщения 11.
- Слово состояния в байте 3 — » 82″, в котором установлены биты 7 и 1, что указывает на то, что игровые часы выключены.
- Байт 4 равен «7», что указывает на то, что это хоккейный матч.
- Байты 5-8 дают игровое время как 19:47. Обратите внимание, что когда время игры меньше одной минуты, оно указывается в другом формате, который включает десятые доли секунды.
- Байты 9-11 дают начальный результат 0.
- Байты 12-14 дают гостевую оценку 0.
- Байт 15 говорит, что период равен 1.
Последнее сообщение 11 в записи — «11 8071946 00 001». Игровые часы теперь включены, и их значение равно 19:46.