Hello,
I face an issue while using asterix-decoder to decode ASTERIX category 48 data from an ASTERIX Final format file. Here are the details of the problem:
-
Initial raw data = b'\x000\x00\x00\x00\x01N\x9e0\x00$\xf3\x1f\x01\x02\x06G\x01\xab\xb7@w1\xdcr`\x02\xc6\x03<\xd2Z&N\x07\xf4]g\xc6\x05@\x08\x80@\xa5\xa5\xa5\xa5' <=> 00 30 00 00 00 01 4E 9E 30 00 24 F3 1F 01 02 06 47 01 AB B7 40 77 31 DC 72 60 02 C6 03 3C D2 5A 26 4E 07 F4 5D 67 C6 05 40 08 80 40 A5 A5 A5 A5
-
Data retrieved between header and footer of ASTERIX final format: b'0\x00$\xf3\x1f\x01\x02\x06G\x01\xab\xb7@w1\xdcr`\x02\xc6\x03<\xd2Z&N\x07\xf4]g\xc6\x05@\x08\x80@' <=> 30 00 24 F3 1F 01 02 06 47 01 AB B7 40 77 31 DC 72 60 02 C6 03 3C D2 5A 26 4E 07 F4 5D 67 C6 05 40 08 80 40
Manually, from this block, we can extract
category = 30 => 48
length = 00 24 => 36 bytes => only one ASTERIX packet
FSPEC = F3 1F 01 02 => 11110011 00011111 00000001 00000010
SAC/SIC = 06 47 => 06/71 (military equipment in Belgium)
...
Thus, the packet seems valid. When using asterix.parse on the data without the header and footer, I obtain
asterix.parse(b'0\x00$\xf3\x1f\x01\x02\x06G\x01\xab\xb7@w1\xdcr`\x02\xc6\x03<\xd2Z&N\x07\xf4]g\xc6\x05@\x08\x80@') =>[{'category': 48, 'len': 28, 'crc': '00000000', 'ts': 1758724455669.0, 'hexdata': None}, {'category': 48, 'len': 4, 'crc': '00000000', 'ts': 1758724455669.0, 'hexdata': None}, {'category': 48, 'len': 1, 'crc': '00000000', 'ts': 1758724455669.0, 'hexdata': None}]
One can notice that the parser returns multiple ASTERIX packets with wrong length and no hexdata, instead of one ASTERIX packet with data. I have no idea why there is an issue for this frame, it works well with other frames... Do you have any idea?
Thank you,
Best regards,
François De Saint Moulin
Hello,
I face an issue while using asterix-decoder to decode ASTERIX category 48 data from an ASTERIX Final format file. Here are the details of the problem:
Initial raw data = b'\x000\x00\x00\x00\x01N\x9e0\x00$\xf3\x1f\x01\x02\x06G\x01\xab\xb7@w1\xdcr`\x02\xc6\x03<\xd2Z&N\x07\xf4]g\xc6\x05@\x08\x80@\xa5\xa5\xa5\xa5' <=> 00 30 00 00 00 01 4E 9E 30 00 24 F3 1F 01 02 06 47 01 AB B7 40 77 31 DC 72 60 02 C6 03 3C D2 5A 26 4E 07 F4 5D 67 C6 05 40 08 80 40 A5 A5 A5 A5
Data retrieved between header and footer of ASTERIX final format: b'0\x00$\xf3\x1f\x01\x02\x06G\x01\xab\xb7@w1\xdcr`\x02\xc6\x03<\xd2Z&N\x07\xf4]g\xc6\x05@\x08\x80@' <=> 30 00 24 F3 1F 01 02 06 47 01 AB B7 40 77 31 DC 72 60 02 C6 03 3C D2 5A 26 4E 07 F4 5D 67 C6 05 40 08 80 40
Manually, from this block, we can extract
category = 30 => 48
length = 00 24 => 36 bytes => only one ASTERIX packet
FSPEC = F3 1F 01 02 => 11110011 00011111 00000001 00000010
SAC/SIC = 06 47 => 06/71 (military equipment in Belgium)
...
Thus, the packet seems valid. When using asterix.parse on the data without the header and footer, I obtain
asterix.parse(b'0\x00$\xf3\x1f\x01\x02\x06G\x01\xab\xb7@w1\xdcr`\x02\xc6\x03<\xd2Z&N\x07\xf4]g\xc6\x05@\x08\x80@') =>[{'category': 48, 'len': 28, 'crc': '00000000', 'ts': 1758724455669.0, 'hexdata': None}, {'category': 48, 'len': 4, 'crc': '00000000', 'ts': 1758724455669.0, 'hexdata': None}, {'category': 48, 'len': 1, 'crc': '00000000', 'ts': 1758724455669.0, 'hexdata': None}]
One can notice that the parser returns multiple ASTERIX packets with wrong length and no hexdata, instead of one ASTERIX packet with data. I have no idea why there is an issue for this frame, it works well with other frames... Do you have any idea?
Thank you,
Best regards,
François De Saint Moulin