0

I have a requirement for fields 127.25.1 >> 127.25.30. They contain tlv data. Field 127.25.1 is a Bitmap, and they require the following format: b8 (Hex16) meaning the binary must be converted to hex. This field signifies the presence/absence of 127.25.2 >> 127.25.30. The IsoFieldPackager for 127.25.1 is IFA_BITMAP len 16. I can set all the other fields with no issue.

To view the out message and its data I used this to print:

ISOComponent c = isoMessage.getComponent("127.25");    
Map m = c.getChildren();
Iterator it = m.entrySet().iterator();
while (it.hasNext()) {
   if(pair.getValue() instanceof ISOBitMap){
      ISOBitMap b = (ISOBitMap)pair.getValue();
      System.out.println(b.getFieldNumber() + "=" + b.getValue() );
   }
   if(pair.getValue() instanceof ISOField){
      ISOField b = (ISOField)pair.getValue();
      System.out.println(b.getFieldNumber() + "=" + b.getValue());
   }

From this, I can see bitmap in 127.25.1 printed as:

-1={2, 5, 6, 7, 12, 13, 18, 22, 24, 26, 27, 28, 30}

and all these fields have the correct values and are the fields I set.

My issue is it fails when parsing on the remote system. Given the required format for 127.25.1 "b8 (Hex16)", am I using the correct data type of IFA_BITMAP with length 16?

Albert Lazaro de Lara
  • 2,540
  • 6
  • 26
  • 41
kwm
  • 29
  • 4

1 Answers1

1

127.25 packer type was incorrect, set to:

new IFA_LLLLCHAR(8000, "ICC DATA")

And 127.25.1 set to hex:

new IFA_BITMAP(8, "BITMAP")
kwm
  • 29
  • 4