Track2 в BCD - символ 'D'

Я должен отправить элемент данных 35 (Track2: ".....=.....") в формате BCD. Символ '=' должен быть заменен на 'D'.

Разве 0x0D не запрещен в BCD?

Но клиент всегда прав... так как это можно сделать?

Я могу добавить следующий статический метод:

  BcdVar(..., IFieldValidator validator)

и позвоните:

  msg[Bit._035_TRACK_2_DATA] = FieldDescriptor.BcdVar(2, 37, FieldValidators.Track2);

Это возможно без изменения библиотеки?

1 ответ

Попробуйте использовать двоичный дескриптор поля вместо BCD.

Почему я думаю, что это произошло, сделав разделитель дорожек =, вы можете изменить упаковку с ASCII на BINARY, что экономит 30 нечетных байтов. Сейчас это не важно, но я могу представить, что это было важно много лет назад.

Я обнаружил, что терминалы Hypercom делают это по умолчанию, и по своему опыту мне пришлось изменить это на сервере для определенных исходящих интерфейсов.

Другие вопросы по тегам