This example program shows how to use libasterix.
This example program shows how to use libasterix.In this example we use decode, match, modify and encode functions to manipulate ASTERIX data. More details about this example.
#include <stdio.h>
#include <string.h>
#include <time.h>
#ifdef WINDOWS
#include <windows.h>
#endif
unsigned char cat048_sample_data[] =
{
0x30, 0x00, 0x43, 0xff, 0xf7, 0x02, 0x20, 0x1b, 0x24, 0xd9, 0x35, 0xa0, 0x45, 0x18, 0x8e, 0x44,
0x20, 0xa3, 0x04, 0x69, 0xe0, 0x28, 0x05, 0xb8, 0x8a, 0x03, 0x80, 0x30, 0xe2, 0x77, 0xc7, 0x38,
0x20, 0x03, 0xbe, 0x80, 0x00, 0x30, 0xa8, 0x00, 0x00, 0x40, 0xff, 0xd8, 0xb7, 0x39, 0x60, 0x04,
0xe7, 0x50, 0xc5, 0xea, 0x51, 0x2f, 0x22, 0x1c, 0x45, 0x60, 0x00, 0x10, 0x07, 0xeb, 0x8b, 0x09,
0x46, 0x20, 0xf6
};
unsigned char cat062_sample_data[] =
{
0x3E, 0x09, 0x4F, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x4C, 0xFF, 0xAB,
0x2B, 0x7D, 0xFF, 0x6E, 0x16, 0x29, 0x00, 0x98, 0xDE, 0xF7, 0x03, 0x47, 0xFF, 0x20, 0xFD, 0xD1,
0x00, 0x01, 0x07, 0xC1, 0x0F, 0xEC, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x08, 0x00, 0xC8,
0x00, 0xC8, 0xFF, 0x20, 0x84, 0xE8, 0xAB, 0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03,
0x5D, 0xDE, 0x4E, 0xFF, 0xB4, 0x88, 0x5B, 0xFF, 0x74, 0x5F, 0xBE, 0x07, 0x56, 0xB5, 0x02, 0x14,
0x0D, 0xFF, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x01, 0x9A, 0x01, 0x01, 0x01, 0x50, 0x20,
0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x84, 0xE8, 0xAE, 0x48, 0xBF, 0xCF, 0xAD, 0x03,
0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x4F, 0xFF, 0xBE, 0x4A, 0x58, 0xFF, 0x84, 0x50, 0xD3, 0x19,
0x1C, 0x69, 0x0D, 0x01, 0x40, 0x00, 0xD0, 0xFF, 0xEF, 0x00, 0xFD, 0x05, 0x6A, 0x03, 0x8B, 0x01,
0x01, 0x01, 0x10, 0x60, 0x03, 0x00, 0x40, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, 0x84, 0xE8, 0xAA,
0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x50, 0xFF, 0xB5, 0xC0, 0x6E,
0xFF, 0x73, 0x86, 0x65, 0x06, 0x74, 0x66, 0x03, 0x8B, 0x30, 0xFE, 0xD3, 0xFC, 0xA2, 0x02, 0xFF,
0x07, 0xF0, 0x06, 0xC7, 0x01, 0x01, 0x01, 0x10, 0x60, 0x09, 0x00, 0x00, 0x05, 0xA0, 0x05, 0xA0,
0x00, 0x00, 0x84, 0xE8, 0xFB, 0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE,
0x51, 0xFF, 0xB7, 0xD9, 0xB3, 0xFF, 0x78, 0x39, 0x0C, 0x0B, 0x92, 0x1D, 0x05, 0xEC, 0x90, 0x02,
0x15, 0x02, 0x93, 0x00, 0xFE, 0x06, 0xCA, 0x11, 0xE4, 0x01, 0x01, 0x01, 0x10, 0x60, 0x07, 0x00,
0x00, 0x04, 0xD8, 0x04, 0xD8, 0x00, 0x00, 0x84, 0xE8, 0x90, 0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00,
0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x52, 0xFF, 0xBE, 0x0B, 0x44, 0xFF, 0x7A, 0x86, 0x02, 0x0E, 0x4F,
0xA8, 0x0D, 0x36, 0xAF, 0xFF, 0xFC, 0x00, 0xC2, 0xFD, 0x00, 0x04, 0x00, 0x00, 0x38, 0x01, 0x01,
0x01, 0x10, 0x60, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0xFF, 0xF4, 0x84, 0xE8, 0xE3, 0x60,
0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x52, 0xFF, 0xC3, 0xDB, 0x8C, 0xFF,
0x66, 0x16, 0xA1, 0xF7, 0xB4, 0xF0, 0x14, 0x4C, 0x0D, 0xFE, 0x76, 0x00, 0x2B, 0x01, 0x02, 0x07,
0x5F, 0x06, 0x29, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xA4, 0xE8, 0xE6, 0x00, 0x6E, 0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D,
0xDE, 0x54, 0xFF, 0xB1, 0x8A, 0xB5, 0xFF, 0x75, 0x76, 0xDB, 0x08, 0x6D, 0x12, 0xFE, 0x7F, 0x89,
0x01, 0x37, 0xFF, 0x44, 0x00, 0x01, 0x07, 0x01, 0x08, 0xA1, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00,
0x00, 0x00, 0x00, 0x74, 0x00, 0x74, 0xFF, 0xCB, 0x84, 0xE8, 0xB4, 0x60, 0xBF, 0xCF, 0xAD, 0x03,
0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x57, 0xFF, 0xBF, 0x52, 0x5E, 0xFF, 0x79, 0x7A, 0x0D, 0x0D,
0x34, 0xE2, 0x0E, 0xC5, 0x98, 0xFF, 0x62, 0x00, 0x0C, 0x01, 0x00, 0x04, 0x00, 0x0B, 0x56, 0x01,
0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x68, 0xFF, 0x7A, 0x84, 0xE8, 0xE3,
0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x58, 0xFF, 0xCC, 0x88, 0x86,
0xFF, 0x76, 0xAB, 0x55, 0x0A, 0x76, 0x7C, 0x1E, 0x9B, 0x5D, 0xFF, 0x61, 0xFC, 0x9C, 0x03, 0xFF,
0x08, 0x95, 0x04, 0x6C, 0x01, 0x01, 0x01, 0x10, 0x60, 0x30, 0x00, 0x00, 0x05, 0xA0, 0x05, 0xA0,
0x00, 0x00, 0x84, 0xE8, 0xA1, 0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE,
0x58, 0xFF, 0xD2, 0xC2, 0xDD, 0xFF, 0x6B, 0x0D, 0x23, 0xFD, 0x25, 0xE1, 0x26, 0x29, 0x64, 0xFD,
0xD8, 0x03, 0x1C, 0xFC, 0x04, 0x08, 0x33, 0x01, 0x4D, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00,
0x00, 0x05, 0xA0, 0x05, 0xA0, 0x00, 0x00, 0x84, 0xE8, 0xA0, 0x60, 0xBF, 0x8F, 0x8D, 0x03, 0x00,
0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x5D, 0xFF, 0xC6, 0xD2, 0xF5, 0xFF, 0x62, 0x8D, 0x46, 0xF3, 0xA8,
0x83, 0x17, 0xBE, 0x06, 0x00, 0x24, 0xFF, 0xD7, 0x02, 0x06, 0x05, 0x34, 0x01, 0x01, 0x01, 0x30,
0x40, 0x14, 0x8C, 0x00, 0x11, 0x00, 0x00, 0xA4, 0xE8, 0xB1, 0x01, 0x26, 0x20, 0xBF, 0xCF, 0xAD,
0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x5D, 0xFF, 0xBF, 0x71, 0x51, 0xFF, 0x78, 0x0F, 0x45,
0x0B, 0xA5, 0x57, 0x0E, 0xF6, 0x0E, 0xFF, 0x22, 0x00, 0x4F, 0xFF, 0xFD, 0x08, 0x6B, 0x01, 0x5B,
0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x01, 0x40, 0x01, 0x40, 0x00, 0x00, 0x84, 0xE8,
0xA7, 0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x5E, 0xFF, 0xC3, 0x75,
0xD8, 0xFF, 0x77, 0x20, 0x05, 0x0A, 0xBB, 0x0D, 0x13, 0xC5, 0x8A, 0xFF, 0x80, 0xFF, 0xE7, 0x00,
0x00, 0x00, 0xDE, 0x04, 0x57, 0x01, 0x01, 0x01, 0x50, 0x20, 0x00, 0x00, 0x00, 0xB8, 0x00, 0xB8,
0x00, 0x00, 0x84, 0xE8, 0xA7, 0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE,
0x5E, 0xFF, 0xC8, 0x8E, 0x17, 0xFF, 0x86, 0xDF, 0x78, 0x1C, 0xB6, 0xC1, 0x19, 0x16, 0x96, 0xFF,
0x3B, 0xFF, 0x87, 0xFD, 0x05, 0x08, 0xD8, 0x06, 0x37, 0x01, 0x01, 0x01, 0x10, 0x60, 0x0F, 0x00,
0x40, 0x00, 0xE4, 0x00, 0xE4, 0x00, 0x1F, 0x84, 0xE8, 0xAA, 0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00,
0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x5F, 0xFF, 0xC5, 0xDE, 0x8E, 0xFF, 0x79, 0x0B, 0x9A, 0x0C, 0xF5,
0x0B, 0x16, 0x96, 0x03, 0xFE, 0xFE, 0x03, 0xB1, 0x02, 0xFF, 0x08, 0x9C, 0x09, 0x23, 0x01, 0x01,
0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x05, 0x50, 0x05, 0x50, 0x00, 0x00, 0x84, 0xE8, 0xA1, 0x60,
0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x5F, 0xFF, 0xB2, 0x2D, 0xE7, 0xFF,
0x63, 0x29, 0x9A, 0xF5, 0x03, 0x76, 0xFF, 0x30, 0xF1, 0xFF, 0x1B, 0xFD, 0x68, 0xFC, 0x01, 0x0B,
0x11, 0x10, 0xE1, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x04, 0x60, 0x04, 0x60, 0x00,
0x00, 0xA4, 0xE8, 0xB3, 0x04, 0x6D, 0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D,
0xDE, 0x60, 0xFF, 0xAF, 0x84, 0x2B, 0xFF, 0x73, 0x02, 0x19, 0x05, 0xC9, 0x4C, 0xFC, 0x23, 0x7B,
0x01, 0xE2, 0x03, 0x37, 0x04, 0xFE, 0x07, 0xF7, 0x03, 0x1B, 0x01, 0x01, 0x01, 0x10, 0x60, 0x0D,
0x00, 0x00, 0x05, 0x28, 0x05, 0x28, 0x00, 0x00, 0x84, 0xE8, 0xAB, 0x40, 0xBF, 0xCF, 0xAD, 0x03,
0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x60, 0xFF, 0xC0, 0x0F, 0xB1, 0xFF, 0x81, 0x6E, 0x55, 0x16,
0x0A, 0x08, 0x0F, 0x4A, 0xB7, 0xFF, 0x83, 0xFF, 0xBB, 0x00, 0xFE, 0x04, 0x00, 0x0C, 0xF5, 0x01,
0x01, 0x01, 0x10, 0x60, 0x19, 0x00, 0x00, 0x00, 0x58, 0x00, 0x58, 0xFF, 0xAE, 0x84, 0xE8, 0xAA,
0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x60, 0xFF, 0xBD, 0x71, 0x7C,
0xFF, 0x7A, 0x74, 0xB8, 0x0E, 0x36, 0x76, 0x0C, 0x80, 0x4C, 0xFF, 0x51, 0x00, 0xB4, 0x02, 0xFE,
0x00, 0x40, 0x05, 0xEB, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x84,
0x00, 0x00, 0x84, 0xE8, 0xE2, 0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE,
0x60, 0xFF, 0xC0, 0x37, 0x11, 0xFF, 0x79, 0xCA, 0x8E, 0x0D, 0x96, 0x5F, 0x0F, 0xD3, 0x18, 0xFE,
0xFD, 0x02, 0x3D, 0xFB, 0x03, 0x09, 0xA5, 0x0A, 0xD1, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00,
0x00, 0x03, 0x64, 0x03, 0x64, 0x00, 0x13, 0x84, 0xE8, 0xE3, 0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00,
0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x61, 0xFF, 0xB2, 0xC6, 0xAC, 0xFF, 0x5A, 0x32, 0x7B, 0xEB, 0x73,
0x64, 0xFF, 0x81, 0x91, 0x03, 0xF6, 0x01, 0xB4, 0xFF, 0x01, 0x0A, 0xFB, 0x0A, 0xCA, 0x01, 0x01,
0x01, 0x10, 0x60, 0x07, 0x00, 0x00, 0x06, 0x18, 0x06, 0x18, 0x00, 0x00, 0xA4, 0xE8, 0xAC, 0x06,
0x37, 0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x61, 0xFF, 0xB2, 0xFD,
0x1A, 0xFF, 0x75, 0x78, 0x27, 0x08, 0x78, 0x3E, 0x00, 0x37, 0xF4, 0x00, 0xDC, 0xFF, 0xC9, 0xFF,
0x05, 0x04, 0x00, 0x12, 0xBB, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x0D, 0x80, 0x00, 0x54, 0x00,
0x54, 0x00, 0x00, 0x84, 0xE8, 0xAD, 0x20, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D,
0xDE, 0x62, 0xFF, 0xBF, 0xD8, 0x86, 0xFF, 0x75, 0xF5, 0x51, 0x09, 0x55, 0xF3, 0x0F, 0x7F, 0x69,
0x03, 0xD1, 0x00, 0x71, 0xFE, 0x02, 0x06, 0xBB, 0x0D, 0x34, 0x01, 0x01, 0x01, 0x10, 0x60, 0x1E,
0x00, 0x00, 0x04, 0xD8, 0x04, 0xD8, 0x00, 0x00, 0x84, 0xE8, 0xAE, 0x40, 0xBF, 0xCF, 0xAD, 0x03,
0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x62, 0xFF, 0xBF, 0x36, 0xD1, 0xFF, 0x84, 0xC8, 0x66, 0x19,
0xB1, 0x4B, 0x0E, 0x13, 0x50, 0x01, 0x0B, 0xFF, 0x42, 0xFF, 0x01, 0x07, 0xDF, 0x0C, 0x98, 0x01,
0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x08, 0x00, 0x28, 0x00, 0x29, 0xFF, 0x51, 0x84, 0xE8, 0xE1,
0x60, 0xBF, 0xCF, 0x8D, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x63, 0xFF, 0xD3, 0x1B, 0xD7,
0xFF, 0x8C, 0xF1, 0x92, 0x24, 0x8A, 0xA3, 0x25, 0x4B, 0x06, 0x01, 0xF1, 0x03, 0x44, 0xFE, 0x01,
0x08, 0x50, 0x04, 0x70, 0x01, 0x01, 0x01, 0xF0, 0x60, 0xFF, 0x6F, 0x0C, 0x05, 0x28, 0x00, 0x00,
0x84, 0xE8, 0x9D, 0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x63, 0xFF,
0xD5, 0x88, 0x94, 0xFF, 0x63, 0xC0, 0x29, 0xF4, 0x9B, 0xDF, 0x29, 0x5F, 0x0C, 0xFD, 0x48, 0x02,
0xC2, 0xFA, 0x02, 0x08, 0x42, 0x0A, 0xBE, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x06,
0x40, 0x06, 0x40, 0x00, 0x00, 0x84, 0xE8, 0xA0, 0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C,
0x03, 0x5D, 0xDE, 0x64, 0xFF, 0xCF, 0xE7, 0xFD, 0xFF, 0x69, 0x8C, 0xE3, 0xFB, 0x70, 0x38, 0x22,
0xBB, 0x17, 0x02, 0x9F, 0xFD, 0x6F, 0x09, 0xFA, 0x0C, 0xD7, 0x08, 0x22, 0x01, 0x01, 0x01, 0x10,
0x60, 0x0C, 0x00, 0x10, 0x05, 0x78, 0x05, 0x78, 0x00, 0x00, 0x84, 0xE8, 0xB1, 0x40, 0xBF, 0xCF,
0xAD, 0x33, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x66, 0xFF, 0xB7, 0xE3, 0xDF, 0xFF, 0x68, 0xF9,
0x44, 0xFB, 0x19, 0x46, 0x06, 0x1B, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x6F, 0x09,
0x24, 0x41, 0x01, 0x01, 0x50, 0x20, 0x00, 0x40, 0x06, 0x78, 0x06, 0x78, 0x00, 0x00, 0x08, 0x0E,
0xC0, 0x04, 0x92, 0x84, 0xE8, 0x90, 0x44, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D,
0xDE, 0x66, 0xFF, 0xC4, 0x7B, 0xB9, 0xFF, 0x6E, 0xA5, 0x54, 0x01, 0x45, 0x0F, 0x15, 0x1E, 0x0F,
0x01, 0x19, 0xFF, 0xA0, 0x00, 0x00, 0x04, 0x00, 0x08, 0x60, 0x01, 0x01, 0x01, 0x10, 0x60, 0x18,
0x18, 0x00, 0x00, 0xE0, 0x00, 0xE0, 0x00, 0x00, 0x84, 0xE8, 0xA1, 0x60, 0xBF, 0xCF, 0xAD, 0x03,
0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x66, 0xFF, 0xC5, 0x41, 0x00, 0xFF, 0x8C, 0xC4, 0xE5, 0x23,
0x1A, 0xE4, 0x14, 0xAC, 0x87, 0xFF, 0x15, 0xFF, 0x2F, 0x00, 0x00, 0x00, 0x6B, 0x04, 0x75, 0x01,
0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x84, 0x00, 0x41, 0x84, 0xE8, 0x9D,
0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x67, 0xFF, 0xB5, 0x41, 0x88,
0xFF, 0x6D, 0xE0, 0xE8, 0x00, 0x64, 0xCC, 0x03, 0x01, 0xE3, 0xFD, 0x2E, 0xFE, 0x45, 0x0A, 0xE5,
0x07, 0xBF, 0x01, 0x9B, 0x01, 0x01, 0x01, 0x10, 0x60, 0x16, 0x00, 0x90, 0x06, 0x40, 0x06, 0x40,
0x00, 0x00, 0x84, 0xE8, 0x90, 0x40, 0xBF, 0x8F, 0x8D, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE,
0x67, 0xFF, 0xA6, 0x49, 0x1C, 0xFF, 0x6B, 0x18, 0xE2, 0xFD, 0x89, 0x59, 0xF1, 0x30, 0x33, 0x00,
0x32, 0xFF, 0xCD, 0x00, 0x00, 0x01, 0x74, 0x01, 0x01, 0x01, 0x30, 0x40, 0x14, 0x0C, 0x00, 0x28,
0x00, 0x00, 0xA4, 0xE8, 0xB2, 0x01, 0x41, 0x20, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03,
0x5D, 0xDE, 0x67, 0xFF, 0xB3, 0xCA, 0x8B, 0xFF, 0x69, 0xFD, 0x66, 0xFC, 0x3E, 0x4A, 0x01, 0x3F,
0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x92, 0x05, 0x70, 0x41, 0x01, 0x01, 0x50, 0x20,
0x00, 0x40, 0x06, 0x54, 0x06, 0x54, 0x00, 0x00, 0x84, 0xE8, 0xFB, 0x44, 0xBF, 0xCF, 0xAD, 0x03,
0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x69, 0xFF, 0xBD, 0x15, 0xA7, 0xFF, 0x7A, 0xD5, 0x8A, 0x0E,
0x9D, 0x03, 0x0C, 0x0F, 0x5B, 0xFF, 0x2F, 0x00, 0xA0, 0x02, 0xFE, 0x00, 0x40, 0x10, 0x5E, 0x01,
0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0xFF, 0xF7, 0x84, 0xE8, 0xE2,
0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x6A, 0xFF, 0xC1, 0x05, 0x19,
0xFF, 0x8B, 0x7D, 0x01, 0x21, 0x47, 0x8B, 0x0F, 0xB8, 0xB7, 0xFF, 0x68, 0x00, 0xA2, 0x00, 0xFF,
0x00, 0x5E, 0x02, 0xA6, 0x01, 0x01, 0x01, 0x10, 0x60, 0x20, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x0C,
0x00, 0x00, 0x84, 0xE8, 0xE9, 0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE,
0x6A, 0xFF, 0xC5, 0xC7, 0xA0, 0xFF, 0x82, 0x7A, 0x01, 0x17, 0x8E, 0xE0, 0x16, 0x0D, 0xA4, 0x02,
0x11, 0x02, 0xED, 0xFB, 0x02, 0x08, 0xAF, 0x0D, 0x9F, 0x01, 0x01, 0x01, 0x10, 0x60, 0x09, 0x00,
0x00, 0x05, 0x78, 0x05, 0x78, 0x00, 0x00, 0x84, 0xE8, 0xAA, 0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00,
0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x6A, 0xFF, 0xC3, 0x8F, 0x82, 0xFF, 0x78, 0x9E, 0x99, 0x0C, 0x67,
0x13, 0x13, 0xD9, 0x03, 0x00, 0xD1, 0xFF, 0x8A, 0xFF, 0x00, 0x01, 0x34, 0x02, 0x4C, 0x01, 0x01,
0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x00, 0xD8, 0x00, 0x41, 0x84, 0xE8, 0xA7, 0x60,
0xBF, 0x8F, 0x8D, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x6B, 0xFF, 0xAC, 0xB7, 0x65, 0xFF,
0x65, 0x66, 0x90, 0xF7, 0x8A, 0x31, 0xF8, 0xC1, 0x21, 0x00, 0x41, 0xFF, 0x81, 0x03, 0xFC, 0x07,
0xB0, 0x01, 0x01, 0x01, 0x30, 0x40, 0x2B, 0x1C, 0x00, 0x28, 0x00, 0x00, 0xA4, 0xE8, 0xB3, 0x01,
0x8D, 0x20, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x6B, 0xFF, 0xC4, 0x68,
0x46, 0xFF, 0x8C, 0xFF, 0xDE, 0x23, 0x48, 0xF3, 0x13, 0xA3, 0xF7, 0xFF, 0x78, 0x00, 0xC8, 0xFC,
0x03, 0x00, 0x9C, 0x01, 0x66, 0x01, 0x01, 0x01, 0x50, 0x20, 0x11, 0x10, 0x00, 0x18, 0x00, 0x18,
0x00, 0x00, 0x84, 0xE8, 0x91, 0x40, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE,
0x6B, 0xFF, 0xBE, 0xE3, 0xF8, 0xFF, 0x85, 0x51, 0xF4, 0x1A, 0x43, 0x53, 0x0D, 0xA7, 0x41, 0x01,
0x85, 0xFF, 0xB4, 0xFF, 0x00, 0x06, 0xC9, 0x01, 0xC7, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00,
0x04, 0x00, 0x44, 0x00, 0x44, 0x00, 0xB8, 0x84, 0xE8, 0xDF, 0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00,
0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x6D, 0xFF, 0xCE, 0x2A, 0xD5, 0xFF, 0x89, 0xFD, 0x34, 0x20, 0xB5,
0x27, 0x1F, 0x95, 0xDF, 0xFD, 0xDB, 0xFD, 0x16, 0x05, 0xFB, 0x0A, 0x37, 0x0C, 0x0C, 0x01, 0x01,
0x01, 0x10, 0x60, 0x20, 0x00, 0x00, 0x05, 0xA0, 0x05, 0xA0, 0x00, 0x00, 0x84, 0xE8, 0xA5, 0x40,
0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x6D, 0xFF, 0xC5, 0x52, 0xF5, 0xFF,
0x79, 0x3E, 0x59, 0x0D, 0x29, 0x3E, 0x15, 0xED, 0xF2, 0xFF, 0x7B, 0x03, 0xB5, 0x06, 0xFE, 0x08,
0xBC, 0x08, 0x6A, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x00, 0x05, 0xF0, 0x05, 0xF0, 0x00,
0x00, 0x84, 0xE8, 0xA1, 0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8, 0x3C, 0x03, 0x5D, 0xDE, 0x6E,
0xFF, 0xC9, 0x2E, 0xB5, 0xFF, 0x84, 0xFE, 0x6D, 0x1A, 0xA0, 0x05, 0x19, 0xF7, 0x0C, 0x02, 0x24,
0x03, 0x16, 0xFF, 0x01, 0x08, 0x79, 0x09, 0x70, 0x01, 0x01, 0x01, 0x10, 0x60, 0x00, 0x00, 0x00,
0x05, 0xC8, 0x05, 0xC8, 0x00, 0x00, 0x84, 0xE8, 0xA5, 0x60, 0xBF, 0xCF, 0xAD, 0x03, 0x00, 0xE8,
0x3C, 0x03, 0x5D, 0xDE, 0x70, 0xFF, 0xB6, 0x7F, 0xDF, 0xFF, 0x74, 0x14, 0xA3, 0x07, 0x11, 0x2A,
0x04, 0x6C, 0x29, 0x00, 0x69, 0xFF, 0x0D, 0x03, 0xFF, 0x00, 0xC1, 0x08, 0xAE, 0x01, 0x01, 0x01,
0x10, 0x60, 0x07, 0x00, 0x00, 0x00, 0xC8, 0x00, 0xC8, 0xFF, 0xFF, 0x84, 0xE8, 0x90, 0x40,
};
void example_decode(void)
{
{
{
printf("Data record: %i\n", i);
{
printf(" Data item: %2i\n", j);
printf(
" SIZE: %02zu\n", di.
size);
printf(" DESC: %s\n", summary);
printf(" DATA: %s\n", hexstr);
printf("\n");
}
}
}
else
{
printf("Failed to decode datablock!\n");
}
}
void example_match(void)
{
{
{
printf("Data record: %i\n", i);
{
printf(" Key:%s\t", key);
printf("Value:%s\n", value);
else
printf("Value:NOT_EXIST\n");
}
}
}
else
{
printf("Failed to decode datablock!\n");
}
}
void example_modify(void)
{
{
printf("New SAC\\SIC = 109\\250\n");
printf("Original Data:\n");
for(
size_t i = 0; i < db.
size; ++i)
{
printf(
"%.2X ", db.
data[i]);
if((i + 1) % 16 == 0)
printf("\n");
}
printf("\n");
{
.valid = true,
.sac = 109,
.sic = 250,
};
{
.data = (void*) &ddi,
};
{
.n_dataitems = 1,
};
unsigned char buffer[256];
{
printf("Modified Data:\n");
for(
size_t i = 0; i < db_new.
size; ++i)
{
printf(
"%.2X ", db_new.
data[i]);
if((i + 1) % 16 == 0)
printf("\n");
}
printf("\n");
}
else
{
printf("Failed to modify datablcok\n");
}
}
else
{
printf("Failed to decode datablock!\n");
}
}
void example_encode(void)
{
{
.valid = true,
.sac = 109,
.sic = 250,
};
{
.data = (void*) &ddi_021_010,
};
time_t now;
time(&now);
struct tm * tm_now = gmtime(&now);
{
.valid = true,
.raw_time = 0,
.hour = tm_now->tm_hour,
.min = tm_now->tm_min,
.sec = tm_now->tm_sec,
.msec = 0,
};
{
.data = (void*) &ddi_021_030,
};
{
.valid = true,
.diff_correction = false,
.ground = false,
.simulated = false,
.test = false,
.fixed_transponder = false,
.selected_altitude_capability = true,
.spi = false,
};
{
.data = (void*) &ddi_021_040,
};
{
.valid = true,
.icao_address = 0x7E7E7E,
};
{
.data = (void*) &ddi_021_080,
};
{
.valid = true,
.latitude = 38.02,
.longitude = 105.57,
};
{
.data = (void*) &ddi_021_130,
};
{
.valid = true,
.raw_level = 310 * 4,
};
{
.data = (void*) &ddi_021_145,
};
unsigned char buffer[256];
{
printf("New Data Block:\n");
for(
size_t i = 0; i < db.
size; ++i)
{
printf(
"%.2X ", db.
data[i]);
if((i + 1) % 16 == 0)
printf("\n");
}
printf("\n");
}
else
{
printf("Failed to encode datablock!\n");
}
}
int main(void)
{
printf("libasterix Example Program Start\n");
char key [256];
printf ("Input your license key: ");
fgets(key, sizeof(key), stdin);
printf("\n");
example_decode();
example_match();
example_modify();
example_encode();
return 0;
}
@ I021
ADS-B Messages.
Definition category.h:48
ast_datablock_t ast_datablock_modify(unsigned char *const buffer, const size_t bufsize, const ast_datablock_t src, const ast_datarecord_modifier_t mod)
Datablock modify function.
ast_datablock_t ast_datablock_encode(unsigned char *const buffer, const size_t bufsize, const ast_datablock_ex_t xdb)
Datablock encode function.
ast_datablock_t ast_datablock_decode(const unsigned char *const buffer, const size_t bufsize, const ast_uap_t uap)
Datablock decode function.
ast_dataitem_data_source_identifier_t ast_dataitem_021_010_t
Data Item I021/010 - Data Source Identifier.
Definition cat021.h:169
ast_dataitem_time_of_day_t ast_dataitem_021_030_t
Definition cat021.h:292
@ AST_ADSB_ALT_CAP_25FT
Definition cat021.h:353
@ AST_ADSB_ADDR_ICAO_24BIT
Definition cat021.h:343
ast_dataitem_target_address_t ast_dataitem_021_080_t
Data Item I021/080 - Target Address.
Definition cat021.h:681
ast_dataitem_position_wgs84_low_t ast_dataitem_021_130_t
Data Item I021/130 - Position in WGS84 Coordinates (Ver <= 0.23 and >= 0.27).
Definition cat021.h:875
ast_dataitem_data_source_identifier_t ast_dataitem_048_010_t
Data Item I048/010 - Data Source Identifier.
Definition cat048.h:123
void ast_dataitem_get_hex_str(char *string, const size_t string_size, ast_dataitem_t di)
Function to get raw data item data in hexadecimal format.
#define AST_DATAITEM_SUMMARY_PREFERED_CHARS
Preferred number of chars of dataitem summary.
Definition dataitem.h:598
const char * ast_dataitem_type_to_str(const ast_dataitem_type_t type)
Convert from ast_dataitem_type_t to C string.
void ast_dataitem_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di)
Function to get summary of one dataitem.
#define AST_DATAITEM_HEX_STR_PREFERED_CHARS
Preferred number of chars of dataitem hexadecimal string.
Definition dataitem.h:612
const char * ast_dataitem_get_name(const ast_dataitem_type_t type)
Function to get name of one data item.
@ I021_080
Definition dataitem.h:310
@ I021_130
Definition dataitem.h:314
@ I021_A03
Dataitem I021/040 prior version 0.26.
Definition dataitem.h:342
@ I048_010
Definition dataitem.h:396
@ I021_145
Definition dataitem.h:318
@ I021_010
Definition dataitem.h:295
@ I021_030
Definition dataitem.h:299
#define AST_KEYWORD_VALUE_PREFERRED_CHARS
Preferred number of chars of keyword string.
Definition datarecord.h:198
bool ast_datarecord_get_keyword(char *keystr, const size_t keystr_size, const ast_datarecord_t dr, const ast_keyword_t keyword, const ast_keyword_format_t format)
Get keyword summary string from specified datarecord.
This header file shall be included by external application.
const char * ast_library_build(void)
Get build date of libasterix, e.g. "Jan 1 2008".
const char * ast_library_revision(void)
Get revision string of libasterix, e.g. "aabb123".
const char * ast_library_version(void)
Get version string of libasterix, e.g. "1.2.10".
const char * ast_library_about(void)
Get copyright information of libasterix.
bool ast_library_init(const char *const key)
Init library.
const char * ast_library_contact(void)
Get contact information of libasterix.
#define AST_KEYWORD_NAME_PERFERED_CHARS
Definition match.h:74
void ast_keyword_name(char *keyname, const size_t keyname_size, const ast_keyword_t keyword)
@ AST_KEYWORD_FORMAT_DEFAULT
Definition match.h:64
@ AST_KEYWORD_SACSIC
Definition match.h:36
@ AST_KEYWORD_LAST
Last place holder keyword.
Definition match.h:59
Extracted datablock.
Definition datablock.h:76
ast_datarecord_ex_t datarecords[64]
Data records.
Definition datablock.h:80
ast_uap_t uap
UAP of data block.
Definition datablock.h:78
ast_category_t category
Category of data block.
Definition datablock.h:77
size_t n_datarecords
Number of data records.
Definition datablock.h:81
Datablock.
Definition datablock.h:59
const unsigned char * data
Address of data block.
Definition datablock.h:60
size_t n_datarecords
Number of data records.
Definition datablock.h:69
ast_datarecord_t datarecords[64]
Data records.
Definition datablock.h:68
size_t size
Size of data block.
Definition datablock.h:61
bool valid
True, if data block is correctly decoded.
Definition datablock.h:71
Data Item I021/145 - Flight Level.
Definition cat021.h:1053
Data Item I021/040 - Target Report Descriptor (Prior version 0.26).
Definition cat021.h:417
Extracted dataitem.
Definition dataitem.h:526
Dataitem.
Definition dataitem.h:515
size_t size
Size of data item.
Definition dataitem.h:517
ast_dataitem_type_t type
Type of data item.
Definition dataitem.h:519
Extracted datarecord.
Definition datarecord.h:77
ast_uap_t uap
UAP of data record.
Definition datarecord.h:79
ast_dataitem_ex_t dataitems[32]
Data items.
Definition datarecord.h:81
size_t n_dataitems
Number of data items.
Definition datarecord.h:82
ast_category_t category
Category of data record.
Definition datarecord.h:78
Datarecord modifier.
Definition datarecord.h:87
ast_dataitem_ex_t dataitems[32]
Data items to be modified.
Definition datarecord.h:88
Datarecord.
Definition datarecord.h:61
ast_dataitem_t dataitems[32]
Data items.
Definition datarecord.h:69
size_t n_dataitems
Number of data items.
Definition datarecord.h:70
const ast_uap_t AST_UAP_CAT021_VER023
const ast_uap_t AST_UAP_STANDARD