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 делают это по умолчанию, и по своему опыту мне пришлось изменить это на сервере для определенных исходящих интерфейсов.