Всем добрый день!
Пытаюсь расшифровать Fast сообщение от московской биржи, никак не могу понять как использовать pmap.
Например я получаю от сервера сообщение
\xe1.\x01\x00\xc0\x10\xbc\x04]\xe1\x03,$\x07\x0be[\x0e\xc3
Первые 4 байта согласно спецификации — преамбула, отбросив ее:
\xc0\x10\xbc\x04]\xe1\x03,$\x07\x0be[\x0e\xc3
Затем получаю первый байт:
\xc0 = 1100 0000
Но шаблон сообщения-сердцебиения вообще не содержит опциональных полей.
<template name=«0» id=«2108» xmlns="
http://www.fixprotocol.org/ns/fast/td/1.1"><string name=«MessageType» id=«35»><constant value=«0» /></string><string name=«BeginString» id=«8»><constant value=«FIXT.1.1»/></string><string name=«SenderCompID» id=«49»><constant value=«MOEX»/></string><uInt32 name=«MsgSeqNum» id=«34»></uInt32><uInt64 name=«SendingTime» id=«52»></uInt64></template>
Столкнулся с этим почти во всех сообщения, во многих 5 байт равен \xC0 хотя в некоторых случаях это не может соответсвовать pmap для этого шаблона.
Кто-нибудь сталкивался с такой проблемой при дешифроке? Не могу понять где я ошибаюсь
Сообщения fast невозможно расшифровать не лезя на уровень битов. (там используется стоп бит как разделитель). Не очень понимаю что Вы имеете ввиду под pmap есть во многих языках, я имею ввиду pmap как часть протокола fast. Не столь важно на чем, это пример сообщений из python, но если есть примены на js/c++/go я буду очень признателен
Ищите у себя. Или как правильно сказали — что-то скачайте готовое. Вы на C++ пишите? mfast как вариант.
Был когда-то такой старый анекдот, про то как молодой программист приходит к опытному товарищу, показывает код и просит подсказать где у него ошибка и получает ответ что в ДНК у него ошибка )
Ты что-нибудь слышал про big-endian и little-endian порядок байт? Раз уж в битиках копаться собрался то поинтересуйся, это полезное знание!
Но все равно спасибо)