wiliot-certificate 1.5.2a1__py3-none-any.whl → 4.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. brg_certificate/ag/energous_v0_defines.py +105 -114
  2. brg_certificate/ag/energous_v1_defines.py +105 -114
  3. brg_certificate/ag/energous_v2_defines.py +105 -114
  4. brg_certificate/ag/energous_v3_defines.py +105 -114
  5. brg_certificate/ag/energous_v4_defines.py +105 -114
  6. brg_certificate/ag/fanstel_lan_v0_defines.py +105 -114
  7. brg_certificate/ag/fanstel_lte_v0_defines.py +105 -114
  8. brg_certificate/ag/fanstel_wifi_v0_defines.py +105 -114
  9. brg_certificate/ag/minew_lte_v0_defines.py +105 -114
  10. brg_certificate/ag/wlt_types.html +983 -150
  11. brg_certificate/ag/wlt_types_ag.py +1326 -248
  12. brg_certificate/ag/wlt_types_ag_jsons/brg2brg_ota.json +69 -0
  13. brg_certificate/ag/wlt_types_ag_jsons/brg2gw_hb.json +101 -0
  14. brg_certificate/ag/wlt_types_ag_jsons/brg2gw_hb_sleep.json +45 -0
  15. brg_certificate/ag/wlt_types_ag_jsons/calibration.json +75 -0
  16. brg_certificate/ag/wlt_types_ag_jsons/custom.json +99 -0
  17. brg_certificate/ag/wlt_types_ag_jsons/datapath.json +133 -8
  18. brg_certificate/ag/wlt_types_ag_jsons/energy2400.json +99 -0
  19. brg_certificate/ag/wlt_types_ag_jsons/energySub1g.json +96 -0
  20. brg_certificate/ag/wlt_types_ag_jsons/externalSensor.json +113 -0
  21. brg_certificate/ag/wlt_types_ag_jsons/interface.json +157 -0
  22. brg_certificate/ag/wlt_types_ag_jsons/powerManagement.json +205 -0
  23. brg_certificate/cert_common.py +61 -11
  24. brg_certificate/cert_config.py +12 -7
  25. brg_certificate/cert_utils.py +3 -1
  26. brg_certificate/certificate_bcc_test_list.txt +0 -2
  27. brg_certificate/certificate_test_list.txt +4 -4
  28. brg_certificate/tests/calibration/interval_test/interval_test.json +1 -1
  29. brg_certificate/tests/calibration/interval_test/interval_test.py +5 -5
  30. brg_certificate/tests/calibration/output_power_test/output_power_test.json +1 -1
  31. brg_certificate/tests/calibration/output_power_test/output_power_test.py +5 -5
  32. brg_certificate/tests/calibration/pattern_test/pattern_test.json +1 -1
  33. brg_certificate/tests/calibration/pattern_test/pattern_test.py +16 -10
  34. brg_certificate/tests/datapath/aging_test/aging_test.py +10 -9
  35. brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.py +8 -13
  36. brg_certificate/tests/datapath/output_power_test/output_power_test.json +1 -1
  37. brg_certificate/tests/datapath/output_power_test/output_power_test.py +5 -5
  38. brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +1 -1
  39. brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +11 -7
  40. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +11 -4
  41. brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.py +10 -10
  42. brg_certificate/tests/datapath/pattern_test/pattern_test.json +1 -1
  43. brg_certificate/tests/datapath/pattern_test/pattern_test.py +5 -6
  44. brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +1 -1
  45. brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +10 -9
  46. brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +1 -1
  47. brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +11 -10
  48. brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.json +1 -1
  49. brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.py +11 -10
  50. brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +1 -1
  51. brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +11 -10
  52. brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.json +1 -1
  53. brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.py +5 -6
  54. brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +39 -37
  55. brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +46 -46
  56. brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.json +2 -3
  57. brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +21 -17
  58. brg_certificate/tests/datapath/stress_test/stress_test.json +2 -3
  59. brg_certificate/tests/datapath/stress_test/stress_test.py +20 -17
  60. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +1 -1
  61. brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.json +1 -1
  62. brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.py +12 -10
  63. brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +1 -1
  64. brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +13 -13
  65. brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.py +1 -1
  66. brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +2 -2
  67. brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.json +1 -1
  68. brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.py +5 -5
  69. brg_certificate/tests/energy2400/output_power_test/output_power_test.json +1 -1
  70. brg_certificate/tests/energy2400/output_power_test/output_power_test.py +5 -5
  71. brg_certificate/tests/energy2400/pattern_test/pattern_test.json +1 -1
  72. brg_certificate/tests/energy2400/pattern_test/pattern_test.py +5 -5
  73. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +2 -2
  74. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +256 -278
  75. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json +2 -2
  76. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py +256 -278
  77. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +3 -3
  78. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +30 -91
  79. brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +1 -1
  80. brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +5 -5
  81. brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.json +1 -1
  82. brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.py +5 -5
  83. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +2 -2
  84. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +1 -1
  85. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +5 -5
  86. brg_certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +2 -2
  87. brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.json +1 -1
  88. brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +6 -7
  89. brg_certificate/wltPb_pb2.py +4 -4
  90. brg_certificate/wltPb_pb2.pyi +2 -1
  91. gw_certificate/api_if/gw_capabilities.py +37 -1
  92. gw_certificate/common/serialization_formatter.py +93 -0
  93. gw_certificate/common/wltPb_pb2.py +50 -38
  94. gw_certificate/common/wltPb_pb2.pyi +42 -35
  95. gw_certificate/gw_certificate.py +4 -2
  96. gw_certificate/gw_certificate_cli.py +5 -4
  97. gw_certificate/interface/4.4.91_app.zip +0 -0
  98. gw_certificate/interface/{4.4.52_sd_bl_app.zip → 4.4.91_sd_bl_app.zip} +0 -0
  99. gw_certificate/interface/ble_simulator.py +5 -3
  100. gw_certificate/interface/flash_fw.py +90 -0
  101. gw_certificate/interface/mqtt.py +39 -23
  102. gw_certificate/interface/pkt_generator.py +0 -44
  103. gw_certificate/interface/uart_if.py +25 -12
  104. gw_certificate/tests/actions.py +33 -5
  105. gw_certificate/tests/connection.py +3 -1
  106. gw_certificate/tests/downlink.py +2 -2
  107. gw_certificate/tests/generic.py +5 -4
  108. gw_certificate/tests/registration.py +4 -4
  109. gw_certificate/tests/static/generated_packet_table.py +47 -25
  110. gw_certificate/tests/static/packet_table.csv +10067 -10051
  111. gw_certificate/tests/static/uplink_defines.py +2 -1
  112. gw_certificate/tests/throughput.py +3 -2
  113. gw_certificate/tests/uplink.py +171 -32
  114. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/METADATA +71 -30
  115. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/RECORD +119 -117
  116. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/WHEEL +1 -1
  117. gw_certificate/interface/4.4.52_app.zip +0 -0
  118. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/entry_points.txt +0 -0
  119. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/licenses/LICENSE +0 -0
  120. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,101 @@
