diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 00000000..4b05cb9f --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 9cf445facb9880c31fc33848d1015c7c +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/README.md b/README.md deleted file mode 100644 index fb83cf87..00000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# ncs-zigbee -Zigbee nRF Connect add-on diff --git a/_images/nrftoolbox_dynamic_zigbee_uart_1.png b/_images/nrftoolbox_dynamic_zigbee_uart_1.png new file mode 100644 index 00000000..11190f55 Binary files /dev/null and b/_images/nrftoolbox_dynamic_zigbee_uart_1.png differ diff --git a/_images/nrftoolbox_dynamic_zigbee_uart_2.png b/_images/nrftoolbox_dynamic_zigbee_uart_2.png new file mode 100644 index 00000000..9215ebfe Binary files /dev/null and b/_images/nrftoolbox_dynamic_zigbee_uart_2.png differ diff --git a/_images/nrftoolbox_dynamic_zigbee_uart_3.png b/_images/nrftoolbox_dynamic_zigbee_uart_3.png new file mode 100644 index 00000000..61c2c45e Binary files /dev/null and b/_images/nrftoolbox_dynamic_zigbee_uart_3.png differ diff --git a/_images/zigbee_certification_levels.png b/_images/zigbee_certification_levels.png new file mode 100644 index 00000000..fe426a7c Binary files /dev/null and b/_images/zigbee_certification_levels.png differ diff --git a/_images/zigbee_commissioning_fb.svg b/_images/zigbee_commissioning_fb.svg new file mode 100644 index 00000000..c56e366b --- /dev/null +++ b/_images/zigbee_commissioning_fb.svg @@ -0,0 +1,345 @@ + + + + + + + + + + + + + + + + Page-1 + + Sheet.79 + (Optional) Finding and Binding + + (Optional) Finding and Binding + + Sheet.80 + + + + Sheet.81 + Is the node initiator or target? + + Is the node initiator or target? + + Sheet.82 + Handle identify query from initiator + + Handle identify query from initiator + + Sheet.83 + + + + Sheet.84 + Query timer expired? + + Query timer expired? + + Sheet.85 + Binding successful + + Binding successful + + Sheet.86 + Broadcast identify query + + Broadcast identify query + + Sheet.87 + Request simple descriptor for the next endpoint + + Request simple descriptor for the next endpoint + + Sheet.88 + Finding and Binding (end) + + Finding and Binding (end) + + Sheet.89 + + + + Sheet.90 + Query response received? + + Query response received? + + Sheet.91 + + + + Sheet.92 + Valid descriptor received? + + Valid descriptor received? + + Sheet.93 + + + + Sheet.94 + Other endpoints to try? + + Other endpoints to try? + + Sheet.95 + + + + Sheet.96 + Does the next cluster match? + + Does the next cluster match? + + Sheet.97 + + + + Sheet.98 + Other clusters to try? + + Other clusters to try? + + Dynamic connector.294 + + + + Dynamic connector.295 + + + + Dynamic connector.296 + + + + Dynamic connector.297 + + + + Dynamic connector.298 + + + + Dynamic connector.299 + + + + Sheet.105 + Create entry in the binding table with the next matching clus... + + Create entry in the binding table with the next matching cluster + + Sheet.106 + + + + Sheet.107 + Binding table full? + + Binding table full? + + Dynamic connector.303 + + + + Dynamic connector.304 + + + + Dynamic connector.306 + + + + Dynamic connector.307 + + + + Sheet.112 + + + + Sheet.113 + + + + Dynamic connector.310 + + + + Dynamic connector.311 + + + + Dynamic connector.312 + + + + Dynamic connector.313 + + + + Dynamic connector.314 + + + + Dynamic connector.315 + + + + Dynamic connector.317 + + + + Dynamic connector.318 + + + + Dynamic connector.322 + + + + Dynamic connector.323 + + + + Sheet.126 + Yes + + Yes + + Sheet.128 + No + + No + + Sheet.129 + No + + No + + Dynamic connector + + + + Dynamic connector.131 + + + + Sheet.132 + Yes + + Yes + + Sheet.133 + No + + No + + Sheet.134 + Yes + + Yes + + Sheet.135 + Yes + + Yes + + Sheet.136 + No + + No + + Sheet.137 + No + + No + + Sheet.138 + Yes + + Yes + + Sheet.139 + No + + No + + Sheet.140 + Yes + + Yes + + Dynamic connector.141 + + + + Dynamic connector.142 + + + + Dynamic connector.143 + + + + Dynamic connector.144 + + + + Sheet.145 + Target + + Target + + Sheet.146 + Initiator + + Initiator + + Sheet.147 + Message exchange with target + + Message exchange with target + + Sheet.148 + Yes + + Yes + + Sheet.149 + No + + No + + diff --git a/_images/zigbee_commissioning_formation.svg b/_images/zigbee_commissioning_formation.svg new file mode 100644 index 00000000..923d61b8 --- /dev/null +++ b/_images/zigbee_commissioning_formation.svg @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + Page-1 + + Sheet.5 + Centralized network + + Centralized network + + Sheet.6 + Distributed network + + Distributed network + + Sheet.7 + Network Formation (start) + + Network Formation (start) + + Sheet.8 + Request network formation + + Request network formation + + Sheet.9 + Scan 1ry channels + + Scan 1ry channels + + Sheet.10 + + + + Sheet.11 + Forming network successful? + + Forming network successful? + + Sheet.13 + Scan 2ry channels + + Scan 2ry channels + + Dynamic connector.253 + + + + Dynamic connector.257 + + + + Dynamic connector.258 + + + + Sheet.20 + + + + Sheet.21 + Is the forming node Router or Coordinator? + + Is the forming node Router or Coordinator? + + Sheet.23 + Router + + Router + + Dynamic connector.264 + + + + Dynamic connector.265 + + + + Sheet.26 + Coordinator + + Coordinator + + Sheet.27 + Initiate Trust Center functionality + + Initiate Trust Center functionality + + Sheet.28 + Network Formation (end) + + Network Formation (end) + + Dynamic connector.269 + + + + Dynamic connector.270 + + + + Dynamic connector.271 + + + + Dynamic connector.34 + + + + Dynamic connector.35 + + + + Sheet.36 + 2ry channels scanned? + + 2ry channels scanned? + + Sheet.37 + + + + Dynamic connector.38 + + + + Dynamic connector.39 + + + + Sheet.40 + Fail + + Fail + + Sheet.41 + Yes + + Yes + + Sheet.42 + Fail + + Fail + + Dynamic connector.43 + + + + Sheet.44 + Set status to formation failure + + Set status to formation failure + + Sheet.45 + Yes + + Yes + + Dynamic connector.46 + + + + Sheet.56 + Network missing and device is other than End Device + + Network missing and device is other than End Device + + Sheet.57 + + + + Dynamic connector.58 + + + + Sheet.59 + Yes + + Yes + + Dynamic connector.60 + + + + Sheet.61 + No + + No + + diff --git a/_images/zigbee_commissioning_overview.svg b/_images/zigbee_commissioning_overview.svg new file mode 100644 index 00000000..2088d4f9 --- /dev/null +++ b/_images/zigbee_commissioning_overview.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + Page-1 + + Sheet.5 + Touchlink + + Touchlink + + Sheet.6 + Network Steering + + Network Steering + + Sheet.7 + Network Formation + + Network Formation + + Sheet.8 + Finding and Binding + + Finding and Binding + + Sheet.9 + Start of commissioning + + Start of commissioning + + Sheet.10 + End of commissioning + + End of commissioning + + Dynamic connector.104 + + + + Dynamic connector.105 + + + + Dynamic connector.106 + + + + Dynamic connector.107 + + + + Dynamic connector.108 + + + + Sheet.16 + bdbCommissioningMode=0 + + bdbCommissioningMode=0 + + Sheet.17 + bdbCommissioningMode=1 + + bdbCommissioningMode=1 + + Sheet.18 + bdbCommissioningMode=2 + + bdbCommissioningMode=2 + + Sheet.19 + bdbCommissioningMode=3 + + bdbCommissioningMode=3 + + diff --git a/_images/zigbee_commissioning_steering.svg b/_images/zigbee_commissioning_steering.svg new file mode 100644 index 00000000..bac274b1 --- /dev/null +++ b/_images/zigbee_commissioning_steering.svg @@ -0,0 +1,406 @@ + + + + + + + + + + + + + + + + Page-1 + + Sheet.5 + Scan for network on 1ry channels + + Scan for network on 1ry channels + + Sheet.6 + No + + No + + Sheet.7 + Network Steering (start) + + Network Steering (start) + + Sheet.8 + + + + Sheet.9 + Broadcast permit join + + Broadcast permit join + + Sheet.10 + Node in network? + + Node in network? + + Sheet.11 + Yes + + Yes + + Sheet.12 + + + + Sheet.13 + Node in the network + + Node in the network + + Sheet.14 + + + + Sheet.15 + Node not in the network + + Node not in the network + + Sheet.16 + + + + Sheet.17 + Discovery successful? + + Discovery successful? + + Sheet.18 + No + + No + + Sheet.19 + Yes + + Yes + + Sheet.20 + Network Steering (end) + + Network Steering (end) + + Sheet.21 + Scan for network on 2ry channels + + Scan for network on 2ry channels + + Sheet.22 + + + + Sheet.23 + Discovery successful? + + Discovery successful? + + Sheet.24 + Yes + + Yes + + Sheet.25 + No + + No + + Sheet.26 + Prepare list of networks + + Prepare list of networks + + Sheet.27 + Join the network (first available) + + Join the network (first available) + + Sheet.28 + + + + Sheet.29 + Join successful? + + Join successful? + + Sheet.30 + Yes + + Yes + + Sheet.31 + No + + No + + Sheet.32 + + + + Sheet.33 + Suitable network found? + + Suitable network found? + + Sheet.35 + + + + Sheet.36 + More networks available? + + More networks available? + + Sheet.37 + + + + Sheet.38 + Trust Center present? + + Trust Center present? + + Sheet.39 + Get Trust Center link key + + Get Trust Center link key + + Sheet.40 + Yes + + Yes + + Sheet.41 + No + + No + + Dynamic connector.214 + + + + Dynamic connector.215 + + + + Dynamic connector.216 + + + + Dynamic connector.219 + + + + Dynamic connector.220 + + + + Dynamic connector.222 + + + + Dynamic connector.223 + + + + Dynamic connector.224 + + + + Dynamic connector.225 + + + + Dynamic connector.226 + + + + Dynamic connector.227 + + + + Dynamic connector.228 + + + + Dynamic connector.229 + + + + Dynamic connector.230 + + + + Dynamic connector.231 + + + + Dynamic connector.232 + + + + Dynamic connector.233 + + + + Dynamic connector.234 + + + + Dynamic connector.238 + + + + Dynamic connector.239 + + + + Sheet.63 + Yes + + Yes + + Sheet.64 + No + + No + + Sheet.66 + No + + No + + Sheet.67 + Yes + + Yes + + Dynamic connector + + + + Sheet.69 + + + + Sheet.70 + 2ry channels scanned? + + 2ry channels scanned? + + Dynamic connector.71 + + + + Dynamic connector.72 + + + + Sheet.73 + Yes + + Yes + + Sheet.74 + No + + No + + Sheet.75 + Get network key + + Get network key + + Sheet.77 + Leave network (end) + + Leave network (end) + + Sheet.78 + + + + Sheet.79 + Got the key? + + Got the key? + + Dynamic connector.80 + + + + Dynamic connector.81 + + + + Sheet.82 + Yes + + Yes + + Dynamic connector.83 + + + + Sheet.84 + No + + No + + Sheet.85 + + + + Sheet.86 + Got the key? + + Got the key? + + Dynamic connector.87 + + + + Dynamic connector.88 + + + + Sheet.89 + Yes + + Yes + + Sheet.90 + No + + No + + diff --git a/_images/zigbee_platform_design_multi.svg b/_images/zigbee_platform_design_multi.svg new file mode 100644 index 00000000..dcd3ec01 --- /dev/null +++ b/_images/zigbee_platform_design_multi.svg @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + Page-1 + + Sheet.43 + + + + Sheet.44 + nRF SoC + + nRF SoC + + Sheet.45 + Application + + Application + + Sheet.47 + + + + Sheet.49 + + + + Sheet.50 + Zigbee stack (ZBOSS) + + Zigbee stack (ZBOSS) + + Sheet.53 + Multiprotocol Service Layer (MPSL) + + Multiprotocol Service Layer (MPSL) + + Dynamic connector + + + + Sheet.96 + + Sheet.67 + Secure boot + + Sheet.68 + + + + Zephyr integration + + + Sheet.95 + + Sheet.69 + + + + Sheet.70 + nRF IEEE 802.15.4 radio driver + + nRF IEEE 802.15.4 radio driver + + Sheet.71 + IEEE 802.15.4 PHY + + IEEE 802.15.4 PHY + + + + Sheet.48 + Bluetooth® LE stack + + Bluetooth® LE stack + + Sheet.54 + nRF Bluetooth® LE Controller + + nRF Bluetooth® LE Controller + + Sheet.66 + HCI (RAM) + + HCI (RAM) + + Sheet.91 + + Sheet.51 + + + + Sheet.88 + Zephyr host + + Zephyr host + + Sheet.90 + + Sheet.55 + L2CAP + + L2CAP + + Sheet.57 + GATT + + GATT + + Sheet.59 + ATT + + ATT + + Sheet.61 + GAP + + GAP + + Sheet.63 + SM + + SM + + + + Sheet.97 + + Sheet.73 + IEEE 802.15.4 MAC + + IEEE 802.15.4 MAC + + Sheet.75 + Zigbee app layer (ZCL) + + Zigbee app layer (ZCL) + + Sheet.86 + Zigbee PRO + Green Power + + Zigbee PRO + Green Power + + + diff --git a/_images/zigbee_platform_design_ncp.svg b/_images/zigbee_platform_design_ncp.svg new file mode 100644 index 00000000..d5ed05a3 --- /dev/null +++ b/_images/zigbee_platform_design_ncp.svg @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + Page-1 + + Sheet.130 + + + + Sheet.133 + + + + Sheet.134 + Host processor + + Host processor + + Sheet.137 + + + + Sheet.138 + Zigbee stack (ZBOSS) + + Zigbee stack (ZBOSS) + + Sheet.139 + + + + Sheet.140 + Application + + Application + + Sheet.142 + UART/USB + + UART/USB + + Sheet.143 + nRF SoC + + nRF SoC + + Sheet.144 + + + + Sheet.145 + Zigbee stack (ZBOSS) + + Zigbee stack (ZBOSS) + + Sheet.146 + Network layer (NWK) + + Network layer (NWK) + + Sheet.148 + Application support sublayer (APS) + + Application support sublayer (APS) + + Sheet.154 + Secure boot + + Sheet.155 + + + + Multiprotocol Service Layer (MPSL) + + + Sheet.156 + Secure boot + + Sheet.157 + + + + Zephyr integration + + + Sheet.159 + + + + Sheet.162 + IEEE 802.15.4 MAC + + IEEE 802.15.4 MAC + + Sheet.164 + Application framework + + Application framework + + Sheet.169 + + + + Sheet.158 + Zigbee commissioning + + Zigbee commissioning + + Sheet.160 + Zigbee app layer (ZCL) + + Zigbee app layer (ZCL) + + Nordic Grass + ZBOSS NCP protocol + + ZBOSS NCP protocol + + Nordic Grass.175 + ZBOSS NCP protocol + + ZBOSS NCP protocol + + Dynamic connector + + + + Sheet.178 + + Sheet.166 + + + + Sheet.167 + Zigbee Device Object (ZDO) + + Zigbee Device Object (ZDO) + + + Sheet.184 + + Sheet.150 + + + + Sheet.151 + nRF IEEE 802.15.4 radio driver + + nRF IEEE 802.15.4 radio driver + + Sheet.152 + IEEE 802.15.4 PHY + + IEEE 802.15.4 PHY + + + diff --git a/_images/zigbee_platform_design_soc.svg b/_images/zigbee_platform_design_soc.svg new file mode 100644 index 00000000..41367db1 --- /dev/null +++ b/_images/zigbee_platform_design_soc.svg @@ -0,0 +1,112 @@ + + + + + + + + Page-1 + + Sheet.144 + + + + Sheet.145 + nRF SoC + + nRF SoC + + Sheet.146 + Application + + Application + + Sheet.148 + + + + Sheet.149 + Zigbee stack (ZBOSS) + + Zigbee stack (ZBOSS) + + Sheet.150 + + + + Sheet.151 + IEEE 802.15.4 MAC + + IEEE 802.15.4 MAC + + Sheet.152 + + + + Sheet.153 + Zigbee app layer (ZCL) + + Zigbee app layer (ZCL) + + Sheet.154 + + + + Sheet.155 + Zigbee PRO + Green Power + + Zigbee PRO + Green Power + + Sheet.156 + + + + Sheet.157 + nRF IEEE 802.15.4 radio driver + + nRF IEEE 802.15.4 radio driver + + Sheet.158 + IEEE 802.15.4 PHY + + IEEE 802.15.4 PHY + + Sheet.160 + Secure boot + + Sheet.161 + + + + Multiprotocol Service Layer (MPSL) + + + Sheet.162 + Secure boot + + Sheet.163 + + + + Zephyr integration + + + diff --git a/_images/zigbee_qsg_topology.svg b/_images/zigbee_qsg_topology.svg new file mode 100644 index 00000000..cc34af77 --- /dev/null +++ b/_images/zigbee_qsg_topology.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + Drawing + + Sheet.96 + R + + R + + Sheet.97 + ED + + ED + + Sheet.98 + C + + C + + Dynamic connector + + + + Dynamic connector.102 + + + + Sheet.103 + + Sheet.74 + + + + Nordic Blue.75 + + + + Nordic Blue.76 + + + + Sheet.79 + End device (light switch) + + End device (light switch) + + Dynamic connector.82 + + + + Sheet.83 + Router (light bulb) + + Router (light bulb) + + Sheet.84 + Communication + + Communication + + Nordic Blue.86 + + + + Sheet.87 + Network coordinator + + Network coordinator + + + diff --git a/_images/zigbee_qsg_vsc_flash.png b/_images/zigbee_qsg_vsc_flash.png new file mode 100644 index 00000000..4acda7dd Binary files /dev/null and b/_images/zigbee_qsg_vsc_flash.png differ diff --git a/_images/zigbee_signal_handler_01_production_config.svg b/_images/zigbee_signal_handler_01_production_config.svg new file mode 100644 index 00000000..f842c607 --- /dev/null +++ b/_images/zigbee_signal_handler_01_production_config.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + Page-1 + + Nordic Blue + ZB_ZDO_SIGNAL_PRODUCTION_CONFIG_READY + + ZB_ZDO_SIGNAL_PRODUCTION_CONFIG_READY + + Nordic Blue.1342 + LOG_INF(load_status) + + LOG_INF(load_status) + + Dynamic connector.1343 + + + + Circle.1344 + + + + Dynamic connector.1345 + + + + diff --git a/_images/zigbee_signal_handler_02_startup.svg b/_images/zigbee_signal_handler_02_startup.svg new file mode 100644 index 00000000..ba218bc5 --- /dev/null +++ b/_images/zigbee_signal_handler_02_startup.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + Page-1 + + Nordic Blue + ZB_ZDO_SIGNAL_SKIP_STARTUP + + ZB_ZDO_SIGNAL_SKIP_STARTUP + + Nordic Blue.1342 + bdb_start_top_level_commissioning(ZB_BDB_INITIALIZATION) + + bdb_start_top_level_commissioning(ZB_BDB_INITIALIZATION) + + Dynamic connector.1343 + + + + Circle.1344 + + + + Dynamic connector.1345 + + + + diff --git a/_images/zigbee_signal_handler_03_first_start.svg b/_images/zigbee_signal_handler_03_first_start.svg new file mode 100644 index 00000000..ab92dd45 --- /dev/null +++ b/_images/zigbee_signal_handler_03_first_start.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + Page-1 + + Nordic Blue + ZB_BDB_SIGNAL_DEVICE_FIRST_START + + ZB_BDB_SIGNAL_DEVICE_FIRST_START + + Nordic Blue.1342 + bdb_start_top_level_commissioning(ZB_BDB_NETWORK_FORMATION) + + bdb_start_top_level_commissioning(ZB_BDB_NETWORK_FORMATION) + + Dynamic connector.1343 + + + + Circle.1344 + + + + Dynamic connector.1345 + + + + Hexagon + status == RET_OK + + status == RET_OK + + Hexagon.1347 + role == coordinator + + role == coordinator + + Diamond + + + + Diamond.1349 + + + + Nordic Blue.1350 + start_network_rejoin() + + start_network_rejoin() + + Dynamic connector.1351 + + + + Dynamic connector.1352 + + + + Dynamic connector.1353 + + + + Dynamic connector.1354 + + + + Dynamic connector.1355 + + + + Dynamic connector.1356 + + + + Dynamic connector.1357 + + + + Sheet.1358 + no + + no + + Sheet.1360 + no + + no + + Sheet.1361 + yes + + yes + + Sheet.1362 + yes + + yes + + diff --git a/_images/zigbee_signal_handler_04_reboot.svg b/_images/zigbee_signal_handler_04_reboot.svg new file mode 100644 index 00000000..6a58d726 --- /dev/null +++ b/_images/zigbee_signal_handler_04_reboot.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + Page-1 + + Nordic Blue + ZB_BDB_SIGNAL_DEVICE_REBOOT + + ZB_BDB_SIGNAL_DEVICE_REBOOT + + Nordic Blue.1342 + stop_network_rejoin(ZB_FALSE) + + stop_network_rejoin(ZB_FALSE) + + Dynamic connector.1343 + + + + Circle.1344 + + + + Dynamic connector.1345 + + + + Hexagon + status == RET_OK + + status == RET_OK + + Hexagon.1347 + role == coordinator + + role == coordinator + + Diamond.1349 + + + + Nordic Blue.1350 + start_network_rejoin() + + start_network_rejoin() + + Dynamic connector.1353 + + + + Dynamic connector.1354 + + + + Dynamic connector.1355 + + + + Dynamic connector.1357 + + + + Sheet.1358 + no + + no + + Sheet.1360 + no + + no + + Sheet.1361 + yes + + yes + + Sheet.1362 + yes + + yes + + Dynamic connector.1363 + + + + Diamond.1364 + + + + Dynamic connector.1365 + + + + Dynamic connector.1366 + + + + diff --git a/_images/zigbee_signal_handler_05_formation.svg b/_images/zigbee_signal_handler_05_formation.svg new file mode 100644 index 00000000..cc91ac66 --- /dev/null +++ b/_images/zigbee_signal_handler_05_formation.svg @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + Page-1 + + Nordic Blue + ZB_BDB_SIGNAL_FORMATION + + ZB_BDB_SIGNAL_FORMATION + + Nordic Blue.1342 + bdb_start_top_level_commissioning(ZB_BDB_NETWORK_STEERING) + + bdb_start_top_level_commissioning(ZB_BDB_NETWORK_STEERING) + + Dynamic connector.1343 + + + + Circle.1344 + + + + Dynamic connector.1345 + + + + Hexagon + status == RET_OK + + status == RET_OK + + Diamond.1349 + + + + Nordic Blue.1350 + bdb_start_top_level_commissioning(ZB_BDB_NETWORK_FORMATION) + + bdb_start_top_level_commissioning(ZB_BDB_NETWORK_FORMATION) + + Dynamic connector.1353 + + + + Dynamic connector.1355 + + + + Dynamic connector.1357 + + + + Sheet.1358 + no + + no + + Sheet.1362 + yes + + yes + + Dynamic connector.1365 + + + + diff --git a/_images/zigbee_signal_handler_06_steering.svg b/_images/zigbee_signal_handler_06_steering.svg new file mode 100644 index 00000000..5dad4917 --- /dev/null +++ b/_images/zigbee_signal_handler_06_steering.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + Page-1 + + Nordic Blue + ZB_BDB_SIGNAL_STEERING + + ZB_BDB_SIGNAL_STEERING + + Dynamic connector.1343 + + + + Circle.1344 + + + + Dynamic connector.1345 + + + + Hexagon + status == RET_OK + + status == RET_OK + + Diamond.1349 + + + + Dynamic connector.1353 + + + + Dynamic connector.1355 + + + + Sheet.1358 + no + + no + + Sheet.1362 + yes + + yes + + Dynamic connector.1365 + + + + Hexagon.1368 + role == coordinator + + role == coordinator + + Dynamic connector.1369 + + + + Dynamic connector.1370 + + + + Diamond.1373 + + + + Dynamic connector.1374 + + + + Sheet.1376 + no + + no + + Dynamic connector.1378 + + + + Nordic Blue.1350 + start_network_rejoin() + + start_network_rejoin() + + Nordic Blue.1377 + stop_network_rejoin(ZB_FALSE) + + stop_network_rejoin(ZB_FALSE) + + Sheet.1380 + yes + + yes + + diff --git a/_images/zigbee_signal_handler_07_idle.svg b/_images/zigbee_signal_handler_07_idle.svg new file mode 100644 index 00000000..4c9a800a --- /dev/null +++ b/_images/zigbee_signal_handler_07_idle.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + Page-1 + + Nordic Blue + zboss_main_loop_iteration() + + zboss_main_loop_iteration() + + Circle.1344 + + + + Hexagon + scheduler_queue_empty? + + scheduler_queue_empty? + + Diamond.1349 + + + + Dynamic connector.1353 + + + + Dynamic connector.1355 + + + + Sheet.1358 + no + + no + + Sheet.1362 + yes + + yes + + Hexagon.1368 + inactivity_time > sleep_threshold + + inactivity_time > sleep_threshold + + Dynamic connector.1370 + + + + Diamond.1373 + + + + Dynamic connector.1374 + + + + Sheet.1376 + no + + no + + Sheet.1380 + yes + + yes + + Dynamic connector.1381 + + + + Dynamic connector.1406 + + + + Dynamic connector.1407 + + + + Dynamic connector.1408 + + + + Nordic Blue.1377 + zb_schedule(ZB_COMMON_SIGNAL_CAN_SLEEP) + + zb_schedule(ZB_COMMON_SIGNAL_CAN_SLEEP) + + diff --git a/_images/zigbee_signal_handler_08_deep_sleep.svg b/_images/zigbee_signal_handler_08_deep_sleep.svg new file mode 100644 index 00000000..fe5c7180 --- /dev/null +++ b/_images/zigbee_signal_handler_08_deep_sleep.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + Page-1 + + Nordic Blue + ZB_COMMON_SIGNAL_CAN_SLEEP + + ZB_COMMON_SIGNAL_CAN_SLEEP + + Circle.1344 + + + + Nordic Light Grey + + + + Nordic Sky + + + + Nordic Blue.1414 + zigbee_event_poll(inactivity_time) + + zigbee_event_poll(inactivity_time) + + Sheet.1416 + zb_sleep_now() + + zb_sleep_now() + + Sheet.1418 + zb_osif_sleep() + + zb_osif_sleep() + + Dynamic connector.1419 + + + + Dynamic connector.1370 + + + + diff --git a/_images/zigbee_signal_handler_09_leave.svg b/_images/zigbee_signal_handler_09_leave.svg new file mode 100644 index 00000000..ebabcbb7 --- /dev/null +++ b/_images/zigbee_signal_handler_09_leave.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + Page-1 + + Nordic Blue + ZB_ZDO_SIGNAL_LEAVE + + ZB_ZDO_SIGNAL_LEAVE + + Circle.1344 + + + + Hexagon + status == RET_OK + + status == RET_OK + + Diamond.1349 + + + + Dynamic connector.1353 + + + + Dynamic connector.1355 + + + + Sheet.1358 + no + + no + + Sheet.1362 + yes + + yes + + Hexagon.1368 + role == coordinator + + role == coordinator + + Dynamic connector.1370 + + + + Diamond.1373 + + + + Dynamic connector.1374 + + + + Sheet.1376 + no + + no + + Sheet.1380 + yes + + yes + + Dynamic connector.1381 + + + + Dynamic connector.1382 + + + + Dynamic connector.1406 + + + + Dynamic connector.1407 + + + + Dynamic connector.1408 + + + + Nordic Blue.1350 + start_network_rejoin() + + start_network_rejoin() + + Nordic Blue.1377 + bdb_start_top_level_commissioning(ZB_BDB_NETWORK_FORMATION) + + bdb_start_top_level_commissioning(ZB_BDB_NETWORK_FORMATION) + + diff --git a/_images/zigbee_signal_handler_10_rejoin.svg b/_images/zigbee_signal_handler_10_rejoin.svg new file mode 100644 index 00000000..1b29afaa --- /dev/null +++ b/_images/zigbee_signal_handler_10_rejoin.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + Drawing + + Nordic Blue.1368 + start_network_rejoin() + + start_network_rejoin() + + Dynamic connector.1421 + + + + Nordic Blue.1422 + Schedule stop_network_rejoin(ZB_TRUE) after ZB_DEV_REJOIN_TIM... + + Schedule stop_network_rejoin(ZB_TRUE) after ZB_DEV_REJOIN_TIMEOUT_MS + + Hexagon.1423 + role == end device + + role == end device + + Dynamic connector.1424 + yes + + yes + + Nordic Blue.1425 + Schedule network steering after 2^n sec + + Schedule network steering after 2^n sec + + Dynamic connector.1426 + + + + Diamond.1428 + + + + Circle.1430 + + + + Dynamic connector.1431 + + + + Dynamic connector.1432 + no + + no + + Nordic Blue.1505 + n++ + + n++ + + Dynamic connector.1506 + + + + Dynamic connector + + + + Hexagon.1474 + wait_for_user_input + + wait_for_user_input + + Dynamic connector.1511 + false + + false + + Diamond.1513 + + + + Dynamic connector.1514 + true + + true + + Dynamic connector.1518 + + + + diff --git a/_images/zigbee_signal_handler_10_rejoin_stop.svg b/_images/zigbee_signal_handler_10_rejoin_stop.svg new file mode 100644 index 00000000..cbfb49cd --- /dev/null +++ b/_images/zigbee_signal_handler_10_rejoin_stop.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + Drawing + + Nordic Blue.1497 + stop_network_rejoin(was_scheduled) + + stop_network_rejoin(was_scheduled) + + Nordic Blue.1498 + wait_for_user_input=was_scheduled + + wait_for_user_input=was_scheduled + + Dynamic connector.1499 + + + + Circle.1500 + + + + Dynamic connector.1501 + + + + diff --git a/_images/zigbee_signal_handler_10_rejoin_user_input.svg b/_images/zigbee_signal_handler_10_rejoin_user_input.svg new file mode 100644 index 00000000..708beed9 --- /dev/null +++ b/_images/zigbee_signal_handler_10_rejoin_user_input.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + Drawing + + Nordic Blue.1375 + user_input_indicate() + + user_input_indicate() + + Circle.1470 + User action (e.g. button press) + + User action (e.g. button press) + + Hexagon.1474 + wait_for_user_input + + wait_for_user_input + + Dynamic connector.1475 + true + + true + + Dynamic connector.1476 + + + + Dynamic connector.1477 + + + + Dynamic connector.1479 + false + + false + + Nordic Blue.1502 + wait_for_user_input=false + + wait_for_user_input=false + + Diamond.1428 + + + + Circle.1430 + + + + Dynamic connector.1431 + + + + Dynamic connector + + + + Nordic Blue.1508 + start_network_rejoin() + + start_network_rejoin() + + Dynamic connector.1509 + + + + diff --git a/_images/zigbee_signal_handler_overview.svg b/_images/zigbee_signal_handler_overview.svg new file mode 100644 index 00000000..a71b3b3d --- /dev/null +++ b/_images/zigbee_signal_handler_overview.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + Drawing + + Nordic Blueslate.1724 + Stack start + + Stack start + + Nordic Blueslate.1728 + BDB initialization (two scenarios) + + BDB initialization (two scenarios) + + Nordic Blueslate.1729 + Network formation + + Network formation + + Nordic Blueslate.1730 + Network joining + + Network joining + + Dynamic connector.1733 + + + + Dynamic connector.1734 + + + + Dynamic connector.1735 + + + + Dynamic connector.1737 + + + + Nordic Blueslate.1739 + Zigbee stack sleep routines + + Zigbee stack sleep routines + + Nordic Blueslate.1742 + Network leaving + + Network leaving + + Dynamic connector.1743 + + + + Dynamic connector.1744 + + + + Dynamic connector.1745 + + + + Dynamic connector.1746 + + + + Sheet.1747 + Device in network + + Device in network + + Dynamic connector.1748 + + + + Dynamic connector.1749 + + + + Dynamic connector.1776 + + + + Dynamic connector.1777 + + + + Dynamic connector.1778 + + + + diff --git a/_images/zigbee_topology_types.svg b/_images/zigbee_topology_types.svg new file mode 100644 index 00000000..b06f4899 --- /dev/null +++ b/_images/zigbee_topology_types.svg @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + Drawing + + Sheet.168 + + Sheet.115 + C + + C + + Sheet.126 + R + + R + + Sheet.127 + R + + R + + Sheet.152 + ED + + ED + + Sheet.153 + ED + + ED + + Sheet.154 + ED + + ED + + Sheet.155 + ED + + ED + + Sheet.156 + ED + + ED + + Sheet.160 + Tree + + Tree + + Dynamic connector.161 + + + + Dynamic connector.162 + + + + Dynamic connector.163 + + + + Dynamic connector.164 + + + + Dynamic connector.165 + + + + Dynamic connector.166 + + + + Dynamic connector.167 + + + + + Sheet.169 + + Sheet.108 + R + + R + + Sheet.109 + ED + + ED + + Sheet.110 + C + + C + + Dynamic connector.111 + + + + Sheet.122 + ED + + ED + + Sheet.123 + R + + R + + Sheet.124 + R + + R + + Sheet.125 + ED + + ED + + Dynamic connector.138 + + + + Dynamic connector.140 + + + + Sheet.142 + ED + + ED + + Sheet.143 + ED + + ED + + Sheet.144 + ED + + ED + + Dynamic connector.145 + + + + Dynamic connector.146 + + + + Dynamic connector.147 + + + + Dynamic connector.148 + + + + Dynamic connector.149 + + + + Dynamic connector.150 + + + + Dynamic connector.151 + + + + Sheet.159 + Mesh + + Mesh + + + Sheet.170 + + Sheet.103 + R + + R + + Sheet.104 + ED + + ED + + Sheet.105 + C + + C + + Dynamic connector.106 + + + + Dynamic connector.107 + + + + Sheet.118 + ED + + ED + + Sheet.119 + ED + + ED + + Sheet.120 + R + + R + + Sheet.121 + ED + + ED + + Dynamic connector + + + + Dynamic connector.130 + + + + Dynamic connector.132 + + + + Dynamic connector.133 + + + + Sheet.157 + Star + + Star + + + Sheet.171 + + Sheet.74 + + + + Nordic Blue.75 + + + + Nordic Blue.76 + + + + Sheet.79 + End device + + End device + + Dynamic connector.82 + + + + Sheet.83 + Router + + Router + + Sheet.84 + Communication + + Communication + + Nordic Blue.86 + + + + Sheet.87 + Coordinator + + Coordinator + + + diff --git a/_images/zoi-logo.png b/_images/zoi-logo.png new file mode 100644 index 00000000..1284a211 Binary files /dev/null and b/_images/zoi-logo.png differ diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 00000000..603f6a87 --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,905 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 450px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a.brackets:before, +span.brackets > a:before{ + content: "["; +} + +a.brackets:after, +span.brackets > a:after { + content: "]"; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +dl.footnote > dt, +dl.citation > dt { + float: left; + margin-right: 0.5em; +} + +dl.footnote > dd, +dl.citation > dd { + margin-bottom: 0em; +} + +dl.footnote > dd:after, +dl.citation > dd:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dt:after { + content: ":"; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/css/badge_only.css b/_static/css/badge_only.css new file mode 100644 index 00000000..e380325b --- /dev/null +++ b/_static/css/badge_only.css @@ -0,0 +1 @@ +.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff b/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 00000000..6cb60000 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff2 b/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 00000000..7059e231 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff b/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 00000000..f815f63f Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff2 b/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 00000000..f2c76e5b Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/_static/css/fonts/fontawesome-webfont.eot b/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..e9f60ca9 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/_static/css/fonts/fontawesome-webfont.svg b/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..855c845e --- /dev/null +++ b/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_static/css/fonts/fontawesome-webfont.ttf b/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..35acda2f Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/_static/css/fonts/fontawesome-webfont.woff b/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..400014a4 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/_static/css/fonts/fontawesome-webfont.woff2 b/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..4d13fc60 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/_static/css/fonts/lato-bold-italic.woff b/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 00000000..88ad05b9 Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff differ diff --git a/_static/css/fonts/lato-bold-italic.woff2 b/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 00000000..c4e3d804 Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/_static/css/fonts/lato-bold.woff b/_static/css/fonts/lato-bold.woff new file mode 100644 index 00000000..c6dff51f Binary files /dev/null and b/_static/css/fonts/lato-bold.woff differ diff --git a/_static/css/fonts/lato-bold.woff2 b/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 00000000..bb195043 Binary files /dev/null and b/_static/css/fonts/lato-bold.woff2 differ diff --git a/_static/css/fonts/lato-normal-italic.woff b/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 00000000..76114bc0 Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff differ diff --git a/_static/css/fonts/lato-normal-italic.woff2 b/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 00000000..3404f37e Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/_static/css/fonts/lato-normal.woff b/_static/css/fonts/lato-normal.woff new file mode 100644 index 00000000..ae1307ff Binary files /dev/null and b/_static/css/fonts/lato-normal.woff differ diff --git a/_static/css/fonts/lato-normal.woff2 b/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 00000000..3bf98433 Binary files /dev/null and b/_static/css/fonts/lato-normal.woff2 differ diff --git a/_static/css/nordic.css b/_static/css/nordic.css new file mode 100644 index 00000000..fe4c1988 --- /dev/null +++ b/_static/css/nordic.css @@ -0,0 +1,341 @@ +/* import sphinx-rtd-theme stylesheet */ +@import "theme.css"; + +:root { + --docset-color: #2980b9; +} + +/* make the page width fill the window */ +.wy-nav-content { + max-width: none; +} + +/* Display version number in white */ +.wy-side-nav-search > div.version { + color: #fff; +} + +/* Set background and border for navigation pane */ +.wy-nav-side { + background: #fafafa; + border-right: #ddd solid 1px; +} + +/* Light background when expanding as well */ +.wy-menu-vertical li.current, +.wy-menu-vertical li.toctree-l2.current > a, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a, +.wy-menu-vertical li.toctree-l3.current > a, +.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a { + background: #fafafa; +} + +/* no change when hovering */ +.wy-menu-vertical a:hover, +.wy-menu-vertical li.current a:hover { + background: #fafafa; +} + +/* No scroll bar, white text for the doc switcher */ +.rst-versions { + overflow: hidden; +} +.rst-versions a { + color: #fff; +} + +/* Spacing in drop-down */ +.rst-versions .rst-other-versions { + padding: 0px; +} +.rst-other-version { + padding: 12px; +} + +/* Spacing of lists in the main document */ +.document li > ol, +.document li > ul { + margin: 5px 0px !important; +} + +.wy-side-nav-search input[type="text"] { + border-width: 0; +} + +/* Center-align images */ +div.figure { + text-align: center; +} + +.caption { + padding-top: 10px; +} + +/* differentiate more between headings */ + +h5 { + font-size: 105%; +} + +h6 { + font-size: 90%; +} + +/* footer */ +footer table { + width: 100%; +} + +#nordiclogo { + width: 100px; +} + +/* + * dbk tweak for doxygen-generated API headings (for RTD theme) + */ +/* hide a heading doxygen adds before details and the details section */ +.rst-content dl.group > dt, .rst-content dl.group > dd > p, +/* hide the #include line for every class (aka struct) and union */ +.rst-content dl.class > dd > em, .rst-content dl.union > dd > em, +/* hide