Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
25.07.2013, 17:59
|
|||
---|---|---|---|
|
|||
Trx ISO 8583 library. Отправка длины сообщения в Ascii |
|||
#18+
Я использовал библиотеку с открытым кодом под названием Trx ISO 8583 library Но она формирует сообщения в HEX и bitmap сообщения переводит в Ascii кодировку вместе с остальным сообщением. Как это исправить? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.07.2013, 18:05
|
|||
---|---|---|---|
|
|||
Trx ISO 8583 library. Отправка длины сообщения в Ascii |
|||
#18+
Чтобы изменить заголовок сообщения Вы должны изменить класс NboFrameLengthSink Она находится по адресу Trx=>Communication=>Sinks=>NboFrameLengthSink.cs в проекте. Измените в функции public void Send(PipelineContext context) следующий код buffer.Write(true, _bytesInHeader == 2 ? new[] {(byte) (length >> 8), (byte) length} : new[] {(byte) (length >> 24), (byte) (length >> 16), (byte) (length >> 8), (byte) (length)}); на string ls_length; ls_length = length.ToString("####").PadLeft(4,'0'); byte[] ascii = System.Text.Encoding.ASCII.GetBytes(ls_length); buffer.Write(true, _bytesInHeader == 2 ? new[] { (byte)(length >> 8), (byte)length } : ascii); И в функции public bool Receive(PipelineContext context) следующий код context.ExpectedBytes = ( header[0] << 24 ) | ( header[1] << 16 ) | ( header[2] << 8 ) | header[3]; на context.ExpectedBytes = header[0] | header[1] | header[2] | header[3]; Для того чтобы bitmap сообщения отправлялась в HEX а все остальное часть сообщения в Ascii нужно в конфиг файле Iso8583Ascii1987.xml изменить следующие части <!-- Add first bitmap --> <Invoke Name="Add"> <Parameter Type="BitMapFieldFormatterFactory"> <Property Name="FieldNumber" Value="0" /> <Property Name="Description" Value="Primary bitmap" /> <Property Name="Encoder" Reference="DataEncoderFactory" /> <Property Name="LowerFieldNumber" Value="1" /> <Property Name="UpperFieldNumber" Value="64" /> </Parameter> </Invoke> <!-- Add secondary bitmap (field number 1) --> <Invoke Name="Add"> <Parameter Type="BitMapFieldFormatterFactory"> <Property Name="FieldNumber" Value="1" /> <Property Name="Description" Value="Secondary bitmap" /> <Property Name="Encoder" Reference="DataEncoderFactory" /> <Property Name="LowerFieldNumber" Value="65" /> <Property Name="UpperFieldNumber" Value="128" /> </Parameter> </Invoke> ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1404311]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 162ms |
0 / 0 |