1
1
  {
2
2
  "versions": [
3
+ {
4
+ "version": "13",
5
+ "packetFields": [
6
+ {
7
+ "name": "moduleType",
8
+ "byteOffset": 5,
9
+ "byteLength": 1,
10
+ "bitOffset": 4,
11
+ "bitLength": 4,
12
+ "outType": "uint"
13
+ },
14
+ {
15
+ "name": "msgType",
16
+ "byteOffset": 5,
17
+ "byteLength": 1,
18
+ "bitOffset": 0,
19
+ "bitLength": 4,
20
+ "outType": "uint"
21
+ },
22
+ {
23
+ "name": "apiVersion",
24
+ "byteOffset": 6,
25
+ "byteLength": 1,
26
+ "bitOffset": 0,
27
+ "bitLength": 8,
28
+ "outType": "uint"
29
+ },
30
+ {
31
+ "name": "seqId",
32
+ "byteOffset": 7,
33
+ "byteLength": 1,
34
+ "bitOffset": 0,
35
+ "bitLength": 8,
36
+ "outType": "uint"
37
+ },
38
+ {
39
+ "name": "brgMac",
40
+ "byteOffset": 8,
41
+ "byteLength": 6,
42
+ "bitOffset": 0,
43
+ "bitLength": 48,
44
+ "outType": "string"
45
+ },
46
+ {
47
+ "name": "sub1gEnergyPattern",
48
+ "byteOffset": 14,
49
+ "byteLength": 1,
50
+ "bitOffset": 0,
51
+ "bitLength": 8,
52
+ "outType": "string",
53
+ "map": {
54
+ "00":"No Energizing",
55
+ "01":"Single Tone 915MHz",
56
+ "02":"FCC (Hopping)",
57
+ "03":"Japan1W",
58
+ "04":"Japan350mW",
59
+ "05":"Korea",
60
+ "06":"Single tone 916300MHz",
61
+ "07":"Single tone 917500MHz",
62
+ "08":"Australia",
63
+ "09":"Israel",
64
+ "0A":"NZ (Hopping)"
65
+ }
66
+ },
67
+ {
68
+ "name": "dutyCycle",
69
+ "byteOffset": 15,
70
+ "byteLength": 1,
71
+ "bitOffset": 0,
72
+ "bitLength": 8,
73
+ "outType": "uint"
74
+ },
75
+ {
76
+ "name": "signalIndicatorCycle",
77
+ "byteOffset": 16,
78
+ "byteLength": 2,
79
+ "bitOffset": 2,
80
+ "bitLength": 14,
81
+ "outType": "uint"
82
+ },
83
+ {
84
+ "name": "signalIndicatorRep",
85
+ "byteOffset": 17,
86
+ "byteLength": 1,
87
+ "bitOffset": 0,
88
+ "bitLength": 2,
89
+ "outType": "uint",
90
+ "map": {
91
+ "0":1,
92
+ "1":2,
93
+ "2":3,
94
+ "3":4
95
+ }
96
+ }
97
+ ]
98
+ },
3
99
  {
4
100
  "version": "12",
5
101
  "packetFields": [
@@ -1,5 +1,118 @@
1
1
  {
2
2
  "versions": [
3
+ {
4
+ "version": "13",
5
+ "packetFields": [
6
+ {
7
+ "name": "moduleType",
8
+ "byteOffset": 5,
9
+ "byteLength": 1,
10
+ "bitOffset": 4,
11
+ "bitLength": 4,
12
+ "outType": "uint"
13
+ },
14
+ {
15
+ "name": "msgType",
16
+ "byteOffset": 5,
17
+ "byteLength": 1,
18
+ "bitOffset": 0,
19
+ "bitLength": 4,
20
+ "outType": "uint"
21
+ },
22
+ {
23
+ "name": "apiVersion",
24
+ "byteOffset": 6,
25
+ "byteLength": 1,
26
+ "bitOffset": 0,
27
+ "bitLength": 8,
28
+ "outType": "uint"
29
+ },
30
+ {
31
+ "name": "seqId",
32
+ "byteOffset": 7,
33
+ "byteLength": 1,
34
+ "bitOffset": 0,
35
+ "bitLength": 8,
36
+ "outType": "uint"
37
+ },
38
+ {
39
+ "name": "brgMac",
40
+ "byteOffset": 8,
41
+ "byteLength": 6,
42
+ "bitOffset": 0,
43
+ "bitLength": 48,
44
+ "outType": "string"
45
+ },
46
+ {
47
+ "name": "sensor0",
48
+ "byteOffset": 14,
49
+ "byteLength": 4,
50
+ "bitOffset": 0,
51
+ "bitLength": 32,
52
+ "outType": "string",
53
+ "map": {
54
+ "00000000":"No_Sensor",
55
+ "16E1FF01":"MinewS1",
56
+ "FF050500":"USB dongle ADC",
57
+ "FF000500":"Signal Indicator",
58
+ "0279FE01":"Zebra Printer",
59
+ "FFAE0400":"ERM Smart MS"
60
+ }
61
+ },
62
+ {
63
+ "name": "sensor1",
64
+ "byteOffset": 18,
65
+ "byteLength": 4,
66
+ "bitOffset": 0,
67
+ "bitLength": 32,
68
+ "outType": "string",
69
+ "map": {
70
+ "00000000":"No_Sensor",
71
+ "16E1FF01":"MinewS1",
72
+ "FF050500":"USB dongle ADC",
73
+ "FF000500":"Signal Indicator",
74
+ "0279FE01":"Zebra Printer",
75
+ "FFAE0400":"ERM Smart MS"
76
+ }
77
+ },
78
+ {
79
+ "name": "rssiThreshold",
80
+ "byteOffset": 22,
81
+ "byteLength": 1,
82
+ "bitOffset": 0,
83
+ "bitLength": 8,
84
+ "outType": "int",
85
+ "calculations": [
86
+ {
87
+ "operator": "*",
88
+ "operand": -1
89
+ },
90
+ {
91
+ "operator": "+",
92
+ "operand": 0
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ "name": "sub1gRssiThreshold",
98
+ "byteOffset": 23,
99
+ "byteLength": 1,
100
+ "bitOffset": 0,
101
+ "bitLength": 8,
102
+ "outType": "int",
103
+ "calculations": [
104
+ {
105
+ "operator": "*",
106
+ "operand": -1
107
+ },
108
+ {
109
+ "operator": "+",
110
+ "operand": 0
111
+ }
112
+ ]
113
+ }
114
+ ]
115
+ },
3
116
  {
4
117
  "version": "12",
5
118
  "packetFields": [
@@ -1,5 +1,162 @@
1
1
  {
2
2
  "versions": [
3
+ {
4
+ "version": "13",
5
+ "packetFields": [
6
+ {
7
+ "name": "moduleType",
8
+ "byteOffset": 5,
9
+ "byteLength": 1,
10
+ "bitOffset": 4,
11
+ "bitLength": 4,
12
+ "outType": "uint"
13
+ },
14
+ {
15
+ "name": "msgType",
16
+ "byteOffset": 5,
17
+ "byteLength": 1,
18
+ "bitOffset": 0,
19
+ "bitLength": 4,
20
+ "outType": "uint"
21
+ },
22
+ {
23
+ "name": "apiVersion",
24
+ "byteOffset": 6,
25
+ "byteLength": 1,
26
+ "bitOffset": 0,
27
+ "bitLength": 8,
28
+ "outType": "uint"
29
+ },
30
+ {
31
+ "name": "seqId",
32
+ "byteOffset": 7,
33
+ "byteLength": 1,
34
+ "bitOffset": 0,
35
+ "bitLength": 8,
36
+ "outType": "uint"
37
+ },
38
+ {
39
+ "name": "brgMac",
40
+ "byteOffset": 8,
41
+ "byteLength": 6,
42
+ "bitOffset": 0,
43
+ "bitLength": 48,
44
+ "outType": "string"
45
+ },
46
+ {
47
+ "name": "boardType",
48
+ "byteOffset": 14,
49
+ "byteLength": 1,
50
+ "bitOffset": 0,
51
+ "bitLength": 8,
52
+ "outType": "uint"
53
+ },
54
+ {
55
+ "name": "blVersion",
56
+ "byteOffset": 15,
57
+ "byteLength": 1,
58
+ "bitOffset": 0,
59
+ "bitLength": 8,
60
+ "outType": "uint"
61
+ },
62
+ {
63
+ "name": "majorVer",
64
+ "byteOffset": 16,
65
+ "byteLength": 1,
66
+ "bitOffset": 0,
67
+ "bitLength": 8,
68
+ "outType": "uint"
69
+ },
70
+ {
71
+ "name": "minorVer",
72
+ "byteOffset": 17,
73
+ "byteLength": 1,
74
+ "bitOffset": 0,
75
+ "bitLength": 8,
76
+ "outType": "uint"
77
+ },
78
+ {
79
+ "name": "patchVer",
80
+ "byteOffset": 18,
81
+ "byteLength": 1,
82
+ "bitOffset": 0,
83
+ "bitLength": 8,
84
+ "outType": "uint"
85
+ },
86
+ {
87
+ "name": "supCapGlobal",
88
+ "byteOffset": 19,
89
+ "byteLength": 1,
90
+ "bitOffset": 7,
91
+ "bitLength": 1,
92
+ "outType": "uint"
93
+ },
94
+ {
95
+ "name": "supCapDatapath",
96
+ "byteOffset": 19,
97
+ "byteLength": 1,
98
+ "bitOffset": 6,
99
+ "bitLength": 1,
100
+ "outType": "uint"
101
+ },
102
+ {
103
+ "name": "supCapEnergy2400",
104
+ "byteOffset": 19,
105
+ "byteLength": 1,
106
+ "bitOffset": 5,
107
+ "bitLength": 1,
108
+ "outType": "uint"
109
+ },
110
+ {
111
+ "name": "supCapEnergySub1g",
112
+ "byteOffset": 19,
113
+ "byteLength": 1,
114
+ "bitOffset": 4,
115
+ "bitLength": 1,
116
+ "outType": "uint"
117
+ },
118
+ {
119
+ "name": "supCapCalibration",
120
+ "byteOffset": 19,
121
+ "byteLength": 1,
122
+ "bitOffset": 3,
123
+ "bitLength": 1,
124
+ "outType": "uint"
125
+ },
126
+ {
127
+ "name": "supCapPowerManagement",
128
+ "byteOffset": 19,
129
+ "byteLength": 1,
130
+ "bitOffset": 2,
131
+ "bitLength": 1,
132
+ "outType": "uint"
133
+ },
134
+ {
135
+ "name": "supCapExternalSensor",
136
+ "byteOffset": 19,
137
+ "byteLength": 1,
138
+ "bitOffset": 1,
139
+ "bitLength": 1,
140
+ "outType": "uint"
141
+ },
142
+ {
143
+ "name": "supCapCustom",
144
+ "byteOffset": 19,
145
+ "byteLength": 1,
146
+ "bitOffset": 0,
147
+ "bitLength": 1,
148
+ "outType": "uint"
149
+ },
150
+ {
151
+ "name": "cfgHash",
152
+ "byteOffset": 20,
153
+ "byteLength": 4,
154
+ "bitOffset": 0,
155
+ "bitLength": 32,
156
+ "outType": "uint"
157
+ }
158
+ ]
159
+ },
3
160
  {
4
161
  "version": "12",
5
162
  "packetFields": [
@@ -1,5 +1,210 @@
1
1
  {
2
2
  "versions": [
3
+ {
4
+ "version": "13",
5
+ "packetFields": [
6
+ {
7
+ "name": "moduleType",
8
+ "byteOffset": 5,
9
+ "byteLength": 1,
10
+ "bitOffset": 4,
11
+ "bitLength": 4,
12
+ "outType": "uint"
13
+ },
14
+ {
15
+ "name": "msgType",
16
+ "byteOffset": 5,
17
+ "byteLength": 1,
18
+ "bitOffset": 0,
19
+ "bitLength": 4,
20
+ "outType": "uint"
21
+ },
22
+ {
23
+ "name": "apiVersion",
24
+ "byteOffset": 6,
25
+ "byteLength": 1,
26
+ "bitOffset": 0,
27
+ "bitLength": 8,
28
+ "outType": "uint"
29
+ },
30
+ {
31
+ "name": "seqId",
32
+ "byteOffset": 7,
33
+ "byteLength": 1,
34
+ "bitOffset": 0,
35
+ "bitLength": 8,
36
+ "outType": "uint"
37
+ },
38
+ {
39
+ "name": "brgMac",
40
+ "byteOffset": 8,
41
+ "byteLength": 6,
42
+ "bitOffset": 0,
43
+ "bitLength": 48,
44
+ "outType": "string"
45
+ },
46
+ {
47
+ "name": "staticLedsOn",
48
+ "byteOffset": 14,
49
+ "byteLength": 1,
50
+ "bitOffset": 0,
51
+ "bitLength": 8,
52
+ "outType": "uint"
53
+ },
54
+ {
55
+ "name": "staticKeepAlivePeriod",
56
+ "byteOffset": 15,
57
+ "byteLength": 1,
58
+ "bitOffset": 0,
59
+ "bitLength": 8,
60
+ "outType": "uint",
61
+ "calculations": [
62
+ {
63
+ "operator": "*",
64
+ "operand": 5
65
+ },
66
+ {
67
+ "operator": "+",
68
+ "operand": 0
69
+ }
70
+ ]
71
+ },
72
+ {
73
+ "name": "staticKeepAliveScan",
74
+ "byteOffset": 16,
75
+ "byteLength": 1,
76
+ "bitOffset": 0,
77
+ "bitLength": 8,
78
+ "outType": "uint",
79
+ "calculations": [
80
+ {
81
+ "operator": "*",
82
+ "operand": 10
83
+ },
84
+ {
85
+ "operator": "+",
86
+ "operand": 0
87
+ }
88
+ ]
89
+ },
90
+ {
91
+ "name": "staticOnDuration",
92
+ "byteOffset": 17,
93
+ "byteLength": 1,
94
+ "bitOffset": 0,
95
+ "bitLength": 8,
96
+ "outType": "uint",
97
+ "calculations": [
98
+ {
99
+ "operator": "*",
100
+ "operand": 30
101
+ },
102
+ {
103
+ "operator": "+",
104
+ "operand": 0
105
+ }
106
+ ]
107
+ },
108
+ {
109
+ "name": "staticSleepDuration",
110
+ "byteOffset": 18,
111
+ "byteLength": 2,
112
+ "bitOffset": 0,
113
+ "bitLength": 16,
114
+ "outType": "uint",
115
+ "calculations": [
116
+ {
117
+ "operator": "*",
118
+ "operand": 60
119
+ },
120
+ {
121
+ "operator": "+",
122
+ "operand": 0
123
+ }
124
+ ]
125
+ },
126
+ {
127
+ "name": "dynamicLedsOn",
128
+ "byteOffset": 20,
129
+ "byteLength": 1,
130
+ "bitOffset": 0,
131
+ "bitLength": 8,
132
+ "outType": "uint"
133
+ },
134
+ {
135
+ "name": "dynamicKeepAlivePeriod",
136
+ "byteOffset": 21,
137
+ "byteLength": 1,
138
+ "bitOffset": 0,
139
+ "bitLength": 8,
140
+ "outType": "uint",
141
+ "calculations": [
142
+ {
143
+ "operator": "*",
144
+ "operand": 5
145
+ },
146
+ {
147
+ "operator": "+",
148
+ "operand": 0
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "name": "dynamicKeepAliveScan",
154
+ "byteOffset": 22,
155
+ "byteLength": 1,
156
+ "bitOffset": 0,
157
+ "bitLength": 8,
158
+ "outType": "uint",
159
+ "calculations": [
160
+ {
161
+ "operator": "*",
162
+ "operand": 10
163
+ },
164
+ {
165
+ "operator": "+",
166
+ "operand": 0
167
+ }
168
+ ]
169
+ },
170
+ {
171
+ "name": "dynamicOnDuration",
172
+ "byteOffset": 23,
173
+ "byteLength": 1,
174
+ "bitOffset": 0,
175
+ "bitLength": 8,
176
+ "outType": "uint",
177
+ "calculations": [
178
+ {
179
+ "operator": "*",
180
+ "operand": 30
181
+ },
182
+ {
183
+ "operator": "+",
184
+ "operand": 0
185
+ }
186
+ ]
187
+ },
188
+ {
189
+ "name": "dynamicSleepDuration",
190
+ "byteOffset": 24,
191
+ "byteLength": 2,
192
+ "bitOffset": 0,
193
+ "bitLength": 16,
194
+ "outType": "uint",
195
+ "calculations": [
196
+ {
197
+ "operator": "*",
198
+ "operand": 60
199
+ },
200
+ {
201
+ "operator": "+",
202
+ "operand": 0
203
+ }
204
+ ]
205
+ }
206
+ ]
207
+ },
3
208
  {
4
209
  "version": "12",
5
210
  "packetFields": [
@@ -25,14 +25,6 @@ def name_to_val(name):
25
25
  return globals()[name]
26
26
 
27
27
 
28
- def get_module_by_name(modules, name):
29
- # Get module from active modules in device (loaded from board type ag defines)
30
- for module in modules:
31
- if name in module.__name__:
32
- return module
33
- return None
34
-
35
-
36
28
  def test_prolog(test):
37
29
  """
38
30
  kicks off the test:
@@ -763,7 +755,7 @@ def brg_restore_defaults_check(test):
763
755
  # Pwr Mgmt
764
756
  def brg_pwr_mgmt_turn_on(test):
765
757
  utPrint("Sending pwr_mgmt static mode configuration - 30 seconds ON, 60 seconds SLEEP!", "BLUE")
766
- module = eval_pkt(f'ModulePwrMgmtV{test.active_brg.api_version}')
758
+ module = test.active_brg.pwr_mgmt
767
759
  # send pwr mgmt module packet
768
760
  wltpkt = WltPkt(hdr=DEFAULT_HDR, pkt=module(module_type=ag.MODULE_PWR_MGMT, msg_type=ag.BRG_MGMT_MSG_TYPE_CFG_SET,
769
761
  api_version=ag.API_VERSION_LATEST,seq_id=random.randrange(99),
@@ -780,7 +772,7 @@ def brg_pwr_mgmt_turn_on(test):
780
772
 
781
773
  def brg_pwr_mgmt_turn_off(test):
782
774
  utPrint("Turning pwr mgmt OFF - sending default configuration!", "BLUE")
783
- module = eval_pkt(f'ModulePwrMgmtV{test.active_brg.api_version}')
775
+ module = test.active_brg.pwr_mgmt
784
776
  start_time = datetime.datetime.now()
785
777
  wltpkt = WltPkt(hdr=DEFAULT_HDR, pkt=module(module_type=ag.MODULE_PWR_MGMT, msg_type=ag.BRG_MGMT_MSG_TYPE_CFG_SET,
786
778
  api_version=ag.API_VERSION_LATEST,seq_id=random.randrange(99),
@@ -818,7 +810,10 @@ def value_check_if_y(test, received_value, stage):
818
810
  test.add_reason(f"{stage} failed")
819
811
  return test
820
812
 
813
+
814
+ ##########################################
821
815
  # Signal Indicator functions
816
+ ##########################################
822
817
  def dual_polarization_ant_boards_get():
823
818
  return [ag.BOARD_TYPE_MINEW_SINGLE_BAND_V0, ag.BOARD_TYPE_MINEW_DUAL_BAND_V0,
824
819
  ag.BOARD_TYPE_ENERGOUS_V2, ag.BOARD_TYPE_ERM_V0, ag.BOARD_TYPE_ERM_V1,
@@ -870,4 +865,59 @@ def get_all_sig_ind_pkts(test=None, rx_brg=None, tx_brg=None):
870
865
  if (p[SENSOR_UUID] == f"{ag.SENSOR_SERVICE_ID_SIGNAL_INDICATOR:06X}" and
871
866
  p[BRIDGE_ID] == rx_brg.id_str and p[SENSOR_ID] == tx_brg.id_alias):
872
867
  signal_ind_pkts.append(p)
873
- return signal_ind_pkts
868
+ return signal_ind_pkts
869
+
870
+ def output_power_check(test, received_signal_ind_pkts, tx_brg_):
871
+
872
+ output_power_default = tx_brg_.datapath().output_power
873
+
874
+ for p in received_signal_ind_pkts:
875
+ if p[SENSOR_PKT].pkt.output_power != output_power_default:
876
+ test.rc = TEST_FAILED
877
+ test.add_reason("output power of internal brg is incorrect!\n"
878
+ f"got:{p[SENSOR_PKT].pkt.output_power}, expected: {output_power_default}\n")
879
+ return test
880
+
881
+ def rssi_check(test, received_signal_ind_pkts):
882
+ threshold_rssi = [0, 80]
883
+ for p in received_signal_ind_pkts:
884
+ if not threshold_rssi[0] < p[RSSI] < threshold_rssi[1]:
885
+ test.rc = TEST_FAILED
886
+ test.add_reason("rssi value is wrong, out of 0 to 80 ")
887
+
888
+ return test
889
+
890
+
891
+ def rx_tx_antenna_check(test, received_signal_ind_pkts, tx_brg_, rx_brg_, cycles):
892
+
893
+ # Allow to miss 1 packet or get 1 extra packet
894
+ expected = range(int(cycles * 0.5), cycles + 2)
895
+
896
+ received = len(get_polar_signal_ind_pkt(received_signal_ind_pkts, rx_ant=0, tx_ant=0))
897
+ if received not in expected:
898
+ test.rc = TEST_FAILED
899
+ test.add_reason(f"rx_ant=0 tx_ant=0 expected={cycles} received={received}")
900
+
901
+ if tx_brg_.board_type in dual_polarization_ant_boards_get():
902
+ received = len(get_polar_signal_ind_pkt(received_signal_ind_pkts, rx_ant=0, tx_ant=1))
903
+ if received not in expected:
904
+ test.rc = TEST_FAILED
905
+ test.add_reason(f"rx_ant=0 tx_ant=1 expected={cycles} received={received}")
906
+
907
+ if rx_brg_.board_type in dual_polarization_ant_boards_get():
908
+ received = len(get_polar_signal_ind_pkt(received_signal_ind_pkts, rx_ant=1, tx_ant=0))
909
+ if received not in expected:
910
+ test.rc = TEST_FAILED
911
+ test.add_reason(f"rx_ant=1 tx_ant=0 expected={cycles} received={received}")
912
+
913
+ if (rx_brg_.board_type in dual_polarization_ant_boards_get() and
914
+ tx_brg_.board_type in dual_polarization_ant_boards_get()):
915
+ received = len(get_polar_signal_ind_pkt(received_signal_ind_pkts, rx_ant=1, tx_ant=1))
916
+ if received not in expected:
917
+ test.rc = TEST_FAILED
918
+ test.add_reason(f"rx_ant=1 tx_ant=1 expected={cycles} received={received}")
919
+ return test
920
+
921
+
922
+ def get_polar_signal_ind_pkt(pkts, rx_ant, tx_ant):
923
+ return [p for p in pkts if p[SENSOR_PKT].pkt.rx_antenna == rx_ant and p[SENSOR_PKT].pkt.tx_antenna == tx_ant]