如何在GenericPackager中处理不同用途的字段?

我有几个字段,根据该字段的使用情况更改其定义。

例如,F48定义为:

Variable Length, 1-byte binary + 255 bytes, variable by usage, max 256 bytes

一次处理一个用法非常简单,例如,在spec和my packager中定义了用法A:

Variable length, 1-byte binary + 255 bytes, EBCDIC, max 256 bytes
<isofield
  id="48"
  length="255"
  name="ADITIONAL DATA - PRIVATE"
  class="org.jpos.iso.IFB_LLHECHAR"/>

但是另一种用法可以定义为

variable length, 1-byte binary + 4 N, 4-bit BCD

variable length, 1-byte binary + 143 AN, EBCDIC

诸若此类。我不太确定如何在我的通用打包程序中处理同一字段的多个用法。

我考虑过使用isofieldpackager将其当做子字段来处理,然后根据我需要的用法,我只使用这个子字段。

例如,使用用法A时,我尝试

<isofieldpackager
      id="48"
      length="255"
      name="F48 ADDITIONAL DATA - PRIVATE"
      emitBitmap="false"
      firstField="0"
      class="org.jpos.iso.IFB_LLHBINARY"
      packager="org.jpos.iso.packager.GenericSubFieldPackager">
<isofield
        id="0"
        length="255"
        name="ADITIONAL DATA - PRIVATE"
        class="org.jpos.iso.IFB_LLHECHAR"/>
</isofieldpackager>

然后将字段设置为isoMSG.set("48.0","This is my data"),这似乎在很大程度上是有效的,但是当它到达我的获取过程时,有一些不可读的数据被添加到该字段的前缀。

感谢您的帮助,如果您需要更多信息,请让我知道

转载请注明出处:http://www.tochigihk.com/article/20230526/2396178.html