LibMISB/Examples/Library basic usage: Difference between revisions
No edit summary |
No edit summary |
||
Line 44: | Line 44: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Or alternitevly if you want to use the 0903 standard: | |||
<syntaxhighlight lang=json> | |||
{ | |||
"key": "060E2B34020B01010E01030306000000", | |||
"items": [ | |||
{ | |||
"tag": "2", | |||
"value": "Apr. 19, 2001. 04:25:21.000" | |||
}, | |||
{ | |||
"tag": "101", | |||
"value": [ | |||
{ | |||
"tag": "targetId", | |||
"value": "1234" | |||
}, | |||
{ | |||
"tag": "1", | |||
"value": "409600" | |||
}, | |||
{ | |||
"tag": "3", | |||
"value": "409600" | |||
}, | |||
{ | |||
"tag": "5", | |||
"value": "80" | |||
}, | |||
{ | |||
"tag": "targetId", | |||
"value": "1235" | |||
}, | |||
{ | |||
"tag": "1", | |||
"value": "409601" | |||
}, | |||
{ | |||
"tag": "3", | |||
"value": "409601" | |||
} | |||
] | |||
}, | |||
{ | |||
"tag": "6", | |||
"value": "2" | |||
} | |||
] | |||
} | |||
</syntaxhighlight> | |||
The following command is executed to perform the encoding. The'''--encode''' flag indicates that encoding is to be performed. The '''-i''' flag indicates the input file, where the metadata must be raw without encoding. On the other hand, the '''-o''' flag indicates the output file, which contains the encoded bytes in a binary file. The '''--verbose''' flag shows the KLV bytes encoded on the terminal. | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
./misb-converter --verbose --encode -i misb_ST0601_sample.json -o klv.bin | ./misb-converter --verbose --encode -i misb_ST0601_sample.json -o klv.bin | ||
</syntaxhighlight> | |||
or | |||
<syntaxhighlight lang=bash> | |||
./misb-converter --verbose --encode -i misb_ST0903_sample.json -o klv.bin | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Once the command is executed (with the <code>--verbose</code> flag), the KLV bytes are displayed. The klv.bin file contains the encoded bytes. | |||
Once the command is executed (with the <code>--verbose</code> flag), the KLV bytes are displayed. The 0601 klv.bin file contains the encoded bytes. | |||
<syntaxhighlight> | <syntaxhighlight> | ||
Line 59: | Line 115: | ||
=== Decode command === | === Decode command === | ||
The following command is executed to perform the decoding. The '''--decode''' flag indicates that decoding is to be performed. The '''-i''' flag indicates the input file, where the metadata must be encoded. The '''-o''' flag indicates the output file | The following command is executed to perform the decoding. The '''--decode''' flag indicates that decoding is to be performed. The '''-i''' flag indicates the input file, where the metadata must be encoded. The '''-o''' flag indicates the output file containing the decoded metadata. | ||
The encoded bytes found inside the klv.bin file are: | The encoded bytes found inside the 0601 klv.bin file are: | ||
<syntaxhighlight> | <syntaxhighlight> | ||
6 14 43 52 2 11 1 1 14 1 3 1 1 0 0 0 44 2 8 0 | 6 14 43 52 2 11 1 1 14 1 3 1 1 0 0 0 44 2 8 0 | ||
Line 106: | Line 162: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
and for the 0903: | |||
<syntaxhighlight lang=json> | |||
{ | |||
"key": "060E2B34020B01010E01030306000000", | |||
"items": [ | |||
{ | |||
"tag": "2", | |||
"value": "Apr. 19, 2001. 04:25:21.000" | |||
}, | |||
{ | |||
"tag": "101", | |||
"value": [ | |||
{ | |||
"tag": "id", | |||
"value": "1234" | |||
}, | |||
{ | |||
"tag": "1", | |||
"value": "409600" | |||
}, | |||
{ | |||
"tag": "3", | |||
"value": "409600" | |||
}, | |||
{ | |||
"tag": "5", | |||
"value": "80" | |||
}, | |||
{ | |||
"tag": "id", | |||
"value": "1235" | |||
}, | |||
{ | |||
"tag": "1", | |||
"value": "409601" | |||
}, | |||
{ | |||
"tag": "3", | |||
"value": "409601" | |||
} | |||
] | |||
}, | |||
{ | |||
"tag": "6", | |||
"value": "2" | |||
}, | |||
{ | |||
"tag": "4", | |||
"value": "6" | |||
} | |||
] | |||
} | |||
<syntaxhighlight lang=json> | |||
As seen here some extra flags can be present after the decoding process since the encoding might add required tags to the encoding. | As seen here some extra flags can be present after the decoding process since the encoding might add required tags to the encoding. |
Revision as of 15:23, 19 September 2024
LibMISB |
---|
Introduction |
Supported Standards |
Getting Started |
Examples |
Evaluating |
Contact Us |
Testing library
This library has an example that you can execute. This example is a metadata converter that can encode or decode metadata. If you want to encode, the input file must respect one of the supported formats and will return a binary file with metadata encoded. On the other hand, if you want to decode the program receives a binary file and converts it to the format file selected. Currently JSON format is supported for the input and output encoding files.
The executable is located on /misb-library/examples/misb/
or if you want to compile and execute the example file out of the project. The path of the example is located on /misb-library/examples/misb/misb-converter.cpp
. To compile the example we suggest you follow the next Makefile:
FLAGS:=`pkg-config --cflags --libs misb-0.0` misb-converter: misb-converter.cpp g++ -o misb-converter misb-converter.cpp $(FLAGS)
The input JSON file that is going to be used is as follows:
{ "key": "060E2B34020B01010E01030101000000", "items": [ { "tag": "2", "value": "Oct. 24, 2008. 00:13:29.913" }, { "tag": "3", "value": "MISSION01" }, { "tag": "4", "value": "AF-101" }, { "tag": "5", "value": "159.97436" }, { "tag": "15", "value": "14190.7195" } ] }
Or alternitevly if you want to use the 0903 standard:
{ "key": "060E2B34020B01010E01030306000000", "items": [ { "tag": "2", "value": "Apr. 19, 2001. 04:25:21.000" }, { "tag": "101", "value": [ { "tag": "targetId", "value": "1234" }, { "tag": "1", "value": "409600" }, { "tag": "3", "value": "409600" }, { "tag": "5", "value": "80" }, { "tag": "targetId", "value": "1235" }, { "tag": "1", "value": "409601" }, { "tag": "3", "value": "409601" } ] }, { "tag": "6", "value": "2" } ] }
The following command is executed to perform the encoding. The--encode flag indicates that encoding is to be performed. The -i flag indicates the input file, where the metadata must be raw without encoding. On the other hand, the -o flag indicates the output file, which contains the encoded bytes in a binary file. The --verbose flag shows the KLV bytes encoded on the terminal.
./misb-converter --verbose --encode -i misb_ST0601_sample.json -o klv.bin
or
./misb-converter --verbose --encode -i misb_ST0903_sample.json -o klv.bin
Once the command is executed (with the --verbose
flag), the KLV bytes are displayed. The 0601 klv.bin file contains the encoded bytes.
INFO 6 14 43 52 2 11 1 1 14 1 3 1 1 0 0 0 44 2 8 0 4 89 249 174 32 34 168 3 9 77 73 83 83 73 79 78 48 49 4 6 65 70 45 49 48 49 5 2 113 194 15 2 194 33 65 1 17 1 2 164 125
Decode command
The following command is executed to perform the decoding. The --decode flag indicates that decoding is to be performed. The -i flag indicates the input file, where the metadata must be encoded. The -o flag indicates the output file containing the decoded metadata.
The encoded bytes found inside the 0601 klv.bin file are:
6 14 43 52 2 11 1 1 14 1 3 1 1 0 0 0 44 2 8 0 4 89 249 174 32 34 168 3 9 77 73 83 83 73 79 78 48 49 4 6 65 70 45 49 48 49 5 2 113 194 15 2 194 33 65 1 17 1 2 164 125
./misb-converter --decode -i klv.bin -o output.json
Once the command is executed, it reports that a decoded file was generated. The content of the output.json file is
{ "key": "060E2B34020B01010E01030101000000", "items": [ { "tag": "2", "value": "Oct. 24, 2008. 00:13:29.913" }, { "tag": "3", "value": "MISSION01" }, { "tag": "4", "value": "AF-101" }, { "tag": "5", "value": "159.974365" }, { "tag": "15", "value": "14190.719463" }, { "tag": "65", "value": "17" } ] }
and for the 0903:
{ "key": "060E2B34020B01010E01030306000000", "items": [ { "tag": "2", "value": "Apr. 19, 2001. 04:25:21.000" }, { "tag": "101", "value": [ { "tag": "id", "value": "1234" }, { "tag": "1", "value": "409600" }, { "tag": "3", "value": "409600" }, { "tag": "5", "value": "80" }, { "tag": "id", "value": "1235" }, { "tag": "1", "value": "409601" }, { "tag": "3", "value": "409601" } ] }, { "tag": "6", "value": "2" }, { "tag": "4", "value": "6" } ] } <syntaxhighlight lang=json> As seen here some extra flags can be present after the decoding process since the encoding might add required tags to the encoding. == Logging == You can enable the debugging using '''SetLogLevel''' in your application with the LibMISB. For example: <syntaxhighlight lang=cpp> libmisb::LibMisb libmisb; libmisb.SetLogLevel(LIBMISB_DEBUG);