summaryrefslogtreecommitdiff
path: root/cesar/tools/hpav_decode
diff options
context:
space:
mode:
Diffstat (limited to 'cesar/tools/hpav_decode')
-rw-r--r--cesar/tools/hpav_decode/data/MME1b_new_decod.txt566
-rw-r--r--cesar/tools/hpav_decode/data/S19_BEACON_decod.txt44
-rw-r--r--cesar/tools/hpav_decode/data/S20_BEACON_decod.txt46
-rw-r--r--cesar/tools/hpav_decode/data/S21_BEACON_decod.txt46
-rw-r--r--cesar/tools/hpav_decode/data/S22_BEACON_FC.txt128
-rw-r--r--cesar/tools/hpav_decode/data/S22_BEACON_PLD.txt1088
-rw-r--r--cesar/tools/hpav_decode/data/S22_BEACON_decod.txt180
-rw-r--r--cesar/tools/hpav_decode/data/S23_BEACON_FC.txt128
-rw-r--r--cesar/tools/hpav_decode/data/S23_BEACON_PLD.txt1088
-rw-r--r--cesar/tools/hpav_decode/data/S23_BEACON_decod.txt180
-rw-r--r--cesar/tools/hpav_decode/data/S24_BEACON_FC.txt128
-rw-r--r--cesar/tools/hpav_decode/data/S24_BEACON_PLD.txt1088
-rw-r--r--cesar/tools/hpav_decode/data/S24_BEACON_decod.txt180
-rw-r--r--cesar/tools/hpav_decode/data/S25_BEACON_FC.txt128
-rw-r--r--cesar/tools/hpav_decode/data/S25_BEACON_PLD.txt1088
-rw-r--r--cesar/tools/hpav_decode/data/S25_BEACON_decod.txt180
-rw-r--r--cesar/tools/hpav_decode/data/S26_BEACON_FC.txt128
-rw-r--r--cesar/tools/hpav_decode/data/S26_BEACON_PLD.txt1088
-rw-r--r--cesar/tools/hpav_decode/data/S26_BEACON_decod.txt180
-rw-r--r--cesar/tools/hpav_decode/data/S27_BEACON_FC.txt128
-rw-r--r--cesar/tools/hpav_decode/data/S27_BEACON_PLD.txt1088
-rw-r--r--cesar/tools/hpav_decode/data/S27_BEACON_decod.txt180
-rw-r--r--cesar/tools/hpav_decode/data/S28_BEACON_FC.txt128
-rw-r--r--cesar/tools/hpav_decode/data/S28_BEACON_PLD.txt1088
-rw-r--r--cesar/tools/hpav_decode/data/S28_BEACON_decod.txt180
-rw-r--r--cesar/tools/hpav_decode/data/S29_BEACON_FC.txt128
-rw-r--r--cesar/tools/hpav_decode/data/S29_BEACON_PLD.txt1088
-rw-r--r--cesar/tools/hpav_decode/data/S29_BEACON_decod.txt180
-rw-r--r--cesar/tools/hpav_decode/src/hpav_decode.c604
29 files changed, 12379 insertions, 95 deletions
diff --git a/cesar/tools/hpav_decode/data/MME1b_new_decod.txt b/cesar/tools/hpav_decode/data/MME1b_new_decod.txt
new file mode 100644
index 0000000000..66b538bb74
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/MME1b_new_decod.txt
@@ -0,0 +1,566 @@
+HomePlug AV FRAME CONTROL :
+
+10000100 (0x21) => 00100001 => 0x21 -----001 DTAV = SOF ; ----0--- ACCESS = in-home network ; 0010---- SNID = 2
+10000000 (0x01) => 00000001 => 0x01 00000001 STEI = 1
+01000000 (0x02) => 00000010 => 0x02 00000010 DTEI = 2
+01000000 (0x02) => 00000010 => 0x02 00000010 LID = 2
+01000000 (0x02) => 00000010 => 0x02
+00000000 (0x00) => 00000000 => 0x00
+00100000 (0x04) => 00000100 => 0x04
+01100000 (0x06) => 00000110 => 0x06
+00100100 (0x24) => 00100100 => 0x24
+11000000 (0x03) => 00000011 => 0x03
+00000010 (0x40) => 01000000 => 0x40
+00001001 (0x90) => 10010000 => 0x90
+00001111 (0xf0) => 11110000 => 0xf0
+00011101 (0xb8) => 10111000 => 0xb8 \
+10011110 (0x79) => 01111001 => 0x79 |
+11111110 (0x7f) => 01111111 => 0x7f / CRC24 = 0x7f79b8
+
+21.01.02.02.02.00.04.06.24.03.40.90.f0.b8.79.7f.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804b6c0 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (frame control) = 16 (13 octets utiles + CRC24)
+21.01.02.02.02.00.04.06.24.03.40.90.f0.b8.79.7f.
+CRC24 expected = 0x007f79b8
+
+
+HomePlug AV PAYLOAD :
+
+10001100 (0x31) => 00110001 => 0x31
+01001110 (0x72) => 01110010 => 0x72
+11001010 (0x53) => 01010011 => 0x53
+10010111 (0xe9) => 11101001 => 0xe9
+00000011 (0xc0) => 11000000 => 0xc0
+10100001 (0x85) => 10000101 => 0x85
+00000001 (0x80) => 10000000 => 0x80
+11010100 (0x2b) => 00101011 => 0x2b
+00010001 (0x88) => 10001000 => 0x88
+10000011 (0xc1) => 11000001 => 0xc1
+00101000 (0x14) => 00010100 => 0x14
+10111011 (0xdd) => 11011101 => 0xdd
+00101111 (0xf4) => 11110100 => 0xf4
+01000101 (0xa2) => 10100010 => 0xa2
+01000000 (0x02) => 00000010 => 0x02
+00000010 (0x40) => 01000000 => 0x40
+01110010 (0x4e) => 01001110 => 0x4e
+10001001 (0x91) => 10010001 => 0x91
+11110101 (0xaf) => 10101111 => 0xaf
+11011110 (0x7b) => 01111011 => 0x7b
+00001011 (0xd0) => 11010000 => 0xd0
+00011101 (0xb8) => 10111000 => 0xb8
+10111110 (0x7d) => 01111101 => 0x7d
+01100011 (0xc6) => 11000110 => 0xc6
+00000011 (0xc0) => 11000000 => 0xc0
+00000100 (0x20) => 00100000 => 0x20
+00101001 (0x94) => 10010100 => 0x94
+11110110 (0x6f) => 01101111 => 0x6f
+01111000 (0x1e) => 00011110 => 0x1e
+00010110 (0x68) => 01101000 => 0x68
+11001010 (0x53) => 01010011 => 0x53
+10101100 (0x35) => 00110101 => 0x35
+01001111 (0xf2) => 11110010 => 0xf2
+01111100 (0x3e) => 00111110 => 0x3e
+10111011 (0xdd) => 11011101 => 0xdd
+00011101 (0xb8) => 10111000 => 0xb8
+11110001 (0x8f) => 10001111 => 0x8f
+11011000 (0x1b) => 00011011 => 0x1b
+01011111 (0xfa) => 11111010 => 0xfa
+11101001 (0x97) => 10010111 => 0x97
+01111111 (0xfe) => 11111110 => 0xfe
+01100110 (0x66) => 01100110 => 0x66
+00000001 (0x80) => 10000000 => 0x80
+01101010 (0x56) => 01010110 => 0x56
+10011111 (0xf9) => 11111001 => 0xf9
+11010001 (0x8b) => 10001011 => 0x8b
+11110101 (0xaf) => 10101111 => 0xaf
+00000110 (0x60) => 01100000 => 0x60
+10110010 (0x4d) => 01001101 => 0x4d
+11001000 (0x13) => 00010011 => 0x13
+11110001 (0x8f) => 10001111 => 0x8f
+01001100 (0x32) => 00110010 => 0x32
+00100000 (0x04) => 00000100 => 0x04
+11010000 (0x0b) => 00001011 => 0x0b
+00110101 (0xac) => 10101100 => 0xac
+11010000 (0x0b) => 00001011 => 0x0b
+00101111 (0xf4) => 11110100 => 0xf4
+10010010 (0x49) => 01001001 => 0x49
+11111000 (0x1f) => 00011111 => 0x1f
+11100111 (0xe7) => 11100111 => 0xe7
+01101011 (0xd6) => 11010110 => 0xd6
+01100001 (0x86) => 10000110 => 0x86
+11110101 (0xaf) => 10101111 => 0xaf
+00001111 (0xf0) => 11110000 => 0xf0
+00111001 (0x9c) => 10011100 => 0x9c
+11101110 (0x77) => 01110111 => 0x77
+10110101 (0xad) => 10101101 => 0xad
+10000001 (0x81) => 10000001 => 0x81
+10011110 (0x79) => 01111001 => 0x79
+00010110 (0x68) => 01101000 => 0x68
+11100001 (0x87) => 10000111 => 0x87
+10101100 (0x35) => 00110101 => 0x35
+00110110 (0x6c) => 01101100 => 0x6c
+10011011 (0xd9) => 11011001 => 0xd9
+11110010 (0x4f) => 01001111 => 0x4f
+01100110 (0x66) => 01100110 => 0x66
+11111110 (0x7f) => 01111111 => 0x7f
+01001000 (0x12) => 00010010 => 0x12
+11100111 (0xe7) => 11100111 => 0xe7
+00001010 (0x50) => 01010000 => 0x50
+11011101 (0xbb) => 10111011 => 0xbb
+10100100 (0x25) => 00100101 => 0x25
+00110101 (0xac) => 10101100 => 0xac
+01110101 (0xae) => 10101110 => 0xae
+00000010 (0x40) => 01000000 => 0x40
+11010110 (0x6b) => 01101011 => 0x6b
+10010101 (0xa9) => 10101001 => 0xa9
+01100110 (0x66) => 01100110 => 0x66
+11000010 (0x43) => 01000011 => 0x43
+10011111 (0xf9) => 11111001 => 0xf9
+00101011 (0xd4) => 11010100 => 0xd4
+01111110 (0x7e) => 01111110 => 0x7e
+11110001 (0x8f) => 10001111 => 0x8f
+01010110 (0x6a) => 01101010 => 0x6a
+10101010 (0x55) => 01010101 => 0x55
+00000100 (0x20) => 00100000 => 0x20
+01100101 (0xa6) => 10100110 => 0xa6
+10111100 (0x3d) => 00111101 => 0x3d
+00111110 (0x7c) => 01111100 => 0x7c
+01011010 (0x5a) => 01011010 => 0x5a
+00010011 (0xc8) => 11001000 => 0xc8
+00110110 (0x6c) => 01101100 => 0x6c
+10001100 (0x31) => 00110001 => 0x31
+00000100 (0x20) => 00100000 => 0x20
+00001001 (0x90) => 10010000 => 0x90
+01001001 (0x92) => 10010010 => 0x92
+01100011 (0xc6) => 11000110 => 0xc6
+00001101 (0xb0) => 10110000 => 0xb0
+00010100 (0x28) => 00101000 => 0x28
+10100110 (0x65) => 01100101 => 0x65
+11001101 (0xb3) => 10110011 => 0xb3
+10000111 (0xe1) => 11100001 => 0xe1
+11110101 (0xaf) => 10101111 => 0xaf
+00000101 (0xa0) => 10100000 => 0xa0
+01111111 (0xfe) => 11111110 => 0xfe
+10001111 (0xf1) => 11110001 => 0xf1
+11010100 (0x2b) => 00101011 => 0x2b
+10001111 (0xf1) => 11110001 => 0xf1
+00110011 (0xcc) => 11001100 => 0xcc
+10010110 (0x69) => 01101001 => 0x69
+00100000 (0x04) => 00000100 => 0x04
+10111011 (0xdd) => 11011101 => 0xdd
+10010001 (0x89) => 10001001 => 0x89
+10001010 (0x51) => 01010001 => 0x51
+01011001 (0x9a) => 10011010 => 0x9a
+00011010 (0x58) => 01011000 => 0x58
+01001110 (0x72) => 01110010 => 0x72
+00010111 (0xe8) => 11101000 => 0xe8
+11111001 (0x9f) => 10011111 => 0x9f
+01110101 (0xae) => 10101110 => 0xae
+10110111 (0xed) => 11101101 => 0xed
+00000000 (0x00) => 00000000 => 0x00
+11111011 (0xdf) => 11011111 => 0xdf
+10001011 (0xd1) => 11010001 => 0xd1
+10001111 (0xf1) => 11110001 => 0xf1
+01100000 (0x06) => 00000110 => 0x06
+01111001 (0x9e) => 10011110 => 0x9e
+00101010 (0x54) => 01010100 => 0x54
+00111110 (0x7c) => 01111100 => 0x7c
+11010100 (0x2b) => 00101011 => 0x2b
+11101010 (0x57) => 01010111 => 0x57
+00011010 (0x58) => 01011000 => 0x58
+10101001 (0x95) => 10010101 => 0x95
+00111110 (0x7c) => 01111100 => 0x7c
+01111011 (0xde) => 11011110 => 0xde
+00101100 (0x34) => 00110100 => 0x34
+11110010 (0x4f) => 01001111 => 0x4f
+00010011 (0xc8) => 11001000 => 0xc8
+10010100 (0x29) => 00101001 => 0x29
+11000110 (0x63) => 01100011 => 0x63
+01001110 (0x72) => 01110010 => 0x72
+01001000 (0x12) => 00010010 => 0x12
+01011100 (0x3a) => 00111010 => 0x3a
+11010101 (0xab) => 10101011 => 0xab
+11110101 (0xaf) => 10101111 => 0xaf
+00100111 (0xe4) => 11100100 => 0xe4
+01000011 (0xc2) => 11000010 => 0xc2
+11110001 (0x8f) => 10001111 => 0x8f
+00011010 (0x58) => 01011000 => 0x58
+01011000 (0x1a) => 00011010 => 0x1a
+10001011 (0xd1) => 11010001 => 0xd1
+00000001 (0x80) => 10000000 => 0x80
+01101101 (0xb6) => 10110110 => 0xb6
+10111111 (0xfd) => 11111101 => 0xfd
+10010111 (0xe9) => 11101001 => 0xe9
+11001000 (0x13) => 00010011 => 0x13
+11101011 (0xd7) => 11010111 => 0xd7
+00111001 (0x9c) => 10011100 => 0x9c
+10100100 (0x25) => 00100101 => 0x25
+10101000 (0x15) => 00010101 => 0x15
+00001100 (0x30) => 00110000 => 0x30
+01100101 (0xa6) => 10100110 => 0xa6
+11101101 (0xb7) => 10110111 => 0xb7
+11111001 (0x9f) => 10011111 => 0x9f
+11011111 (0xfb) => 11111011 => 0xfb
+00001000 (0x10) => 00010000 => 0x10
+10000011 (0xc1) => 11000001 => 0xc1
+11011011 (0xdb) => 11011011 => 0xdb
+10110010 (0x4d) => 01001101 => 0x4d
+11101100 (0x37) => 00110111 => 0x37
+01010100 (0x2a) => 00101010 => 0x2a
+11110110 (0x6f) => 01101111 => 0x6f
+00110001 (0x8c) => 10001100 => 0x8c
+01001011 (0xd2) => 11010010 => 0xd2
+01001101 (0xb2) => 10110010 => 0xb2
+11100001 (0x87) => 10000111 => 0x87
+01000100 (0x22) => 00100010 => 0x22
+10010101 (0xa9) => 10101001 => 0xa9
+00011100 (0x38) => 00111000 => 0x38
+10110111 (0xed) => 11101101 => 0xed
+01101100 (0x36) => 00110110 => 0x36
+11111001 (0x9f) => 10011111 => 0x9f
+10000110 (0x61) => 01100001 => 0x61
+10100001 (0x85) => 10000101 => 0x85
+00110111 (0xec) => 11101100 => 0xec
+00110101 (0xac) => 10101100 => 0xac
+10101110 (0x75) => 01110101 => 0x75
+10000101 (0xa1) => 10100001 => 0xa1
+10100100 (0x25) => 00100101 => 0x25
+01101111 (0xf6) => 11110110 => 0xf6
+01101011 (0xd6) => 11010110 => 0xd6
+00010000 (0x08) => 00001000 => 0x08
+10011010 (0x59) => 01011001 => 0x59
+00010010 (0x48) => 01001000 => 0x48
+11111000 (0x1f) => 00011111 => 0x1f
+11100011 (0xc7) => 11000111 => 0xc7
+00011000 (0x18) => 00011000 => 0x18
+10110110 (0x6d) => 01101101 => 0x6d
+00010001 (0x88) => 10001000 => 0x88
+10011000 (0x19) => 00011001 => 0x19
+01000111 (0xe2) => 11100010 => 0xe2
+00000000 (0x00) => 00000000 => 0x00
+00001100 (0x30) => 00110000 => 0x30
+10111011 (0xdd) => 11011101 => 0xdd
+00100100 (0x24) => 00100100 => 0x24
+11000010 (0x43) => 01000011 => 0x43
+00110011 (0xcc) => 11001100 => 0xcc
+01111000 (0x1e) => 00011110 => 0x1e
+11110001 (0x8f) => 10001111 => 0x8f
+10111101 (0xbd) => 10111101 => 0xbd
+00010001 (0x88) => 10001000 => 0x88
+11111011 (0xdf) => 11011111 => 0xdf
+10000011 (0xc1) => 11000001 => 0xc1
+01111000 (0x1e) => 00011110 => 0x1e
+01011010 (0x5a) => 01011010 => 0x5a
+01101101 (0xb6) => 10110110 => 0xb6
+01100011 (0xc6) => 11000110 => 0xc6
+00111111 (0xfc) => 11111100 => 0xfc
+01011101 (0xba) => 10111010 => 0xba
+00011001 (0x98) => 10011000 => 0x98
+01010100 (0x2a) => 00101010 => 0x2a
+01101100 (0x36) => 00110110 => 0x36
+10101011 (0xd5) => 11010101 => 0xd5
+11010000 (0x0b) => 00001011 => 0x0b
+01110100 (0x2e) => 00101110 => 0x2e
+01101011 (0xd6) => 11010110 => 0xd6
+00010110 (0x68) => 01101000 => 0x68
+00010000 (0x08) => 00001000 => 0x08
+10001001 (0x91) => 10010001 => 0x91
+01001011 (0xd2) => 11010010 => 0xd2
+00111111 (0xfc) => 11111100 => 0xfc
+11111001 (0x9f) => 10011111 => 0x9f
+01110000 (0x0e) => 00001110 => 0x0e
+00101110 (0x74) => 01110100 => 0x74
+11110100 (0x2f) => 00101111 => 0x2f
+10010111 (0xe9) => 11101001 => 0xe9
+00111100 (0x3c) => 00111100 => 0x3c
+10110000 (0x0d) => 00001101 => 0x0d
+11001001 (0x93) => 10010011 => 0x93
+10100111 (0xe5) => 11100101 => 0xe5
+01001111 (0xf2) => 11110010 => 0xf2
+10111111 (0xfd) => 11111101 => 0xfd
+11111111 (0xff) => 11111111 => 0xff
+01110001 (0x8e) => 10001110 => 0x8e
+10100100 (0x25) => 00100101 => 0x25
+10000011 (0xc1) => 11000001 => 0xc1
+00001111 (0xf0) => 11110000 => 0xf0
+00101110 (0x74) => 01110100 => 0x74
+10110101 (0xad) => 10101101 => 0xad
+00110101 (0xac) => 10101100 => 0xac
+01010101 (0xaa) => 10101010 => 0xaa
+01110110 (0x6e) => 01101110 => 0x6e
+10001100 (0x31) => 00110001 => 0x31
+11110011 (0xcf) => 11001111 => 0xcf
+10101111 (0xf5) => 11110101 => 0xf5
+10010101 (0xa9) => 10101001 => 0xa9
+11010101 (0xab) => 10101011 => 0xab
+10110110 (0x6d) => 01101101 => 0x6d
+11000111 (0xe3) => 11100011 => 0xe3
+11011110 (0x7b) => 01111011 => 0x7b
+10110101 (0xad) => 10101101 => 0xad
+01000001 (0x82) => 10000010 => 0x82
+10101011 (0xd5) => 11010101 => 0xd5
+11100011 (0xc7) => 11000111 => 0xc7
+11000000 (0x03) => 00000011 => 0x03
+00001100 (0x30) => 00110000 => 0x30
+01001101 (0xb2) => 10110010 => 0xb2
+10010000 (0x09) => 00001001 => 0x09
+10001001 (0x91) => 10010001 => 0x91
+11100100 (0x27) => 00100111 => 0x27
+00011100 (0x38) => 00111000 => 0x38
+11111100 (0x3f) => 00111111 => 0x3f
+01001011 (0xd2) => 11010010 => 0xd2
+01001110 (0x72) => 01110010 => 0x72
+01110111 (0xee) => 11101110 => 0xee
+00111010 (0x5c) => 01011100 => 0x5c
+00010011 (0xc8) => 11001000 => 0xc8
+00000010 (0x40) => 01000000 => 0x40
+00011010 (0x58) => 01011000 => 0x58
+01100101 (0xa6) => 10100110 => 0xa6
+10111111 (0xfd) => 11111101 => 0xfd
+10110101 (0xad) => 10101101 => 0xad
+00100111 (0xe4) => 11100100 => 0xe4
+10111011 (0xdd) => 11011101 => 0xdd
+01010000 (0x0a) => 00001010 => 0x0a
+10111011 (0xdd) => 11011101 => 0xdd
+11101010 (0x57) => 01010111 => 0x57
+10000110 (0x61) => 01100001 => 0x61
+01011100 (0x3a) => 00111010 => 0x3a
+00111000 (0x1c) => 00011100 => 0x1c
+00110010 (0x4c) => 01001100 => 0x4c
+11011001 (0x9b) => 10011011 => 0x9b
+00110110 (0x6c) => 01101100 => 0x6c
+10011010 (0x59) => 01011001 => 0x59
+00010111 (0xe8) => 11101000 => 0xe8
+00001110 (0x70) => 01110000 => 0x70
+01001010 (0x52) => 01010010 => 0x52
+01101010 (0x56) => 01010110 => 0x56
+10110110 (0x6d) => 01101101 => 0x6d
+11101011 (0xd7) => 11010111 => 0xd7
+01011011 (0xda) => 11011010 => 0xda
+11101010 (0x57) => 01010111 => 0x57
+10110110 (0x6d) => 01101101 => 0x6d
+11101111 (0xf7) => 11110111 => 0xf7
+00000100 (0x20) => 00100000 => 0x20
+11101011 (0xd7) => 11010111 => 0xd7
+01110110 (0x6e) => 01101110 => 0x6e
+11010000 (0x0b) => 00001011 => 0x0b
+11010000 (0x0b) => 00001011 => 0x0b
+00010001 (0x88) => 10001000 => 0x88
+01110010 (0x4e) => 01001110 => 0x4e
+11000100 (0x23) => 00100011 => 0x23
+10110100 (0x2d) => 00101101 => 0x2d
+10010000 (0x09) => 00001001 => 0x09
+10110001 (0x8d) => 10001101 => 0x8d
+10000010 (0x41) => 01000001 => 0x41
+10000000 (0x01) => 00000001 => 0x01
+01010110 (0x6a) => 01101010 => 0x6a
+00100000 (0x04) => 00000100 => 0x04
+01101001 (0x96) => 10010110 => 0x96
+10110011 (0xcd) => 11001101 => 0xcd
+10010011 (0xc9) => 11001001 => 0xc9
+01101110 (0x76) => 01110110 => 0x76
+01011010 (0x5a) => 01011010 => 0x5a
+00000011 (0xc0) => 11000000 => 0xc0
+00111001 (0x9c) => 10011100 => 0x9c
+01111110 (0x7e) => 01111110 => 0x7e
+01000100 (0x22) => 00100010 => 0x22
+11001000 (0x13) => 00010011 => 0x13
+01110101 (0xae) => 10101110 => 0xae
+00000110 (0x60) => 01100000 => 0x60
+00101000 (0x14) => 00010100 => 0x14
+11010000 (0x0b) => 00001011 => 0x0b
+01101100 (0x36) => 00110110 => 0x36
+00111001 (0x9c) => 10011100 => 0x9c
+00100111 (0xe4) => 11100100 => 0xe4
+00001000 (0x10) => 00010000 => 0x10
+10110010 (0x4d) => 01001101 => 0x4d
+11010011 (0xcb) => 11001011 => 0xcb
+00010000 (0x08) => 00001000 => 0x08
+00110000 (0x0c) => 00001100 => 0x0c
+00100001 (0x84) => 10000100 => 0x84
+11111101 (0xbf) => 10111111 => 0xbf
+00111111 (0xfc) => 11111100 => 0xfc
+01100011 (0xc6) => 11000110 => 0xc6
+01000100 (0x22) => 00100010 => 0x22
+00110111 (0xec) => 11101100 => 0xec
+10011001 (0x99) => 10011001 => 0x99
+10101111 (0xf5) => 11110101 => 0xf5
+11111110 (0x7f) => 01111111 => 0x7f
+00001111 (0xf0) => 11110000 => 0xf0
+11001110 (0x73) => 01110011 => 0x73
+00111100 (0x3c) => 00111100 => 0x3c
+11011010 (0x5b) => 01011011 => 0x5b
+10110001 (0x8d) => 10001101 => 0x8d
+10110000 (0x0d) => 00001101 => 0x0d
+10010000 (0x09) => 00001001 => 0x09
+01100100 (0x26) => 00100110 => 0x26
+11001100 (0x33) => 00110011 => 0x33
+10111100 (0x3d) => 00111101 => 0x3d
+01110001 (0x8e) => 10001110 => 0x8e
+11000000 (0x03) => 00000011 => 0x03
+01000100 (0x22) => 00100010 => 0x22
+01010000 (0x0a) => 00001010 => 0x0a
+00010010 (0x48) => 01001000 => 0x48
+11100100 (0x27) => 00100111 => 0x27
+11000110 (0x63) => 01100011 => 0x63
+11011100 (0x3b) => 00111011 => 0x3b
+10101000 (0x15) => 00010101 => 0x15
+00101111 (0xf4) => 11110100 => 0xf4
+10000010 (0x41) => 01000001 => 0x41
+00101101 (0xb4) => 10110100 => 0xb4
+11011011 (0xdb) => 11011011 => 0xdb
+11011111 (0xfb) => 11111011 => 0xfb
+10010101 (0xa9) => 10101001 => 0xa9
+00110101 (0xac) => 10101100 => 0xac
+01010000 (0x0a) => 00001010 => 0x0a
+11000011 (0xc3) => 11000011 => 0xc3
+01010010 (0x4a) => 01001010 => 0x4a
+10010100 (0x29) => 00101001 => 0x29
+01101010 (0x56) => 01010110 => 0x56
+00001110 (0x70) => 01110000 => 0x70
+00111010 (0x5c) => 01011100 => 0x5c
+10010010 (0x49) => 01001001 => 0x49
+11000011 (0xc3) => 11000011 => 0xc3
+11101110 (0x77) => 01110111 => 0x77
+00110000 (0x0c) => 00001100 => 0x0c
+11101111 (0xf7) => 11110111 => 0xf7
+01010111 (0xea) => 11101010 => 0xea
+11101001 (0x97) => 10010111 => 0x97
+10110100 (0x2d) => 00101101 => 0x2d
+11110010 (0x4f) => 01001111 => 0x4f
+11101101 (0xb7) => 10110111 => 0xb7
+01101110 (0x76) => 01110110 => 0x76
+01101010 (0x56) => 01010110 => 0x56
+11110010 (0x4f) => 01001111 => 0x4f
+10100011 (0xc5) => 11000101 => 0xc5
+01011010 (0x5a) => 01011010 => 0x5a
+11110110 (0x6f) => 01101111 => 0x6f
+11011101 (0xbb) => 10111011 => 0xbb
+10100100 (0x25) => 00100101 => 0x25
+10010000 (0x09) => 00001001 => 0x09
+10111111 (0xfd) => 11111101 => 0xfd
+10001011 (0xd1) => 11010001 => 0xd1
+01000111 (0xe2) => 11100010 => 0xe2
+11011111 (0xfb) => 11111011 => 0xfb
+10000101 (0xa1) => 10100001 => 0xa1
+11110100 (0x2f) => 00101111 => 0x2f
+01011001 (0x9a) => 10011010 => 0x9a
+01110100 (0x2e) => 00101110 => 0x2e
+01110101 (0xae) => 10101110 => 0xae
+00100000 (0x04) => 00000100 => 0x04
+01000010 (0x42) => 01000010 => 0x42
+11010011 (0xcb) => 11001011 => 0xcb
+01111001 (0x9e) => 10011110 => 0x9e
+10011101 (0xb9) => 10111001 => 0xb9
+00100010 (0x44) => 01000100 => 0x44
+01011110 (0x7a) => 01111010 => 0x7a
+10100101 (0xa5) => 10100101 => 0xa5
+10000111 (0xe1) => 11100001 => 0xe1
+01001000 (0x12) => 00010010 => 0x12
+11101100 (0x37) => 00110111 => 0x37
+01001110 (0x72) => 01110010 => 0x72
+10010100 (0x29) => 00101001 => 0x29
+00111111 (0xfc) => 11111100 => 0xfc
+11100000 (0x07) => 00000111 => 0x07
+01010100 (0x2a) => 00101010 => 0x2a
+10101101 (0xb5) => 10110101 => 0xb5
+10100000 (0x05) => 00000101 => 0x05
+10011010 (0x59) => 01011001 => 0x59
+11100111 (0xe7) => 11100111 => 0xe7
+01001011 (0xd2) => 11010010 => 0xd2
+01100110 (0x66) => 01100110 => 0x66
+11000001 (0x83) => 10000011 => 0x83
+01111101 (0xbe) => 10111110 => 0xbe
+11010101 (0xab) => 10101011 => 0xab
+00011110 (0x78) => 01111000 => 0x78
+11001001 (0x93) => 10010011 => 0x93
+01100100 (0x26) => 00100110 => 0x26
+10010110 (0x69) => 01101001 => 0x69
+11100100 (0x27) => 00100111 => 0x27
+10001000 (0x11) => 00010001 => 0x11
+11010100 (0x2b) => 00101011 => 0x2b
+00000000 (0x00) => 00000000 => 0x00
+10001010 (0x51) => 01010001 => 0x51
+11110110 (0x6f) => 01101111 => 0x6f
+00101010 (0x54) => 01010100 => 0x54
+10111010 (0x5d) => 01011101 => 0x5d
+00110111 (0xec) => 11101100 => 0xec
+00111010 (0x5c) => 01011100 => 0x5c
+11100010 (0x47) => 01000111 => 0x47
+01010001 (0x8a) => 10001010 => 0x8a
+00111010 (0x5c) => 01011100 => 0x5c
+00100000 (0x04) => 00000100 => 0x04
+00101110 (0x74) => 01110100 => 0x74
+10100000 (0x05) => 00000101 => 0x05
+10110001 (0x8d) => 10001101 => 0x8d
+10110100 (0x2d) => 00101101 => 0x2d
+01100100 (0x26) => 00100110 => 0x26
+01011001 (0x9a) => 10011010 => 0x9a
+10111111 (0xfd) => 11111101 => 0xfd
+11101010 (0x57) => 01010111 => 0x57
+11101111 (0xf7) => 11110111 => 0xf7
+10010010 (0x49) => 01001001 => 0x49
+10000110 (0x61) => 01100001 => 0x61
+10000010 (0x41) => 01000001 => 0x41
+00100110 (0x64) => 01100100 => 0x64
+00111100 (0x3c) => 00111100 => 0x3c
+00100000 (0x04) => 00000100 => 0x04
+10000110 (0x61) => 01100001 => 0x61
+01010100 (0x2a) => 00101010 => 0x2a
+10000100 (0x21) => 00100001 => 0x21
+11000110 (0x63) => 01100011 => 0x63
+10100101 (0xa5) => 10100101 => 0xa5
+10100101 (0xa5) => 10100101 => 0xa5
+00011101 (0xb8) => 10111000 => 0xb8
+00110110 (0x6c) => 01101100 => 0x6c
+01101000 (0x16) => 00010110 => 0x16
+00000010 (0x40) => 01000000 => 0x40
+00000110 (0x60) => 01100000 => 0x60
+11011001 (0x9b) => 10011011 => 0x9b
+11110110 (0x6f) => 01101111 => 0x6f
+00010111 (0xe8) => 11101000 => 0xe8
+11010000 (0x0b) => 00001011 => 0x0b
+00111001 (0x9c) => 10011100 => 0x9c
+00000101 (0xa0) => 10100000 => 0xa0
+11111011 (0xdf) => 11011111 => 0xdf
+11110001 (0x8f) => 10001111 => 0x8f
+00101010 (0x54) => 01010100 => 0x54
+01100011 (0xc6) => 11000110 => 0xc6
+11100111 (0xe7) => 11100111 => 0xe7
+11010111 (0xeb) => 11101011 => 0xeb
+10001000 (0x11) => 00010001 => 0x11
+11101101 (0xb7) => 10110111 => 0xb7
+01110100 (0x2e) => 00101110 => 0x2e
+01000111 (0xe2) => 11100010 => 0xe2
+10001000 (0x11) => 00010001 => 0x11
+01000000 (0x02) => 00000010 => 0x02
+01000101 (0xa2) => 10100010 => 0xa2
+10001010 (0x51) => 01010001 => 0x51
+10111010 (0x5d) => 01011101 => 0x5d
+10101011 (0xd5) => 11010101 => 0xd5
+00111011 (0xdc) => 11011100 => 0xdc
+11011101 (0xbb) => 10111011 => 0xbb
+00100101 (0xa4) => 10100100 => 0xa4
+01111111 (0xfe) => 11111110 => 0xfe
+11110100 (0x2f) => 00101111 => 0x2f \
+01100100 (0x26) => 00100110 => 0x26 |
+10100010 (0x45) => 01000101 => 0x45 |
+11100110 (0x67) => 01100111 => 0x67 / CRC32 = 0x6745262f
+
+31.72.53.e9.c0.85.80.2b.88.c1.14.dd.f4.a2.02.40.4e.91.af.7b.d0.b8.7d.c6.c0.20.94.6f.1e.68.53.35.f2.3e.dd.b8.8f.1b.fa.97.fe.66.80.56.f9.8b.af.60.4d.13.8f.32.04.0b.ac.0b.f4.49.1f.e7.d6.86.af.f0.9c.77.ad.81.79.68.87.35.6c.d9.4f.66.7f.12.e7.50.bb.25.ac.ae.40.6b.a9.66.43.f9.d4.7e.8f.6a.55.20.a6.3d.7c.5a.c8.6c.31.20.90.92.c6.b0.28.65.b3.e1.af.a0.fe.f1.2b.f1.cc.69.04.dd.89.51.9a.58.72.e8.9f.ae.ed.00.df.d1.f1.06.9e.54.7c.2b.57.58.95.7c.de.34.4f.c8.29.63.72.12.3a.ab.af.e4.c2.8f.58.1a.d1.80.b6.fd.e9.13.d7.9c.25.15.30.a6.b7.9f.fb.10.c1.db.4d.37.2a.6f.8c.d2.b2.87.22.a9.38.ed.36.9f.61.85.ec.ac.75.a1.25.f6.d6.08.59.48.1f.c7.18.6d.88.19.e2.00.30.dd.24.43.cc.1e.8f.bd.88.df.c1.1e.5a.b6.c6.fc.ba.98.2a.36.d5.0b.2e.d6.68.08.91.d2.fc.9f.0e.74.2f.e9.3c.0d.93.e5.f2.fd.ff.8e.25.c1.f0.74.ad.ac.aa.6e.31.cf.f5.a9.ab.6d.e3.7b.ad.82.d5.c7.03.30.b2.09.91.27.38.3f.d2.72.ee.5c.c8.40.58.a6.fd.ad.e4.dd.0a.dd.57.61.3a.1c.4c.9b.6c.59.e8.70.52.56.6d.d7.da.57.6d.f7.20.d7.6e.0b.0b.88.4e.23.2d.09.8d.41.01.6a.04.96.cd.c9.76.5a.c0.9c.7e.22.13.ae.60.14.0b.36.9c.e4.10.4d.cb.08.0c.84.bf.fc.c6.22.ec.99.f5.7f.f0.73.3c.5b.8d.0d.09.26.33.3d.8e.03.22.0a.48.27.63.3b.15.f4.41.b4.db.fb.a9.ac.0a.c3.4a.29.56.70.5c.49.c3.77.0c.f7.ea.97.2d.4f.b7.76.56.4f.c5.5a.6f.bb.25.09.fd.d1.e2.fb.a1.2f.9a.2e.ae.04.42.cb.9e.b9.44.7a.a5.e1.12.37.72.29.fc.07.2a.b5.05.59.e7.d2.66.83.be.ab.78.93.26.69.27.11.2b.00.51.6f.54.5d.ec.5c.47.8a.5c.04.74.05.8d.2d.26.9a.fd.57.f7.49.61.41.64.3c.04.61.2a.21.63.a5.a5.b8.6c.16.40.60.9b.6f.e8.0b.9c.a0.df.8f.54.c6.e7.eb.11.b7.2e.e2.11.02.a2.51.5d.d5.dc.bb.a4.fe.2f.26.45.67.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804b6c0 -s 520 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+running suite: crc
+src/test_crc.c:657:F:hpav vectors:pbenc6 tx: CRC mismatch 0xacbc616c != 0x6745262f
+src/test_crc.c:674:F:hpav vectors:pbenc6 rx: received CRC not good: 0x14f8f246 != 0x2144df1c
+96%, tests: 53, failures: 2
+taille buffer (payload) = 520 (516 octets utiles + CRC32)
+31.72.53.e9.c0.85.80.2b.88.c1.14.dd.f4.a2.02.40.4e.91.af.7b.d0.b8.7d.c6.c0.20.94.6f.1e.68.53.35.f2.3e.dd.b8.8f.1b.fa.97.fe.66.80.56.f9.8b.af.60.4d.13.8f.32.04.0b.ac.0b.f4.49.1f.e7.d6.86.af.f0.9c.77.ad.81.79.68.87.35.6c.d9.4f.66.7f.12.e7.50.bb.25.ac.ae.40.6b.a9.66.43.f9.d4.7e.8f.6a.55.20.a6.3d.7c.5a.c8.6c.31.20.90.92.c6.b0.28.65.b3.e1.af.a0.fe.f1.2b.f1.cc.69.04.dd.89.51.9a.58.72.e8.9f.ae.ed.00.df.d1.f1.06.9e.54.7c.2b.57.58.95.7c.de.34.4f.c8.29.63.72.12.3a.ab.af.e4.c2.8f.58.1a.d1.80.b6.fd.e9.13.d7.9c.25.15.30.a6.b7.9f.fb.10.c1.db.4d.37.2a.6f.8c.d2.b2.87.22.a9.38.ed.36.9f.61.85.ec.ac.75.a1.25.f6.d6.08.59.48.1f.c7.18.6d.88.19.e2.00.30.dd.24.43.cc.1e.8f.bd.88.df.c1.1e.5a.b6.c6.fc.ba.98.2a.36.d5.0b.2e.d6.68.08.91.d2.fc.9f.0e.74.2f.e9.3c.0d.93.e5.f2.fd.ff.8e.25.c1.f0.74.ad.ac.aa.6e.31.cf.f5.a9.ab.6d.e3.7b.ad.82.d5.c7.03.30.b2.09.91.27.38.3f.d2.72.ee.5c.c8.40.58.a6.fd.ad.e4.dd.0a.dd.57.61.3a.1c.4c.9b.6c.59.e8.70.52.56.6d.d7.da.57.6d.f7.20.d7.6e.0b.0b.88.4e.23.2d.09.8d.41.01.6a.04.96.cd.c9.76.5a.c0.9c.7e.22.13.ae.60.14.0b.36.9c.e4.10.4d.cb.08.0c.84.bf.fc.c6.22.ec.99.f5.7f.f0.73.3c.5b.8d.0d.09.26.33.3d.8e.03.22.0a.48.27.63.3b.15.f4.41.b4.db.fb.a9.ac.0a.c3.4a.29.56.70.5c.49.c3.77.0c.f7.ea.97.2d.4f.b7.76.56.4f.c5.5a.6f.bb.25.09.fd.d1.e2.fb.a1.2f.9a.2e.ae.04.42.cb.9e.b9.44.7a.a5.e1.12.37.72.29.fc.07.2a.b5.05.59.e7.d2.66.83.be.ab.78.93.26.69.27.11.2b.00.51.6f.54.5d.ec.5c.47.8a.5c.04.74.05.8d.2d.26.9a.fd.57.f7.49.61.41.64.3c.04.61.2a.21.63.a5.a5.b8.6c.16.40.60.9b.6f.e8.0b.9c.a0.df.8f.54.c6.e7.eb.11.b7.2e.e2.11.02.a2.51.5d.d5.dc.bb.a4.fe.2f.26.45.67.
+CRC32 expected = 0x6745262f
+
+
diff --git a/cesar/tools/hpav_decode/data/S19_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S19_BEACON_decod.txt
index 8a006e3aab..1d5763488a 100644
--- a/cesar/tools/hpav_decode/data/S19_BEACON_decod.txt
+++ b/cesar/tools/hpav_decode/data/S19_BEACON_decod.txt
@@ -1,6 +1,6 @@
HomePlug AV FRAME CONTROL :
-00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0100---- SNID = 4
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
11011001 (0x9b) => 10011011 => 0x9b \
11110010 (0x4f) => 01001111 => 0x4f |
11000101 (0xa3) => 10100011 => 0xa3 |
@@ -8,11 +8,11 @@ HomePlug AV FRAME CONTROL :
01111100 (0x3e) => 00111110 => 0x3e \
00000000 (0x00) => 00000000 => 0x00 / BTO(0) = 0x003e (62)
11011011 (0xdb) => 11011011 => 0xdb \
-11111111 (0xff) => 11111111 => 0xff / BTO(1) = 0xffdb (65499)
+11111111 (0xff) => 11111111 => 0xff / BTO(1) = 0xffdb (-37)
10101110 (0x75) => 01110101 => 0x75 \
-11111111 (0xff) => 11111111 => 0xff / BTO(2) = 0xff75 (65397)
+11111111 (0xff) => 11111111 => 0xff / BTO(2) = 0xff75 (-139)
10100011 (0xc5) => 11000101 => 0xc5 \
-10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfdc5 (64965)
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfdc5 (-571)
10000011 (0xc1) => 11000001 => 0xc1 \
00100010 (0x44) => 01000100 => 0x44 |
01101110 (0x76) => 01110110 => 0x76 / CRC24 = 0x7644c1
@@ -20,7 +20,7 @@ HomePlug AV FRAME CONTROL :
40.9b.4f.a3.96.3e.00.db.ff.75.ff.c5.fd.c1.44.76.
Lancement processus de test CRC :
- ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804a640 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
running suite: crc
100%, tests: 53, failures: 0
taille buffer (frame control) = 16 (13 octets utiles + CRC24)
@@ -30,18 +30,18 @@ CRC24 expected = 0x007644c1
HomePlug AV PAYLOAD :
-01000000 (0x02) => 00000010 => 0x02
-11010110 (0x6b) => 01101011 => 0x6b
-11010011 (0xcb) => 11001011 => 0xcb
-10100101 (0xa5) => 10100101 => 0xa5
-10101100 (0x35) => 00110101 => 0x35
-01110010 (0x4e) => 01001110 => 0x4e
-00010001 (0x88) => 10001000 => 0x88
-10000000 (0x01) => 00000001 => 0x01
-00000000 (0x00) => 00000000 => 0x00
-10000000 (0x01) => 00000001 => 0x01
-00000000 (0x00) => 00000000 => 0x00
-01000000 (0x02) => 00000010 => 0x02
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+10000000 (0x01) => 00000001 => 0x01 > STEI = 1 (0x01)
+00000000 (0x00) => 00000000 => 0x00 > -----000 BT = 0 (Central Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
00100000 (0x04) => 00000100 => 0x04
10000000 (0x01) => 00000001 => 0x01
01100000 (0x06) => 00000110 => 0x06
@@ -162,15 +162,15 @@ HomePlug AV PAYLOAD :
00000000 (0x00) => 00000000 => 0x00
00000000 (0x00) => 00000000 => 0x00
00000000 (0x00) => 00000000 => 0x00
-10110000 (0x0d) => 00001101 => 0x0d
-00111000 (0x1c) => 00011100 => 0x1c
-11110101 (0xaf) => 10101111 => 0xaf
-10100011 (0xc5) => 11000101 => 0xc5
+10110000 (0x0d) => 00001101 => 0x0d \
+00111000 (0x1c) => 00011100 => 0x1c |
+11110101 (0xaf) => 10101111 => 0xaf |
+10100011 (0xc5) => 11000101 => 0xc5 / CRC32 = 0xc5af1c0d
02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.30.f4.02.05.02.45.03.31.f4.03.06.00.0b.3b.1c.66.da.06.03.4b.09.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.0d.1c.af.c5.
Lancement processus de test CRC :
- ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804a640 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
running suite: crc
100%, tests: 53, failures: 0
taille buffer (payload) = 136 (132 octets utiles + CRC32)
diff --git a/cesar/tools/hpav_decode/data/S20_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S20_BEACON_decod.txt
index f5018e9344..42f97a1a87 100644
--- a/cesar/tools/hpav_decode/data/S20_BEACON_decod.txt
+++ b/cesar/tools/hpav_decode/data/S20_BEACON_decod.txt
@@ -1,18 +1,18 @@
HomePlug AV FRAME CONTROL :
-00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0100---- SNID = 4
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
10010111 (0xe9) => 11101001 => 0xe9 \
10001001 (0x91) => 10010001 => 0x91 |
01001101 (0xb2) => 10110010 => 0xb2 |
01101001 (0x96) => 10010110 => 0x96 / BTS = 0x96b291e9 (2528285161)
10111001 (0x9d) => 10011101 => 0x9d \
-11111111 (0xff) => 11111111 => 0xff / BTO(0) = 0xff9d (65437)
+11111111 (0xff) => 11111111 => 0xff / BTO(0) = 0xff9d (-99)
11101100 (0x37) => 00110111 => 0x37 \
-11111111 (0xff) => 11111111 => 0xff / BTO(1) = 0xff37 (65335)
+11111111 (0xff) => 11111111 => 0xff / BTO(1) = 0xff37 (-201)
11100001 (0x87) => 10000111 => 0x87 \
-10111111 (0xfd) => 11111101 => 0xfd / BTO(2) = 0xfd87 (64903)
+10111111 (0xfd) => 11111101 => 0xfd / BTO(2) = 0xfd87 (-633)
11000011 (0xc3) => 11000011 => 0xc3 \
-10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfdc3 (64963)
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfdc3 (-573)
00100110 (0x64) => 01100100 => 0x64 \
10010000 (0x09) => 00001001 => 0x09 |
11101011 (0xd7) => 11010111 => 0xd7 / CRC24 = 0xd70964
@@ -20,7 +20,7 @@ HomePlug AV FRAME CONTROL :
40.e9.91.b2.96.9d.ff.37.ff.87.fd.c3.fd.64.09.d7.
Lancement processus de test CRC :
- ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804a640 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
running suite: crc
100%, tests: 53, failures: 0
taille buffer (frame control) = 16 (13 octets utiles + CRC24)
@@ -30,18 +30,18 @@ CRC24 expected = 0x00d70964
HomePlug AV PAYLOAD :
-01000000 (0x02) => 00000010 => 0x02
-11010110 (0x6b) => 01101011 => 0x6b
-11010011 (0xcb) => 11001011 => 0xcb
-10100101 (0xa5) => 10100101 => 0xa5
-10101100 (0x35) => 00110101 => 0x35
-01110010 (0x4e) => 01001110 => 0x4e
-00010001 (0x88) => 10001000 => 0x88
-10000000 (0x01) => 00000001 => 0x01
-00000000 (0x00) => 00000000 => 0x00
-10000000 (0x01) => 00000001 => 0x01
-00000000 (0x00) => 00000000 => 0x00
-01000000 (0x02) => 00000010 => 0x02
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+10000000 (0x01) => 00000001 => 0x01 > STEI = 1 (0x01)
+00000000 (0x00) => 00000000 => 0x00 > -----000 BT = 0 (Central Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
00100000 (0x04) => 00000100 => 0x04
10000000 (0x01) => 00000001 => 0x01
01100000 (0x06) => 00000110 => 0x06
@@ -162,15 +162,15 @@ HomePlug AV PAYLOAD :
00000000 (0x00) => 00000000 => 0x00
00000000 (0x00) => 00000000 => 0x00
00000000 (0x00) => 00000000 => 0x00
-10101000 (0x15) => 00010101 => 0x15
-11011111 (0xfb) => 11111011 => 0xfb
-10001100 (0x31) => 00110001 => 0x31
-01010001 (0x8a) => 10001010 => 0x8a
+10101000 (0x15) => 00010101 => 0x15 \
+11011111 (0xfb) => 11111011 => 0xfb |
+10001100 (0x31) => 00110001 => 0x31 |
+01010001 (0x8a) => 10001010 => 0x8a / CRC32 = 0x8a31fb15
02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.20.f4.02.05.02.45.03.21.f4.03.06.00.0b.3b.1c.66.da.06.03.1b.09.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.15.fb.31.8a.
Lancement processus de test CRC :
- ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804a640 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
running suite: crc
100%, tests: 53, failures: 0
taille buffer (payload) = 136 (132 octets utiles + CRC32)
diff --git a/cesar/tools/hpav_decode/data/S21_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S21_BEACON_decod.txt
index 1c5d3d260f..a56a1c86c6 100644
--- a/cesar/tools/hpav_decode/data/S21_BEACON_decod.txt
+++ b/cesar/tools/hpav_decode/data/S21_BEACON_decod.txt
@@ -1,18 +1,18 @@
HomePlug AV FRAME CONTROL :
-00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0100---- SNID = 4
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
11000111 (0xe3) => 11100011 => 0xe3 \
11000111 (0xe3) => 11100011 => 0xe3 |
10000011 (0xc1) => 11000001 => 0xc1 |
01101001 (0x96) => 10010110 => 0x96 / BTS = 0x96c1e3e3 (2529289187)
01011001 (0x9a) => 10011010 => 0x9a \
-11111111 (0xff) => 11111111 => 0xff / BTO(0) = 0xff9a (65434)
+11111111 (0xff) => 11111111 => 0xff / BTO(0) = 0xff9a (-102)
01010111 (0xea) => 11101010 => 0xea \
-10111111 (0xfd) => 11111101 => 0xfd / BTO(1) = 0xfdea (65002)
+10111111 (0xfd) => 11111101 => 0xfd / BTO(1) = 0xfdea (-534)
01100100 (0x26) => 00100110 => 0x26 \
-01111111 (0xfe) => 11111110 => 0xfe / BTO(2) = 0xfe26 (65062)
+01111111 (0xfe) => 11111110 => 0xfe / BTO(2) = 0xfe26 (-474)
11111101 (0xbf) => 10111111 => 0xbf \
-10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfdbf (64959)
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfdbf (-577)
10011110 (0x79) => 01111001 => 0x79 \
11101110 (0x77) => 01110111 => 0x77 |
10110110 (0x6d) => 01101101 => 0x6d / CRC24 = 0x6d7779
@@ -20,7 +20,7 @@ HomePlug AV FRAME CONTROL :
40.e3.e3.c1.96.9a.ff.ea.fd.26.fe.bf.fd.79.77.6d.
Lancement processus de test CRC :
- ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804a640 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
running suite: crc
100%, tests: 53, failures: 0
taille buffer (frame control) = 16 (13 octets utiles + CRC24)
@@ -30,18 +30,18 @@ CRC24 expected = 0x006d7779
HomePlug AV PAYLOAD :
-01000000 (0x02) => 00000010 => 0x02
-11010110 (0x6b) => 01101011 => 0x6b
-11010011 (0xcb) => 11001011 => 0xcb
-10100101 (0xa5) => 10100101 => 0xa5
-10101100 (0x35) => 00110101 => 0x35
-01110010 (0x4e) => 01001110 => 0x4e
-00010001 (0x88) => 10001000 => 0x88
-10000000 (0x01) => 00000001 => 0x01
-00000000 (0x00) => 00000000 => 0x00
-10000000 (0x01) => 00000001 => 0x01
-00000000 (0x00) => 00000000 => 0x00
-01000000 (0x02) => 00000010 => 0x02
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+10000000 (0x01) => 00000001 => 0x01 > STEI = 1 (0x01)
+00000000 (0x00) => 00000000 => 0x00 > -----000 BT = 0 (Central Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
00100000 (0x04) => 00000100 => 0x04
10000000 (0x01) => 00000001 => 0x01
01100000 (0x06) => 00000110 => 0x06
@@ -162,15 +162,15 @@ HomePlug AV PAYLOAD :
00000000 (0x00) => 00000000 => 0x00
00000000 (0x00) => 00000000 => 0x00
00000000 (0x00) => 00000000 => 0x00
-11100101 (0xa7) => 10100111 => 0xa7
-10000000 (0x01) => 00000001 => 0x01
-01111001 (0x9e) => 10011110 => 0x9e
-11010000 (0x0b) => 00001011 => 0x0b
+11100101 (0xa7) => 10100111 => 0xa7 \
+10000000 (0x01) => 00000001 => 0x01 |
+01111001 (0x9e) => 10011110 => 0x9e |
+11010000 (0x0b) => 00001011 => 0x0b / CRC32 = 0x0b9e01a7
02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.20.f4.02.05.02.45.03.21.f4.03.06.00.0b.3b.1c.66.da.06.03.38.19.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.a7.01.9e.0b.
Lancement processus de test CRC :
- ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804a640 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
running suite: crc
100%, tests: 53, failures: 0
taille buffer (payload) = 136 (132 octets utiles + CRC32)
diff --git a/cesar/tools/hpav_decode/data/S22_BEACON_FC.txt b/cesar/tools/hpav_decode/data/S22_BEACON_FC.txt
new file mode 100644
index 0000000000..c522a4329e
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S22_BEACON_FC.txt
@@ -0,0 +1,128 @@
+0
+0
+0
+0
+0
+0
+1
+0
+0
+1
+1
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+1
+1
+0
+1
+0
+0
+1
+0
+0
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
diff --git a/cesar/tools/hpav_decode/data/S22_BEACON_PLD.txt b/cesar/tools/hpav_decode/data/S22_BEACON_PLD.txt
new file mode 100644
index 0000000000..235e1d7574
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S22_BEACON_PLD.txt
@@ -0,0 +1,1088 @@
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+1
+1
+1
+0
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+0
+0
+1
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
diff --git a/cesar/tools/hpav_decode/data/S22_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S22_BEACON_decod.txt
new file mode 100644
index 0000000000..fafb241431
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S22_BEACON_decod.txt
@@ -0,0 +1,180 @@
+HomePlug AV FRAME CONTROL :
+
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
+01111101 (0xbe) => 10111110 => 0xbe \
+10101000 (0x15) => 00010101 => 0x15 |
+10001011 (0xd1) => 11010001 => 0xd1 |
+01101001 (0x96) => 10010110 => 0x96 / BTS = 0x96d115be (2530284990)
+00001010 (0x50) => 01010000 => 0x50 \
+01111111 (0xfe) => 11111110 => 0xfe / BTO(0) = 0xfe50 (-432)
+00110001 (0x8c) => 10001100 => 0x8c \
+01111111 (0xfe) => 11111110 => 0xfe / BTO(1) = 0xfe8c (-372)
+10100100 (0x25) => 00100101 => 0x25 \
+01111111 (0xfe) => 11111110 => 0xfe / BTO(2) = 0xfe25 (-475)
+11001101 (0xb3) => 10110011 => 0xb3 \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfdb3 (-589)
+11101100 (0x37) => 00110111 => 0x37 \
+10110000 (0x0d) => 00001101 => 0x0d |
+01011101 (0xba) => 10111010 => 0xba / CRC24 = 0xba0d37
+
+40.be.15.d1.96.50.fe.8c.fe.25.fe.b3.fd.37.0d.ba.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (frame control) = 16 (13 octets utiles + CRC24)
+40.be.15.d1.96.50.fe.8c.fe.25.fe.b3.fd.37.0d.ba.
+CRC24 expected = 0x00ba0d37
+
+
+HomePlug AV PAYLOAD :
+
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+10000000 (0x01) => 00000001 => 0x01 > STEI = 1 (0x01)
+00000000 (0x00) => 00000000 => 0x00 > -----000 BT = 0 (Central Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
+00100000 (0x04) => 00000100 => 0x04
+10000000 (0x01) => 00000001 => 0x01
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+10000000 (0x01) => 00000001 => 0x01
+10111111 (0xfd) => 11111101 => 0xfd
+00101100 (0x34) => 00110100 => 0x34
+00001000 (0x10) => 00010000 => 0x10
+00101111 (0xf4) => 11110100 => 0xf4
+01000000 (0x02) => 00000010 => 0x02
+10100000 (0x05) => 00000101 => 0x05
+01000000 (0x02) => 00000010 => 0x02
+10100010 (0x45) => 01000101 => 0x45
+11000000 (0x03) => 00000011 => 0x03
+10001000 (0x11) => 00010001 => 0x11
+00101111 (0xf4) => 11110100 => 0xf4
+11000000 (0x03) => 00000011 => 0x03
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+11010000 (0x0b) => 00001011 => 0x0b
+11011100 (0x3b) => 00111011 => 0x3b
+00111000 (0x1c) => 00011100 => 0x1c
+01100110 (0x66) => 01100110 => 0x66
+01011011 (0xda) => 11011010 => 0xda
+01100000 (0x06) => 00000110 => 0x06
+11000000 (0x03) => 00000011 => 0x03
+10011100 (0x39) => 00111001 => 0x39
+10010000 (0x09) => 00001001 => 0x09
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+01101010 (0x56) => 01010110 => 0x56 \
+00100100 (0x24) => 00100100 => 0x24 |
+10100000 (0x05) => 00000101 => 0x05 |
+00000011 (0xc0) => 11000000 => 0xc0 / CRC32 = 0xc0052456
+
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.10.f4.02.05.02.45.03.11.f4.03.06.00.0b.3b.1c.66.da.06.03.39.09.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.56.24.05.c0.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (payload) = 136 (132 octets utiles + CRC32)
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.10.f4.02.05.02.45.03.11.f4.03.06.00.0b.3b.1c.66.da.06.03.39.09.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.56.24.05.c0.
+CRC32 expected = 0xc0052456
+
+
diff --git a/cesar/tools/hpav_decode/data/S23_BEACON_FC.txt b/cesar/tools/hpav_decode/data/S23_BEACON_FC.txt
new file mode 100644
index 0000000000..e4e42146bc
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S23_BEACON_FC.txt
@@ -0,0 +1,128 @@
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+0
+0
+1
+1
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
diff --git a/cesar/tools/hpav_decode/data/S23_BEACON_PLD.txt b/cesar/tools/hpav_decode/data/S23_BEACON_PLD.txt
new file mode 100644
index 0000000000..8f27771bd2
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S23_BEACON_PLD.txt
@@ -0,0 +1,1088 @@
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+0
+0
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
diff --git a/cesar/tools/hpav_decode/data/S23_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S23_BEACON_decod.txt
new file mode 100644
index 0000000000..346820d2cb
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S23_BEACON_decod.txt
@@ -0,0 +1,180 @@
+HomePlug AV FRAME CONTROL :
+
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
+11011101 (0xbb) => 10111011 => 0xbb \
+11011010 (0x5b) => 01011011 => 0x5b |
+00000111 (0xe0) => 11100000 => 0xe0 |
+01101001 (0x96) => 10010110 => 0x96 / BTS = 0x96e05bbb (2531285947)
+00111100 (0x3c) => 00111100 => 0x3c \
+00000000 (0x00) => 00000000 => 0x00 / BTO(0) = 0x003c (60)
+10101011 (0xd5) => 11010101 => 0xd5 \
+11111111 (0xff) => 11111111 => 0xff / BTO(1) = 0xffd5 (-43)
+11000110 (0x63) => 01100011 => 0x63 \
+11111111 (0xff) => 11111111 => 0xff / BTO(2) = 0xff63 (-157)
+11001101 (0xb3) => 10110011 => 0xb3 \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfdb3 (-589)
+11011101 (0xbb) => 10111011 => 0xbb \
+10011100 (0x39) => 00111001 => 0x39 |
+11011011 (0xdb) => 11011011 => 0xdb / CRC24 = 0xdb39bb
+
+40.bb.5b.e0.96.3c.00.d5.ff.63.ff.b3.fd.bb.39.db.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (frame control) = 16 (13 octets utiles + CRC24)
+40.bb.5b.e0.96.3c.00.d5.ff.63.ff.b3.fd.bb.39.db.
+CRC24 expected = 0x00db39bb
+
+
+HomePlug AV PAYLOAD :
+
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+10000000 (0x01) => 00000001 => 0x01 > STEI = 1 (0x01)
+00000000 (0x00) => 00000000 => 0x00 > -----000 BT = 0 (Central Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
+00100000 (0x04) => 00000100 => 0x04
+10000000 (0x01) => 00000001 => 0x01
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+10000000 (0x01) => 00000001 => 0x01
+10111111 (0xfd) => 11111101 => 0xfd
+00101100 (0x34) => 00110100 => 0x34
+00001100 (0x30) => 00110000 => 0x30
+00101111 (0xf4) => 11110100 => 0xf4
+01000000 (0x02) => 00000010 => 0x02
+10100000 (0x05) => 00000101 => 0x05
+01000000 (0x02) => 00000010 => 0x02
+10100010 (0x45) => 01000101 => 0x45
+11000000 (0x03) => 00000011 => 0x03
+10001100 (0x31) => 00110001 => 0x31
+00101111 (0xf4) => 11110100 => 0xf4
+11000000 (0x03) => 00000011 => 0x03
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+11010000 (0x0b) => 00001011 => 0x0b
+11011100 (0x3b) => 00111011 => 0x3b
+00111000 (0x1c) => 00011100 => 0x1c
+01100110 (0x66) => 01100110 => 0x66
+01011011 (0xda) => 11011010 => 0xda
+01100000 (0x06) => 00000110 => 0x06
+11000000 (0x03) => 00000011 => 0x03
+01100101 (0xa6) => 10100110 => 0xa6
+01110000 (0x0e) => 00001110 => 0x0e
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+11001000 (0x13) => 00010011 => 0x13 \
+11101100 (0x37) => 00110111 => 0x37 |
+00000001 (0x80) => 10000000 => 0x80 |
+10100001 (0x85) => 10000101 => 0x85 / CRC32 = 0x85803713
+
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.30.f4.02.05.02.45.03.31.f4.03.06.00.0b.3b.1c.66.da.06.03.a6.0e.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.13.37.80.85.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (payload) = 136 (132 octets utiles + CRC32)
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.30.f4.02.05.02.45.03.31.f4.03.06.00.0b.3b.1c.66.da.06.03.a6.0e.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.13.37.80.85.
+CRC32 expected = 0x85803713
+
+
diff --git a/cesar/tools/hpav_decode/data/S24_BEACON_FC.txt b/cesar/tools/hpav_decode/data/S24_BEACON_FC.txt
new file mode 100644
index 0000000000..a4b9766cbf
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S24_BEACON_FC.txt
@@ -0,0 +1,128 @@
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+0
+0
+1
+1
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+0
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+1
+1
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+1
+1
+1
+1
+1
+0
+0
+0
+1
+1
+1
+0
+0
+1
+0
+1
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
diff --git a/cesar/tools/hpav_decode/data/S24_BEACON_PLD.txt b/cesar/tools/hpav_decode/data/S24_BEACON_PLD.txt
new file mode 100644
index 0000000000..ea96ef27ba
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S24_BEACON_PLD.txt
@@ -0,0 +1,1088 @@
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+1
+0
+1
+0
+1
+0
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
diff --git a/cesar/tools/hpav_decode/data/S24_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S24_BEACON_decod.txt
new file mode 100644
index 0000000000..1ad1507330
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S24_BEACON_decod.txt
@@ -0,0 +1,180 @@
+HomePlug AV FRAME CONTROL :
+
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
+10101111 (0xf5) => 11110101 => 0xf5 \
+01011001 (0x9a) => 10011010 => 0x9a |
+11110111 (0xef) => 11101111 => 0xef |
+01101001 (0x96) => 10010110 => 0x96 / BTS = 0x96ef9af5 (2532285173)
+10011001 (0x99) => 10011001 => 0x99 \
+11111111 (0xff) => 11111111 => 0xff / BTO(0) = 0xff99 (-103)
+11100100 (0x27) => 00100111 => 0x27 \
+11111111 (0xff) => 11111111 => 0xff / BTO(1) = 0xff27 (-217)
+11101110 (0x77) => 01110111 => 0x77 \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(2) = 0xfd77 (-649)
+01100101 (0xa6) => 10100110 => 0xa6 \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfda6 (-602)
+11000111 (0xe3) => 11100011 => 0xe3 \
+00101010 (0x54) => 01010100 => 0x54 |
+11010001 (0x8b) => 10001011 => 0x8b / CRC24 = 0x8b54e3
+
+40.f5.9a.ef.96.99.ff.27.ff.77.fd.a6.fd.e3.54.8b.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (frame control) = 16 (13 octets utiles + CRC24)
+40.f5.9a.ef.96.99.ff.27.ff.77.fd.a6.fd.e3.54.8b.
+CRC24 expected = 0x008b54e3
+
+
+HomePlug AV PAYLOAD :
+
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+10000000 (0x01) => 00000001 => 0x01 > STEI = 1 (0x01)
+00000000 (0x00) => 00000000 => 0x00 > -----000 BT = 0 (Central Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
+00100000 (0x04) => 00000100 => 0x04
+10000000 (0x01) => 00000001 => 0x01
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+10000000 (0x01) => 00000001 => 0x01
+10111111 (0xfd) => 11111101 => 0xfd
+00101100 (0x34) => 00110100 => 0x34
+00000100 (0x20) => 00100000 => 0x20
+00101111 (0xf4) => 11110100 => 0xf4
+01000000 (0x02) => 00000010 => 0x02
+10100000 (0x05) => 00000101 => 0x05
+01000000 (0x02) => 00000010 => 0x02
+10100010 (0x45) => 01000101 => 0x45
+11000000 (0x03) => 00000011 => 0x03
+10000100 (0x21) => 00100001 => 0x21
+00101111 (0xf4) => 11110100 => 0xf4
+11000000 (0x03) => 00000011 => 0x03
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+11010000 (0x0b) => 00001011 => 0x0b
+11011100 (0x3b) => 00111011 => 0x3b
+00111000 (0x1c) => 00011100 => 0x1c
+01100110 (0x66) => 01100110 => 0x66
+01011011 (0xda) => 11011010 => 0xda
+01100000 (0x06) => 00000110 => 0x06
+11000000 (0x03) => 00000011 => 0x03
+00100110 (0x64) => 01100100 => 0x64
+11010000 (0x0b) => 00001011 => 0x0b
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+01010010 (0x4a) => 01001010 => 0x4a \
+10101001 (0x95) => 10010101 => 0x95 |
+10000101 (0xa1) => 10100001 => 0xa1 |
+11111111 (0xff) => 11111111 => 0xff / CRC32 = 0xffa1954a
+
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.20.f4.02.05.02.45.03.21.f4.03.06.00.0b.3b.1c.66.da.06.03.64.0b.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.4a.95.a1.ff.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (payload) = 136 (132 octets utiles + CRC32)
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.20.f4.02.05.02.45.03.21.f4.03.06.00.0b.3b.1c.66.da.06.03.64.0b.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.4a.95.a1.ff.
+CRC32 expected = 0xffa1954a
+
+
diff --git a/cesar/tools/hpav_decode/data/S25_BEACON_FC.txt b/cesar/tools/hpav_decode/data/S25_BEACON_FC.txt
new file mode 100644
index 0000000000..da66359a43
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S25_BEACON_FC.txt
@@ -0,0 +1,128 @@
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+0
+1
+1
+1
+0
+0
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+1
+0
+0
+0
+1
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+1
+1
+0
diff --git a/cesar/tools/hpav_decode/data/S25_BEACON_PLD.txt b/cesar/tools/hpav_decode/data/S25_BEACON_PLD.txt
new file mode 100644
index 0000000000..b2da7b3072
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S25_BEACON_PLD.txt
@@ -0,0 +1,1088 @@
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+0
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+0
+0
+0
+1
+0
diff --git a/cesar/tools/hpav_decode/data/S25_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S25_BEACON_decod.txt
new file mode 100644
index 0000000000..cc6fa9cb40
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S25_BEACON_decod.txt
@@ -0,0 +1,180 @@
+HomePlug AV FRAME CONTROL :
+
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
+10000000 (0x01) => 00000001 => 0x01 \
+01110111 (0xee) => 11101110 => 0xee |
+01111111 (0xfe) => 11111110 => 0xfe |
+01101001 (0x96) => 10010110 => 0x96 / BTS = 0x96feee01 (2533289473)
+01110001 (0x8e) => 10001110 => 0x8e \
+11111111 (0xff) => 11111111 => 0xff / BTO(0) = 0xff8e (-114)
+01111011 (0xde) => 11011110 => 0xde \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(1) = 0xfdde (-546)
+10110000 (0x0d) => 00001101 => 0x0d \
+01111111 (0xfe) => 11111110 => 0xfe / BTO(2) = 0xfe0d (-499)
+00111001 (0x9c) => 10011100 => 0x9c \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfd9c (-612)
+00100010 (0x44) => 01000100 => 0x44 \
+10101100 (0x35) => 00110101 => 0x35 |
+00111110 (0x7c) => 01111100 => 0x7c / CRC24 = 0x7c3544
+
+40.01.ee.fe.96.8e.ff.de.fd.0d.fe.9c.fd.44.35.7c.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (frame control) = 16 (13 octets utiles + CRC24)
+40.01.ee.fe.96.8e.ff.de.fd.0d.fe.9c.fd.44.35.7c.
+CRC24 expected = 0x007c3544
+
+
+HomePlug AV PAYLOAD :
+
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+10000000 (0x01) => 00000001 => 0x01 > STEI = 1 (0x01)
+00000000 (0x00) => 00000000 => 0x00 > -----000 BT = 0 (Central Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
+00100000 (0x04) => 00000100 => 0x04
+10000000 (0x01) => 00000001 => 0x01
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+10000000 (0x01) => 00000001 => 0x01
+10111111 (0xfd) => 11111101 => 0xfd
+00101100 (0x34) => 00110100 => 0x34
+00000100 (0x20) => 00100000 => 0x20
+00101111 (0xf4) => 11110100 => 0xf4
+01000000 (0x02) => 00000010 => 0x02
+10100000 (0x05) => 00000101 => 0x05
+01000000 (0x02) => 00000010 => 0x02
+10100010 (0x45) => 01000101 => 0x45
+11000000 (0x03) => 00000011 => 0x03
+10000100 (0x21) => 00100001 => 0x21
+00101111 (0xf4) => 11110100 => 0xf4
+11000000 (0x03) => 00000011 => 0x03
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+11010000 (0x0b) => 00001011 => 0x0b
+11011100 (0x3b) => 00111011 => 0x3b
+00111000 (0x1c) => 00011100 => 0x1c
+01100110 (0x66) => 01100110 => 0x66
+01011011 (0xda) => 11011010 => 0xda
+01100000 (0x06) => 00000110 => 0x06
+11000000 (0x03) => 00000011 => 0x03
+11101001 (0x97) => 10010111 => 0x97
+00111000 (0x1c) => 00011100 => 0x1c
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+10010100 (0x29) => 00101001 => 0x29 \
+00101000 (0x14) => 00010100 => 0x14 |
+01101111 (0xf6) => 11110110 => 0xf6 |
+01000010 (0x42) => 01000010 => 0x42 / CRC32 = 0x42f61429
+
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.20.f4.02.05.02.45.03.21.f4.03.06.00.0b.3b.1c.66.da.06.03.97.1c.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.29.14.f6.42.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (payload) = 136 (132 octets utiles + CRC32)
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.20.f4.02.05.02.45.03.21.f4.03.06.00.0b.3b.1c.66.da.06.03.97.1c.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.29.14.f6.42.
+CRC32 expected = 0x42f61429
+
+
diff --git a/cesar/tools/hpav_decode/data/S26_BEACON_FC.txt b/cesar/tools/hpav_decode/data/S26_BEACON_FC.txt
new file mode 100644
index 0000000000..96de99ab44
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S26_BEACON_FC.txt
@@ -0,0 +1,128 @@
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
diff --git a/cesar/tools/hpav_decode/data/S26_BEACON_PLD.txt b/cesar/tools/hpav_decode/data/S26_BEACON_PLD.txt
new file mode 100644
index 0000000000..f286e51f0b
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S26_BEACON_PLD.txt
@@ -0,0 +1,1088 @@
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+1
+0
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+1
+1
+0
+0
+1
+1
+1
diff --git a/cesar/tools/hpav_decode/data/S26_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S26_BEACON_decod.txt
new file mode 100644
index 0000000000..ecb08ffbf7
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S26_BEACON_decod.txt
@@ -0,0 +1,180 @@
+HomePlug AV FRAME CONTROL :
+
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
+10111010 (0x5d) => 01011101 => 0x5d \
+00111000 (0x1c) => 00011100 => 0x1c |
+01110000 (0x0e) => 00001110 => 0x0e |
+11101001 (0x97) => 10010111 => 0x97 / BTS = 0x970e1c5d (2534284381)
+00001010 (0x50) => 01010000 => 0x50 \
+01111111 (0xfe) => 11111110 => 0xfe / BTO(0) = 0xfe50 (-432)
+11111110 (0x7f) => 01111111 => 0x7f \
+01111111 (0xfe) => 11111110 => 0xfe / BTO(1) = 0xfe7f (-385)
+01110000 (0x0e) => 00001110 => 0x0e \
+01111111 (0xfe) => 11111110 => 0xfe / BTO(2) = 0xfe0e (-498)
+00111001 (0x9c) => 10011100 => 0x9c \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfd9c (-612)
+01110000 (0x0e) => 00001110 => 0x0e \
+00100001 (0x84) => 10000100 => 0x84 |
+11011101 (0xbb) => 10111011 => 0xbb / CRC24 = 0xbb840e
+
+40.5d.1c.0e.97.50.fe.7f.fe.0e.fe.9c.fd.0e.84.bb.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (frame control) = 16 (13 octets utiles + CRC24)
+40.5d.1c.0e.97.50.fe.7f.fe.0e.fe.9c.fd.0e.84.bb.
+CRC24 expected = 0x00bb840e
+
+
+HomePlug AV PAYLOAD :
+
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+10000000 (0x01) => 00000001 => 0x01 > STEI = 1 (0x01)
+00000000 (0x00) => 00000000 => 0x00 > -----000 BT = 0 (Central Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
+10100000 (0x05) => 00000101 => 0x05
+10000000 (0x01) => 00000001 => 0x01
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+10000000 (0x01) => 00000001 => 0x01
+10111111 (0xfd) => 11111101 => 0xfd
+00101100 (0x34) => 00110100 => 0x34
+00001000 (0x10) => 00010000 => 0x10
+00101111 (0xf4) => 11110100 => 0xf4
+01000000 (0x02) => 00000010 => 0x02
+10100000 (0x05) => 00000101 => 0x05
+01000000 (0x02) => 00000010 => 0x02
+10100010 (0x45) => 01000101 => 0x45
+11000000 (0x03) => 00000011 => 0x03
+10001000 (0x11) => 00010001 => 0x11
+00101111 (0xf4) => 11110100 => 0xf4
+11000000 (0x03) => 00000011 => 0x03
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+11010000 (0x0b) => 00001011 => 0x0b
+11011100 (0x3b) => 00111011 => 0x3b
+00111000 (0x1c) => 00011100 => 0x1c
+01100110 (0x66) => 01100110 => 0x66
+01011011 (0xda) => 11011010 => 0xda
+00100000 (0x04) => 00000100 => 0x04
+10000000 (0x01) => 00000001 => 0x01
+01000000 (0x02) => 00000010 => 0x02
+01100000 (0x06) => 00000110 => 0x06
+11000000 (0x03) => 00000011 => 0x03
+10100100 (0x25) => 00100101 => 0x25
+10010000 (0x09) => 00001001 => 0x09
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+01010110 (0x6a) => 01101010 => 0x6a \
+11001110 (0x73) => 01110011 => 0x73 |
+00001000 (0x10) => 00010000 => 0x10 |
+11100111 (0xe7) => 11100111 => 0xe7 / CRC32 = 0xe710736a
+
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.05.01.06.00.01.fd.34.10.f4.02.05.02.45.03.11.f4.03.06.00.0b.3b.1c.66.da.04.01.02.06.03.25.09.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.6a.73.10.e7.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (payload) = 136 (132 octets utiles + CRC32)
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.05.01.06.00.01.fd.34.10.f4.02.05.02.45.03.11.f4.03.06.00.0b.3b.1c.66.da.04.01.02.06.03.25.09.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.6a.73.10.e7.
+CRC32 expected = 0xe710736a
+
+
diff --git a/cesar/tools/hpav_decode/data/S27_BEACON_FC.txt b/cesar/tools/hpav_decode/data/S27_BEACON_FC.txt
new file mode 100644
index 0000000000..f21328339d
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S27_BEACON_FC.txt
@@ -0,0 +1,128 @@
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+0
+0
+1
+1
+0
+0
diff --git a/cesar/tools/hpav_decode/data/S27_BEACON_PLD.txt b/cesar/tools/hpav_decode/data/S27_BEACON_PLD.txt
new file mode 100644
index 0000000000..2dc8472871
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S27_BEACON_PLD.txt
@@ -0,0 +1,1088 @@
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+1
+0
+1
+1
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+0
+1
diff --git a/cesar/tools/hpav_decode/data/S27_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S27_BEACON_decod.txt
new file mode 100644
index 0000000000..253d8de4d8
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S27_BEACON_decod.txt
@@ -0,0 +1,180 @@
+HomePlug AV FRAME CONTROL :
+
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
+10010110 (0x69) => 01101001 => 0x69 \
+10001100 (0x31) => 00110001 => 0x31 |
+10110111 (0xed) => 11101101 => 0xed |
+00000000 (0x00) => 00000000 => 0x00 / BTS = 0x00ed3169 (15544681)
+00001010 (0x50) => 01010000 => 0x50 \
+01111111 (0xfe) => 11111110 => 0xfe / BTO(0) = 0xfe50 (-432)
+11111110 (0x7f) => 01111111 => 0x7f \
+01111111 (0xfe) => 11111110 => 0xfe / BTO(1) = 0xfe7f (-385)
+01110000 (0x0e) => 00001110 => 0x0e \
+01111111 (0xfe) => 11111110 => 0xfe / BTO(2) = 0xfe0e (-498)
+00111001 (0x9c) => 10011100 => 0x9c \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfd9c (-612)
+11101110 (0x77) => 01110111 => 0x77 \
+00110111 (0xec) => 11101100 => 0xec |
+10001100 (0x31) => 00110001 => 0x31 / CRC24 = 0x31ec77
+
+40.69.31.ed.00.50.fe.7f.fe.0e.fe.9c.fd.77.ec.31.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (frame control) = 16 (13 octets utiles + CRC24)
+40.69.31.ed.00.50.fe.7f.fe.0e.fe.9c.fd.77.ec.31.
+CRC24 expected = 0x0031ec77
+
+
+HomePlug AV PAYLOAD :
+
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+01000000 (0x02) => 00000010 => 0x02 > STEI = 2 (0x02)
+10000000 (0x01) => 00000001 => 0x01 > -----001 BT = 1 (Discover Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
+00100000 (0x04) => 00000100 => 0x04
+01000000 (0x02) => 00000010 => 0x02
+10100000 (0x05) => 00000101 => 0x05
+01000000 (0x02) => 00000010 => 0x02
+10100010 (0x45) => 01000101 => 0x45
+11000000 (0x03) => 00000011 => 0x03
+10001000 (0x11) => 00010001 => 0x11
+00101111 (0xf4) => 11110100 => 0xf4
+11000000 (0x03) => 00000011 => 0x03
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+11010000 (0x0b) => 00001011 => 0x0b
+11011100 (0x3b) => 00111011 => 0x3b
+00111000 (0x1c) => 00011100 => 0x1c
+01100110 (0x66) => 01100110 => 0x66
+00111011 (0xdc) => 11011100 => 0xdc
+10100000 (0x05) => 00000101 => 0x05
+00100000 (0x04) => 00000100 => 0x04
+00001000 (0x10) => 00010000 => 0x10
+10000000 (0x01) => 00000001 => 0x01
+10000000 (0x01) => 00000001 => 0x01
+00000000 (0x00) => 00000000 => 0x00
+01100000 (0x06) => 00000110 => 0x06
+11000000 (0x03) => 00000011 => 0x03
+00111111 (0xfc) => 11111100 => 0xfc
+11001100 (0x33) => 00110011 => 0x33
+10000000 (0x01) => 00000001 => 0x01
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+11111011 (0xdf) => 11011111 => 0xdf \
+00101000 (0x14) => 00010100 => 0x14 |
+11000001 (0x83) => 10000011 => 0x83 |
+10011101 (0xb9) => 10111001 => 0xb9 / CRC32 = 0xb98314df
+
+02.6b.cb.a5.35.4e.88.02.01.01.00.02.04.02.05.02.45.03.11.f4.03.06.00.0b.3b.1c.66.dc.05.04.10.01.01.00.06.03.fc.33.01.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.df.14.83.b9.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (payload) = 136 (132 octets utiles + CRC32)
+02.6b.cb.a5.35.4e.88.02.01.01.00.02.04.02.05.02.45.03.11.f4.03.06.00.0b.3b.1c.66.dc.05.04.10.01.01.00.06.03.fc.33.01.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.df.14.83.b9.
+CRC32 expected = 0xb98314df
+
+
diff --git a/cesar/tools/hpav_decode/data/S28_BEACON_FC.txt b/cesar/tools/hpav_decode/data/S28_BEACON_FC.txt
new file mode 100644
index 0000000000..edb4900aac
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S28_BEACON_FC.txt
@@ -0,0 +1,128 @@
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+1
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+1
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+1
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+0
+0
+1
+1
+1
+1
+0
+1
+0
+0
+1
+1
+0
diff --git a/cesar/tools/hpav_decode/data/S28_BEACON_PLD.txt b/cesar/tools/hpav_decode/data/S28_BEACON_PLD.txt
new file mode 100644
index 0000000000..bc808ca581
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S28_BEACON_PLD.txt
@@ -0,0 +1,1088 @@
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+0
+0
+1
+0
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+0
+0
+1
+0
+1
+0
diff --git a/cesar/tools/hpav_decode/data/S28_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S28_BEACON_decod.txt
new file mode 100644
index 0000000000..f644b0f1ee
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S28_BEACON_decod.txt
@@ -0,0 +1,180 @@
+HomePlug AV FRAME CONTROL :
+
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
+10111010 (0x5d) => 01011101 => 0x5d \
+00001110 (0x70) => 01110000 => 0x70 |
+10111000 (0x1d) => 00011101 => 0x1d |
+11101001 (0x97) => 10010111 => 0x97 / BTS = 0x971d705d (2535288925)
+11110100 (0x2f) => 00101111 => 0x2f \
+00000000 (0x00) => 00000000 => 0x00 / BTO(0) = 0x002f (47)
+01111101 (0xbe) => 10111110 => 0xbe \
+11111111 (0xff) => 11111111 => 0xff / BTO(1) = 0xffbe (-66)
+00110010 (0x4c) => 01001100 => 0x4c \
+11111111 (0xff) => 11111111 => 0xff / BTO(2) = 0xff4c (-180)
+01110001 (0x8e) => 10001110 => 0x8e \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfd8e (-626)
+00101110 (0x74) => 01110100 => 0x74 \
+10100111 (0xe5) => 11100101 => 0xe5 |
+10100110 (0x65) => 01100101 => 0x65 / CRC24 = 0x65e574
+
+40.5d.70.1d.97.2f.00.be.ff.4c.ff.8e.fd.74.e5.65.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (frame control) = 16 (13 octets utiles + CRC24)
+40.5d.70.1d.97.2f.00.be.ff.4c.ff.8e.fd.74.e5.65.
+CRC24 expected = 0x0065e574
+
+
+HomePlug AV PAYLOAD :
+
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+10000000 (0x01) => 00000001 => 0x01 > STEI = 1 (0x01)
+00000000 (0x00) => 00000000 => 0x00 > -----000 BT = 0 (Central Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
+00100000 (0x04) => 00000100 => 0x04
+10000000 (0x01) => 00000001 => 0x01
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+10000000 (0x01) => 00000001 => 0x01
+10111111 (0xfd) => 11111101 => 0xfd
+00101100 (0x34) => 00110100 => 0x34
+00001100 (0x30) => 00110000 => 0x30
+00101111 (0xf4) => 11110100 => 0xf4
+01000000 (0x02) => 00000010 => 0x02
+10100000 (0x05) => 00000101 => 0x05
+01000000 (0x02) => 00000010 => 0x02
+10100010 (0x45) => 01000101 => 0x45
+11000000 (0x03) => 00000011 => 0x03
+10001100 (0x31) => 00110001 => 0x31
+00101111 (0xf4) => 11110100 => 0xf4
+11000000 (0x03) => 00000011 => 0x03
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+11010000 (0x0b) => 00001011 => 0x0b
+11011100 (0x3b) => 00111011 => 0x3b
+00111000 (0x1c) => 00011100 => 0x1c
+01100110 (0x66) => 01100110 => 0x66
+01011011 (0xda) => 11011010 => 0xda
+01100000 (0x06) => 00000110 => 0x06
+11000000 (0x03) => 00000011 => 0x03
+10101001 (0x95) => 10010101 => 0x95
+00111000 (0x1c) => 00011100 => 0x1c
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+01101110 (0x76) => 01110110 => 0x76 \
+11010001 (0x8b) => 10001011 => 0x8b |
+00000101 (0xa0) => 10100000 => 0xa0 |
+01001010 (0x52) => 01010010 => 0x52 / CRC32 = 0x52a08b76
+
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.30.f4.02.05.02.45.03.31.f4.03.06.00.0b.3b.1c.66.da.06.03.95.1c.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.76.8b.a0.52.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (payload) = 136 (132 octets utiles + CRC32)
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.30.f4.02.05.02.45.03.31.f4.03.06.00.0b.3b.1c.66.da.06.03.95.1c.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.76.8b.a0.52.
+CRC32 expected = 0x52a08b76
+
+
diff --git a/cesar/tools/hpav_decode/data/S29_BEACON_FC.txt b/cesar/tools/hpav_decode/data/S29_BEACON_FC.txt
new file mode 100644
index 0000000000..b992a9187e
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S29_BEACON_FC.txt
@@ -0,0 +1,128 @@
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+1
+1
+0
+0
+1
+0
+0
+1
+1
+0
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+1
+1
+1
+1
+0
+0
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+0
+1
+0
+1
+1
+0
+0
+1
+0
diff --git a/cesar/tools/hpav_decode/data/S29_BEACON_PLD.txt b/cesar/tools/hpav_decode/data/S29_BEACON_PLD.txt
new file mode 100644
index 0000000000..e2ae98b336
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S29_BEACON_PLD.txt
@@ -0,0 +1,1088 @@
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+1
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+0
+1
+0
+0
+1
+0
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+1
+0
+0
+1
+0
+0
+1
+0
+1
+1
+1
+1
+1
+0
+0
diff --git a/cesar/tools/hpav_decode/data/S29_BEACON_decod.txt b/cesar/tools/hpav_decode/data/S29_BEACON_decod.txt
new file mode 100644
index 0000000000..d4e8804ce0
--- /dev/null
+++ b/cesar/tools/hpav_decode/data/S29_BEACON_decod.txt
@@ -0,0 +1,180 @@
+HomePlug AV FRAME CONTROL :
+
+00000010 (0x40) => 01000000 => 0x40 -----000 DTAV = Beacon ; ----0--- ACCESS = in-home network ; 0000---- SNID = 4
+11011010 (0x5b) => 01011011 => 0x5b \
+11111001 (0x9f) => 10011111 => 0x9f |
+00110100 (0x2c) => 00101100 => 0x2c |
+11101001 (0x97) => 10010111 => 0x97 / BTS = 0x972c9f5b (2536283995)
+11110001 (0x8f) => 10001111 => 0x8f \
+11111111 (0xff) => 11111111 => 0xff / BTO(0) = 0xff8f (-113)
+10111000 (0x1d) => 00011101 => 0x1d \
+11111111 (0xff) => 11111111 => 0xff / BTO(1) = 0xff1d (-227)
+11111010 (0x5f) => 01011111 => 0x5f \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(2) = 0xfd5f (-673)
+01010001 (0x8a) => 10001010 => 0x8a \
+10111111 (0xfd) => 11111101 => 0xfd / BTO(3) = 0xfd8a (-630)
+00001000 (0x10) => 00010000 => 0x10 \
+00101010 (0x54) => 01010100 => 0x54 |
+10110010 (0x4d) => 01001101 => 0x4d / CRC24 = 0x4d5410
+
+40.5b.9f.2c.97.8f.ff.1d.ff.5f.fd.8a.fd.10.54.4d.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 16 -f > HP_AV_FC_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (frame control) = 16 (13 octets utiles + CRC24)
+40.5b.9f.2c.97.8f.ff.1d.ff.5f.fd.8a.fd.10.54.4d.
+CRC24 expected = 0x004d5410
+
+
+HomePlug AV PAYLOAD :
+
+01000000 (0x02) => 00000010 => 0x02 \ 00000010
+11010110 (0x6b) => 01101011 => 0x6b | 01101011
+11010011 (0xcb) => 11001011 => 0xcb | 11001011
+10100101 (0xa5) => 10100101 => 0xa5 | 10100101
+10101100 (0x35) => 00110101 => 0x35 | 00110101
+01110010 (0x4e) => 01001110 => 0x4e | 01001110
+00010001 (0x88) => 10001000 => 0x88 / --001000 NID = 0x084e35a5cb6b02 ; --00---- SL = 0 (Simple-Connect) 10------ HM = 2 (Fully Hybrid mode)
+10000000 (0x01) => 00000001 => 0x01 > STEI = 1 (0x01)
+00000000 (0x00) => 00000000 => 0x00 > -----000 BT = 0 (Central Beacon) ; ----0--- NCNR = 0 (no Non-Coordinating networks reported) ; ---0---- NPSM = 0 (not in Power-Saving mode) ; 000----- NumSlots = 0 (=> 1 Beacon slots)
+10000000 (0x01) => 00000001 => 0x01 > SlotUsage = 00000001
+00000000 (0x00) => 00000000 => 0x00 > -----000 SlotID = 0 (1st Beacon Slot); --000--- ACLSS = 0 (AC Line Cycle Sync on 1st Beacon Slot) ; -0------ HOIP = 0 (no Handover in progress) ; 0------- RTSBF = 0 (MPDUs don't have to use RTS/CTS)
+01000000 (0x02) => 00000010 => 0x02 > ------10 NM = 2 (CSMA-Only Mode); ----00-- CCoCap = 0 (Level-0 CCo capable, does not support QoS and TDMA) ; 0000---- (Reserved bits)
+00100000 (0x04) => 00000100 => 0x04
+10000000 (0x01) => 00000001 => 0x01
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+10000000 (0x01) => 00000001 => 0x01
+10111111 (0xfd) => 11111101 => 0xfd
+00101100 (0x34) => 00110100 => 0x34
+00000100 (0x20) => 00100000 => 0x20
+00101111 (0xf4) => 11110100 => 0xf4
+01000000 (0x02) => 00000010 => 0x02
+10100000 (0x05) => 00000101 => 0x05
+01000000 (0x02) => 00000010 => 0x02
+10100010 (0x45) => 01000101 => 0x45
+11000000 (0x03) => 00000011 => 0x03
+10000100 (0x21) => 00100001 => 0x21
+00101111 (0xf4) => 11110100 => 0xf4
+11000000 (0x03) => 00000011 => 0x03
+01100000 (0x06) => 00000110 => 0x06
+00000000 (0x00) => 00000000 => 0x00
+11010000 (0x0b) => 00001011 => 0x0b
+11011100 (0x3b) => 00111011 => 0x3b
+00111000 (0x1c) => 00011100 => 0x1c
+01100110 (0x66) => 01100110 => 0x66
+01011011 (0xda) => 11011010 => 0xda
+01100000 (0x06) => 00000110 => 0x06
+11000000 (0x03) => 00000011 => 0x03
+00100100 (0x24) => 00100100 => 0x24
+10010000 (0x09) => 00001001 => 0x09
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+00000000 (0x00) => 00000000 => 0x00
+01110110 (0x6e) => 01101110 => 0x6e \
+01100110 (0x66) => 01100110 => 0x66 |
+01001001 (0x92) => 10010010 => 0x92 |
+01111100 (0x3e) => 00111110 => 0x3e / CRC32 = 0x3e92666e
+
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.20.f4.02.05.02.45.03.21.f4.03.06.00.0b.3b.1c.66.da.06.03.24.09.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.6e.66.92.3e.
+
+Lancement processus de test CRC :
+ ~/workspace/cesar/tools/hpav_decode/obj/test_crc -@ 0804c740 -s 136 -p > HP_AV_PLD_tmp.txt 2>&1 ...
+running suite: crc
+100%, tests: 53, failures: 0
+taille buffer (payload) = 136 (132 octets utiles + CRC32)
+02.6b.cb.a5.35.4e.88.01.00.01.00.02.04.01.06.00.01.fd.34.20.f4.02.05.02.45.03.21.f4.03.06.00.0b.3b.1c.66.da.06.03.24.09.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.6e.66.92.3e.
+CRC32 expected = 0x3e92666e
+
+
diff --git a/cesar/tools/hpav_decode/src/hpav_decode.c b/cesar/tools/hpav_decode/src/hpav_decode.c
index dd99bbe15f..70623e7b9a 100644
--- a/cesar/tools/hpav_decode/src/hpav_decode.c
+++ b/cesar/tools/hpav_decode/src/hpav_decode.c
@@ -26,9 +26,10 @@ typedef enum {
HPAV_DATATYPE_MAXCOUNT
} e_hpav_data;
-char *cst_step_tmpfilename[] = { "HP_AV_FC_tmp.txt", "HP_AV_PLD_tmp.txt" };
-char *cst_step_name[] = { "HomePlug AV FRAME CONTROL", "HomePlug AV PAYLOAD" };
-char cst_step_option[] = { 'f', 'p' };
+const char *cst_step_tmpfilename[] = { "HP_AV_FC_tmp.txt", "HP_AV_PLD_tmp.txt" };
+const char *cst_step_name[] = { "HomePlug AV FRAME CONTROL", "HomePlug AV PAYLOAD" };
+const char cst_step_option[] = { 'f', 'p' };
+const char cst_str_rsvd[] = "Reserved";
unsigned char buff[8192];
char str_cmd[1024];
@@ -45,10 +46,10 @@ char str_cmd[1024];
uint access : 1;
uint snid : 4;
uint bts :32;
- uint bto0 :16;
- uint bto1 :16;
- uint bto2 :16;
- uint bto3 :16;
+ int bto0 :16;
+ int bto1 :16;
+ int bto2 :16;
+ int bto3 :16;
uint fccsav :24;
} beacon;
struct {
@@ -86,11 +87,38 @@ char str_cmd[1024];
uint fccsav :24;
} mme;
} fc_av_t;
+ typedef union {
+ struct {
+ unsigned long long nid :54;
+ unsigned long long hm : 2;
+ uint stei : 8;
+ uint bt : 3;
+ uint ncnr : 1;
+ uint npsm : 1;
+ uint numslots : 3;
+ uint slotusage: 8;
+ uint slotid : 3;
+ uint aclss : 3;
+ uint hoip : 1;
+ uint rtsbf : 1;
+ uint nm : 2;
+ uint ccocap : 2;
+ uint rsvd : 4;
+ //bmi :var;
+ //opad :var;
+ //bpcs :32;
+ } beacon;
+ struct {
+ uint undef :32;
+ } mme;
+ } pld_t;
#pragma pack()
-const char * cst_str_dtav[] = {"Beacon","SOF","SACK","RTC/CTS","Sound","RSOF","Reserved","Reserved"};
+const char * cst_str_dtav[] = {"Beacon","SOF","SACK","RTC/CTS","Sound","RSOF",cst_str_rsvd,cst_str_rsvd};
const char * cst_str_access[] = {"in-home network","access network"};
+int saved_dtav = -1;
+
void decode_fc_header_byte(fc_av_t *fc)
{
int b,i,j,s;
@@ -100,15 +128,16 @@ void decode_fc_header_byte(fc_av_t *fc)
s = 3;
printf(" ");
for (j=0; j<(8-b-s); j++) printf("-");
- for (i=0; i<s; i++) printf("%u",(fc->header.dtav&(1<<(s-i-1)))>>(s-i-1));
+ for (i=0; i<s; i++) printf("%u",(fc->header.dtav&(1<<(b+s-i-1)))>>(b+s-i-1));
for (j=0; j<b; j++) printf("-");
printf(" DTAV = %s ;",cst_str_dtav[fc->header.dtav]);
+ saved_dtav = fc->header.dtav;
// ACCESS (example : ----0---)
b += s;
s = 1;
printf(" ");
for (j=0; j<(8-b-s); j++) printf("-");
- for (i=0; i<s; i++) printf("%u",(fc->header.access&(1<<(s-i-1)))>>(s-i-1));
+ for (i=0; i<s; i++) printf("%u",(fc->header.access&(1<<(b+s-i-1)))>>(b+s-i-1));
for (j=0; j<b; j++) printf("-");
printf(" ACCESS = %s ;",cst_str_access[fc->header.access]);
// SNID (example : 0010----)
@@ -116,11 +145,23 @@ void decode_fc_header_byte(fc_av_t *fc)
s = 4;
printf(" ");
for (j=0; j<(8-b-s); j++) printf("-");
- for (i=0; i<s; i++) printf("%u",(fc->header.snid&(1<<(s-i-1)))>>(s-i-1));
+ for (i=0; i<s; i++) printf("%u",(fc->header.snid&(1<<(b+s-i-1)))>>(b+s-i-1));
for (j=0; j<b; j++) printf("-");
printf(" SNID = %u",fc->header.snid);
}
+void decode_beacon_fc_b1_of_i16(fc_av_t *fc)
+{
+ // 16bit-value byte 1 of 2
+ printf(" \\");
+}
+
+void decode_beacon_fc_b2_of_i16(fc_av_t *fc,char *fieldname,short val)
+{
+ // 16bit-value byte 2 of 2, print the 2 bytes of the value
+ printf(" / %s = 0x%04x (%d)",fieldname,(unsigned short)val,val);
+}
+
void decode_beacon_fc_b1_of_u16(fc_av_t *fc)
{
// 16bit-value byte 1 of 2
@@ -184,55 +225,51 @@ void decode_beacon_fc_b4(fc_av_t *fc)
void decode_beacon_fc_b5(fc_av_t *fc)
{
// BTO(0) byte 1 of 2
- decode_beacon_fc_b1_of_u16(fc);
+ decode_beacon_fc_b1_of_i16(fc);
}
void decode_beacon_fc_b6(fc_av_t *fc)
{
// BTO(0) byte 2 of 2, print the 2 bytes of the BTO(0)
- decode_beacon_fc_b2_of_u16(fc,"BTO(0)",fc->beacon.bto0);
+ decode_beacon_fc_b2_of_i16(fc,"BTO(0)",fc->beacon.bto0);
}
void decode_beacon_fc_b7(fc_av_t *fc)
{
// BTO(1) byte 1 of 2
- decode_beacon_fc_b1_of_u16(fc);
+ decode_beacon_fc_b1_of_i16(fc);
}
void decode_beacon_fc_b8(fc_av_t *fc)
{
// BTO(1) byte 2 of 2, print the 2 bytes of the BTO(1)
- decode_beacon_fc_b2_of_u16(fc,"BTO(1)",fc->beacon.bto1);
+ decode_beacon_fc_b2_of_i16(fc,"BTO(1)",fc->beacon.bto1);
}
void decode_beacon_fc_b9(fc_av_t *fc)
{
// BTO(2) byte 1 of 2
- decode_beacon_fc_b1_of_u16(fc);
+ decode_beacon_fc_b1_of_i16(fc);
}
void decode_beacon_fc_b10(fc_av_t *fc)
{
// BTO(2) byte 2 of 2, print the 2 bytes of the BTO(2)
- decode_beacon_fc_b2_of_u16(fc,"BTO(2)",fc->beacon.bto2);
+ decode_beacon_fc_b2_of_i16(fc,"BTO(2)",fc->beacon.bto2);
}
void decode_beacon_fc_b11(fc_av_t *fc)
{
// BTO(3) byte 1 of 2
- decode_beacon_fc_b1_of_u16(fc);
+ decode_beacon_fc_b1_of_i16(fc);
}
void decode_beacon_fc_b12(fc_av_t *fc)
{
// BTO(3) byte 2 of 2, print the 2 bytes of the BTO(3)
- decode_beacon_fc_b2_of_u16(fc,"BTO(3)",fc->beacon.bto3);
+ decode_beacon_fc_b2_of_i16(fc,"BTO(3)",fc->beacon.bto3);
}
-
-
-
-
void decode_beacon_fc_b13(fc_av_t *fc)
{
// CRC24 (byte 1 of 3)
@@ -260,7 +297,7 @@ void decode_mme_fc_b1(fc_av_t *fc)
s = 8;
printf(" ");
for (j=0; j<(8-b-s); j++) printf("-");
- for (i=0; i<s; i++) printf("%u",(fc->mme.stei&(1<<(s-i-1)))>>(s-i-1));
+ for (i=0; i<s; i++) printf("%u",(fc->mme.stei&(1<<(b+s-i-1)))>>(b+s-i-1));
for (j=0; j<b; j++) printf("-");
printf(" STEI = %u",fc->mme.stei);
}
@@ -274,7 +311,7 @@ void decode_mme_fc_b2(fc_av_t *fc)
s = 8;
printf(" ");
for (j=0; j<(8-b-s); j++) printf("-");
- for (i=0; i<s; i++) printf("%u",(fc->mme.dtei&(1<<(s-i-1)))>>(s-i-1));
+ for (i=0; i<s; i++) printf("%u",(fc->mme.dtei&(1<<(b+s-i-1)))>>(b+s-i-1));
for (j=0; j<b; j++) printf("-");
printf(" DTEI = %u",fc->mme.dtei);
}
@@ -288,7 +325,7 @@ void decode_mme_fc_b3(fc_av_t *fc)
s = 8;
printf(" ");
for (j=0; j<(8-b-s); j++) printf("-");
- for (i=0; i<s; i++) printf("%u",(fc->mme.lid&(1<<(s-i-1)))>>(s-i-1));
+ for (i=0; i<s; i++) printf("%u",(fc->mme.lid&(1<<(b+s-i-1)))>>(b+s-i-1));
for (j=0; j<b; j++) printf("-");
printf(" LID = %u",fc->mme.lid);
}
@@ -337,7 +374,7 @@ void decode_mme_fc_b13(fc_av_t *fc)
void decode_mme_fc_b14(fc_av_t *fc)
{
- //CRC24 (byte 2 of 3)
+ // CRC24 (byte 2 of 3)
printf(" |");
}
@@ -591,6 +628,498 @@ void (*decode_fc[])(fc_av_t *) = {
decode_fc_b15
};
+void decode_beacon_pld_b0(pld_t *pld)
+{
+ int b,i,j,s;
+ #pragma pack(1)
+ union {
+ unsigned char u8[8];
+ struct {
+ unsigned long long int nid : 54;
+ unsigned long long int hm : 2;
+ unsigned long long int stei : 8;
+ }nid_hm_stei;
+ } un_u64;
+ #pragma pack()
+
+ // NID (byte 1 of 7)
+ printf(" \\ ");
+
+ // bits(0..7) of NID
+ b = 0;
+ s = 8;
+ printf(" ");
+ un_u64.nid_hm_stei.nid = pld->beacon.nid;
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_u64.u8[0]&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+}
+
+void decode_beacon_pld_b1(pld_t *pld)
+{
+ int b,i,j,s;
+ #pragma pack(1)
+ union {
+ unsigned char u8[8];
+ struct {
+ unsigned long long int nid : 54;
+ unsigned long long int hm : 2;
+ unsigned long long int stei : 8;
+ }nid_hm_stei;
+ } un_u64;
+ #pragma pack()
+
+ // NID (byte 2 of 7)
+ printf(" |");
+
+ // bits(8..15) of NID
+ b = 0;
+ s = 8;
+ printf(" ");
+ un_u64.nid_hm_stei.nid = pld->beacon.nid;
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_u64.u8[1]&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+}
+
+void decode_beacon_pld_b2(pld_t *pld)
+{
+ int b,i,j,s;
+ #pragma pack(1)
+ union {
+ unsigned char u8[8];
+ struct {
+ unsigned long long int nid : 54;
+ unsigned long long int hm : 2;
+ unsigned long long int stei : 8;
+ }nid_hm_stei;
+ } un_u64;
+ #pragma pack()
+
+ // NID (byte 3 of 7)
+ printf(" |");
+
+ // bits(16..23) of NID
+ b = 0;
+ s = 8;
+ printf(" ");
+ un_u64.nid_hm_stei.nid = pld->beacon.nid;
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_u64.u8[2]&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+}
+
+void decode_beacon_pld_b3(pld_t *pld)
+{
+ int b,i,j,s;
+ #pragma pack(1)
+ union {
+ unsigned char u8[8];
+ struct {
+ unsigned long long int nid : 54;
+ unsigned long long int hm : 2;
+ unsigned long long int stei : 8;
+ }nid_hm_stei;
+ } un_u64;
+ #pragma pack()
+
+ // NID (byte 4 of 7)
+ printf(" |");
+
+ // bits(24..31) of NID
+ b = 0;
+ s = 8;
+ printf(" ");
+ un_u64.nid_hm_stei.nid = pld->beacon.nid;
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_u64.u8[3]&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+}
+
+void decode_beacon_pld_b4(pld_t *pld)
+{
+ int b,i,j,s;
+ #pragma pack(1)
+ union {
+ unsigned char u8[8];
+ struct {
+ unsigned long long int nid : 54;
+ unsigned long long int hm : 2;
+ unsigned long long int stei : 8;
+ }nid_hm_stei;
+ } un_u64;
+ #pragma pack()
+
+ // NID (byte 5 of 7)
+ printf(" |");
+
+ // bits(32..39) of NID
+ b = 0;
+ s = 8;
+ printf(" ");
+ un_u64.nid_hm_stei.nid = pld->beacon.nid;
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_u64.u8[4]&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+}
+
+void decode_beacon_pld_b5(pld_t *pld)
+{
+ int b,i,j,s;
+ #pragma pack(1)
+ union {
+ unsigned char u8[8];
+ struct {
+ unsigned long long int nid : 54;
+ unsigned long long int hm : 2;
+ unsigned long long int stei : 8;
+ }nid_hm_stei;
+ } un_u64;
+ #pragma pack()
+
+ // NID (byte 6 of 7)
+ printf(" |");
+
+ // bits(40..47) of NID
+ b = 0;
+ s = 8;
+ printf(" ");
+ un_u64.nid_hm_stei.nid = pld->beacon.nid;
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_u64.u8[5]&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+}
+
+const char *cst_str_sl[] = {"Simple-Connect","High-Secure",cst_str_rsvd,cst_str_rsvd};
+const char *cst_str_hm[] = {"AV-only mode","Shared CSMA Hybrid mode","Fully Hybrid mode","CSMA-only mode"};
+void decode_beacon_pld_b6(pld_t *pld)
+{
+ int b,i,j,s;
+ #pragma pack(1)
+ union {
+ unsigned char u8[8];
+ struct {
+ unsigned long long int nid : 54;
+ unsigned long long int hm : 2;
+ unsigned long long int stei : 8;
+ } nid_hm_stei;
+ struct {
+ unsigned long long int snid : 52;
+ unsigned long long int sl : 2;
+ unsigned long long int hm : 2;
+ unsigned long long int stei : 8;
+ } snid_sl_hm_stei;
+ } un_u64;
+ #pragma pack()
+
+ printf(" / ");
+
+ // NID (byte 7 of 7, print the 54 bits of the NID and the 2-bit HM value)
+ un_u64.nid_hm_stei.nid = pld->beacon.nid;
+ un_u64.nid_hm_stei.hm = pld->beacon.hm;
+
+ // bits(48..53) of NID
+ b = 0;
+ s = 6;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_u64.u8[6]&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" NID = 0x%014llx ;",0x3FFFFFFFFFFFFFULL & (long long unsigned int)pld->beacon.nid);
+
+ // bits(0..1) of SL
+ b = 4;
+ s = 2;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_u64.u8[6]&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" SL = %u (%s)",un_u64.snid_sl_hm_stei.sl,cst_str_sl[un_u64.snid_sl_hm_stei.sl]);
+
+ // bits(0..1) of HM
+ b = 6;
+ s = 2;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_u64.u8[6]&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" HM = %u (%s)",pld->beacon.hm,cst_str_hm[pld->beacon.hm]);
+}
+
+void decode_beacon_pld_b7(pld_t *pld)
+{
+ printf(" > ");
+ // STEI
+ printf(" STEI = %u (0x%02x)",pld->beacon.stei,pld->beacon.stei);
+}
+
+const char *cst_str_bt[] = {"Central Beacon","Discover Beacon","Proxy Beacon",cst_str_rsvd,cst_str_rsvd,cst_str_rsvd,cst_str_rsvd,cst_str_rsvd};
+const char *cst_str_ncnr[] = {"no Non-Coordinating networks reported","Non-Coordinating networks reported !"};
+const char *cst_str_npsm[] = {"not in Power-Saving mode","Power-Saving mode"};
+void decode_beacon_pld_b8(pld_t *pld)
+{
+ int b,i,j,s;
+ #pragma pack(1)
+ union {
+ unsigned char u8;
+ struct {
+ unsigned int bt : 3;
+ unsigned int ncnr : 1;
+ unsigned int npsm : 1;
+ unsigned int numslots : 3;
+ } fields;
+ } un_b8;
+ #pragma pack()
+
+ printf(" > ");
+
+ // BT/NCNR/NPSM/NumSlots
+ un_b8.fields.bt = pld->beacon.bt;
+ un_b8.fields.ncnr = pld->beacon.ncnr;
+ un_b8.fields.npsm = pld->beacon.npsm;
+ un_b8.fields.numslots = pld->beacon.numslots;
+
+ // bits(0..2) : BT field
+ b = 0;
+ s = 3;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b8.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" BT = %u (%s) ;",pld->beacon.bt,cst_str_bt[pld->beacon.bt]);
+
+ // bit(3) : NCNR field
+ b += s;
+ s = 1;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b8.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" NCNR = %u (%s) ;",pld->beacon.ncnr,cst_str_ncnr[pld->beacon.ncnr]);
+
+ // bit(4) : NPSM field
+ b += s;
+ s = 1;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b8.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" NPSM = %u (%s) ;",pld->beacon.npsm,cst_str_npsm[pld->beacon.npsm]);
+
+ // bits(5..7) : NumSlots field
+ b += s;
+ s = 3;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b8.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" NumSlots = %u (=> %u Beacon slots)",pld->beacon.numslots,pld->beacon.numslots+1);
+}
+
+void decode_beacon_pld_b9(pld_t *pld)
+{
+ int b,i,j,s;
+
+ printf(" > ");
+
+ // bits(0..7) : SlotUsage field
+ b = 0;
+ s = 8;
+ printf(" SlotUsage = ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(pld->beacon.slotusage&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+}
+
+const char *cst_str_slotid[] = {"1st","2nd","3rd","4th","5th","6th","7th","8th"};
+const char *cst_str_hoip[] = {"no Handover in progress","Handover in progress !"};
+const char *cst_str_rtsbf[] = {"MPDUs don't have to use RTS/CTS","MPDUs must use RTS/CTS !"};
+void decode_beacon_pld_b10(pld_t *pld)
+{
+ int b,i,j,s;
+ #pragma pack(1)
+ union {
+ unsigned char u8;
+ struct {
+ unsigned int slotid : 3;
+ unsigned int aclss : 3;
+ unsigned int hoip : 1;
+ unsigned int rtsbf : 1;
+ } fields;
+ } un_b10;
+ #pragma pack()
+
+ printf(" > ");
+
+ // SlotID/ACLSS/HOIP/RTSBF
+ un_b10.fields.slotid = pld->beacon.slotid;
+ un_b10.fields.aclss = pld->beacon.aclss;
+ un_b10.fields.hoip = pld->beacon.hoip;
+ un_b10.fields.rtsbf = pld->beacon.rtsbf;
+
+ // bits(0..2) : SlotID field
+ b = 0;
+ s = 3;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b10.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" SlotID = %u (%s Beacon Slot);",pld->beacon.slotid,cst_str_slotid[pld->beacon.slotid]);
+
+ // bit(3..5) : ACLSS field
+ b += s;
+ s = 3;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b10.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" ACLSS = %u (AC Line Cycle Sync on %s Beacon Slot) ;",pld->beacon.aclss,cst_str_slotid[pld->beacon.aclss]);
+
+ // bit(6) : HOIP field
+ b += s;
+ s = 1;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b10.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" HOIP = %u (%s) ;",pld->beacon.hoip,cst_str_hoip[pld->beacon.hoip]);
+
+ // bit(7) : RTSBF field
+ b += s;
+ s = 1;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b10.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" RTSBF = %u (%s)",pld->beacon.rtsbf,cst_str_rtsbf[pld->beacon.rtsbf]);
+}
+
+const char *cst_str_nm[] = {"Uncoordinated Mode","Coordinated Mode","CSMA-Only Mode",cst_str_rsvd};
+const char *cst_str_ccocap[] = {"does not support QoS and TDMA","supports QoS and TDMA but only in Uncoordinated Mode","support QoS and TDMA in Coordinated mode","future CCo capabilities !?"};
+void decode_beacon_pld_b11(pld_t *pld)
+{
+ int b,i,j,s;
+ #pragma pack(1)
+ union {
+ unsigned char u8;
+ struct {
+ unsigned int nm : 2;
+ unsigned int ccocap : 2;
+ unsigned int rsvd : 4;
+ } fields;
+ } un_b11;
+ #pragma pack()
+
+ printf(" > ");
+
+ // NM/CCoCap/RSVD
+ un_b11.fields.nm = pld->beacon.nm;
+ un_b11.fields.ccocap = pld->beacon.ccocap;
+ un_b11.fields.rsvd = pld->beacon.rsvd;
+
+ // bits(0..1) : NM field
+ b = 0;
+ s = 2;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b11.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" NM = %u (%s);",pld->beacon.nm,cst_str_nm[pld->beacon.nm]);
+
+ // bit(2..3) : CCoCap field
+ b += s;
+ s = 2;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b11.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" CCoCap = %u (Level-%u CCo capable, %s) ;",pld->beacon.ccocap,pld->beacon.ccocap,cst_str_ccocap[pld->beacon.ccocap]);
+
+ // bits(4..7) : RSVD field
+ b += s;
+ s = 4;
+ printf(" ");
+ for (j=0; j<(8-b-s); j++) printf("-");
+ for (i=0; i<s; i++) printf("%u",(un_b11.u8&(1<<(b+s-i-1)))>>(b+s-i-1));
+ for (j=0; j<b; j++) printf("-");
+
+ printf(" (Reserved bits)");
+}
+
+void (*decode_beacon_pld[])(pld_t *) = {
+ decode_beacon_pld_b0,
+ decode_beacon_pld_b1,
+ decode_beacon_pld_b2,
+ decode_beacon_pld_b3,
+ decode_beacon_pld_b4,
+ decode_beacon_pld_b5,
+ decode_beacon_pld_b6,
+ decode_beacon_pld_b7,
+ decode_beacon_pld_b8,
+ decode_beacon_pld_b9,
+ decode_beacon_pld_b10,
+ decode_beacon_pld_b11
+};
+
+void decode_pld_byte(int dtav, pld_t *pld, long pldpos, long pldlen)
+{
+ static uint crc32;
+ long bytepos_of_crc32 = pldlen - 1 - pldpos;
+ unsigned char *byteptr = (unsigned char *)((unsigned long)pld + (unsigned long)pldpos);
+
+ if (dtav != (-1))
+ {
+ switch (3 - bytepos_of_crc32)
+ {
+ case 0:
+ crc32 = (uint)*byteptr;
+ // CRC32 (byte 1 of 4)
+ printf(" \\");
+ break;
+ case 1:
+ crc32 |= (uint)*byteptr << 8;
+ // CRC32 (byte 2 of 4)
+ printf(" |");
+ break;
+ case 2:
+ crc32 |= (uint)*byteptr << 16;
+ // CRC32 (byte 3 of 4)
+ printf(" |");
+ break;
+ case 3:
+ crc32 |= (uint)*byteptr << 24;
+ // CRC32 (byte 4 of 4, print the 4 bytes of the CRC32)
+ printf(" / CRC32 = 0x%08x",crc32);
+ break;
+ default:
+ switch (dtav)
+ {
+ case 0: // FC_AV said DT_AV = Beacon, so, decode Beacon Payload...
+ if (pldpos < 12) decode_beacon_pld[pldpos](pld);
+ break;
+ case 1: // FC_AV said DT_AV = SOF, so, decode MME Payload...
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ }
+}
+
void display_usage(int argc, char *argv[])
{
// -f : specifie un fichier de bits "HP_AV Frame Control" (Beacon Frame Control or MME Frame Control) issu de la chaine MATLAB
@@ -602,6 +1131,7 @@ void display_usage(int argc, char *argv[])
int main(int argc, char *argv[])
{
FILE *in_f[2];
+ long in_f_size[2] = {0,0};
FILE *tmp_f;
long tmp_f_size = 0;
float bit_f;
@@ -689,6 +1219,21 @@ int main(int argc, char *argv[])
ret = fscanf(in_f[f],"%f",&bit_f);
if (ret == EOF)
{
+ rewind(in_f[f]);
+ }
+ else
+ {
+ in_f_size[f]++;
+ }
+ }
+ in_f_size[f] /= 8; // (file size in bytes = FC_AV length in bytes or payload variable length in bytes)
+ ret = 0;
+ i = 0;
+ while (ret != EOF)
+ {
+ ret = fscanf(in_f[f],"%f",&bit_f);
+ if (ret == EOF)
+ {
fclose(in_f[f]);
printf("\n");
}
@@ -717,6 +1262,11 @@ int main(int argc, char *argv[])
{
decode_fc[k]((fc_av_t *)buff);
}
+ else
+ {
+ //decode_pld[k]((fc_av_t *)buff,(pld_t *)((unsigned long)buff + 128));
+ decode_pld_byte(saved_dtav, (pld_t *)buff, (long)k, in_f_size[f]);
+ }
printf("\n");
k++;
i = 0;