Код: Выделить всё
>>> msg.getField(fix.TransactTime()).getString()
\udc82P\udcd2H\nv\x00\x00\x00\x00\x00\x00\x00\x00\x00\x009.67a2fe49.0001
>>> msg.getField(fix.OrdId()).getString()
\udc82P\udcd2H\nv\x00\x00\udcee\udcfb\x1a\udce5\udcefE\x190.22
>>> msg.getField(fix.execId()).getString()
\udc82P\udcd2H\nv\x00\x00\udcee\udcfb\x1a \udce5\udcefE\x19.9
< /code>
msgСначала я подозревал, что отправитель неправильно кодировал сообщения. Однако после того, как я обнюхал пакет до его передачи в приложение, я подтвердил, что значения были правильными. Кроме того, после того, как приложение получило сообщение и призвало метод msg.tostring () , поля были возвращены правильно отформатированы, как показано ниже:
Код: Выделить всё
17=18421738839500.9
37=00000af9.000047f9.67a2fe49.0001
60=20250206-10:58:20.228
< /code>
Therefore, fields 17, 37 and 60 (execId, ordId and 60 respectively) are received by the application correctly formatted. However there seems to be some processing going on when directly accessing the fields msg.getField()Код: Выделить всё
toString()Код: Выделить всё
>>> msg.getField(fix.OrdId()).getFixString()
1327193754=udcac\udced\udca5\udcdf\udcfdz\x00\x00\udc9a^\x1bO\udc85\udcfb\x00\x0b9.67a2fe49.0001\x01
>>> msg.getField(fix.TransactTime()).getFixString()
1327193754=1327193754=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01
>>> msg.getField(fix.execId()).getFixString()
1327193754=1327193754=\x00\x00\x00\x00\x00\x00\x00\x01
< /code>
I could patch this problem by getting the values from the msg.toString()Как я могу правильно отформатировать эти поля?
Подробнее здесь: https://stackoverflow.com/questions/794 ... fix-fields
Мобильная версия