fields の要件があります127.25.1 >> 127.25.30
。それらにはtlvデータが含まれています。フィールド127.25.1
はビットマップであり、次の形式が必要です: b8 (Hex16) は、バイナリを 16 進数に変換する必要があることを意味します。このフィールドは、 の有無を示します127.25.2 >> 127.25.30
。IsoFieldPackager127.25.1
はIFA_BITMAP
len 16 です。他のすべてのフィールドを問題なく設定できます。
out メッセージとそのデータを表示するために、これを使用して印刷しました。
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());
}
これから、127.25.1 のビットマップが次のように出力されていることがわかります。
-1={2, 5, 6, 7, 12, 13, 18, 22, 24, 26, 27, 28, 30}
これらすべてのフィールドには正しい値があり、私が設定したフィールドです。
私の問題は、リモート システムでの解析時に失敗することです。に必要な形式を考えると、長さ 16127.25.1 "b8 (Hex16)"
の正しいデータ型を使用していますか?IFA_BITMAP