2

我应该以 BCD 格式发送 Data-Element 35 (Track2: ".....=.....")。'=' 字符将替换为 'D'。

BCD中的0x0D不是非法的吗?

但是,客户永远是对的……那么,怎么办呢?

我可以添加以下静态方法:

  BcdVar(..., IFieldValidator validator)

并致电:

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

是否可以不更改库?

4

1 回答 1

1

尝试使用二进制字段描述符而不是 BCD。

我认为发生这种情况的原因是通过将轨道分隔符设为 =,您可以将打包从 ASCII 更改为 BINARY,这样可以节省 30 个奇数字节。现在不重要,但我可以想象几年前它很重要。

我发现 Hypercom 终端默认执行此操作,根据我的经验,我不得不在服务器上更改它以获取某些传出接口。

于 2013-11-26T09:21:12.597 回答