Пафос Респектыч, В памяти есть что-то такое со времен знакомства с ассемблером) Сейчас освежил, но проблема появляется с битами внутри pmap и тут порядок чтения байт мне не поможет(
Но все равно спасибо)
И ещё посмотри в спеку, там вроде написано что сразу после преамбулы идёт число номер сообщения, чтобы его можно было сразу проверить не парся всё остальное, наверное вот это вот он и есть который тебя озадачивает.
Кто-нибудь сталкивался с такой проблемой при дешифроке? Не могу понять где я ошибаюсь
Был когда-то такой старый анекдот, про то как молодой программист приходит к опытному товарищу, показывает код и просит подсказать где у него ошибка и получает ответ что в ДНК у него ошибка )
Ты что-нибудь слышал про big-endian и little-endian порядок байт? Раз уж в битиках копаться собрался то поинтересуйся, это полезное знание!
Иван Коротченя, ошибка, конечно, где-то у вас. За вас в вашем коде её никто не найдет ) У МосБиржи оптимизация, они транспортный хидер не по стандарту дают для оптимизации, но карта присутствия емнип работает по стандарту.
Ищите у себя. Или как правильно сказали — что-то скачайте готовое. Вы на C++ пишите? mfast как вариант.
Gambler , Я читал вашу статью, да еще вот эта очень помогла jettekfix.com/education/fix-fast-tutorial/. Если я подставляю другой pmap все начинает работать (не из сообщения, а в ручную подобранный). То есть если я считываю pmap от биржи \xc0 забываю про него и начинаю парсить сообщение с другим (таким чтоб Symbol попадал на место где символ) все идеально работает. Но, к сожелению, такая модель расшифровки работает только для сообщений типа Snapshoot (где Символ содержится не внутри sequence), еще очень долгая и главное я хочу понять что я делаю не так). И самое забавно во всем этом, что такого байта чтоб все поля попадали как нужно в принципе нет в первых 5 байтах приходящих мне. (я уже думаю на тестовый контур, но тех саппорт биржи заверил меня что там все как на настоящем)
Иван Коротченя, может поможет моя статья habr.com/ru/articles/827330/ Но реокомендую вам взять готовые парсеры, если у вас уже на старте такая простая проблема.
Auximen, сообщения не приходят в json формате, fast это ускоренные fix сообщения. Пример приводил в сообщение, вот \xe1.\x01\x00\xc0\x10\xbc\x04]\xe1\x03,$\x07\x0be[\x0e\xc3
Сообщения fast невозможно расшифровать не лезя на уровень битов. (там используется стоп бит как разделитель). Не очень понимаю что Вы имеете ввиду под pmap есть во многих языках, я имею ввиду pmap как часть протокола fast. Не столь важно на чем, это пример сообщений из python, но если есть примены на js/c++/go я буду очень признателен
Иван Коротченя, так а зачем вы лезете на уровень байтов? Наверняка сообщения приходят в JSON формате, приведите пример FAST-сообщения. И чем расшифровываете? Pmap есть во многих языках. Python?