From 045b8e7b18da0965deb2793ae81bb635130b970c Mon Sep 17 00:00:00 2001 From: Matthieu Antoine Date: Mon, 13 Mar 2023 23:41:25 +0100 Subject: [PATCH] Release v1.2.0 --- CHANGELOG.md | 9 +- README.md | 2 +- doc/lr1110/html/classes.html | 124 - doc/lr1110/html/form_20.png | Bin 5311 -> 0 bytes doc/lr1110/html/form_21.png | Bin 5269 -> 0 bytes doc/lr1110/html/functions.html | 348 --- doc/lr1110/html/functions_vars.html | 348 --- doc/lr1110/html/globals_defs.html | 221 -- doc/lr1110/html/globals_enum.html | 275 -- doc/lr1110/html/globals_eval.html | 635 ----- doc/lr1110/html/globals_func_l.html | 808 ------ doc/lr1110/html/globals_l.html | 1894 -------------- doc/lr1110/html/globals_type.html | 275 -- .../html/lr1110__bootloader_8c__incl.map | 9 - .../html/lr1110__bootloader_8c__incl.md5 | 1 - .../html/lr1110__bootloader_8c__incl.png | Bin 17030 -> 0 bytes .../html/lr1110__bootloader_8h__dep__incl.map | 4 - .../html/lr1110__bootloader_8h__dep__incl.md5 | 1 - .../html/lr1110__bootloader_8h__dep__incl.png | Bin 5642 -> 0 bytes .../html/lr1110__bootloader_8h__incl.map | 7 - .../html/lr1110__bootloader_8h__incl.md5 | 1 - .../html/lr1110__bootloader_8h__incl.png | Bin 10381 -> 0 bytes .../html/lr1110__bootloader__types_8h.html | 226 -- ...r1110__bootloader__types_8h__dep__incl.map | 5 - ...r1110__bootloader__types_8h__dep__incl.md5 | 1 - ...r1110__bootloader__types_8h__dep__incl.png | Bin 8930 -> 0 bytes .../lr1110__bootloader__types_8h__incl.md5 | 1 - .../lr1110__bootloader__types_8h__incl.png | Bin 6374 -> 0 bytes .../html/lr1110__crypto__engine_8c__incl.map | 9 - .../html/lr1110__crypto__engine_8c__incl.md5 | 1 - .../html/lr1110__crypto__engine_8c__incl.png | Bin 19709 -> 0 bytes .../lr1110__crypto__engine_8h__dep__incl.map | 4 - .../lr1110__crypto__engine_8h__dep__incl.md5 | 1 - .../lr1110__crypto__engine_8h__dep__incl.png | Bin 6278 -> 0 bytes .../html/lr1110__crypto__engine_8h__incl.map | 6 - .../html/lr1110__crypto__engine_8h__incl.md5 | 1 - .../html/lr1110__crypto__engine_8h__incl.png | Bin 10272 -> 0 bytes .../lr1110__crypto__engine__types_8h.html | 288 --- ...0__crypto__engine__types_8h__dep__incl.map | 5 - ...0__crypto__engine__types_8h__dep__incl.md5 | 1 - ...0__crypto__engine__types_8h__dep__incl.png | Bin 9690 -> 0 bytes ...lr1110__crypto__engine__types_8h__incl.map | 4 - ...lr1110__crypto__engine__types_8h__incl.md5 | 1 - ...lr1110__crypto__engine__types_8h__incl.png | Bin 4491 -> 0 bytes ...1110__crypto__engine__types_8h_source.html | 218 -- .../html/lr1110__driver__version_8c__incl.map | 4 - .../html/lr1110__driver__version_8c__incl.md5 | 1 - .../html/lr1110__driver__version_8c__incl.png | Bin 4633 -> 0 bytes .../lr1110__driver__version_8h__dep__incl.map | 4 - .../lr1110__driver__version_8h__dep__incl.md5 | 1 - .../lr1110__driver__version_8h__dep__incl.png | Bin 5246 -> 0 bytes doc/lr1110/html/lr1110__gnss_8c__incl.map | 10 - doc/lr1110/html/lr1110__gnss_8c__incl.md5 | 1 - doc/lr1110/html/lr1110__gnss_8c__incl.png | Bin 22508 -> 0 bytes .../html/lr1110__gnss_8h__dep__incl.map | 4 - .../html/lr1110__gnss_8h__dep__incl.md5 | 1 - .../html/lr1110__gnss_8h__dep__incl.png | Bin 4898 -> 0 bytes doc/lr1110/html/lr1110__gnss_8h__incl.map | 7 - doc/lr1110/html/lr1110__gnss_8h__incl.md5 | 1 - doc/lr1110/html/lr1110__gnss_8h__incl.png | Bin 9168 -> 0 bytes doc/lr1110/html/lr1110__gnss_8h_source.html | 234 -- doc/lr1110/html/lr1110__gnss__types_8h.html | 526 ---- .../lr1110__gnss__types_8h__dep__incl.map | 5 - .../lr1110__gnss__types_8h__dep__incl.md5 | 1 - .../lr1110__gnss__types_8h__dep__incl.png | Bin 7895 -> 0 bytes .../html/lr1110__gnss__types_8h__incl.md5 | 1 - .../html/lr1110__gnss__types_8h__incl.png | Bin 6089 -> 0 bytes .../html/lr1110__gnss__types_8h_source.html | 320 --- doc/lr1110/html/lr1110__hal_8h__dep__incl.map | 11 - doc/lr1110/html/lr1110__hal_8h__dep__incl.md5 | 1 - doc/lr1110/html/lr1110__hal_8h__dep__incl.png | Bin 22788 -> 0 bytes doc/lr1110/html/lr1110__hal_8h__incl.md5 | 1 - doc/lr1110/html/lr1110__hal_8h__incl.png | Bin 5541 -> 0 bytes doc/lr1110/html/lr1110__lr__fhss_8c__incl.map | 12 - doc/lr1110/html/lr1110__lr__fhss_8c__incl.md5 | 1 - doc/lr1110/html/lr1110__lr__fhss_8c__incl.png | Bin 27999 -> 0 bytes .../html/lr1110__lr__fhss_8h__dep__incl.map | 4 - .../html/lr1110__lr__fhss_8h__dep__incl.md5 | 1 - .../html/lr1110__lr__fhss_8h__dep__incl.png | Bin 4725 -> 0 bytes doc/lr1110/html/lr1110__lr__fhss_8h__incl.md5 | 1 - doc/lr1110/html/lr1110__lr__fhss_8h__incl.png | Bin 11942 -> 0 bytes .../lr1110__lr__fhss__types_8h__dep__incl.map | 5 - .../lr1110__lr__fhss__types_8h__dep__incl.md5 | 1 - .../lr1110__lr__fhss__types_8h__dep__incl.png | Bin 7708 -> 0 bytes .../html/lr1110__lr__fhss__types_8h__incl.md5 | 1 - .../html/lr1110__lr__fhss__types_8h__incl.png | Bin 7494 -> 0 bytes doc/lr1110/html/lr1110__radio_8c__incl.map | 9 - doc/lr1110/html/lr1110__radio_8c__incl.md5 | 1 - doc/lr1110/html/lr1110__radio_8c__incl.png | Bin 17330 -> 0 bytes .../html/lr1110__radio_8h__dep__incl.map | 6 - .../html/lr1110__radio_8h__dep__incl.md5 | 1 - .../html/lr1110__radio_8h__dep__incl.png | Bin 8956 -> 0 bytes doc/lr1110/html/lr1110__radio_8h__incl.map | 7 - doc/lr1110/html/lr1110__radio_8h__incl.md5 | 1 - doc/lr1110/html/lr1110__radio_8h__incl.png | Bin 10754 -> 0 bytes doc/lr1110/html/lr1110__radio_8h_source.html | 307 --- .../html/lr1110__radio__timings_8c__incl.map | 9 - .../html/lr1110__radio__timings_8c__incl.md5 | 1 - .../html/lr1110__radio__timings_8c__incl.png | Bin 13769 -> 0 bytes .../lr1110__radio__timings_8h__dep__incl.map | 4 - .../lr1110__radio__timings_8h__dep__incl.md5 | 1 - .../lr1110__radio__timings_8h__dep__incl.png | Bin 6123 -> 0 bytes .../html/lr1110__radio__timings_8h__incl.map | 6 - .../html/lr1110__radio__timings_8h__incl.md5 | 1 - .../html/lr1110__radio__timings_8h__incl.png | Bin 8658 -> 0 bytes doc/lr1110/html/lr1110__radio__types_8h.html | 1074 -------- .../lr1110__radio__types_8h__dep__incl.map | 8 - .../lr1110__radio__types_8h__dep__incl.md5 | 1 - .../lr1110__radio__types_8h__dep__incl.png | Bin 15049 -> 0 bytes .../html/lr1110__radio__types_8h__incl.md5 | 1 - .../html/lr1110__radio__types_8h__incl.png | Bin 6243 -> 0 bytes .../html/lr1110__radio__types_8h_source.html | 615 ----- doc/lr1110/html/lr1110__regmem_8c__incl.map | 8 - doc/lr1110/html/lr1110__regmem_8c__incl.md5 | 1 - doc/lr1110/html/lr1110__regmem_8c__incl.png | Bin 11829 -> 0 bytes .../html/lr1110__regmem_8h__dep__incl.map | 7 - .../html/lr1110__regmem_8h__dep__incl.md5 | 1 - .../html/lr1110__regmem_8h__dep__incl.png | Bin 11839 -> 0 bytes doc/lr1110/html/lr1110__regmem_8h__incl.map | 5 - doc/lr1110/html/lr1110__regmem_8h__incl.md5 | 1 - doc/lr1110/html/lr1110__regmem_8h__incl.png | Bin 6539 -> 0 bytes doc/lr1110/html/lr1110__system_8c__incl.map | 10 - doc/lr1110/html/lr1110__system_8c__incl.md5 | 1 - doc/lr1110/html/lr1110__system_8c__incl.png | Bin 17483 -> 0 bytes .../html/lr1110__system_8h__dep__incl.map | 4 - .../html/lr1110__system_8h__dep__incl.md5 | 1 - .../html/lr1110__system_8h__dep__incl.png | Bin 5345 -> 0 bytes doc/lr1110/html/lr1110__system_8h__incl.map | 7 - doc/lr1110/html/lr1110__system_8h__incl.md5 | 1 - doc/lr1110/html/lr1110__system_8h__incl.png | Bin 9529 -> 0 bytes doc/lr1110/html/lr1110__system_8h_source.html | 257 -- doc/lr1110/html/lr1110__system__types_8h.html | 450 ---- .../lr1110__system__types_8h__dep__incl.map | 5 - .../lr1110__system__types_8h__dep__incl.md5 | 1 - .../lr1110__system__types_8h__dep__incl.png | Bin 8422 -> 0 bytes .../html/lr1110__system__types_8h__incl.md5 | 1 - .../html/lr1110__system__types_8h__incl.png | Bin 6125 -> 0 bytes .../html/lr1110__system__types_8h_source.html | 343 --- .../html/lr1110__types_8h__dep__incl.map | 20 - .../html/lr1110__types_8h__dep__incl.md5 | 1 - .../html/lr1110__types_8h__dep__incl.png | Bin 51862 -> 0 bytes doc/lr1110/html/lr1110__wifi_8c__incl.map | 10 - doc/lr1110/html/lr1110__wifi_8c__incl.md5 | 1 - doc/lr1110/html/lr1110__wifi_8c__incl.png | Bin 23962 -> 0 bytes .../html/lr1110__wifi_8h__dep__incl.map | 4 - .../html/lr1110__wifi_8h__dep__incl.md5 | 1 - .../html/lr1110__wifi_8h__dep__incl.png | Bin 4914 -> 0 bytes doc/lr1110/html/lr1110__wifi_8h__incl.map | 8 - doc/lr1110/html/lr1110__wifi_8h__incl.md5 | 1 - doc/lr1110/html/lr1110__wifi_8h__incl.png | Bin 13589 -> 0 bytes doc/lr1110/html/lr1110__wifi_8h_source.html | 239 -- doc/lr1110/html/lr1110__wifi__types_8h.html | 610 ----- .../lr1110__wifi__types_8h__dep__incl.map | 5 - .../lr1110__wifi__types_8h__dep__incl.md5 | 1 - .../lr1110__wifi__types_8h__dep__incl.png | Bin 8075 -> 0 bytes .../html/lr1110__wifi__types_8h__incl.md5 | 1 - .../html/lr1110__wifi__types_8h__incl.png | Bin 6282 -> 0 bytes .../html/lr1110__wifi__types_8h_source.html | 407 --- ...r__fhss__v1__base__types_8h__dep__incl.map | 6 - ...r__fhss__v1__base__types_8h__dep__incl.md5 | 1 - ...r__fhss__v1__base__types_8h__dep__incl.png | Bin 10959 -> 0 bytes .../lr__fhss__v1__base__types_8h__incl.md5 | 1 - .../lr__fhss__v1__base__types_8h__incl.png | Bin 6224 -> 0 bytes doc/lr1110/html/search/all_0.js | 4 - doc/lr1110/html/search/all_1.js | 7 - doc/lr1110/html/search/all_2.js | 14 - doc/lr1110/html/search/all_3.js | 6 - doc/lr1110/html/search/all_4.js | 6 - doc/lr1110/html/search/all_5.js | 6 - doc/lr1110/html/search/all_6.js | 5 - doc/lr1110/html/search/all_7.js | 18 - doc/lr1110/html/search/all_8.js | 626 ----- doc/lr1110/html/search/all_9.js | 8 - doc/lr1110/html/search/all_a.js | 4 - doc/lr1110/html/search/all_b.js | 12 - doc/lr1110/html/search/all_c.js | 12 - doc/lr1110/html/search/all_d.js | 11 - doc/lr1110/html/search/all_e.js | 5 - doc/lr1110/html/search/all_f.js | 5 - doc/lr1110/html/search/classes_0.js | 38 - doc/lr1110/html/search/defines_0.js | 5 - doc/lr1110/html/search/defines_1.js | 44 - doc/lr1110/html/search/defines_2.js | 4 - doc/lr1110/html/search/defines_3.js | 4 - doc/lr1110/html/search/enums_0.js | 70 - doc/lr1110/html/search/enumvalues_0.js | 190 -- doc/lr1110/html/search/files_0.js | 33 - doc/lr1110/html/search/functions_0.js | 4 - doc/lr1110/html/search/functions_1.js | 4 - doc/lr1110/html/search/functions_2.js | 6 - doc/lr1110/html/search/functions_3.js | 194 -- doc/lr1110/html/search/functions_4.js | 5 - doc/lr1110/html/search/pages_0.js | 4 - doc/lr1110/html/search/typedefs_0.js | 70 - doc/lr1110/html/search/variables_0.js | 4 - doc/lr1110/html/search/variables_1.js | 7 - doc/lr1110/html/search/variables_2.js | 14 - doc/lr1110/html/search/variables_3.js | 6 - doc/lr1110/html/search/variables_4.js | 5 - doc/lr1110/html/search/variables_5.js | 5 - doc/lr1110/html/search/variables_6.js | 5 - doc/lr1110/html/search/variables_7.js | 13 - doc/lr1110/html/search/variables_8.js | 8 - doc/lr1110/html/search/variables_9.js | 8 - doc/lr1110/html/search/variables_a.js | 12 - doc/lr1110/html/search/variables_b.js | 11 - doc/lr1110/html/search/variables_c.js | 11 - doc/lr1110/html/search/variables_d.js | 4 - ...1110__lr__fhss__params__t__coll__graph.md5 | 1 - ...1110__lr__fhss__params__t__coll__graph.png | Bin 4660 -> 0 bytes ...1110__wifi__extended__full__result__t.html | 198 -- ...extended__full__result__t__coll__graph.md5 | 1 - ...extended__full__result__t__coll__graph.png | Bin 6775 -> 0 bytes ...ifi__result__interface__t__coll__graph.map | 7 - ...ifi__result__interface__t__coll__graph.md5 | 1 - ...ifi__result__interface__t__coll__graph.png | Bin 20674 -> 0 bytes doc/{lr1110 => lr11xx}/html/annotated.html | 75 +- doc/{lr1110 => lr11xx}/html/bc_s.png | Bin doc/{lr1110 => lr11xx}/html/bdwn.png | Bin doc/lr11xx/html/classes.html | 125 + doc/{lr1110 => lr11xx}/html/closed.png | Bin ...dir_6601b1d445de63d8503961b2b8f16c50.html} | 122 +- ...dir_cffe238c7138f5e12fb514e7642ab336.html} | 8 +- doc/{lr1110 => lr11xx}/html/doc.png | Bin doc/{lr1110 => lr11xx}/html/doxygen.css | 0 doc/{lr1110 => lr11xx}/html/doxygen.svg | 0 doc/{lr1110 => lr11xx}/html/dynsections.js | 0 doc/{lr1110 => lr11xx}/html/files.html | 66 +- doc/{lr1110 => lr11xx}/html/folderclosed.png | Bin doc/{lr1110 => lr11xx}/html/folderopen.png | Bin doc/{lr1110 => lr11xx}/html/form_0.png | Bin doc/{lr1110 => lr11xx}/html/form_1.png | Bin doc/{lr1110 => lr11xx}/html/form_10.png | Bin doc/{lr1110 => lr11xx}/html/form_11.png | Bin doc/{lr1110 => lr11xx}/html/form_12.png | Bin doc/{lr1110 => lr11xx}/html/form_13.png | Bin doc/{lr1110 => lr11xx}/html/form_14.png | Bin doc/{lr1110 => lr11xx}/html/form_15.png | Bin doc/{lr1110 => lr11xx}/html/form_16.png | Bin doc/{lr1110 => lr11xx}/html/form_17.png | Bin doc/{lr1110 => lr11xx}/html/form_18.png | Bin doc/{lr1110 => lr11xx}/html/form_19.png | Bin doc/{lr1110 => lr11xx}/html/form_2.png | Bin doc/lr11xx/html/form_20.png | Bin 0 -> 5363 bytes doc/lr11xx/html/form_21.png | Bin 0 -> 5320 bytes doc/{lr1110 => lr11xx}/html/form_22.png | Bin doc/{lr1110 => lr11xx}/html/form_3.png | Bin doc/{lr1110 => lr11xx}/html/form_4.png | Bin doc/{lr1110 => lr11xx}/html/form_5.png | Bin doc/{lr1110 => lr11xx}/html/form_6.png | Bin doc/{lr1110 => lr11xx}/html/form_7.png | Bin doc/{lr1110 => lr11xx}/html/form_8.png | Bin doc/{lr1110 => lr11xx}/html/form_9.png | Bin .../html/formula.repository | 4 +- doc/lr11xx/html/functions.html | 357 +++ doc/lr11xx/html/functions_vars.html | 357 +++ doc/{lr1110 => lr11xx}/html/globals.html | 6 +- doc/lr11xx/html/globals_defs.html | 230 ++ doc/lr11xx/html/globals_enum.html | 275 ++ doc/lr11xx/html/globals_eval.html | 659 +++++ doc/{lr1110 => lr11xx}/html/globals_func.html | 6 +- .../html/globals_func_g.html | 6 +- .../html/globals_func_i.html | 10 +- doc/lr11xx/html/globals_func_l.html | 828 ++++++ .../html/globals_func_u.html | 8 +- doc/{lr1110 => lr11xx}/html/globals_g.html | 6 +- doc/{lr1110 => lr11xx}/html/globals_i.html | 14 +- doc/lr11xx/html/globals_l.html | 1953 +++++++++++++++ doc/{lr1110 => lr11xx}/html/globals_r.html | 6 +- doc/{lr1110 => lr11xx}/html/globals_t.html | 6 +- doc/lr11xx/html/globals_type.html | 281 +++ doc/{lr1110 => lr11xx}/html/globals_u.html | 8 +- doc/{lr1110 => lr11xx}/html/graph_legend.html | 4 +- doc/{lr1110 => lr11xx}/html/graph_legend.md5 | 0 doc/{lr1110 => lr11xx}/html/graph_legend.png | Bin doc/{lr1110 => lr11xx}/html/index.html | 6 +- doc/{lr1110 => lr11xx}/html/jquery.js | 0 .../html/lr11xx__bootloader_8c.html} | 547 ++-- .../html/lr11xx__bootloader_8c__incl.map | 9 + .../html/lr11xx__bootloader_8c__incl.md5 | 1 + .../html/lr11xx__bootloader_8c__incl.png | Bin 0 -> 16994 bytes .../html/lr11xx__bootloader_8h.html} | 188 +- .../html/lr11xx__bootloader_8h__dep__incl.map | 4 + .../html/lr11xx__bootloader_8h__dep__incl.md5 | 1 + .../html/lr11xx__bootloader_8h__dep__incl.png | Bin 0 -> 5588 bytes .../html/lr11xx__bootloader_8h__incl.map | 7 + .../html/lr11xx__bootloader_8h__incl.md5 | 1 + .../html/lr11xx__bootloader_8h__incl.png | Bin 0 -> 10408 bytes .../html/lr11xx__bootloader_8h_source.html} | 84 +- .../html/lr11xx__bootloader__types_8h.html | 226 ++ ...r11xx__bootloader__types_8h__dep__incl.map | 5 + ...r11xx__bootloader__types_8h__dep__incl.md5 | 1 + ...r11xx__bootloader__types_8h__dep__incl.png | Bin 0 -> 8854 bytes .../lr11xx__bootloader__types_8h__incl.map} | 4 +- .../lr11xx__bootloader__types_8h__incl.md5 | 1 + .../lr11xx__bootloader__types_8h__incl.png | Bin 0 -> 6515 bytes .../lr11xx__bootloader__types_8h_source.html} | 132 +- .../html/lr11xx__crypto__engine_8c.html} | 637 ++--- .../html/lr11xx__crypto__engine_8c__incl.map | 9 + .../html/lr11xx__crypto__engine_8c__incl.md5 | 1 + .../html/lr11xx__crypto__engine_8c__incl.png | Bin 0 -> 19797 bytes .../html/lr11xx__crypto__engine_8h.html} | 268 +- .../lr11xx__crypto__engine_8h__dep__incl.map | 4 + .../lr11xx__crypto__engine_8h__dep__incl.md5 | 1 + .../lr11xx__crypto__engine_8h__dep__incl.png | Bin 0 -> 6165 bytes .../html/lr11xx__crypto__engine_8h__incl.map | 6 + .../html/lr11xx__crypto__engine_8h__incl.md5 | 1 + .../html/lr11xx__crypto__engine_8h__incl.png | Bin 0 -> 10246 bytes .../lr11xx__crypto__engine_8h_source.html} | 106 +- .../lr11xx__crypto__engine__types_8h.html | 288 +++ ...x__crypto__engine__types_8h__dep__incl.map | 5 + ...x__crypto__engine__types_8h__dep__incl.md5 | 1 + ...x__crypto__engine__types_8h__dep__incl.png | Bin 0 -> 9513 bytes ...lr11xx__crypto__engine__types_8h__incl.map | 4 + ...lr11xx__crypto__engine__types_8h__incl.md5 | 1 + ...lr11xx__crypto__engine__types_8h__incl.png | Bin 0 -> 4536 bytes ...11xx__crypto__engine__types_8h_source.html | 218 ++ .../html/lr11xx__driver__version_8c.html} | 36 +- .../html/lr11xx__driver__version_8c__incl.map | 4 + .../html/lr11xx__driver__version_8c__incl.md5 | 1 + .../html/lr11xx__driver__version_8c__incl.png | Bin 0 -> 4721 bytes .../html/lr11xx__driver__version_8h.html} | 64 +- .../lr11xx__driver__version_8h__dep__incl.map | 4 + .../lr11xx__driver__version_8h__dep__incl.md5 | 1 + .../lr11xx__driver__version_8h__dep__incl.png | Bin 0 -> 5322 bytes .../lr11xx__driver__version_8h_source.html} | 32 +- .../html/lr11xx__gnss_8c.html} | 1070 ++++---- doc/lr11xx/html/lr11xx__gnss_8c__incl.map | 11 + doc/lr11xx/html/lr11xx__gnss_8c__incl.md5 | 1 + doc/lr11xx/html/lr11xx__gnss_8c__incl.png | Bin 0 -> 27053 bytes .../html/lr11xx__gnss_8h.html} | 492 ++-- .../html/lr11xx__gnss_8h__dep__incl.map | 4 + .../html/lr11xx__gnss_8h__dep__incl.md5 | 1 + .../html/lr11xx__gnss_8h__dep__incl.png | Bin 0 -> 4827 bytes doc/lr11xx/html/lr11xx__gnss_8h__incl.map | 8 + doc/lr11xx/html/lr11xx__gnss_8h__incl.md5 | 1 + doc/lr11xx/html/lr11xx__gnss_8h__incl.png | Bin 0 -> 13394 bytes doc/lr11xx/html/lr11xx__gnss_8h_source.html | 241 ++ doc/lr11xx/html/lr11xx__gnss__types_8h.html | 526 ++++ .../lr11xx__gnss__types_8h__dep__incl.map | 5 + .../lr11xx__gnss__types_8h__dep__incl.md5 | 1 + .../lr11xx__gnss__types_8h__dep__incl.png | Bin 0 -> 7822 bytes .../html/lr11xx__gnss__types_8h__incl.map} | 4 +- .../html/lr11xx__gnss__types_8h__incl.md5 | 1 + .../html/lr11xx__gnss__types_8h__incl.png | Bin 0 -> 6177 bytes .../html/lr11xx__gnss__types_8h_source.html | 320 +++ .../html/lr11xx__hal_8h.html} | 148 +- doc/lr11xx/html/lr11xx__hal_8h__dep__incl.map | 11 + doc/lr11xx/html/lr11xx__hal_8h__dep__incl.md5 | 1 + doc/lr11xx/html/lr11xx__hal_8h__dep__incl.png | Bin 0 -> 22625 bytes .../html/lr11xx__hal_8h__incl.map} | 4 +- doc/lr11xx/html/lr11xx__hal_8h__incl.md5 | 1 + doc/lr11xx/html/lr11xx__hal_8h__incl.png | Bin 0 -> 5471 bytes .../html/lr11xx__hal_8h_source.html} | 54 +- .../html/lr11xx__lr__fhss_8c.html} | 525 ++-- doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.map | 12 + doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.md5 | 1 + doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.png | Bin 0 -> 27968 bytes .../html/lr11xx__lr__fhss_8h.html} | 98 +- .../html/lr11xx__lr__fhss_8h__dep__incl.map | 4 + .../html/lr11xx__lr__fhss_8h__dep__incl.md5 | 1 + .../html/lr11xx__lr__fhss_8h__dep__incl.png | Bin 0 -> 4709 bytes .../html/lr11xx__lr__fhss_8h__incl.map} | 8 +- doc/lr11xx/html/lr11xx__lr__fhss_8h__incl.md5 | 1 + doc/lr11xx/html/lr11xx__lr__fhss_8h__incl.png | Bin 0 -> 11904 bytes .../html/lr11xx__lr__fhss_8h_source.html} | 46 +- .../html/lr11xx__lr__fhss__types_8h.html} | 36 +- .../lr11xx__lr__fhss__types_8h__dep__incl.map | 5 + .../lr11xx__lr__fhss__types_8h__dep__incl.md5 | 1 + .../lr11xx__lr__fhss__types_8h__dep__incl.png | Bin 0 -> 7690 bytes .../lr11xx__lr__fhss__types_8h__incl.map} | 4 +- .../html/lr11xx__lr__fhss__types_8h__incl.md5 | 1 + .../html/lr11xx__lr__fhss__types_8h__incl.png | Bin 0 -> 7579 bytes .../lr11xx__lr__fhss__types_8h_source.html} | 36 +- .../html/lr11xx__radio_8c.html} | 1340 +++++----- doc/lr11xx/html/lr11xx__radio_8c__incl.map | 10 + doc/lr11xx/html/lr11xx__radio_8c__incl.md5 | 1 + doc/lr11xx/html/lr11xx__radio_8c__incl.png | Bin 0 -> 20858 bytes .../html/lr11xx__radio_8h.html} | 848 ++++--- .../html/lr11xx__radio_8h__dep__incl.map | 6 + .../html/lr11xx__radio_8h__dep__incl.md5 | 1 + .../html/lr11xx__radio_8h__dep__incl.png | Bin 0 -> 8788 bytes doc/lr11xx/html/lr11xx__radio_8h__incl.map | 7 + doc/lr11xx/html/lr11xx__radio_8h__incl.md5 | 1 + doc/lr11xx/html/lr11xx__radio_8h__incl.png | Bin 0 -> 10666 bytes doc/lr11xx/html/lr11xx__radio_8h_source.html | 315 +++ .../html/lr11xx__radio__timings_8c.html} | 108 +- .../html/lr11xx__radio__timings_8c__incl.map | 9 + .../html/lr11xx__radio__timings_8c__incl.md5 | 1 + .../html/lr11xx__radio__timings_8c__incl.png | Bin 0 -> 13621 bytes .../html/lr11xx__radio__timings_8h.html} | 62 +- .../lr11xx__radio__timings_8h__dep__incl.map | 4 + .../lr11xx__radio__timings_8h__dep__incl.md5 | 1 + .../lr11xx__radio__timings_8h__dep__incl.png | Bin 0 -> 6022 bytes .../html/lr11xx__radio__timings_8h__incl.map | 6 + .../html/lr11xx__radio__timings_8h__incl.md5 | 1 + .../html/lr11xx__radio__timings_8h__incl.png | Bin 0 -> 8637 bytes .../lr11xx__radio__timings_8h_source.html} | 36 +- doc/lr11xx/html/lr11xx__radio__types_8h.html | 1096 ++++++++ .../lr11xx__radio__types_8h__dep__incl.map | 8 + .../lr11xx__radio__types_8h__dep__incl.md5 | 1 + .../lr11xx__radio__types_8h__dep__incl.png | Bin 0 -> 14797 bytes .../html/lr11xx__radio__types_8h__incl.map} | 4 +- .../html/lr11xx__radio__types_8h__incl.md5 | 1 + .../html/lr11xx__radio__types_8h__incl.png | Bin 0 -> 6390 bytes .../html/lr11xx__radio__types_8h_source.html | 656 +++++ .../html/lr11xx__regmem_8c.html} | 557 ++-- doc/lr11xx/html/lr11xx__regmem_8c__incl.map | 8 + doc/lr11xx/html/lr11xx__regmem_8c__incl.md5 | 1 + doc/lr11xx/html/lr11xx__regmem_8c__incl.png | Bin 0 -> 11784 bytes .../html/lr11xx__regmem_8h.html} | 161 +- .../html/lr11xx__regmem_8h__dep__incl.map | 8 + .../html/lr11xx__regmem_8h__dep__incl.md5 | 1 + .../html/lr11xx__regmem_8h__dep__incl.png | Bin 0 -> 14852 bytes doc/lr11xx/html/lr11xx__regmem_8h__incl.map | 5 + doc/lr11xx/html/lr11xx__regmem_8h__incl.md5 | 1 + doc/lr11xx/html/lr11xx__regmem_8h__incl.png | Bin 0 -> 6504 bytes .../html/lr11xx__regmem_8h_source.html} | 54 +- .../html/lr11xx__system_8c.html} | 1040 ++++---- doc/lr11xx/html/lr11xx__system_8c__incl.map | 10 + doc/lr11xx/html/lr11xx__system_8c__incl.md5 | 1 + doc/lr11xx/html/lr11xx__system_8c__incl.png | Bin 0 -> 17320 bytes .../html/lr11xx__system_8h.html} | 584 ++--- .../html/lr11xx__system_8h__dep__incl.map | 4 + .../html/lr11xx__system_8h__dep__incl.md5 | 1 + .../html/lr11xx__system_8h__dep__incl.png | Bin 0 -> 5323 bytes doc/lr11xx/html/lr11xx__system_8h__incl.map | 7 + doc/lr11xx/html/lr11xx__system_8h__incl.md5 | 1 + doc/lr11xx/html/lr11xx__system_8h__incl.png | Bin 0 -> 9592 bytes doc/lr11xx/html/lr11xx__system_8h_source.html | 257 ++ doc/lr11xx/html/lr11xx__system__types_8h.html | 454 ++++ .../lr11xx__system__types_8h__dep__incl.map | 9 + .../lr11xx__system__types_8h__dep__incl.md5 | 1 + .../lr11xx__system__types_8h__dep__incl.png | Bin 0 -> 23905 bytes .../html/lr11xx__system__types_8h__incl.map} | 4 +- .../html/lr11xx__system__types_8h__incl.md5 | 1 + .../html/lr11xx__system__types_8h__incl.png | Bin 0 -> 6207 bytes .../html/lr11xx__system__types_8h_source.html | 343 +++ .../html/lr11xx__types_8h.html} | 76 +- .../html/lr11xx__types_8h__dep__incl.map | 20 + .../html/lr11xx__types_8h__dep__incl.md5 | 1 + .../html/lr11xx__types_8h__dep__incl.png | Bin 0 -> 46079 bytes .../html/lr11xx__types_8h_source.html} | 30 +- .../html/lr11xx__wifi_8c.html} | 1156 +++++---- doc/lr11xx/html/lr11xx__wifi_8c__incl.map | 11 + doc/lr11xx/html/lr11xx__wifi_8c__incl.md5 | 1 + doc/lr11xx/html/lr11xx__wifi_8c__incl.png | Bin 0 -> 26539 bytes .../html/lr11xx__wifi_8h.html} | 605 +++-- .../html/lr11xx__wifi_8h__dep__incl.map | 4 + .../html/lr11xx__wifi_8h__dep__incl.md5 | 1 + .../html/lr11xx__wifi_8h__dep__incl.png | Bin 0 -> 4829 bytes doc/lr11xx/html/lr11xx__wifi_8h__incl.map | 9 + doc/lr11xx/html/lr11xx__wifi_8h__incl.md5 | 1 + doc/lr11xx/html/lr11xx__wifi_8h__incl.png | Bin 0 -> 19260 bytes doc/lr11xx/html/lr11xx__wifi_8h_source.html | 250 ++ doc/lr11xx/html/lr11xx__wifi__types_8h.html | 631 +++++ .../lr11xx__wifi__types_8h__dep__incl.map | 5 + .../lr11xx__wifi__types_8h__dep__incl.md5 | 1 + .../lr11xx__wifi__types_8h__dep__incl.png | Bin 0 -> 7939 bytes .../html/lr11xx__wifi__types_8h__incl.map} | 4 +- .../html/lr11xx__wifi__types_8h__incl.md5 | 1 + .../html/lr11xx__wifi__types_8h__incl.png | Bin 0 -> 6197 bytes .../html/lr11xx__wifi__types_8h_source.html | 414 +++ .../html/lr__fhss__v1__base__types_8h.html | 20 +- ...r__fhss__v1__base__types_8h__dep__incl.map | 6 + ...r__fhss__v1__base__types_8h__dep__incl.md5 | 1 + ...r__fhss__v1__base__types_8h__dep__incl.png | Bin 0 -> 10864 bytes .../lr__fhss__v1__base__types_8h__incl.map | 2 +- .../lr__fhss__v1__base__types_8h__incl.md5 | 1 + .../lr__fhss__v1__base__types_8h__incl.png | Bin 0 -> 6351 bytes .../lr__fhss__v1__base__types_8h_source.html | 6 +- doc/{lr1110 => lr11xx}/html/menu.js | 0 doc/{lr1110 => lr11xx}/html/menudata.js | 0 doc/{lr1110 => lr11xx}/html/nav_f.png | Bin doc/{lr1110 => lr11xx}/html/nav_g.png | Bin doc/{lr1110 => lr11xx}/html/nav_h.png | Bin doc/{lr1110 => lr11xx}/html/open.png | Bin doc/{lr1110 => lr11xx}/html/search/all_0.html | 0 doc/lr11xx/html/search/all_0.js | 4 + doc/{lr1110 => lr11xx}/html/search/all_1.html | 0 doc/lr11xx/html/search/all_1.js | 7 + doc/{lr1110 => lr11xx}/html/search/all_2.html | 0 doc/lr11xx/html/search/all_2.js | 14 + doc/{lr1110 => lr11xx}/html/search/all_3.html | 0 doc/lr11xx/html/search/all_3.js | 6 + doc/{lr1110 => lr11xx}/html/search/all_4.html | 0 doc/lr11xx/html/search/all_4.js | 7 + doc/{lr1110 => lr11xx}/html/search/all_5.html | 0 doc/lr11xx/html/search/all_5.js | 8 + doc/{lr1110 => lr11xx}/html/search/all_6.html | 0 doc/lr11xx/html/search/all_6.js | 5 + doc/{lr1110 => lr11xx}/html/search/all_7.html | 0 doc/lr11xx/html/search/all_7.js | 18 + doc/{lr1110 => lr11xx}/html/search/all_8.html | 0 doc/lr11xx/html/search/all_8.js | 644 +++++ doc/{lr1110 => lr11xx}/html/search/all_9.html | 0 doc/lr11xx/html/search/all_9.js | 8 + doc/{lr1110 => lr11xx}/html/search/all_a.html | 0 doc/lr11xx/html/search/all_a.js | 4 + doc/{lr1110 => lr11xx}/html/search/all_b.html | 0 doc/lr11xx/html/search/all_b.js | 12 + doc/{lr1110 => lr11xx}/html/search/all_c.html | 0 doc/lr11xx/html/search/all_c.js | 12 + doc/{lr1110 => lr11xx}/html/search/all_d.html | 0 doc/lr11xx/html/search/all_d.js | 11 + doc/{lr1110 => lr11xx}/html/search/all_e.html | 0 doc/lr11xx/html/search/all_e.js | 5 + doc/{lr1110 => lr11xx}/html/search/all_f.html | 0 doc/lr11xx/html/search/all_f.js | 5 + .../html/search/classes_0.html | 0 doc/lr11xx/html/search/classes_0.js | 39 + doc/{lr1110 => lr11xx}/html/search/close.svg | 0 .../html/search/defines_0.html | 0 doc/lr11xx/html/search/defines_0.js | 5 + .../html/search/defines_1.html | 0 doc/lr11xx/html/search/defines_1.js | 47 + .../html/search/defines_2.html | 0 doc/lr11xx/html/search/defines_2.js | 4 + .../html/search/defines_3.html | 0 doc/lr11xx/html/search/defines_3.js | 4 + .../html/search/enums_0.html | 0 doc/lr11xx/html/search/enums_0.js | 70 + .../html/search/enumvalues_0.html | 0 doc/lr11xx/html/search/enumvalues_0.js | 198 ++ .../html/search/files_0.html | 0 doc/lr11xx/html/search/files_0.js | 33 + .../html/search/functions_0.html | 0 doc/lr11xx/html/search/functions_0.js | 4 + .../html/search/functions_1.html | 0 doc/lr11xx/html/search/functions_1.js | 4 + .../html/search/functions_2.html | 0 doc/lr11xx/html/search/functions_2.js | 6 + .../html/search/functions_3.html | 0 doc/lr11xx/html/search/functions_3.js | 199 ++ .../html/search/functions_4.html | 0 doc/lr11xx/html/search/functions_4.js | 5 + .../html/search/mag_sel.svg | 0 .../html/search/nomatches.html | 0 .../html/search/pages_0.html | 0 doc/lr11xx/html/search/pages_0.js | 4 + doc/{lr1110 => lr11xx}/html/search/search.css | 0 doc/{lr1110 => lr11xx}/html/search/search.js | 0 .../html/search/search_l.png | Bin .../html/search/search_m.png | Bin .../html/search/search_r.png | Bin .../html/search/searchdata.js | 0 .../html/search/typedefs_0.html | 0 doc/lr11xx/html/search/typedefs_0.js | 72 + .../html/search/variables_0.html | 0 doc/lr11xx/html/search/variables_0.js | 4 + .../html/search/variables_1.html | 0 doc/lr11xx/html/search/variables_1.js | 7 + .../html/search/variables_2.html | 0 doc/lr11xx/html/search/variables_2.js | 14 + .../html/search/variables_3.html | 0 doc/lr11xx/html/search/variables_3.js | 6 + .../html/search/variables_4.html | 0 doc/lr11xx/html/search/variables_4.js | 6 + .../html/search/variables_5.html | 0 doc/lr11xx/html/search/variables_5.js | 7 + .../html/search/variables_6.html | 0 doc/lr11xx/html/search/variables_6.js | 5 + .../html/search/variables_7.html | 0 doc/lr11xx/html/search/variables_7.js | 13 + .../html/search/variables_8.html | 0 doc/lr11xx/html/search/variables_8.js | 8 + .../html/search/variables_9.html | 0 doc/lr11xx/html/search/variables_9.js | 8 + .../html/search/variables_a.html | 0 doc/lr11xx/html/search/variables_a.js | 12 + .../html/search/variables_b.html | 0 doc/lr11xx/html/search/variables_b.js | 11 + .../html/search/variables_c.html | 0 doc/lr11xx/html/search/variables_c.js | 11 + .../html/search/variables_d.html | 0 doc/lr11xx/html/search/variables_d.js | 4 + doc/{lr1110 => lr11xx}/html/splitbar.png | Bin .../structlr11xx__bootloader__stat1__s.html} | 20 +- .../structlr11xx__bootloader__stat2__s.html} | 26 +- ...structlr11xx__bootloader__version__s.html} | 22 +- ...ructlr11xx__gnss__context__status__s.html} | 38 +- ...lr11xx__gnss__detected__satellite__s.html} | 32 +- ...nss__solver__assistance__position__s.html} | 26 +- .../html/structlr11xx__gnss__timings__s.html} | 22 +- .../html/structlr11xx__gnss__version__s.html} | 30 +- ...__lr__fhss__mod__params__lr__fhss__s.html} | 24 +- .../structlr11xx__lr__fhss__params__t.html} | 28 +- ...1xx__lr__fhss__params__t__coll__graph.map} | 2 +- ...11xx__lr__fhss__params__t__coll__graph.md5 | 1 + ...11xx__lr__fhss__params__t__coll__graph.png | Bin 0 -> 4643 bytes .../structlr11xx__radio__cad__params__s.html} | 54 +- ...tlr11xx__radio__mod__params__gfsk__s.html} | 42 +- ...tlr11xx__radio__mod__params__lora__s.html} | 42 +- .../structlr11xx__radio__pa__cfg__s.html} | 46 +- ...tlr11xx__radio__pkt__params__gfsk__s.html} | 74 +- ...tlr11xx__radio__pkt__params__lora__s.html} | 50 +- ...tlr11xx__radio__pkt__status__gfsk__s.html} | 86 +- ...tlr11xx__radio__pkt__status__lora__s.html} | 34 +- ...x__radio__rssi__calibration__table__s.html | 147 ++ ...lr11xx__radio__rx__buffer__status__s.html} | 28 +- .../structlr11xx__radio__stats__gfsk__s.html} | 34 +- .../structlr11xx__radio__stats__lora__s.html} | 42 +- ...ructlr11xx__system__rfswitch__cfg__s.html} | 42 +- .../structlr11xx__system__sleep__cfg__s.html} | 18 +- .../html/structlr11xx__system__stat1__s.html} | 20 +- .../html/structlr11xx__system__stat2__s.html} | 26 +- .../structlr11xx__system__version__s.html} | 22 +- ...xx__wifi__basic__complete__result__s.html} | 54 +- ...basic__mac__type__channel__result__s.html} | 32 +- ...structlr11xx__wifi__country__code__s.html} | 36 +- ...lr11xx__wifi__cumulative__timings__s.html} | 42 +- ...11xx__wifi__extended__full__result__t.html | 199 ++ ...xtended__full__result__t__coll__graph.map} | 4 +- ...extended__full__result__t__coll__graph.md5 | 1 + ...extended__full__result__t__coll__graph.png | Bin 0 -> 6422 bytes ...ructlr11xx__wifi__fcs__info__byte__s.html} | 26 +- .../html/structlr11xx__wifi__version__s.html} | 18 +- .../html/structlr__fhss__v1__params__s.html | 6 +- doc/{lr1110 => lr11xx}/html/sync_off.png | Bin doc/{lr1110 => lr11xx}/html/sync_on.png | Bin doc/{lr1110 => lr11xx}/html/tab_a.png | Bin doc/{lr1110 => lr11xx}/html/tab_b.png | Bin doc/{lr1110 => lr11xx}/html/tab_h.png | Bin doc/{lr1110 => lr11xx}/html/tab_s.png | Bin doc/{lr1110 => lr11xx}/html/tabs.css | 0 ...onlr11xx__wifi__result__interface__t.html} | 40 +- ...ifi__result__interface__t__coll__graph.map | 7 + ...ifi__result__interface__t__coll__graph.md5 | 1 + ...ifi__result__interface__t__coll__graph.png | Bin 0 -> 20093 bytes doc/sx126x/html/index.html | 2 +- lib/lr1110_comp/src/lr1110_comp_samples.c | 73 - lib/lr1110_comp/src/lr1110_comp_samples.h | 48 - lib/lr1110_driver/CHANGELOG.md | 310 --- lib/lr1110_driver/README.md | 61 - lib/lr1110_driver/src/lr1110_bootloader.c | 294 --- lib/lr1110_driver/src/lr1110_crypto_engine.c | 491 ---- lib/lr1110_driver/src/lr1110_gnss.c | 682 ----- lib/lr1110_driver/src/lr1110_radio.c | 1027 -------- lib/lr1110_driver/src/lr1110_system.c | 659 ----- lib/lr1110_driver/src/lr1110_system_types.h | 330 --- lib/lr1110_driver/src/lr1110_wifi_types.h | 404 --- .../src/lr11xx_comp.c} | 64 +- .../src/lr11xx_comp.h} | 92 +- .../src/lr11xx_comp_generic.c} | 80 +- .../src/lr11xx_comp_hal.h} | 42 +- lib/lr11xx_driver/CHANGELOG.md | 35 + .../LICENSE.txt | 5 +- lib/lr11xx_driver/README.md | 101 + lib/lr11xx_driver/src/CMakeLists.txt | 43 + lib/lr11xx_driver/src/lr11xx_bootloader.c | 294 +++ .../src/lr11xx_bootloader.h} | 52 +- .../src/lr11xx_bootloader_types.h} | 92 +- lib/lr11xx_driver/src/lr11xx_crypto_engine.c | 491 ++++ .../src/lr11xx_crypto_engine.h} | 88 +- .../src/lr11xx_crypto_engine_types.h} | 116 +- .../src/lr11xx_driver_module.cmake | 48 + .../src/lr11xx_driver_version.c} | 14 +- .../src/lr11xx_driver_version.h} | 26 +- lib/lr11xx_driver/src/lr11xx_gnss.c | 742 ++++++ .../src/lr11xx_gnss.h} | 165 +- .../src/lr11xx_gnss_types.h} | 190 +- .../src/lr11xx_hal.h} | 42 +- .../src/lr11xx_lr_fhss.c} | 156 +- .../src/lr11xx_lr_fhss.h} | 26 +- .../src/lr11xx_lr_fhss_types.h} | 22 +- lib/lr11xx_driver/src/lr11xx_radio.c | 1167 +++++++++ .../src/lr11xx_radio.h} | 297 ++- .../src/lr11xx_radio_timings.c} | 78 +- .../src/lr11xx_radio_timings.h} | 20 +- .../src/lr11xx_radio_types.h} | 398 +-- .../src/lr11xx_regmem.c} | 184 +- .../src/lr11xx_regmem.h} | 52 +- lib/lr11xx_driver/src/lr11xx_system.c | 659 +++++ .../src/lr11xx_system.h} | 178 +- lib/lr11xx_driver/src/lr11xx_system_types.h | 330 +++ .../src/lr11xx_types.h} | 22 +- .../src/lr11xx_wifi.c} | 611 +++-- .../src/lr11xx_wifi.h} | 276 +- lib/lr11xx_driver/src/lr11xx_wifi_types.h | 410 +++ .../src/lr_fhss_v1_base_types.h | 0 lib/sx_comp/src/sx_comp.c | 6 + .../Generic_Radio_Lr11xx_driver_hal.c} | 51 +- .../Generic_Radio_Lr11xx_driver_hal_timed.c} | 10 +- .../Sx126x/Generic_Radio_Sx126x_driver_hal.c | 5 +- ...eneric_Radio_Sx126x_identify_sx1261_xtal.c | 59 - .../Generic_Radio_event_handler_register.c | 6 + .../Comm/serial/McuHal_Comm_serial_lpuart.c | 109 - .../McuHal_Comm_spi_device_optimize.c | 26 +- .../System/irq_line/McuHal_System_irq_line.c | 4 +- platform/bare_metal/stm32_seq_integration.c | 109 - .../identify_lr1110_lr1120_tcxo.c} | 10 +- .../shield/lr1121_xtal/identify_lr1121_xtal.c | 25 +- .../shield/{e516v02a => lr11xx}/smtc_shield.c | 0 .../{e406v03a => sx126x}/identify_sx126x.c | 0 .../shield/{e406v03a => sx126x}/smtc_shield.c | 0 .../{lr1110_comp_hal.c => lr11xx_comp_hal.c} | 60 +- .../RTE/_lr1110/RTE_Components.h | 23 - .../keil_polling_STM32L476/STM32L476.uvprojx | 2230 +++++++++++++++-- .../RTE/_demos/RTE_Components.h | 26 - project/keil_rtx5_STM32L476/STM32L476.uvprojx | 2002 +++++++++++++-- .../lr11xx_lr_fhss_ping.c} | 110 +- .../lr11xx_lr_fhss_ping.h} | 34 +- .../lr11xx_lr_fhss_ping_async.c} | 26 +- .../lr11xx_lr_fhss_ping_start.c} | 20 +- .../lr11xx_lr_fhss_ping_sync.c} | 22 +- 705 files changed, 30448 insertions(+), 26157 deletions(-) delete mode 100644 doc/lr1110/html/classes.html delete mode 100644 doc/lr1110/html/form_20.png delete mode 100644 doc/lr1110/html/form_21.png delete mode 100644 doc/lr1110/html/functions.html delete mode 100644 doc/lr1110/html/functions_vars.html delete mode 100644 doc/lr1110/html/globals_defs.html delete mode 100644 doc/lr1110/html/globals_enum.html delete mode 100644 doc/lr1110/html/globals_eval.html delete mode 100644 doc/lr1110/html/globals_func_l.html delete mode 100644 doc/lr1110/html/globals_l.html delete mode 100644 doc/lr1110/html/globals_type.html delete mode 100644 doc/lr1110/html/lr1110__bootloader_8c__incl.map delete mode 100644 doc/lr1110/html/lr1110__bootloader_8c__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__bootloader_8c__incl.png delete mode 100644 doc/lr1110/html/lr1110__bootloader_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__bootloader_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__bootloader_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__bootloader_8h__incl.map delete mode 100644 doc/lr1110/html/lr1110__bootloader_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__bootloader_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__bootloader__types_8h.html delete mode 100644 doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__bootloader__types_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__bootloader__types_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__crypto__engine_8c__incl.map delete mode 100644 doc/lr1110/html/lr1110__crypto__engine_8c__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__crypto__engine_8c__incl.png delete mode 100644 doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__crypto__engine_8h__incl.map delete mode 100644 doc/lr1110/html/lr1110__crypto__engine_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__crypto__engine_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__crypto__engine__types_8h.html delete mode 100644 doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.map delete mode 100644 doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__crypto__engine__types_8h_source.html delete mode 100644 doc/lr1110/html/lr1110__driver__version_8c__incl.map delete mode 100644 doc/lr1110/html/lr1110__driver__version_8c__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__driver__version_8c__incl.png delete mode 100644 doc/lr1110/html/lr1110__driver__version_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__driver__version_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__driver__version_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__gnss_8c__incl.map delete mode 100644 doc/lr1110/html/lr1110__gnss_8c__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__gnss_8c__incl.png delete mode 100644 doc/lr1110/html/lr1110__gnss_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__gnss_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__gnss_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__gnss_8h__incl.map delete mode 100644 doc/lr1110/html/lr1110__gnss_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__gnss_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__gnss_8h_source.html delete mode 100644 doc/lr1110/html/lr1110__gnss__types_8h.html delete mode 100644 doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__gnss__types_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__gnss__types_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__gnss__types_8h_source.html delete mode 100644 doc/lr1110/html/lr1110__hal_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__hal_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__hal_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__hal_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__hal_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__lr__fhss_8c__incl.map delete mode 100644 doc/lr1110/html/lr1110__lr__fhss_8c__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__lr__fhss_8c__incl.png delete mode 100644 doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__lr__fhss_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__lr__fhss_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__lr__fhss__types_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__lr__fhss__types_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__radio_8c__incl.map delete mode 100644 doc/lr1110/html/lr1110__radio_8c__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__radio_8c__incl.png delete mode 100644 doc/lr1110/html/lr1110__radio_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__radio_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__radio_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__radio_8h__incl.map delete mode 100644 doc/lr1110/html/lr1110__radio_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__radio_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__radio_8h_source.html delete mode 100644 doc/lr1110/html/lr1110__radio__timings_8c__incl.map delete mode 100644 doc/lr1110/html/lr1110__radio__timings_8c__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__radio__timings_8c__incl.png delete mode 100644 doc/lr1110/html/lr1110__radio__timings_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__radio__timings_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__radio__timings_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__radio__timings_8h__incl.map delete mode 100644 doc/lr1110/html/lr1110__radio__timings_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__radio__timings_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__radio__types_8h.html delete mode 100644 doc/lr1110/html/lr1110__radio__types_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__radio__types_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__radio__types_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__radio__types_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__radio__types_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__radio__types_8h_source.html delete mode 100644 doc/lr1110/html/lr1110__regmem_8c__incl.map delete mode 100644 doc/lr1110/html/lr1110__regmem_8c__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__regmem_8c__incl.png delete mode 100644 doc/lr1110/html/lr1110__regmem_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__regmem_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__regmem_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__regmem_8h__incl.map delete mode 100644 doc/lr1110/html/lr1110__regmem_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__regmem_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__system_8c__incl.map delete mode 100644 doc/lr1110/html/lr1110__system_8c__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__system_8c__incl.png delete mode 100644 doc/lr1110/html/lr1110__system_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__system_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__system_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__system_8h__incl.map delete mode 100644 doc/lr1110/html/lr1110__system_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__system_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__system_8h_source.html delete mode 100644 doc/lr1110/html/lr1110__system__types_8h.html delete mode 100644 doc/lr1110/html/lr1110__system__types_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__system__types_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__system__types_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__system__types_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__system__types_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__system__types_8h_source.html delete mode 100644 doc/lr1110/html/lr1110__types_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__types_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__types_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__wifi_8c__incl.map delete mode 100644 doc/lr1110/html/lr1110__wifi_8c__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__wifi_8c__incl.png delete mode 100644 doc/lr1110/html/lr1110__wifi_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__wifi_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__wifi_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__wifi_8h__incl.map delete mode 100644 doc/lr1110/html/lr1110__wifi_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__wifi_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__wifi_8h_source.html delete mode 100644 doc/lr1110/html/lr1110__wifi__types_8h.html delete mode 100644 doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr1110__wifi__types_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr1110__wifi__types_8h__incl.png delete mode 100644 doc/lr1110/html/lr1110__wifi__types_8h_source.html delete mode 100644 doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.map delete mode 100644 doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.md5 delete mode 100644 doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.png delete mode 100644 doc/lr1110/html/lr__fhss__v1__base__types_8h__incl.md5 delete mode 100644 doc/lr1110/html/lr__fhss__v1__base__types_8h__incl.png delete mode 100644 doc/lr1110/html/search/all_0.js delete mode 100644 doc/lr1110/html/search/all_1.js delete mode 100644 doc/lr1110/html/search/all_2.js delete mode 100644 doc/lr1110/html/search/all_3.js delete mode 100644 doc/lr1110/html/search/all_4.js delete mode 100644 doc/lr1110/html/search/all_5.js delete mode 100644 doc/lr1110/html/search/all_6.js delete mode 100644 doc/lr1110/html/search/all_7.js delete mode 100644 doc/lr1110/html/search/all_8.js delete mode 100644 doc/lr1110/html/search/all_9.js delete mode 100644 doc/lr1110/html/search/all_a.js delete mode 100644 doc/lr1110/html/search/all_b.js delete mode 100644 doc/lr1110/html/search/all_c.js delete mode 100644 doc/lr1110/html/search/all_d.js delete mode 100644 doc/lr1110/html/search/all_e.js delete mode 100644 doc/lr1110/html/search/all_f.js delete mode 100644 doc/lr1110/html/search/classes_0.js delete mode 100644 doc/lr1110/html/search/defines_0.js delete mode 100644 doc/lr1110/html/search/defines_1.js delete mode 100644 doc/lr1110/html/search/defines_2.js delete mode 100644 doc/lr1110/html/search/defines_3.js delete mode 100644 doc/lr1110/html/search/enums_0.js delete mode 100644 doc/lr1110/html/search/enumvalues_0.js delete mode 100644 doc/lr1110/html/search/files_0.js delete mode 100644 doc/lr1110/html/search/functions_0.js delete mode 100644 doc/lr1110/html/search/functions_1.js delete mode 100644 doc/lr1110/html/search/functions_2.js delete mode 100644 doc/lr1110/html/search/functions_3.js delete mode 100644 doc/lr1110/html/search/functions_4.js delete mode 100644 doc/lr1110/html/search/pages_0.js delete mode 100644 doc/lr1110/html/search/typedefs_0.js delete mode 100644 doc/lr1110/html/search/variables_0.js delete mode 100644 doc/lr1110/html/search/variables_1.js delete mode 100644 doc/lr1110/html/search/variables_2.js delete mode 100644 doc/lr1110/html/search/variables_3.js delete mode 100644 doc/lr1110/html/search/variables_4.js delete mode 100644 doc/lr1110/html/search/variables_5.js delete mode 100644 doc/lr1110/html/search/variables_6.js delete mode 100644 doc/lr1110/html/search/variables_7.js delete mode 100644 doc/lr1110/html/search/variables_8.js delete mode 100644 doc/lr1110/html/search/variables_9.js delete mode 100644 doc/lr1110/html/search/variables_a.js delete mode 100644 doc/lr1110/html/search/variables_b.js delete mode 100644 doc/lr1110/html/search/variables_c.js delete mode 100644 doc/lr1110/html/search/variables_d.js delete mode 100644 doc/lr1110/html/structlr1110__lr__fhss__params__t__coll__graph.md5 delete mode 100644 doc/lr1110/html/structlr1110__lr__fhss__params__t__coll__graph.png delete mode 100644 doc/lr1110/html/structlr1110__wifi__extended__full__result__t.html delete mode 100644 doc/lr1110/html/structlr1110__wifi__extended__full__result__t__coll__graph.md5 delete mode 100644 doc/lr1110/html/structlr1110__wifi__extended__full__result__t__coll__graph.png delete mode 100644 doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.map delete mode 100644 doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.md5 delete mode 100644 doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.png rename doc/{lr1110 => lr11xx}/html/annotated.html (62%) rename doc/{lr1110 => lr11xx}/html/bc_s.png (100%) rename doc/{lr1110 => lr11xx}/html/bdwn.png (100%) create mode 100644 doc/lr11xx/html/classes.html rename doc/{lr1110 => lr11xx}/html/closed.png (100%) rename doc/{lr1110/html/dir_3c71178d898afd3b302f88dd953c48b8.html => lr11xx/html/dir_6601b1d445de63d8503961b2b8f16c50.html} (52%) rename doc/{lr1110/html/dir_9da5e55f4b5e6279dec863e382a3e740.html => lr11xx/html/dir_cffe238c7138f5e12fb514e7642ab336.html} (91%) rename doc/{lr1110 => lr11xx}/html/doc.png (100%) rename doc/{lr1110 => lr11xx}/html/doxygen.css (100%) rename doc/{lr1110 => lr11xx}/html/doxygen.svg (100%) rename doc/{lr1110 => lr11xx}/html/dynsections.js (100%) rename doc/{lr1110 => lr11xx}/html/files.html (58%) rename doc/{lr1110 => lr11xx}/html/folderclosed.png (100%) rename doc/{lr1110 => lr11xx}/html/folderopen.png (100%) rename doc/{lr1110 => lr11xx}/html/form_0.png (100%) rename doc/{lr1110 => lr11xx}/html/form_1.png (100%) rename doc/{lr1110 => lr11xx}/html/form_10.png (100%) rename doc/{lr1110 => lr11xx}/html/form_11.png (100%) rename doc/{lr1110 => lr11xx}/html/form_12.png (100%) rename doc/{lr1110 => lr11xx}/html/form_13.png (100%) rename doc/{lr1110 => lr11xx}/html/form_14.png (100%) rename doc/{lr1110 => lr11xx}/html/form_15.png (100%) rename doc/{lr1110 => lr11xx}/html/form_16.png (100%) rename doc/{lr1110 => lr11xx}/html/form_17.png (100%) rename doc/{lr1110 => lr11xx}/html/form_18.png (100%) rename doc/{lr1110 => lr11xx}/html/form_19.png (100%) rename doc/{lr1110 => lr11xx}/html/form_2.png (100%) create mode 100644 doc/lr11xx/html/form_20.png create mode 100644 doc/lr11xx/html/form_21.png rename doc/{lr1110 => lr11xx}/html/form_22.png (100%) rename doc/{lr1110 => lr11xx}/html/form_3.png (100%) rename doc/{lr1110 => lr11xx}/html/form_4.png (100%) rename doc/{lr1110 => lr11xx}/html/form_5.png (100%) rename doc/{lr1110 => lr11xx}/html/form_6.png (100%) rename doc/{lr1110 => lr11xx}/html/form_7.png (100%) rename doc/{lr1110 => lr11xx}/html/form_8.png (100%) rename doc/{lr1110 => lr11xx}/html/form_9.png (100%) rename doc/{lr1110 => lr11xx}/html/formula.repository (90%) create mode 100644 doc/lr11xx/html/functions.html create mode 100644 doc/lr11xx/html/functions_vars.html rename doc/{lr1110 => lr11xx}/html/globals.html (94%) create mode 100644 doc/lr11xx/html/globals_defs.html create mode 100644 doc/lr11xx/html/globals_enum.html create mode 100644 doc/lr11xx/html/globals_eval.html rename doc/{lr1110 => lr11xx}/html/globals_func.html (94%) rename doc/{lr1110 => lr11xx}/html/globals_func_g.html (94%) rename doc/{lr1110 => lr11xx}/html/globals_func_i.html (88%) create mode 100644 doc/lr11xx/html/globals_func_l.html rename doc/{lr1110 => lr11xx}/html/globals_func_u.html (91%) rename doc/{lr1110 => lr11xx}/html/globals_g.html (94%) rename doc/{lr1110 => lr11xx}/html/globals_i.html (84%) create mode 100644 doc/lr11xx/html/globals_l.html rename doc/{lr1110 => lr11xx}/html/globals_r.html (93%) rename doc/{lr1110 => lr11xx}/html/globals_t.html (93%) create mode 100644 doc/lr11xx/html/globals_type.html rename doc/{lr1110 => lr11xx}/html/globals_u.html (91%) rename doc/{lr1110 => lr11xx}/html/graph_legend.html (98%) rename doc/{lr1110 => lr11xx}/html/graph_legend.md5 (100%) rename doc/{lr1110 => lr11xx}/html/graph_legend.png (100%) rename doc/{lr1110 => lr11xx}/html/index.html (96%) rename doc/{lr1110 => lr11xx}/html/jquery.js (100%) rename doc/{lr1110/html/lr1110__bootloader_8c.html => lr11xx/html/lr11xx__bootloader_8c.html} (54%) create mode 100644 doc/lr11xx/html/lr11xx__bootloader_8c__incl.map create mode 100644 doc/lr11xx/html/lr11xx__bootloader_8c__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__bootloader_8c__incl.png rename doc/{lr1110/html/lr1110__bootloader_8h.html => lr11xx/html/lr11xx__bootloader_8h.html} (63%) create mode 100644 doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.png create mode 100644 doc/lr11xx/html/lr11xx__bootloader_8h__incl.map create mode 100644 doc/lr11xx/html/lr11xx__bootloader_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__bootloader_8h__incl.png rename doc/{lr1110/html/lr1110__bootloader_8h_source.html => lr11xx/html/lr11xx__bootloader_8h_source.html} (57%) create mode 100644 doc/lr11xx/html/lr11xx__bootloader__types_8h.html create mode 100644 doc/lr11xx/html/lr11xx__bootloader__types_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__bootloader__types_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__bootloader__types_8h__dep__incl.png rename doc/{lr1110/html/lr1110__bootloader__types_8h__incl.map => lr11xx/html/lr11xx__bootloader__types_8h__incl.map} (59%) create mode 100644 doc/lr11xx/html/lr11xx__bootloader__types_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__bootloader__types_8h__incl.png rename doc/{lr1110/html/lr1110__bootloader__types_8h_source.html => lr11xx/html/lr11xx__bootloader__types_8h_source.html} (53%) rename doc/{lr1110/html/lr1110__crypto__engine_8c.html => lr11xx/html/lr11xx__crypto__engine_8c.html} (57%) create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.map create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.png rename doc/{lr1110/html/lr1110__crypto__engine_8h.html => lr11xx/html/lr11xx__crypto__engine_8h.html} (63%) create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.png create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.map create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.png rename doc/{lr1110/html/lr1110__crypto__engine_8h_source.html => lr11xx/html/lr11xx__crypto__engine_8h_source.html} (52%) create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine__types_8h.html create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.png create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.map create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.png create mode 100644 doc/lr11xx/html/lr11xx__crypto__engine__types_8h_source.html rename doc/{lr1110/html/lr1110__driver__version_8c.html => lr11xx/html/lr11xx__driver__version_8c.html} (79%) create mode 100644 doc/lr11xx/html/lr11xx__driver__version_8c__incl.map create mode 100644 doc/lr11xx/html/lr11xx__driver__version_8c__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__driver__version_8c__incl.png rename doc/{lr1110/html/lr1110__driver__version_8h.html => lr11xx/html/lr11xx__driver__version_8h.html} (70%) create mode 100644 doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.png rename doc/{lr1110/html/lr1110__driver__version_8h_source.html => lr11xx/html/lr11xx__driver__version_8h_source.html} (86%) rename doc/{lr1110/html/lr1110__gnss_8c.html => lr11xx/html/lr11xx__gnss_8c.html} (51%) create mode 100644 doc/lr11xx/html/lr11xx__gnss_8c__incl.map create mode 100644 doc/lr11xx/html/lr11xx__gnss_8c__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__gnss_8c__incl.png rename doc/{lr1110/html/lr1110__gnss_8h.html => lr11xx/html/lr11xx__gnss_8h.html} (58%) create mode 100644 doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.png create mode 100644 doc/lr11xx/html/lr11xx__gnss_8h__incl.map create mode 100644 doc/lr11xx/html/lr11xx__gnss_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__gnss_8h__incl.png create mode 100644 doc/lr11xx/html/lr11xx__gnss_8h_source.html create mode 100644 doc/lr11xx/html/lr11xx__gnss__types_8h.html create mode 100644 doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.png rename doc/{lr1110/html/lr1110__gnss__types_8h__incl.map => lr11xx/html/lr11xx__gnss__types_8h__incl.map} (61%) create mode 100644 doc/lr11xx/html/lr11xx__gnss__types_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__gnss__types_8h__incl.png create mode 100644 doc/lr11xx/html/lr11xx__gnss__types_8h_source.html rename doc/{lr1110/html/lr1110__hal_8h.html => lr11xx/html/lr11xx__hal_8h.html} (67%) create mode 100644 doc/lr11xx/html/lr11xx__hal_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__hal_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__hal_8h__dep__incl.png rename doc/{lr1110/html/lr1110__hal_8h__incl.map => lr11xx/html/lr11xx__hal_8h__incl.map} (60%) create mode 100644 doc/lr11xx/html/lr11xx__hal_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__hal_8h__incl.png rename doc/{lr1110/html/lr1110__hal_8h_source.html => lr11xx/html/lr11xx__hal_8h_source.html} (72%) rename doc/{lr1110/html/lr1110__lr__fhss_8c.html => lr11xx/html/lr11xx__lr__fhss_8c.html} (52%) create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.map create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.png rename doc/{lr1110/html/lr1110__lr__fhss_8h.html => lr11xx/html/lr11xx__lr__fhss_8h.html} (70%) create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.png rename doc/{lr1110/html/lr1110__lr__fhss_8h__incl.map => lr11xx/html/lr11xx__lr__fhss_8h__incl.map} (51%) create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss_8h__incl.png rename doc/{lr1110/html/lr1110__lr__fhss_8h_source.html => lr11xx/html/lr11xx__lr__fhss_8h_source.html} (71%) rename doc/{lr1110/html/lr1110__lr__fhss__types_8h.html => lr11xx/html/lr11xx__lr__fhss__types_8h.html} (78%) create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.png rename doc/{lr1110/html/lr1110__lr__fhss__types_8h__incl.map => lr11xx/html/lr11xx__lr__fhss__types_8h__incl.map} (73%) create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss__types_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__lr__fhss__types_8h__incl.png rename doc/{lr1110/html/lr1110__lr__fhss__types_8h_source.html => lr11xx/html/lr11xx__lr__fhss__types_8h_source.html} (75%) rename doc/{lr1110/html/lr1110__radio_8c.html => lr11xx/html/lr11xx__radio_8c.html} (51%) create mode 100644 doc/lr11xx/html/lr11xx__radio_8c__incl.map create mode 100644 doc/lr11xx/html/lr11xx__radio_8c__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__radio_8c__incl.png rename doc/{lr1110/html/lr1110__radio_8h.html => lr11xx/html/lr11xx__radio_8h.html} (55%) create mode 100644 doc/lr11xx/html/lr11xx__radio_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__radio_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__radio_8h__dep__incl.png create mode 100644 doc/lr11xx/html/lr11xx__radio_8h__incl.map create mode 100644 doc/lr11xx/html/lr11xx__radio_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__radio_8h__incl.png create mode 100644 doc/lr11xx/html/lr11xx__radio_8h_source.html rename doc/{lr1110/html/lr1110__radio__timings_8c.html => lr11xx/html/lr11xx__radio__timings_8c.html} (65%) create mode 100644 doc/lr11xx/html/lr11xx__radio__timings_8c__incl.map create mode 100644 doc/lr11xx/html/lr11xx__radio__timings_8c__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__radio__timings_8c__incl.png rename doc/{lr1110/html/lr1110__radio__timings_8h.html => lr11xx/html/lr11xx__radio__timings_8h.html} (68%) create mode 100644 doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.png create mode 100644 doc/lr11xx/html/lr11xx__radio__timings_8h__incl.map create mode 100644 doc/lr11xx/html/lr11xx__radio__timings_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__radio__timings_8h__incl.png rename doc/{lr1110/html/lr1110__radio__timings_8h_source.html => lr11xx/html/lr11xx__radio__timings_8h_source.html} (77%) create mode 100644 doc/lr11xx/html/lr11xx__radio__types_8h.html create mode 100644 doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.png rename doc/{lr1110/html/lr1110__radio__types_8h__incl.map => lr11xx/html/lr11xx__radio__types_8h__incl.map} (62%) create mode 100644 doc/lr11xx/html/lr11xx__radio__types_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__radio__types_8h__incl.png create mode 100644 doc/lr11xx/html/lr11xx__radio__types_8h_source.html rename doc/{lr1110/html/lr1110__regmem_8c.html => lr11xx/html/lr11xx__regmem_8c.html} (60%) create mode 100644 doc/lr11xx/html/lr11xx__regmem_8c__incl.map create mode 100644 doc/lr11xx/html/lr11xx__regmem_8c__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__regmem_8c__incl.png rename doc/{lr1110/html/lr1110__regmem_8h.html => lr11xx/html/lr11xx__regmem_8h.html} (68%) create mode 100644 doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.png create mode 100644 doc/lr11xx/html/lr11xx__regmem_8h__incl.map create mode 100644 doc/lr11xx/html/lr11xx__regmem_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__regmem_8h__incl.png rename doc/{lr1110/html/lr1110__regmem_8h_source.html => lr11xx/html/lr11xx__regmem_8h_source.html} (68%) rename doc/{lr1110/html/lr1110__system_8c.html => lr11xx/html/lr11xx__system_8c.html} (54%) create mode 100644 doc/lr11xx/html/lr11xx__system_8c__incl.map create mode 100644 doc/lr11xx/html/lr11xx__system_8c__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__system_8c__incl.png rename doc/{lr1110/html/lr1110__system_8h.html => lr11xx/html/lr11xx__system_8h.html} (59%) create mode 100644 doc/lr11xx/html/lr11xx__system_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__system_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__system_8h__dep__incl.png create mode 100644 doc/lr11xx/html/lr11xx__system_8h__incl.map create mode 100644 doc/lr11xx/html/lr11xx__system_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__system_8h__incl.png create mode 100644 doc/lr11xx/html/lr11xx__system_8h_source.html create mode 100644 doc/lr11xx/html/lr11xx__system__types_8h.html create mode 100644 doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.png rename doc/{lr1110/html/lr1110__system__types_8h__incl.map => lr11xx/html/lr11xx__system__types_8h__incl.map} (61%) create mode 100644 doc/lr11xx/html/lr11xx__system__types_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__system__types_8h__incl.png create mode 100644 doc/lr11xx/html/lr11xx__system__types_8h_source.html rename doc/{lr1110/html/lr1110__types_8h.html => lr11xx/html/lr11xx__types_8h.html} (56%) create mode 100644 doc/lr11xx/html/lr11xx__types_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__types_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__types_8h__dep__incl.png rename doc/{lr1110/html/lr1110__types_8h_source.html => lr11xx/html/lr11xx__types_8h_source.html} (81%) rename doc/{lr1110/html/lr1110__wifi_8c.html => lr11xx/html/lr11xx__wifi_8c.html} (52%) create mode 100644 doc/lr11xx/html/lr11xx__wifi_8c__incl.map create mode 100644 doc/lr11xx/html/lr11xx__wifi_8c__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__wifi_8c__incl.png rename doc/{lr1110/html/lr1110__wifi_8h.html => lr11xx/html/lr11xx__wifi_8h.html} (55%) create mode 100644 doc/lr11xx/html/lr11xx__wifi_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__wifi_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__wifi_8h__dep__incl.png create mode 100644 doc/lr11xx/html/lr11xx__wifi_8h__incl.map create mode 100644 doc/lr11xx/html/lr11xx__wifi_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__wifi_8h__incl.png create mode 100644 doc/lr11xx/html/lr11xx__wifi_8h_source.html create mode 100644 doc/lr11xx/html/lr11xx__wifi__types_8h.html create mode 100644 doc/lr11xx/html/lr11xx__wifi__types_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr11xx__wifi__types_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__wifi__types_8h__dep__incl.png rename doc/{lr1110/html/lr1110__wifi__types_8h__incl.map => lr11xx/html/lr11xx__wifi__types_8h__incl.map} (59%) create mode 100644 doc/lr11xx/html/lr11xx__wifi__types_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr11xx__wifi__types_8h__incl.png create mode 100644 doc/lr11xx/html/lr11xx__wifi__types_8h_source.html rename doc/{lr1110 => lr11xx}/html/lr__fhss__v1__base__types_8h.html (92%) create mode 100644 doc/lr11xx/html/lr__fhss__v1__base__types_8h__dep__incl.map create mode 100644 doc/lr11xx/html/lr__fhss__v1__base__types_8h__dep__incl.md5 create mode 100644 doc/lr11xx/html/lr__fhss__v1__base__types_8h__dep__incl.png rename doc/{lr1110 => lr11xx}/html/lr__fhss__v1__base__types_8h__incl.map (83%) create mode 100644 doc/lr11xx/html/lr__fhss__v1__base__types_8h__incl.md5 create mode 100644 doc/lr11xx/html/lr__fhss__v1__base__types_8h__incl.png rename doc/{lr1110 => lr11xx}/html/lr__fhss__v1__base__types_8h_source.html (98%) rename doc/{lr1110 => lr11xx}/html/menu.js (100%) rename doc/{lr1110 => lr11xx}/html/menudata.js (100%) rename doc/{lr1110 => lr11xx}/html/nav_f.png (100%) rename doc/{lr1110 => lr11xx}/html/nav_g.png (100%) rename doc/{lr1110 => lr11xx}/html/nav_h.png (100%) rename doc/{lr1110 => lr11xx}/html/open.png (100%) rename doc/{lr1110 => lr11xx}/html/search/all_0.html (100%) create mode 100644 doc/lr11xx/html/search/all_0.js rename doc/{lr1110 => lr11xx}/html/search/all_1.html (100%) create mode 100644 doc/lr11xx/html/search/all_1.js rename doc/{lr1110 => lr11xx}/html/search/all_2.html (100%) create mode 100644 doc/lr11xx/html/search/all_2.js rename doc/{lr1110 => lr11xx}/html/search/all_3.html (100%) create mode 100644 doc/lr11xx/html/search/all_3.js rename doc/{lr1110 => lr11xx}/html/search/all_4.html (100%) create mode 100644 doc/lr11xx/html/search/all_4.js rename doc/{lr1110 => lr11xx}/html/search/all_5.html (100%) create mode 100644 doc/lr11xx/html/search/all_5.js rename doc/{lr1110 => lr11xx}/html/search/all_6.html (100%) create mode 100644 doc/lr11xx/html/search/all_6.js rename doc/{lr1110 => lr11xx}/html/search/all_7.html (100%) create mode 100644 doc/lr11xx/html/search/all_7.js rename doc/{lr1110 => lr11xx}/html/search/all_8.html (100%) create mode 100644 doc/lr11xx/html/search/all_8.js rename doc/{lr1110 => lr11xx}/html/search/all_9.html (100%) create mode 100644 doc/lr11xx/html/search/all_9.js rename doc/{lr1110 => lr11xx}/html/search/all_a.html (100%) create mode 100644 doc/lr11xx/html/search/all_a.js rename doc/{lr1110 => lr11xx}/html/search/all_b.html (100%) create mode 100644 doc/lr11xx/html/search/all_b.js rename doc/{lr1110 => lr11xx}/html/search/all_c.html (100%) create mode 100644 doc/lr11xx/html/search/all_c.js rename doc/{lr1110 => lr11xx}/html/search/all_d.html (100%) create mode 100644 doc/lr11xx/html/search/all_d.js rename doc/{lr1110 => lr11xx}/html/search/all_e.html (100%) create mode 100644 doc/lr11xx/html/search/all_e.js rename doc/{lr1110 => lr11xx}/html/search/all_f.html (100%) create mode 100644 doc/lr11xx/html/search/all_f.js rename doc/{lr1110 => lr11xx}/html/search/classes_0.html (100%) create mode 100644 doc/lr11xx/html/search/classes_0.js rename doc/{lr1110 => lr11xx}/html/search/close.svg (100%) rename doc/{lr1110 => lr11xx}/html/search/defines_0.html (100%) create mode 100644 doc/lr11xx/html/search/defines_0.js rename doc/{lr1110 => lr11xx}/html/search/defines_1.html (100%) create mode 100644 doc/lr11xx/html/search/defines_1.js rename doc/{lr1110 => lr11xx}/html/search/defines_2.html (100%) create mode 100644 doc/lr11xx/html/search/defines_2.js rename doc/{lr1110 => lr11xx}/html/search/defines_3.html (100%) create mode 100644 doc/lr11xx/html/search/defines_3.js rename doc/{lr1110 => lr11xx}/html/search/enums_0.html (100%) create mode 100644 doc/lr11xx/html/search/enums_0.js rename doc/{lr1110 => lr11xx}/html/search/enumvalues_0.html (100%) create mode 100644 doc/lr11xx/html/search/enumvalues_0.js rename doc/{lr1110 => lr11xx}/html/search/files_0.html (100%) create mode 100644 doc/lr11xx/html/search/files_0.js rename doc/{lr1110 => lr11xx}/html/search/functions_0.html (100%) create mode 100644 doc/lr11xx/html/search/functions_0.js rename doc/{lr1110 => lr11xx}/html/search/functions_1.html (100%) create mode 100644 doc/lr11xx/html/search/functions_1.js rename doc/{lr1110 => lr11xx}/html/search/functions_2.html (100%) create mode 100644 doc/lr11xx/html/search/functions_2.js rename doc/{lr1110 => lr11xx}/html/search/functions_3.html (100%) create mode 100644 doc/lr11xx/html/search/functions_3.js rename doc/{lr1110 => lr11xx}/html/search/functions_4.html (100%) create mode 100644 doc/lr11xx/html/search/functions_4.js rename doc/{lr1110 => lr11xx}/html/search/mag_sel.svg (100%) rename doc/{lr1110 => lr11xx}/html/search/nomatches.html (100%) rename doc/{lr1110 => lr11xx}/html/search/pages_0.html (100%) create mode 100644 doc/lr11xx/html/search/pages_0.js rename doc/{lr1110 => lr11xx}/html/search/search.css (100%) rename doc/{lr1110 => lr11xx}/html/search/search.js (100%) rename doc/{lr1110 => lr11xx}/html/search/search_l.png (100%) rename doc/{lr1110 => lr11xx}/html/search/search_m.png (100%) rename doc/{lr1110 => lr11xx}/html/search/search_r.png (100%) rename doc/{lr1110 => lr11xx}/html/search/searchdata.js (100%) rename doc/{lr1110 => lr11xx}/html/search/typedefs_0.html (100%) create mode 100644 doc/lr11xx/html/search/typedefs_0.js rename doc/{lr1110 => lr11xx}/html/search/variables_0.html (100%) create mode 100644 doc/lr11xx/html/search/variables_0.js rename doc/{lr1110 => lr11xx}/html/search/variables_1.html (100%) create mode 100644 doc/lr11xx/html/search/variables_1.js rename doc/{lr1110 => lr11xx}/html/search/variables_2.html (100%) create mode 100644 doc/lr11xx/html/search/variables_2.js rename doc/{lr1110 => lr11xx}/html/search/variables_3.html (100%) create mode 100644 doc/lr11xx/html/search/variables_3.js rename doc/{lr1110 => lr11xx}/html/search/variables_4.html (100%) create mode 100644 doc/lr11xx/html/search/variables_4.js rename doc/{lr1110 => lr11xx}/html/search/variables_5.html (100%) create mode 100644 doc/lr11xx/html/search/variables_5.js rename doc/{lr1110 => lr11xx}/html/search/variables_6.html (100%) create mode 100644 doc/lr11xx/html/search/variables_6.js rename doc/{lr1110 => lr11xx}/html/search/variables_7.html (100%) create mode 100644 doc/lr11xx/html/search/variables_7.js rename doc/{lr1110 => lr11xx}/html/search/variables_8.html (100%) create mode 100644 doc/lr11xx/html/search/variables_8.js rename doc/{lr1110 => lr11xx}/html/search/variables_9.html (100%) create mode 100644 doc/lr11xx/html/search/variables_9.js rename doc/{lr1110 => lr11xx}/html/search/variables_a.html (100%) create mode 100644 doc/lr11xx/html/search/variables_a.js rename doc/{lr1110 => lr11xx}/html/search/variables_b.html (100%) create mode 100644 doc/lr11xx/html/search/variables_b.js rename doc/{lr1110 => lr11xx}/html/search/variables_c.html (100%) create mode 100644 doc/lr11xx/html/search/variables_c.js rename doc/{lr1110 => lr11xx}/html/search/variables_d.html (100%) create mode 100644 doc/lr11xx/html/search/variables_d.js rename doc/{lr1110 => lr11xx}/html/splitbar.png (100%) rename doc/{lr1110/html/structlr1110__bootloader__stat1__s.html => lr11xx/html/structlr11xx__bootloader__stat1__s.html} (78%) rename doc/{lr1110/html/structlr1110__bootloader__stat2__s.html => lr11xx/html/structlr11xx__bootloader__stat2__s.html} (73%) rename doc/{lr1110/html/structlr1110__bootloader__version__s.html => lr11xx/html/structlr11xx__bootloader__version__s.html} (77%) rename doc/{lr1110/html/structlr1110__gnss__context__status__s.html => lr11xx/html/structlr11xx__gnss__context__status__s.html} (67%) rename doc/{lr1110/html/structlr1110__gnss__detected__satellite__s.html => lr11xx/html/structlr11xx__gnss__detected__satellite__s.html} (70%) rename doc/{lr1110/html/structlr1110__gnss__solver__assistance__position__s.html => lr11xx/html/structlr11xx__gnss__solver__assistance__position__s.html} (75%) rename doc/{lr1110/html/structlr1110__gnss__timings__s.html => lr11xx/html/structlr11xx__gnss__timings__s.html} (78%) rename doc/{lr1110/html/structlr1110__gnss__version__s.html => lr11xx/html/structlr11xx__gnss__version__s.html} (72%) rename doc/{lr1110/html/structlr1110__lr__fhss__mod__params__lr__fhss__s.html => lr11xx/html/structlr11xx__lr__fhss__mod__params__lr__fhss__s.html} (75%) rename doc/{lr1110/html/structlr1110__lr__fhss__params__t.html => lr11xx/html/structlr11xx__lr__fhss__params__t.html} (77%) rename doc/{lr1110/html/structlr1110__lr__fhss__params__t__coll__graph.map => lr11xx/html/structlr11xx__lr__fhss__params__t__coll__graph.map} (79%) create mode 100644 doc/lr11xx/html/structlr11xx__lr__fhss__params__t__coll__graph.md5 create mode 100644 doc/lr11xx/html/structlr11xx__lr__fhss__params__t__coll__graph.png rename doc/{lr1110/html/structlr1110__radio__cad__params__s.html => lr11xx/html/structlr11xx__radio__cad__params__s.html} (67%) rename doc/{lr1110/html/structlr1110__radio__mod__params__gfsk__s.html => lr11xx/html/structlr11xx__radio__mod__params__gfsk__s.html} (64%) rename doc/{lr1110/html/structlr1110__radio__mod__params__lora__s.html => lr11xx/html/structlr11xx__radio__mod__params__lora__s.html} (63%) rename doc/{lr1110/html/structlr1110__radio__pa__cfg__s.html => lr11xx/html/structlr11xx__radio__pa__cfg__s.html} (65%) rename doc/{lr1110/html/structlr1110__radio__pkt__params__gfsk__s.html => lr11xx/html/structlr11xx__radio__pkt__params__gfsk__s.html} (53%) rename doc/{lr1110/html/structlr1110__radio__pkt__params__lora__s.html => lr11xx/html/structlr11xx__radio__pkt__params__lora__s.html} (60%) rename doc/{lr1110/html/structlr1110__radio__pkt__status__gfsk__s.html => lr11xx/html/structlr11xx__radio__pkt__status__gfsk__s.html} (57%) rename doc/{lr1110/html/structlr1110__radio__pkt__status__lora__s.html => lr11xx/html/structlr11xx__radio__pkt__status__lora__s.html} (70%) create mode 100644 doc/lr11xx/html/structlr11xx__radio__rssi__calibration__table__s.html rename doc/{lr1110/html/structlr1110__radio__rx__buffer__status__s.html => lr11xx/html/structlr11xx__radio__rx__buffer__status__s.html} (75%) rename doc/{lr1110/html/structlr1110__radio__stats__gfsk__s.html => lr11xx/html/structlr11xx__radio__stats__gfsk__s.html} (71%) rename doc/{lr1110/html/structlr1110__radio__stats__lora__s.html => lr11xx/html/structlr11xx__radio__stats__lora__s.html} (66%) rename doc/{lr1110/html/structlr1110__system__rfswitch__cfg__s.html => lr11xx/html/structlr11xx__system__rfswitch__cfg__s.html} (66%) rename doc/{lr1110/html/structlr1110__system__sleep__cfg__s.html => lr11xx/html/structlr11xx__system__sleep__cfg__s.html} (80%) rename doc/{lr1110/html/structlr1110__system__stat1__s.html => lr11xx/html/structlr11xx__system__stat1__s.html} (78%) rename doc/{lr1110/html/structlr1110__system__stat2__s.html => lr11xx/html/structlr11xx__system__stat2__s.html} (73%) rename doc/{lr1110/html/structlr1110__system__version__s.html => lr11xx/html/structlr11xx__system__version__s.html} (77%) rename doc/{lr1110/html/structlr1110__wifi__basic__complete__result__s.html => lr11xx/html/structlr11xx__wifi__basic__complete__result__s.html} (61%) rename doc/{lr1110/html/structlr1110__wifi__basic__mac__type__channel__result__s.html => lr11xx/html/structlr11xx__wifi__basic__mac__type__channel__result__s.html} (69%) rename doc/{lr1110/html/structlr1110__wifi__country__code__s.html => lr11xx/html/structlr11xx__wifi__country__code__s.html} (65%) rename doc/{lr1110/html/structlr1110__wifi__cumulative__timings__s.html => lr11xx/html/structlr11xx__wifi__cumulative__timings__s.html} (67%) create mode 100644 doc/lr11xx/html/structlr11xx__wifi__extended__full__result__t.html rename doc/{lr1110/html/structlr1110__wifi__extended__full__result__t__coll__graph.map => lr11xx/html/structlr11xx__wifi__extended__full__result__t__coll__graph.map} (62%) create mode 100644 doc/lr11xx/html/structlr11xx__wifi__extended__full__result__t__coll__graph.md5 create mode 100644 doc/lr11xx/html/structlr11xx__wifi__extended__full__result__t__coll__graph.png rename doc/{lr1110/html/structlr1110__wifi__fcs__info__byte__s.html => lr11xx/html/structlr11xx__wifi__fcs__info__byte__s.html} (72%) rename doc/{lr1110/html/structlr1110__wifi__version__s.html => lr11xx/html/structlr11xx__wifi__version__s.html} (80%) rename doc/{lr1110 => lr11xx}/html/structlr__fhss__v1__params__s.html (97%) rename doc/{lr1110 => lr11xx}/html/sync_off.png (100%) rename doc/{lr1110 => lr11xx}/html/sync_on.png (100%) rename doc/{lr1110 => lr11xx}/html/tab_a.png (100%) rename doc/{lr1110 => lr11xx}/html/tab_b.png (100%) rename doc/{lr1110 => lr11xx}/html/tab_h.png (100%) rename doc/{lr1110 => lr11xx}/html/tab_s.png (100%) rename doc/{lr1110 => lr11xx}/html/tabs.css (100%) rename doc/{lr1110/html/unionlr1110__wifi__result__interface__t.html => lr11xx/html/unionlr11xx__wifi__result__interface__t.html} (67%) create mode 100644 doc/lr11xx/html/unionlr11xx__wifi__result__interface__t__coll__graph.map create mode 100644 doc/lr11xx/html/unionlr11xx__wifi__result__interface__t__coll__graph.md5 create mode 100644 doc/lr11xx/html/unionlr11xx__wifi__result__interface__t__coll__graph.png delete mode 100644 lib/lr1110_comp/src/lr1110_comp_samples.c delete mode 100644 lib/lr1110_comp/src/lr1110_comp_samples.h delete mode 100644 lib/lr1110_driver/CHANGELOG.md delete mode 100644 lib/lr1110_driver/README.md delete mode 100644 lib/lr1110_driver/src/lr1110_bootloader.c delete mode 100644 lib/lr1110_driver/src/lr1110_crypto_engine.c delete mode 100644 lib/lr1110_driver/src/lr1110_gnss.c delete mode 100644 lib/lr1110_driver/src/lr1110_radio.c delete mode 100644 lib/lr1110_driver/src/lr1110_system.c delete mode 100644 lib/lr1110_driver/src/lr1110_system_types.h delete mode 100644 lib/lr1110_driver/src/lr1110_wifi_types.h rename lib/{lr1110_comp/src/lr1110_comp.c => lr11xx_comp/src/lr11xx_comp.c} (69%) rename lib/{lr1110_comp/src/lr1110_comp.h => lr11xx_comp/src/lr11xx_comp.h} (68%) rename lib/{lr1110_comp/src/lr1110_comp_generic.c => lr11xx_comp/src/lr11xx_comp_generic.c} (71%) rename lib/{lr1110_comp/src/lr1110_comp_hal.h => lr11xx_comp/src/lr11xx_comp_hal.h} (85%) create mode 100644 lib/lr11xx_driver/CHANGELOG.md rename lib/{lr1110_driver => lr11xx_driver}/LICENSE.txt (89%) create mode 100644 lib/lr11xx_driver/README.md create mode 100644 lib/lr11xx_driver/src/CMakeLists.txt create mode 100644 lib/lr11xx_driver/src/lr11xx_bootloader.c rename lib/{lr1110_driver/src/lr1110_bootloader.h => lr11xx_driver/src/lr11xx_bootloader.h} (82%) rename lib/{lr1110_driver/src/lr1110_bootloader_types.h => lr11xx_driver/src/lr11xx_bootloader_types.h} (62%) create mode 100644 lib/lr11xx_driver/src/lr11xx_crypto_engine.c rename lib/{lr1110_driver/src/lr1110_crypto_engine.h => lr11xx_driver/src/lr11xx_crypto_engine.h} (78%) rename lib/{lr1110_driver/src/lr1110_crypto_engine_types.h => lr11xx_driver/src/lr11xx_crypto_engine_types.h} (58%) create mode 100644 lib/lr11xx_driver/src/lr11xx_driver_module.cmake rename lib/{lr1110_driver/src/lr1110_driver_version.c => lr11xx_driver/src/lr11xx_driver_version.c} (88%) rename lib/{lr1110_driver/src/lr1110_driver_version.h => lr11xx_driver/src/lr11xx_driver_version.h} (83%) create mode 100644 lib/lr11xx_driver/src/lr11xx_gnss.c rename lib/{lr1110_driver/src/lr1110_gnss.h => lr11xx_driver/src/lr11xx_gnss.h} (72%) rename lib/{lr1110_driver/src/lr1110_gnss_types.h => lr11xx_driver/src/lr11xx_gnss_types.h} (54%) rename lib/{lr1110_driver/src/lr1110_hal.h => lr11xx_driver/src/lr11xx_hal.h} (86%) rename lib/{lr1110_driver/src/lr1110_lr_fhss.c => lr11xx_driver/src/lr11xx_lr_fhss.c} (60%) rename lib/{lr1110_driver/src/lr1110_lr_fhss.h => lr11xx_driver/src/lr11xx_lr_fhss.h} (86%) rename lib/{lr1110_driver/src/lr1110_lr_fhss_types.h => lr11xx_driver/src/lr11xx_lr_fhss_types.h} (78%) create mode 100644 lib/lr11xx_driver/src/lr11xx_radio.c rename lib/{lr1110_driver/src/lr1110_radio.h => lr11xx_driver/src/lr11xx_radio.h} (69%) rename lib/{lr1110_driver/src/lr1110_radio_timings.c => lr11xx_driver/src/lr11xx_radio_timings.c} (72%) rename lib/{lr1110_driver/src/lr1110_radio_timings.h => lr11xx_driver/src/lr11xx_radio_timings.h} (87%) rename lib/{lr1110_driver/src/lr1110_radio_types.h => lr11xx_driver/src/lr11xx_radio_types.h} (53%) rename lib/{lr1110_driver/src/lr1110_regmem.c => lr11xx_driver/src/lr11xx_regmem.c} (57%) rename lib/{lr1110_driver/src/lr1110_regmem.h => lr11xx_driver/src/lr11xx_regmem.h} (83%) create mode 100644 lib/lr11xx_driver/src/lr11xx_system.c rename lib/{lr1110_driver/src/lr1110_system.h => lr11xx_driver/src/lr11xx_system.h} (74%) create mode 100644 lib/lr11xx_driver/src/lr11xx_system_types.h rename lib/{lr1110_driver/src/lr1110_types.h => lr11xx_driver/src/lr11xx_types.h} (89%) rename lib/{lr1110_driver/src/lr1110_wifi.c => lr11xx_driver/src/lr11xx_wifi.c} (55%) rename lib/{lr1110_driver/src/lr1110_wifi.h => lr11xx_driver/src/lr11xx_wifi.h} (68%) create mode 100644 lib/lr11xx_driver/src/lr11xx_wifi_types.h rename lib/{lr1110_driver => lr11xx_driver}/src/lr_fhss_v1_base_types.h (100%) rename lib/sxlib2/src/Generic/sxlib/Radio/{Lr1110/Generic_Radio_Lr1110_driver_hal.c => Lr11xx/Generic_Radio_Lr11xx_driver_hal.c} (83%) rename lib/sxlib2/src/Generic/sxlib/Radio/{Lr1110/Generic_Radio_Lr1110_driver_hal_timed.c => Lr11xx/Generic_Radio_Lr11xx_driver_hal_timed.c} (92%) delete mode 100644 lib/sxlib2/src/Generic/sxlib/Radio/Sx126x/Generic_Radio_Sx126x_identify_sx1261_xtal.c delete mode 100644 lib/sxlib2/src/McuHal/stm32cube/sxlib/Comm/serial/McuHal_Comm_serial_lpuart.c delete mode 100644 platform/bare_metal/stm32_seq_integration.c rename platform/bare_metal/stm32cube/shield/{e516v02a/identify_lr1110.c => lr1110_lr1120_tcxo/identify_lr1110_lr1120_tcxo.c} (93%) rename lib/sxlib2/src/Generic/sxlib/Radio/Lr1110/Generic_Radio_Lr1110_identify_lr1110_tcxo.c => platform/bare_metal/stm32cube/shield/lr1121_xtal/identify_lr1121_xtal.c (75%) rename platform/bare_metal/stm32cube/shield/{e516v02a => lr11xx}/smtc_shield.c (100%) rename platform/bare_metal/stm32cube/shield/{e406v03a => sx126x}/identify_sx126x.c (100%) rename platform/bare_metal/stm32cube/shield/{e406v03a => sx126x}/smtc_shield.c (100%) rename platform/src/{lr1110_comp_hal.c => lr11xx_comp_hal.c} (71%) delete mode 100644 project/keil_polling_STM32L476/RTE/_lr1110/RTE_Components.h delete mode 100644 project/keil_rtx5_STM32L476/RTE/_demos/RTE_Components.h rename src/demos/{lr1110_lr_fhss_ping/lr1110_lr_fhss_ping.c => lr11xx_lr_fhss_ping/lr11xx_lr_fhss_ping.c} (67%) rename src/demos/{lr1110_lr_fhss_ping/lr1110_lr_fhss_ping.h => lr11xx_lr_fhss_ping/lr11xx_lr_fhss_ping.h} (82%) rename src/demos/{lr1110_lr_fhss_ping/lr1110_lr_fhss_ping_async.c => lr11xx_lr_fhss_ping/lr11xx_lr_fhss_ping_async.c} (82%) rename src/demos/{lr1110_lr_fhss_ping/lr1110_lr_fhss_ping_start.c => lr11xx_lr_fhss_ping/lr11xx_lr_fhss_ping_start.c} (82%) rename src/demos/{lr1110_lr_fhss_ping/lr1110_lr_fhss_ping_sync.c => lr11xx_lr_fhss_ping/lr11xx_lr_fhss_ping_sync.c} (81%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e3f9cf..1238e24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [1.1.0] - 2022-02-25 +## [1.2.0] - 2023-03-13 + +### Added + +- Support for LR1120 and LR1121 transceivers + +## [1.0.1] - 2022-02-25 ### General - Initial version + diff --git a/README.md b/README.md index c384043..6c27f4a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Overview -------- This package contains drivers and demos for Long-Range Frequency -Hopping Spread Spectrum (LR-FHSS) transmission on Semtech LR1110 and +Hopping Spread Spectrum (LR-FHSS) transmission on Semtech LR11xx and SX126x devices. For more information, see the doc directory, and diff --git a/doc/lr1110/html/classes.html b/doc/lr1110/html/classes.html deleted file mode 100644 index 3bf3989..0000000 --- a/doc/lr1110/html/classes.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -lr1110_driver: Data Structure Index - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Data Structure Index
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  l  
-
lr1110_gnss_timings_s   lr1110_radio_pkt_params_gfsk_s   lr1110_system_sleep_cfg_s   lr1110_wifi_extended_full_result_t   
lr1110_gnss_version_s   lr1110_radio_pkt_params_lora_s   lr1110_system_stat1_s   lr1110_wifi_fcs_info_byte_s   
lr1110_bootloader_stat1_s   lr1110_lr_fhss_mod_params_lr_fhss_s   lr1110_radio_pkt_status_gfsk_s   lr1110_system_stat2_s   lr1110_wifi_result_interface_t   
lr1110_bootloader_stat2_s   lr1110_lr_fhss_params_t   lr1110_radio_pkt_status_lora_s   lr1110_system_version_s   lr1110_wifi_version_s   
lr1110_bootloader_version_s   lr1110_radio_cad_params_s   lr1110_radio_rx_buffer_status_s   lr1110_wifi_basic_complete_result_s   lr_fhss_v1_params_s   
lr1110_gnss_context_status_s   lr1110_radio_mod_params_gfsk_s   lr1110_radio_stats_gfsk_s   lr1110_wifi_basic_mac_type_channel_result_s   
lr1110_gnss_detected_satellite_s   lr1110_radio_mod_params_lora_s   lr1110_radio_stats_lora_s   lr1110_wifi_country_code_s   
lr1110_gnss_solver_assistance_position_s   lr1110_radio_pa_cfg_s   lr1110_system_rfswitch_cfg_s   lr1110_wifi_cumulative_timings_s   
- -
- - - - diff --git a/doc/lr1110/html/form_20.png b/doc/lr1110/html/form_20.png deleted file mode 100644 index 0a7126f1c9d25ff6c3e4d151205bc598f8fef800..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5311 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 bH;w!^3Ke;zbvno800000NkvXXu0mjfsVfCE diff --git a/doc/lr1110/html/functions.html b/doc/lr1110/html/functions.html deleted file mode 100644 index 669692f..0000000 --- a/doc/lr1110/html/functions.html +++ /dev/null @@ -1,348 +0,0 @@ - - - - - - - -lr1110_driver: Data Fields - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
- -

- a -

- - -

- b -

- - -

- c -

- - -

- d -

- - -

- f -

- - -

- g -

- - -

- h -

- - -

- i -

- - -

- l -

- - -

- n -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

-
- - - - diff --git a/doc/lr1110/html/functions_vars.html b/doc/lr1110/html/functions_vars.html deleted file mode 100644 index e9542e1..0000000 --- a/doc/lr1110/html/functions_vars.html +++ /dev/null @@ -1,348 +0,0 @@ - - - - - - - -lr1110_driver: Data Fields - Variables - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- b -

- - -

- c -

- - -

- d -

- - -

- f -

- - -

- g -

- - -

- h -

- - -

- i -

- - -

- l -

- - -

- n -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

-
- - - - diff --git a/doc/lr1110/html/globals_defs.html b/doc/lr1110/html/globals_defs.html deleted file mode 100644 index e7bbeb1..0000000 --- a/doc/lr1110/html/globals_defs.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - -lr1110_driver: Globals - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- i -

- - -

- l -

- - -

- r -

- - -

- t -

-
- - - - diff --git a/doc/lr1110/html/globals_enum.html b/doc/lr1110/html/globals_enum.html deleted file mode 100644 index 6c00c2c..0000000 --- a/doc/lr1110/html/globals_enum.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - -lr1110_driver: Globals - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- l -

-
- - - - diff --git a/doc/lr1110/html/globals_eval.html b/doc/lr1110/html/globals_eval.html deleted file mode 100644 index 8427841..0000000 --- a/doc/lr1110/html/globals_eval.html +++ /dev/null @@ -1,635 +0,0 @@ - - - - - - - -lr1110_driver: Globals - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- l -

-
- - - - diff --git a/doc/lr1110/html/globals_func_l.html b/doc/lr1110/html/globals_func_l.html deleted file mode 100644 index 5e4a1de..0000000 --- a/doc/lr1110/html/globals_func_l.html +++ /dev/null @@ -1,808 +0,0 @@ - - - - - - - -lr1110_driver: Globals - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- l -

-
- - - - diff --git a/doc/lr1110/html/globals_l.html b/doc/lr1110/html/globals_l.html deleted file mode 100644 index caef8ea..0000000 --- a/doc/lr1110/html/globals_l.html +++ /dev/null @@ -1,1894 +0,0 @@ - - - - - - - -lr1110_driver: Globals - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
- -

- l -

-
- - - - diff --git a/doc/lr1110/html/globals_type.html b/doc/lr1110/html/globals_type.html deleted file mode 100644 index fad0445..0000000 --- a/doc/lr1110/html/globals_type.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - -lr1110_driver: Globals - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- l -

-
- - - - diff --git a/doc/lr1110/html/lr1110__bootloader_8c__incl.map b/doc/lr1110/html/lr1110__bootloader_8c__incl.map deleted file mode 100644 index 7335b08..0000000 --- a/doc/lr1110/html/lr1110__bootloader_8c__incl.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/doc/lr1110/html/lr1110__bootloader_8c__incl.md5 b/doc/lr1110/html/lr1110__bootloader_8c__incl.md5 deleted file mode 100644 index ee2a5f1..0000000 --- a/doc/lr1110/html/lr1110__bootloader_8c__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -092ee2a38a3b27f006f7982dac886333 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__bootloader_8c__incl.png b/doc/lr1110/html/lr1110__bootloader_8c__incl.png deleted file mode 100644 index 55877caeae30b96289529be72ecd2c95e3afee38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17030 zcmb811yogCwC@j%fOI2WQi3$n-JpatNQ0zwBXH<05h;;=e20`}GuH4BhzKv{F*+DRn=b_e9ON^mUp5*9A_gDF4uK$Ju`j~h=^7cW z^vBa5N5LW|g@hnCi9DItuCGf*pG+U$9` zLJEtC^6As3+l&29eiX}3X;4t}|RxIGjPLfiJC-?ye15=Z$g6CWby ze!4NNoG!rUwDp!}PFzeZUBKO8r7JWhCMGwRPFY!52yubd-QE4qpFcrCL3ald4nepO z7@SeLnX$34p`pF|+e?EMubCF_+icl*xAFb`xmp5Ned`Y&K4Z?78Fq%@F`b;8R8?2c z&DRwb?Oh$OT3T8b6cjja4E@E|F)>*iO6D*hNqrhbqwAr5ojuH4QCXS&_IQp)ss8>% zp0b{vo`{HumzS5K;_$Cb@mlMdAGx`c8-ofmGHe_i)R@RTw(}t&Ay*Igx1V9)xNYaB zTYVoV=TefB@6V?Uo;`a82986gVDI8`FqVZR7BUf9_M8C{Cn6BfF1EGU?3tdP9)N^F zhwXm4)D}%HEGI9I^qd%apI=zWL`@x^oZQb6;O61M$iNT?h5nwLta%AZ>BT1^3guEt zX73&yWu>OhGHCTd&iwk7(AaoY$oqx@icT&xKRvy*x|)@rPe@2uXEjygxH)1dTiN|I z>aRR@WRX&*;N#+gjO~MnlvGcabaYwvypbmcMsz^|BP%N_9$sQyT^*0zVgwOK(1h%+ z2J|)tmf~5L%T34Rq)T56Ws@8^a^|;h#L$?gCV@OjQBfEx>*DX*q~KNSXh{! zztLGkU0ppx*q7|J5qziwReZmLgTwgvI9U7LsZzV<-MF|oC=^P{@3OVC!}#*0rjCv= zQ8E}JLEs@6B4t;NO0LS!rhUvo(qUC8XJ_YA==h5?rNgnT;J7&Ki>#m^DQTn1ii$UG zN6SIaNx+@K09crrF~tG{1CcYYPd9m%D)RGX3=CQ&HTwJe#e>lk;2(UI=<{g2&Iz-55#Z z4-E|+=EsVN!uV&RnASIbWMu)Hj}lDh{X`|U1>8wkSXi2kL4%W}v-3IlmV}sCDuS>a zSc;2F1Ngk!8_lZMfXjco0)|KW%=zYQo05{!`}Sh}#e*1fePbgM0z!R#z4zmTp0ctX z*u*L-DlF+&2MhebsP@{vmzRG6<__i%Y_saBs*AlDY9^*R4+AnXGJ;pS_KuE)g@q|> zhW_#Ks;5e`!GljmkKEzQvwL)84{VcOIenQl7Dy-l4++1$s9yCu+&pkN{+rl6huV-(q zZ)ay`xu-7RAx9W$0|NHo08uY|FDW6RkjncB7$Y7Y9&#oy^!FMXNbvBf{H{?-dE^3a zm~(Z*7YmK97=&yez*WG#TY9r%+v<@Dd0m0ytGv7%xV_86CEvTN*OLd^+YBr$q}bRF zTfZ_lRH=e7$VWy;FOQF(VPH&+jm=bB5o}^dcwQb9YgIm3(J+CW5ZJv_r3TGSO=9BW zNa!!FHik)B(8wX*iDU)@*sLa*jg5`@`0BgE2?`4edU|^a@bSR}+0Il*N=gRG<=D>G zy=GweSyU9ERqp%v0Gy=v!yVsB%SVgeBuKZt&KwS;O@qz59d2i5XPA6q z`wX}c?9eVP30R%bNToa;PR^>Ck{>@hiXCnB44EbjnmxE!SxZ}5$S9$TDfT*CRjcx! z9en<5%%(#iE&ka(#J%=SWj~~4` z`3KAm_}gl?Bm{hemevgLeZ~_6^Y5SUUtxbw-JjF_uc6i2Eh#A~78e&kM@7w=*k0|4 zRMpTR=eGVD9j&aTr6nud4-Pn~XtLs`agtL0F4QP3Dq^OKpZVcvt88gu@u6}C9FSn2 zY;SL4VPQ>QJiW*=_II#sb2T<3D-|{LzP(rwh-@;wwY4=YEbPW;2000d=hcy6kwiEC zkZ!Zbd4uz=$K}EP!9kSGP_g&%O1G@6EN~-^4h|p3d{dNxm5+i;E)JK3je8<0%}1li zg{@pkKMm<#QNH-S;3*oNFUcF{G$nZkxK6AfmSZM$BwLTyODCMn^!a}@g zU}d#*bQ-(a-x&QYkh>WqNX!(M&(6`&w;aYXHLc*|Yeqz8-u+XUPJWLX0iue`Ov=S~ zkTzB-d&vwMFtd&usj+cXl2UI@EeRCp1{Va`IXSnt#t^~@QjRTIA)jrr{p7T;@9r;C z5)$lO4fwBS-T3%N4GpIDJ=;HwsI;{8OFpRg z$5{tmp^_%-seW)z;blZ6xW-^fdSoP?i!%YfW}@CvQC;1$MBBOi$B&Eo`gK8%s@l(B zB4fVGbUz=J$~3a znh+n4f43NnF;)Mmla@ZudL(s1QZmsW0|NO)oQfTsM=L)vwyl17Xh)6xiGNut%iEx7 zy7gx$5pjc(vNB#N8w5g_pYZ8)>z#-0e4e1E+260RSYq1R1Ml9YsH@{`4Dp>lcnd|v zg0-hHZDLC<3P3v4)Ot?JV+&aOf-G&`_N4 zLs>h2jBo$oAUr~GvVi+hg(<QO%)rWua8<)?O9(hiHoOhJI76W7y^mm zjY&XY;i=s#ZB2hT4vws-5Lhg)8lG{lNKG9o(c@uc+_~6K2{`;D1EG0NV=Bt;v=!CR z5El@@x9C@8zCQ3tPR>E6Mz=UWU(nqlHUan9(>-z7@|fQ;Fz~&5_tW!o1pk54+{y|Y zyW-;E-Zd&JX=g{m$I=TTfuJiu#S5#+nY_8!GF)9Nyi{v<$fPleyzhkyS%GIXZLfDf zb(R~bU1&7_ODaQ8NU}TMR9~K-KR$Ue+R=g1)CnVUC#r%U6NDI)q;b{}n03``!9IF^ zSc*^D94J9Gl6g^hv-QC!)m*|iyzml|%}?vpg+pW7a(j{kf|vdU(u}89l?!va*sH)} z8cIto(XEgB?8*xXp&SQM_HmTxP<E(OXzvJ^gV0@vk;mvZ3MIz+iswJIxQ~t~E_f zh==wNO!t_C>-9$h#q=;&3NLe$Y*M`H>)T6hojDE!1bYT<$O5cvGOL5*AS`TpLxYlr zN?a#DzUbCm?d5O^Nx#WB@T(jg@<-@M5G+J+A^MAu@yUZ~>lw`^III_3Tmz9LBRe~C z+}wF8DlLCW(IG!j;@A&!vc1Bil;)Z}zhtMye9wRBxE2ROLAY3y>|nj{1KJ&&pErJ@ULQ)%sWf}u3)V{lEj4e*n8!A|$>)CmU}5P9 z9iGR8{dlcka$vw=WTYJr&lw#Zn==?ri1y2kp@wIBTgn|lJ+;J%w9g2zX7BS!Z; z@?TPPxXnkBNqAK3Bc4Mt5oD9i<>U+R@6vhs6jfBSmPy0Q$|^~m|8@)%Y8Vu0IsVM_ z^TYfxQMfUDnln*|PTDXr-Pgu10)e8_n5G|}gna>~S!)Zs=!cwSIpOo{nHB;0qw`F~ zDR6M%_}57ZcTXvfx}V?ZaTGcv6VBY=sHZm?q4mL|qu2bn$({NrN|G=qXMJWaLmF9K z?e}X!g`!xo?by_&V6kmKD+>rRL4JaJ=fvs7a{EqAO|BafRdx{C*b8=v)7wj8B`GQ7 zKaa>}jyi=Oy%t-2U!^MjqT^24-@t#^o6(><^?hJ5X8Y>n6CEDz zyNpK&5kro1aD7c!Bp!UAsY4P;RvhihEVgs>cdM+-1V8-GjfMi<+}v%;vN)`Wg{aCw z36n;;x#`%#LbuDd{KM&}^n8>q8{tq)3;|eyc0`2FNB-IKEW$p&(|A8EjeTlz zWBoQyii#hBhUUb{!9jtEY~nx??uQu)?F`OBASZ-$JR51*`f`737aT-KOXDWfhn=<% z8~e`T`s6ewMuIN>&z(KFScnM4d`t7pZ#9C_X$U4+OhV%;`n;j>ajVgEEhY_Zuws2z z$5}!G0yCqBpWeNr^%H3;IirpZp`&Z?eQbVqxCLn=r&%x2soXfpQx1$KZ z>|n{)^>2qTh@4eavUBO^#9nebHRr60G>OAKh1QKPY1ik9wDMRD^aY)FFq@38mEGKU z7b%^TL`4A*2rShfBSNcbXedfac?~ndC}HupBhW1vVh<-<&opg)F_bKHax&ggW5F)U zsY)C>Ev|Gxz{i(WP;k}I0GwNZ@YQ=ccFl%LrV;~XS^2?6S34%)=qZ_*6(n{+SeBTs z&*qemzv#EjARsV5GJ*~;PWo~}ol+;hqJEV{6*Lbc9XupkHbg|_fK#}Y9uKd&q@>J( z9rF2-g25F%O@ICHv1^71Ul9>~_~CUpXL@=xhwv4-xw$Wnj=r)Pih*3FRIjn8(DwfR9?+S{h=|{R{wSyNVi6Er zUORdwL9_GnbTl>JzQo1BiQgQ3Z2n{bqTo1M`Fyp4Z{KE5*1;(-IA>{4W${i5MogfHzy!lyDve@Ka z2_6@ai0W!*B_;I9#Su22hdcN2Y*}0s)8#fl3^IYOSvS~FSlN1UfB!D9al#2$$=*1D zgTY_p+!}=CK0Xg14J#){!XN{5APEd>MD_0e9>o00Sz~*9duBslMe`=G#83%d6%`eE zfwT+6?O<}hu;>KY%$wa-TTLk_DuP_N%dFC%$!+Y1udUufy<_mO84nlNLft27Ha0d+ zPF$3Dh!A@Nz?Hi?p0*o-bWOlYS2D0TgG7=&pLp&qLckkZO zVE;VF;h#=VObo=7Q&!%rvaqnQznK0O8ynl$$iLa!9)Og=@A`^^1BWspEiIC(#q$!K zQtj>Aw&Jv5GsifG@T8d$)o=XHJK(pZDZ?XueIm$s1O&$WAX7x9e3O=*loX6PFgn^h zo2)<=C?+c}Z|q1URdf#+<+O2;K;D?ed=Cr`K0e}-+%u%alTmk1;Sc50uU^F;qeEGp zoSfX|Coarg5v!J*F7=etvdtyD2SC zLPFx}*RL;MzQja^4yW);Sa3oyBc)qqEzZ^2 zP21H!r_Lh>YYcr0tdlJ_FEkUt>bbyq7Fp0ICT-fIh zU@R*Wliwq%WnRJk0|Nj{jZaRRu@M58p-KI|`J-H5^&s0@VzO)9*w}d65r_&1 zO;KqnD+^2HaD0vN{%kcMJHVv?NCapxcoyW$vNARVgh0d2pyY4gK7Ra&h=5>7;%MdS z=m@4Wy{O1~w~}?%OKz#fJDN; zeo=rKU`%ZIwAzEm^uDjJ&&jS2#^Twe>P8rdh*Gz+zEj|k9Y9@~NhK*TC0w_aK0o+w zD?J?nbwl3@`}#Bv7stp1rh{B5AdqLU69hJerFL&T&K7@2W+7orw(;YCI@+J(5o2O{ zU)09`3Pc}j12zCZeUg;izu2ERMwd`H+n*zNphfyl{awWtuEyd7i>lam z{_PwS^c*PB;vhQ|fk3d4a#^+IlvzVU+}v-@R5Uq>AQWzI8EV(I-94w-iuoLaR!NZ| zBG{ricfw=>ZjWc%n>w}J9qN@3h;Caq^`jx1rfTjB63+bS)<=gX<87)dopCOc3c1mA zv+C+Y5@H9ejz+|q~NV9qSVTyq;@$RPjYK)raYTy}Pi;_XrPmsFe zoWA1aeJ%9BlsN17a2GrHC30-+9hN3UWLzXCLce(+D%71EcMX|{sEUqOvIAwaqazH2 zq`)%-cMu&VW@`*E<9lu>9Ht9;hWz@`AE$7X=zyv~$3#g<&C7dyu)v9jca4B5#iI9d zvewS7X$59QdYozf$&8jZh26?X4@Ev(P{fAdHjVJ~G|kk=f1j2FmS+x-yHb{rt)BhF@7p;f|WwI-sN^EV$RX$o}D~9CG;U zb4cvG+|1xEU}~vZ)Xd+|+;X-4-chrknA+P@<=Ln6PpK)PqnIB#Vrw%PhtnO-n!-JP zfc1H+n#Ien?DH@mpvs%_b?=iS>f;e5Ik;U}{4Y88rIyynNN2OrAjx?<>s>Tn^I_Q1xKj->UC#?+Nfxwo}uY?Uos8 z1IEJndS(}d)enNWBj0I58{M*hhVp${i8b&UJGpcPoAsAvoq<3H4lrPlm=mxH-Jbo# zL^1#6-=#i~#M-;Lp7{81i`E1O69;_b2$-hTUR%w-P3EJ;e>*R&XK_#VW(YtKdKF)k zt*fQAyLxKBKl{vHj~NpY;2v_phNIz>X5axIjxyUuM(jGE)L=0f89yGQKVO!rh&$cr|3PB)`SI<`ii-VvbOTHvg+*Q-23d_^Z8;XOndBiIPb#udP76Z?q_|^ZI7rM zx>iLDkU;)|fJDF8blm{v!Df~fyk1Y_E=C?&sGzK@a%gDs>(_@Dd&$ptCqgyx3|Seou23H1S%4}qt}I;A8enfCbR*zdTdB$~V) zg?yKUbiky2-!1FlW3hQm=8$J%{J6h&$IOg=dn3fiQryGO*(SeYz%Vt%6G`G~F@P)1 zT8aR|)&}`Frgi)lFNUxXH$3b(P1OlD@0+(TQ@ew%{xM{qyZpHZ=QoRfkT!WZ#Ixh0 zGM`hkr3~L$r5PaBNPFzZe*fnNWN&G3lH3*5hE8 z>*$DM)sMJ5cIS1m7WTY-&0&T{9oyBqgDq_IknZljpso_9(>x0c{O@w9&wV}_*`(d# zo}i}-k(kB(&G%SpK@75{_>4!=!(SqsA&xnBf5m+yy5tR(OhHT^gE>C_h(D5?OgmLV zYtZ-wx-j);(I+DD4;wGJ8coQlpAeYKZ{LFQ^M~!v#I4)>T9hoUP3Bu4h5o|{$t4T> zLIXNAZT9uudJ$%+YZ4t4h8nM~N_p%WM5GY0!&Q0B%_mCr6;V)cOYH%2&3^(+5K)q@ zN|hdbMY1<)gQFPuiug<*{Fhe6;h@`CcqAAR+#DsZx1J#+CB0uH2t4i~p$w0A}RZP2Ho(d~v#I5D&bZBU7T=g-r`@86lTQBV= z2_Xh)>AVs>l0LJ_Pzl)ZKr}QpEHUNuz0a!b-Qub^jv%n!*$LwIWum8#Pxleg))v5s zTn4cnJNt?H+qYu+`g|@1Q|_kz51+<9jnbF|qETEHF0X?qIY+ZfHp2!Ech0N$LzB2W> zK}O3pt*NsXOifudo*(>?7vlPZGdYiiHWJ~eFvPE=^;4@dh}FPW$RvcWb{{P7^@WY? z+h4@Aw0xpH42Tl9aC$m(eKwh5urS5CmgRO!FJOY<-J)b@hSIF$=pIMWf)a2oAMUVX zViAI5Xf!p^cwKF;3pG5sZBwxUliB&bI+2%whOSif(~@s>=~r8w3kx4Dt@+Jay!|&l z^Uw=(Q0na9X7YyhD|6nh3P9TINO~_Ylx*Dbfi0z$lk4^7(Cc<4GTGdM*$FV4V*b(! zLz9M`RW64umPQp%vw45(HNx$B&{SM(1CT!g!cv|he{w=Xpm7_Obd}>II6PU#U&YGM z#LKp{T+G$97hJ3uU)htg6hCT7Nvo>P^vRHvxXWt#@=^L-MKK_a8?*hJ$OG<+e-F!V8{0diq{BaA*1kWzniI{Wf) z|L5rWvm@D7pWiTWHy{2SxA}P^qVEN`N_>Bgf+DEjGW3z-v|{EZ)yn#K&V#!8xj%*i zG{j!z)vJ=OMLq0LUhrCtuD+ng)xrO=O&UBYO>Bq>yCtZJ0FOV5PntHXG-ArG1x}yI z$vhO)zXv6{q4p|D%8#`QAb#NFbt`UaLTfpO_@r?3LieSkjg2Q98_pu(C9cVDv*&QD4u3@7Kn09uu(a>5hw^ak| z2wC-;men;tUTtP(2J}8nJ8$pu3s&x2P=$#jdkRNQfIbMYhM}RMH+9VsXvSw-UijgC zMp$1JsKNs^nW^GsKa^tzh?-PBOLd`(2fqjlU(d<@>fjKO;mXoNMNLh>tl7rJVC;6n z^Bw{sV<+e1*7)akgL6whw>AKD3GBTc`aqylnEw(K!jDieFaTg!Rks6!`4NXHp|;Dx zFX>i~X$bQ7HVRU>a{3OW8=z{s`?usao|tWIW`>W6*>?K2VQ6}qmzTG0b^D+tfZI8Hcvu)RyqM+B{8ws-8M0U%g*>SLR`&#y20-%o4{?g=UpuJcNLJ9$c+!f1 zj2$G6D=S8eJq%wYJdUIz2tQq)n8NJkTR{Z`G6M(ARemoqlhLmWKiIx#@x&U5I)7zDgJo-5)KL7>u4Ef(&B%Dq&E($h1|DT z+G6Zipv;PokB^H2iur3mZK7%Xe`8Z(yYhH-&fWX>K&4UzQ1IKAAVCJj@69t+J-uf4 zQ!_vrXlZG!taejVUliTvbxuhIr1mCpN)AfwrSkR80*xRN~`( z7kZ6xuqieU4j&6p=YWZvUwO^WK0Y=kD<@a*^CzGEG9*#Xv|KZFiJdS44E1t%ij{^Y z+xd?4FgOL=3uGgYc`45DV)oxoUF+LZB0@VL7*4|1A}4Z%$F};fKsS$ zbaZrh7;xnkAVn(Mudhz|_D#RR>F01#|31Ul$-~mXz;2+%2@4Mg@DON4o}m4^dx4m8fJQOp8n(xOf9H)Th=u2E& zSaftLKqm?c^DW+1jFG zx3ZaU0U(;z1&@ROmye%+Zf>q}X7A?41L(E@q^#v2o_9%0Or&LHjqYw!BoKW{na`MMVW% z7cMR?5F>32r&w~%D!VS233n(EA{qdB)U`2jB&dQ&)5QZi8P0XFJB2}+kd)M0+?+Nt z=Ps9W$oda0+iZ$PM0{L4rr_r%q09z3GO09GtPDV2R~P#v7jq-%SwL)KVqyY-nS=y< zvO-OHxurR0-M+T6GAk!1AiK_hBNx6emQz%;aWpte-s>>0;EVOFbc;!F_t78&0u&(3 z1Dx6D>6Ya+HIsdP`KoES1V9AX+$09yev23S){ z`-ioS4WmfS^Mc~yVIYr?psBfkw|0SRdszDA%X>vdMOoQr^kjQ}B_-elXJ%os(T}rl z$q**(!T(D{OdLffcmr_q!@~pMGcj>-AI&*uXR0G36~VkYIGg}MVox-=0q{;fgj6t> zquKebT4EmQCpYK2(Ll!a?VGlmT9wTlx4iryfXyxi!3_;>@WXR}9E*kJ9!PTR><+nk z{sV-uis6%|k$QoR4aj+3LBS57jhw{8lauca41kK}cw_{`+kwCrrf}O-R8#;5wK*Au z3BD-H%Uj(C$Iq$OHMat2`Txw|qDn|+-UtBc77z#0(a`X|c~c_{%<9Q=rt!N1;{;-} z*U1Wdc$8NPH94vovhRE=-BJ_&JDS_^wT^441hS9=fU#2r+$&mIS^y*DR-9x2k}W}x zv#pixa0c7~AoSWCNgJHgV1ynK-vPAk;pPSaGLZR6NJ|3&57iTQ26hPadS)L#0tZ8c ziwgxxlZD~oeGsOA$1NUhu{dSeZ)yd;2-q%oPO$&c(a}>czJLEN8h{9l>)p@akt94N zn&o0rxmi3?7NqIL#VoNhK*mJHoi+YoQB`jROaeGk0Q5{vO~Kp)%@+c~Cmq{oNu$|) zty;r{PGn?MF)v_+ej!06yuH0k^_zkED20cZh)A#A0iiU8&0qKz{T=jT*ywaygd7qV zG;DTza|1-MBPl!>hnj85A@eD;?6TK@5<}m=FVggL)x{PSLu_4TRaH_tm@YR4RNcbo zH!^Y@VXGEZWuG^okTaxpG#Ez#P&A)j1G-w(w8a+h!HE!vhS8l_s6q}<2ggDFRR{m4 zQtU}KYzeY+H@CXwRm|)g53^`88vS#rtT7;2bNi!XWJFck02>!tOHN4~Nq6x~bc<8i zvL2OSScw%jx-{TWUP`42VNsZO%#!stB%@YP02s9X( zex2V{WvUo8B62~5wIIZq(d($?&tmVf{J~^|5RQ)CS*yD#Y*K4Js2b(6@2}JglW# zo1+|n&h5=|?IsyC=q$eB)dfCR$hBnG*8>KV@<&>Ny9%?Tn);vMKw7{z9v+&_CYe`< zQ}T!j-!?84uU(z}{55wgs`h&>mil~t!Teh?kyEQOVgQ#(NN{j)WI*Ti!6oA7Bb@#0 z2saI8M^0|`hlg8m5@ED@Go=a4*aLzQjInvVZ_}l0X4VgWZZ|LUntgn+VtwkTYVc9P zrbcOn`S2T3@>W%Y)?FM5NC;-E@<0>I7e0{gW=U@Y!V2UhqZCmSv*2IMU6Nhk`r<$|ZveYn_@rvpeef#{3Of0zD(|+)0qKx^5yzepw!X30 zItpy=0IWZd0u^dR*Vd9xWCdFk4G&=a`SaY*?>JAnS57{Dsx+g_EHbBx(_n{fAE0H=?3e@$lBKYWXSEG^Rk2 zr4rQC6(}goH)X*qZSIoiU0t!F65PF5)gm^C4700gxG@wFJR1` z?BbG@mP%Jp$aL(PS7-InC@7FNgBMFxUA@&Ir@JRI9>HF$7Fem8+Ro`F|8+Apu=B4p zrZo9R$yp5ze`l++E6vH164gPW(`&Vd;r_Pp*@ssDUZe7?EL9BhsFBe}TXUX|w=PVK z)u{4OPJz|cqpYnK9_}odLkAE{L?F~h&;kq3_1bR1!+S%)`aQn)iAkqoO76FBJ1EwN zut$3{NzI;*4>#2oBQN3s0o>inN4A~(#;K zL|zgKJ2f>F8;9eo!o_s?J$$_?#GYO#k-g)mrY$=ezVFTi1?2&?Frt z(c9}=T}F7+OU^AGd}3X_r8HByISDX}v9aE#8GeWxR&&A_x-KvTsmO5*G$*es``Z{w zVgRc-c!UWtkE%*au#!GBET3-vaNdOlhOBNdTIaJs%WMs&PeeqC3y{Ek-GkdcDWoYx zJtqSCU2~&vn5EJF@AjWU*0r^4jUqOn<7|qHJ4zQ$O49HF^Jif({u$;Yn1--h&V$QC zE})zM3S}-`nP)VSb+o25M-yzbAcXb4cDOU}6$I=3N}JQ8GbogpxWoBD*U&H!uvbvA zxVhNh-}%^mx|`j&aj{?f>Xn9&7w>eXIR?l+MZR~jF`z1!54}^Jz$E^*cK8TYD*Yzt zSyy?w<_CAXOp1H+(7drXL+^Wkt|lpI2wY@1ek6W6(Ge*>)%XPJk00DmwHtrBAX%bk zTIEB2X~LVp_wG)uFsP#G>C#2N_!%ru!^QO+aOey^941;x{Z=3UtgM`}1!vQ}=>RZ_ zrE+6LfI=xOR+19}%QQFIY~!3ZhO&S+C_mrKRd|g%9U-cxXDrhfK9NVxPFVD(kY%zs zCI9=cdj5@PBBG+*Ay~H^ooUM=d2J3=B;bL0D1O9npy0r8E$ z0^KW3wgKR$N>4U`aS909`QB-=Ip&Uyq)j$7z&10MS}7=A^6^G2G`TZ^hyM)sNon8* zaK8yjQ@Rajdn?^n0IzCQM)=)Xbxo+hN{YVo4njbK7Q0UzjeQV zWBymHmCtcRMn3*<;g*H%*E=mIyQQ`-jCHjoGpKywPWVls~% zd~C?0^SB;RXg-v-l0`>4b8+Hc7*|4$La*peX;ktIs}ARC$AKOS|3#`uX5Sm$2)(io zYl%#uz`(0CSg%=heDDf@f%N>>IU9bkga>JmrHZR?!ySAg?46)er z({M-U=YvDc?fg{-Mr@iu611^lZ^;#7vGP{mxoar76A|ORu=7sl7XIM0hg5HLFYxlE z+NOV3*k#|nD=CjX1_r8>=3!yE&E;P4_X|raI(bQeYqs9mg^iNBx?qtj3{9$p+CYeW z`Q5qI@o-A%r-*_8O=cHxct695vR)!Hv*cr=Z13#s)PDC4osxz{Q6J30MBV}LuDKJ1 zW+P|#nJMr>9tl1Gc>~hB*K0o7a5b7QD@tTAJr(2zA!Bo+7d!ixNF6hBcmN0-hJgesJ%Q zDFp@pgyJC4(wd$hDhql}!W`B?+T!79O`*Ti_BmRi*zACp2~HU@<79+ReE{b{kPc`%JLo`)M$d;gAY| zaK{2TmG+yiylP-FLR{X{~c;!^LwUIP6fG_*|kSPIhRa0Z=`+$PV#BJ9yuwM%< zD%Bydu-RAD*C!=Az{Ri0v;t>Ic41+KZ>x>N$-(;IFdS@pfIUWWz-HQy#JPl_X zSH15)e*7}?G^P%aq1l@@L?9xPp*Sv0_$Ly(*7WwqsnsAR+GZ}>^^lh@EG}+#bR6vL zq`a@q=lR-oefX&?+b?Izqjg||Vy030ME>E62U--EdHD3T=a?67ol;|quR zjY8VTI@7^Yfq8zO`g&6{GbHfTvRH}=PImLtFVSl45k%U$T2&6_YF$4pf3&p34*lK3 zlPW{Aww{Pe7e_9ii(4_^~H+hMhXv~bo5i(PjoFz)lZqq#1ab9aPhCY5Y#zt zeoKE-4J~c71;@9652cV$K>LS>N1tbE1xAXB%?Y^f6S)lN=o|j6O5Ysg+e8C?g8-Aw zt?Z`ClAbREi7NJko$$rcUw5x!&B#bs#}QR2m?Wh9S)8n80lMzslMqYU+kO8E`?3i3voej*jsGgpQ`;>q z7UjQ`r+ai=+5**@hyB=Lv%_gDGC;^ZNKLp?(&FMKZXR7>NI;QqX^B!`o`F8E$Q>w4 z%Qg3ak=59sb}G?sATge|>R@3bL&5Zmfr_D0MI5`BMcZegT3Z_xwS@H{RuHK2aI??) zzE2_*aNFGZlg<4|YFPPBwmF-CPUWn)`A-1gO>IU6iohNt_24F@F-vW)gO2`a1^YZomoXCO8hy2zW3E}!KcfNj3_`Ma(4v-qQ4FG z3`htkrQq!kAfgu()PwMYPQIm9Aj5sB$luuBv~zmCOGTcM#Eh>aD=Q_Qm6vO#?Ck9B ze4hUCqeHXj;Qg5bBIrA!6!-C2{g}?gQtWfQVq<0|YHBL(?yd(uYia4ZyL-F4+o-GK zY>MQRm(SX@M#jah3_og?8W5xj-U2%eZT9Ft$?oI^G)(2E+QT^p1ml@=4hWfFer|?B z(HfkY5;bm(%BK?(E3mMnW@iWVG`ZuYvW{sYUTrPth$<^A%GhWZch22<~I$r8EE#s`*ws7 z2z8LG`@b639)6V2iFQNZY=aJIUz8?*YL0O1p}nUk>PUpIY&JQviUMmzC}A?FC66 zEghZhQVXdS5RNuGZDX5rprVF@3OkTrnwywJ5Wa?`l*pTyv919%r;3UbPzVE59W>s7 z-c-OwQ-*7*s#0GYOZoWt*xG{DA{_IfuYTv9#oqr`5CCQa|1T;^2{f1iP75$+z8YhA z_supc=(hu{+lRglL>W#dhYK$*Hafd)LbRR!=n_bsgC0RJR#NwC2r?WXH2~j%=>v`1 zEVC)TIRNxyilrW!fOfRg?7f475%g%yIbzGh zkiq*2))S~EIEnZ3Saq-B9e9G9B~@%4LuQo+(n!^121Ketj?Mzp)AcPZK;QLl2p0AG zV(mmA%Jm=tjEt3awBB~Qt?m1@9Z*32qZ&0>tet~EV5y(p7XUEV|AT@wI;PS94ErAq zsJTHF=FUSI&r~2K_TW2&&*D(f``y>mLkB+i_?~3Lps%&GxL6VhJRh3@{4M_W?Hgz{ z-0KC}-wox_k&z97k^fB;dTjY53f)|_!Z8A~m+^5C4-zK@6~4y+-QV?&=0NhRs)`fe zUsPCVT(0?_`b@+CKTLL@4d&r-{q!kwVjBz*;Mrl%qyI0pCySWFKl045HYo_f0{K5L z9vAWNlU0CzW}u7)RRzFhYinHrhxGS{73=#iRy$pOTUJ)Kv-1%S4$jKT3Mi5{1dH?< zCp$aE#l@*R_yeV(=x!ei1f2< sJa3>0N&cYp^cD*Lx%`yE;H*C6y#f#6I}{FJtsnWdHyG diff --git a/doc/lr1110/html/lr1110__bootloader_8h__dep__incl.map b/doc/lr1110/html/lr1110__bootloader_8h__dep__incl.map deleted file mode 100644 index 3a274bc..0000000 --- a/doc/lr1110/html/lr1110__bootloader_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/doc/lr1110/html/lr1110__bootloader_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__bootloader_8h__dep__incl.md5 deleted file mode 100644 index 37fe643..0000000 --- a/doc/lr1110/html/lr1110__bootloader_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -cb496e4099855f698af0d32553e6fc50 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__bootloader_8h__dep__incl.png b/doc/lr1110/html/lr1110__bootloader_8h__dep__incl.png deleted file mode 100644 index 6c75a16912130f9db70caa681ad708e5a4aa81bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5642 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 XAr)oDl|3l9+$GRZ)ln%^vV8l0c+*3e diff --git a/doc/lr1110/html/lr1110__bootloader_8h__incl.map b/doc/lr1110/html/lr1110__bootloader_8h__incl.map deleted file mode 100644 index 549c27c..0000000 --- a/doc/lr1110/html/lr1110__bootloader_8h__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/doc/lr1110/html/lr1110__bootloader_8h__incl.md5 b/doc/lr1110/html/lr1110__bootloader_8h__incl.md5 deleted file mode 100644 index 5eb5949..0000000 --- a/doc/lr1110/html/lr1110__bootloader_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -9cf1e05a5960fce3f49bd011264dbc13 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__bootloader_8h__incl.png b/doc/lr1110/html/lr1110__bootloader_8h__incl.png deleted file mode 100644 index 57de48cdbdcab8c50cf9b9fa1bac47159f638cd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10381 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 JQz2y*{68lE`w;*D diff --git a/doc/lr1110/html/lr1110__bootloader__types_8h.html b/doc/lr1110/html/lr1110__bootloader__types_8h.html deleted file mode 100644 index 84094db..0000000 --- a/doc/lr1110/html/lr1110__bootloader__types_8h.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_bootloader_types.h File Reference - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
lr1110_bootloader_types.h File Reference
-
-
- -

Bootloader driver types for LR1110. -More...

-
#include <stdbool.h>
-#include <stdint.h>
-
-Include dependency graph for lr1110_bootloader_types.h:
-
-
- - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - -

-Data Structures

struct  lr1110_bootloader_stat1_s
 Status register 1 structure definition. More...
 
struct  lr1110_bootloader_stat2_s
 Status register 2 structure definition. More...
 
struct  lr1110_bootloader_version_s
 Bootloader version structure definition. More...
 
- - - - - - - - - - - - - -

-Macros

-#define LR1110_BL_VERSION_LENGTH   ( 4 )
 Length in byte of the LR1110 version blob.
 
-#define LR1110_BL_PIN_LENGTH   ( 4 )
 Length in bytes of a PIN.
 
-#define LR1110_BL_CHIP_EUI_LENGTH   ( 8 )
 Length in bytes of a chip EUI.
 
-#define LR1110_BL_JOIN_EUI_LENGTH   ( 8 )
 Length in bytes of a join EUI.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef uint8_t lr1110_bootloader_pin_t[LR1110_BL_PIN_LENGTH]
 Fixed-length array to store a PIN.
 
-typedef uint8_t lr1110_bootloader_chip_eui_t[LR1110_BL_CHIP_EUI_LENGTH]
 Fixed-length array to store a chipEUI.
 
-typedef uint8_t lr1110_bootloader_join_eui_t[LR1110_BL_JOIN_EUI_LENGTH]
 Fixed-length array to store a joinEUI.
 
-typedef enum lr1110_bootloader_chip_modes_e lr1110_bootloader_chip_modes_t
 Chip modes.
 
-typedef enum lr1110_bootloader_reset_status_e lr1110_bootloader_reset_status_t
 Reset status.
 
-typedef enum lr1110_bootloader_command_status_e lr1110_bootloader_command_status_t
 Command status.
 
-typedef struct lr1110_bootloader_stat1_s lr1110_bootloader_stat1_t
 Status register 1 structure definition.
 
-typedef struct lr1110_bootloader_stat2_s lr1110_bootloader_stat2_t
 Status register 2 structure definition.
 
-typedef struct lr1110_bootloader_version_s lr1110_bootloader_version_t
 Bootloader version structure definition.
 
- - - - - - - - - - -

-Enumerations

enum  lr1110_bootloader_chip_modes_e {
-  LR1110_BOOTLOADER_CHIP_MODE_SLEEP = 0x00, -LR1110_BOOTLOADER_CHIP_MODE_STBY_RC = 0x01, -LR1110_BOOTLOADER_CHIP_MODE_STBY_XOSC = 0x02, -LR1110_BOOTLOADER_CHIP_MODE_FS = 0x03, -
-  LR1110_BOOTLOADER_CHIP_MODE_RX = 0x04, -LR1110_BOOTLOADER_CHIP_MODE_TX = 0x05, -LR1110_BOOTLOADER_CHIP_MODE_LOC = 0x06 -
- }
 Chip modes.
 
enum  lr1110_bootloader_reset_status_e {
-  LR1110_BOOTLOADER_RESET_STATUS_CLEARED = 0x00, -LR1110_BOOTLOADER_RESET_STATUS_ANALOG = 0x01, -LR1110_BOOTLOADER_RESET_STATUS_EXTERNAL = 0x02, -LR1110_BOOTLOADER_RESET_STATUS_SYSTEM = 0x03, -
-  LR1110_BOOTLOADER_RESET_STATUS_WATCHDOG = 0x04, -LR1110_BOOTLOADER_RESET_STATUS_IOCD_RESTART = 0x05, -LR1110_BOOTLOADER_RESET_STATUS_RTC_RESTART = 0x06 -
- }
 Reset status.
 
enum  lr1110_bootloader_command_status_e { LR1110_BOOTLOADER_CMD_STATUS_FAIL = 0x00, -LR1110_BOOTLOADER_CMD_STATUS_PERR = 0x01, -LR1110_BOOTLOADER_CMD_STATUS_OK = 0x02, -LR1110_BOOTLOADER_CMD_STATUS_DATA = 0x03 - }
 Command status.
 
-

Detailed Description

-

Bootloader driver types for LR1110.

-

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

-

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    -
  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • -
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • -
  • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  • -
-

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-
- - - - diff --git a/doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.map b/doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.map deleted file mode 100644 index e96a471..0000000 --- a/doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.md5 deleted file mode 100644 index e67ea5d..0000000 --- a/doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -d84ff7236b52ac7914b228c255946e71 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.png b/doc/lr1110/html/lr1110__bootloader__types_8h__dep__incl.png deleted file mode 100644 index d5e2edebc56b4d91457191093702a7b8bc2bb282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8930 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

1R3KdD z;v{@`RU|vBt4RRaFk|gA0h%teh|eFxw64K#-<}#9!+_QWj#SAIEEa_z9UR_Ico_K` z6@ENDItw&0AvjatwM}~Fi(kCAI(CgKuwn7hiD7(vJT)(m7^p>};^NEyHEjHq^0tt& znyApWcX0UqI?2$~lvl@2RdqV6G%+#pvEu|+c3xgdLj!fn9T~bzS~@x?WN3J}G_y+F z_SG}jO$T98{~xaR4QkE5%zp~hHZ&w;O(BpjOqrU}U-}6zD=WK^%7CB~wqZaWlIY^P*~Vc3dFr(GS^ta+}vEZ)qctw!SQ6;qHm_oW@&RX4sak8AU&m}r9hVW z^7_8ICE(pnrp)H%=6*oiyqu+lksH}eGPU(VDz>jf@^{0l{bW+sOA-*!tDzKphbgVfo_4jgSh2 zZw4R>_Z*!ZA3yTm(i_Ttj0+Sa1r3c?`=$yOMY&&`qB0OPhb)UEdWl6SRG7*2EqAv7 WQ&{?$H2C5IqN=E=@IlTp;{O1rut9AA diff --git a/doc/lr1110/html/lr1110__crypto__engine_8c__incl.map b/doc/lr1110/html/lr1110__crypto__engine_8c__incl.map deleted file mode 100644 index f1ea2d4..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine_8c__incl.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/doc/lr1110/html/lr1110__crypto__engine_8c__incl.md5 b/doc/lr1110/html/lr1110__crypto__engine_8c__incl.md5 deleted file mode 100644 index 7b9f60c..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine_8c__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -89e133bee8726a5cec6971fb2515d351 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__crypto__engine_8c__incl.png b/doc/lr1110/html/lr1110__crypto__engine_8c__incl.png deleted file mode 100644 index 1e9a0bbecda7ea73b7c9bfac5499c425ddb0a987..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19709 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 diff --git a/doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.map b/doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.map deleted file mode 100644 index 4d24e88..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.md5 deleted file mode 100644 index a81168d..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -fa546017db6f952c71146a714ee87896 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.png b/doc/lr1110/html/lr1110__crypto__engine_8h__dep__incl.png deleted file mode 100644 index 92d783500470961d4d06b68658b354850f8d7ae6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6278 zcmd6sg;!Kjw8pP=cY}bGG}0g`T>=US($dl)Ad*r;BS<%bfJhA~(lvC4l$4;LLwCQ! zi?!bS58fhXn0x2mIeYK3zwft+)YeqS$DzT2AP8SoMd3MkYyv;ASQy~yg2QH5OM^ut8mu>`YmWBP3X?ee@Mg8k zpW5b?woUkI&gkJ@Z*4<;L^e4aj+TnfSDP!wY9aXz8(W=J{*zQJ3Uplwq|A1%Hgha zl9xxdu&~fJFu=03v@A1iF)T4%JSi+H>YSV;&B@6*+iBX}s|>uxb#rsm$o%`){_OmG zb-|@AEHV=Nv4jLM14BHQennnO%l#VLQN&2L1i#ywLZtt<@86mD_z2_T;#OS6RMgew z)zolkXlY+rT820+)UWEdT_ks(fTL%N@7;sErz&!@!~-tRDJ^(%5|N zJ|~)w+1auFmnR)FGZgmr2iNyrzkdD1-(SjRD6J#urJT<~lZHo1JbZKenG+~F7MQ;+QwxIzPIyyQE z9XLKdPJgT_8E{1v78Z6kXm*2wii(<+p8nv`BkgtHiF#Y)EZm^hj<~v}<{lJElqKO! z0D_FRw?=ZZF_;SXJ#|jY$dJ?5r!=Z}yq7!L8-hv5axy+YA9Z=U+ttx=@9*EgV`F1M z6&1Wf!ovI>zcn1^sueBb>gwwH1_$L045+wyc=9VN3HkW=ls2y|)#daM+Ar3}A*0I-#SPjt;7@urPc<;88t`t~H*uqO%31C}9$%F)t-4n?`$!?`hh{a^-k>a20hG zytPLnA_!1wV^dSzSgl%F*VK-_U~6GMefo6$&!1l)*{+_RVJRsTP&>#l9RcRn*4B!9 zBZ(y*k{J}Frl#hQ?Zbx;#l*$m69pgs8MVAT*#`A#d9k&;1m4in((?A|jDKi&Sn+~} z$|%Kez5i=WepyV0r<5&--3HPJ3EVc{KmUE%)Nc2L$%UF>^}ZUF(NKbNl%ab`}gmzyGv3aD0xjy zMvjv2WrM!zR|-tVu;meT;j9XeVg>U;v(o^snN1$R7tc({Z z+qt;(&ehl^58>- zmF(=;@3ybCHM)$9OboT4l4F@!z&Sbsff&NBXlapBQ&%UZpa{RXc&Cvegbgkp1~zxM z-wARq4}z z#6Zas6A|S-hbKSH?a?2S7u=jgSK>TBKX=cx=@UFrQF=8=W&I3PjhUGl+!KUYz>HI0 z$Sm->P7OidAM*~LnU*%jL5<$dZWx=-9v2h@UF~%d4rp5TX~W~?O0Eqgb& K8H5z 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 jukdw|WHbNy - - - - - diff --git a/doc/lr1110/html/lr1110__crypto__engine_8h__incl.md5 b/doc/lr1110/html/lr1110__crypto__engine_8h__incl.md5 deleted file mode 100644 index 339bf8a..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -76383ce114c234c7b10dd8b41fafab70 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__crypto__engine_8h__incl.png b/doc/lr1110/html/lr1110__crypto__engine_8h__incl.png deleted file mode 100644 index 373644661afe951c8040eaef856aa7079ff5c8c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10272 zcmd72g;!Q#_bvJ&Df!af3J4+~qBKY&NGKrEAt52%Al?U^e=v*`WTg;S*MB}XW*x6i==&cSgG%n<)F zMoP55d3I@hs2lrRn_yLJ;?nd`A>qd}i|NW7`?Hsg6}FQvUc%|SF{PvAy71uA2}j$~HMI$8iS>xtSv7Gu4H zbTqP+<3E>KKb#OwiSOR|Z8u$|uTum(kT)`78YNT<3ezJtF*7sXo@uaka#|F`X0$2( z_z^K$qPrj%^hCA)c?>CshApjc%p>Qup*x-j!!L9?RPNN~$zsisvbzT$^)j>mdr5WAFQ*hQAtn=O;&tcLCyCM+` zB-nQIZ8rl;N{fnGM?P!E#>E9J_hn@3H@(&TVt}GmX;m0^^wn+8G`E7IE8r&a&dG8{ zwrn)r6U#cD2b;V@B#t?wiaj455wI$!w^hx){S#a|5Kd=f8SYq5jMV;H&h}hqEeD&&;!CY>&7WxHBkau zK{Rh~@3HZ56ohGSYUt1Rtjt0})SHu4r7n|MSxf=J!OWbTc&4VN6uhR2kq6~7eKQRn zJnsAE5p*I{nD{i!O_v8;Qqt1$RX@ABB*n!M&f7DQmDZD4_4PFU{r&t7OStJG9zl8y z?uM7=C+35BkyBpPb#=@F0+hYIy+|yyu_kXZB4Xm*<6UFN)d6&erS8Yey=jYYw&7_r z-k#q4`ST|mCuiV?57eeTDd-|1B8Y;1XX~{?%72uk4W{!e{n^K->!pS^HUya}HJE>t z(}f=!8Zy>8t+VKw8XKeP>gv8SG2uH7Jh@(FWaJ02ii?l`DO_7{@%C_QnnU-I)fl(c zcsY7hDW{#(;^ z%xr9OZ`#k#J#VqH8t=~k_)=Ep8yia~EG(RZzI{-+sG8Upv%Ml$n#}#^(TnlMq9(R) zO*FZ=xlWBz-$+SF#Fdo^SXfvFOyC)v^hST5Q3}}K(kRghP3ARYf+B*I6vD3DJ}>fX z5q}mIo}1NS63~4#?ufd7WOsS)w!b!vgMop;&CT6hZqkJ$B=mjvjtB~~WpYy6on6!8 z3|5P?k^J)H`Zk#$t1Bwmn4LAM*jcNTbJwVh;UiAZ3h!hv&i1czD!aM4F^Y=Py?pu7b$^Ah(rVmK)a&$tD`)4x0Fj8tVH<(ixzGH( z(ci^I!}XERHuc`V;y!cVgN*4fh|ZDMk}sHkY?-=cz=y86$lnW-rnR1Dnawc$^8 zM_anW9*4NW1oSdbo;*pb{19GsfqN1awVzVREE~ljEUa_72VjPB9R;ayGR~BGQ3eJC zWbGQE^y*zvSXo)`>NnP_jwf*GNA2v`qM@P5dDxWdH(j=G+qH!dhD1gNe*SD7iSrME zq@oJbt#f9)bqg(;UQ8w!pB9NkBCM^gldW}Y?9l;F2BMIdn3%6jO^u+^*zVqys&n4_ z;(21fvcBHc^VMJ;@>PjSPnl|*e$^QJ@`AsR8C%Abz(LD{v=D0Y<^Wv5WHLS?5zG$ zEkyd!DcN21GeFwma_cO2wS74}>&eR8=T2GuEBgt^+c>zmZMzE{HBpZ*gTv_NL{bjJ z^a0%i&;Gtwj){wFbBd6etasy;iKgpu!p&m(ZzH0m6jssDU~&1CGx40s2>=ZMsRarp zXL9-PUxR@h`LPC%M-vsVnWtG`OF(UWDKBrGs&VN5YNqUYaWLB1+1cze>lM7+c!qy? zcsK?(2n!D{dp*daQ}0TM*x9PvHagrG=YII`4Y#*(UNRNGEyKXzpxr_{UWLUl_TEy@ zdnJ4oP0bL<&nkm47Z;b+RJE#L=Occ8O~Fld;|WW)=)2?NaEUfKo_u^57EPx_LmUxDqk|EHm!lHg3n=m~Enmdw2Yb=g3`e zI$h(SprT@W_>j!d&@ggMt)R4_{jb}5cn8(~L0i11$!J5VMDqIj^z@!PDEQFV5CsJV z;?JHD0e)FjtS>I2L%mT@P(b?Wq5hyVMReoB9+i9g^vC(ho}q;Wwu6I1cQP*~^dCu8 zRn>+QYN4LE=x73HCK%91Jdfvs0ZL?4RSE4K9AeYcqiP(MuQ8d7jO>1XYtd6ZkI0_E zvBQwH{?*Sxmgc{1ecXzZGj5M)iJ;`=_Bgak6>`C6iY@4+y$QeJ^!6SbTg>>|w{JzI zm{cP@UVJjUe}|3Dr?9Ya$|^F=bnT$9q{vLw4K_VC4o+riX*3z9R%g$>@cP3d9Cb-I zs!2Lk5q5W~lFU2reQKXGjgO5r&&<%t%ggfv%E&}epm2Upxl*%GW{pow!~_&U6!3=T z)zk>wBD(o+Z!Z`9A+&_%PlZKPzh;wO=ly*>UCZ~Ys|!XMCQi@tyjF|iyd}n|>_Kh3 z7qfBl2b8>~xbyS#wg+qK$=?Maya7W)YS2ip5e^+4o#KHx67f;}lSZ}EIvL!-=Y_0B zgU3-jG)`4DwE*ZTP= zJ3ITI&CN*YETe8kFANMA0El)k&$b=nN?!M-2?fVNu|~0Gi&KE9G!x-twqif=-=6nk6mCr*L#Z0W{gwYtbAA3D`Aq@6>7->^388rN+~;b_FG90 zt%dIM?v;68ZJ4U>Aetv9Z$keBL?Uo>tU%Hzx|r+`l8R&@NlA&&Fy3_JD!9ZZQAEH{ zsGQb&TYuI?RqK>S|E(KRM#epf-;QB4HY7~7pZO_EteWB0lxC{Phd>bz)2tVz&N{M1 zqZO|uRh~VIx~*{7+9^kVbsWqL>#?ubw^B&T$uULID#%)Gu&zvwrmV|FmK(I#3VZAM z!jnrXD4=n1VU{oxlEUaeLuHJskg)N6ror1_va*nZyE$rI&gRumA_6rvIc_s0n4%oH zttgt@c}~JGSl?G2ZdS=6iQoG@{m{P9a5VJQ!1E-RyghO~n3C6-K|tXBI=>Wp!AfjZ zxwADiCJal&QG*;WSO4GNJrO~t*p%MUK}+s z-R;IS?r8iDl|&pGF!qHJaqnIlkDU=oiO$bCK_XQqcK5%L8{-c6U5WH<uj_ys5C7owSCV|RVl<)q}{5o9Loj&6|Mi|CmDkoKjUhuxjVUz+t3e3qnP5m6HPAf!x2e{Gxz<0z|w89zsq8a@Td&z?m2qi=XTVC zdDh>Pc)WId9vRm}W#9j-MajftM<&IDa(+?uXLrF2Vt@@KuhVIFUKb5b%4kK!BOv(f zF&l|3t$eOl)k6u-bH%uXMj!ZU=s3Mjx3Umw`yq;>CDR=NH??_e4a}@&gi*A#&d>9W z3=RE`kCWNh*nS-Es{{88Nkd%y)Uu9*;x?F1cH|xj- z4}ZI(H;j3TCpWqD)a+?PAE1zmJo}y|6u5JENjNf+H&$uQ?&!37XodLll~-0r2RSfc zk0hxeh7vAej;)fCj+R?oB>mpUb>p)(H6x3uATFL$P1I1aE zE_|n>gI@Myc{z5S3udN?f+Vc9^v7^&kD~SExBWwuz$w)1MDs5QP<3iBzi)1t+*dX_ zol*2H%R~jC1Fbw~b*=M{r5@rhmZRQf?gy$R3o(zxrK3B3b?F-oY@Lzoayck!`>qAGe{`#Dsc+tFSsBRX9E}~C`1|u7bnLb;(ko16 zX59#SF{scSI#?>hRM=YYR%dtWh~d0_iPqpzwJi8fCP{Rf^!DvV0BI=-%2lIoih~Rt z_2;Vn3xw?yqF0_=@7|UCSn0s&Lx&_9s)Py2oY7QOn~WFQ z5$;2oL^siH1O%QmcjVLODbM=G#odKmYh8D)(}O0X!8~Hk26vkJ`cr#a*#%fytS5rM z-875(o>g|?-=YVUbZKT*{#>QCP$Zw_yPeIdnVln-B|&_f5Ge_(DGHy<3!zphnAO!9 zSb8NXt?d7!Bcr3-1oMkyAtuXH`#C}UZF9@;FHY;P_SZ}T0fL)*J`mJINr_7<8`FxW zURTKOxY>6?nvGs3ni-f9+e>r@`^&Ngt~d5JorqzirP}_3-(|+DSokx6h0igKTm0s9 zI_5;Yyl6Kj_-IW{+o1xRzX#vek)7vbcehyi5&mRj>O?;{%3_rLAG&5kE#G)*q%HAq$C_A(!^>;j*3s8Cn7>FN_Lk#`g1#+ns0&&|-dlB!j;LJYUvbt5 zJufSXOa!yczJ$F!OKPgs?x6B>w<`vEC)+b;l*`@dr(Y@`O2eK72(ON6BM)`V$v1sy zEr=4kvYlOB#2%EB!+{JxC^NwksZrE*TrmimuJeycPL3{oUNyI<;NF^2q|*PKxv+4& z+I3ec4Rb(Eo#%STsQkuv7tW+AtEv*0XjRO~Gi7EoCuiqaeJoi78HzkVUbtB!YY$sq zDXrF5{(aWYxm#e^``D`C>|jzOqr8RvRb0>0*EB^%D;Dp|L7*Z&+9I7>>926lsA7** zn>(821x_VT-Z>nSoy}Qk{UPjoFjtpXtCrh|0&oS{gSiJth$A8Gg;0RR34NmY&YFyi zf&%gJ>0xkVV%Xq{szbm~fP@BDv5H38z>;Mn&-+4^@v+)aA(e=SmX-ts#fnjH>Jhi~ z1af7yzp$9)WF`A;XBS8N$mgpT0J+?&Ir&@aa`HccwA^z)teEG|J=w4%P3urVP4OS>}lFI%!{frG4! zk`n&A_wQ?dN$P#4kkr&<|F_qb`H7>|WBa91ClY66b=M4G4`URM0m7TE5VQvZo9(Br z=f}xYb{$K_{Ab#7#n1PNh=~3G(^Y5qN2RN)U124F-Isn5IxwJM5aIn@ z#naO>CMl`Y2{*plosWE>{UT&wfcyYoZDfGR@N}P1v$9(uaP@&q)|93D5MOVD_thC! z{azHFq9Sf}RBI@ZK|9*Vxnbd5h9<+<&;x_zZWTK$KmGRW$xY|2bFQVnD@1#{JG)Zh zqxlBX0sx8+%`Nm-|Vspd>Qk@xh& z7hvTyqMj7MAXJY}fy}mbbS!{4>kljoKE@Ce6H67A&mNV(SnA6ttwjCE!Cn-TdXDru zI~Bj1SLaZao0DSz@r)R$Egw-4hcj-^}~{BI!i5 zQgQ|R$n`y2g79g7fj;>XbO2B{J95???Cr-oW0{l7%6Pt3Rha?nGeBrQevD$Qc(|;s z?}4}Y`Yw>TrG0C4D-6j3J&^bL z^XHW|vyD`f0YO0{W9>6D>C!SX_uDBP935W)fle&x`t{2QF$V9I+f|}d(~9_VcC| zw#mn$Yz!ijn|3PA>Pu~Hj!&zCZALtZk2yIx?f*dDTorVK5kd)xtDfz9V#-{dvtUZ6A_n~$P9{xjEs!=bnUmPjq*;*(lR%! zxv+t-^!jvS6K+1fK-e>v#|s3j+K^Tb340i6De$ zdtY5b)nYO+F>$;7du47pS|6fwu~_Q7KEeq@FuwS7{{e(g7Q|Lq&8nM_oP0<31wA!2 zHCCVm2^pCmkH&)Xro`QFxZx881yxN=P3HAU3ybunsGx1OM1OzD?0cmT0^1`7aj>yl zQ}`^QaKk_&`17?-)c?~bj#>!%w)4oy$j;7AGt|`XsJ?e*P7aKos{EeEwhfaYWf>o= z4a+GhB?zQ4Gcnz`I_dM?* zj(6^IauQNghl4uZ+}(|f07>N9?2rJB54R+!a!DUP826?MBni9ScXV>1{^sTBDGYL|p_y4Q7%mECkKo~74;_Z}W^bkJ zC8;@4GZ&HA*rLSLFM+sI400A<(1P0fU_QaMN-Q9kOCcLYW5}sp`BzZp>qck6bm4P) z6TH6Dr4Kfm(D=s}yAsDi;~Kxlxep(-v+oaYNm;%jIhdZyVU~Q)(+&fz*!9!T%*^O? zye^05-7S%?l|8xRA&Y^#V`F z_nYPDf1t*0L8f8y9H?YoS`-bZQUE z%2R;3X9z|d0RaJgh4JRZH|*CR2!>1)i;8)&7CNGB2CAQbytGROc~7(2meI(_NCgB# zKFbk?d-qCaQV$|g)X^fnsZsz8TFrd#adDNpTr75leb|zP@8{*?Q~yaAmX{*p@el)_ zrr@2Ih}%Cj#BcDvsJfmiD(0-u1b~CZqL}0p5`tA-UH#`rIQjL?u6#4Cwczyl@ni57 zP!Uk+6hbarZD8|oTMV($@Y^B)2ftKQpdpI&8mJ)QZNr~l7`}RiMoUW@^1}#JxR&wp zm+rLM>27;VbJH%f=sQKzh&9Bd6(^*udT}0g+*6y>Yr{_foS)1#a zUOOS6u><(G{QP+n3_;1_wC3-9teRgYQ4MRblM&k$ZrLb{Z$)MXhp#(5cPzoC7- zsBZ6v5f5wtT+oECqYrKu$QFpK?Cfg+7$Sb11~5yi-4EC+zI|JFTrPe2HE%|7c=`k^ zLonoJKt|u1Z7QvpMNy@<5z2cWzo7I1HIhDmRIR0@1>oV@!nFgrxoWGobQ45cz^gdt zWpXmIEP#)sM>cv54Yt3wdRf=jtveix?5AEkh)Zwt;W;hS^V@#xpFYvk(;L`22OT>p zCFR#tettfyu!xANx_Thk?8cojjGbLw{=UAx^D`8TQejFq`jXQp0p_CrO_Rg}`m~wG z_8&jcy)O=4q%EqetGk~3GfBgbun=+I7uVEG>UL^xZ`b^48rhAH4J8JOH^Z%4QcIQJ z%vL^oSxYM`N4vkd=_aYRPt{ztfZxCSi=t$)-0;$7 z*qf7hwh;!dC*{w!=ws!u=;>v#0&kQo5VeB#LekvdkD;N#x$gB;I`FUek62{uZTRB( z%}p$8>)5FS_^7|m#ezV{DC*wl!|CaH3CKxf6-I`o--x6hC16tR$znw!4i6JnV5Mv!7Gr64R=)VP7=DWg z!$&?bREjBrdNjIDB_M{XVC7Csyt=~v>L8uO+-#FZXbv|0+m&WRc8Sh)_-w4&PHAA> z9n5kirH8m8@^RR)WPzg@uF|_#3!?hWlrL;#cEI zVHNs@r4zY&2%#9*I&Fq&e8#PblEiY0Y**xu$;gO?_F_kiiZHO!xoK_9xUq?63x{z^ z77z$vZolD(M2Ru7RUqF8{?XF?$$$GgDug?0mGH+E}!aF#+sLshlT z0(S7=#q6D(WgHzJjPhVH9(>GV4SxTg*m+}YS7tI*#Dfg>{F7-+#+=vxHC;xfZN3NL zt^CeJ#l^$paosV{sdc=G__Mqm3}+IIe#PB^QOVZX83O^Xf6MppsBm%t0HmYQ>&&9! z#o7J{^nO5K|GGLM7@}be4Ab|%_%`F!X%8JZ*%~P^b7K$*KI|(v24uCrZZlQg0&qAE z2P`z*+yoTl`<0TC5-x&+jm;o}XQav7 zn~aq7wwD(S6-nT|LIb4nINYE-1K#ly!uL{LJ$}k-XhelN61>h{kPoRZ+$A1p-mr<@ zhns@kj#{RP3;r9wkdQH0clP=jz-C~gHinr3PKX4jrO|49)*Alv7R>oz@U+SQH>kdn zc}d!j!T6VShO7bR4e0jxFyZ(?aPySX!oXatDee3D(>F8IFmiHgV`GDAs&BpY|C#ig zR5he49%H!$R!I{e0En-TQ|&GHeV?ADl?=jt{PHCwVkqe!EdtOh7ZiyZ9iS~kYNs;a2?Xji>qeDI(` zp3-6)6#)mTc&x_0uzXX%ijA(4?i(H^g~KltaO4FJbA^J>$jHcu0&E1~6BC1^5pgFu zJv|*rABLGPE+L_{w-=v|jt<-_qxbhaCombMYS17hJ6$PFYw}XlQ&ZJZ0~^f% Kq)H?V{Qeg*__Ij> diff --git a/doc/lr1110/html/lr1110__crypto__engine__types_8h.html b/doc/lr1110/html/lr1110__crypto__engine__types_8h.html deleted file mode 100644 index 93208e4..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine__types_8h.html +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_crypto_engine_types.h File Reference - - - - - - - - - -

-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
lr1110_crypto_engine_types.h File Reference
-
-
- -

Cryptographic engine driver types for LR1110. -More...

-
#include <stdint.h>
-
-Include dependency graph for lr1110_crypto_engine_types.h:
-
-
- - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - -

-Macros

-#define LR1110_CRYPTO_MIC_LENGTH   0x04
 Length in bytes of a MIC.
 
-#define LR1110_CRYPTO_AES_CMAC_LENGTH   0x10
 Length in bytes of a AES CMAC.
 
-#define LR1110_CRYPTO_DATA_MAX_LENGTH   0x0100
 Maximum length in bytes of data to be encrypted / decrypted.
 
-#define LR1110_CRYPTO_KEY_LENGTH   0x10
 Length in bytes of a key for AES computation.
 
-#define LR1110_CRYPTO_NONCE_LENGTH   0x10
 Length in bytes of a nonce.
 
-#define LR1110_CRYPTO_PARAMETER_LENGTH   0x04
 Length in bytes of a crypto parameter.
 
-#define LR1110_CRYPTO_STATUS_LENGTH   0x01
 Length in bytes of the status returned by an API.
 
- - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef uint8_t lr1110_crypto_mic_t[LR1110_CRYPTO_MIC_LENGTH]
 Fixed-length array to store an AES CMAC.
 
-typedef uint8_t lr1110_crypto_aes_cmac_t[LR1110_CRYPTO_AES_CMAC_LENGTH]
 Fixed-length array to store an AES CMAC.
 
-typedef uint8_t lr1110_crypto_key_t[LR1110_CRYPTO_KEY_LENGTH]
 Fixed-length array to store a crypto key.
 
-typedef uint8_t lr1110_crypto_nonce_t[LR1110_CRYPTO_NONCE_LENGTH]
 Fixed-length array to store a crypto nonce.
 
-typedef uint8_t lr1110_crypto_param_t[LR1110_CRYPTO_PARAMETER_LENGTH]
 Fixed-length array to store a crypto parameter.
 
-typedef enum lr1110_crypto_keys_idx_e lr1110_crypto_keys_idx_t
 Crypto keys table index definition.
 
- - - - - - - - - - - - - -

-Enumerations

enum  lr1110_crypto_element_t { LR1110_CRYPTO_ELEMENT_CRYPTO_ENGINE = 0x00, -LR1110_CRYPTO_ELEMENT_SECURE_ELEMENT = 0x01 - }
 The supported crypto elements. More...
 
enum  lr1110_crypto_status_t {
-  LR1110_CRYPTO_STATUS_SUCCESS = 0x00, -LR1110_CRYPTO_STATUS_ERROR_FAIL_CMAC = 0x01, -LR1110_CRYPTO_STATUS_ERROR_INVALID_KEY_ID = 0x03, -LR1110_CRYPTO_STATUS_ERROR_BUFFER_SIZE = 0x05, -
-  LR1110_CRYPTO_STATUS_ERROR = 0x06 -
- }
 The status returned by the crypto API. More...
 
enum  lr1110_crypto_lorawan_version_t { LR1110_CRYPTO_LORAWAN_VERSION_1_0_X = 0x00, -LR1110_CRYPTO_LORAWAN_VERSION_1_1_X = 0x01 - }
 The supported LoRaWAN versions.
 
enum  lr1110_crypto_keys_idx_e {
-  LR1110_CRYPTO_KEYS_IDX_MOTHER_KEY = 1, -LR1110_CRYPTO_KEYS_IDX_NWK_KEY = 2, -LR1110_CRYPTO_KEYS_IDX_APP_KEY = 3, -LR1110_CRYPTO_KEYS_IDX_J_S_ENC_KEY = 4, -
-  LR1110_CRYPTO_KEYS_IDX_J_S_INT_KEY = 5, -LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_0 = 6, -LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_1 = 7, -LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_2 = 8, -
-  LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_3 = 9, -LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_4 = 10, -LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_5 = 11, -LR1110_CRYPTO_KEYS_IDX_APP_S_KEY = 12, -
-  LR1110_CRYPTO_KEYS_IDX_F_NWK_S_INT_KEY = 13, -LR1110_CRYPTO_KEYS_IDX_S_NWK_S_INT_KEY = 14, -LR1110_CRYPTO_KEYS_IDX_NWK_S_ENC_KEY = 15, -LR1110_CRYPTO_KEYS_IDX_RFU_0 = 16, -
-  LR1110_CRYPTO_KEYS_IDX_RFU_1 = 17, -LR1110_CRYPTO_KEYS_IDX_MC_APP_S_KEY_0 = 18, -LR1110_CRYPTO_KEYS_IDX_MC_APP_S_KEY_1 = 19, -LR1110_CRYPTO_KEYS_IDX_MC_APP_S_KEY_2 = 20, -
-  LR1110_CRYPTO_KEYS_IDX_MC_APP_S_KEY_3 = 21, -LR1110_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_0 = 22, -LR1110_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_1 = 23, -LR1110_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_2 = 24, -
-  LR1110_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_3 = 25, -LR1110_CRYPTO_KEYS_IDX_GP0 = 26, -LR1110_CRYPTO_KEYS_IDX_GP1 = 27 -
- }
 Crypto keys table index definition.
 
-

Detailed Description

-

Cryptographic engine driver types for LR1110.

-

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

-

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    -
  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • -
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • -
  • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  • -
-

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-

Enumeration Type Documentation

- -

◆ lr1110_crypto_element_t

- -
-
- - - - -
enum lr1110_crypto_element_t
-
- -

The supported crypto elements.

- - - -
Enumerator
LR1110_CRYPTO_ELEMENT_CRYPTO_ENGINE 

Internal crypto engine (default)

-
LR1110_CRYPTO_ELEMENT_SECURE_ELEMENT 

External secure element.

-
- -
-
- -

◆ lr1110_crypto_status_t

- -
-
- - - - -
enum lr1110_crypto_status_t
-
- -

The status returned by the crypto API.

- - - - - - -
Enumerator
LR1110_CRYPTO_STATUS_SUCCESS 

The API command was successful.

-
LR1110_CRYPTO_STATUS_ERROR_FAIL_CMAC 

AES-CMAC invalid or comparison failed.

-
LR1110_CRYPTO_STATUS_ERROR_INVALID_KEY_ID 

Invalid key ID (source, destination)

-
LR1110_CRYPTO_STATUS_ERROR_BUFFER_SIZE 

Invalid data buffer size.

-
LR1110_CRYPTO_STATUS_ERROR 

Other error.

-
- -
-
-
- - - - diff --git a/doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.map b/doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.map deleted file mode 100644 index fc3ec4b..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.md5 deleted file mode 100644 index d65405b..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -468ef8d78f9ded3226fcb50037bc1137 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.png b/doc/lr1110/html/lr1110__crypto__engine__types_8h__dep__incl.png deleted file mode 100644 index 9c8ccab6978c2b749ffbc729e7dcaae40d3e6ed8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9690 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 Q%~}W*1r7N!S&QKR0qDQCMF0Q* diff --git a/doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.map b/doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.map deleted file mode 100644 index 78282d3..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.md5 b/doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.md5 deleted file mode 100644 index e568bf4..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -029162411bd079c400ec62b26b10fc49 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.png b/doc/lr1110/html/lr1110__crypto__engine__types_8h__incl.png deleted file mode 100644 index 696df66ccc5bf48718eea95e74ee38be6f3d3aa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4491 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 diff --git a/doc/lr1110/html/lr1110__crypto__engine__types_8h_source.html b/doc/lr1110/html/lr1110__crypto__engine__types_8h_source.html deleted file mode 100644 index d0dfb9c..0000000 --- a/doc/lr1110/html/lr1110__crypto__engine__types_8h_source.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_crypto_engine_types.h Source File - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
lr1110_crypto_engine_types.h
-
-
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_CRYPTO_ENGINE_TYPES_H
-
36 #define LR1110_CRYPTO_ENGINE_TYPES_H
-
37 
-
38 #ifdef __cplusplus
-
39 extern "C" {
-
40 #endif
-
41 
-
42 /*
-
43  * -----------------------------------------------------------------------------
-
44  * --- DEPENDENCIES ------------------------------------------------------------
-
45  */
-
46 
-
47 #include <stdint.h>
-
48 
-
49 /*
-
50  * -----------------------------------------------------------------------------
-
51  * --- PUBLIC MACROS -----------------------------------------------------------
-
52  */
-
53 
-
54 /*
-
55  * -----------------------------------------------------------------------------
-
56  * --- PUBLIC CONSTANTS --------------------------------------------------------
-
57  */
-
58 
-
62 #define LR1110_CRYPTO_MIC_LENGTH 0x04
-
63 
-
67 #define LR1110_CRYPTO_AES_CMAC_LENGTH 0x10
-
68 
-
72 #define LR1110_CRYPTO_DATA_MAX_LENGTH 0x0100
-
73 
-
77 #define LR1110_CRYPTO_KEY_LENGTH 0x10
-
78 
-
82 #define LR1110_CRYPTO_NONCE_LENGTH 0x10
-
83 
-
87 #define LR1110_CRYPTO_PARAMETER_LENGTH 0x04
-
88 
-
92 #define LR1110_CRYPTO_STATUS_LENGTH 0x01
-
93 
-
94 /*
-
95  * -----------------------------------------------------------------------------
-
96  * --- PUBLIC TYPES ------------------------------------------------------------
-
97  */
-
98 
- -
103 
- -
108 
- -
113 
- -
118 
- -
123 
-
127 typedef enum
-
128 {
- - - -
132 
-
136 typedef enum
-
137 {
- - - - - - -
144 
-
148 typedef enum
-
149 {
-
150  LR1110_CRYPTO_LORAWAN_VERSION_1_0_X = 0x00,
-
151  LR1110_CRYPTO_LORAWAN_VERSION_1_1_X = 0x01,
- -
153 
- -
158 {
-
159  LR1110_CRYPTO_KEYS_IDX_MOTHER_KEY = 1,
-
160  LR1110_CRYPTO_KEYS_IDX_NWK_KEY = 2,
-
161  LR1110_CRYPTO_KEYS_IDX_APP_KEY = 3,
-
162  LR1110_CRYPTO_KEYS_IDX_J_S_ENC_KEY = 4,
-
163  LR1110_CRYPTO_KEYS_IDX_J_S_INT_KEY = 5,
-
164  LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_0 = 6,
-
165  LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_1 = 7,
-
166  LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_2 = 8,
-
167  LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_3 = 9,
-
168  LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_4 = 10,
-
169  LR1110_CRYPTO_KEYS_IDX_GP_KE_KEY_5 = 11,
-
170  LR1110_CRYPTO_KEYS_IDX_APP_S_KEY = 12,
-
171  LR1110_CRYPTO_KEYS_IDX_F_NWK_S_INT_KEY = 13,
-
172  LR1110_CRYPTO_KEYS_IDX_S_NWK_S_INT_KEY = 14,
-
173  LR1110_CRYPTO_KEYS_IDX_NWK_S_ENC_KEY = 15,
-
174  LR1110_CRYPTO_KEYS_IDX_RFU_0 = 16,
-
175  LR1110_CRYPTO_KEYS_IDX_RFU_1 = 17,
-
176  LR1110_CRYPTO_KEYS_IDX_MC_APP_S_KEY_0 = 18,
-
177  LR1110_CRYPTO_KEYS_IDX_MC_APP_S_KEY_1 = 19,
-
178  LR1110_CRYPTO_KEYS_IDX_MC_APP_S_KEY_2 = 20,
-
179  LR1110_CRYPTO_KEYS_IDX_MC_APP_S_KEY_3 = 21,
-
180  LR1110_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_0 = 22,
-
181  LR1110_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_1 = 23,
-
182  LR1110_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_2 = 24,
-
183  LR1110_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_3 = 25,
-
184  LR1110_CRYPTO_KEYS_IDX_GP0 = 26,
-
185  LR1110_CRYPTO_KEYS_IDX_GP1 = 27,
- -
187 
-
188 /*
-
189  * -----------------------------------------------------------------------------
-
190  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
-
191  */
-
192 
-
193 #ifdef __cplusplus
-
194 }
-
195 #endif
-
196 
-
197 #endif // LR1110_CRYPTO_ENGINE_TYPES_H
-
198 
-
199 /* --- EOF ------------------------------------------------------------------ */
-
-
enum lr1110_crypto_keys_idx_e lr1110_crypto_keys_idx_t
Crypto keys table index definition.
-
#define LR1110_CRYPTO_NONCE_LENGTH
Length in bytes of a nonce.
Definition: lr1110_crypto_engine_types.h:82
-
#define LR1110_CRYPTO_PARAMETER_LENGTH
Length in bytes of a crypto parameter.
Definition: lr1110_crypto_engine_types.h:87
-
lr1110_crypto_keys_idx_e
Crypto keys table index definition.
Definition: lr1110_crypto_engine_types.h:158
-
#define LR1110_CRYPTO_AES_CMAC_LENGTH
Length in bytes of a AES CMAC.
Definition: lr1110_crypto_engine_types.h:67
-
@ LR1110_CRYPTO_STATUS_SUCCESS
The API command was successful.
Definition: lr1110_crypto_engine_types.h:138
-
uint8_t lr1110_crypto_aes_cmac_t[LR1110_CRYPTO_AES_CMAC_LENGTH]
Fixed-length array to store an AES CMAC.
Definition: lr1110_crypto_engine_types.h:107
-
uint8_t lr1110_crypto_key_t[LR1110_CRYPTO_KEY_LENGTH]
Fixed-length array to store a crypto key.
Definition: lr1110_crypto_engine_types.h:112
-
uint8_t lr1110_crypto_mic_t[LR1110_CRYPTO_MIC_LENGTH]
Fixed-length array to store an AES CMAC.
Definition: lr1110_crypto_engine_types.h:102
-
#define LR1110_CRYPTO_MIC_LENGTH
Length in bytes of a MIC.
Definition: lr1110_crypto_engine_types.h:62
-
@ LR1110_CRYPTO_STATUS_ERROR_INVALID_KEY_ID
Invalid key ID (source, destination)
Definition: lr1110_crypto_engine_types.h:140
-
lr1110_crypto_lorawan_version_t
The supported LoRaWAN versions.
Definition: lr1110_crypto_engine_types.h:149
-
@ LR1110_CRYPTO_ELEMENT_CRYPTO_ENGINE
Internal crypto engine (default)
Definition: lr1110_crypto_engine_types.h:129
-
@ LR1110_CRYPTO_STATUS_ERROR_BUFFER_SIZE
Invalid data buffer size.
Definition: lr1110_crypto_engine_types.h:141
-
#define LR1110_CRYPTO_KEY_LENGTH
Length in bytes of a key for AES computation.
Definition: lr1110_crypto_engine_types.h:77
-
uint8_t lr1110_crypto_param_t[LR1110_CRYPTO_PARAMETER_LENGTH]
Fixed-length array to store a crypto parameter.
Definition: lr1110_crypto_engine_types.h:122
-
@ LR1110_CRYPTO_STATUS_ERROR
Other error.
Definition: lr1110_crypto_engine_types.h:142
-
lr1110_crypto_element_t
The supported crypto elements.
Definition: lr1110_crypto_engine_types.h:128
-
@ LR1110_CRYPTO_STATUS_ERROR_FAIL_CMAC
AES-CMAC invalid or comparison failed.
Definition: lr1110_crypto_engine_types.h:139
-
uint8_t lr1110_crypto_nonce_t[LR1110_CRYPTO_NONCE_LENGTH]
Fixed-length array to store a crypto nonce.
Definition: lr1110_crypto_engine_types.h:117
-
@ LR1110_CRYPTO_ELEMENT_SECURE_ELEMENT
External secure element.
Definition: lr1110_crypto_engine_types.h:130
-
lr1110_crypto_status_t
The status returned by the crypto API.
Definition: lr1110_crypto_engine_types.h:137
- - - - diff --git a/doc/lr1110/html/lr1110__driver__version_8c__incl.map b/doc/lr1110/html/lr1110__driver__version_8c__incl.map deleted file mode 100644 index 9270adb..0000000 --- a/doc/lr1110/html/lr1110__driver__version_8c__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/doc/lr1110/html/lr1110__driver__version_8c__incl.md5 b/doc/lr1110/html/lr1110__driver__version_8c__incl.md5 deleted file mode 100644 index 4c39414..0000000 --- a/doc/lr1110/html/lr1110__driver__version_8c__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ddd8ee361784ef87fec6e093cb7dc51c \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__driver__version_8c__incl.png b/doc/lr1110/html/lr1110__driver__version_8c__incl.png deleted file mode 100644 index 7c9da1edc97f52f9813c8ede26a6fb1f0a528f04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4633 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 diff --git a/doc/lr1110/html/lr1110__driver__version_8h__dep__incl.map b/doc/lr1110/html/lr1110__driver__version_8h__dep__incl.map deleted file mode 100644 index 6e61c22..0000000 --- a/doc/lr1110/html/lr1110__driver__version_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/doc/lr1110/html/lr1110__driver__version_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__driver__version_8h__dep__incl.md5 deleted file mode 100644 index bc7cf52..0000000 --- a/doc/lr1110/html/lr1110__driver__version_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -6a02b36a20be81fdec366ce69c0b26b7 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__driver__version_8h__dep__incl.png b/doc/lr1110/html/lr1110__driver__version_8h__dep__incl.png deleted file mode 100644 index fbb09530c9b1bbd7655f1aec1554baa84d65724f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5246 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 LK&@WI;mN-M`Az-i diff --git a/doc/lr1110/html/lr1110__gnss_8c__incl.map b/doc/lr1110/html/lr1110__gnss_8c__incl.map deleted file mode 100644 index e2ba44d..0000000 --- a/doc/lr1110/html/lr1110__gnss_8c__incl.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/doc/lr1110/html/lr1110__gnss_8c__incl.md5 b/doc/lr1110/html/lr1110__gnss_8c__incl.md5 deleted file mode 100644 index 15fc014..0000000 --- a/doc/lr1110/html/lr1110__gnss_8c__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -a06c9bddd6cabe38afed7d9a885ab8e1 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__gnss_8c__incl.png b/doc/lr1110/html/lr1110__gnss_8c__incl.png deleted file mode 100644 index 1709d319e3ea86ac71645b0a30145e75ccc1fe9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22508 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 - - - diff --git a/doc/lr1110/html/lr1110__gnss_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__gnss_8h__dep__incl.md5 deleted file mode 100644 index 7481066..0000000 --- a/doc/lr1110/html/lr1110__gnss_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -32998e161ec7fb7717ef983a39d3e8f6 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__gnss_8h__dep__incl.png b/doc/lr1110/html/lr1110__gnss_8h__dep__incl.png deleted file mode 100644 index 4670ae651fd2931234268c5104069fd70c864dde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4898 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 diff --git a/doc/lr1110/html/lr1110__gnss_8h__incl.map b/doc/lr1110/html/lr1110__gnss_8h__incl.map deleted file mode 100644 index ef46827..0000000 --- a/doc/lr1110/html/lr1110__gnss_8h__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/doc/lr1110/html/lr1110__gnss_8h__incl.md5 b/doc/lr1110/html/lr1110__gnss_8h__incl.md5 deleted file mode 100644 index a5c2f13..0000000 --- a/doc/lr1110/html/lr1110__gnss_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ba0244cb941db2475cd36b643043057a \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__gnss_8h__incl.png b/doc/lr1110/html/lr1110__gnss_8h__incl.png deleted file mode 100644 index 50a0c298348849d639e82cee3ad476cdf3059e50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9168 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 - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_gnss.h Source File - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
lr1110_gnss.h
-
-
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_GNSS_H
-
36 #define LR1110_GNSS_H
-
37 
-
38 #ifdef __cplusplus
-
39 extern "C" {
-
40 #endif
-
41 
-
42 /*
-
43  * -----------------------------------------------------------------------------
-
44  * --- DEPENDENCIES ------------------------------------------------------------
-
45  */
-
46 
-
47 #include "lr1110_gnss_types.h"
-
48 #include "lr1110_types.h"
-
49 
-
50 /*
-
51  * -----------------------------------------------------------------------------
-
52  * --- PUBLIC MACROS -----------------------------------------------------------
-
53  */
-
54 
-
55 /*
-
56  * -----------------------------------------------------------------------------
-
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
-
58  */
-
59 
-
60 /*
-
61  * -----------------------------------------------------------------------------
-
62  * --- PUBLIC TYPES ------------------------------------------------------------
-
63  */
-
64 
-
65 /*
-
66  * -----------------------------------------------------------------------------
-
67  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
-
68  */
-
69 
-
80 lr1110_status_t lr1110_gnss_get_result_size( const void* context, uint16_t* result_size );
-
81 
-
97 lr1110_status_t lr1110_gnss_read_results( const void* context, uint8_t* result_buffer,
-
98  const uint16_t result_buffer_size );
-
99 
-
110 lr1110_status_t lr1110_gnss_get_timings( const void* context, lr1110_gnss_timings_t* timings );
-
111 
-
125 lr1110_status_t lr1110_gnss_almanac_update( const void* context, const uint8_t* blocks, const uint8_t nb_of_blocks );
-
126 
-
135 lr1110_status_t lr1110_gnss_read_almanac( const void* context,
-
136  lr1110_gnss_almanac_full_read_bytestream_t almanac_bytestream );
-
137 
- -
148  uint16_t* almanac_age );
-
149 
-
159 lr1110_status_t lr1110_gnss_push_solver_msg( const void* context, const uint8_t* payload, const uint16_t payload_size );
-
160 
- -
173  const lr1110_gnss_constellation_mask_t constellation_mask );
-
174 
- -
187  lr1110_gnss_constellation_mask_t* constellations_used );
-
188 
- -
199  const lr1110_gnss_constellation_mask_t constellations_to_update );
-
200 
- -
211  lr1110_gnss_constellation_mask_t* constellations_to_update );
-
212 
- -
222 
- -
233  lr1110_gnss_constellation_mask_t* supported_constellations );
-
234 
-
245 lr1110_status_t lr1110_gnss_set_scan_mode( const void* context, const lr1110_gnss_scan_mode_t scan_mode );
-
246 
-
260 lr1110_status_t lr1110_gnss_scan_autonomous( const void* context, const lr1110_gnss_date_t date,
-
261  const lr1110_gnss_search_mode_t effort_mode,
-
262  const uint8_t gnss_input_parameters, const uint8_t nb_sat );
-
263 
-
277 lr1110_status_t lr1110_gnss_scan_assisted( const void* context, const lr1110_gnss_date_t date,
-
278  const lr1110_gnss_search_mode_t effort_mode,
-
279  const uint8_t gnss_input_parameters, const uint8_t nb_sat );
-
280 
- -
292  const void* context, const lr1110_gnss_solver_assistance_position_t* assistance_position );
-
293 
- -
308  lr1110_gnss_solver_assistance_position_t* assistance_position );
-
309 
-
319 lr1110_status_t lr1110_gnss_push_dmc_msg( const void* context, uint8_t* dmc_msg, uint16_t dmc_msg_len );
-
320 
- -
336  lr1110_gnss_context_status_bytestream_t context_status_buffer );
-
337 
-
346 lr1110_status_t lr1110_gnss_get_nb_detected_satellites( const void* context, uint8_t* nb_detected_satellites );
-
347 
- -
362  const void* context, const uint8_t nb_detected_satellites,
-
363  lr1110_gnss_detected_satellite_t* detected_satellite_id_snr_doppler );
-
364 
- -
378  const lr1110_gnss_context_status_bytestream_t context_status_bytestream,
-
379  lr1110_gnss_context_status_t* context_status );
-
380 
-
390 lr1110_status_t lr1110_gnss_get_result_destination( const uint8_t* result_buffer, const uint16_t result_buffer_size,
-
391  lr1110_gnss_destination_t* destination );
-
392 
-
414 uint16_t lr1110_gnss_compute_almanac_age( uint16_t almanac_date,
-
415  uint16_t nb_days_between_epoch_and_corresponding_gps_time_rollover,
-
416  uint16_t nb_days_since_epoch );
-
417 
-
418 #ifdef __cplusplus
-
419 }
-
420 #endif
-
421 
-
422 #endif // LR1110_GNSS_H
-
423 
-
424 /* --- EOF ------------------------------------------------------------------ */
-
-
lr1110_status_t lr1110_gnss_get_context_status(const void *context, lr1110_gnss_context_status_bytestream_t context_status_buffer)
Get the GNSS context status.
Definition: lr1110_gnss.c:527
-
uint8_t lr1110_gnss_constellation_mask_t
Bit mask of constellation configurations.
Definition: lr1110_gnss_types.h:148
-
lr1110_status_t lr1110_gnss_get_nb_detected_satellites(const void *context, uint8_t *nb_detected_satellites)
Get the number of detected satellites during last scan.
Definition: lr1110_gnss.c:539
-
uint8_t lr1110_gnss_context_status_bytestream_t[LR1110_GNSS_CONTEXT_STATUS_LENGTH]
Buffer that holds data for context status.
Definition: lr1110_gnss_types.h:249
-
lr1110_status_t lr1110_gnss_get_result_size(const void *context, uint16_t *result_size)
Get the size of results.
Definition: lr1110_gnss.c:173
-
lr1110_gnss_destination_t
GNSS response type indicates the destination: Host MCU, GNSS solver or GNSS DMC.
Definition: lr1110_gnss_types.h:163
-
uint16_t lr1110_gnss_compute_almanac_age(uint16_t almanac_date, uint16_t nb_days_between_epoch_and_corresponding_gps_time_rollover, uint16_t nb_days_since_epoch)
Helper function that computes the age of an almanac.
Definition: lr1110_gnss.c:652
-
lr1110_status_t lr1110_gnss_read_firmware_version(const void *context, lr1110_gnss_version_t *version)
Function to read the GNSS firmware version.
Definition: lr1110_gnss.c:399
-
Assistance position.
Definition: lr1110_gnss_types.h:255
-
lr1110_status_t lr1110_gnss_get_almanac_age_for_satellite(const void *context, const lr1110_gnss_satellite_id_t sv_id, uint16_t *almanac_age)
Get almanac age for a satellite.
Definition: lr1110_gnss.c:292
-
uint8_t lr1110_gnss_satellite_id_t
Satellite ID type.
Definition: lr1110_gnss_types.h:109
-
lr1110_status_t lr1110_gnss_set_assistance_position(const void *context, const lr1110_gnss_solver_assistance_position_t *assistance_position)
Function to set the assistance position.
Definition: lr1110_gnss.c:476
-
lr1110_status_t lr1110_gnss_almanac_update(const void *context, const uint8_t *blocks, const uint8_t nb_of_blocks)
Update almanacs given as parameter.
Definition: lr1110_gnss.c:219
-
lr1110_gnss_search_mode_t
Search mode for GNSS scan.
Definition: lr1110_gnss_types.h:154
-
lr1110_status_t lr1110_gnss_push_solver_msg(const void *context, const uint8_t *payload, const uint16_t payload_size)
Push data received from solver to LR1110.
Definition: lr1110_gnss.c:340
-
lr1110_status_t lr1110_gnss_get_detected_satellites(const void *context, const uint8_t nb_detected_satellites, lr1110_gnss_detected_satellite_t *detected_satellite_id_snr_doppler)
Get the satellites detected on last scan with their IDs, C/N (aka CNR) and doppler.
Definition: lr1110_gnss.c:550
-
uint32_t lr1110_gnss_date_t
Representation of absolute time for GNSS operations.
Definition: lr1110_gnss_types.h:239
-
lr1110_status_t lr1110_gnss_read_results(const void *context, uint8_t *result_buffer, const uint16_t result_buffer_size)
Read GNSS results.
Definition: lr1110_gnss.c:192
-
lr1110_status_t lr1110_gnss_read_almanac_update(const void *context, lr1110_gnss_constellation_mask_t *constellations_to_update)
Function to read the almanac update configuration.
Definition: lr1110_gnss.c:387
-
lr1110_status_t lr1110_gnss_push_dmc_msg(const void *context, uint8_t *dmc_msg, uint16_t dmc_msg_len)
Host receives an update from the network or assembles itself the update message and send it to the LR...
Definition: lr1110_gnss.c:516
-
Detected SV structure.
Definition: lr1110_gnss_types.h:264
-
lr1110_status_t lr1110_gnss_set_almanac_update(const void *context, const lr1110_gnss_constellation_mask_t constellations_to_update)
Activate the almanac update.
Definition: lr1110_gnss.c:375
-
lr1110_status_t lr1110_gnss_read_used_constellations(const void *context, lr1110_gnss_constellation_mask_t *constellations_used)
Read constellation used by the GNSS scanner from the almanac update configuration.
Definition: lr1110_gnss.c:363
-
lr1110_status_t lr1110_gnss_read_assistance_position(const void *context, lr1110_gnss_solver_assistance_position_t *assistance_position)
Function to read the assistance position.
Definition: lr1110_gnss.c:494
-
lr1110_status_t lr1110_gnss_set_scan_mode(const void *context, const lr1110_gnss_scan_mode_t scan_mode)
Function to set the GNSS scan mode configuration.
Definition: lr1110_gnss.c:427
-
Structure for GNSS context status.
Definition: lr1110_gnss_types.h:292
-
lr1110_status_t lr1110_gnss_set_constellations_to_use(const void *context, const lr1110_gnss_constellation_mask_t constellation_mask)
Activate the GNSS scan constellation.
Definition: lr1110_gnss.c:351
-
lr1110_status_t lr1110_gnss_get_result_destination(const uint8_t *result_buffer, const uint16_t result_buffer_size, lr1110_gnss_destination_t *destination)
Extract the destination from the result returned by a GNSS scan.
Definition: lr1110_gnss.c:619
-
GNSS timings of the LR1110.
Definition: lr1110_gnss_types.h:274
-
Type definitions for LR1110.
-
uint8_t lr1110_gnss_almanac_full_read_bytestream_t[LR1110_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE]
Buffer that holds data for all almanacs full update - when reading.
Definition: lr1110_gnss_types.h:244
-
lr1110_gnss_scan_mode_t
GNSS single or double scan mode.
Definition: lr1110_gnss_types.h:203
-
lr1110_status_t lr1110_gnss_scan_autonomous(const void *context, const lr1110_gnss_date_t date, const lr1110_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
Gnss scan with no assisted parameters needed.
Definition: lr1110_gnss.c:438
-
enum lr1110_status_e lr1110_status_t
LR1110 status.
-
Version structure of the LR1110 GNSS firmware.
Definition: lr1110_gnss_types.h:283
-
lr1110_status_t lr1110_gnss_scan_assisted(const void *context, const lr1110_gnss_date_t date, const lr1110_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
Gnss scan with assisted parameters.
Definition: lr1110_gnss.c:457
-
GNSS scan driver types for LR1110.
-
lr1110_status_t lr1110_gnss_read_almanac(const void *context, lr1110_gnss_almanac_full_read_bytestream_t almanac_bytestream)
Read the almanac.
Definition: lr1110_gnss.c:251
-
lr1110_status_t lr1110_gnss_read_supported_constellations(const void *context, lr1110_gnss_constellation_mask_t *supported_constellations)
Function to read the supported constellation, GPS or BEIDOU other constellations.
Definition: lr1110_gnss.c:415
-
lr1110_status_t lr1110_gnss_get_timings(const void *context, lr1110_gnss_timings_t *timings)
Get the time spent in signal acquisition and signal analysis.
Definition: lr1110_gnss.c:204
-
lr1110_status_t lr1110_gnss_parse_context_status_buffer(const lr1110_gnss_context_status_bytestream_t context_status_bytestream, lr1110_gnss_context_status_t *context_status)
Parse a raw buffer of context status.
Definition: lr1110_gnss.c:583
- - - - diff --git a/doc/lr1110/html/lr1110__gnss__types_8h.html b/doc/lr1110/html/lr1110__gnss__types_8h.html deleted file mode 100644 index bd22b8b..0000000 --- a/doc/lr1110/html/lr1110__gnss__types_8h.html +++ /dev/null @@ -1,526 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_gnss_types.h File Reference - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
lr1110_gnss_types.h File Reference
-
-
- -

GNSS scan driver types for LR1110. -More...

-
#include <stdbool.h>
-#include <stdint.h>
-
-Include dependency graph for lr1110_gnss_types.h:
-
-
- - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - -

-Data Structures

struct  lr1110_gnss_solver_assistance_position_s
 Assistance position. More...
 
struct  lr1110_gnss_detected_satellite_s
 Detected SV structure. More...
 
struct  lr1110_gnss_timings_s
 GNSS timings of the LR1110. More...
 
struct  lr1110_gnss_version_s
 Version structure of the LR1110 GNSS firmware. More...
 
struct  lr1110_gnss_context_status_s
 Structure for GNSS context status. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Macros

#define LR1110_GNSS_MAX_SIZE_ARRAY   2820
 Maximal buffer size. More...
 
-#define LR1110_GNSS_FULL_UPDATE_N_ALMANACS   ( 128 )
 Number of almanacs in full update payload.
 
-#define LR1110_GNSS_SINGLE_ALMANAC_READ_SIZE   ( 22 )
 Size of the almanac of a single satellite when reading.
 
-#define LR1110_GNSS_SINGLE_ALMANAC_WRITE_SIZE   ( 20 )
 Size of the almanac of a single satellite when writing.
 
-#define LR1110_GNSS_CONTEXT_STATUS_LENGTH   ( 9 )
 Size of the almanac of the GNSS context status buffer.
 
-#define LR1110_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE    ( ( LR1110_GNSS_FULL_UPDATE_N_ALMANACS * LR1110_GNSS_SINGLE_ALMANAC_READ_SIZE ) + 4 )
 Size of the whole almanac when reading.
 
-#define LR1110_GNSS_DMC_ALMANAC_UPDATE_POS   ( 1U )
 
-#define LR1110_GNSS_DMC_ALMANAC_UPDATE_GPS_MASK   ( 0x01UL << LR1110_GNSS_DMC_ALMANAC_UPDATE_POS )
 
-#define LR1110_GNSS_DMC_ALMANAC_UPDATE_BEIDOU_MASK   ( 0x02UL << LR1110_GNSS_DMC_ALMANAC_UPDATE_POS )
 
-#define LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_POS   ( 0U )
 
-#define LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_MASK   ( 0x01UL << LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_POS )
 
-#define LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_POS   ( 7U )
 
-#define LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_MASK   ( 0x01UL << LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_POS )
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef uint8_t lr1110_gnss_satellite_id_t
 Satellite ID type.
 
typedef uint8_t lr1110_gnss_constellation_mask_t
 Bit mask of constellation configurations. More...
 
-typedef enum lr1110_gnss_error_code_e lr1110_gnss_error_code_t
 GNSS error codes.
 
-typedef enum lr1110_gnss_freq_search_space_e lr1110_gnss_freq_search_space_t
 GNSS frequency search space.
 
typedef uint32_t lr1110_gnss_date_t
 Representation of absolute time for GNSS operations. More...
 
-typedef uint8_t lr1110_gnss_almanac_full_read_bytestream_t[LR1110_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE]
 Buffer that holds data for all almanacs full update - when reading.
 
-typedef uint8_t lr1110_gnss_context_status_bytestream_t[LR1110_GNSS_CONTEXT_STATUS_LENGTH]
 Buffer that holds data for context status.
 
-typedef struct lr1110_gnss_solver_assistance_position_s lr1110_gnss_solver_assistance_position_t
 Assistance position.
 
-typedef struct lr1110_gnss_detected_satellite_s lr1110_gnss_detected_satellite_t
 Detected SV structure.
 
-typedef struct lr1110_gnss_timings_s lr1110_gnss_timings_t
 GNSS timings of the LR1110.
 
-typedef struct lr1110_gnss_version_s lr1110_gnss_version_t
 Version structure of the LR1110 GNSS firmware.
 
-typedef struct lr1110_gnss_context_status_s lr1110_gnss_context_status_t
 Structure for GNSS context status.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Enumerations

enum  lr1110_gnss_result_fields_legacy_e { LR1110_GNSS_RESULTS_LEGACY_PSEUDO_RANGE_MASK = ( 1 << 0 ), -LR1110_GNSS_RESULTS_LEGACY_DOPPLER_MASK = ( 1 << 1 ), -LR1110_GNSS_RESULTS_LEGACY_BIT_CHANGE_MASK = ( 1 << 2 ) - }
 Bit mask indicating which information is added in the output payload - to be used with LR1110_GNSS_SCAN_MODE_0_SINGLE_SCAN_LEGACY. More...
 
enum  lr1110_gnss_result_fields_e { LR1110_GNSS_RESULTS_DOPPLER_ENABLE_MASK = ( 1 << 0 ), -LR1110_GNSS_RESULTS_DOPPLER_MASK = ( 1 << 1 ), -LR1110_GNSS_RESULTS_BIT_CHANGE_MASK = ( 1 << 2 ) - }
 bit mask indicating which information is added in the output payload - to be used with LR1110_GNSS_SCAN_MODE_3_SINGLE_SCAN_AND_5_FAST_SCANS More...
 
enum  lr1110_gnss_constellation_t { LR1110_GNSS_GPS_MASK = 0x01, -LR1110_GNSS_BEIDOU_MASK = 0x02 - }
 Constellation identifiers.
 
enum  lr1110_gnss_search_mode_t { LR1110_GNSS_OPTION_DEFAULT = 0x00, -LR1110_GNSS_OPTION_BEST_EFFORT = 0x01 - }
 Search mode for GNSS scan. More...
 
enum  lr1110_gnss_destination_t { LR1110_GNSS_DESTINATION_HOST = 0x00, -LR1110_GNSS_DESTINATION_SOLVER = 0x01, -LR1110_GNSS_DESTINATION_DMC = 0x02 - }
 GNSS response type indicates the destination: Host MCU, GNSS solver or GNSS DMC. More...
 
enum  lr1110_gnss_message_host_status_t {
-  LR1110_GNSS_HOST_OK = 0x00, -LR1110_GNSS_HOST_UNEXPECTED_CMD = 0x01, -LR1110_GNSS_HOST_UNIMPLEMENTED_CMD = 0x02, -LR1110_GNSS_HOST_INVALID_PARAMETERS = 0x03, -
-  LR1110_GNSS_HOST_MESSAGE_SANITY_CHECK_ERROR = 0x04, -LR1110_GNSS_HOST_IQ_CAPTURE_FAILS = 0x05, -LR1110_GNSS_HOST_NO_TIME = 0x06, -LR1110_GNSS_HOST_NO_SATELLITE_DETECTED = 0x07, -
-  LR1110_GNSS_HOST_ALMANAC_IN_FLASH_TOO_OLD = 0x08, -LR1110_GNSS_HOST_ALMANAC_UPDATE_FAILS_CRC_ERROR = 0x09, -LR1110_GNSS_HOST_ALMANAC_UPDATE_FAILS_FLASH_INTEGRITY_ERROR = 0x0A, -LR1110_GNSS_HOST_ALMANAC_UPDATE_NOT_ALLOWED = 0x0B, -
-  LR1110_GNSS_HOST_ALMANAC_CRC_ERROR = 0x0C, -LR1110_GNSS_HOST_ALMANAC_VERSION_NOT_SUPPORTED = 0x0D, -LR1110_GNSS_HOST_NOT_ENOUGH_SV_DETECTED_TO_BUILD_A_NAV_MESSAGE = 0x10 -
- }
 Message to host indicating the status of the message.
 
enum  lr1110_gnss_message_dmc_opcode_t { LR1110_GNSS_DMC_STATUS = 0x18 - }
 Message to DMC operation code. More...
 
enum  lr1110_gnss_scan_mode_t { LR1110_GNSS_SCAN_MODE_0_SINGLE_SCAN_LEGACY = 0x00, -LR1110_GNSS_SCAN_MODE_3_SINGLE_SCAN_AND_5_FAST_SCANS = 0x03 - }
 GNSS single or double scan mode. More...
 
enum  lr1110_gnss_error_code_e {
-  LR1110_GNSS_NO_ERROR = 0, -LR1110_GNSS_ERROR_ALMANAC_TOO_OLD = 1, -LR1110_GNSS_ERROR_UPDATE_CRC_MISMATCH = 2, -LR1110_GNSS_ERROR_UPDATE_FLASH_MEMORY_INTEGRITY = 3, -
-  LR1110_GNSS_ERROR_ALMANAC_UPDATE_NOT_ALLOWED = 4 -
- }
 GNSS error codes. More...
 
enum  lr1110_gnss_freq_search_space_e { LR1110_GNSS_FREQUENCY_SEARCH_SPACE_250_HZ = 0, -LR1110_GNSS_FREQUENCY_SEARCH_SPACE_500_HZ = 1, -LR1110_GNSS_FREQUENCY_SEARCH_SPACE_1_KHZ = 2, -LR1110_GNSS_FREQUENCY_SEARCH_SPACE_2_KHZ = 3 - }
 GNSS frequency search space.
 
-

Detailed Description

-

GNSS scan driver types for LR1110.

-

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

-

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    -
  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • -
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • -
  • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  • -
-

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-

Macro Definition Documentation

- -

◆ LR1110_GNSS_MAX_SIZE_ARRAY

- -
-
- - - - -
#define LR1110_GNSS_MAX_SIZE_ARRAY   2820
-
- -

Maximal buffer size.

-

(128sv * 22bytes + 4bytes for CRC)

- -
-
-

Typedef Documentation

- -

◆ lr1110_gnss_constellation_mask_t

- -
-
- - - - -
typedef uint8_t lr1110_gnss_constellation_mask_t
-
- -

Bit mask of constellation configurations.

-
See also
lr1110_gnss_constellation_t
- -
-
- -

◆ lr1110_gnss_date_t

- -
-
- - - - -
typedef uint32_t lr1110_gnss_date_t
-
- -

Representation of absolute time for GNSS operations.

-

The GNSS absolute time is represented as a 32 bits word that is the number of seconds elapsed since January 6th 1980, 00:00:00

-

The GNSS absolute time must take into account the Leap Seconds between UTC time and GPS time.

- -
-
-

Enumeration Type Documentation

- -

◆ lr1110_gnss_result_fields_legacy_e

- -
-
- -

Bit mask indicating which information is added in the output payload - to be used with LR1110_GNSS_SCAN_MODE_0_SINGLE_SCAN_LEGACY.

- - - - -
Enumerator
LR1110_GNSS_RESULTS_LEGACY_PSEUDO_RANGE_MASK 

Add pseudo-range information if set.

-
LR1110_GNSS_RESULTS_LEGACY_DOPPLER_MASK 

Add all Doppler information if set - up to 5 if not.

-
LR1110_GNSS_RESULTS_LEGACY_BIT_CHANGE_MASK 

Add bit change if set.

-
- -
-
- -

◆ lr1110_gnss_result_fields_e

- -
-
- - - - -
enum lr1110_gnss_result_fields_e
-
- -

bit mask indicating which information is added in the output payload - to be used with LR1110_GNSS_SCAN_MODE_3_SINGLE_SCAN_AND_5_FAST_SCANS

- - - - -
Enumerator
LR1110_GNSS_RESULTS_DOPPLER_ENABLE_MASK 

Add Doppler information if set.

-
LR1110_GNSS_RESULTS_DOPPLER_MASK 

Add up to 14 Doppler if set - up to 7 if not. Valid if LR1110_GNSS_RESULTS_DOPPLER_ENABLE_MASK is set

-
LR1110_GNSS_RESULTS_BIT_CHANGE_MASK 

Add bit change if set.

-
- -
-
- -

◆ lr1110_gnss_search_mode_t

- -
-
- - - - -
enum lr1110_gnss_search_mode_t
-
- -

Search mode for GNSS scan.

- - - -
Enumerator
LR1110_GNSS_OPTION_DEFAULT 

Search all requested satellites or fail.

-
LR1110_GNSS_OPTION_BEST_EFFORT 

Add additional search if not all satellites are found.

-
- -
-
- -

◆ lr1110_gnss_destination_t

- -
-
- - - - -
enum lr1110_gnss_destination_t
-
- -

GNSS response type indicates the destination: Host MCU, GNSS solver or GNSS DMC.

- - - - -
Enumerator
LR1110_GNSS_DESTINATION_HOST 

Host MCU.

-
LR1110_GNSS_DESTINATION_SOLVER 

GNSS Solver.

-
LR1110_GNSS_DESTINATION_DMC 

GNSS DMC.

-
- -
-
- -

◆ lr1110_gnss_message_dmc_opcode_t

- -
-
- -

Message to DMC operation code.

- - -
Enumerator
LR1110_GNSS_DMC_STATUS 

Status message in payload.

-
- -
-
- -

◆ lr1110_gnss_scan_mode_t

- -
-
- - - - -
enum lr1110_gnss_scan_mode_t
-
- -

GNSS single or double scan mode.

- - - -
Enumerator
LR1110_GNSS_SCAN_MODE_0_SINGLE_SCAN_LEGACY 

Generated NAV message format = NAV1.

-
LR1110_GNSS_SCAN_MODE_3_SINGLE_SCAN_AND_5_FAST_SCANS 

Generated NAV message format = NAV2.

-
- -
-
- -

◆ lr1110_gnss_error_code_e

- -
-
- - - - -
enum lr1110_gnss_error_code_e
-
- -

GNSS error codes.

- - -
Enumerator
LR1110_GNSS_ERROR_ALMANAC_UPDATE_NOT_ALLOWED 

Impossible to update more than one constellation at a time.

-
- -
-
-
- - - - diff --git a/doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.map b/doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.map deleted file mode 100644 index 3a4d096..0000000 --- a/doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.md5 deleted file mode 100644 index b09b833..0000000 --- a/doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -dd64eadc696954d5dbbb33d3a6533a2b \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.png b/doc/lr1110/html/lr1110__gnss__types_8h__dep__incl.png deleted file mode 100644 index 36bd4fc2a6dba7f72ae2fdf8eac1f84adcb9bf8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7895 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 Tz#@g6YQ)0_DzYW_O#=T5t71}H diff --git a/doc/lr1110/html/lr1110__gnss__types_8h__incl.md5 b/doc/lr1110/html/lr1110__gnss__types_8h__incl.md5 deleted file mode 100644 index 877933e..0000000 --- a/doc/lr1110/html/lr1110__gnss__types_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -945ed707bf20edba80afb4a4fe631315 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__gnss__types_8h__incl.png b/doc/lr1110/html/lr1110__gnss__types_8h__incl.png deleted file mode 100644 index 38fd1c482fde0308ceed76d5ba7641fcf04b62ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6089 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 diff --git a/doc/lr1110/html/lr1110__gnss__types_8h_source.html b/doc/lr1110/html/lr1110__gnss__types_8h_source.html deleted file mode 100644 index f8dced1..0000000 --- a/doc/lr1110/html/lr1110__gnss__types_8h_source.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_gnss_types.h Source File - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
lr1110_gnss_types.h
-
-
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_GNSS_TYPES_H
-
36 #define LR1110_GNSS_TYPES_H
-
37 
-
38 #ifdef __cplusplus
-
39 extern "C" {
-
40 #endif
-
41 
-
42 /*
-
43  * -----------------------------------------------------------------------------
-
44  * --- DEPENDENCIES ------------------------------------------------------------
-
45  */
-
46 
-
47 #include <stdbool.h>
-
48 #include <stdint.h>
-
49 
-
50 /*
-
51  * -----------------------------------------------------------------------------
-
52  * --- PUBLIC MACROS -----------------------------------------------------------
-
53  */
-
54 
-
55 /*
-
56  * -----------------------------------------------------------------------------
-
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
-
58  */
-
59 
-
63 #define LR1110_GNSS_MAX_SIZE_ARRAY 2820
-
64 
-
65 
-
68 #define LR1110_GNSS_FULL_UPDATE_N_ALMANACS ( 128 )
-
69 
-
73 #define LR1110_GNSS_SINGLE_ALMANAC_READ_SIZE ( 22 )
-
74 
-
78 #define LR1110_GNSS_SINGLE_ALMANAC_WRITE_SIZE ( 20 )
-
79 
-
83 #define LR1110_GNSS_CONTEXT_STATUS_LENGTH ( 9 )
-
84 
-
88 #define LR1110_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE \
-
89  ( ( LR1110_GNSS_FULL_UPDATE_N_ALMANACS * LR1110_GNSS_SINGLE_ALMANAC_READ_SIZE ) + 4 )
-
90 
-
91 #define LR1110_GNSS_DMC_ALMANAC_UPDATE_POS ( 1U )
-
92 #define LR1110_GNSS_DMC_ALMANAC_UPDATE_GPS_MASK ( 0x01UL << LR1110_GNSS_DMC_ALMANAC_UPDATE_POS )
-
93 #define LR1110_GNSS_DMC_ALMANAC_UPDATE_BEIDOU_MASK ( 0x02UL << LR1110_GNSS_DMC_ALMANAC_UPDATE_POS )
-
94 
-
95 #define LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_POS ( 0U )
-
96 #define LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_MASK ( 0x01UL << LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_POS )
-
97 
-
98 #define LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_POS ( 7U )
-
99 #define LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_MASK ( 0x01UL << LR1110_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_POS )
-
100 
-
101 /*
-
102  * -----------------------------------------------------------------------------
-
103  * --- PUBLIC TYPES ------------------------------------------------------------
-
104  */
-
105 
- -
110 
- -
116 {
- - - -
120 };
-
121 
- -
127 {
- -
129  LR1110_GNSS_RESULTS_DOPPLER_MASK = ( 1 << 1 ),
- -
132 };
-
133 
-
137 typedef enum
-
138 {
-
139  LR1110_GNSS_GPS_MASK = 0x01,
-
140  LR1110_GNSS_BEIDOU_MASK = 0x02,
- -
142 
- -
149 
-
153 typedef enum
-
154 {
- - - -
158 
-
162 typedef enum
-
163 {
- - - - -
168 
-
172 typedef enum
-
173 {
-
174  LR1110_GNSS_HOST_OK = 0x00,
-
175  LR1110_GNSS_HOST_UNEXPECTED_CMD = 0x01,
-
176  LR1110_GNSS_HOST_UNIMPLEMENTED_CMD = 0x02,
-
177  LR1110_GNSS_HOST_INVALID_PARAMETERS = 0x03,
-
178  LR1110_GNSS_HOST_MESSAGE_SANITY_CHECK_ERROR = 0x04,
-
179  LR1110_GNSS_HOST_IQ_CAPTURE_FAILS = 0x05,
-
180  LR1110_GNSS_HOST_NO_TIME = 0x06,
-
181  LR1110_GNSS_HOST_NO_SATELLITE_DETECTED = 0x07,
-
182  LR1110_GNSS_HOST_ALMANAC_IN_FLASH_TOO_OLD = 0x08,
-
183  LR1110_GNSS_HOST_ALMANAC_UPDATE_FAILS_CRC_ERROR = 0x09,
-
184  LR1110_GNSS_HOST_ALMANAC_UPDATE_FAILS_FLASH_INTEGRITY_ERROR = 0x0A,
-
185  LR1110_GNSS_HOST_ALMANAC_UPDATE_NOT_ALLOWED = 0x0B,
-
186  LR1110_GNSS_HOST_ALMANAC_CRC_ERROR = 0x0C,
-
187  LR1110_GNSS_HOST_ALMANAC_VERSION_NOT_SUPPORTED = 0x0D,
-
188  LR1110_GNSS_HOST_NOT_ENOUGH_SV_DETECTED_TO_BUILD_A_NAV_MESSAGE = 0x10,
- -
190 
-
194 typedef enum
-
195 {
- - -
198 
-
202 typedef enum
-
203 {
- - - -
207 
- -
212 {
-
213  LR1110_GNSS_NO_ERROR = 0,
-
214  LR1110_GNSS_ERROR_ALMANAC_TOO_OLD = 1,
-
215  LR1110_GNSS_ERROR_UPDATE_CRC_MISMATCH = 2,
-
216  LR1110_GNSS_ERROR_UPDATE_FLASH_MEMORY_INTEGRITY = 3,
- - -
219 
- -
224 {
-
225  LR1110_GNSS_FREQUENCY_SEARCH_SPACE_250_HZ = 0,
-
226  LR1110_GNSS_FREQUENCY_SEARCH_SPACE_500_HZ = 1,
-
227  LR1110_GNSS_FREQUENCY_SEARCH_SPACE_1_KHZ = 2,
-
228  LR1110_GNSS_FREQUENCY_SEARCH_SPACE_2_KHZ = 3,
- -
230 
-
239 typedef uint32_t lr1110_gnss_date_t;
-
240 
- -
245 
- -
250 
- -
255 {
-
256  float latitude;
-
257  float longitude;
- -
259 
- -
264 {
-
265  lr1110_gnss_satellite_id_t satellite_id;
-
266  int8_t cnr;
-
267  int16_t doppler;
- -
269 
-
273 typedef struct lr1110_gnss_timings_s
-
274 {
-
275  uint32_t radio_ms;
-
276  uint32_t computation_ms;
- -
278 
-
282 typedef struct lr1110_gnss_version_s
-
283 {
-
284  uint8_t gnss_firmware;
-
285  uint8_t gnss_almanac;
- -
287 
- -
292 {
-
293  uint8_t firmware_version;
-
294  uint32_t global_almanac_crc;
-
295  lr1110_gnss_error_code_t error_code;
-
296  bool almanac_update_gps;
-
297  bool almanac_update_beidou;
-
298  lr1110_gnss_freq_search_space_t freq_search_space;
- -
300 
-
301 /*
-
302  * -----------------------------------------------------------------------------
-
303  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
-
304  */
-
305 
-
306 #ifdef __cplusplus
-
307 }
-
308 #endif
-
309 
-
310 #endif // LR1110_GNSS_TYPES_H
-
311 
-
312 /* --- EOF ------------------------------------------------------------------ */
-
-
@ LR1110_GNSS_DMC_STATUS
Status message in payload.
Definition: lr1110_gnss_types.h:196
-
float latitude
Latitude 12 bits (latitude in degree * 2048/90) with resolution 0.044°
Definition: lr1110_gnss_types.h:256
-
uint8_t lr1110_gnss_constellation_mask_t
Bit mask of constellation configurations.
Definition: lr1110_gnss_types.h:148
-
@ LR1110_GNSS_RESULTS_LEGACY_PSEUDO_RANGE_MASK
Add pseudo-range information if set.
Definition: lr1110_gnss_types.h:117
-
lr1110_gnss_message_dmc_opcode_t
Message to DMC operation code.
Definition: lr1110_gnss_types.h:195
-
@ LR1110_GNSS_OPTION_BEST_EFFORT
Add additional search if not all satellites are found.
Definition: lr1110_gnss_types.h:156
-
@ LR1110_GNSS_RESULTS_LEGACY_BIT_CHANGE_MASK
Add bit change if set.
Definition: lr1110_gnss_types.h:119
-
lr1110_gnss_error_code_e
GNSS error codes.
Definition: lr1110_gnss_types.h:212
-
uint8_t lr1110_gnss_context_status_bytestream_t[LR1110_GNSS_CONTEXT_STATUS_LENGTH]
Buffer that holds data for context status.
Definition: lr1110_gnss_types.h:249
-
lr1110_gnss_destination_t
GNSS response type indicates the destination: Host MCU, GNSS solver or GNSS DMC.
Definition: lr1110_gnss_types.h:163
-
uint8_t gnss_firmware
Version of the firmware.
Definition: lr1110_gnss_types.h:284
-
struct lr1110_gnss_detected_satellite_s lr1110_gnss_detected_satellite_t
Detected SV structure.
-
@ LR1110_GNSS_ERROR_ALMANAC_UPDATE_NOT_ALLOWED
Impossible to update more than one constellation at a time.
Definition: lr1110_gnss_types.h:217
-
Assistance position.
Definition: lr1110_gnss_types.h:255
-
@ LR1110_GNSS_DESTINATION_DMC
GNSS DMC.
Definition: lr1110_gnss_types.h:166
-
uint8_t lr1110_gnss_satellite_id_t
Satellite ID type.
Definition: lr1110_gnss_types.h:109
-
lr1110_gnss_search_mode_t
Search mode for GNSS scan.
Definition: lr1110_gnss_types.h:154
-
struct lr1110_gnss_context_status_s lr1110_gnss_context_status_t
Structure for GNSS context status.
-
enum lr1110_gnss_freq_search_space_e lr1110_gnss_freq_search_space_t
GNSS frequency search space.
-
@ LR1110_GNSS_DESTINATION_HOST
Host MCU.
Definition: lr1110_gnss_types.h:164
-
int8_t cnr
Carrier-to-noise ration (C/N) in dB.
Definition: lr1110_gnss_types.h:266
-
uint32_t lr1110_gnss_date_t
Representation of absolute time for GNSS operations.
Definition: lr1110_gnss_types.h:239
-
float longitude
Longitude 12 bits (longitude in degree * 2048/180) with resolution 0.088°
Definition: lr1110_gnss_types.h:257
-
struct lr1110_gnss_version_s lr1110_gnss_version_t
Version structure of the LR1110 GNSS firmware.
-
struct lr1110_gnss_timings_s lr1110_gnss_timings_t
GNSS timings of the LR1110.
-
Detected SV structure.
Definition: lr1110_gnss_types.h:264
-
lr1110_gnss_result_fields_legacy_e
Bit mask indicating which information is added in the output payload - to be used with LR1110_GNSS_SC...
Definition: lr1110_gnss_types.h:116
-
struct lr1110_gnss_solver_assistance_position_s lr1110_gnss_solver_assistance_position_t
Assistance position.
-
lr1110_gnss_freq_search_space_e
GNSS frequency search space.
Definition: lr1110_gnss_types.h:224
-
@ LR1110_GNSS_RESULTS_DOPPLER_ENABLE_MASK
Add Doppler information if set.
Definition: lr1110_gnss_types.h:128
-
Structure for GNSS context status.
Definition: lr1110_gnss_types.h:292
-
@ LR1110_GNSS_OPTION_DEFAULT
Search all requested satellites or fail.
Definition: lr1110_gnss_types.h:155
-
enum lr1110_gnss_error_code_e lr1110_gnss_error_code_t
GNSS error codes.
-
GNSS timings of the LR1110.
Definition: lr1110_gnss_types.h:274
-
uint8_t lr1110_gnss_almanac_full_read_bytestream_t[LR1110_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE]
Buffer that holds data for all almanacs full update - when reading.
Definition: lr1110_gnss_types.h:244
-
lr1110_gnss_scan_mode_t
GNSS single or double scan mode.
Definition: lr1110_gnss_types.h:203
-
@ LR1110_GNSS_RESULTS_LEGACY_DOPPLER_MASK
Add all Doppler information if set - up to 5 if not.
Definition: lr1110_gnss_types.h:118
-
@ LR1110_GNSS_DESTINATION_SOLVER
GNSS Solver.
Definition: lr1110_gnss_types.h:165
-
Version structure of the LR1110 GNSS firmware.
Definition: lr1110_gnss_types.h:283
-
lr1110_gnss_result_fields_e
bit mask indicating which information is added in the output payload - to be used with LR1110_GNSS_SC...
Definition: lr1110_gnss_types.h:127
-
lr1110_gnss_constellation_t
Constellation identifiers.
Definition: lr1110_gnss_types.h:138
-
#define LR1110_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE
Size of the whole almanac when reading.
Definition: lr1110_gnss_types.h:88
-
#define LR1110_GNSS_CONTEXT_STATUS_LENGTH
Size of the almanac of the GNSS context status buffer.
Definition: lr1110_gnss_types.h:83
-
@ LR1110_GNSS_RESULTS_DOPPLER_MASK
Definition: lr1110_gnss_types.h:129
-
@ LR1110_GNSS_SCAN_MODE_0_SINGLE_SCAN_LEGACY
Generated NAV message format = NAV1.
Definition: lr1110_gnss_types.h:204
-
@ LR1110_GNSS_RESULTS_BIT_CHANGE_MASK
Add bit change if set.
Definition: lr1110_gnss_types.h:131
-
lr1110_gnss_message_host_status_t
Message to host indicating the status of the message.
Definition: lr1110_gnss_types.h:173
-
@ LR1110_GNSS_SCAN_MODE_3_SINGLE_SCAN_AND_5_FAST_SCANS
Generated NAV message format = NAV2.
Definition: lr1110_gnss_types.h:205
-
uint8_t gnss_almanac
Version of the almanac format.
Definition: lr1110_gnss_types.h:285
-
int16_t doppler
SV doppler in Hz.
Definition: lr1110_gnss_types.h:267
- - - - diff --git a/doc/lr1110/html/lr1110__hal_8h__dep__incl.map b/doc/lr1110/html/lr1110__hal_8h__dep__incl.map deleted file mode 100644 index 14f4b31..0000000 --- a/doc/lr1110/html/lr1110__hal_8h__dep__incl.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/doc/lr1110/html/lr1110__hal_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__hal_8h__dep__incl.md5 deleted file mode 100644 index 7b7049d..0000000 --- a/doc/lr1110/html/lr1110__hal_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0e8866df2f46daf0dcdfc75a07da7b29 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__hal_8h__dep__incl.png b/doc/lr1110/html/lr1110__hal_8h__dep__incl.png deleted file mode 100644 index fe61abc32cfb285c67c606c9aa3f9f77d0f46330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22788 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

8#ON1>cizRv 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 - - - - - - - - - - - diff --git a/doc/lr1110/html/lr1110__lr__fhss_8c__incl.md5 b/doc/lr1110/html/lr1110__lr__fhss_8c__incl.md5 deleted file mode 100644 index f8807c1..0000000 --- a/doc/lr1110/html/lr1110__lr__fhss_8c__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ad18faa6fccf5c16651390b7023360f2 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__lr__fhss_8c__incl.png b/doc/lr1110/html/lr1110__lr__fhss_8c__incl.png deleted file mode 100644 index f624b972a7cecc989269361bb3579df052622cbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27999 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 IN<9nsA6|n%B>(^b diff --git a/doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.map b/doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.map deleted file mode 100644 index 4925665..0000000 --- a/doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.md5 deleted file mode 100644 index cbb09a3..0000000 --- a/doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -06f37b81059a4ed79cfcfe7fb224859a \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.png b/doc/lr1110/html/lr1110__lr__fhss_8h__dep__incl.png deleted file mode 100644 index a485fda38447c05318639158de238a1b1236ba2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4725 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 KN+k-<-~J!e!1ql6 diff --git a/doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.map b/doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.map deleted file mode 100644 index f226855..0000000 --- a/doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.md5 deleted file mode 100644 index 3a47adc..0000000 --- a/doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -8b9b49473150dd6e951f020093f63906 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.png b/doc/lr1110/html/lr1110__lr__fhss__types_8h__dep__incl.png deleted file mode 100644 index 75dac6eeb1798fcc79d325a66276ffdc7f14379b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7708 zcmc(khdW){y2dBbdk~ghx86nXo#>$-{};zNn8m^secw>_oC*; zJi%qFRXX8esqIK}V`rmfcWzmJnA(}v}y5ua^G&lC;)x(?g#Vv2MN zvdhagrsT%R<-|fGzooQ(Y#_js%Q<UC52;tdJmIg*g$#cY) zffNZ24jglH^9J8@E-WmpN~Z zo`-5IypHR9viEqtDDgES!L@+MML9#o%%;XTy#82X*irtF$#tRDQjwm6%;V;n0o?FE*U zuw!9kA5CaVsdSe=yNRX{TJ3#HI$ec8N5dr#9vV`cZ+d}!*mhN}wlwf_g7-U$y)OX_ z7GA&T^Y)Y!69O}Z1d))C@C~Blz-S$H^Gi!{!0dNg++7+PnV2BH#L*emIi$@0*4vNG z%lnH-BQ4y0YXk{`g?9e=y>)bZb@;&B5Bm!I&+w?Ip5@LUxRX=NBX)yNH8sSs)Dk*P z(WKnwv{F(ui2fMV%u%Iw{~JpuCp;n|q9}3!EOvuZEz!QM(ag2ujltz$my}5z{YA8NUxeLWqxmouI zUc~*ixVyVMEVhuL<5SC2-YhqP)`PabQB`ClZ=!#km)` z8R$?|UEM`<`wM-(J;379X7^~V|Cya#JZ2DmU0t2`pX0xt+uP>_I^)|a?VQ=pH@Ncf z^2&I63UZmZU`R(W=vK-&Zg+q-puFtxVYEZ z+4R@op$NMyL*nA%-$zbEame0`DSvbnNo4_e2m?A^PzW6B9q><)NM*F7<5&f|=IaO5;ZAa3;t=E|@`6+nCX64s-rr&@I zovyV{J~;#mh719j;&oZ>psq(pN6*R1LISEJqpFJC7en=SRPstKr^@ea#uofNDd_V& zL&U*S`_hJAnut3S5TKRyb;jR{*id$Mw#(i$Z>dE)wSa(ti>IfeiwjRwbo8UM)7^^p zuE|M*OSGwp38IjYkoy`dE-vQr_^I^@ocQNbd;9p2!+gWTFnpRmaARZh^EmfyZ`!C+ z?yP>gfhfc@-*P5ZR#TJL(jwsFe^E;Ctwe@U>O z`0S&hZTsS^4lU|}n{x5;ntJ&S$Xm?GiAQ=&XPox*(IrW3_3lEC3vB&yKKn+IwzhVI z+XfaS%}BU18gR>hdz{=3d7B-!+6K00*{npDB~q7a&u8s-*a@HF9pO3ExpohssNfHqpkgLZ-4*j zsGkOL@^cLOR9Dkbg3v!rJ$Zpf<|+OA`1}4`{e2zADKi>m5*Qfx0X*{8Q!)}BKM4*NTiJ0dlo`8#$mPLN z&8GsLfzpRXgc+Jx^mg>|cYLX90w*UY z9sz+~P(@lMCU3!#leAHnnz;JBINwfLik2MO85$jOGw-+ zTL?BOs3(%APoF+lecQ}$U|kU*$urIG>zr8N$#Laa!Qo(M7ued`I_@^t8H8TK*}EUv z=)Pq&Q*DibkKg~J#ISSg_r`%g9<{j9!QsHbliIvq(ClW^CDl{%G%$zhncMo};&}rz z)^fhcTWk?g(XNFBDsUYQ-beH{BWV%-H-F=sY`t4QK6X<}6V}cdUp1QSz!v)n3WY9GPKr%IxKj@^!h=A@prIvXry)G{93htwI6#>aVe~V65oKKy)Gz1@fdOndZrg^mfb$9kKHlOw z{qo7S3Bg-ysldM-hLoOQsapf^EJsaAIX_wrxej~RYlS&J?v#}mQeJQWAjAw?BcmnI z|AsgKYH55L6%{4U85{nQWsk$&$v=d~zv1nqL9es?pI3l}oSwbZo0o^%&iwi9m6uHM z$j;HR8~l2-+N;VL6L~*I?By{U^kWImK+=vU4krysSE#L3zt~8Ah1@#<7(}eF^QZ8kqYU)>=W3F*Sd?qHU zP@IXzw9*8ui;URw|L<^9;HFQZ7(FPl{hos#g9)+scX_=p}L8SX#OZTFAc-#fspC!9i?Z zUf$L*{Y))wZ6xa0u;OAiGkgVmoP8LZtnHc8s;n?h^kf$`H8mb}EIRny|7M*V`LxE2 zKAx73j}Y)gWo4zbr6p~Kgm2$K8`P1+Zb(2v(r0`})!5WTFD7QP<+ppotLK^C%Fd+r zq2nHlbG9Po=|e}i&V8;(EnaovPzXkS9UitG7#M&B1O)U=O&R9!zA!L1AAu}^05sS7 zJ2wT~Nh0j+2bCEK4Xy+e5ry>a5v6G}5)u+su4{@HmzQ1RD++g?}&924In^)|`E_EgU`59w4>of906+f?C1{ zMKUvXb=3-zmXmuxPfx%6^CyPAy*(Hw?tg8xA$Y$+-Afe@A759S-_`Qo9u77(wpxZb znUM3MUZcOCpTzwr@HPbn1&2i&Wps4(_zTgqg_JfbIrU1xXc4z{j5^1;(AimI4x`G~ zWy26uTvDQKY#iyj)~Ax(*xcMbKTlcjykyYq50>0JBaC?E;OS|j#;wBH%;jav z^^FZWAtA#i4naYZwzf7GH#cO6!@LECPc1HOW5bjo{t{V8NC*WDEgN9ZhM+wC!(dsu ze_T#aZ*Nvp6ZzQKn6UqK!vHUraSaBz^q!f|wnsn57+QXhh<*9;B~G%v)!F)F8}?jw zo9cT87CwGheZ7#$!eC)V1v-R7DXeAFSX*0Lqn-kQ&a}n*;b?|LkTmUUY1)n$Dls0% z*~ckcMYA+u4u(?r(U<(rsm=}-utVW4CqK0v7MdP)?E2*B7HDLF#S_3W60|qpNF*pI z*x+?Y4WKW_g#v(5ga3_azGh|&C`kY_9RmaRPUqM0@tfr2A=(fq~a^&nP%FbRhjmwA{kf6h|_%!o@=L{2zBf;z=FbZ!qNs><$Vz-}?Hx za`MK;MpjV~CTJ_RDJoG97T|J@uK&1iSA&IdKtgljRxMMK3f!%*`zDSR0#RkziF|Un zL<8MdBLf2iuycWMSc;Og^y_iQaC!Qav)8Yo+=7C&*;@Nwzkhcpvg&^O{yo>lkC~Yn z^bGN%N34|2TWyd2H90|zBW+f_Sn^6rYha}<1Oy01t*osD#WN@sn~wJOq7pG{$a{MW zgXTN>wIV04pzz}56>#cCE#ACfL|9@XF}T|&bCi^nJiccR!NI|wK7E4J)z!az{VD^b zz}VQB_-tx+HWJX@cG@N2%ZrlI!cRYo`w@^3abZBj%6l)w`L^n!tlt6*+Uy|c69 za`6iekVmonur0f}UrW~*+gD8u2e@HmWMtZS<=nfGxkH_^8VNQwEFgOQzK5-0E8St; zJv}Ixn3&|zoOEutTpO#J%+<@?evNEvYa2x)WuCteh|I;^J*d51 z3I!R-pu#*lE{*{B9kxB-a)zhp@qpxX8W1luQD^9&qN0|Xogo02N7e4``Gq7T5UGE~fbi00 znoA1wqXF#!o(%*JS230vclng_qM@N-kvv;xb~dJs_kzEXT&W;P7|b^|7iVEdh_CqoW!)H^RYT=x=LlUJ!$*0lWDb zL@pqtN^*=WoQ=tvxC|4*(f9qzo;iBxN%QdGLztAm_|WihmD|P>@qk-OYinyBLBaRz zE737AXi$=)*#cg&_H^?np(o~I?+NP-6$FKZN;p=2+lz0}w5Dk*PC zE>waaGUz4!DrP^##l}v!`ukD5l2Fnm1`Q3(efV&Dd&|Pf8B$VGQWI>bPccTBbU_#- z`&V1=>m2v9jQ2M?_A@+Fu5KfX6V(=M6qA~1;-86}vj0nS(ts&0nd8k1PH@?7G?>NA z+Y*<1BItvI8+LqH&{TeS4YT7mS7%N!NFbbUNlHtvU2d-pYHC}*pSlPu9N@9Rr&?a# z;RBEgkI9H#UiNw+LCKXRRyccd{Ri8$)fj~uUs+>ByB&F3pV*W0iE1+{0|PY-t--Sl zwy{y$L`_%#;EP2>1l`fG!Z!L<+r#m3w;!c4K16`jsHMvLD%#&a>0X?j4b5dt9e8&C zu10zjl4SeZ;P7(&(!j4@@Vt?}9szJ}6^*u-NrQ+XJ_JHiBVFev36}dWu$v(>1#H(7 zQ6dU^D5O1IyZpWABafiL^(h5l$&1q|!hgUG0YhWfG!HZ4(4KYz0Qj5@0AOI(NOfA8 z5*v1Vj};~%(cR%YMmT;*x^+>}KmpHwaS4UXY4P=__Pa#|xUIImJ%vVQ8)`&wV1$ZP z9{y`3T{6z)bz804yt+C}cEiiB9KI)ogk)sr56MNJ+WhGV+?=H(XV(6a^FA+c!>Ttj zhlPDEXE)0QS6_ng;J>{6AMXCYeT}+->J_O&FrwQ#C-zPkQ@B%EFo}KOL z>OuyF)%$FZjQt830=cb>krB-P#%q0NCvtDkA^p7UygzQ6k&Z4}g=vGcc0}T51 z?c3|{a13E!OlN1w!MIo&DT78_h#*4#gMd8=a2b`(OOnE3V%=aC5|}mnhCd4FmxDwl z_I?z2yRQ!oV73whkpq$nKd*e}el4O>bwmuM$Q#GGx~#f75^NF217`T2=SNMsoa=>!E04n&I2n1zL5FJHd=GCZ8b^)@;> zq@sd5EiDa#-jZ_nfqRbwsXDV}M#u0lE_gK0?Co_MapRRyvb4fM$WdxikLT*@T3BAL z=;84g*yVD!sQWA&T)OMo-cxa(6O6-_-*_PW$sKh*1VNx^XsVVEdTl{hcQ=Uah7Hd7 zc6N7>pa<-<2R#Q~M~WzWK8FtRKvQ`{q!m*OFgY ztMB<6IE+%lhuEav2^9jl8)$xAAeX&ybaD_R=5-JZGWvss<}hAFAIrR=x;k#TMSBd` zO2{cL#$sY(s;sVllafN#($ccLv61HyrI{fvV{A-LE$;pLA%h|Wz2`K^uLPvI0ec=< z%ikOn^uWYy5agH0(DxrdzH(HQl_k}&>gwnq1IorgLEh#gB_(a#Dw@m8Q%$A^aesw* zYZus$hypnM>Q^T^WUgrkbu2ELU!p~Wl4xr)7ai8Fi3X7{d^}eL6kPD<&;0j^1L%b) zDlw9*tSmR%mY7{|)}YZX_W9%yKlU7MKp&+cW*_zag3xf^w6;pPxw+*I9v>eAs6xTV z$4}bDqY@h!44Vcm&7CKLmZ+ z!4oyaKuasV4TwBm%~x6)0^1#~AhZNK5AcCRR*-t=G_--0pOFwVGBT1lrrv!i^5-D$ z_ry+9TZ<|y)a;xb*Q+x}Jv}|k{n^@IM@OAs;u-YIw^mo*fIgxZ7pF{0O7gz=MF$ec zrWQXyiubMnMAm*bFe4iWlsYV#7GPOKd6AM!TR5#HV4Aq<;_hr;0wXSFEwu^2e<^XG5u*nu!|Ck zN5$qBw7a(U064UZtE>Cw1zQd>!0e*oz&?41gRX(`+u+y?eFy}oxYid<@j>)OvFTFk z&LC)O@zD4(H|M)wXgQxQ(w~h23cgQzK$mapFE!=Ux2vG>NAo`3;le)q(RRfbgzxL> zT6MByy``kA99|w)peG}PWS@L9z1Pgme^DtWBJ$M?$u5AU>E(BA&9|*RR=n>yo+7KN zszy;ukaz5gC4h@rI7slIu@_3haJf9O12g|AH&_0^26Id@Nb2*hj*}A?u*lLfhYTRl z0G?3S$1eUE4Ir5&9ZVKttg3)Je@amg3^2PN1s&hjZES7b?;70;qlg=$|HTTr-N)hq zMSaKgq7v`*T(0jA+%>kyok6|!jf})JdTbL;%+3~j-sqPY@B)cTe!97`(kUz~%mdg=LX@cR@VG^|S)Ki1%xRTZ!VNlDSEdJ=WIhDTrYiO;yKnhCY^t#g`+`#pEqs2d}@ z7Q+gQ9rO%OVI(9>HyshhkxE=SmFINDY!uDLr-h}f@q>js@i5|IA4U|)jJ}f^avh5j z*2bvMQ!{fVbT4Wp$0SEGW-tNI{CC&#{&$vEa=G>i6`W|(X%LHU3u#5jykjS&?UB}Q ugjVpd#8z;?5#lMiXCSZ1FjxM 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 diff --git a/doc/lr1110/html/lr1110__radio_8c__incl.map b/doc/lr1110/html/lr1110__radio_8c__incl.map deleted file mode 100644 index 89c92eb..0000000 --- a/doc/lr1110/html/lr1110__radio_8c__incl.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/doc/lr1110/html/lr1110__radio_8c__incl.md5 b/doc/lr1110/html/lr1110__radio_8c__incl.md5 deleted file mode 100644 index 3b4a8cc..0000000 --- a/doc/lr1110/html/lr1110__radio_8c__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -8a2bd10522fae323ee58ee1084ca9de8 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__radio_8c__incl.png b/doc/lr1110/html/lr1110__radio_8c__incl.png deleted file mode 100644 index 1560d5fee3024ea361731e4f270f231d655d28d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17330 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 - - - - - diff --git a/doc/lr1110/html/lr1110__radio_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__radio_8h__dep__incl.md5 deleted file mode 100644 index fac3883..0000000 --- a/doc/lr1110/html/lr1110__radio_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -8173a0736b28bd5504bc2d3e72da2814 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__radio_8h__dep__incl.png b/doc/lr1110/html/lr1110__radio_8h__dep__incl.png deleted file mode 100644 index 6a784c00d47aabeabe1ccdbf944cd9318e78155c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8956 zcmZvC1yodF+wCBYG$^1TjVO(jARsz)3#fEUhteS;C@CPIv?ASIBFzxeNJ&cwNO#wL z=KKD2*Sc|B3lE1mZ#?gQYVQeFQ;{VixIutGAc*AUkWUbZD~fO*hKB<`v!W&Z;6EG_ zMOh@`68-O6T~;&#!GMrQN@=<$txtLAY3^T0ZvBooj#ieFYQZLT`eSdOog#OkSMo|4 zCH};zL!hF&Hq+|&YLwNqKoe)fM-1y2o8L;E*s%hv&#?3mQl!|}WX6kU7raaSy!UL& z=oa_AA1pE^-CJ^+wm5d2_K{dhieLyy#bbhNfJNrT3SJOg-89jx=qGe>oMdnc7Z@S&zvNlD4`QnTP36hjp4bQuz^bj<%}#-ELu%83E5 zPY>cn3G1rgTuOKzZiG!v>S+X;2neoIldCWAYBMp_nZA-j3gRaRF!N)sjufCarfM({ z{PBc=B=jSz-WgAVdlH4`XPW%ocmCpwx@~;8@3h!BJUq-WvAYm!cq3g;xhNEKX-I3^0DMrkCr0M%u-TPwsv<>t)WzrA3yq5J1sHs^7emQ zJzLI7=JnjOJUThKf|&L>wNr}Y#Q?)u4rNF7nwOQ8m3Z!3x3ssTdU}Y88ZLf}dn-?r znYI%X-Vng^$02Gakv#J~KRsmTTb#c+wdoWt7L*&!t*^<5s!LiP3%BZfM;m95)92IU5JkVoRviZ~(^W4Wc_vy9O+ zm2VGcQGwsxHgD;aTc#u|E-YZ{>guwvvVQhT(f{FmM^8_W6l~WXL2qN*!(JyY=DMcV zvpSeXB4j@q)Y5_!up6gDIBv~IIsfa&xOM9m!uQSjs-gSI-W`d{GpC_K{hNP$PPwjg z>AWkdKT-IcZ#ixOTWKsdMtw|32no9>Y_dLHVL6gdLry{Q@@UIgt2Eu}`2AI?xnF6r z&r3|OSB7%@M@OHZ9WN#S8!1TC85@^d2K4L~-wgkW6+lSiH&UQ`^Ni^#;`sO&fxyMZ ztym5Z56|@&pR9Jm-QM1g6ZaB=J6ht49&H#2sfEF%Z7&AxAJY zpX1C!L|?#+i02;rVoze=$^I&8dis_|mWs5F&JFv??

H@Je%q&F}skjoUvLUOm^= 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 C)nBOq diff --git a/doc/lr1110/html/lr1110__radio_8h__incl.map b/doc/lr1110/html/lr1110__radio_8h__incl.map deleted file mode 100644 index 8bfa4b5..0000000 --- a/doc/lr1110/html/lr1110__radio_8h__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/doc/lr1110/html/lr1110__radio_8h__incl.md5 b/doc/lr1110/html/lr1110__radio_8h__incl.md5 deleted file mode 100644 index 839b00d..0000000 --- a/doc/lr1110/html/lr1110__radio_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -2f090684cd51e955330a21724283aa3a \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__radio_8h__incl.png b/doc/lr1110/html/lr1110__radio_8h__incl.png deleted file mode 100644 index a52c882568c6ac439f4ce88eea09259b3cf91362..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10754 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 diff --git a/doc/lr1110/html/lr1110__radio_8h_source.html b/doc/lr1110/html/lr1110__radio_8h_source.html deleted file mode 100644 index 9887df2..0000000 --- a/doc/lr1110/html/lr1110__radio_8h_source.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_radio.h Source File - - - - - - - - - -

-
-
-
lr1110_radio.h
-
-
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_RADIO_H
-
36 #define LR1110_RADIO_H
-
37 
-
38 #ifdef __cplusplus
-
39 extern "C" {
-
40 #endif
-
41 
-
42 /*
-
43  * -----------------------------------------------------------------------------
-
44  * --- DEPENDENCIES ------------------------------------------------------------
-
45  */
-
46 
-
47 #include "lr1110_radio_types.h"
-
48 #include "lr1110_types.h"
-
49 
-
50 /*
-
51  * -----------------------------------------------------------------------------
-
52  * --- PUBLIC MACROS -----------------------------------------------------------
-
53  */
-
54 
-
55 /*
-
56  * -----------------------------------------------------------------------------
-
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
-
58  */
-
59 
-
63 #define LR1110_RADIO_GFSK_SYNC_WORD_LENGTH 8
-
64 
-
68 #define LR11110_RADIO_GFSK_SYNC_WORD_DEFAULT \
-
69  { \
-
70  0x97, 0x23, 0x52, 0x25, 0x56, 0x53, 0x65, 0x64 \
-
71  }
-
72 
-
73 /*
-
74  * -----------------------------------------------------------------------------
-
75  * --- PUBLIC TYPES ------------------------------------------------------------
-
76  */
-
77 
-
78 /*
-
79  * -----------------------------------------------------------------------------
-
80  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
-
81  */
-
82 
-
92 lr1110_status_t lr1110_radio_reset_stats( const void* context );
-
93 
- -
108 
- -
123 
-
134 lr1110_status_t lr1110_radio_get_pkt_type( const void* context, lr1110_radio_pkt_type_t* pkt_type );
-
135 
- -
146  lr1110_radio_rx_buffer_status_t* rx_buffer_status );
-
147 
- -
159 
- -
171 
-
182 lr1110_status_t lr1110_radio_get_rssi_inst( const void* context, int8_t* rssi_in_dbm );
-
183 
- -
196  const uint8_t gfsk_sync_word[LR1110_RADIO_GFSK_SYNC_WORD_LENGTH] );
-
197 
-
206 lr1110_status_t lr1110_radio_set_lora_sync_word( const void* context, const uint8_t sync_word );
-
207 
- -
222  const lr1110_radio_lora_network_type_t network_type );
-
223 
-
241 lr1110_status_t lr1110_radio_set_rx( const void* context, const uint32_t timeout_in_ms );
-
242 
-
274 lr1110_status_t lr1110_radio_set_rx_with_timeout_in_rtc_step( const void* context, const uint32_t timeout_in_rtc_step );
-
275 
-
293 lr1110_status_t lr1110_radio_set_tx( const void* context, const uint32_t timeout_in_ms );
-
294 
-
319 lr1110_status_t lr1110_radio_set_tx_with_timeout_in_rtc_step( const void* context, const uint32_t timeout_in_rtc_step );
-
320 
-
331 lr1110_status_t lr1110_radio_set_rf_freq( const void* context, const uint32_t freq_in_hz );
-
332 
-
357 lr1110_status_t lr1110_radio_auto_tx_rx( const void* context, const uint32_t delay,
-
358  const lr1110_radio_intermediary_mode_t intermediary_mode,
-
359  const uint32_t timeout );
-
360 
-
369 lr1110_status_t lr1110_radio_set_cad_params( const void* context, const lr1110_radio_cad_params_t* cad_params );
-
370 
-
381 lr1110_status_t lr1110_radio_set_pkt_type( const void* context, const lr1110_radio_pkt_type_t pkt_type );
-
382 
- -
396  const lr1110_radio_mod_params_gfsk_t* mod_params );
-
397 
- -
411  const lr1110_radio_mod_params_lora_t* mod_params );
-
412 
- -
426  const lr1110_radio_pkt_params_gfsk_t* pkt_params );
-
427 
- -
441  const lr1110_radio_pkt_params_lora_t* pkt_params );
-
442 
-
462 lr1110_status_t lr1110_radio_set_tx_params( const void* context, const int8_t pwr_in_dbm,
-
463  const lr1110_radio_ramp_time_t ramp_time );
-
464 
-
476 lr1110_status_t lr1110_radio_set_pkt_address( const void* context, const uint8_t node_address,
-
477  const uint8_t broadcast_address );
-
478 
- -
490  const lr1110_radio_fallback_modes_t fallback_mode );
-
491 
-
518 lr1110_status_t lr1110_radio_set_rx_duty_cycle( const void* context, const uint32_t rx_period_in_ms,
-
519  const uint32_t sleep_period_in_ms,
- -
521 
- -
549  const uint32_t rx_period_in_rtc_step,
-
550  const uint32_t sleep_period_in_rtc_step,
- -
552 
-
563 lr1110_status_t lr1110_radio_set_pa_cfg( const void* context, const lr1110_radio_pa_cfg_t* pa_cfg );
-
564 
-
577 lr1110_status_t lr1110_radio_stop_timeout_on_preamble( const void* context, const bool stop_timeout_on_preamble );
-
578 
-
591 lr1110_status_t lr1110_radio_set_cad( const void* context );
-
592 
-
604 lr1110_status_t lr1110_radio_set_tx_cw( const void* context );
-
605 
- -
614 
-
624 lr1110_status_t lr1110_radio_set_lora_sync_timeout( const void* context, const uint8_t nb_symbol );
-
625 
-
635 lr1110_status_t lr1110_radio_set_gfsk_crc_params( const void* context, const uint32_t seed, const uint32_t polynomial );
-
636 
-
645 lr1110_status_t lr1110_radio_set_gfsk_whitening_seed( const void* context, const uint16_t seed );
-
646 
-
655 lr1110_status_t lr1110_radio_cfg_rx_boosted( const void* context, const bool enable_boost_mode );
-
656 
- -
666 
- -
678  const lr1110_radio_mod_params_lora_t* mod_p );
-
679 
- -
688 
- -
698  const lr1110_radio_mod_params_lora_t* mod_p );
-
699 
- -
711 
- -
721  const lr1110_radio_mod_params_gfsk_t* mod_p );
-
722 
-
730 uint32_t lr1110_radio_convert_time_in_ms_to_rtc_step( uint32_t time_in_ms );
-
731 
-
745 lr1110_status_t lr1110_radio_get_lora_rx_info( const void* context, bool* is_crc_present, lr1110_radio_lora_cr_t* cr );
-
746 
-
747 #ifdef __cplusplus
-
748 }
-
749 #endif
-
750 
-
751 #endif // LR1110_RADIO_H
-
752 
-
753 /* --- EOF ------------------------------------------------------------------ */
-
-
lr1110_status_t lr1110_radio_set_gfsk_mod_params(const void *context, const lr1110_radio_mod_params_gfsk_t *mod_params)
Set the modulation parameters for GFSK packets.
Definition: lr1110_radio.c:470
-
lr1110_radio_lora_cr_t
LoRa Coding Rate configurations.
Definition: lr1110_radio_types.h:173
-
lr1110_status_t lr1110_radio_get_gfsk_pkt_status(const void *context, lr1110_radio_pkt_status_gfsk_t *pkt_status)
Get the status of last GFSK received packet.
Definition: lr1110_radio.c:252
-
lr1110_radio_fallback_modes_t
Chip mode after successfull transmission or reception.
Definition: lr1110_radio_types.h:98
-
uint32_t lr1110_radio_get_lora_time_on_air_in_ms(const lr1110_radio_pkt_params_lora_t *pkt_p, const lr1110_radio_mod_params_lora_t *mod_p)
Get the time on air in ms for LoRa transmission.
Definition: lr1110_radio.c:949
-
lr1110_status_t lr1110_radio_get_lora_stats(const void *context, lr1110_radio_stats_lora_t *stats)
Get the internal statistics of the LoRa received packets.
Definition: lr1110_radio.c:190
-
LoRa packet statistic structure.
Definition: lr1110_radio_types.h:447
-
lr1110_status_t lr1110_radio_set_lora_public_network(const void *context, const lr1110_radio_lora_network_type_t network_type)
Set the LoRa modem sync word to private / public.
Definition: lr1110_radio.c:359
-
Packet parameter configuration for LoRa packets.
Definition: lr1110_radio_types.h:495
-
Radio driver types for LR1110.
-
lr1110_status_t lr1110_radio_set_gfsk_pkt_params(const void *context, const lr1110_radio_pkt_params_gfsk_t *pkt_params)
Set the packet parameters for GFSK packets.
Definition: lr1110_radio.c:508
-
lr1110_radio_ramp_time_t
Ramping time for PA.
Definition: lr1110_radio_types.h:110
-
lr1110_status_t lr1110_radio_get_gfsk_stats(const void *context, lr1110_radio_stats_gfsk_t *stats)
Get the internal statistics of the GFSK received packets.
Definition: lr1110_radio.c:169
-
lr1110_status_t lr1110_radio_set_rx_with_timeout_in_rtc_step(const void *context, const uint32_t timeout_in_rtc_step)
Start RX operations.
Definition: lr1110_radio.c:378
-
uint32_t lr1110_radio_get_lora_time_on_air_numerator(const lr1110_radio_pkt_params_lora_t *pkt_p, const lr1110_radio_mod_params_lora_t *mod_p)
Compute the numerator for LoRa time-on-air computation.
Definition: lr1110_radio.c:820
-
Status of received packet.
Definition: lr1110_radio_types.h:417
-
lr1110_status_t lr1110_radio_set_tx_infinite_preamble(const void *context)
Set the device into Tx continuous preamble (modulated signal).
Definition: lr1110_radio.c:662
-
lr1110_radio_intermediary_mode_t
Values for intermediary mode.
Definition: lr1110_radio_types.h:188
-
lr1110_status_t lr1110_radio_set_gfsk_whitening_seed(const void *context, const uint16_t seed)
Configure the whitening seed used in GFSK packet.
Definition: lr1110_radio.c:703
-
lr1110_status_t lr1110_radio_get_rssi_inst(const void *context, int8_t *rssi_in_dbm)
Get the instantaneous RSSI.
Definition: lr1110_radio.c:300
-
lr1110_status_t lr1110_radio_set_rx_tx_fallback_mode(const void *context, const lr1110_radio_fallback_modes_t fallback_mode)
Alter the chip mode after successfull transmission or reception operation.
Definition: lr1110_radio.c:571
-
lr1110_status_t lr1110_radio_set_tx(const void *context, const uint32_t timeout_in_ms)
Start TX operations.
Definition: lr1110_radio.c:391
-
lr1110_status_t lr1110_radio_get_gfsk_rx_bandwidth(uint32_t bw_in_hz, lr1110_radio_gfsk_bw_t *bw_parameter)
Gets the radio bw parameter for a given bandwidth in Hz.
Definition: lr1110_radio.c:726
-
lr1110_status_t lr1110_radio_get_rx_buffer_status(const void *context, lr1110_radio_rx_buffer_status_t *rx_buffer_status)
Get the length of last received packet, and the offset in the RX internal buffer of the first byte of...
Definition: lr1110_radio.c:231
-
lr1110_status_t lr1110_radio_set_pa_cfg(const void *context, const lr1110_radio_pa_cfg_t *pa_cfg)
Set the Power Amplifier configuration.
Definition: lr1110_radio.c:616
-
lr1110_status_t lr1110_radio_auto_tx_rx(const void *context, const uint32_t delay, const lr1110_radio_intermediary_mode_t intermediary_mode, const uint32_t timeout)
Configure automatic TX after RX or automatic RX after TX.
Definition: lr1110_radio.c:423
-
lr1110_radio_pkt_type_t
Packet type values.
Definition: lr1110_radio_types.h:288
-
lr1110_status_t lr1110_radio_set_rx_duty_cycle_with_timings_in_rtc_step(const void *context, const uint32_t rx_period_in_rtc_step, const uint32_t sleep_period_in_rtc_step, const lr1110_radio_rx_duty_cycle_mode_t mode)
Configure and start a Rx Duty Cycle operation.
Definition: lr1110_radio.c:595
-
lr1110_status_t lr1110_radio_get_lora_pkt_status(const void *context, lr1110_radio_pkt_status_lora_t *pkt_status)
Get the status of last LoRa received packet.
Definition: lr1110_radio.c:279
-
lr1110_radio_lora_bw_t
LoRa Bandwidth configurations.
Definition: lr1110_radio_types.h:157
-
lr1110_status_t lr1110_radio_set_rx(const void *context, const uint32_t timeout_in_ms)
Start RX operations.
Definition: lr1110_radio.c:371
-
Channel Activity Detection parameters.
Definition: lr1110_radio_types.h:385
-
lr1110_status_t lr1110_radio_set_lora_mod_params(const void *context, const lr1110_radio_mod_params_lora_t *mod_params)
Set the modulation parameters for LoRa packets.
Definition: lr1110_radio.c:492
-
#define LR1110_RADIO_GFSK_SYNC_WORD_LENGTH
Length in byte of the GFSK sync word.
Definition: lr1110_radio.h:63
-
lr1110_status_t lr1110_radio_cfg_rx_boosted(const void *context, const bool enable_boost_mode)
Configure the boost mode in reception.
Definition: lr1110_radio.c:715
-
lr1110_status_t lr1110_radio_set_gfsk_crc_params(const void *context, const uint32_t seed, const uint32_t polynomial)
Configure the seed and the polynomial used to compute CRC in GFSK packet.
Definition: lr1110_radio.c:685
-
lr1110_radio_gfsk_bw_t
GFSK Bandwidth configurations.
Definition: lr1110_radio_types.h:316
-
lr1110_status_t lr1110_radio_set_pkt_address(const void *context, const uint8_t node_address, const uint8_t broadcast_address)
Sets the Node and Broadcast address used for GFSK.
Definition: lr1110_radio.c:558
-
lr1110_status_t lr1110_radio_get_pkt_type(const void *context, lr1110_radio_pkt_type_t *pkt_type)
Get the packet type currently configured.
Definition: lr1110_radio.c:212
-
uint32_t lr1110_radio_get_gfsk_time_on_air_numerator(const lr1110_radio_pkt_params_gfsk_t *pkt_p)
Compute the numerator for GFSK time-on-air computation.
Definition: lr1110_radio.c:958
-
lr1110_status_t lr1110_radio_set_rf_freq(const void *context, const uint32_t freq_in_hz)
Set the frequency for future radio operations.
Definition: lr1110_radio.c:409
-
lr1110_status_t lr1110_radio_set_tx_cw(const void *context)
Set the device into Tx continuous wave (RF tone).
Definition: lr1110_radio.c:652
-
lr1110_status_t lr1110_radio_set_tx_params(const void *context, const int8_t pwr_in_dbm, const lr1110_radio_ramp_time_t ramp_time)
Set the parameters for TX power and power amplifier ramp time.
Definition: lr1110_radio.c:545
-
Configuration of Power Amplifier.
Definition: lr1110_radio_types.h:519
-
Packet parameter configuration for GFSK packets.
Definition: lr1110_radio_types.h:480
-
lr1110_status_t lr1110_radio_set_rx_duty_cycle(const void *context, const uint32_t rx_period_in_ms, const uint32_t sleep_period_in_ms, const lr1110_radio_rx_duty_cycle_mode_t mode)
Configure and start a Rx Duty Cycle operation.
Definition: lr1110_radio.c:584
-
lr1110_status_t lr1110_radio_get_lora_rx_info(const void *context, bool *is_crc_present, lr1110_radio_lora_cr_t *cr)
Get the information from the last received LoRa packet header (if LR1110_RADIO_LORA_PKT_EXPLICIT) or ...
Definition: lr1110_radio.c:983
-
Type definitions for LR1110.
-
lr1110_status_t lr1110_radio_set_cad(const void *context)
Start the CAD mode.
Definition: lr1110_radio.c:642
-
lr1110_status_t lr1110_radio_stop_timeout_on_preamble(const void *context, const bool stop_timeout_on_preamble)
Define on which event the Rx timeout shall be stopped.
Definition: lr1110_radio.c:630
-
lr1110_status_t lr1110_radio_set_lora_pkt_params(const void *context, const lr1110_radio_pkt_params_lora_t *pkt_params)
Set the packet parameters for LoRa packets.
Definition: lr1110_radio.c:528
-
uint32_t lr1110_radio_get_lora_bw_in_hz(lr1110_radio_lora_bw_t bw)
Get the actual value in Hertz of a given LoRa bandwidth.
Definition: lr1110_radio.c:911
-
Length and offset of received packet.
Definition: lr1110_radio_types.h:427
-
lr1110_status_t lr1110_radio_set_tx_with_timeout_in_rtc_step(const void *context, const uint32_t timeout_in_rtc_step)
Start TX operations.
Definition: lr1110_radio.c:398
-
enum lr1110_status_e lr1110_status_t
LR1110 status.
-
lr1110_status_t lr1110_radio_reset_stats(const void *context)
Reset internal statistics of the received packets.
Definition: lr1110_radio.c:159
-
lr1110_status_t lr1110_radio_set_pkt_type(const void *context, const lr1110_radio_pkt_type_t pkt_type)
Set the packet type.
Definition: lr1110_radio.c:459
-
lr1110_status_t lr1110_radio_set_lora_sync_timeout(const void *context, const uint8_t nb_symbol)
Configure the LoRa modem to issue a RX timeout after an exact number of symbols given in parameter if...
Definition: lr1110_radio.c:673
-
lr1110_status_t lr1110_radio_set_cad_params(const void *context, const lr1110_radio_cad_params_t *cad_params)
Set Channel Activity Detection configuration.
Definition: lr1110_radio.c:442
-
GFSK packet statistic structure.
Definition: lr1110_radio_types.h:437
-
Modulation configuration for LoRa packet.
Definition: lr1110_radio_types.h:469
-
lr1110_radio_rx_duty_cycle_mode_t
RX Duty Cycle Modes.
Definition: lr1110_radio_types.h:307
-
Status of GFSK received packet.
Definition: lr1110_radio_types.h:399
-
uint32_t lr1110_radio_convert_time_in_ms_to_rtc_step(uint32_t time_in_ms)
Get the number of RTC steps for a given time in millisecond.
Definition: lr1110_radio.c:978
-
uint32_t lr1110_radio_get_gfsk_time_on_air_in_ms(const lr1110_radio_pkt_params_gfsk_t *pkt_p, const lr1110_radio_mod_params_gfsk_t *mod_p)
Get the time on air in ms for GFSK transmission.
Definition: lr1110_radio.c:968
-
lr1110_status_t lr1110_radio_set_lora_sync_word(const void *context, const uint8_t sync_word)
Set the LoRa modem sync word.
Definition: lr1110_radio.c:348
-
Modulation configuration for GFSK packet.
Definition: lr1110_radio_types.h:458
-
lr1110_status_t lr1110_radio_set_gfsk_sync_word(const void *context, const uint8_t gfsk_sync_word[LR1110_RADIO_GFSK_SYNC_WORD_LENGTH])
Set the GFSK modem sync word.
Definition: lr1110_radio.c:319
-
lr1110_radio_lora_network_type_t
LoRa network type configuration.
Definition: lr1110_radio_types.h:133
- - - - diff --git a/doc/lr1110/html/lr1110__radio__timings_8c__incl.map b/doc/lr1110/html/lr1110__radio__timings_8c__incl.map deleted file mode 100644 index 0d7b947..0000000 --- a/doc/lr1110/html/lr1110__radio__timings_8c__incl.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/doc/lr1110/html/lr1110__radio__timings_8c__incl.md5 b/doc/lr1110/html/lr1110__radio__timings_8c__incl.md5 deleted file mode 100644 index de316ed..0000000 --- a/doc/lr1110/html/lr1110__radio__timings_8c__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -af7eb1a72832ad69f39a0865942d1464 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__radio__timings_8c__incl.png b/doc/lr1110/html/lr1110__radio__timings_8c__incl.png deleted file mode 100644 index 7da0be7291fb4b2586b1d4f32aef3e5386737d0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13769 zcmb8Wby!tF+b_K7Zlt@B?k?#Kf|PV4At~J{ARy8uu?3`*PLXcu?pEpUhBH1V-s}6$ z`_EZk!o}XR*3>;S_b*n|D>X$dbTV`Z1cIfkB&P|1z$t+LgsAY~lesfgL+}gPLPb#y z^7QZDmzJU=2!sZrEGMJwoprG6Lz8^-1UVk%OY@8WXtYu6I4M*7RlcPDL$q9Cc^&14 zWoX&LNZG-}g0|+orpm_l+=7#Q<{0I7*<1^L%mImBqc*9Whhbe3^G`OL8KZj@8F4m} zqjw@JIa@d4qg!V*@F5Us-1o$Yr3k?^N{MDrS={pW*%U>sGZN!CnN|cDEx0u-++6T`r@dWRnuST>PC9d zNYIad*T(BeevQuUn2h3ZlA0cHcWL~?1r8!jgX^^Xb9&EJ5*GCLSAzX)d0lPoM>2u8 z8v`jnfBv-SB_bzhv&K3=L`Hr*pH!EP#D3P6$jKDHrSrUDO~b&Vv#X1bmpAa?LYHSS zDKU|km-q5;IWsxAd)=kpY59527r%ni($cD`@qq#8LJG_1^AsBI$r0l^tfK^PL~-rV3YE`myRF0Q40tN@bI{pH4Tal zq~taWj*f=DdskKb;Ji0eCMqhbtgJjdJbZvH>1e5ISUS0?S3OuCT zxXIema&Tt5{N595;eCHfYfxMz( z5NNWzynKVx@(Zn>%jbKu70$M{bB%6AIXNcQ)|-<>>V2Om*-F3u!8dP(KBE*rA&N;$ zn;pxQWvn}cgM9w{83G|ABkRNm16x~}k3%i_cWdhjbQ?5SK|w(!mHo!T!N9=aPj76K z@5S?fVPe!4xV*ef2?1g0ado)-;RC9ytSspFo59qSw6wN>yLw9@bJsaOF6m( zIl7YX-?dl>+1S2=A|6=+N&Q13BPLCr2f=U%`~m_J;^JfeM6V~_js&jWAs{pN9jsgSecz1a)n8r0aI_m7;;O^=Q58)=k zgapUMsV}m!J%7&5&c2{?vDOi`-WB=%KbP}dB`qgsd3pKB#Dwciss46`GLcG?ip+^d$y95=U90Z}x}%Wq)1yS@Fi{~??DqDSgM*{4uFm## zzTHjFoI)&_eC{h(SJ%Upmc8BGZ+Us}kZllhp)|ytMqe~bD1#>IzwPfkC@LzR*W~}_ zlBQ8oSI5D?5c4{uFvxVd4Scvgxw!`ePeM-KP*&;4Xgs7s=UWSX2g&gs%-)$SVrFJ0 zCMFKLzdix8HZwDmSAP5PxEqyv`eL&T zCN@^kY3WC{nAgOPyI|(S?(}yoazPj2EYG%$6K@uzPu3E8Hk=jcr zl$Vc>K#&X$LPt-po+I99J^UH0!HmpI6hy@M{=c45_n_K~i;MA1esc0muukgiXJ6~; zW~Qe*EYvE$d|CFVd8WcN=zM!zz<#DuuN16N6cm((vaj~(rJC}Q?RYOVSXo&E0|QA( zN%c_ZW-Tl&SqY)9Ug2)0D3LETYU0%(EI=r@-tPtta$CKev>H#Kc|6b z-oIlBS`H-}-FGy(xGGAtiY|XrMO`hu?}m$;zb7t-2#2HG1jEsDE zczCusEDK8}oX+GG7A856M1vHUl}Wg)wg2ghgM;KN#$jV&O;1ehx)&NYI0Zc1UVyE_ z^I$>1>R0^S++6(yA`;U4!U71@-Qi3j@Ip|ltn zZmVl92{Sb^YJM|FL{Fa|MZg@&>8FM6xYDezqaz?GnbY^@V5!j!EJzU4`|bm=>I)1eA= zbxc4&U}(4~ zpB5t6g%^hoCe%Nm^YQViXN&5*emyfW0S_S&bRfCbbcPZp^)ui{but%^bAmlm$Jf`l z1yxy?3q2f!FrD~L!7COA!KOXfmzL@|2Tu==Ibbp-kI1d8 z24BjW8A9Iq!D1R1x+7Qv*5dg1J1|D?-o2w&{Dg^tVSnZPVopeF0q-}Os+~`_bqx}H zNJIp3hHBu+@9^V?sO6oPcDA;{7Tq6KgPvLn3nTii4#74sl+I&Jk#~2#qot`C`ZySm zZ)y1_S2nV@ySo;{Q2S~~!tb)wpbq`Rb|!0!@CjUDtvEP)S0@Tof^Ig5y}YjG=JafA zY}R4mwC=X3f`^9(tG-AzV`67?Jn++Mz|}G+3Z|c&lyttQ`TpVIXtho1%|PaFz(8Gn6dd1bO*ZAGZ7WMl{==UI9v>eo zOxvhLT)&=&cB9NSo=R1^6$~x41qFdBh`CIi6k6cmsXlxiCqY`94x zai~+LY+GL`au>Wo|L&BS?loFlQ*#HFQ+{3^IDxXWvP4@Rkd+Zt?J_#QWio6o^Ob1t z_QsO)U`qS6Z}R*n`2y>lyMPu|_kZSln^mI@E6t>PxC~)~1@TH{)iAC|S=uC?^oni} z9OjfSxH^&_<4Q{GnuK1kvV=gAleYu!i{IKC$}kL^E2B~2_}u?6U2Wyq+=MYakWuJQ z&dw5_AuZ^IsK>3N$Mu=Eh~6wU_Pu+Dv9uI1C>fk71mn_AT-y}1SZ!^z;?=l>ljbfs z3F}%9k6!fEh>J8*w4MDY{5wnj)%NHww+8M83O%0vP4<4qAa zE$w!u^FkaJo#kjw%1E}~+`s?}Ev=H47Sf_wGM1{HxLK6}F_+}!xt*Qn1iqLUUuhQ{ zBsetGHRwrLYf`dEjbnOz=dZ*>d~$p8YwzLVG7REgV!~vYXx&tAq14R!y}Ab8OPXKX zBR4c1g{oli2oa0al5E=Ym$_}dz{D)(v*~U2pYJ!bi?;%KvC_r{thxEpt+Bc75uKd- zi;!&4Kw^FUZ3f?9+wH*E;$3?Z^HCKx%9a_FEoWkaj2aeZ#S6B#uclItrCmEjSXe0p z%&j$b2S;08ENtJ;;M!@Uf?3PVqNCIKYz}8DO6BaLUr|^tTvPJ zSLkIc?dsr2pNRf@bLPrb@$hiBS5Sz&xBJ$NQY|i_zk6=3os>_3(}?8hYSl+CGEDv0 zM~sm0UKP|S-+ubv^!F;Pin#TfQR1zDamBnkN*jU& zxu4sfQS3lhbSF@CuNZ8niwMX57a_VV+r&a zEQDDO)$#FB|BBxeC(Ty|wxGpULT#k z%NpWIM{+8c-<8STK?8Z){qH*ODuS6RGX(4`8m9D#(-$qmz@!doGoIR)W`e)NgHVm6g#1`SxNw zgrgA)`7hsxIa5nEo9$|2BCn>Zdw2}P!6|N^#}%m${vlCy#VF+O6{avz`UPunYU%bo zcD$LI>Ncs}jthF?P=^{=*o#5-TnG`$skpU;%gUAtRMeMRA5OcYXwpY1?QDy)gz*qj z)VA@wlY22^rhnRwSJ{k0lM+)G<~wBLl{y#x{qx7|m7TK} z2!pS)6>OX){;&1*k2dOH{SFYw-;I=;8%i?qAEp++@i{njN)fur75hS1Svzp3TeF3Z zTrBCyA;;GzcQ@qJ){hb4Ul|yCg?W~p{T?)flQ4pJ^t-f~l}H5bVy z?>{cyTqfLOHY%0qs-)VwLcV^~#pO=6v*#SRsGbKuCnh>Oo^z{$(Epe%_H=lzLqdVg zB?W8sKB1;`u9e2uFkBS3pLskzHCR8eQ#C9mD#+{ zw~c*oF*16;@(11>+-3@?LPVYM@lmhG$7fS^*+FC>?k{+RD>*zt2tpz7aO2||I5@ET z?Qtd{Az}CgZHMJukAsDQok>OfD5X9E#t;ZUe=UWWCvnmoH=JQ}PfD8Z<{{OxrvO;0 zoVsRj7q;$>vJns{*PH0A@=N#s^e4@uq3LsQWO;gh1%v~Y)Cx$r2@%4&l8Mq_tGQWO z7My7)5Sk{VtJC0)EiomauCFKQmVJ)) zaIc1F8L-DuwPZ_5AVZ|-@NWEDGZ#OMjYZAO6zcUA?Ef%&+!*vh!CB#C`I7%+Gd<0U zL*=kPiSmT=H(J$BG&?6do8yly;mG3yS9Hvt5<_=Khgm10tb~M-#Hroex1yf=dOU3X z{r#+LY)MMuEw3~uT<$z?&bDBP@N2to`2$4Dd*8ddyYut#*qJ`Zr4r^G<%cz}kCtb&GUL|KrOlq6Pu%vHP8K6%PX zNSKU6W)(a;Q!!s-qw?)J$d9L{w3Vl4?Ca`=1q2K^IP3tXBF!^+d)z2C&|7KVs}~8m z2>$fxCvP(r!AjcyX1VB`pnzoQ?(0)wAS?yc4GpTMv2m;iji!~QWm0SojiaSyjd>TcuCDI$6jATvHIN8@0l;Jfz((7-yQ?E&lg6Iz?)1z|dyun> zh)DQM+yol}j7Q0qtUl04ulyE4`MUMI%CZj-17g-gBy<|Q2$IuNQ^{#*abyDM529AT zZ~=MK+}zv|Cf^#{=!m%;WI+{|27?{#?b(}~^LQN^L4sj0>R1K9m4I^%_hNNnc2-wb z_74aQaVqDIP^6HMkTfpSL-zqbn-Rii&%z@j03T2}i8cb0f&qFCw7RmgvOkG=G=q;> zN~*1}uy=mm=k#xXw&c`1@CzjG=3Nnh%R)g$&U?uP0DEC!VNXvFm}ij3ZzqFH-lWCX zLqQ=TJA1jtW>gI(>1c1iIE*e|COgEs{)wRki(#GM2*e7YS(F{Y+6xGffJhtO1yy8@ zkB`e>G*KfYC{c*G{*8VHw)tjM2n#1?tKSts6zs7IHMO+>yV~?Y!3Bswx8pS#dU|>- zt;zKCbT-{`Zjz5H9P)a4>Dk%Yg@v2k&$s!5(dV` z62iji{Z@h3$GOGD+bb=8V1j06XB#Rj0q#W+Wz0}5e8r;u9OV7e9UbPQITFjIm0p8% zVBEXQhod)XL_|c}C?KK%Tc{`}H@CRRWzsCnRdGhUBldc(=}iI_<5B`c zT?j+g1in<-cy}z$#ge%B`-RSX~VQL?I?}*yt9R3b#fOIZ;u{ zT3Q52{c_A~tgJhFQ6(j;X@dZJ%eN6ddzKrXXAPxMdhq;GRrL?6L+XOt(~ToO3@@$hq9Gp}e^GL)ZGTx43%=97IM&CW+}~qKP=V z;)*8&t0N6-p}W7ocqmOyPL4PgPK){nDsx{0DpJy&y*;sazvVD6Fwny%9!y}?*49m4 zN0(PuMVcibw$3jvi5^)+L>d7tJ~1)T)n)m3f0O+vE+V3@rRCQB0S}NQfK6jo&)K&y zv7aez^u74@`7_zVZw^Lq41m4@@_VxIr7Zb03t@CjObj4+0OM0$4tnnng+>=Lm9Km) z(iTg+mctH-PfYy1wS^+4J5UB{9?BG|h%vOcc=7b+!z!z$=7sbD4QgUm*8bk!VmXCp zxi$l+fB}C8NE3jB(QoqPFriKj?#_kGPEfY^U19G?Pf3_l4C&fVd{r(fDM3KSJU%{l z@$gt~@~RlJj#Wu_er5OSSAK0q1}T#+qTaAB;5^ks)wN{)*BAVVGI{@{gurY4Z~bC` z*r0i%@rjbbF_BD1ii6`NnHYZ5l&-8LL(D~Uold!5Ntf-boD1)eWD%(M@5FHhqv}rRsubv_&~)3 zct+x9GT-C~4y#1%SFZw3|F%p`MFRNu_=vq4ur*Zyv&wl0ef95A>dosK26SVYnkOeu zOD%T`0|VP>rp*EV`{M$b%0#Mm2|#h81GyM6r?`l}@Y%uQw|9S#vxV^(=8J@LJ;7KY z0u{mcsg;R`hna^ba&W`PXP!!|-g}G&p){;h3JgH*u;npawTZMd)VSqyMNttc;otLR zuMttvT`-#L|3)+K#S2`-Liek8!p-)xj}op7XD5HI=oQirm&N)92S3S$3KdwP7uG7F zh87pcuhqGGO-=FVh`2q?Rh91UMwDnpIxp~dt*lV&eMu%%-6?M$(KFT7)bzObo+;4+ z#Ekjn{`g>;Iydh`hbT({ver+wO1@MU|JJpY79r5|cy>6Djd zP%k9U-reHmF*-D~)s9R}SENFBU2UEI<8DJ#N`t>~Qip;<4V}62e~CbS#U&bRQ9{@L zwh2eAZlSUQCbc63$IRAauX>YeaMkhztG3)iO z$a;J7Vf1IR#==6pJr*lOY>rSI?t-Q~Ohr54TGSEnC3>r2Gq~XgB51pJfG;K}VF^lv z)_85V=gKF;fkvzqE+T_R`TQ%5t@f|<05WJZ;m<{d%v|}}HSjmWzrRl?MO|$17*Vut z`O3vm6!|+k_SKn#Qh(hoz}*B7u;GhUE~1Gb_@>>otvAzPE1)ot^KxyD6yRxY+-m zA^A(b+^?BX)=?p!|>yA%7p@rG?Ly&IXUY5@b&-63<- z5fAlOca*FZg?iDPgVWnxS>4&?z`)42_L&6ut%C#6nCPw%H%nS3CZ2Ssq_%Ir35(&R zz7zi)rnqxiTKX{plZTzXbnQ&4i9rU}>f9E?(UDb<3MHqyP#pC_Ey;&H-T1_$&E-p?S-b5xVU=5oDFQ!V2 z2ndXEaP~eCfcg3wqQv0sGtbCm?Izq@zp?G;Uz&%H;y|@07Z5P`0gv3ku<>BvXmypQ zV5AFxK8C-e-*um!p&|lolg9PLa+#|O z96TT>N@{BO`1q&Hx!;B}TJgTS+}DUsAB7awvcSPvYH3lUwE>KWgF|jNRNR^);B}bL z+^lJyNs*!Y@l&gl)z_rd%MWsNh=?DJYk&23%juH2MM5B`p+leFcm-p}p6i zu3ZX`momH7hqFrJfpC`N?Pb0MNY|F{MCGtdAzd8Gx9s!!+ByQ)w^Ywr&Fh=u>2Y!C z>9dhAdOLFEt^RBb;t((&;sMcDnu~eM2J;UdN^=yWrr8(zgzME3;#h^cYTiVL2lrcM z_0iRsn8htVNU)MzbMyX-7fhZ0sj;-OAK5wVY)AQdGx+^3SxV`5CBPPSa}x^>frG^N z%i-YI_j}5-KezDpmixzTG#fd`bgffMQ+f_}k4#+HU8y$-7oZO}a&H&qR5MY;wC zes#W}-gEKA0ZS4dzW4OT-@_w1EUe(`?$8M5>80e@+}woxfA|9#BO@kI~>g43Zf`%t=0k=rFn8q~t>J{l;%v`Adx&UH9jze$VE++@Xc#-dvV_YI#6G zm!H`)qByA6b#}7Y`1|+o=BB8yuoCBUk#L&!_AkmW%O3ccTPCOE%1gD2#`PHR<5V}3 z`u*{v)ag#f_?Z%}Pq|$H!?FNW6vo5}^aj}Z!Qkz+hECOKxIZv&dl4fuS<+=KSeoXC`%Yr|29Rr&)YR0})w!NOx2TzS+Z;-;7>gh3 zc=$?el{_IRC_J{txdMBiOkJi2S^1-Ss+bqA`Od-LK*Ae``79AP zDo}&%I31!41qH?L-@hYps5$TVKnAVEFae;=`0-4cA<&WK3N#%Z9gmiqBGo46=18ch zB+c3(l$4YJN4r}?xdv2BxZHdY(I1J-0$DnQlOOL-p4>({8q zjXYr77NP!k!MM}}t%uTqR+E^Y%UT1nk{n&tADkxrPxS^MZctUG zrl$ebA>T7;hiSxl1#l?>3brZ~`a%T|1VDoZ)Q-Nkww1Fp4g{d5w++IaoSXn{1I%4e zP(Z+>>f+^fWFav(KTjzYNb#^VHYQ!5SyNp-Rsq1sXHk!D+~UT@%Rr$At{EV`YnEs; zC9&e70)V}=v;;8b?(XjEG6MnEze-ebx_Wv_OiAEoJ@(gXY9m0P7c*XYe7FO0TN_Y> z!1x1oZ*vH?ml3J3By3jC@K-PEH0BxCQ(Xz)u0-HV+RE zkcj~%T8;wPgO8h=o0Ah8(r#TtfREq$^ys&4n#N%$7dH#ny9~7=;7=ifm^nCntiQ#L>IQxe5GcTM0Q7HBI=ar46(EB40Bo5( zqVj_V7=|DaqL}Gn8Xg9mJ7q)kh8C-|3H+eUDggAVs!qBhamFjSOj{kCoa*Zjt$r+h z;?aKn`u6V5dFe+&huQJX{r0vkXBq~OrFa0vW5JuTZNObx~3Mz$^otDnLA6PKt zVn(;@?d`Q#l0iU%2G%YCKg`mPce%N_fS3U7OGrqd3z(0% z!2u}yA1#uWMw~g^>T|aF(_=3>I$D?lJFZWb7zKh$NXT!OnAIANBP+4+uMg%)6DKDp zsG;7zzNg;e=Y&X(UE6j(R#smtDvr9N2sqf;SqP!Pcq4?s&BwRc;@8mDCY1s;ZgeeZ zXlOWA2k;eGhX6hXd>x3l1Yip)<3)I%bQQfKRD6r;~`RR(;gjYoQS3$Au468+;J6Wl3YE3Ce)J~Dl40Pu-FnuJqlG1qV0G~ zTdbJOSx{kocXhtAL@DNviTP73(e28|Z*e%C$8}?1Qbz|1zk(w4r);ApIAz`qe@g3st7~b=f8!(L>$LznDY;-47i&m%EsefbYEj=xb4eEO8)u~t zd*5`l-f%a~ygsb8YfDmkA4A;L({_XI>Ik}#m z9v(pwXQs#tTqvui?`%0+g{dxuI0?%j!sZtlWFQgmFM9ns`Qyc#$%?oxRdBS*^$*np z#Lv!t{ziPSCnnp-2stu>Nl>u*jkvv%-MVQl%{Z{(;q1nM*fCTn15JCoKZM zvrUX@nAq1Wmz)Wp4KGY|&bKu6b&)GUS6e?fdEMoRruglEZ6*t@lT^IuywNT0>2`0& zx$Wj3*GdCO|=w`6BWAxL`Q5 zwg67)^i=)sYBXuILlgybY_Zm^H&?ddXqgRcEU2)*@7j*)#Jtc6@T)!d(;Y4HVm#RC zkPts+3l592vzL^YlkVx!P;{z8gYM_fyKssMUy`qHya9zwD=i~&V54y#g1Z=`6C+{C z3aepZ>tPnlk*z*kryKs)o0LkwT@ojX)HY07vw&yGh%$Sn8Ab7OEz^sJwWI4L`?-Yh z*;ZUq5{k-Cv{oOKMC9<*q#s6swzhdu%CHZpRV!iie#gUN@%$`$P~F!vb!_tuM+!1< z4{IIL&z|8k(MHKmWqNswOHv4u>{24B*x|&jHaIqQuOE+9;0NJ++V}83!_I!}AGCk! z2y3Xs!qj{fojg%t!ZR>vk3%_-&da!av4?K=uSp9nK3n_qiUdsi{^#4vvE-vw*jSoM z(eBm0cb6*oQSBS2G11?c)IX7lPW`B_zuBLEC4W@@q1A_(pMPgVMZw952LcaiZ}OTh zC=dXi4RcD$uV#chEZI4ap?w4p$PXi`$S%ME@^OzT5J-=clGxhY##2kO1+pfPyM6{@&VJ#ld03na0Jw zb=EPQdAvlv%M-4=Q(8JJPE}z{n>J`~YsO{b@31kz_wr@55W0=IdC%W|4IZ8y_>kbf zKMfBAuu-6T(>tKP|Kg;Xo($}*j8Rj{)RrOA(lj*cuvFfRXrb!a@4A?x5BbGy^|daC zt6T|h#Bs4f<5rt*^8V1qNK4})>i-zqxxGl)+^nW5H1y}Q{x~#r-w!N3A!EuI)ETNn zL;j3+#WdlCB&-jcFB!u$7R%#RnKVn@GOHsyE^f-_vS>~Q7&0;a+!`tS@G(n)0slky zC_Vt+#%<;8!-%*{g!Bb`ye4>2uxt-{Ae5P9WZX=4N4?gQXJlo-r)9AEZ5kAQu~#HZ z7f>%B9rJx)(7X-17zNzryyQKy^)%}%$AJIKsxy^?4;Y9P^36r08?5FRuzv*j#TIQT zAT8NVKX2aMeMN+aO`u?oN90Njwk7jKRcBV3Pbl2DC%&MXj6Pgm`J*T($Li=-G7mmS}7ls<+NMzohwD-X%JrH>{Gr~#RUhl+ap5o-od2K`SBEpEE% zW(+YG_s2plsmF9D+u}xt42~3N!iv%P#YH4GR9dacwufRwEQ2 z4dH;vKh6>IO31^tyQVrZU-0k1z^!~t@6F9T^kM*{y(*Q0!0q@v<$1!l($e<7{rQ@j zIc7gJcK7xen*wP{b{Pr)nA`t@8?KO#MJ@Si!L0;HCT5O6s|wwVS3pQecwp2afA5Fx z!ht38>Z;@ayu?5klMJL0Y22?rf09AW{v+wK1ZHDnV}s<4a*$D{&B(3^zUTem1wtKC z+yuJ9)Dti23uX3#gM$NrEEse$@pm`ThlYo-(9si>bZ|L4^1)jSP-jh1CZ^t{B_mnc zuKxZV0MQ`9B5s@F0Dp|<$)kn}3kyRa|6g3{un24OKI!c5kAfBe`E;ep3x~ssHv@p3 zf^l15ip2ma!u5&e?1nK5JG;AwM}cMuNS<5Y{ZZf|dbQB49|BOVql1H>!`zsYx!CLJ zPxlqnO6;M6&)L|(dku)jz);SR)DNH`I}sZ*vkh?m+cp9@5_pcolSD*Bfamagb#--d z@voH?s(;paMqJd=vNDjagS!Fb^E_NqF3<$}pEQjN$QQl5xWL81kL6y``vmYM$jUjHaNUsV zja@V_7R$fY`&I@1tkIP|&F^D1*3`_)%}s#8R?C|YoPg|(2*Ev^-`Ux5)Dq?8)x7>r zD;q%}=?`*t63Fr8fnn`2@OmOa{I8E?v>U$+CWGPQx+RtP3J_j-ni9=oG7+dpWk-#; zelPiO=N1^m^nCq)JA$14_IwAZ^1$ld6GObUvEh*w@gHRpl{&h%w$|ZJ7Xu@v9=7A| ztFKQQB?k=OvKT1X6hMJxVb_ zD%t{`Zz^%`H86zx`~MIKppG7OQ~r;t*p`~?FF3TZ*x(!vQ-MNN!S(WGqmh%{PEduf zY@7ywws`}7cr`|NZb*R|i{EJ8O#X2U0)}gky&0e%z7qz_Zl6Wf80~vZEUdG$vqmFM zNc;bdhaBxc#KbhYZK;7*9kjIxv(>InPXVI*@07%dyn)4V!hdjPf`R9CsA^Ojd|R=j zj`a8p4nrYTQSE=D(-ks7%s>F?R+#8$X~`Pu19k$4%m6HaS0gq@VXO5K{|y@1KL7v0 z83xg+V%HwVNA&wVPaPR(K@u%)a%IgOKtFJhL^AjeV3;TuEsj>UyFy1o;`&MRzYVJY zXD$C1I{43PL@8>>5Ax0v&r@!1eU)RIu^?Y2cM>V(NemqX$@g%-P+hYZ0K7PE)0m8v z0!`6|{&7b7R$RR1oa?e*Q`8519`675dr80=`-DQZc - - - diff --git a/doc/lr1110/html/lr1110__radio__timings_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__radio__timings_8h__dep__incl.md5 deleted file mode 100644 index e9489ec..0000000 --- a/doc/lr1110/html/lr1110__radio__timings_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -635fbec4b69607adc5c7451c9b44949a \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__radio__timings_8h__dep__incl.png b/doc/lr1110/html/lr1110__radio__timings_8h__dep__incl.png deleted file mode 100644 index 620c5f5d11e7ae71d6aa66d78b5b435fb0b9b022..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6123 zcmc(jg;$i{y2nR41*98+AA*Do-AK2fpmYt5BHbX}skAgmN=Qfwk|Rn<4>Qu8(j9km z?mB0k`xo3r%*$HuX5PK$dA{H8=ZVsKrbLKGg9m{?2vwBjUx3$E@DqoF1%Cgn!$*P_ zESQ>-JmmK7E3d622?C+aQ<0a^@ygoC_SVr+Lc(*c=hB$CKfi%D^>pCS^yDc^JRly- z%V6*Bc^>h+ko`VS-&wv)FL7AYifybqEGv;9FO-B{(4MK#+?g_pITKGn9BuSBv%u+P zcQ?I{W4-R%>!A(T^>RbUHpeMB_Zi0#1-3qQJ!dVRhB|PphZqo9svg z_StfhX7UPAP@cfS!9ikTB2zO~R{Xwh zZUQc@t~IZxc#6hLii#cz3sZ7%a44&($vHYcX>gpY;=P?v(9j@kGU96?9`<+Zht{uO2>Cdg;q>hSmPNgy}~ z3PluLiy^roR@C=|3+y@Gc?m9~q||K6q?s$Fpr(cokEd5lYi?@l`2CwWB_)MVx^xHC z*!}Alo}HcD`tB};cqYz|yM460ovhFo@jK&v{P;1i&yg*pquF(Beq{wyTwEN|QIh*E zdTlt@Vy@l)OMQJ$v#7+&ny(IXG~IgoOI~`@1U*8+qL~b?%`){4RzjV;3n9Q&5EClCrU1 z%b^8URq;Rq%gV~0HfLl|8$XI_X%Pb_zvLKjNn24-F+V>axYC~%L-&ZA!PV7OJyVF# zW;h2EqD2;VxHinf%8JnuV~9w5VhV@H(V9Ct5|NUURv0xupu3Mv#3+@FP_nUk#311X zVPs@n-`ted)FfhKW8>xJ?Ks zTF(19a$v~1F2%|qG>Ay~Om4xYnVB(%cW`i!mya(vC57C0b$*`7C9A?KI3(nKdU_(|Rj8}0o55hg;9&jESJFU# z1V%()Q*h}$4Oqc%bhNb%jE|2;=!H6{$r{47Op@6=oVT7@nVXvjk+3M{)z>FWP5WG( zL4ACDFnXBo8yXr)_?{5#?CjLfWA}(s>F=xONKj*8VX?EbcYxy~p`yZ(laqr4W@ppu zaZ%LP)q(%?a3tJ`@va^Z4-4lm&(AxDhl$7(78ZMB^jbZ*Yin!Q-(fX2*44=c1W0dg zZqBc-vyY~Iaqzx+&Q{GAe!%yps%|(_m}p~TqqL%;2S|a_*`B$VkIyfoEm0AX`9a~i zo}25-k=fb!iwhsW;|X24-P~T-Lw0tYN18c30k@Z?KDg-L(jS&+WQKqG#5z7XSx{1f zT~t&QnUJ95=vb}i>nFviTWwO5Mn6?;s$_5fScLBW#l^+%xw!;To`v7Po4)ZC%8V=1 zE`goy&Uk_2XlZG2x;U~UBO{AMOp=*+5UeOzO-&DHiH3lFzPJYMdk-=_Jq@bbZ{;E~ z63408sHdkV54^3EloX=DA=9Yc0o6eG^XJdV$jH2Ecyem$eNp)7tS=F0ASZWsa*+|V zz@{bxVXEn%*x98 z;(!vOqNP2UNe%)x11|Vq*!ojGBm>o15{r zLV4YQC}N3lm@{J^Cuplt!r6XAXJLF7A6#I#fR;9@87>~a#{#(nepPFdg5W8 zoZa#n=aRMUY=!EiKRv&oZ+wQF^A!^p7s21Q(;V5I&wOoOA~M#%T7GY47#q=ShT&6c z>FME6#DoE9V+L&)a50vaAO8pir`l_SDx`y!~tu|4)-MI)vBi7n!_*Lg$}9 zM&*vEMn@%meQK%8ZGOL#X&Wlxw{&2atT1Ulz6VKc8nSkF9KZVep)SkHJ#hHq?o4an zz<|7`r!X2iIteMM+z+Oq@Z4NRRaMo!`A+n2C&<^4@$tn;-wX^460@?@=hQz6J2Kp7 zkWii*c%Lf96%S+`e8`bIYDpvZHRuI)rRbtl*VoseXys*P(dg*t_I6wUq9s1b_TN0Td-G8ynCu75i2oVZq%Ckz5u%&gTbKtgNgZ)6>-0L=2x?e|*2W zcnutoNlc7pc6JsA2Pe^X>FWGYSy?$SGm{o*{GBdTRB(OK;{xjf2d!DSxd|m0G?}cu zUqnQVrm+{ zrKLEPm6dog<~LX8RQ%Qiv2k%w-;+0cUJ?~1Z8WQ^t4=O1U7u8vv`kERCg9kNet|U> zKe~V?{QZ6_g+!r7kVw4y5h1`7D~wwyUcGwtrLmDRQa@+h-1~CWt^S=gx0>mQmMER=8CYD*2BZ{kIg!AUSV&m78xB`|2qifA(a`}34-Y>YlSj9b zl$3NqQS}9HZ*0hb1^~}zZfB=5g+ih5uedqg^=8`z=qo8N=c|Vr8ickHHR!mwxak6R z55SGi2g@o~SBJy@+CDg}km0q$va+a~l0_$xdT#yF#e8i2SSl!*1OpL0J$?Orm_=%e zn1qqmtu1?EP7Z?>8K$9f&fl5$s7z~q^k(K3Y{i#6SjkB=9C3-j~ygUW~P z{%Ho4pPV69QJF|)iuFQAC$y(WK1@5}i6OUBcQ z792T11xVt^TZ>Cp?OOsu_D@dW?f#dbHwZu)I=j47Yg-mG8quqH?PFh6d?`$YkB|Rm zrsd_#+tO@v_h3~f<&b~Jy`V^A!sKLu&nQeq*>~KUy+5EOtY$_kWo(MwOlC7dRngvIyctis)j}yhgsUpg$8xTq_9Mcg`*l@k8hLI zF~M|6uCK|SWicH!^n$Ovx1k}|zY9mD9A z>#1U{t#gz$HPy|lsH~*L#3Z*ri1a3|`5ZWFB6V~9*KmD@+z+N=YD%fEZ^=>kI1=&l zsfh`Pn79I?^6t*c(s-HS`o_a4)XRG$t#~5d2Utf(J%7u(mX4W)PursE!$INIh6Y(|A}yPVRbd*+HhK4-C+h^+rQSVF8`#3 zd~(E}LS4%4VXT0A<&mh?{r)FJtT%p3w|RYpY~)WLbS5inYBJK$U<8aTE%y3GCJf8U zbl&17Z*6XN{QPNk4M3><+)b(IwDpP;!oU&i2XD;avD6^|qQ0UgFQCb8+5YU`u1`?oBZW#UVnUA|MT|~Ny!5(`rx$0p zv9Z|%0;6MWOixZnr;dq%(YKPs3yPEsQr_HrUWDZQFgp6;*W_gC;^DdKS4ktdR`fgm zWWG9IZ*Oyu34m<`HaCmj99IW$6w=;nzdBHR^QVa_a^k^dP_L{%1A!PA8g?!?@p>Ovwt#1M z=7mB#v&B6v8%&#=9s*a@dj32pD~pa!+(Uht%5Gm?UVa|r!zTYrA!DGZPz(%=j)@6! z$QQ4DSaMn#%abQW6B83u;vQUGU0opaJ^7jdR)>a%7gSUb&5FxiKi|AbZHBTsyCaAec6Q=G-ncmXH+MvNYMG{hA~-ug=ji_i0nCI6(K9f> zOE%QkA94S1mtsLy9zh^*gfa<%)dK$?_$a70FJiZ^XK1)|eLD9;c+M~6`tmfSfZY%H zhqAgl#vb$B`VYncjEL@_kPvi;8AzgE8XDk^-><^~Wk>H6R#p;%`1%7p=E&$Mh%o4S zdU_pweK_sy?SKSR)-BxK1)pV$g&iEY#4j!BUk_XEVH*?Kv9+Y7QjWy>23Dvn6;OFpZJS$Kh60~lLeyC3)!UK)kG}`u;o$+5cb5&=qaSz; zW{c~>7)3=z(T>4fpck;H)A8m@3@j|z#nHwcx1wf2WdIrgObfdvZ{WUvhi245Q`5Rt zMp2T!C-Xzu;^l$5aJ86=~@repqtAuvr1 z4S@Y!f0|u8*A6$T4})5hs|^?_DI2&Vw`b$03jAX;uV~ncoA=e0MLj0qm~NDU#p^$Q@08j zM3hu#Hq-(OP&6?e9l`6@ueWDfDS?dg^7ALH58t&9s8D7QM|O92o1B-htcS8VV1_0F z-UKT_3eSU^zoBz{AXC|Y$+^cAacznDiX!?xE2+F_FUc69+=YTh|{Pwed|oY#&Cc zI9=8n{Y7&$#x&mido1*!dOT*F7&^TLSyajC=2WVt*IN*jqN5Y$VtWhC`Vgbwr^jh3F z0QP3r|MO-JkQo#T1#lh#P#;W+5()~KKYjWHjte(6HC3m-e1-g?$RE1w8P`2FmISc6@ZI&XZh3XJW?ofw zbwZ2xA)6o=uRP}Fj^jB!JuSK8dqE+g7k~|u6A}_SLTI{(pkR6uf`^Nn59s!#v9ZQr zmS__A^L@XxqodbaQg9o{3knK82fZ|&%%Q!W z&M4vabYp8v8}w4XmjuI0Ev=^xh%YiQ^~2S{!ddS%`b{taDnufYr7TMETA)i^{29uh zBD-k~o}2)ESCzb*@{MxKW@w>-VD8g`yEwKN5Jc`cBFQ|(#)`6uk%?eb4jJjhE!L$#E& zv=|9@_l?niS}MxRqxl2{i=tyIG z2w#hBG7@6)B_7z@+2I0nAfupwfrE0p)*AB$x(fBbaJyqV5F|>$+!p!uH3?{CUtiyh z8w3hf*wmDMW222-sFVO7FVn8E9;B&(_N&sz$HsojMSe&XsvsobtZ8j&xtovR5D`U$ zg<*ne>v~BT7L~o2qmPf+z`(%Xq@iOc3PlU%O(O5Env8DVAnS3#j4cdI#QIp=%2_2P z>4BH*?d^4BiMsAZNMGH9n3uRons;UJ+pq(Lac|8h`;?vcLA;cJ z39JL-sdPzSp*!uRrTu&~g9f<77;gK&+>x$dXZ?_$pA>ij4k4j}nHkfI7ca(lQh$vg zGK|NxT?J>pcOnpoQp+S34J8X34>Xw(;u=yabQ19(=-ov~52?<9cs7QEJksRwK`+n7 v+A$7>gMwueE1G$_tdI&bFZTb*yJrD=^tsL?eTM~LdJj=icqU&ZYZm-Jyo;w1 diff --git a/doc/lr1110/html/lr1110__radio__timings_8h__incl.map b/doc/lr1110/html/lr1110__radio__timings_8h__incl.map deleted file mode 100644 index 05ae456..0000000 --- a/doc/lr1110/html/lr1110__radio__timings_8h__incl.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/doc/lr1110/html/lr1110__radio__timings_8h__incl.md5 b/doc/lr1110/html/lr1110__radio__timings_8h__incl.md5 deleted file mode 100644 index bc288b1..0000000 --- a/doc/lr1110/html/lr1110__radio__timings_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -783534514fb311c7881953bf6e9d205d \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__radio__timings_8h__incl.png b/doc/lr1110/html/lr1110__radio__timings_8h__incl.png deleted file mode 100644 index 035a1028696d59de429134c72f2da46f94879d3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8658 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 - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_radio_types.h File Reference - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
lr1110_radio_types.h File Reference
-
-
- -

Radio driver types for LR1110. -More...

-
#include <stdbool.h>
-#include <stdint.h>
-
-Include dependency graph for lr1110_radio_types.h:
-
-
- - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Data Structures

struct  lr1110_radio_cad_params_s
 Channel Activity Detection parameters. More...
 
struct  lr1110_radio_pkt_status_gfsk_s
 Status of GFSK received packet. More...
 
struct  lr1110_radio_pkt_status_lora_s
 Status of received packet. More...
 
struct  lr1110_radio_rx_buffer_status_s
 Length and offset of received packet. More...
 
struct  lr1110_radio_stats_gfsk_s
 GFSK packet statistic structure. More...
 
struct  lr1110_radio_stats_lora_s
 LoRa packet statistic structure. More...
 
struct  lr1110_radio_mod_params_gfsk_s
 Modulation configuration for GFSK packet. More...
 
struct  lr1110_radio_mod_params_lora_s
 Modulation configuration for LoRa packet. More...
 
struct  lr1110_radio_pkt_params_gfsk_s
 Packet parameter configuration for GFSK packets. More...
 
struct  lr1110_radio_pkt_params_lora_s
 Packet parameter configuration for LoRa packets. More...
 
struct  lr1110_radio_pa_cfg_s
 Configuration of Power Amplifier. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

typedef struct lr1110_radio_cad_params_s lr1110_radio_cad_params_t
 Channel Activity Detection parameters. More...
 
-typedef struct lr1110_radio_pkt_status_gfsk_s lr1110_radio_pkt_status_gfsk_t
 Status of GFSK received packet.
 
-typedef struct lr1110_radio_pkt_status_lora_s lr1110_radio_pkt_status_lora_t
 Status of received packet.
 
-typedef struct lr1110_radio_rx_buffer_status_s lr1110_radio_rx_buffer_status_t
 Length and offset of received packet.
 
-typedef struct lr1110_radio_stats_gfsk_s lr1110_radio_stats_gfsk_t
 GFSK packet statistic structure.
 
-typedef struct lr1110_radio_stats_lora_s lr1110_radio_stats_lora_t
 LoRa packet statistic structure.
 
-typedef struct lr1110_radio_mod_params_gfsk_s lr1110_radio_mod_params_gfsk_t
 Modulation configuration for GFSK packet.
 
-typedef struct lr1110_radio_mod_params_lora_s lr1110_radio_mod_params_lora_t
 Modulation configuration for LoRa packet.
 
-typedef struct lr1110_radio_pkt_params_gfsk_s lr1110_radio_pkt_params_gfsk_t
 Packet parameter configuration for GFSK packets.
 
-typedef struct lr1110_radio_pkt_params_lora_s lr1110_radio_pkt_params_lora_t
 Packet parameter configuration for LoRa packets.
 
typedef struct lr1110_radio_pa_cfg_s lr1110_radio_pa_cfg_t
 Configuration of Power Amplifier. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Enumerations

enum  lr1110_radio_pa_selection_t { LR1110_RADIO_PA_SEL_LP = 0x00, -LR1110_RADIO_PA_SEL_HP = 0x01, -LR1110_RADIO_PA_SEL_HF = 0x02 - }
 Power Amplifier Selection values. More...
 
enum  lr1110_radio_gfsk_address_filtering_t { LR1110_RADIO_GFSK_ADDRESS_FILTERING_DISABLE = 0x00, -LR1110_RADIO_GFSK_ADDRESS_FILTERING_NODE_ADDRESS = 0x01, -LR1110_RADIO_GFSK_ADDRESS_FILTERING_NODE_AND_BROADCAST_ADDRESSES - }
 GFSK Address Filtering configurations. More...
 
enum  lr1110_radio_fallback_modes_t { LR1110_RADIO_FALLBACK_STDBY_RC = 0x01, -LR1110_RADIO_FALLBACK_STDBY_XOSC = 0x02, -LR1110_RADIO_FALLBACK_FS = 0x03 - }
 Chip mode after successfull transmission or reception. More...
 
enum  lr1110_radio_ramp_time_t {
-  LR1110_RADIO_RAMP_16_US = 0x00, -LR1110_RADIO_RAMP_32_US = 0x01, -LR1110_RADIO_RAMP_48_US = 0x02, -LR1110_RADIO_RAMP_64_US = 0x03, -
-  LR1110_RADIO_RAMP_80_US = 0x04, -LR1110_RADIO_RAMP_96_US = 0x05, -LR1110_RADIO_RAMP_112_US = 0x06, -LR1110_RADIO_RAMP_128_US = 0x07, -
-  LR1110_RADIO_RAMP_144_US = 0x08, -LR1110_RADIO_RAMP_160_US = 0x09, -LR1110_RADIO_RAMP_176_US = 0x0A, -LR1110_RADIO_RAMP_192_US = 0x0B, -
-  LR1110_RADIO_RAMP_208_US = 0x0C, -LR1110_RADIO_RAMP_240_US = 0x0D, -LR1110_RADIO_RAMP_272_US = 0x0E, -LR1110_RADIO_RAMP_304_US = 0x0F -
- }
 Ramping time for PA. More...
 
enum  lr1110_radio_lora_network_type_t { LR1110_RADIO_LORA_NETWORK_PRIVATE = 0x00, -LR1110_RADIO_LORA_NETWORK_PUBLIC = 0x01 - }
 LoRa network type configuration. More...
 
enum  lr1110_radio_lora_sf_t {
-  LR1110_RADIO_LORA_SF5 = 0x05, -LR1110_RADIO_LORA_SF6 = 0x06, -LR1110_RADIO_LORA_SF7 = 0x07, -LR1110_RADIO_LORA_SF8 = 0x08, -
-  LR1110_RADIO_LORA_SF9 = 0x09, -LR1110_RADIO_LORA_SF10 = 0x0A, -LR1110_RADIO_LORA_SF11 = 0x0B, -LR1110_RADIO_LORA_SF12 = 0x0C -
- }
 LoRa Spreading Factor configurations. More...
 
enum  lr1110_radio_lora_bw_t {
-  LR1110_RADIO_LORA_BW_10 = 0x08, -LR1110_RADIO_LORA_BW_15 = 0x01, -LR1110_RADIO_LORA_BW_20 = 0x09, -LR1110_RADIO_LORA_BW_31 = 0x02, -
-  LR1110_RADIO_LORA_BW_41 = 0x0A, -LR1110_RADIO_LORA_BW_62 = 0x03, -LR1110_RADIO_LORA_BW_125 = 0x04, -LR1110_RADIO_LORA_BW_250 = 0x05, -
-  LR1110_RADIO_LORA_BW_500 = 0x06 -
- }
 LoRa Bandwidth configurations. More...
 
enum  lr1110_radio_lora_cr_t {
-  LR1110_RADIO_LORA_NO_CR = 0x00, -LR1110_RADIO_LORA_CR_4_5 = 0x01, -LR1110_RADIO_LORA_CR_4_6 = 0x02, -LR1110_RADIO_LORA_CR_4_7 = 0x03, -
-  LR1110_RADIO_LORA_CR_4_8 = 0x04, -LR1110_RADIO_LORA_CR_LI_4_5 = 0x05, -LR1110_RADIO_LORA_CR_LI_4_6 = 0x06, -LR1110_RADIO_LORA_CR_LI_4_8 = 0x07 -
- }
 LoRa Coding Rate configurations. More...
 
enum  lr1110_radio_intermediary_mode_t { LR1110_RADIO_MODE_SLEEP = 0x00, -LR1110_RADIO_MODE_STANDBY_RC = 0x01, -LR1110_RADIO_MODE_STANDBY_XOSC = 0x02, -LR1110_RADIO_MODE_FS = 0x03 - }
 Values for intermediary mode. More...
 
enum  lr1110_radio_gfsk_crc_type_t {
-  LR1110_RADIO_GFSK_CRC_OFF = 0x01, -LR1110_RADIO_GFSK_CRC_1_BYTE = 0x00, -LR1110_RADIO_GFSK_CRC_2_BYTES = 0x02, -LR1110_RADIO_GFSK_CRC_1_BYTE_INV = 0x04, -
-  LR1110_RADIO_GFSK_CRC_2_BYTES_INV = 0x06 -
- }
 GFSK Cyclic Redundancy Check configurations. More...
 
enum  lr1110_radio_gfsk_dc_free_t { LR1110_RADIO_GFSK_DC_FREE_OFF = 0x00, -LR1110_RADIO_GFSK_DC_FREE_WHITENING = 0x01 - }
 GFSK Scrambling configurations. More...
 
enum  lr1110_radio_gfsk_pkt_len_modes_t { LR1110_RADIO_GFSK_PKT_FIX_LEN = 0x00, -LR1110_RADIO_GFSK_PKT_VAR_LEN = 0x01 - }
 GFSK Header Type configurations. More...
 
enum  lr1110_radio_gfsk_preamble_detector_t {
-  LR1110_RADIO_GFSK_PREAMBLE_DETECTOR_OFF = 0x00, -LR1110_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_8BITS = 0x04, -LR1110_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_16BITS = 0x05, -LR1110_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_24BITS = 0x06, -
-  LR1110_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_32BITS = 0x07 -
- }
 GFSK Preamble Detector Length configurations. More...
 
enum  lr1110_radio_lora_crc_t { LR1110_RADIO_LORA_CRC_OFF = 0x00, -LR1110_RADIO_LORA_CRC_ON = 0x01 - }
 LoRa Cyclic Redundancy Check configurations. More...
 
enum  lr1110_radio_lora_pkt_len_modes_t { LR1110_RADIO_LORA_PKT_EXPLICIT = 0x00, -LR1110_RADIO_LORA_PKT_IMPLICIT = 0x01 - }
 LoRa Header type configurations. More...
 
enum  lr1110_radio_lora_iq_t { LR1110_RADIO_LORA_IQ_STANDARD = 0x00, -LR1110_RADIO_LORA_IQ_INVERTED = 0x01 - }
 LoRa IQ mode configurations. More...
 
enum  lr1110_radio_pkt_type_t { LR1110_RADIO_PKT_NONE = 0x00, -LR1110_RADIO_PKT_TYPE_GFSK = 0x01, -LR1110_RADIO_PKT_TYPE_LORA = 0x02 - }
 Packet type values. More...
 
enum  lr1110_radio_pa_reg_supply_t { LR1110_RADIO_PA_REG_SUPPLY_VREG = 0x00, -LR1110_RADIO_PA_REG_SUPPLY_VBAT = 0x01 - }
 Select power amplifier supply source. More...
 
enum  lr1110_radio_rx_duty_cycle_mode_t { LR1110_RADIO_RX_DUTY_CYCLE_MODE_RX = 0x00, -LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD = 0x01 - }
 RX Duty Cycle Modes. More...
 
enum  lr1110_radio_gfsk_bw_t {
-  LR1110_RADIO_GFSK_BW_4800 = 0x1F, -LR1110_RADIO_GFSK_BW_5800 = 0x17, -LR1110_RADIO_GFSK_BW_7300 = 0x0F, -LR1110_RADIO_GFSK_BW_9700 = 0x1E, -
-  LR1110_RADIO_GFSK_BW_11700 = 0x16, -LR1110_RADIO_GFSK_BW_14600 = 0x0E, -LR1110_RADIO_GFSK_BW_19500 = 0x1D, -LR1110_RADIO_GFSK_BW_23400 = 0x15, -
-  LR1110_RADIO_GFSK_BW_29300 = 0x0D, -LR1110_RADIO_GFSK_BW_39000 = 0x1C, -LR1110_RADIO_GFSK_BW_46900 = 0x14, -LR1110_RADIO_GFSK_BW_58600 = 0x0C, -
-  LR1110_RADIO_GFSK_BW_78200 = 0x1B, -LR1110_RADIO_GFSK_BW_93800 = 0x13, -LR1110_RADIO_GFSK_BW_117300 = 0x0B, -LR1110_RADIO_GFSK_BW_156200 = 0x1A, -
-  LR1110_RADIO_GFSK_BW_187200 = 0x12, -LR1110_RADIO_GFSK_BW_234300 = 0x0A, -LR1110_RADIO_GFSK_BW_312000 = 0x19, -LR1110_RADIO_GFSK_BW_373600 = 0x11, -
-  LR1110_RADIO_GFSK_BW_467000 = 0x09 -
- }
 GFSK Bandwidth configurations. More...
 
enum  lr1110_radio_cad_exit_mode_t { LR1110_RADIO_CAD_EXIT_MODE_STANDBYRC = 0x00, -LR1110_RADIO_CAD_EXIT_MODE_RX = 0x01, -LR1110_RADIO_CAD_EXIT_MODE_TX = 0x10 - }
 Possible automatic actions when Channel Activity Detection operations terminate. More...
 
enum  lr1110_radio_gfsk_pulse_shape_t {
-  LR1110_RADIO_GFSK_PULSE_SHAPE_OFF = 0x00, -LR1110_RADIO_GFSK_PULSE_SHAPE_BT_03 = 0x08, -LR1110_RADIO_GFSK_PULSE_SHAPE_BT_05 = 0x09, -LR1110_RADIO_GFSK_PULSE_SHAPE_BT_07 = 0x0A, -
-  LR1110_RADIO_GFSK_PULSE_SHAPE_BT_1 = 0x0B -
- }
 Pulse shape configurations. More...
 
-

Detailed Description

-

Radio driver types for LR1110.

-

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

-

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    -
  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • -
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • -
  • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  • -
-

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-

Typedef Documentation

- -

◆ lr1110_radio_cad_params_t

- -
-
- -

Channel Activity Detection parameters.

-

Parameters detPeak and detMin are to be used for tuning the sensitivity of Channel Activity Detection. It depends on Spreading Factor, Bandwidth and symbolNum.

-

For detPeak, the 5 MSBits are encoding the integer part, the 3 LSBits are encoding 1/8 of the decimal part. For instance, $detPeak = 50$ (= 0x32) leads to a ratio being $6 + 2 * 1/8 = 6.25$.

-

detMin is unit free and represents the ratio between the minimal power of a correlation peak and measurement gain that can be considered as a peak detection. It helps to avoid detection on noise. Authorized values a from 0 to 181.

- -
-
- -

◆ lr1110_radio_pa_cfg_t

- -
-
- - - - -
typedef struct lr1110_radio_pa_cfg_s lr1110_radio_pa_cfg_t
-
- -

Configuration of Power Amplifier.

-

pa_duty_cycle controls the duty cycle of Power Amplifier according to: $ dutycycle = 0.2 + 0.04 \times pa_duty_cycle $ It can be used to adapt the TX multi-band operation using a single-matching network.

-

The allowed duty cycle values for LPA are from 0.2 to 0.48 (by step of 0.04). Therefore possible values for pa_duty_cycle go from 0 to 7.

-

The allowed duty cycle values for HPA go from 0.2 to 0.36 (by step of 0.04). Therefore in this case, the possible values for pa_duty_cycle go from 0 to 4.

-

pa_hp_sel controls the number of slices for HPA according to: $ \#slices = pa_hp_sel + 1 $

- -
-
-

Enumeration Type Documentation

- -

◆ lr1110_radio_pa_selection_t

- -
-
- - - - -
enum lr1110_radio_pa_selection_t
-
- -

Power Amplifier Selection values.

-
    -
  • Low-power Power Amplifier can reach up to 14dBm
  • -
  • High-power Power Amplifier can reach up to 22 dBm
  • -
- - - - -
Enumerator
LR1110_RADIO_PA_SEL_LP 

Low-power Power Amplifier.

-
LR1110_RADIO_PA_SEL_HP 

High-power Power Amplifier.

-
LR1110_RADIO_PA_SEL_HF 

High-frequency Power Amplifier.

-
- -
-
- -

◆ lr1110_radio_gfsk_address_filtering_t

- -
-
- -

GFSK Address Filtering configurations.

-

If Address Filtering is enabled but a wrong address is received, therefore the reception is aborted and the address error flag of packet status is set.

- - - - -
Enumerator
LR1110_RADIO_GFSK_ADDRESS_FILTERING_DISABLE 

Filter deactivated.

-
LR1110_RADIO_GFSK_ADDRESS_FILTERING_NODE_ADDRESS 

Filter on Node Address.

-
LR1110_RADIO_GFSK_ADDRESS_FILTERING_NODE_AND_BROADCAST_ADDRESSES 

Filtering on Node and Broadcast addresses.

-
- -
-
- -

◆ lr1110_radio_fallback_modes_t

- -
-
- -

Chip mode after successfull transmission or reception.

-

Unused for RX duty cycle and AutoTxRx operations

- - - - -
Enumerator
LR1110_RADIO_FALLBACK_STDBY_RC 

Standby RC (Default)

-
LR1110_RADIO_FALLBACK_STDBY_XOSC 

Standby XOSC.

-
LR1110_RADIO_FALLBACK_FS 

FS.

-
- -
-
- -

◆ lr1110_radio_ramp_time_t

- -
-
- - - - -
enum lr1110_radio_ramp_time_t
-
- -

Ramping time for PA.

-

This parameter is the ramping time of the PA. A high value improves spectral quality.

- - - - - - - - - - - - - - - - - -
Enumerator
LR1110_RADIO_RAMP_16_US 

16 us Ramp Time

-
LR1110_RADIO_RAMP_32_US 

32 us Ramp Time

-
LR1110_RADIO_RAMP_48_US 

48 us Ramp Time (Default)

-
LR1110_RADIO_RAMP_64_US 

64 us Ramp Time

-
LR1110_RADIO_RAMP_80_US 

80 us Ramp Time

-
LR1110_RADIO_RAMP_96_US 

96 us Ramp Time

-
LR1110_RADIO_RAMP_112_US 

112 us Ramp Time

-
LR1110_RADIO_RAMP_128_US 

128 us Ramp Time

-
LR1110_RADIO_RAMP_144_US 

144 us Ramp Time

-
LR1110_RADIO_RAMP_160_US 

160 us Ramp Time

-
LR1110_RADIO_RAMP_176_US 

176 us Ramp Time

-
LR1110_RADIO_RAMP_192_US 

192 us Ramp Time

-
LR1110_RADIO_RAMP_208_US 

208 us Ramp Time

-
LR1110_RADIO_RAMP_240_US 

240 us Ramp Time

-
LR1110_RADIO_RAMP_272_US 

272 us Ramp Time

-
LR1110_RADIO_RAMP_304_US 

304 us Ramp Time

-
- -
-
- -

◆ lr1110_radio_lora_network_type_t

- -
-
- -

LoRa network type configuration.

- - - -
Enumerator
LR1110_RADIO_LORA_NETWORK_PRIVATE 

LoRa private network.

-
LR1110_RADIO_LORA_NETWORK_PUBLIC 

LoRa public network.

-
- -
-
- -

◆ lr1110_radio_lora_sf_t

- -
-
- - - - -
enum lr1110_radio_lora_sf_t
-
- -

LoRa Spreading Factor configurations.

- - - - - - - - - -
Enumerator
LR1110_RADIO_LORA_SF5 

Spreading Factor 5.

-
LR1110_RADIO_LORA_SF6 

Spreading Factor 6.

-
LR1110_RADIO_LORA_SF7 

Spreading Factor 7.

-
LR1110_RADIO_LORA_SF8 

Spreading Factor 8.

-
LR1110_RADIO_LORA_SF9 

Spreading Factor 9.

-
LR1110_RADIO_LORA_SF10 

Spreading Factor 10.

-
LR1110_RADIO_LORA_SF11 

Spreading Factor 11.

-
LR1110_RADIO_LORA_SF12 

Spreading Factor 12.

-
- -
-
- -

◆ lr1110_radio_lora_bw_t

- -
-
- - - - -
enum lr1110_radio_lora_bw_t
-
- -

LoRa Bandwidth configurations.

- - - - - - - - - - -
Enumerator
LR1110_RADIO_LORA_BW_10 

Bandwidth 10.42 kHz.

-
LR1110_RADIO_LORA_BW_15 

Bandwidth 15.63 kHz.

-
LR1110_RADIO_LORA_BW_20 

Bandwidth 20.83 kHz.

-
LR1110_RADIO_LORA_BW_31 

Bandwidth 31.25 kHz.

-
LR1110_RADIO_LORA_BW_41 

Bandwidth 41.67 kHz.

-
LR1110_RADIO_LORA_BW_62 

Bandwidth 62.50 kHz.

-
LR1110_RADIO_LORA_BW_125 

Bandwidth 125.00 kHz.

-
LR1110_RADIO_LORA_BW_250 

Bandwidth 250.00 kHz.

-
LR1110_RADIO_LORA_BW_500 

Bandwidth 500.00 kHz.

-
- -
-
- -

◆ lr1110_radio_lora_cr_t

- -
-
- - - - -
enum lr1110_radio_lora_cr_t
-
- -

LoRa Coding Rate configurations.

- - - - - - - - - -
Enumerator
LR1110_RADIO_LORA_NO_CR 

No Coding Rate.

-
LR1110_RADIO_LORA_CR_4_5 

Coding Rate 4/5 Short Interleaver.

-
LR1110_RADIO_LORA_CR_4_6 

Coding Rate 4/6 Short Interleaver.

-
LR1110_RADIO_LORA_CR_4_7 

Coding Rate 4/7 Short Interleaver.

-
LR1110_RADIO_LORA_CR_4_8 

Coding Rate 4/8 Short Interleaver.

-
LR1110_RADIO_LORA_CR_LI_4_5 

Coding Rate 4/5 Long Interleaver.

-
LR1110_RADIO_LORA_CR_LI_4_6 

Coding Rate 4/6 Long Interleaver.

-
LR1110_RADIO_LORA_CR_LI_4_8 

Coding Rate 4/8 Long Interleaver.

-
- -
-
- -

◆ lr1110_radio_intermediary_mode_t

- -
-
- -

Values for intermediary mode.

- - - - - -
Enumerator
LR1110_RADIO_MODE_SLEEP 

Sleep.

-
LR1110_RADIO_MODE_STANDBY_RC 

Standby RC.

-
LR1110_RADIO_MODE_STANDBY_XOSC 

Standby XOSC.

-
LR1110_RADIO_MODE_FS 

Frequency Synthesis.

-
- -
-
- -

◆ lr1110_radio_gfsk_crc_type_t

- -
-
- -

GFSK Cyclic Redundancy Check configurations.

-

If this value is set to something other than CRC_OFF, a CRC is automatically computed and added after the end of the payload on transmitter side. On receiver side, the CRC check is automatically processed.

- - -
Enumerator
LR1110_RADIO_GFSK_CRC_OFF 

CRC check deactivated.

-
- -
-
- -

◆ lr1110_radio_gfsk_dc_free_t

- -
-
- - - - -
enum lr1110_radio_gfsk_dc_free_t
-
- -

GFSK Scrambling configurations.

- - - -
Enumerator
LR1110_RADIO_GFSK_DC_FREE_OFF 

Whitening deactivated.

-
LR1110_RADIO_GFSK_DC_FREE_WHITENING 

Whitening enabled.

-
- -
-
- -

◆ lr1110_radio_gfsk_pkt_len_modes_t

- -
-
- -

GFSK Header Type configurations.

-

This parameter indicates whether or not the payload length is sent and read over the air.

-

If the payload length is known beforehand by both transmitter and receiver, therefore there is no need to send it over the air. Otherwise, setting this parameter to LR1110_RADIO_GFSK_PKT_VAR_LEN will make the modem to automatically prepand a byte containing the payload length to the the payload on transmitter side. On receiver side, this first byte is read to set the payload length to read.

-

This configuration is only available for GFSK packet types.

- - - -
Enumerator
LR1110_RADIO_GFSK_PKT_FIX_LEN 

Payload length is not sent/read over the air.

-
LR1110_RADIO_GFSK_PKT_VAR_LEN 

Payload length is sent/read over the air.

-
- -
-
- -

◆ lr1110_radio_gfsk_preamble_detector_t

- -
-
- -

GFSK Preamble Detector Length configurations.

-

This parameter sets the minimum length of preamble bits to be received to continue reception of incoming packet. If a packet with preamble length lower than this value is being received, the reception stops without generating IRQ.

-

This parameter has no impact on TX operations.

- -
-
- -

◆ lr1110_radio_lora_crc_t

- -
-
- - - - -
enum lr1110_radio_lora_crc_t
-
- -

LoRa Cyclic Redundancy Check configurations.

- - - -
Enumerator
LR1110_RADIO_LORA_CRC_OFF 

CRC deactivated.

-
LR1110_RADIO_LORA_CRC_ON 

CRC activated.

-
- -
-
- -

◆ lr1110_radio_lora_pkt_len_modes_t

- -
-
- -

LoRa Header type configurations.

- - - -
Enumerator
LR1110_RADIO_LORA_PKT_EXPLICIT 

Explicit header: transmitted over the air.

-
LR1110_RADIO_LORA_PKT_IMPLICIT 

Implicit header: not transmitted over the air.

-
- -
-
- -

◆ lr1110_radio_lora_iq_t

- -
-
- - - - -
enum lr1110_radio_lora_iq_t
-
- -

LoRa IQ mode configurations.

-

LoRa IQ modes are mutually exclusives: a physical packet sent with standard IQ will not be received by a receiver configured with inverted IQ.

- - - -
Enumerator
LR1110_RADIO_LORA_IQ_STANDARD 

IQ standard.

-
LR1110_RADIO_LORA_IQ_INVERTED 

IQ inverted.

-
- -
-
- -

◆ lr1110_radio_pkt_type_t

- -
-
- - - - -
enum lr1110_radio_pkt_type_t
-
- -

Packet type values.

- - - - -
Enumerator
LR1110_RADIO_PKT_NONE 

State after cold start, Wi-Fi or GNSS capture.

-
LR1110_RADIO_PKT_TYPE_GFSK 

GFSK modulation.

-
LR1110_RADIO_PKT_TYPE_LORA 

LoRa modulation.

-
- -
-
- -

◆ lr1110_radio_pa_reg_supply_t

- -
-
- -

Select power amplifier supply source.

- - - -
Enumerator
LR1110_RADIO_PA_REG_SUPPLY_VREG 

Power amplifier supplied by the main regulator.

-
LR1110_RADIO_PA_REG_SUPPLY_VBAT 

Power amplifier supplied by the battery.

-
- -
-
- -

◆ lr1110_radio_rx_duty_cycle_mode_t

- -
-
- -

RX Duty Cycle Modes.

- - - -
Enumerator
LR1110_RADIO_RX_DUTY_CYCLE_MODE_RX 

LoRa/GFSK: Uses Rx for listening to packets.

-
LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD 

Only in LoRa: Uses CAD to listen for over-the-air activity.

-
- -
-
- -

◆ lr1110_radio_gfsk_bw_t

- -
-
- - - - -
enum lr1110_radio_gfsk_bw_t
-
- -

GFSK Bandwidth configurations.

- - - - - - - - - - - - - - - - - - - - - - -
Enumerator
LR1110_RADIO_GFSK_BW_4800 

Bandwidth 4.8 kHz DSB.

-
LR1110_RADIO_GFSK_BW_5800 

Bandwidth 5.8 kHz DSB.

-
LR1110_RADIO_GFSK_BW_7300 

Bandwidth 7.3 kHz DSB.

-
LR1110_RADIO_GFSK_BW_9700 

Bandwidth 9.7 kHz DSB.

-
LR1110_RADIO_GFSK_BW_11700 

Bandwidth 11.7 kHz DSB.

-
LR1110_RADIO_GFSK_BW_14600 

Bandwidth 14.6 kHz DSB.

-
LR1110_RADIO_GFSK_BW_19500 

Bandwidth 19.5 kHz DSB.

-
LR1110_RADIO_GFSK_BW_23400 

Bandwidth 23.4 kHz DSB.

-
LR1110_RADIO_GFSK_BW_29300 

Bandwidth 29.3 kHz DSB.

-
LR1110_RADIO_GFSK_BW_39000 

Bandwidth 39.0 kHz DSB.

-
LR1110_RADIO_GFSK_BW_46900 

Bandwidth 46.9 kHz DSB.

-
LR1110_RADIO_GFSK_BW_58600 

Bandwidth 58.6 kHz DSB.

-
LR1110_RADIO_GFSK_BW_78200 

Bandwidth 78.2 kHz DSB.

-
LR1110_RADIO_GFSK_BW_93800 

Bandwidth 93.8 kHz DSB.

-
LR1110_RADIO_GFSK_BW_117300 

Bandwidth 117.3 kHz DSB.

-
LR1110_RADIO_GFSK_BW_156200 

Bandwidth 156.2 kHz DSB.

-
LR1110_RADIO_GFSK_BW_187200 

Bandwidth 187.2 kHz DSB.

-
LR1110_RADIO_GFSK_BW_234300 

Bandwidth 232.3 kHz DSB.

-
LR1110_RADIO_GFSK_BW_312000 

Bandwidth 312.0 kHz DSB.

-
LR1110_RADIO_GFSK_BW_373600 

Bandwidth 373.6 kHz DSB.

-
LR1110_RADIO_GFSK_BW_467000 

Bandwidth 467.0 kHz DSB.

-
- -
-
- -

◆ lr1110_radio_cad_exit_mode_t

- -
-
- -

Possible automatic actions when Channel Activity Detection operations terminate.

-

For RADIO_EXIT_MODE_CAD_RX, LR1110 enters RX mode on activity detected. The timeout value for this RX operation is defined as:

-

$ 31.25us \times timeout $

-

With $ timeout $ defined in RadioCadParams_t::timeout

-

If the CAD operation is negative with RADIO_CAD_EXIT_MODE_RX or if CAD operation is positive with RADIO_CAD_EXIT_MODE_TX, therefore the LR1110 enters Standby RC mode.

- - - - -
Enumerator
LR1110_RADIO_CAD_EXIT_MODE_STANDBYRC 

Enter standby RC mode after CAD operation.

-
LR1110_RADIO_CAD_EXIT_MODE_RX 

Enter in RX mode if an activity is detected.

-
LR1110_RADIO_CAD_EXIT_MODE_TX 

Enter in TX mode if no activity is detected.

-
- -
-
- -

◆ lr1110_radio_gfsk_pulse_shape_t

- -
-
- -

Pulse shape configurations.

- - - - - - -
Enumerator
LR1110_RADIO_GFSK_PULSE_SHAPE_OFF 

No filter applied.

-
LR1110_RADIO_GFSK_PULSE_SHAPE_BT_03 

Gaussian BT 0.3.

-
LR1110_RADIO_GFSK_PULSE_SHAPE_BT_05 

Gaussian BT 0.5.

-
LR1110_RADIO_GFSK_PULSE_SHAPE_BT_07 

Gaussian BT 0.7.

-
LR1110_RADIO_GFSK_PULSE_SHAPE_BT_1 

Gaussian BT 1.0.

-
- -
-
-
- - - - diff --git a/doc/lr1110/html/lr1110__radio__types_8h__dep__incl.map b/doc/lr1110/html/lr1110__radio__types_8h__dep__incl.map deleted file mode 100644 index a122088..0000000 --- a/doc/lr1110/html/lr1110__radio__types_8h__dep__incl.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/doc/lr1110/html/lr1110__radio__types_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__radio__types_8h__dep__incl.md5 deleted file mode 100644 index ccafd5d..0000000 --- a/doc/lr1110/html/lr1110__radio__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ba2d3854d17e5dad6963f87ffe0e8205 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__radio__types_8h__dep__incl.png b/doc/lr1110/html/lr1110__radio__types_8h__dep__incl.png deleted file mode 100644 index a3824befe768bf0948a60ae191b06b37ed127753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15049 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 - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_radio_types.h Source File - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
lr1110_radio_types.h
-
-
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_RADIO_TYPES_H
-
36 #define LR1110_RADIO_TYPES_H
-
37 
-
38 #ifdef __cplusplus
-
39 extern "C" {
-
40 #endif
-
41 
-
42 /*
-
43  * -----------------------------------------------------------------------------
-
44  * --- DEPENDENCIES ------------------------------------------------------------
-
45  */
-
46 
-
47 #include <stdbool.h>
-
48 #include <stdint.h>
-
49 
-
50 /*
-
51  * -----------------------------------------------------------------------------
-
52  * --- PUBLIC MACROS -----------------------------------------------------------
-
53  */
-
54 
-
55 /*
-
56  * -----------------------------------------------------------------------------
-
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
-
58  */
-
59 
-
60 /*
-
61  * -----------------------------------------------------------------------------
-
62  * --- PUBLIC TYPES ------------------------------------------------------------
-
63  */
-
64 
-
71 typedef enum
-
72 {
- - - - -
77 
-
84 typedef enum
-
85 {
- - - -
89  0x02,
- -
91 
-
97 typedef enum
-
98 {
- - - - -
103 
-
109 typedef enum
-
110 {
- - - - - - - - - - - - - - - - - -
128 
-
132 typedef enum
-
133 {
- - - -
137 
-
141 typedef enum
-
142 {
- - - - - - - - - -
152 
-
156 typedef enum
-
157 {
- - - - - - - - - - -
168 
-
172 typedef enum
-
173 {
- - - - - - - - - -
183 
-
187 typedef enum
-
188 {
- - - -
192  LR1110_RADIO_MODE_FS = 0x03
- -
194 
-
201 typedef enum
-
202 {
- -
204  LR1110_RADIO_GFSK_CRC_1_BYTE = 0x00,
-
205  LR1110_RADIO_GFSK_CRC_2_BYTES = 0x02,
-
206  LR1110_RADIO_GFSK_CRC_1_BYTE_INV = 0x04,
-
207  LR1110_RADIO_GFSK_CRC_2_BYTES_INV = 0x06,
- -
209 
-
213 typedef enum
-
214 {
- - - -
218 
-
231 typedef enum
-
232 {
- - - -
236 
-
245 typedef enum
-
246 {
-
247  LR1110_RADIO_GFSK_PREAMBLE_DETECTOR_OFF = 0x00,
-
248  LR1110_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_8BITS = 0x04,
-
249  LR1110_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_16BITS = 0x05,
-
250  LR1110_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_24BITS = 0x06,
-
251  LR1110_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_32BITS = 0x07
- -
253 
-
257 typedef enum
-
258 {
- - - -
262 
-
266 typedef enum
-
267 {
- - - -
271 
-
278 typedef enum
-
279 {
- - - -
283 
-
287 typedef enum
-
288 {
- - - - -
293 
-
297 typedef enum
-
298 {
- - - -
302 
-
306 typedef enum
-
307 {
- - - -
311 
-
315 typedef enum
-
316 {
- - - - - - - - - - - - - - - - - - - - - - -
339 
-
353 typedef enum
-
354 {
- - - - -
359 
-
363 typedef enum
-
364 {
- - - - - - -
371 
- -
385 {
-
386  uint8_t cad_symb_nb;
-
387  uint8_t cad_detect_peak;
-
388  uint8_t cad_detect_min;
- -
392  uint32_t cad_timeout;
- -
394 
- -
399 {
- - -
402  uint8_t rx_len_in_bytes;
-
403  bool is_addr_err;
-
404  bool is_crc_err;
-
406  bool is_len_err;
-
407  bool is_abort_err;
-
409  bool is_received;
-
410  bool is_sent;
- -
412 
- -
417 {
- -
419  int8_t snr_pkt_in_db;
- - -
422 
- -
427 {
- - - -
432 
- -
437 {
-
438  uint16_t nb_pkt_received;
-
439  uint16_t nb_pkt_crc_error;
-
440  uint16_t nb_pkt_len_error;
- -
442 
- -
447 {
-
448  uint16_t nb_pkt_received;
-
449  uint16_t nb_pkt_crc_error;
- -
451  uint16_t nb_pkt_falsesync;
- -
453 
- -
458 {
-
459  uint32_t br_in_bps;
- - -
462  uint32_t fdev_in_hz;
- -
464 
- -
469 {
- - - -
473  uint8_t ldro;
- -
475 
- -
480 {
- - - - - - - - - -
490 
- -
495 {
- - - - - - -
502 
-
518 typedef struct lr1110_radio_pa_cfg_s
-
519 {
- - -
522  uint8_t pa_duty_cycle;
-
523  uint8_t pa_hp_sel;
- -
525 
-
526 /*
-
527  * -----------------------------------------------------------------------------
-
528  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
-
529  */
-
530 
-
531 #ifdef __cplusplus
-
532 }
-
533 #endif
-
534 
-
535 #endif // LR1110_RADIO_TYPES_H
-
536 
-
537 /* --- EOF ------------------------------------------------------------------ */
-
-
@ LR1110_RADIO_LORA_NO_CR
No Coding Rate.
Definition: lr1110_radio_types.h:174
-
@ LR1110_RADIO_GFSK_BW_4800
Bandwidth 4.8 kHz DSB.
Definition: lr1110_radio_types.h:317
-
@ LR1110_RADIO_LORA_CR_LI_4_5
Coding Rate 4/5 Long Interleaver.
Definition: lr1110_radio_types.h:179
-
uint16_t nb_pkt_crc_error
Total number of received packets with CRC error.
Definition: lr1110_radio_types.h:449
-
struct lr1110_radio_rx_buffer_status_s lr1110_radio_rx_buffer_status_t
Length and offset of received packet.
-
uint16_t preamble_len_in_symb
LoRa Preamble length [symbols].
Definition: lr1110_radio_types.h:496
-
@ LR1110_RADIO_LORA_BW_500
Bandwidth 500.00 kHz.
Definition: lr1110_radio_types.h:166
-
@ LR1110_RADIO_RAMP_304_US
304 us Ramp Time
Definition: lr1110_radio_types.h:126
-
int8_t signal_rssi_pkt_in_dbm
RSSI of last packet latched after.
Definition: lr1110_radio_types.h:420
-
lr1110_radio_lora_cr_t
LoRa Coding Rate configurations.
Definition: lr1110_radio_types.h:173
-
bool is_len_err
Definition: lr1110_radio_types.h:406
-
@ LR1110_RADIO_PA_SEL_LP
Low-power Power Amplifier.
Definition: lr1110_radio_types.h:73
-
@ LR1110_RADIO_MODE_SLEEP
Sleep.
Definition: lr1110_radio_types.h:189
-
lr1110_radio_fallback_modes_t
Chip mode after successfull transmission or reception.
Definition: lr1110_radio_types.h:98
-
int8_t rssi_sync_in_dbm
RSSI value latched on detection of the last received packet Sync Address.
Definition: lr1110_radio_types.h:400
-
@ LR1110_RADIO_RAMP_208_US
208 us Ramp Time
Definition: lr1110_radio_types.h:123
-
@ LR1110_RADIO_MODE_STANDBY_RC
Standby RC.
Definition: lr1110_radio_types.h:190
-
uint16_t nb_pkt_crc_error
Total number of received packets with CRC error.
Definition: lr1110_radio_types.h:439
-
@ LR1110_RADIO_LORA_SF10
Spreading Factor 10.
Definition: lr1110_radio_types.h:148
-
lr1110_radio_gfsk_bw_t bw_dsb_param
GFSK bandwidth.
Definition: lr1110_radio_types.h:461
-
LoRa packet statistic structure.
Definition: lr1110_radio_types.h:447
-
lr1110_radio_lora_pkt_len_modes_t header_type
LoRa Header type configuration.
Definition: lr1110_radio_types.h:497
-
@ LR1110_RADIO_GFSK_CRC_OFF
CRC check deactivated.
Definition: lr1110_radio_types.h:203
-
lr1110_radio_gfsk_crc_type_t crc_type
GFSK CRC configuration.
Definition: lr1110_radio_types.h:487
-
uint8_t rx_len_in_bytes
Length of the last received packet [Bytes].
Definition: lr1110_radio_types.h:402
-
Packet parameter configuration for LoRa packets.
Definition: lr1110_radio_types.h:495
-
@ LR1110_RADIO_GFSK_PULSE_SHAPE_BT_1
Gaussian BT 1.0.
Definition: lr1110_radio_types.h:369
-
@ LR1110_RADIO_FALLBACK_FS
FS.
Definition: lr1110_radio_types.h:101
-
lr1110_radio_lora_iq_t iq
LoRa IQ configuration.
Definition: lr1110_radio_types.h:500
-
@ LR1110_RADIO_LORA_BW_125
Bandwidth 125.00 kHz.
Definition: lr1110_radio_types.h:164
-
@ LR1110_RADIO_LORA_BW_10
Bandwidth 10.42 kHz.
Definition: lr1110_radio_types.h:158
-
bool is_crc_err
CRC status of the current packet (applicable only in RX, with CRC enabled)
Definition: lr1110_radio_types.h:405
-
lr1110_radio_gfsk_pkt_len_modes_t header_type
GFSK Header type configuration.
Definition: lr1110_radio_types.h:485
-
@ LR1110_RADIO_GFSK_BW_23400
Bandwidth 23.4 kHz DSB.
Definition: lr1110_radio_types.h:324
-
lr1110_radio_ramp_time_t
Ramping time for PA.
Definition: lr1110_radio_types.h:110
-
uint16_t nb_pkt_falsesync
Total number of false sync.
Definition: lr1110_radio_types.h:451
-
@ LR1110_RADIO_GFSK_PULSE_SHAPE_BT_05
Gaussian BT 0.5.
Definition: lr1110_radio_types.h:367
-
lr1110_radio_lora_sf_t
LoRa Spreading Factor configurations.
Definition: lr1110_radio_types.h:142
-
@ LR1110_RADIO_LORA_BW_250
Bandwidth 250.00 kHz.
Definition: lr1110_radio_types.h:165
-
lr1110_radio_pa_reg_supply_t pa_reg_supply
Power Amplifier regulator supply source.
Definition: lr1110_radio_types.h:521
-
@ LR1110_RADIO_CAD_EXIT_MODE_RX
Enter in RX mode if an activity is detected.
Definition: lr1110_radio_types.h:356
-
@ LR1110_RADIO_CAD_EXIT_MODE_STANDBYRC
Enter standby RC mode after CAD operation.
Definition: lr1110_radio_types.h:355
-
@ LR1110_RADIO_LORA_CR_4_6
Coding Rate 4/6 Short Interleaver.
Definition: lr1110_radio_types.h:176
-
struct lr1110_radio_stats_gfsk_s lr1110_radio_stats_gfsk_t
GFSK packet statistic structure.
-
@ LR1110_RADIO_RAMP_96_US
96 us Ramp Time
Definition: lr1110_radio_types.h:116
-
@ LR1110_RADIO_GFSK_BW_29300
Bandwidth 29.3 kHz DSB.
Definition: lr1110_radio_types.h:325
-
Status of received packet.
Definition: lr1110_radio_types.h:417
-
@ LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD
Only in LoRa: Uses CAD to listen for over-the-air activity.
Definition: lr1110_radio_types.h:309
-
@ LR1110_RADIO_GFSK_BW_156200
Bandwidth 156.2 kHz DSB.
Definition: lr1110_radio_types.h:332
-
lr1110_radio_gfsk_preamble_detector_t
GFSK Preamble Detector Length configurations.
Definition: lr1110_radio_types.h:246
-
uint8_t pa_duty_cycle
Power Amplifier duty cycle (Default 0x04)
Definition: lr1110_radio_types.h:522
-
@ LR1110_RADIO_LORA_CRC_ON
CRC activated.
Definition: lr1110_radio_types.h:260
-
uint32_t cad_timeout
Value used to compute timeout.
Definition: lr1110_radio_types.h:392
-
@ LR1110_RADIO_GFSK_PKT_VAR_LEN
Payload length is sent/read over the air.
Definition: lr1110_radio_types.h:234
-
@ LR1110_RADIO_GFSK_BW_5800
Bandwidth 5.8 kHz DSB.
Definition: lr1110_radio_types.h:318
-
lr1110_radio_gfsk_dc_free_t
GFSK Scrambling configurations.
Definition: lr1110_radio_types.h:214
-
lr1110_radio_lora_crc_t
LoRa Cyclic Redundancy Check configurations.
Definition: lr1110_radio_types.h:258
-
@ LR1110_RADIO_LORA_IQ_STANDARD
IQ standard.
Definition: lr1110_radio_types.h:280
-
struct lr1110_radio_pkt_status_lora_s lr1110_radio_pkt_status_lora_t
Status of received packet.
-
lr1110_radio_intermediary_mode_t
Values for intermediary mode.
Definition: lr1110_radio_types.h:188
-
lr1110_radio_gfsk_preamble_detector_t preamble_detector
GFSK Preamble detection configuration.
Definition: lr1110_radio_types.h:482
-
lr1110_radio_gfsk_pulse_shape_t
Pulse shape configurations.
Definition: lr1110_radio_types.h:364
-
@ LR1110_RADIO_LORA_NETWORK_PUBLIC
LoRa public network.
Definition: lr1110_radio_types.h:135
-
struct lr1110_radio_pkt_params_lora_s lr1110_radio_pkt_params_lora_t
Packet parameter configuration for LoRa packets.
-
lr1110_radio_lora_pkt_len_modes_t
LoRa Header type configurations.
Definition: lr1110_radio_types.h:267
-
@ LR1110_RADIO_GFSK_BW_93800
Bandwidth 93.8 kHz DSB.
Definition: lr1110_radio_types.h:330
-
@ LR1110_RADIO_LORA_BW_41
Bandwidth 41.67 kHz.
Definition: lr1110_radio_types.h:162
-
int8_t rssi_pkt_in_dbm
Average RSSI over last received packet.
Definition: lr1110_radio_types.h:418
-
@ LR1110_RADIO_FALLBACK_STDBY_XOSC
Standby XOSC.
Definition: lr1110_radio_types.h:100
-
uint8_t pld_len_in_bytes
GFSK Payload length [bytes].
Definition: lr1110_radio_types.h:486
-
uint16_t nb_pkt_received
Total number of received packets.
Definition: lr1110_radio_types.h:438
-
@ LR1110_RADIO_GFSK_ADDRESS_FILTERING_DISABLE
Filter deactivated.
Definition: lr1110_radio_types.h:86
-
@ LR1110_RADIO_RAMP_16_US
16 us Ramp Time
Definition: lr1110_radio_types.h:111
-
@ LR1110_RADIO_GFSK_BW_234300
Bandwidth 232.3 kHz DSB.
Definition: lr1110_radio_types.h:334
-
@ LR1110_RADIO_CAD_EXIT_MODE_TX
Enter in TX mode if no activity is detected.
Definition: lr1110_radio_types.h:357
-
lr1110_radio_lora_bw_t bw
LoRa bandwidth.
Definition: lr1110_radio_types.h:471
-
@ LR1110_RADIO_RAMP_176_US
176 us Ramp Time
Definition: lr1110_radio_types.h:121
-
@ LR1110_RADIO_RX_DUTY_CYCLE_MODE_RX
LoRa/GFSK: Uses Rx for listening to packets.
Definition: lr1110_radio_types.h:308
-
@ LR1110_RADIO_LORA_SF6
Spreading Factor 6.
Definition: lr1110_radio_types.h:144
-
lr1110_radio_pkt_type_t
Packet type values.
Definition: lr1110_radio_types.h:288
-
@ LR1110_RADIO_RAMP_64_US
64 us Ramp Time
Definition: lr1110_radio_types.h:114
-
@ LR1110_RADIO_RAMP_160_US
160 us Ramp Time
Definition: lr1110_radio_types.h:120
-
lr1110_radio_gfsk_dc_free_t dc_free
GFSK Whitening configuration.
Definition: lr1110_radio_types.h:488
-
struct lr1110_radio_mod_params_gfsk_s lr1110_radio_mod_params_gfsk_t
Modulation configuration for GFSK packet.
-
@ LR1110_RADIO_PKT_TYPE_GFSK
GFSK modulation.
Definition: lr1110_radio_types.h:290
-
@ LR1110_RADIO_LORA_PKT_EXPLICIT
Explicit header: transmitted over the air.
Definition: lr1110_radio_types.h:268
-
@ LR1110_RADIO_LORA_BW_20
Bandwidth 20.83 kHz.
Definition: lr1110_radio_types.h:160
-
@ LR1110_RADIO_LORA_PKT_IMPLICIT
Implicit header: not transmitted over the air.
Definition: lr1110_radio_types.h:269
-
@ LR1110_RADIO_RAMP_272_US
272 us Ramp Time
Definition: lr1110_radio_types.h:125
-
@ LR1110_RADIO_PA_SEL_HF
High-frequency Power Amplifier.
Definition: lr1110_radio_types.h:75
-
uint16_t nb_pkt_header_error
Total number of packets with header error.
Definition: lr1110_radio_types.h:450
-
lr1110_radio_lora_bw_t
LoRa Bandwidth configurations.
Definition: lr1110_radio_types.h:157
-
struct lr1110_radio_cad_params_s lr1110_radio_cad_params_t
Channel Activity Detection parameters.
-
struct lr1110_radio_pkt_params_gfsk_s lr1110_radio_pkt_params_gfsk_t
Packet parameter configuration for GFSK packets.
-
uint8_t pld_len_in_bytes
LoRa Payload length [bytes].
Definition: lr1110_radio_types.h:498
-
@ LR1110_RADIO_GFSK_BW_78200
Bandwidth 78.2 kHz DSB.
Definition: lr1110_radio_types.h:329
-
uint8_t cad_detect_peak
Definition: lr1110_radio_types.h:387
-
@ LR1110_RADIO_LORA_CRC_OFF
CRC deactivated.
Definition: lr1110_radio_types.h:259
-
@ LR1110_RADIO_LORA_SF8
Spreading Factor 8.
Definition: lr1110_radio_types.h:146
-
@ LR1110_RADIO_GFSK_PULSE_SHAPE_BT_03
Gaussian BT 0.3.
Definition: lr1110_radio_types.h:366
-
Channel Activity Detection parameters.
Definition: lr1110_radio_types.h:385
-
@ LR1110_RADIO_RAMP_192_US
192 us Ramp Time
Definition: lr1110_radio_types.h:122
-
lr1110_radio_gfsk_pkt_len_modes_t
GFSK Header Type configurations.
Definition: lr1110_radio_types.h:232
-
uint32_t br_in_bps
GFSK bitrate [bit/s].
Definition: lr1110_radio_types.h:459
-
lr1110_radio_lora_cr_t cr
LoRa coding rate.
Definition: lr1110_radio_types.h:472
-
@ LR1110_RADIO_GFSK_BW_467000
Bandwidth 467.0 kHz DSB.
Definition: lr1110_radio_types.h:337
-
@ LR1110_RADIO_GFSK_ADDRESS_FILTERING_NODE_ADDRESS
Filter on Node Address.
Definition: lr1110_radio_types.h:87
-
@ LR1110_RADIO_GFSK_BW_312000
Bandwidth 312.0 kHz DSB.
Definition: lr1110_radio_types.h:335
-
struct lr1110_radio_pkt_status_gfsk_s lr1110_radio_pkt_status_gfsk_t
Status of GFSK received packet.
-
@ LR1110_RADIO_GFSK_DC_FREE_OFF
Whitening deactivated.
Definition: lr1110_radio_types.h:215
-
@ LR1110_RADIO_LORA_SF7
Spreading Factor 7.
Definition: lr1110_radio_types.h:145
-
uint16_t nb_pkt_received
Total number of received packets.
Definition: lr1110_radio_types.h:448
-
@ LR1110_RADIO_LORA_SF12
Spreading Factor 12.
Definition: lr1110_radio_types.h:150
-
struct lr1110_radio_pa_cfg_s lr1110_radio_pa_cfg_t
Configuration of Power Amplifier.
-
@ LR1110_RADIO_RAMP_32_US
32 us Ramp Time
Definition: lr1110_radio_types.h:112
-
@ LR1110_RADIO_PA_REG_SUPPLY_VBAT
Power amplifier supplied by the battery.
Definition: lr1110_radio_types.h:300
-
@ LR1110_RADIO_GFSK_PKT_FIX_LEN
Payload length is not sent/read over the air.
Definition: lr1110_radio_types.h:233
-
@ LR1110_RADIO_MODE_STANDBY_XOSC
Standby XOSC.
Definition: lr1110_radio_types.h:191
-
@ LR1110_RADIO_GFSK_BW_187200
Bandwidth 187.2 kHz DSB.
Definition: lr1110_radio_types.h:333
-
@ LR1110_RADIO_LORA_IQ_INVERTED
IQ inverted.
Definition: lr1110_radio_types.h:281
-
lr1110_radio_lora_crc_t crc
LoRa CRC configuration.
Definition: lr1110_radio_types.h:499
-
lr1110_radio_cad_exit_mode_t
Possible automatic actions when Channel Activity Detection operations terminate.
Definition: lr1110_radio_types.h:354
-
@ LR1110_RADIO_MODE_FS
Frequency Synthesis.
Definition: lr1110_radio_types.h:192
-
@ LR1110_RADIO_PKT_TYPE_LORA
LoRa modulation.
Definition: lr1110_radio_types.h:291
-
lr1110_radio_pa_selection_t
Power Amplifier Selection values.
Definition: lr1110_radio_types.h:72
-
lr1110_radio_gfsk_bw_t
GFSK Bandwidth configurations.
Definition: lr1110_radio_types.h:316
-
@ LR1110_RADIO_RAMP_112_US
112 us Ramp Time
Definition: lr1110_radio_types.h:117
-
@ LR1110_RADIO_GFSK_BW_11700
Bandwidth 11.7 kHz DSB.
Definition: lr1110_radio_types.h:321
-
struct lr1110_radio_mod_params_lora_s lr1110_radio_mod_params_lora_t
Modulation configuration for LoRa packet.
-
@ LR1110_RADIO_GFSK_PULSE_SHAPE_OFF
No filter applied.
Definition: lr1110_radio_types.h:365
-
lr1110_radio_gfsk_pulse_shape_t pulse_shape
GFSK pulse shape.
Definition: lr1110_radio_types.h:460
-
@ LR1110_RADIO_LORA_SF5
Spreading Factor 5.
Definition: lr1110_radio_types.h:143
-
@ LR1110_RADIO_PKT_NONE
State after cold start, Wi-Fi or GNSS capture.
Definition: lr1110_radio_types.h:289
-
@ LR1110_RADIO_GFSK_BW_39000
Bandwidth 39.0 kHz DSB.
Definition: lr1110_radio_types.h:326
-
@ LR1110_RADIO_LORA_CR_LI_4_6
Coding Rate 4/6 Long Interleaver.
Definition: lr1110_radio_types.h:180
-
@ LR1110_RADIO_RAMP_80_US
80 us Ramp Time
Definition: lr1110_radio_types.h:115
-
@ LR1110_RADIO_LORA_SF9
Spreading Factor 9.
Definition: lr1110_radio_types.h:147
-
uint8_t cad_symb_nb
Number of symbols used for CAD detection.
Definition: lr1110_radio_types.h:386
-
@ LR1110_RADIO_GFSK_BW_46900
Bandwidth 46.9 kHz DSB.
Definition: lr1110_radio_types.h:327
-
@ LR1110_RADIO_FALLBACK_STDBY_RC
Standby RC (Default)
Definition: lr1110_radio_types.h:99
-
@ LR1110_RADIO_LORA_CR_4_5
Coding Rate 4/5 Short Interleaver.
Definition: lr1110_radio_types.h:175
-
Configuration of Power Amplifier.
Definition: lr1110_radio_types.h:519
-
Packet parameter configuration for GFSK packets.
Definition: lr1110_radio_types.h:480
-
uint8_t pld_len_in_bytes
Length of received packet [Bytes].
Definition: lr1110_radio_types.h:428
-
@ LR1110_RADIO_LORA_BW_15
Bandwidth 15.63 kHz.
Definition: lr1110_radio_types.h:159
-
uint16_t preamble_len_in_bits
GFSK Preamble length [bits].
Definition: lr1110_radio_types.h:481
-
lr1110_radio_gfsk_address_filtering_t
GFSK Address Filtering configurations.
Definition: lr1110_radio_types.h:85
-
@ LR1110_RADIO_GFSK_PULSE_SHAPE_BT_07
Gaussian BT 0.7.
Definition: lr1110_radio_types.h:368
-
@ LR1110_RADIO_RAMP_144_US
144 us Ramp Time
Definition: lr1110_radio_types.h:119
-
@ LR1110_RADIO_PA_SEL_HP
High-power Power Amplifier.
Definition: lr1110_radio_types.h:74
-
Length and offset of received packet.
Definition: lr1110_radio_types.h:427
-
lr1110_radio_cad_exit_mode_t cad_exit_mode
Automated action on CAD completion.
Definition: lr1110_radio_types.h:391
-
@ LR1110_RADIO_LORA_BW_31
Bandwidth 31.25 kHz.
Definition: lr1110_radio_types.h:161
-
uint16_t nb_pkt_len_error
Total number of received packets with a length error.
Definition: lr1110_radio_types.h:440
-
bool is_received
Asserted when packet reception is done (applicable in RX)
Definition: lr1110_radio_types.h:409
-
lr1110_radio_pa_selection_t pa_sel
Power Amplifier selection.
Definition: lr1110_radio_types.h:520
-
@ LR1110_RADIO_GFSK_BW_117300
Bandwidth 117.3 kHz DSB.
Definition: lr1110_radio_types.h:331
-
bool is_abort_err
Asserted when the current packet has been aborted (applicable in RX and TX)
Definition: lr1110_radio_types.h:408
-
@ LR1110_RADIO_LORA_BW_62
Bandwidth 62.50 kHz.
Definition: lr1110_radio_types.h:163
-
struct lr1110_radio_stats_lora_s lr1110_radio_stats_lora_t
LoRa packet statistic structure.
-
int8_t rssi_avg_in_dbm
RSSI averaged over the payload of the last received packet.
Definition: lr1110_radio_types.h:401
-
@ LR1110_RADIO_LORA_NETWORK_PRIVATE
LoRa private network.
Definition: lr1110_radio_types.h:134
-
@ LR1110_RADIO_LORA_CR_4_8
Coding Rate 4/8 Short Interleaver.
Definition: lr1110_radio_types.h:178
-
bool is_addr_err
Definition: lr1110_radio_types.h:403
-
@ LR1110_RADIO_LORA_CR_4_7
Coding Rate 4/7 Short Interleaver.
Definition: lr1110_radio_types.h:177
-
@ LR1110_RADIO_PA_REG_SUPPLY_VREG
Power amplifier supplied by the main regulator.
Definition: lr1110_radio_types.h:299
-
uint8_t ldro
LoRa LDRO.
Definition: lr1110_radio_types.h:473
-
@ LR1110_RADIO_GFSK_BW_9700
Bandwidth 9.7 kHz DSB.
Definition: lr1110_radio_types.h:320
-
@ LR1110_RADIO_RAMP_128_US
128 us Ramp Time
Definition: lr1110_radio_types.h:118
-
lr1110_radio_gfsk_crc_type_t
GFSK Cyclic Redundancy Check configurations.
Definition: lr1110_radio_types.h:202
-
uint8_t cad_detect_min
Definition: lr1110_radio_types.h:389
-
@ LR1110_RADIO_RAMP_48_US
48 us Ramp Time (Default)
Definition: lr1110_radio_types.h:113
-
@ LR1110_RADIO_GFSK_BW_373600
Bandwidth 373.6 kHz DSB.
Definition: lr1110_radio_types.h:336
-
lr1110_radio_lora_sf_t sf
LoRa spreading factor.
Definition: lr1110_radio_types.h:470
-
GFSK packet statistic structure.
Definition: lr1110_radio_types.h:437
-
@ LR1110_RADIO_GFSK_BW_7300
Bandwidth 7.3 kHz DSB.
Definition: lr1110_radio_types.h:319
-
uint8_t pa_hp_sel
Number of slices for HPA (Default 0x07)
Definition: lr1110_radio_types.h:523
-
lr1110_radio_lora_iq_t
LoRa IQ mode configurations.
Definition: lr1110_radio_types.h:279
-
@ LR1110_RADIO_GFSK_BW_14600
Bandwidth 14.6 kHz DSB.
Definition: lr1110_radio_types.h:322
-
@ LR1110_RADIO_GFSK_BW_19500
Bandwidth 19.5 kHz DSB.
Definition: lr1110_radio_types.h:323
-
uint8_t sync_word_len_in_bits
GFSK Syncword length [bits].
Definition: lr1110_radio_types.h:483
-
uint8_t buffer_start_pointer
Definition: lr1110_radio_types.h:429
-
Modulation configuration for LoRa packet.
Definition: lr1110_radio_types.h:469
-
bool is_sent
Asserted when packet transmission is done (applicable in TX)
Definition: lr1110_radio_types.h:410
-
lr1110_radio_rx_duty_cycle_mode_t
RX Duty Cycle Modes.
Definition: lr1110_radio_types.h:307
-
Status of GFSK received packet.
Definition: lr1110_radio_types.h:399
-
@ LR1110_RADIO_GFSK_ADDRESS_FILTERING_NODE_AND_BROADCAST_ADDRESSES
Filtering on Node and Broadcast addresses.
Definition: lr1110_radio_types.h:88
-
uint32_t fdev_in_hz
GFSK frequency deviation [Hz].
Definition: lr1110_radio_types.h:462
-
@ LR1110_RADIO_LORA_CR_LI_4_8
Coding Rate 4/8 Long Interleaver.
Definition: lr1110_radio_types.h:181
-
lr1110_radio_gfsk_address_filtering_t address_filtering
GFSK Address filtering/comparison configuration.
Definition: lr1110_radio_types.h:484
-
@ LR1110_RADIO_GFSK_BW_58600
Bandwidth 58.6 kHz DSB.
Definition: lr1110_radio_types.h:328
-
int8_t snr_pkt_in_db
SNR estimated on last received packet.
Definition: lr1110_radio_types.h:419
-
lr1110_radio_pa_reg_supply_t
Select power amplifier supply source.
Definition: lr1110_radio_types.h:298
-
@ LR1110_RADIO_LORA_SF11
Spreading Factor 11.
Definition: lr1110_radio_types.h:149
-
Modulation configuration for GFSK packet.
Definition: lr1110_radio_types.h:458
-
@ LR1110_RADIO_GFSK_DC_FREE_WHITENING
Whitening enabled.
Definition: lr1110_radio_types.h:216
-
lr1110_radio_lora_network_type_t
LoRa network type configuration.
Definition: lr1110_radio_types.h:133
-
@ LR1110_RADIO_RAMP_240_US
240 us Ramp Time
Definition: lr1110_radio_types.h:124
- - - - diff --git a/doc/lr1110/html/lr1110__regmem_8c__incl.map b/doc/lr1110/html/lr1110__regmem_8c__incl.map deleted file mode 100644 index a1f63ee..0000000 --- a/doc/lr1110/html/lr1110__regmem_8c__incl.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/doc/lr1110/html/lr1110__regmem_8c__incl.md5 b/doc/lr1110/html/lr1110__regmem_8c__incl.md5 deleted file mode 100644 index f1badd4..0000000 --- a/doc/lr1110/html/lr1110__regmem_8c__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -c348e858b72871258ed274aebebcd54e \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__regmem_8c__incl.png b/doc/lr1110/html/lr1110__regmem_8c__incl.png deleted file mode 100644 index f6aa1cb7f86769ab102066d553caa6f33607b447..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11829 zcmZviby!tj^yV*(5&}wxNGsh9f|P(D(hbrL(v5V7NSAbXcU(fcySux4w%>W?H}l7! z51i-5Is5Fr_B!kRtT*VZj5yj$f|n2o1nskg$TtWCMhYDFBEy2;lydFKfWE6>*WD3to1_gd0 zoMN~PlVH${3e2&S!wd-%-7L|N5Bs+3kyJ9ycK+}b|5$x!CpXA?&c~WEtv$Z$Jmf66 z&3)`Vl)UXW)ZWg73Ihg&5K#k0(I)Bzg@FhmauGo=^#42b53GUw=Jt4Svb1EF`vAfF zzSQI_ARu5|_%XEn=wxAG0qGUV&hBnHJ-pY8rB=^~8hBs)ee?iQ30c|Wm3ANFLWmA* zyV;8sM=l8IUq}EP#2eN6e;>X=dG#uSkkj%{@pl~pLPA`6wTZDY@0!S{pPL`BDZHQv z_$y=(JgM#9(bTdz+1WxEzCG*5i;bLnc2v>$*x2^_Q^h4EC9{=A_cu48Zv|67Sr`qc zZZaWpa9A$f^fR_fCvk+GOZ#&{`W5>ey^OeWom^dwjEvrL|L}!g+}zw892`VOM&8^w z@uYa{jJ#tACc)m^+_bQ;AQ~dZlcCbfm2`$U`A6X4;^OM*t=C#Dd)!@^TpulNZEXeW zC#9xZT3MAA7o!P9Ha0d^R@yo{*B2D*c_DGKu@Uh)6#e=0QAx?+a&OYdq|xDUt}ljG zxkMu&G129GYj9`BcuH4MQ4t*-9lR*__3O^TL1<8r^Tm#wtLy#6?zrQ@%sWO#!4-q8 zjSW0P!gcGq-@kunWo6~$AeA?aJy*-rD-`i_qX2#0OI$vXvl$S>X zFVvi%Q!I&qy>c=d853gT+oc!l^moqLpl-P~j^~^Tnu+g$2LG99z~L8NATp;UNb6X9QqX`v+2* znkjjCc~wgw~}2q>h;1qB7(q{fGH)$S2RB_&g1 zW8eGtcE@wab7jE*z|SjWMaStX4j|LIp1v z^tWi{g5=x*B4l5ZxlY%6B8uMSRaCGLgiY-eap)TuG&VFOCMBs-8P#7T%^41-($mo; zCnepVtbPKwhlz=a?EU7=8*45NH8p}Dkv&hz<)R-yen?A8tE7Dazon&h@LF82kFE~q z<-dJXslOyC{qv_ypQY8~v7o4EffL%2fGUSW7MdrCfHxx5^RiH>m@K*%OjB4`*y`%) z-QAtf<9CH`-|mhYk7ZK%W)~JT6cw?tvDuR!Y`7LG4EldXM?XK^TPfiZdy{f=*WaFR zBOxGw6&f+Fig+uC2oFE9Ygc27kJ=5UMV0?>dpND9vr|Dy>FVNwDPiE~$dW3$*P$sn zd7;Vq+}p>ezprm@ejda=xVd}74nlwJ|JKO1FN}~goS3)!uE}_m4B2~ZYz*ukvBaa5 zm655bt@ZU!nWLehq3A?hOd{z>;E%&WypIo@8Qmk8P-s+x+wB?13utIzOQ+Px-VYBC zU=v&&%#Ke?Waa1YuB?z!P;@%1C2?AT30EbzMMOjdK@O%3>@HSTpI>x5J%b6PEVt)^XGUiO3& z>kYE1R+~=d%jc?`f7H;>FdR(01mTsDLFVjy+w6MX;(Si^{(XLCCKTlSo}K{qpLT(H zW2?zaapB?NFyxuue};fByXGc(kzVdIt@7#m~EZV8-@nPp$>8Zy7LHFh zuba9Q2R?_3jSUizX0wZ;xcK&Dp|VB^Nn0x<;GD9#Jl4n06I`yv{odjJ>JY4WaB#3W zW{%lZQ38uWaD4pCE5V16+1YxF`5K$`?)<#GfkgJgygcMPC52s1+2ekls4U15#AVm* zvsKZi&T1MMDJy6xoq-5(>9535GzQt-IHP2iL8Oa zrpb5?I8hi)$3@aCx?n)2c*N0MH3|X6FFSqQ7b}nz>z1D3Vc9QVEQVA03zbXJQBc%d z+_-5UY@eSVL6!nfkJg8?kc0$$c%etAuz1uV&B^uk^u)wMrBOt4^JA`Tn&D6~cY_-w z6Cx539<(z`Et^Ut;Ks$zPi*l{Mf@Z~y#3hvCnYa$(nnG}e0=ag5)~68s}^DQYK5Tp z&?Ed&!LL|{b~x|Q1c}VGdJ2AXfw;ZIGl7G^SoLZLPOpLxuPGc<09Ou#%rdCE-qXZ8<*eQzcyJQZS^{x;W_4!H;4*&M{8a|q% zX>Iwnb=%ii3)@4JYeF_&au6a0F1H620}FSTBaPzt_%9-4jAAPB(ld+vN9{fly}ha9 zIX_33>0pT%NEH;>)m2jzl;i4ubbS%=brfvbvFq**8};*>+})j5RHQyB(r9CXLC1wB zAe;x&{~C)dE6YjpGg=uhr?QE~VMRIj;*?mUhkIku0T)ReIv&AEP3ZCN!GVK=!1Ur^ z-H)!Y>nnd!;{~o!TIB_6uH>L6|uq2 zpkJq_B{4Byk~mWKkB)?-5dR3at-7J2LR(rkjD`iY>(44{YKR)Xv$0W8QPg3-Q8<{f ziRpzGd@O^t=6Y+p^VP+4uRo7w8=qBSbP84oBdf5`?r32vi4z4D_S?u5>iw+)X@c+R4st_q-==ZfzOtZ)Aj8_u-TdCz*#7yG6P@J2=1`5i zs=BPwbaEgkC*1x1mw`UTbZJ^hO>#N9HP^Gv_0fF_Z>ftb<6;ALCTm_w@|Lo4?advP zH%YDjr zn4L*J+SzIGaK8t$ZrqP=tJ9o|^Y)q5bC%GX6zlWF*=8|6KPq+Z zPB{9Je-Ydr98tJE9%@cNPxh~0YAmywpFa~=aAyi>X$4C=l;#=#ux*scWgUrStpVGJ zjS2O5>5Iq7A0`fm{;bb5!%~~@XkkIPj13!Gu?Gvz*bht_lx?f=TPLdnzklP7jt+^5 zB^sNpzJY_QM#1GUGTeGAkQ`JK%M5SLa z7}Msh1-%{uQ!ZL&R!$2lvczJmXH4;-c~v!O@7`o(Vj_>nBfG(alMQbpw{btFn-{eF zZ>D&f!$IBJk>%6*upu~I>X)RJ(jxP@N@_VJhvYUpStb;xx8dActxpw}i?f^kxdDE< zE?_;{n3~LRZ|^RZ^(&GfsLVQG=bOu^skNF;eg>mH->%j1{NJmlJU!FIC#jY=z0rFH zE~?@MWfuAJrN2N?x1wSl>otF8*R3A-q@DffbZG<)qm{Jma!C>DR@D!L73-pp*$&03 zwgtHX39(z0^n*sPr^V1>=D^kt?$rlzm|nO=>Amo3gS??(M@D8eEbK6ju`xW~UxqBG zyQi_HcAUdJ5Y|?$9>$vM4g`?waDSS>Bn3rXSUZFc0pUH%>|=i%qT_X4Dhbux4|uc{ z>)$_horY7hTA%JP2pbLh-XK(M{_)AlIp_*ee=Epvb_!#wh6#j`fw#9M6_o(LtHb)i ztlnMr=s#u3FGs1Ym%`UCXE+#l!D{xba(tZoTOT_g^11&kzO?em*8$ZU;a8H zgXB-Ks5QiP?&~_3!Pck5gJY`~I24Blg9OmMz1U@sMgfnen+AJWc1>J*aH`eOOfsuu zS{a#he!hXxDQ|i{zJdLHb;o0>{=RVN#J3Z-mtc`#Z*MpEr&3fK?B??22~V8bljHhc zFrnVxP-Nw{%1GOBvQ2zcNB4yD2(XQ-GiL!lFL&4P-xF7l(}(j`LL0k*kYQ_vv2kcJ`@W8z-h33f88Pt}P|xP4Ki%lf_`bmU z{Fwv`i_93MlPx7>(ZK;zyOkq5*R?XXG&rPxw)S|=_r)(pZIU+!pYM@j3xY!Q4Y1kR zs+beX(w3_uBh`zGH3>PzR!{5d>WbTzmPMqcZ`Qi#!3haDM5?Roe0>+r&KtY+JJ8T9 zR8Y^}S-C;vYptqhlsNtE%=o9=BA? zeISY8WK(GLSR}MCd4O^9w+)GSTd37UWAJZtQ@v)OD@x^4MK8h^AlumJ{*sh)@$@*o zB#s%~>vmOi0SzeKdAW}31+5pA9{2>iDmdA%-{I{1`*I(eKfzF?aEg0)$c7YNyz=(MMH5Vf{F5K<~3#K&$6juI%I| z1wG*oc@n8L@itZ>XC1s$-s_0IzV0W*ke+pYeF}GX`h&ymipy0P^ERgBgapr>uXod> zgG{JG80r>lzhkn~_+CJ4U;2YUc0O8g-rleaFBZiLa*~tNwK}F`V8|gO)2TSIP9MkD zKN}|(XPKKbe$42xv9V#0irq=i43&kTi>HFSxBU_9nv@xd0TTeVSTx<+td1AK`lL*l zHnt=a66S9AaC4YSVt71c1P=>px!xBqEO$(yTy3k!@@i^=o==!c#o(HVa9Z_0#6Grt zP@H^WEVb@hP^c~}Y)MVAv1-jVg-e4TaDRWST~&SSB+h9G=kbzkzz-#Y6qyRc8UvnQ zgNvQlRaW6QYZ)gQ4UGgbzp3l-5{dkHJ_bBykQ1K&`r40?DL<3CC)CosyuZEpwAWr@ zdI!tT$zpm11(GW2W~L@#pVUWdnVFg8EC|E{V{Vy_UbZ_#qK~-l+u*|O*do0|v zpRo}1)uyf17ZHf|a^~<&6x6v+LqzlfFI|PLrzuzx212O63A(t%%cgw;p}wn*?fnN_ zoR^oE|U zm`I?NhlC1e9a4|>CDloQte^UQLiY7CG&M# z1{4hy73i74fr0KY!nnvtFNGSQCRF9`Z{A+4BtgNhnvN16+ zk&@~M>U2ssCMJefsfaX6!o|fUS0<%n)f&i-qH%XOHyk<@QXnjHbFVjgqa!0RfLeV2 z{=KrYGSzw7pWp2j#9O=OZ*Xvco`{y9ASO-`e13SH@3M}lQr9&?%5G?45(Hg6acauR z*?Q~wz?_^2v|I>0RTTqcgqu<^G^9d>+VSvHQf{tw zg(#P5JsOUJL5A`yjE|3ZcKUw&XkNh_Bk4y9C`SROsG3@0%*_`xFc10p`5-j+Kl$1~UyaVI+O1Wz{CcVIEVZD3rkAEh0||tZ^I;pK_Cbs;o`rtvaw>#1%{32)4n%SL6SuN z<@)@*vbtKc$*DXxHnyznB(OtmeQhmACdE`&_Z>C$HUN|d2Xtg)ptettwzRYaG!5j? z%?A5@Qe-R~oGrfjazq?UW)y%fR#tReU0tz)HrCfG4F?H28DpoddHG@#`xh7xP!{TJ z^d4?bjSKPcF@Bt`25zuAtRyggyr2<}?A0fWx`DnD{7Um1$bRqlIFO=tq-MJ#P~Zjc z2UJ#`pV+EY=zj*gqoJW8J3G6+-dREddAbu;3~swNei?s!*cuHDExxk%1q%xcvP>^5 zDf<6;9rAJI|CNXTS1GQJs_?8uM>->vEa%ifMWv;4D=U$`5yLle_yDDKs)TS6awTJ+ zj*GjD4}@JAB#wpF;3TU*T^XXlHJaVRfr8oEbr zPO-ofxYEdMZr0C8ze!AF2`{(2{4qC;45(ZY5iTs`O!KyumVQElIYuqF&>{|0SRw&P zd%LQsDa+K9f8YiHIBri5TbKLWE>0T3Vb~8;U5fve-OSQdZl@U`@iWN6r?Zi9adS=1 z?Y+^Cc@qrqo4Ob))(!$5MSXvrnjMc{!gIc$!Z`W))9e+|&FHcqHz_Glu9-=hKYM-o z`5EPD?1A)6ex>E&OmE1t8W?CUQl*OnP5`Ryy&ak&4epA|W`CcM{*IBa_jPqWybcjT`bMVH|1CIK;n83+}Ms=u0J0d9{weD zEH_o0MEv&H<^D=lkU^dU}UI?+y4=C@4~AqtWRYFY-9LsqJZi)>Y#*l6SJ09pHdrfl+4q+pZ^^N_1 z@9)*Owqp65m?p%s-TLCSg39BHia1NPp&}5Xjz1;u!o1UT4G#A23u`N605k`?wCpIb83rDyCqDa=Lu>+yfhcZMoo71ljHLH z%B@y&j2^;)f+Jpz-eN(dI76FL8*qFq&GNePyfg^ ztU<2>VAkf5$LQEtTMv>SZ^j?e%?-Bao6~s<3-TElob^zX07u7b&R2Ls?(^L~+}sZ*aUi<=(d3rha{(=gnCkH0b)Y-k)fE$66wkJ^WXd5X z!HpXq8QD5)eq-_OKtdw0v%7&#{VJu>b|8k<*|>id!NLN_9GcIcN6)u8QBX3kg2g2z z7X}CE`1l%2O0enC{t9zBosiBEjHG8~&QG#WEiKKAjX^Bv;XabC(9`8WncQ~1^1!!K zQ3d*`>tOJtlsli-pPhA^P1mHi17di5?L;0FqIfC&wrCzhx>l2aQ=25x9(!(Hjg^C7nvRC(XJ{%skNT|7VsuTa|DpK9U z$6p#81kZ!?HX2fTu>3~W>i&2a$m_V2PH%KEF;&CEB?6MI zuOGJ#$C%y{p9O1WzIgb;%D($ga1Ln4QKZE8@Ni`FDZiI%YaO@@=H=zgb4|By8XD+x zKg2#68C`D;ZU>5V)Y~SBh%gZ^;$i40e*NmPE(S9vEH*szr{>?q*jiMSXDlh<1e(cmEdE5{ zE8uJGLzY9?QtDQVF6%28lXHDYW~>1LM%qm`I~TiX{~foN5^Xfwfazle8$n|zSdY60h@tW87lZA{+OUgty^>uSxIN$+So-G$C@F8IPjz+0)`ekbPq?tN5*0O} zEsT~;{nHc%IyGJ9KAr{!XaI$sZ_D!h=tQJfBwE`tq#`4;+ndmwN_!)@I8|KE!C^F_ z$W8=5z6yYug6Z~P5`v+j(9+UrtySyho|dS}NAT!l9$lQU3r^8=a=D|edG>fv!6tt6 zLSo_JZRE5FzP;V%A~;Mdu1`vwBPJq?`Q0rp!WHJisxuK4iE(>4fo z#iycT>37Veo@Z#Zwwar;fMc|0kRXJ8C8GY*zz&WnZeK*usD% z!QQ?&KcDgZO!Dl!70^U8_u)srh$U3Nqqlb$ z4vuwyZw?Rj>c;KeJ7GDwFh2yxRyJ-CCUtJVZ^NeJ=1h14N0tqsWdT#e8NzOc%Ba0` zx2Fh{)$gSOQj8O@n|_pz^vBuW53%p;>aySs_#l;Dzr|f42mHRUBO1vTOLNRWi;W-F_Y7G{ax zR9SYwzkrw8;K#ukFV(PljrpzuZB6GPw+_OSES$gpm_dngvfdq})q2G4%CYRrV~t!` zdv=nZR#=E1MB(4FeuqZeVPUbDE4%!uY^1J^sD|+kA4zTzp8(4kGq*G0umkP}2M9rK z$}XvI->MvsSfc_NKft1I(-$cl{G(*>CMM;--;|n+!@HG8c~({FKR(i zKumB5bF+Ese>adjjxRzc1iCXZ)no!H` z=%}B>!}ZC&Ns4uwDd}gIG5!45Haj=e+kd`XW5FD(9%mi%IeNo#VJ5$TM@S;@V=gO` zKyo5*tWJ*;Kx}V&%7dHwSAh^WBC#WIwL~gR7{hNak%SEDVXk-u~tPQQ^1K z%}K?|3KBLpJr7U3%I|{bxF<;KZ(sy+BJ-yOIu$Gu9b;9UT^gs_SUPbY2k@t$d2El^P7qDRUju~Mc zoMu9HCq8uYD-sMCA}J&Yr1?Jw*nlySrMWrL>(@SYZ(5*jZ7XM+{lHKbzqe;fgs!X| z(Kbfutt{wHiF+0!&-S5~?q4@atL^;5l@T+&D z(eW4u7Z=bRU@Rgpd=0@Px8Ab`CMQo%Pgd4SU=yIEpdih7;r%Bt5E&p;cXxMS1puZo z(A5T(A#|sWyUTrT0BcOfsff^xz%5~7GP~ck?i&JlhZ)of09ovW`~4NYN|~1k*CMf}0SpH$9Dttuvlk(K!T^9XCqMuFyLaU}?cQ;W+UP1Sy1ME0_1r-sW22+D z=fi@)lmfr&iEYk~DD+iPF(x~k61+7&E+r###9wR0xY*W4N=oW=`2F6f3$c4YAiD1- z=?++^$0T_Ri$ht#M+$0cYDUK6jg5(!87{j!3{rVl>$iXPS=9Ty22yxAd3X{pRlzL^ z39W)L0({(zq_3}!f$aN4jn10F{woRqvLrGF2EekA#`TPiomM*#rnaZ1l(2#>c1Fpk z(tycLt;Nl`bOL-Gxa?}Hs^Ae2q9n5B=G5@~flUhdkZ9fj+g5*xW+SjA^y)AHH-(?C zFA2ZP#O!QBQc@%E&pd7J?e7=n=kq(CWdT?hA@~#-9j#Y^!-oH>8te(Mt&;-WqXF#v z=knOmLu?FgVMm0X0DG0Wxw)ySX>dpg2msKUDlGK5U)+IVjHNGZ3C-}RsH`+IHTAc> z{Uk3hADxoIf5A+oG^8`wJ27F`6^sqww04V|YL)S5FgC5qEo$si?XP>5hN;O`MbecM z!KWLaLkK#tO!`+9?a1c$l9G~eQ?MvC>J`9Bf=0;E#T7v0gXJezFq{IvYNw{#y6Ttb) zM-4f-)7x_+WbfZGF{*GL@UTB6vjKSoQ>oSLGC4gx{r9gi$a%N7w{WqP)YLt9q*PQO z0F8{c|1!k%qi%lyKNJ)cE{r1T>aJxAVm9R}C2xmlb3JW8FfvkO1p#ng)cK!%P(e#e zK;>@aC1yT9Jh-tvjbu`C@=V~!JD6piN_#8dwzIP{GX2&rh@J0AP&qv}mlK$SfRzyJ zJP=Or(ml8HDjx>Ch0_61&MPcjKfM8shZb$uB1QyoJL5!0oFOkX|g zTwK-F*Aw%*un7u+I?)A$9dMxV@c5Ke&Nx>Wm#N7~Ihr?MAeh+gO1Ewbg2~D<&s)H( zS#7=A0m2V>c4Fe3eUt$uFT%oHVH{zip7B2S_a1fd_q@|@5 z7axKaM0Hh_ub-bP9K26C;MsuFGc%Vjt!jW_^O3Xy!<>?19xiB-fGh~yjKC=iOuA(m zDF0s&{oT~`13kTkt}e63!_8}I844;YNy+b=4LVGSjW25m$fJ9KQwbzI5LAGklYhwY z+&o7~Rvz*i43ee-I(8_Y89FlZRaKRnfg#-fL}ync*Xr0Vp4?(4x3JKx!}kSfmmDVL zm6m$$j!{-oTz2$FakTivkz2sNP!^jjLqvrd4JBi~eqC9wkk1k@oQo|I7l~@TP3Wozds^hlPEcoYyQdIrI`pe48#qx%m-}GZ8VVo zi=_Vp)d?_Sb6BrmJD2Jme3g?+&+u*=g28|vHLhBE5##j~+TNEwY77?NT^`Z8E+vJy z^deL)a?aLUGP}j|nIx(R{#UswxB2}?j$3Ge^ds{bE{_0}_Fv*JYVFG77D Qa9~3|i^_ - - - - - - diff --git a/doc/lr1110/html/lr1110__regmem_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__regmem_8h__dep__incl.md5 deleted file mode 100644 index 6ab3461..0000000 --- a/doc/lr1110/html/lr1110__regmem_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -03db28e2c5d949370c79738a6512a1a3 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__regmem_8h__dep__incl.png b/doc/lr1110/html/lr1110__regmem_8h__dep__incl.png deleted file mode 100644 index a8242a33d22f2419c668ce37ae05759a6e703f33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11839 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 diff --git a/doc/lr1110/html/lr1110__regmem_8h__incl.map b/doc/lr1110/html/lr1110__regmem_8h__incl.map deleted file mode 100644 index 42743e3..0000000 --- a/doc/lr1110/html/lr1110__regmem_8h__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/doc/lr1110/html/lr1110__regmem_8h__incl.md5 b/doc/lr1110/html/lr1110__regmem_8h__incl.md5 deleted file mode 100644 index d467ce5..0000000 --- a/doc/lr1110/html/lr1110__regmem_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -9319cffc6031bbaa89c863c0804a16b4 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__regmem_8h__incl.png b/doc/lr1110/html/lr1110__regmem_8h__incl.png deleted file mode 100644 index 98900abf314ff8d9bb1af7fa95279927b2ffd6a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6539 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 Ln)2nc=7|3RVR~su diff --git a/doc/lr1110/html/lr1110__system_8c__incl.map b/doc/lr1110/html/lr1110__system_8c__incl.map deleted file mode 100644 index 856e85a..0000000 --- a/doc/lr1110/html/lr1110__system_8c__incl.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/doc/lr1110/html/lr1110__system_8c__incl.md5 b/doc/lr1110/html/lr1110__system_8c__incl.md5 deleted file mode 100644 index a0abed2..0000000 --- a/doc/lr1110/html/lr1110__system_8c__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -1547490ab353ef00a095955b7d6857b5 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__system_8c__incl.png b/doc/lr1110/html/lr1110__system_8c__incl.png deleted file mode 100644 index 4bd71fe739082f764311ee88c2bf932fc5d5f078..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17483 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 diff --git a/doc/lr1110/html/lr1110__system_8h__dep__incl.map b/doc/lr1110/html/lr1110__system_8h__dep__incl.map deleted file mode 100644 index b7a0f4d..0000000 --- a/doc/lr1110/html/lr1110__system_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/doc/lr1110/html/lr1110__system_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__system_8h__dep__incl.md5 deleted file mode 100644 index 791a2d2..0000000 --- a/doc/lr1110/html/lr1110__system_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -6ef5bcb2cd349e29fa131a6e4e70d6f5 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__system_8h__dep__incl.png b/doc/lr1110/html/lr1110__system_8h__dep__incl.png deleted file mode 100644 index 0a7ec7d8819741ed163b58a720c2e3789f4146b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5345 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 diff --git a/doc/lr1110/html/lr1110__system_8h__incl.map b/doc/lr1110/html/lr1110__system_8h__incl.map deleted file mode 100644 index e38e564..0000000 --- a/doc/lr1110/html/lr1110__system_8h__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/doc/lr1110/html/lr1110__system_8h__incl.md5 b/doc/lr1110/html/lr1110__system_8h__incl.md5 deleted file mode 100644 index 69042ae..0000000 --- a/doc/lr1110/html/lr1110__system_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -47cb915d9e708f1e899531182b83eb87 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__system_8h__incl.png b/doc/lr1110/html/lr1110__system_8h__incl.png deleted file mode 100644 index 90f008e11b46edcdc72f766d0ca0af3a64829b8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9529 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 ZnfHK-z6(*c8=QrL$V)3rl}i{0{~vvZ)5!n; diff --git a/doc/lr1110/html/lr1110__system_8h_source.html b/doc/lr1110/html/lr1110__system_8h_source.html deleted file mode 100644 index ca0636c..0000000 --- a/doc/lr1110/html/lr1110__system_8h_source.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_system.h Source File - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
lr1110_system.h
-
-
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_SYSTEM_H
-
36 #define LR1110_SYSTEM_H
-
37 
-
38 #ifdef __cplusplus
-
39 extern "C" {
-
40 #endif
-
41 
-
42 /*
-
43  * -----------------------------------------------------------------------------
-
44  * --- DEPENDENCIES ------------------------------------------------------------
-
45  */
-
46 
-
47 #include "lr1110_system_types.h"
-
48 #include "lr1110_types.h"
-
49 
-
50 /*
-
51  * -----------------------------------------------------------------------------
-
52  * --- PUBLIC MACROS -----------------------------------------------------------
-
53  */
-
54 
-
55 /*
-
56  * -----------------------------------------------------------------------------
-
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
-
58  */
-
59 
-
65 #define LR1110_SYSTEM_IMAGE_CALIBRATION_STEP_IN_MHZ 4
-
66 
-
67 /*
-
68  * -----------------------------------------------------------------------------
-
69  * --- PUBLIC TYPES ------------------------------------------------------------
-
70  */
-
71 
-
72 /*
-
73  * -----------------------------------------------------------------------------
-
74  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
-
75  */
-
76 
-
84 lr1110_status_t lr1110_system_reset( const void* context );
-
85 
-
93 lr1110_status_t lr1110_system_wakeup( const void* context );
-
94 
- -
113  lr1110_system_stat2_t* stat2, lr1110_system_irq_mask_t* irq_status );
-
114 
- -
123 
-
132 static inline lr1110_status_t lr1110_system_get_irq_status( const void* context, lr1110_system_irq_mask_t* irq_status )
-
133 {
-
134  return lr1110_system_get_status( context, 0, 0, irq_status );
-
135 }
-
136 
-
145 lr1110_status_t lr1110_system_get_version( const void* context, lr1110_system_version_t* version );
-
146 
-
163 lr1110_status_t lr1110_system_get_errors( const void* context, uint16_t* errors );
-
164 
-
176 lr1110_status_t lr1110_system_clear_errors( const void* context );
-
177 
-
193 lr1110_status_t lr1110_system_calibrate( const void* context, const uint8_t calib_param );
-
194 
-
208 lr1110_status_t lr1110_system_set_reg_mode( const void* context, const lr1110_system_reg_mode_t reg_mode );
-
209 
-
231 lr1110_status_t lr1110_system_calibrate_image( const void* context, const uint8_t freq1, const uint8_t freq2 );
-
232 
-
248 lr1110_status_t lr1110_system_calibrate_image_in_mhz( const void* context, const uint16_t freq1_in_mhz,
-
249  const uint16_t freq2_in_mhz );
-
250 
- -
264  const lr1110_system_rfswitch_cfg_t* rf_switch_cfg );
-
265 
- -
283  const lr1110_system_irq_mask_t irqs_to_enable_dio1,
-
284  const lr1110_system_irq_mask_t irqs_to_enable_dio2 );
-
285 
-
294 lr1110_status_t lr1110_system_clear_irq_status( const void* context, const lr1110_system_irq_mask_t irqs_to_clear );
-
295 
- -
307 
-
319 lr1110_status_t lr1110_system_cfg_lfclk( const void* context, const lr1110_system_lfclk_cfg_t lfclock_cfg,
-
320  const bool wait_for_32k_ready );
-
321 
- -
341  const uint32_t timeout );
-
342 
-
356 lr1110_status_t lr1110_system_reboot( const void* context, const bool stay_in_bootloader );
-
357 
-
369 lr1110_status_t lr1110_system_get_vbat( const void* context, uint8_t* vbat );
-
370 
-
386 lr1110_status_t lr1110_system_get_temp( const void* context, uint16_t* temp );
-
387 
-
405 lr1110_status_t lr1110_system_set_sleep( const void* context, const lr1110_system_sleep_cfg_t sleep_cfg,
-
406  const uint32_t sleep_time );
-
407 
-
418 lr1110_status_t lr1110_system_set_standby( const void* context, const lr1110_system_standby_cfg_t standby_cfg );
-
419 
-
429 lr1110_status_t lr1110_system_set_fs( const void* context );
-
430 
-
441 lr1110_status_t lr1110_system_erase_infopage( const void* context, const lr1110_system_infopage_id_t info_page_id );
-
442 
-
456 lr1110_status_t lr1110_system_write_infopage( const void* context, const lr1110_system_infopage_id_t info_page_id,
-
457  const uint16_t address, const uint32_t* data, const uint8_t length );
-
458 
-
474 lr1110_status_t lr1110_system_read_infopage( const void* context, const lr1110_system_infopage_id_t info_page_id,
-
475  const uint16_t address, uint32_t* data, const uint8_t length );
-
476 
-
488 lr1110_status_t lr1110_system_read_uid( const void* context, lr1110_system_uid_t unique_identifier );
-
489 
- -
502 
- -
518 
- -
537  lr1110_system_join_eui_t join_eui, uint8_t rfu,
-
538  lr1110_system_pin_t pin );
-
539 
-
550 lr1110_status_t lr1110_system_get_random_number( const void* context, uint32_t* random_number );
-
551 
-
563 lr1110_status_t lr1110_system_enable_spi_crc( const void* context, bool enable_crc );
-
564 
-
577 lr1110_status_t lr1110_system_drive_dio_in_sleep_mode( const void* context, bool enable_drive );
-
578 
-
579 #ifdef __cplusplus
-
580 }
-
581 #endif
-
582 
-
583 #endif // LR1110_SYSTEM_H
-
584 
-
585 /* --- EOF ------------------------------------------------------------------ */
-
-
lr1110_status_t lr1110_system_clear_errors(const void *context)
Clear all error flags pending.
Definition: lr1110_system.c:234
-
lr1110_status_t lr1110_system_set_reg_mode(const void *context, const lr1110_system_reg_mode_t reg_mode)
Configure the regulator mode to be used in specific modes.
Definition: lr1110_system.c:255
-
lr1110_status_t lr1110_system_get_vbat(const void *context, uint8_t *vbat)
Returns the value of Vbat.
Definition: lr1110_system.c:400
-
lr1110_status_t lr1110_system_read_join_eui(const void *context, lr1110_system_join_eui_t join_eui)
Read and return the Join EUI of the LR1110.
Definition: lr1110_system.c:549
-
lr1110_status_t lr1110_system_calibrate(const void *context, const uint8_t calib_param)
lr1110_system_calibrate the requested blocks
Definition: lr1110_system.c:244
-
lr1110_status_t lr1110_system_calibrate_image(const void *context, const uint8_t freq1, const uint8_t freq2)
Launch an image calibration valid for all frequencies inside an interval, in steps.
Definition: lr1110_system.c:266
-
lr1110_system_lfclk_cfg_t
Low-frequency clock modes.
Definition: lr1110_system_types.h:206
-
lr1110_status_t lr1110_system_write_infopage(const void *context, const lr1110_system_infopage_id_t info_page_id, const uint16_t address, const uint32_t *data, const uint8_t length)
Write data in an info page.
Definition: lr1110_system.c:483
-
lr1110_system_tcxo_supply_voltage_t
TCXO supply voltage values.
Definition: lr1110_system_types.h:270
-
lr1110_status_t lr1110_system_get_version(const void *context, lr1110_system_version_t *version)
Return the version of the system (hardware and software)
Definition: lr1110_system.c:194
-
lr1110_status_t lr1110_system_wakeup(const void *context)
Wake the radio up from sleep mode.
Definition: lr1110_system.c:457
-
uint32_t lr1110_system_irq_mask_t
Type to store system interrupt flags.
Definition: lr1110_system_types.h:97
-
lr1110_status_t lr1110_system_drive_dio_in_sleep_mode(const void *context, bool enable_drive)
Configure the GPIO drive in sleep mode.
Definition: lr1110_system.c:623
-
lr1110_status_t lr1110_system_set_fs(const void *context)
Set the device into Frequency Synthesis (FS) mode.
Definition: lr1110_system.c:462
-
RF switch configuration structure definition.
Definition: lr1110_system_types.h:246
-
lr1110_status_t lr1110_system_get_errors(const void *context, uint16_t *errors)
Return the system errors.
Definition: lr1110_system.c:215
-
lr1110_system_infopage_id_t
Info page ID.
Definition: lr1110_system_types.h:225
-
lr1110_status_t lr1110_system_read_pin_custom_eui(const void *context, lr1110_system_uid_t device_eui, lr1110_system_join_eui_t join_eui, uint8_t rfu, lr1110_system_pin_t pin)
Compute and return the PIN of the LR1110 based on EUIs provided as parameters.
Definition: lr1110_system.c:571
-
lr1110_status_t lr1110_system_set_dio_irq_params(const void *context, const lr1110_system_irq_mask_t irqs_to_enable_dio1, const lr1110_system_irq_mask_t irqs_to_enable_dio2)
Set which interrupt signals are redirected to the dedicated DIO pin.
Definition: lr1110_system.c:311
-
uint8_t lr1110_system_join_eui_t[LR1110_SYSTEM_JOIN_EUI_LENGTH]
Fixed-length array to store a joinEUI.
Definition: lr1110_system_types.h:87
-
lr1110_status_t lr1110_system_enable_spi_crc(const void *context, bool enable_crc)
Enable the CRC on SPI transactions.
Definition: lr1110_system.c:612
-
static lr1110_status_t lr1110_system_get_irq_status(const void *context, lr1110_system_irq_mask_t *irq_status)
Return irq_status.
Definition: lr1110_system.h:132
-
uint8_t lr1110_system_uid_t[LR1110_SYSTEM_UID_LENGTH]
Fixed-length array to store a UID.
Definition: lr1110_system_types.h:82
-
lr1110_status_t lr1110_system_erase_infopage(const void *context, const lr1110_system_infopage_id_t info_page_id)
Erase an info page.
Definition: lr1110_system.c:472
-
lr1110_status_t lr1110_system_get_temp(const void *context, uint16_t *temp)
Returns the value of Temp.
Definition: lr1110_system.c:411
-
lr1110_status_t lr1110_system_get_and_clear_irq_status(const void *context, lr1110_system_irq_mask_t *irq)
This helper function clears any radio irq status flags that are set and returns the flags that were c...
Definition: lr1110_system.c:344
-
lr1110_status_t lr1110_system_set_standby(const void *context, const lr1110_system_standby_cfg_t standby_cfg)
Set the device into the requested Standby mode.
Definition: lr1110_system.c:446
-
lr1110_status_t lr1110_system_clear_reset_status_info(const void *context)
Clear the reset status information stored in stat2.
Definition: lr1110_system.c:184
-
lr1110_status_t lr1110_system_read_pin(const void *context, lr1110_system_pin_t pin)
Compute and return the PIN of the LR1110 based on factory default EUIs.
Definition: lr1110_system.c:560
-
lr1110_status_t lr1110_system_reboot(const void *context, const bool stay_in_bootloader)
Software reset of the chip.
Definition: lr1110_system.c:389
-
lr1110_status_t lr1110_system_set_tcxo_mode(const void *context, const lr1110_system_tcxo_supply_voltage_t tune, const uint32_t timeout)
Enable and configure TCXO supply voltage and detection timeout.
Definition: lr1110_system.c:374
-
Sleep configuration structure definition.
Definition: lr1110_system_types.h:314
-
lr1110_status_t lr1110_system_read_uid(const void *context, lr1110_system_uid_t unique_identifier)
Read and return the Unique Identifier of the LR1110.
Definition: lr1110_system.c:538
-
lr1110_status_t lr1110_system_read_infopage(const void *context, const lr1110_system_infopage_id_t info_page_id, const uint16_t address, uint32_t *data, const uint8_t length)
Read data from an info page.
Definition: lr1110_system.c:509
-
lr1110_status_t lr1110_system_clear_irq_status(const void *context, const lr1110_system_irq_mask_t irqs_to_clear)
Clear requested bits in the internal pending interrupt register.
Definition: lr1110_system.c:330
-
lr1110_status_t lr1110_system_reset(const void *context)
Reset the radio.
Definition: lr1110_system.c:156
-
Status register 2 structure definition.
Definition: lr1110_system_types.h:294
-
lr1110_status_t lr1110_system_cfg_lfclk(const void *context, const lr1110_system_lfclk_cfg_t lfclock_cfg, const bool wait_for_32k_ready)
Defines which clock is used as Low Frequency (LF) clock.
Definition: lr1110_system.c:362
-
lr1110_system_standby_cfg_t
Stand by configuration values.
Definition: lr1110_system_types.h:261
-
lr1110_status_t lr1110_system_get_random_number(const void *context, uint32_t *random_number)
Read and return a 32-bit random number.
Definition: lr1110_system.c:601
-
lr1110_status_t lr1110_system_set_dio_as_rf_switch(const void *context, const lr1110_system_rfswitch_cfg_t *rf_switch_cfg)
Set the RF switch configurations for each RF setup.
Definition: lr1110_system.c:291
-
lr1110_system_reg_mode_t
Regulator modes.
Definition: lr1110_system_types.h:216
-
Status register 1 structure definition.
Definition: lr1110_system_types.h:285
-
Type definitions for LR1110.
-
lr1110_status_t lr1110_system_set_sleep(const void *context, const lr1110_system_sleep_cfg_t sleep_cfg, const uint32_t sleep_time)
Set the device into Sleep or Deep Sleep Mode.
Definition: lr1110_system.c:430
-
enum lr1110_status_e lr1110_status_t
LR1110 status.
-
lr1110_status_t lr1110_system_calibrate_image_in_mhz(const void *context, const uint16_t freq1_in_mhz, const uint16_t freq2_in_mhz)
Launch an image calibration valid for all frequencies inside an interval, in MHz.
Definition: lr1110_system.c:278
-
Version structure definition.
Definition: lr1110_system_types.h:304
-
lr1110_status_t lr1110_system_get_status(const void *context, lr1110_system_stat1_t *stat1, lr1110_system_stat2_t *stat2, lr1110_system_irq_mask_t *irq_status)
Return stat1, stat2, and irq_status.
Definition: lr1110_system.c:161
-
uint8_t lr1110_system_pin_t[LR1110_SYSTEM_PIN_LENGTH]
Fixed-length array to store a PIN.
Definition: lr1110_system_types.h:92
-
System driver types for LR1110.
- - - - diff --git a/doc/lr1110/html/lr1110__system__types_8h.html b/doc/lr1110/html/lr1110__system__types_8h.html deleted file mode 100644 index bb1aae5..0000000 --- a/doc/lr1110/html/lr1110__system__types_8h.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_system_types.h File Reference - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
lr1110_system_types.h File Reference
-
-
- -

System driver types for LR1110. -More...

-
#include <stdint.h>
-#include <stdbool.h>
-
-Include dependency graph for lr1110_system_types.h:
-
-
- - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - -

-Data Structures

struct  lr1110_system_rfswitch_cfg_s
 RF switch configuration structure definition. More...
 
struct  lr1110_system_stat1_s
 Status register 1 structure definition. More...
 
struct  lr1110_system_stat2_s
 Status register 2 structure definition. More...
 
struct  lr1110_system_version_s
 Version structure definition. More...
 
struct  lr1110_system_sleep_cfg_s
 Sleep configuration structure definition. More...
 
- - - - - - - - - - - -

-Macros

-#define LR1110_SYSTEM_VERSION_LENGTH   ( 4 )
 Length in byte of the LR1110 version blob.
 
#define LR1110_SYSTEM_UID_LENGTH   ( 8 )
 Length of the LR1110 Unique Identifier in bytes. More...
 
-#define LR1110_SYSTEM_JOIN_EUI_LENGTH   ( 8 )
 
-#define LR1110_SYSTEM_PIN_LENGTH   ( 4 )
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef uint8_t lr1110_system_uid_t[LR1110_SYSTEM_UID_LENGTH]
 Fixed-length array to store a UID.
 
-typedef uint8_t lr1110_system_join_eui_t[LR1110_SYSTEM_JOIN_EUI_LENGTH]
 Fixed-length array to store a joinEUI.
 
-typedef uint8_t lr1110_system_pin_t[LR1110_SYSTEM_PIN_LENGTH]
 Fixed-length array to store a PIN.
 
-typedef uint32_t lr1110_system_irq_mask_t
 Type to store system interrupt flags.
 
-typedef uint8_t lr1110_system_cal_mask_t
 
-typedef uint16_t lr1110_system_errors_t
 
-typedef struct lr1110_system_rfswitch_cfg_s lr1110_system_rfswitch_cfg_t
 RF switch configuration structure definition.
 
-typedef struct lr1110_system_stat1_s lr1110_system_stat1_t
 Status register 1 structure definition.
 
-typedef struct lr1110_system_stat2_s lr1110_system_stat2_t
 Status register 2 structure definition.
 
-typedef struct lr1110_system_version_s lr1110_system_version_t
 Version structure definition.
 
-typedef struct lr1110_system_sleep_cfg_s lr1110_system_sleep_cfg_t
 Sleep configuration structure definition.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Enumerations

enum  lr1110_system_irq_e {
-  LR1110_SYSTEM_IRQ_NONE = ( 0 << 0 ), -LR1110_SYSTEM_IRQ_TX_DONE = ( 1 << 2 ), -LR1110_SYSTEM_IRQ_RX_DONE = ( 1 << 3 ), -LR1110_SYSTEM_IRQ_PREAMBLE_DETECTED = ( 1 << 4 ), -
-  LR1110_SYSTEM_IRQ_SYNC_WORD_HEADER_VALID = ( 1 << 5 ), -LR1110_SYSTEM_IRQ_HEADER_ERROR = ( 1 << 6 ), -LR1110_SYSTEM_IRQ_CRC_ERROR = ( 1 << 7 ), -LR1110_SYSTEM_IRQ_CAD_DONE = ( 1 << 8 ), -
-  LR1110_SYSTEM_IRQ_CAD_DETECTED = ( 1 << 9 ), -LR1110_SYSTEM_IRQ_TIMEOUT = ( 1 << 10 ), -LR1110_SYSTEM_IRQ_LR_FHSS_INTRA_PKT_HOP = ( 1 << 11 ), -LR1110_SYSTEM_IRQ_GNSS_SCAN_DONE = ( 1 << 19 ), -
-  LR1110_SYSTEM_IRQ_WIFI_SCAN_DONE = ( 1 << 20 ), -LR1110_SYSTEM_IRQ_EOL = ( 1 << 21 ), -LR1110_SYSTEM_IRQ_CMD_ERROR = ( 1 << 22 ), -LR1110_SYSTEM_IRQ_ERROR = ( 1 << 23 ), -
-  LR1110_SYSTEM_IRQ_FSK_LEN_ERROR = ( 1 << 24 ), -LR1110_SYSTEM_IRQ_FSK_ADDR_ERROR = ( 1 << 25 ), -LR1110_SYSTEM_IRQ_ALL_MASK -
- }
 Interrupt flags.
 
enum  lr1110_system_calibration_e {
-  LR1110_SYSTEM_CALIB_LF_RC_MASK = ( 1 << 0 ), -LR1110_SYSTEM_CALIB_HF_RC_MASK = ( 1 << 1 ), -LR1110_SYSTEM_CALIB_PLL_MASK = ( 1 << 2 ), -LR1110_SYSTEM_CALIB_ADC_MASK = ( 1 << 3 ), -
-  LR1110_SYSTEM_CALIB_IMG_MASK = ( 1 << 4 ), -LR1110_SYSTEM_CALIB_PLL_TX_MASK = ( 1 << 5 ) -
- }
 Calibration flags.
 
enum  lr1110_system_errors_e {
-  LR1110_SYSTEM_ERRORS_LF_RC_CALIB_MASK = ( 1 << 0 ), -LR1110_SYSTEM_ERRORS_HF_RC_CALIB_MASK = ( 1 << 1 ), -LR1110_SYSTEM_ERRORS_ADC_CALIB_MASK = ( 1 << 2 ), -LR1110_SYSTEM_ERRORS_PLL_CALIB_MASK = ( 1 << 3 ), -
-  LR1110_SYSTEM_ERRORS_IMG_CALIB_MASK = ( 1 << 4 ), -LR1110_SYSTEM_ERRORS_HF_XOSC_START_MASK = ( 1 << 5 ), -LR1110_SYSTEM_ERRORS_LF_XOSC_START_MASK = ( 1 << 6 ), -LR1110_SYSTEM_ERRORS_PLL_LOCK_MASK = ( 1 << 7 ) -
- }
 Error flags.
 
enum  lr1110_system_chip_modes_t {
-  LR1110_SYSTEM_CHIP_MODE_SLEEP = 0x00, -LR1110_SYSTEM_CHIP_MODE_STBY_RC = 0x01, -LR1110_SYSTEM_CHIP_MODE_STBY_XOSC = 0x02, -LR1110_SYSTEM_CHIP_MODE_FS = 0x03, -
-  LR1110_SYSTEM_CHIP_MODE_RX = 0x04, -LR1110_SYSTEM_CHIP_MODE_TX = 0x05, -LR1110_SYSTEM_CHIP_MODE_LOC = 0x06 -
- }
 Chip modes.
 
enum  lr1110_system_reset_status_t {
-  LR1110_SYSTEM_RESET_STATUS_CLEARED = 0x00, -LR1110_SYSTEM_RESET_STATUS_ANALOG = 0x01, -LR1110_SYSTEM_RESET_STATUS_EXTERNAL = 0x02, -LR1110_SYSTEM_RESET_STATUS_SYSTEM = 0x03, -
-  LR1110_SYSTEM_RESET_STATUS_WATCHDOG = 0x04, -LR1110_SYSTEM_RESET_STATUS_IOCD_RESTART = 0x05, -LR1110_SYSTEM_RESET_STATUS_RTC_RESTART = 0x06 -
- }
 Reset status.
 
enum  lr1110_system_command_status_t { LR1110_SYSTEM_CMD_STATUS_FAIL = 0x00, -LR1110_SYSTEM_CMD_STATUS_PERR = 0x01, -LR1110_SYSTEM_CMD_STATUS_OK = 0x02, -LR1110_SYSTEM_CMD_STATUS_DATA = 0x03 - }
 Command status.
 
enum  lr1110_system_lfclk_cfg_t { LR1110_SYSTEM_LFCLK_RC = 0x00, -LR1110_SYSTEM_LFCLK_XTAL = 0x01, -LR1110_SYSTEM_LFCLK_EXT = 0x02 - }
 Low-frequency clock modes. More...
 
enum  lr1110_system_reg_mode_t { LR1110_SYSTEM_REG_MODE_LDO = 0x00, -LR1110_SYSTEM_REG_MODE_DCDC = 0x01 - }
 Regulator modes. More...
 
enum  lr1110_system_infopage_id_t { LR1110_SYSTEM_INFOPAGE_0 = 0x00, -LR1110_SYSTEM_INFOPAGE_1 = 0x01 - }
 Info page ID. More...
 
enum  lr1110_system_rfswitch_cfg_pin_e {
-  LR1110_SYSTEM_RFSW0_HIGH = ( 1 << 0 ), -LR1110_SYSTEM_RFSW1_HIGH = ( 1 << 1 ), -LR1110_SYSTEM_RFSW2_HIGH = ( 1 << 2 ), -LR1110_SYSTEM_RFSW3_HIGH = ( 1 << 3 ), -
-  LR1110_SYSTEM_RFSW4_HIGH = ( 1 << 4 ) -
- }
 RF switch configuration pin.
 
enum  lr1110_system_standby_cfg_t { LR1110_SYSTEM_STANDBY_CFG_RC = 0x00, -LR1110_SYSTEM_STANDBY_CFG_XOSC = 0x01 - }
 Stand by configuration values.
 
enum  lr1110_system_tcxo_supply_voltage_t {
-  LR1110_SYSTEM_TCXO_CTRL_1_6V = 0x00, -LR1110_SYSTEM_TCXO_CTRL_1_7V = 0x01, -LR1110_SYSTEM_TCXO_CTRL_1_8V = 0x02, -LR1110_SYSTEM_TCXO_CTRL_2_2V = 0x03, -
-  LR1110_SYSTEM_TCXO_CTRL_2_4V = 0x04, -LR1110_SYSTEM_TCXO_CTRL_2_7V = 0x05, -LR1110_SYSTEM_TCXO_CTRL_3_0V = 0x06, -LR1110_SYSTEM_TCXO_CTRL_3_3V = 0x07 -
- }
 TCXO supply voltage values. More...
 
-

Detailed Description

-

System driver types for LR1110.

-

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

-

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    -
  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • -
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • -
  • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  • -
-

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-

Macro Definition Documentation

- -

◆ LR1110_SYSTEM_UID_LENGTH

- -
-
- - - - -
#define LR1110_SYSTEM_UID_LENGTH   ( 8 )
-
- -

Length of the LR1110 Unique Identifier in bytes.

-

The LR1110 Unique Identifiers is an 8 byte long buffer

- -
-
-

Enumeration Type Documentation

- -

◆ lr1110_system_lfclk_cfg_t

- -
-
- - - - -
enum lr1110_system_lfclk_cfg_t
-
- -

Low-frequency clock modes.

- - -
Enumerator
LR1110_SYSTEM_LFCLK_RC 

(Default)

-
- -
-
- -

◆ lr1110_system_reg_mode_t

- -
-
- - - - -
enum lr1110_system_reg_mode_t
-
- -

Regulator modes.

- - -
Enumerator
LR1110_SYSTEM_REG_MODE_LDO 

(Default)

-
- -
-
- -

◆ lr1110_system_infopage_id_t

- -
-
- - - - -
enum lr1110_system_infopage_id_t
-
- -

Info page ID.

- - - -
Enumerator
LR1110_SYSTEM_INFOPAGE_0 

Info page #0.

-
LR1110_SYSTEM_INFOPAGE_1 

Info page #1.

-
- -
-
- -

◆ lr1110_system_tcxo_supply_voltage_t

- -
-
- -

TCXO supply voltage values.

- - - - - - - - - -
Enumerator
LR1110_SYSTEM_TCXO_CTRL_1_6V 

Supply voltage = 1.6v.

-
LR1110_SYSTEM_TCXO_CTRL_1_7V 

Supply voltage = 1.7v.

-
LR1110_SYSTEM_TCXO_CTRL_1_8V 

Supply voltage = 1.8v.

-
LR1110_SYSTEM_TCXO_CTRL_2_2V 

Supply voltage = 2.2v.

-
LR1110_SYSTEM_TCXO_CTRL_2_4V 

Supply voltage = 2.4v.

-
LR1110_SYSTEM_TCXO_CTRL_2_7V 

Supply voltage = 2.7v.

-
LR1110_SYSTEM_TCXO_CTRL_3_0V 

Supply voltage = 3.0v.

-
LR1110_SYSTEM_TCXO_CTRL_3_3V 

Supply voltage = 3.3v.

-
- -
-
-
- - - - diff --git a/doc/lr1110/html/lr1110__system__types_8h__dep__incl.map b/doc/lr1110/html/lr1110__system__types_8h__dep__incl.map deleted file mode 100644 index e6926cc..0000000 --- a/doc/lr1110/html/lr1110__system__types_8h__dep__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/doc/lr1110/html/lr1110__system__types_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__system__types_8h__dep__incl.md5 deleted file mode 100644 index 895499b..0000000 --- a/doc/lr1110/html/lr1110__system__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -f35bafba9816ca007f3bc594bf6c73c8 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__system__types_8h__dep__incl.png b/doc/lr1110/html/lr1110__system__types_8h__dep__incl.png deleted file mode 100644 index ca6955eceed57408493398a8a5f43abce542ff60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8422 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 G<$nOeAx=>M diff --git a/doc/lr1110/html/lr1110__system__types_8h__incl.md5 b/doc/lr1110/html/lr1110__system__types_8h__incl.md5 deleted file mode 100644 index 2f42bc8..0000000 --- a/doc/lr1110/html/lr1110__system__types_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -acc231913d3d140a318d55859c2aa554 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__system__types_8h__incl.png b/doc/lr1110/html/lr1110__system__types_8h__incl.png deleted file mode 100644 index fb93d0ea57dd332c40d09b9ac5ff81aee96bd650..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6125 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 MvbIvCf;HlQ04C?ZTmS$7 diff --git a/doc/lr1110/html/lr1110__system__types_8h_source.html b/doc/lr1110/html/lr1110__system__types_8h_source.html deleted file mode 100644 index 37fcb67..0000000 --- a/doc/lr1110/html/lr1110__system__types_8h_source.html +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_system_types.h Source File - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
lr1110_system_types.h
-
-
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_SYSTEM_TYPES_H
-
36 #define LR1110_SYSTEM_TYPES_H
-
37 
-
38 #ifdef __cplusplus
-
39 extern "C" {
-
40 #endif
-
41 
-
42 /*
-
43  * -----------------------------------------------------------------------------
-
44  * --- DEPENDENCIES ------------------------------------------------------------
-
45  */
-
46 
-
47 #include <stdint.h>
-
48 #include <stdbool.h>
-
49 
-
50 /*
-
51  * -----------------------------------------------------------------------------
-
52  * --- PUBLIC MACROS -----------------------------------------------------------
-
53  */
-
54 
-
55 /*
-
56  * -----------------------------------------------------------------------------
-
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
-
58  */
-
59 
-
63 #define LR1110_SYSTEM_VERSION_LENGTH ( 4 )
-
64 
-
70 #define LR1110_SYSTEM_UID_LENGTH ( 8 )
-
71 #define LR1110_SYSTEM_JOIN_EUI_LENGTH ( 8 )
-
72 #define LR1110_SYSTEM_PIN_LENGTH ( 4 )
-
73 
-
74 /*
-
75  * -----------------------------------------------------------------------------
-
76  * --- PUBLIC TYPES ------------------------------------------------------------
-
77  */
-
78 
- -
83 
-
87 typedef uint8_t lr1110_system_join_eui_t[LR1110_SYSTEM_JOIN_EUI_LENGTH];
-
88 
-
92 typedef uint8_t lr1110_system_pin_t[LR1110_SYSTEM_PIN_LENGTH];
-
93 
-
97 typedef uint32_t lr1110_system_irq_mask_t;
-
98 
- -
103 {
-
104  LR1110_SYSTEM_IRQ_NONE = ( 0 << 0 ),
-
105  LR1110_SYSTEM_IRQ_TX_DONE = ( 1 << 2 ),
-
106  LR1110_SYSTEM_IRQ_RX_DONE = ( 1 << 3 ),
-
107  LR1110_SYSTEM_IRQ_PREAMBLE_DETECTED = ( 1 << 4 ),
-
108  LR1110_SYSTEM_IRQ_SYNC_WORD_HEADER_VALID = ( 1 << 5 ),
-
109  LR1110_SYSTEM_IRQ_HEADER_ERROR = ( 1 << 6 ),
-
110  LR1110_SYSTEM_IRQ_CRC_ERROR = ( 1 << 7 ),
-
111  LR1110_SYSTEM_IRQ_CAD_DONE = ( 1 << 8 ),
-
112  LR1110_SYSTEM_IRQ_CAD_DETECTED = ( 1 << 9 ),
-
113  LR1110_SYSTEM_IRQ_TIMEOUT = ( 1 << 10 ),
-
114  LR1110_SYSTEM_IRQ_LR_FHSS_INTRA_PKT_HOP = ( 1 << 11 ),
-
115  LR1110_SYSTEM_IRQ_GNSS_SCAN_DONE = ( 1 << 19 ),
-
116  LR1110_SYSTEM_IRQ_WIFI_SCAN_DONE = ( 1 << 20 ),
-
117  LR1110_SYSTEM_IRQ_EOL = ( 1 << 21 ),
-
118  LR1110_SYSTEM_IRQ_CMD_ERROR = ( 1 << 22 ),
-
119  LR1110_SYSTEM_IRQ_ERROR = ( 1 << 23 ),
-
120  LR1110_SYSTEM_IRQ_FSK_LEN_ERROR = ( 1 << 24 ),
-
121  LR1110_SYSTEM_IRQ_FSK_ADDR_ERROR = ( 1 << 25 ),
-
122  LR1110_SYSTEM_IRQ_ALL_MASK =
-
123  LR1110_SYSTEM_IRQ_TX_DONE | LR1110_SYSTEM_IRQ_RX_DONE | LR1110_SYSTEM_IRQ_PREAMBLE_DETECTED |
-
124  LR1110_SYSTEM_IRQ_SYNC_WORD_HEADER_VALID | LR1110_SYSTEM_IRQ_HEADER_ERROR | LR1110_SYSTEM_IRQ_CRC_ERROR |
-
125  LR1110_SYSTEM_IRQ_CAD_DONE | LR1110_SYSTEM_IRQ_CAD_DETECTED | LR1110_SYSTEM_IRQ_TIMEOUT |
-
126  LR1110_SYSTEM_IRQ_LR_FHSS_INTRA_PKT_HOP | LR1110_SYSTEM_IRQ_GNSS_SCAN_DONE | LR1110_SYSTEM_IRQ_WIFI_SCAN_DONE |
-
127  LR1110_SYSTEM_IRQ_EOL | LR1110_SYSTEM_IRQ_CMD_ERROR | LR1110_SYSTEM_IRQ_ERROR |
-
128  LR1110_SYSTEM_IRQ_FSK_LEN_ERROR | LR1110_SYSTEM_IRQ_FSK_ADDR_ERROR,
-
129 };
-
130 
- -
135 {
-
136  LR1110_SYSTEM_CALIB_LF_RC_MASK = ( 1 << 0 ),
-
137  LR1110_SYSTEM_CALIB_HF_RC_MASK = ( 1 << 1 ),
-
138  LR1110_SYSTEM_CALIB_PLL_MASK = ( 1 << 2 ),
-
139  LR1110_SYSTEM_CALIB_ADC_MASK = ( 1 << 3 ),
-
140  LR1110_SYSTEM_CALIB_IMG_MASK = ( 1 << 4 ),
-
141  LR1110_SYSTEM_CALIB_PLL_TX_MASK = ( 1 << 5 ),
-
142 };
-
143 
-
144 typedef uint8_t lr1110_system_cal_mask_t;
-
145 
- -
150 {
-
151  LR1110_SYSTEM_ERRORS_LF_RC_CALIB_MASK = ( 1 << 0 ),
-
152  LR1110_SYSTEM_ERRORS_HF_RC_CALIB_MASK = ( 1 << 1 ),
-
153  LR1110_SYSTEM_ERRORS_ADC_CALIB_MASK = ( 1 << 2 ),
-
154  LR1110_SYSTEM_ERRORS_PLL_CALIB_MASK = ( 1 << 3 ),
-
155  LR1110_SYSTEM_ERRORS_IMG_CALIB_MASK = ( 1 << 4 ),
-
156  LR1110_SYSTEM_ERRORS_HF_XOSC_START_MASK = ( 1 << 5 ),
-
157  LR1110_SYSTEM_ERRORS_LF_XOSC_START_MASK = ( 1 << 6 ),
-
158  LR1110_SYSTEM_ERRORS_PLL_LOCK_MASK = ( 1 << 7 ),
-
159 };
-
160 
-
161 typedef uint16_t lr1110_system_errors_t;
-
162 
-
166 typedef enum
-
167 {
-
168  LR1110_SYSTEM_CHIP_MODE_SLEEP = 0x00,
-
169  LR1110_SYSTEM_CHIP_MODE_STBY_RC = 0x01,
-
170  LR1110_SYSTEM_CHIP_MODE_STBY_XOSC = 0x02,
-
171  LR1110_SYSTEM_CHIP_MODE_FS = 0x03,
-
172  LR1110_SYSTEM_CHIP_MODE_RX = 0x04,
-
173  LR1110_SYSTEM_CHIP_MODE_TX = 0x05,
-
174  LR1110_SYSTEM_CHIP_MODE_LOC = 0x06,
- -
176 
-
180 typedef enum
-
181 {
-
182  LR1110_SYSTEM_RESET_STATUS_CLEARED = 0x00,
-
183  LR1110_SYSTEM_RESET_STATUS_ANALOG = 0x01,
-
184  LR1110_SYSTEM_RESET_STATUS_EXTERNAL = 0x02,
-
185  LR1110_SYSTEM_RESET_STATUS_SYSTEM = 0x03,
-
186  LR1110_SYSTEM_RESET_STATUS_WATCHDOG = 0x04,
-
187  LR1110_SYSTEM_RESET_STATUS_IOCD_RESTART = 0x05,
-
188  LR1110_SYSTEM_RESET_STATUS_RTC_RESTART = 0x06,
- -
190 
-
194 typedef enum
-
195 {
-
196  LR1110_SYSTEM_CMD_STATUS_FAIL = 0x00,
-
197  LR1110_SYSTEM_CMD_STATUS_PERR = 0x01,
-
198  LR1110_SYSTEM_CMD_STATUS_OK = 0x02,
-
199  LR1110_SYSTEM_CMD_STATUS_DATA = 0x03,
- -
201 
-
205 typedef enum
-
206 {
- -
208  LR1110_SYSTEM_LFCLK_XTAL = 0x01,
-
209  LR1110_SYSTEM_LFCLK_EXT = 0x02
- -
211 
-
215 typedef enum
-
216 {
- -
218  LR1110_SYSTEM_REG_MODE_DCDC = 0x01,
- -
220 
-
224 typedef enum
-
225 {
- - - -
229 
- -
234 {
-
235  LR1110_SYSTEM_RFSW0_HIGH = ( 1 << 0 ),
-
236  LR1110_SYSTEM_RFSW1_HIGH = ( 1 << 1 ),
-
237  LR1110_SYSTEM_RFSW2_HIGH = ( 1 << 2 ),
-
238  LR1110_SYSTEM_RFSW3_HIGH = ( 1 << 3 ),
-
239  LR1110_SYSTEM_RFSW4_HIGH = ( 1 << 4 ),
-
240 };
-
241 
- -
246 {
-
247  uint8_t enable;
-
248  uint8_t standby;
-
249  uint8_t rx;
-
250  uint8_t tx;
-
251  uint8_t tx_hp;
-
252  uint8_t tx_hf;
-
253  uint8_t gnss;
-
254  uint8_t wifi;
- -
256 
-
260 typedef enum
-
261 {
-
262  LR1110_SYSTEM_STANDBY_CFG_RC = 0x00,
-
263  LR1110_SYSTEM_STANDBY_CFG_XOSC = 0x01
- -
265 
-
269 typedef enum
-
270 {
- - - - - - - - - -
280 
-
284 typedef struct lr1110_system_stat1_s
-
285 {
-
286  lr1110_system_command_status_t command_status;
-
287  bool is_interrupt_active;
- -
289 
-
293 typedef struct lr1110_system_stat2_s
-
294 {
-
295  lr1110_system_reset_status_t reset_status;
-
296  lr1110_system_chip_modes_t chip_mode;
-
297  bool is_running_from_flash;
- -
299 
- -
304 {
-
305  uint8_t hw;
-
306  uint8_t type;
-
307  uint16_t fw;
- -
309 
- -
314 {
-
315  bool is_warm_start;
-
316  bool is_rtc_timeout;
- -
318 
-
319 /*
-
320  * -----------------------------------------------------------------------------
-
321  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
-
322  */
-
323 
-
324 #ifdef __cplusplus
-
325 }
-
326 #endif
-
327 
-
328 #endif // LR1110_SYSTEM_TYPES_H
-
329 
-
330 /* --- EOF ------------------------------------------------------------------ */
-
-
lr1110_system_command_status_t
Command status.
Definition: lr1110_system_types.h:195
-
@ LR1110_SYSTEM_TCXO_CTRL_2_2V
Supply voltage = 2.2v.
Definition: lr1110_system_types.h:274
-
@ LR1110_SYSTEM_TCXO_CTRL_3_3V
Supply voltage = 3.3v.
Definition: lr1110_system_types.h:278
-
@ LR1110_SYSTEM_LFCLK_RC
(Default)
Definition: lr1110_system_types.h:207
-
lr1110_system_lfclk_cfg_t
Low-frequency clock modes.
Definition: lr1110_system_types.h:206
-
lr1110_system_tcxo_supply_voltage_t
TCXO supply voltage values.
Definition: lr1110_system_types.h:270
-
@ LR1110_SYSTEM_TCXO_CTRL_3_0V
Supply voltage = 3.0v.
Definition: lr1110_system_types.h:277
-
@ LR1110_SYSTEM_REG_MODE_LDO
(Default)
Definition: lr1110_system_types.h:217
-
uint32_t lr1110_system_irq_mask_t
Type to store system interrupt flags.
Definition: lr1110_system_types.h:97
-
RF switch configuration structure definition.
Definition: lr1110_system_types.h:246
-
lr1110_system_infopage_id_t
Info page ID.
Definition: lr1110_system_types.h:225
-
uint8_t lr1110_system_join_eui_t[LR1110_SYSTEM_JOIN_EUI_LENGTH]
Fixed-length array to store a joinEUI.
Definition: lr1110_system_types.h:87
-
uint8_t lr1110_system_uid_t[LR1110_SYSTEM_UID_LENGTH]
Fixed-length array to store a UID.
Definition: lr1110_system_types.h:82
-
lr1110_system_calibration_e
Calibration flags.
Definition: lr1110_system_types.h:135
-
@ LR1110_SYSTEM_TCXO_CTRL_2_4V
Supply voltage = 2.4v.
Definition: lr1110_system_types.h:275
-
@ LR1110_SYSTEM_INFOPAGE_1
Info page #1.
Definition: lr1110_system_types.h:227
-
struct lr1110_system_rfswitch_cfg_s lr1110_system_rfswitch_cfg_t
RF switch configuration structure definition.
-
lr1110_system_reset_status_t
Reset status.
Definition: lr1110_system_types.h:181
-
#define LR1110_SYSTEM_UID_LENGTH
Length of the LR1110 Unique Identifier in bytes.
Definition: lr1110_system_types.h:70
-
lr1110_system_irq_e
Interrupt flags.
Definition: lr1110_system_types.h:103
-
@ LR1110_SYSTEM_INFOPAGE_0
Info page #0.
Definition: lr1110_system_types.h:226
-
Sleep configuration structure definition.
Definition: lr1110_system_types.h:314
-
struct lr1110_system_stat1_s lr1110_system_stat1_t
Status register 1 structure definition.
-
Status register 2 structure definition.
Definition: lr1110_system_types.h:294
-
struct lr1110_system_stat2_s lr1110_system_stat2_t
Status register 2 structure definition.
-
lr1110_system_standby_cfg_t
Stand by configuration values.
Definition: lr1110_system_types.h:261
-
@ LR1110_SYSTEM_TCXO_CTRL_2_7V
Supply voltage = 2.7v.
Definition: lr1110_system_types.h:276
-
lr1110_system_errors_e
Error flags.
Definition: lr1110_system_types.h:150
-
lr1110_system_reg_mode_t
Regulator modes.
Definition: lr1110_system_types.h:216
-
Status register 1 structure definition.
Definition: lr1110_system_types.h:285
-
@ LR1110_SYSTEM_TCXO_CTRL_1_8V
Supply voltage = 1.8v.
Definition: lr1110_system_types.h:273
-
@ LR1110_SYSTEM_TCXO_CTRL_1_7V
Supply voltage = 1.7v.
Definition: lr1110_system_types.h:272
-
@ LR1110_SYSTEM_TCXO_CTRL_1_6V
Supply voltage = 1.6v.
Definition: lr1110_system_types.h:271
-
lr1110_system_chip_modes_t
Chip modes.
Definition: lr1110_system_types.h:167
-
Version structure definition.
Definition: lr1110_system_types.h:304
-
struct lr1110_system_sleep_cfg_s lr1110_system_sleep_cfg_t
Sleep configuration structure definition.
-
uint8_t lr1110_system_pin_t[LR1110_SYSTEM_PIN_LENGTH]
Fixed-length array to store a PIN.
Definition: lr1110_system_types.h:92
-
struct lr1110_system_version_s lr1110_system_version_t
Version structure definition.
-
lr1110_system_rfswitch_cfg_pin_e
RF switch configuration pin.
Definition: lr1110_system_types.h:234
- - - - diff --git a/doc/lr1110/html/lr1110__types_8h__dep__incl.map b/doc/lr1110/html/lr1110__types_8h__dep__incl.map deleted file mode 100644 index 1cc532c..0000000 --- a/doc/lr1110/html/lr1110__types_8h__dep__incl.map +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/doc/lr1110/html/lr1110__types_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__types_8h__dep__incl.md5 deleted file mode 100644 index 695b4f7..0000000 --- a/doc/lr1110/html/lr1110__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -d7923c3d0ec04c263116c361766b02b6 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__types_8h__dep__incl.png b/doc/lr1110/html/lr1110__types_8h__dep__incl.png deleted file mode 100644 index 1e194eef86d43dbbbff4e5fa8ef233f0e4799de7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51862 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%0ALe*Cz7G*^`XA0LT|Dj9Ra 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 diff --git a/doc/lr1110/html/lr1110__wifi_8c__incl.map b/doc/lr1110/html/lr1110__wifi_8c__incl.map deleted file mode 100644 index 093d4ab..0000000 --- a/doc/lr1110/html/lr1110__wifi_8c__incl.map +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/doc/lr1110/html/lr1110__wifi_8c__incl.md5 b/doc/lr1110/html/lr1110__wifi_8c__incl.md5 deleted file mode 100644 index 9cfd64c..0000000 --- a/doc/lr1110/html/lr1110__wifi_8c__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -3ca1e0c4e806b3bf6662ee712aa6952a \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__wifi_8c__incl.png b/doc/lr1110/html/lr1110__wifi_8c__incl.png deleted file mode 100644 index a40c7b48d020fa5d2c069fb47b9d066be9e7c9d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23962 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 diff --git a/doc/lr1110/html/lr1110__wifi_8h__dep__incl.map b/doc/lr1110/html/lr1110__wifi_8h__dep__incl.map deleted file mode 100644 index f378b9d..0000000 --- a/doc/lr1110/html/lr1110__wifi_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/doc/lr1110/html/lr1110__wifi_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__wifi_8h__dep__incl.md5 deleted file mode 100644 index 04a2e76..0000000 --- a/doc/lr1110/html/lr1110__wifi_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -d4bc5bd71cb91257d32c64bdffe20e2f \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__wifi_8h__dep__incl.png b/doc/lr1110/html/lr1110__wifi_8h__dep__incl.png deleted file mode 100644 index b4cfa0f3527cebff26c6caa8bdc1c51da1e5db5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4914 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 - - - - - - - diff --git a/doc/lr1110/html/lr1110__wifi_8h__incl.md5 b/doc/lr1110/html/lr1110__wifi_8h__incl.md5 deleted file mode 100644 index 65928e5..0000000 --- a/doc/lr1110/html/lr1110__wifi_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -48088ff105c0e85097833751e3592664 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__wifi_8h__incl.png b/doc/lr1110/html/lr1110__wifi_8h__incl.png deleted file mode 100644 index 854f8f5519b97208198aa5d736bd21d5c64345a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13589 zcmaKT1yGgI_wAKNq)X{mknWHakP?vYmhKJ-X+%Q08|iMigoJd+rIGILu6O+X=FPk} z|2OY4gAVtL^PRoVI(x6RzA#1k59rT{o{y{R5 z{U8o``uCI7S`Z6?P(Y-`MOEC>4$?g+;%A?FM;G>)ab{&|LvbXeq-BB>W3uINV}CF* z<;8s26JSb_`DvphXECZ|DT5k8pq)?0L=;4jCv~~eeCX}t`|gb6$_nkuA@lCt74)$= z(rMIV>FnK=_bA`!R@!?}ECdk>ER;W4t4t8MuOdiroGd5^Vp3Tiq7+zSaKmVDU$Job z7vWeT$M0`bjy$5(jua-C-o#iEJ%20KjN^uY}>VV`%j zwE1;)E(3A&U%!5R{`~nD%e#YyrEA7)+`$B<`C1Fu^~u@|OJ3rO&cAtBt8iX=>6$gB zA0;J!m+Q7%%L%(3>PSjTii>wQIc?2YUycety$j7j7PqjlFgB*nWOMMQ7k5sMWwN&1^ii0LIRu% zj-lh=s3|Iv*4Otvn5*jwM&G+MHZ?O#O-}ywCT=j1#KgpRQUPuX3WK2}Hr+Gu z)x+c6(d_JOL_`FK*~t0XS!{GP1mcWGW&QCvrQjG80$JW1P8EK-uPHBQj{o*iy|%6G z5nOBScf|WAa5X$aLKbG`!=2R2vr*x}!NE)cxALZ@Cgl)+b!{UfsuXh@8}IY&KRG!$ ze{w&-LzI-1UZA6ckwYLWD=RiOHtmnMC247Yi-L&FtM zUH`yZRck2Wl~a7Mn(oWWV-n6+qX3}H6T=lMMd<~)W&vpQT*y3D0PML+CDzV zMg(~QfyBkfS21BdM4tH65fKx6w7Wx9R8^&=r1}O2bA5}8iY_El%gPQ$(goDZv@Z5% zYkvQhL_(BZ#;L zW@lfKCZ23Qo$uhr%N)>rZ-_2GJ+@H_eFGT=BjEoydyE;|Pr~oKz2y58F=Ep0`;^gR z0~U>-p!db@WFm{cr0iZ_MNUrVhNH00ePMa|h&F{CW$Q!` z>VxIK!GuHv1m)%$>*(k>IGjvZ=tq$WS{fLP!S=tWq|61P;$o2SDr#$MfBNKbe|^#x zr;x1(;^ek7p6_*am~AWx@vE*r1&bCWg|3>~Z==JzmO>x^O@742?%6fBw0IdC8ygrb1yc#Sh2)|ym47-^FBO0 z+=l&be|l_TQL?eN1~KGuTm6dbz^EVC;M+{i`TTgDzwq#^v zwh`L1vkgCe`tv)2xc$pbPIh*c%buFFbbq-^P;jv1hYxl$mD&0EpErk++uGWoLFX9E z{}w76>Z+2eDk6{APWqD1-A6gOp}|44D>0;0oB4WrdU{$Knq?*ge?j}1H{ZbX z91H*L%ELl2>F6-bUA{iwfyL0u^3#r_@>E>aaRvNJ<}eHV&(|VnI3x@V46k0j0zfVz z1xLaiL&BWcVm3+!;-R20nsEvM4!{qp5Hg-7j|5}+6?br8APp_8Zj0;i?$eINjE0sL(aV>- z03*RU8yg#_yD$+7c;pnqUrC%6N**2_pFh(=mQU7tiHL}z$b}{K0fvm5b1n`696}>x zcDA<%Km$IZ-@fe@%>Zoh@bc1c`{J<(^$>77q|w}F4~!Ezqk36gU2WVO>3x6g;N*06 zcXgD=tozM14(uq_CMKNAMuaSS?`;3_f-FWvBbb<)Qd3tqe*FsW6<(GHHYPQ7Zf_L% z)5WwtKp>E6-lyx*va*8!PH)&MBGEm@9%wWe3AnW=qebCU2v1nq**(D#dU_dERVUGu z?}IT&Q<9SUOxU@&xK0v~zM^25>vg}^*KcoX;^X4NKd=Nr(uKNLwJ(&ndR-wQBBDo% zpon9EQIowu0>|mg$;rveqCpI-t^fZ0J2aYv4M$03FH3@w{8f83`sECmc#1#-W=tHV zK(i+j6mj0Ko3wcy4^9-(i(k7W|HmG0u7`yZ7#(fj*_M?h(zgbkv35WTNDD`vwRS)d z?e3mCCOE|eS&)#B05a#ra}y30O5yKlqHoBBSO*6`UtE-!d`AA$E+e!43^F%Y7oaYI zdBO1ImZq$5=G_MG|HGNU+w1N^Z1JeC|IQ6T8Ly4BwOk^Z7AtP^6!X?h5q!??6b(bV%UU4zy zo9)$f0pAK8i#o#qrU22qORvzVpdJmh@G4C51QNc}f{@-LPfyFm#e{HzSAWcpuWh;vsxmb^Lf+VhIYxu0Wk?nM` z*dfDKl?F9@!cSi&VP}D52i>)`7s0{Q$7+GZ;QGjz%}ed%?B2IYV`H+gp9kN=nx^Nz zJvj>nj&-2kiDu{IO!aP^pKW~>aAnkLo{&3+J5H&5qWk=rt2c6i&sRuYMrNqXcuqlB zlRY`cJ=`A)$6RkFHu+|5^oTK*-s8S8q`aJgnJ91ys#sh?Y;4Stn|tKYq@%75^MhD@ z{;Ua=5Jf>E;Wk1I>52%Ia&QVyVSE3YmKKX;3&#f!|Fgfp_33H7?Tmrj!JPi)ra)(B zjF1nWvkDOyUIwA5iaJlZj>m3)?3Ft@z6bVc1|iGvu+7%!mZZdI6;&=q4OWZc6uw+Z z`ZcEKVi2%R66>|znwt@7s;N0W+-m(z57&^A4)gFB?(3hew#(du6_7JBxv}Vz#b)Y% zYhVtogdawOABUk4Fu%(yX7B~42nupRH?VM!0ybCKH%8JwzE&tNEG=!QTR7VF6Tw>V`!P>O#)d{9CnI%C%CCZCC((_BwEg}T<9j7JFQeMs?S+GSg%B!g z^3fI#u^nGtjgp6ULbZ>n+(dSK>)qYr^WEYt zSTE9a2g=VhzunFdEWF%yAVx3v{6gHvKtsPm&>bO33FrUuO!84j#Ku(rn zZB#8tMU~&yh6r-$uixgR@c6i1bK^bt=Wl9a{+a&%oQsa)80hFh;3P7k7iY&w1f<@h zGuQ2ghSHhB(`#jD{_tbaThTA~x%hA8dHIPXKX}PVu^uN-Hy$g8nOgP^Kqo1&f z=ud#Fs~Z^|mT9{gZpf7M_0c->Tl3ui_P8QrgfGCB51F2E`t!HDLFRe$aj0bJ3&rcHIcaZ7m=1xvZ z%5_kq6BAF5uf0doyirl3cuAN+erUiAmv~_z+>H8`rwOII9A^nQGy9KM1+-;k5H$z* z$PKmD*SkVpL@S@As9){R#gh=HdTdAE`6I?2PrX5)D{PiJdQ#Bm@($f40n*n;66rr zZftbu#7m;CuI&3X+ZD`qLV&o#Q@M2^oW>VR`YO5EED9|<9c^5|-0v~>!_(Jiw}D70 z)9rab+h(9Q!Kg60q^h!xLF!nb zL=R%Kj07%DkYlSyf-&8@H8EZBu|UB~S~h%*37HDd`T1Bweeko}&d|ct=?p=hn(D>0 zcTHlds$_OdSSxVoV+soT!ah(futauXZoeSj*esLb@@v zvX!2;Qk07DoX*%}WUAeZsCWRnxVmn)d6(bZbPB`a;^;fOO$|#y;D7^&&c}S zzd`Kv{cKH7O}Sm|C0FP$@D{?xKO5+$mzVLxA#2l6OITlso~^l{p?%WKqo?n$tR@Pn zAp1c}zauRnVbf5SVAj@I(dICvzDZ|!7?eLFN9c5s0H@&!?V zXiWo8bhN>8nH1iN;}3XbC9nRm#gSI8hOxmt8WLfQmp@o5Ul%gQ5Fb%%>fj2r46V52#TkaYPCdn{(cKa=tLRbnCXgkc#7!p?2TSk<^> zKHh&Dhh1ETTg}45!@G`h3@~H)V*As=8lE$P4sz|uwBznQd;TKh8Y%to*=gziUc&C~Z`{|16}ke6{c-!UK8B6$Y%3>gZV<)q z-#JeR{LvT6XGvZ`pp~+b{7x5Arv(LxjT?>$BE-E&n$*K3=0b@VF&Uj3T-`dJ3A7IzN)u ze{x>i!9CVLG{i_phtvfpf&Tt|SB=@|YFQ2sigy?v$;dbSw0qlrc<7gX!$e8FN3D6LxryqmvV{_@C%Uiu=UIpFbsabW|eAX$w5k`Cg)JhK7cMehH6&;PTUZFn|;;D^4yh(2pG)94xi_ zMwz~4VQHwTF=kH&_YA=x%~5;#-TSF&Gr#%W1ONzYw0G+qXYfll`s4c_w}5Jv_E8PGzlwc9O1vtc{i zLEN02e?fZ@6od%!^qq&Jni@e$K|#wZ7?hTl76%(V{xd}lL75c$`x+e*q2K~rk0jOq@)pT+^npMpFRO%$r3z8pZ&oc7g5C2MTEE92SM7`uM4Qb zE>fJhd@4@_lEK=>Mpi~qw%My96Rrb9`fwWUM>4KBuq554975BK+K zmI; zWlsj!B8BND0b&~Pt8Zw?+QOp0zhAT6$9vkdsu@{o=B(M3DN{0+pZDeSEM{L{U(iiQ z4nJKNw6&2z{6;jh{*ho|OB0G}Y6)?1c(}NLD(Nv{zuKQw*3r2?-53OnVrgmV`w$Ee za0@G|kdTnGwtrj`pk>+F*@f?qLG~G&n5=`o`Sq-d;1XBIM|t05J-J0cbeE1$@wT%gKH3H<6K&N=i;X zSZHaO-(_t=mNM5d5n5c=^bBO0KTZSyj)&N zDhsxQf$?N((&05~Ze^7iAAjMjZf;?r+h|Y8%R4hObKOhsJ2X0aRL?AT_^g@<^Y*^! z5R{U*uYK_3T#`Oiy=7nkbiAydhe83_G^WGR>Vx{wy05^({kMF^O zhmX(2&Fyn@ig>}|Jf3%Su2LH6cSl-&z^`i_5u7@PxR@9mkhgk=&yoN0VNUb{jQJ}LQ*aR}Y4m}n zRg*mr-KNvT($e*zWQ0Yb2@o|vGTq$VWD0qM{H?C7-A}4MNXMp@T}A>cKu7;mGEh(eEzCeqkBW-AlbDh5?Z69FPfst&4HxBOJM#(P()RZDM$`BL z>a*+WE*4w8*enzPG6IG%yXNr?pzXXa_xndi4ntc-!oGcL_PVkKn+Rb12L=WJ5O_Af z1+nC|Thvie={Bw5BasK3&Fx=PRxsPi(|`fl8X=7u#8>(|$=l`L-yXUqEb z9ZE_{u=6bds<^JMuBW^EwoZK%aE-kY#Aa4jC8eb#SXj#|D_@0pqr$^W%F0N&EGGb+ zrmLd^ffyM*XdKNdSLGlvCu->Ee7QZ}0eQ6z>)>)X0d@2Oe&_f41fQDdaFcw}_@y>h9_JvvUrF7yuO3e;cup+QgduDF8@* z0Q_KjdYA(ZM^SKug#}B20y#DH`+DqQfKYFAkB^VHy-=s7ra%;d25@0=Vp@t6*=LW6*a zCMrU9HZb66Y{-Um7A=N?K$RBV4QN`n$+28U(>fo(>7a<+|o$UHJP~#~gFGyuvO#!dq8us@8VFQ&rVxx)F#Y;swfo z|4JI>d^AW(O+C{O9n&+4iy}{5Tm3dTkdnZn&*iWh{n#c*wc6DBU{6YV^J|Rmg);zl zBRz!-XeM85MTaNYz*pW$@$odcPZqtH;mqs$Fd&zkUtN&82Xy#zpF5-I^R9zuX*t z{r-LRM|VmT99*Z-$&145mC#h4X~R{J%2rl@HvVb*Hwo+=0n%Twg!%^7gRFx!J${ zNfV>s&SsO+KfAct@M71AnfZfcgwo^LXoQ{~hdC$v7g|L4S6aI}FeO@AO&1qLXpn)V z=&xRnGb%@?@X^exle5%_8)F0qhg-XLCa=rV^Nz2a*0RCp*a)IHIAp_VH-is%c1A|; z6w*(Xl&KGNCMiUb&KMX=$0k*~v=L2d=r;LyNfbZ*05Fgt*+8lZLfobbNf3fx&TUgyGAVhq?7FH#(5A^YuX>yvH$B7O;C{%x@3(BRcJEYLG6~ zKPw9@EUDbIfO*nuo?v7g`lO}?XD5;8f9yTIx;pSDH$KSyqfyj5@7rI$>2eASPfs@> zBLkHQQpd+O+Z)Xo z)~sA!ZgeQ#+1U#+I!N}tR0%IpL7XPqdU>j-IFC{#>TDd>qr}{E6rY;YwMM)R$|;gF~Mo zKxYpnuO0rKMIonuj${Pd*up{yEb(h{uKETi-e(>e0E3DM>^ldv2v1NzvQ*s z8rf4Wh|FLWCAH)0l=l+g;pRR|)VF=}mSb&I4Sms(SxP2mJ%q(9quAKbRpSXoQDh-_48j zh6-BWpBF{S7hsSw1T;jG{X?6oS$*~CF9&m4V!VV9Kbd@zciVdE)73Wf_|Q5O`iqM) zz_q%%{s8Qfg~cyXQSPxO1k9>`Gb}G1MxXYU2@8SGalJlu{?87q7p$C}?ZV}X+Yq`Gxq2%Z1 zbajYtJ7==>AI=&++qg@WI`;<=(faJ$2y!9c^7(37dOp6TU%%|9naw05Rt`?X;kvmi zQc^Z4-{%2~MKXA7pIiEb;Y}J^#Fwuky0u3-ZjOA@$pk&Oj(ji2X@ytz7oWdiCIs5T z)mCN&mHFlK=*kS?(RuLIYh!e? zzvkjRA3xoIaj#I{WdHyR#W(bejFizx z+O}<+8y~NC+HxUIeRzQ+$YkSfUf9~mTZR1A#D7LTr@mfO%2Us7NzKEf$LChX?Xt8X zev%iuVGtJ5d+v3mSE1+4EGVd8-{f$CRVo0y%QxVs00Ki%WCD1y#<5;(Ezj6~KX zb<15e?RhEwbkDO*{un+GPqA!q@zAN@5|BLLBDP>7laA%&;NbD{81@^X4HP+B4Zn0f z97&%R6jT^W7kJ#Aob1-3T67aP>r(xX0F}%}eg7x7VQaMFovU>d>j&&_ya;66j!ja= z)My{hZcp?7OkX+cEw+TBsPphBLrqYSKF!!)OqN6eAl%wYWY!n*hS3RFSTr_^6jIuc zmNYd*3`!hpwfmF(RMgW;O@l_Bj|5d)z`p3}stUJr*w`GnTm4F!Qgam-{}wU)2mtqD z&#J-B&3}aU9%}}w!N?5(3_0bpCpJP@Sku<7=fs$O_i*Z-vx_PsBZP&YTW6tF;FTSd zMohe_iA^gH|E;Y?(pm)Z9-TZ%WCN8{CdF~(kKs)Sq`MoT8Q3%4TPcq9#Kmn9^UU4c zj!>;$!tVWS8=GAZ5CQc#HRb6(xRO|09DFeUBqcYL%3=293zX$uO^U|9v6Q+({3r;! z+rDT%!W60^BFeT#??U%CUjwf6aFOZ73utsko2X`TVU;zCKS+F=c~@1PG&0;Z)X`Ep zDlm(WzN4}toAF6WTifo65)#ZzOd2NXXhGY=x?QDJ#S7d&#Zp!K@J{U=vcI6JsM3RoIE@ zgC4TYS05d6eVpA~6ov>fxB1*qSErB}dD2`1c1pXWnVg(~wcbRuQ${Pw-Z6V|#psU( z=<0iW+V911T=zBdvM8KOHl9J6ntDKZ6BDPAkms+jHGUWrd3bt?%E}VkfwPa?3k;bU zf5*6gLI@HOe40|L|0=5S9=@dDMJ!!}l)N5~U(8Z_#ni+;T^pxhD+R@JT5zzKb8T|ra8*gOrnKmyzjF7fcNYi(8V1}kDax}~OuZE^Q8q`7%BU7#XUAkoUEtidX= zrkP*b_4?#W*z4wWE#vVm6Vu~r4+aj)Z<_I_s6d3SUxw@vQxEV$L=pUz8J~a_lfLkn z%9D9U=g9jvG!zdrDv8hO{PEhD%elPV*}4%JBa}=`ieq7*fI=dQaNL`cefCxq3utBa z1y6b{m(I86$6)=nKQ^yV(6fvK$TV2#?1wl%xfrmTySm~^@9X$!fG*YECB1XSc}aEM zz7amvV*z@j1UM6sj@bsglCii7{nWn;QGn+G?NlOAR%mH^kjj%L0A>aS&%LI7z{md4 zxk5pLk=P~rcwYnYPM~6qBpbe72}!ziwJkVzJ8Elek|@)1nVV93T5QESCEYc)DC#nC z6*lWNbs}V9$EhTH_MY`Dg>L03`hEg5B0$c!tmpuh59eH3v$F25mY%#lf%q3m z(q!}bLRM9^YqG@Za{oqNO-;-o1_3ERRJ+mMu_5GBf4{U`s^qEJDgp-!#4j}!HGT2M zlI>+}5ZawLRKnXEEISF#vD()3v&#cQ_32zR0+I=sa=W*H`*B#uDgdA79y&)pg$U@fKTfZZ=7FsclwX|mk6F=n2>U^RV6(#KI zj3Hp+FU`)jzdHPxML}#RM1_kh_pz?!_hIEM$?Jmt#%*kxZVnbzRS#v@r}PXb;1?=w z*CsVFZIhN8GOl^*MaD*umi9Q=*L;N}){hn-8vaeo)+lEZ#;guRt#+@g&y}A`HJu(o zY)F-Lt+`*nExA73=>73Sb|mA1Oz2CW0U8z(ur`5mIz5Lp1l?FZLvHht?)k|O8l=)B zjQ$8yD1GsW&DhCley(n-<>8PLWpxGn?7|ASok2PRtUV>Aj(Quk9cQiS71VTj*^i`u zf2{q@RDN+BmR-R2u?0S%Aia8s^Ir zYi_r7&Ld?sUA_+5M2v#7V_ZnbihW5j(fz~dvAo#(X0dEVpibrGmyvT>YP^10wQr=S zXF;mi1?5?btL`4ZkpvbHTZjM;e_Tu;c7DNCTN}s!Xi~$6Mi}Eego0wJhlBG1IYgQi z_KI5a&E=ldG!)wKT4C|%)`S!ylC5aY$>8tz^Jjfb41@K03}7|mwHx5n%WK6_F+Pf8 zt^di5iQK@NQBqSo186PSqt?*iq>wq%KZyHxP2R9$b~f}^798Xa9uTP&v1fmVMgMmh z`wN*EvYJ19GXu<>e$A#>!87V0vFtx@0HM)ga6MIqmho;Dn0+j(4++2V85y0ADc+T+ z!v~`qyE^~ELTK`8z&dLN86$je4+V*=+@2(sO@T5~NvYRSWqJ)HoKIc?aF8sR1ywZ{ z9mUj~q#nqf$w~ZyL8}>S`F0~^YAW0K1hrgv$>%|0`EbmHFNrYR9N8W1Sp&n%k-t|} zO=bGp0?`z(YPb+ckeIZB@6NJ8s11{-sDp%rYP#pJGe5p4B%~`o28V;2%)*l2asZDB zuFPwVytYAAQSr~>h;C)p65D%(pu$awY{djdwuJ^3iH{%Kj17-@JWg`%8Z>mGq135HmK@`orgeutca>yxhY^WgqLUutI`;Lb}z z*+#p#xB$i-xRS`k-QAzGvdp))DNH(V8b=4wfZ0$;CriNmNny04ww9BP4U}~~{wk~n zG&H<&rh8-A-s$+|6@<#4ERq(CX>Yt@UCObC{Zw8~185s(E`0KGj{N1BwT*b-?dyXVya`A+aMJ zJHg0Qhp5j55$QPiK0aK@MoB4p%#S2#x|wPLlf-?S*VEI3Xoo5Y%y-$P-)D`#q2khU za#vT*9gKG8Eh+N>Y8&{Pk|q{e5N4;>XxSaNli0fKi-@{xy_P6<(+IzX+VwKtcX-Pn zqUwzV5sIV7`-xCcVf@#;FIn$eXUZd~|w<`Ee2{xOqy5;Ed9HJC5H5APkXbfNg`w75o$o&yG~v9S?2 zt^tEZ5Wcaw8C)h0Twc!CTr7Z)1h4^IQGk=wgSunmeuVh_zf>OA_JQgDuby(W)czsg zb`d(;+3DYJBA@Y&@9kT(Vc5(}qvl#l*dcVi(5 z5fK#?ot|&3u66`gQSd0h6Rq9$Pq<2XH5#?S0`Ot~W5y6L8(%j{B-` z1}N`m5Ij6Q=RDwQc9|c0lV0AOnYnbe5B?!Rot zDT6{uKCavI%F&(8)|i2G1@tzsU+)zu)ph`x@0{y4Kut|;O4bK&HAP*)rgQ!gQ2h|U zNXKy)%!|FkHnrUCY}d{Tt-#}C_WQ!(Z?HNcehqd@Ibk5q# zJq%g5xQq~f7woep%RxkR7upBQfQk7}ciZybUTRX3hOTaUbhJnTjFg0g|1rO;Z1}FZ zv~>S}i!J9(&mtsCDk^-h4$~77rU3cu9}ob%@xJ#bz4!O`wtKr8a@2tMhnQQuiaWRp z3~Z~F*3?X{t#$rT^PPyRxL_P<%z541<}tNu&qhZ}OQrz!0no&Bkz|5I5JfGmIc3kI z=V9X`FOvv2Wzm2N0&Lpkf}Vkoz=QK&orH|X^C$3WC~xoVB&VeO2A*#T2@iL7)|XGV zFC(<@Wu&FU0BZdFNf$5k0N|n`H`ixtc{w^J<`k@Kuv~_d*m9eiUd=~Ii#OZgE?$C7 z#N5)d7$o77xWFIp0$4uH+b`V4)AR1v$16Y@1r@Uh?w`ncaJH8WdG{!tNZ`5N$;ruV zi<_N~&triCaE$pgGBLS0J9`e478lVfMdO6j%dQN4!&1;0R2Pp4IU7JFhT+_y2oa(9)E@e27b9(a07Zh zIG+F)_x|D+`D)0fcU_~#02zhaC>|_Jn(|S+S=M@6O&4tx1E2KQ=KiJ0K|eQ ze#(`cou7X??!tU1&e_YSA;0G_ZfJ1O(MkLMeW*JOH{$#EiOETz97LEN(x<;T#z?&7 zHDtN3t*^&;#lGGdga!=*$Y3^-_Dfa?xjVh`HAyF*p@K{(zafh?1q$$%V*|<2%*+g0 zCqfbZ%b#`g;&4Ggh7gRfc@yYjb0C_|&YVXof(USwuL5Vk+XJ(s)Y3@6&QAX!tU!TH z72&JMaUiQ8c$Eik1u=yX97Z$tf4qAm&4YUhvci9wk{=+Fg}M21S&o-IpSRs{$KIMV z;~q9Ca4yrm_PGqV9U7dRRPCS=N6!|VYA7vzVTWo0N$jF>_;CE;Kg1@N% diff --git a/doc/lr1110/html/lr1110__wifi_8h_source.html b/doc/lr1110/html/lr1110__wifi_8h_source.html deleted file mode 100644 index f654566..0000000 --- a/doc/lr1110/html/lr1110__wifi_8h_source.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_wifi.h Source File - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
lr1110_wifi.h
-
-
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_WIFI_H
-
36 #define LR1110_WIFI_H
-
37 
-
38 #ifdef __cplusplus
-
39 extern "C" {
-
40 #endif
-
41 
-
42 /*
-
43  * -----------------------------------------------------------------------------
-
44  * --- DEPENDENCIES ------------------------------------------------------------
-
45  */
-
46 
-
47 #include "lr1110_regmem.h"
-
48 #include "lr1110_wifi_types.h"
-
49 #include "lr1110_types.h"
-
50 
-
51 /*
-
52  * -----------------------------------------------------------------------------
-
53  * --- PUBLIC MACROS -----------------------------------------------------------
-
54  */
-
55 
-
56 /*
-
57  * -----------------------------------------------------------------------------
-
58  * --- PUBLIC CONSTANTS --------------------------------------------------------
-
59  */
-
60 
-
61 #ifndef LR1110_WIFI_N_RESULTS_MAX_PER_CHUNK
-
62 
-
76 #define LR1110_WIFI_N_RESULTS_MAX_PER_CHUNK LR1110_WIFI_MAX_RESULTS
-
77 #endif // LR1110_WIFI_N_RESULTS_MAX_PER_CHUNK
-
78 
-
79 /*
-
80  * -----------------------------------------------------------------------------
-
81  * --- PUBLIC TYPES ------------------------------------------------------------
-
82  */
-
83 
-
84 /*
-
85  * -----------------------------------------------------------------------------
-
86  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
-
87  */
-
88 
-
118 lr1110_status_t lr1110_wifi_scan( const void* context, const lr1110_wifi_signal_type_scan_t signal_type,
-
119  const lr1110_wifi_channel_mask_t channels, const lr1110_wifi_mode_t scan_mode,
-
120  const uint8_t max_results, const uint8_t nb_scan_per_channel,
-
121  const uint16_t timeout_in_ms, const bool abort_on_timeout );
-
122 
-
142 lr1110_status_t lr1110_wifi_search_country_code( const void* context, const lr1110_wifi_channel_mask_t channels_mask,
-
143  const uint8_t nb_max_results, const uint8_t nb_scan_per_channel,
-
144  const uint16_t timeout_in_ms, const bool abort_on_timeout );
-
145 
-
210 lr1110_status_t lr1110_wifi_scan_time_limit( const void* context, const lr1110_wifi_signal_type_scan_t signal_type,
-
211  const lr1110_wifi_channel_mask_t channels,
-
212  const lr1110_wifi_mode_t scan_mode, const uint8_t max_results,
-
213  const uint16_t timeout_per_channel_ms,
-
214  const uint16_t timeout_per_scan_ms );
-
215 
- -
252  const lr1110_wifi_channel_mask_t channels_mask,
-
253  const uint8_t nb_max_results,
-
254  const uint16_t timeout_per_channel_ms,
-
255  const uint16_t timeout_per_scan_ms );
-
256 
-
270 lr1110_status_t lr1110_wifi_get_nb_results( const void* context, uint8_t* nb_results );
-
271 
-
309 lr1110_status_t lr1110_wifi_read_basic_complete_results( const void* context, const uint8_t start_result_index,
-
310  const uint8_t nb_results,
- -
312 
-
350 lr1110_status_t lr1110_wifi_read_basic_mac_type_channel_results( const void* context, const uint8_t start_result_index,
-
351  const uint8_t nb_results,
- -
353 
-
391 lr1110_status_t lr1110_wifi_read_extended_full_results( const void* radio, const uint8_t start_result_index,
-
392  const uint8_t nb_results,
- -
394 
- -
403 
- -
413 
-
422 lr1110_status_t lr1110_wifi_get_nb_country_code_results( const void* context, uint8_t* nb_country_code_results );
-
423 
-
440 lr1110_status_t lr1110_wifi_read_country_code_results( const void* context, const uint8_t start_result_index,
-
441  const uint8_t nb_country_results,
-
442  lr1110_wifi_country_code_t* country_code_results );
-
443 
-
454 lr1110_status_t lr1110_wifi_cfg_timestamp_ap_phone( const void* context, uint32_t timestamp_in_s );
-
455 
-
464 lr1110_status_t lr1110_wifi_read_version( const void* context, lr1110_wifi_version_t* wifi_version );
-
465 
- -
489  bool* rssi_validity, lr1110_wifi_mac_origin_t* mac_origin_estimation );
-
490 
- -
501 
- -
525  lr1110_wifi_frame_type_t* frame_type,
-
526  lr1110_wifi_frame_sub_type_t* frame_sub_type, bool* to_ds, bool* from_ds );
-
527 
- -
538  lr1110_wifi_signal_type_result_t* wifi_signal_type,
-
539  lr1110_wifi_datarate_t* wifi_data_rate );
-
540 
- -
555 
- -
564  const lr1110_wifi_datarate_info_byte_t data_rate_info );
-
565 
-
574 bool lr1110_wifi_is_well_formed_utf8_byte_sequence( const uint8_t* buffer, const uint8_t length );
-
575 
-
576 #ifdef __cplusplus
-
577 }
-
578 #endif
-
579 
-
580 #endif // LR1110_WIFI_H
-
581 
-
582 /* --- EOF ------------------------------------------------------------------ */
-
-
lr1110_status_t lr1110_wifi_read_extended_full_results(const void *radio, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_extended_full_result_t *results)
Read extended complete results.
Definition: lr1110_wifi.c:366
-
lr1110_wifi_signal_type_scan_t
Wi-Fi signal type for passive scanning configuration.
Definition: lr1110_wifi_types.h:227
-
uint8_t lr1110_wifi_get_nb_results_max_per_chunk(void)
Return the maximal number of results to read per SPI communication.
Definition: lr1110_wifi.c:505
-
uint8_t lr1110_wifi_channel_info_byte_t
Type to store a Wi-Fi channel info byte.
Definition: lr1110_wifi_types.h:108
-
Basic MAC, type, channel result structure.
Definition: lr1110_wifi_types.h:320
-
lr1110_wifi_channel_t lr1110_wifi_extract_channel_from_info_byte(const lr1110_wifi_channel_info_byte_t channel_info)
Helper method to retrieve channel from channel info byte.
Definition: lr1110_wifi.c:518
-
uint8_t lr1110_wifi_frame_sub_type_t
Type to store a Wi-Fi frame sub_type.
Definition: lr1110_wifi_types.h:123
-
Extended full result structure.
Definition: lr1110_wifi_types.h:339
-
void lr1110_wifi_parse_channel_info(const lr1110_wifi_channel_info_byte_t channel_info, lr1110_wifi_channel_t *channel, bool *rssi_validity, lr1110_wifi_mac_origin_t *mac_origin_estimation)
Retreive channel information from channel info byte.
Definition: lr1110_wifi.c:510
-
lr1110_wifi_channel_t
Wi-Fi Channels index.
Definition: lr1110_wifi_types.h:143
-
lr1110_wifi_mode_t
Wi-Fi capture mode.
Definition: lr1110_wifi_types.h:271
-
lr1110_status_t lr1110_wifi_read_version(const void *context, lr1110_wifi_version_t *wifi_version)
Get the internal wifi firmware version.
Definition: lr1110_wifi.c:488
-
lr1110_status_t lr1110_wifi_search_country_code_time_limit(const void *context, const lr1110_wifi_channel_mask_t channels_mask, const uint8_t nb_max_results, const uint16_t timeout_per_channel_ms, const uint16_t timeout_per_scan_ms)
Start a Wi-Fi passive scan for country codes extraction with duration stop conditions.
Definition: lr1110_wifi.c:303
-
bool lr1110_wifi_is_well_formed_utf8_byte_sequence(const uint8_t *buffer, const uint8_t length)
Helper function to check if a buffer is a well-formed UTF-8 byte sequence.
Definition: lr1110_wifi.c:778
-
lr1110_wifi_signal_type_result_t lr1110_wifi_extract_signal_type_from_data_rate_info(const lr1110_wifi_datarate_info_byte_t data_rate_info)
Helper method to retrieve the signal type from data rate info byte.
Definition: lr1110_wifi.c:541
-
lr1110_wifi_frame_type_t
WiFi Frame Types.
Definition: lr1110_wifi_types.h:199
-
Wi-Fi country code structure.
Definition: lr1110_wifi_types.h:377
-
lr1110_status_t lr1110_wifi_read_cumulative_timing(const void *context, lr1110_wifi_cumulative_timings_t *timing)
Read the internal counters of cumulative timing.
Definition: lr1110_wifi.c:391
-
Basic complete result structure.
Definition: lr1110_wifi_types.h:305
-
lr1110_wifi_mac_origin_t
The WiFi MAC address origin.
Definition: lr1110_wifi_types.h:211
-
lr1110_wifi_datarate_t
WiFi theoretical Datarates.
Definition: lr1110_wifi_types.h:166
-
Wi-Fi firmware version.
Definition: lr1110_wifi_types.h:388
-
lr1110_status_t lr1110_wifi_scan_time_limit(const void *context, const lr1110_wifi_signal_type_scan_t signal_type, const lr1110_wifi_channel_mask_t channels, const lr1110_wifi_mode_t scan_mode, const uint8_t max_results, const uint16_t timeout_per_channel_ms, const uint16_t timeout_per_scan_ms)
Start a Wi-Fi passive scan operation with duration stop conditions.
Definition: lr1110_wifi.c:281
-
lr1110_status_t lr1110_wifi_read_country_code_results(const void *context, const uint8_t start_result_index, const uint8_t nb_country_results, lr1110_wifi_country_code_t *country_code_results)
Read country code results.
Definition: lr1110_wifi.c:434
-
uint16_t lr1110_wifi_channel_mask_t
Type to store a Wi-Fi channel mask.
Definition: lr1110_wifi_types.h:103
-
lr1110_wifi_signal_type_result_t
Wi-Fi signal type for passive scan results.
Definition: lr1110_wifi_types.h:240
-
uint8_t lr1110_wifi_datarate_info_byte_t
Type to store a Wi-Fi datarate info byte.
Definition: lr1110_wifi_types.h:113
-
Type definitions for LR1110.
-
lr1110_status_t lr1110_wifi_read_basic_mac_type_channel_results(const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_basic_mac_type_channel_result_t *results)
Read basic MAC, Wi-Fi type and channel results.
Definition: lr1110_wifi.c:350
-
lr1110_status_t lr1110_wifi_get_nb_country_code_results(const void *context, uint8_t *nb_country_code_results)
Get size of country code search results.
Definition: lr1110_wifi.c:416
-
enum lr1110_status_e lr1110_status_t
LR1110 status.
-
Register/memory driver definition for LR1110.
-
void lr1110_wifi_parse_frame_type_info(const lr1110_wifi_frame_type_info_byte_t frame_type_info, lr1110_wifi_frame_type_t *frame_type, lr1110_wifi_frame_sub_type_t *frame_sub_type, bool *to_ds, bool *from_ds)
Retrieve the Frame Type, Frame Subtype, To/From DS fields from a frame info byte.
Definition: lr1110_wifi.c:523
-
lr1110_status_t lr1110_wifi_search_country_code(const void *context, const lr1110_wifi_channel_mask_t channels_mask, const uint8_t nb_max_results, const uint8_t nb_scan_per_channel, const uint16_t timeout_in_ms, const bool abort_on_timeout)
Start a Wi-Fi passive scan for country codes extraction.
Definition: lr1110_wifi.c:262
-
lr1110_status_t lr1110_wifi_scan(const void *context, const lr1110_wifi_signal_type_scan_t signal_type, const lr1110_wifi_channel_mask_t channels, const lr1110_wifi_mode_t scan_mode, const uint8_t max_results, const uint8_t nb_scan_per_channel, const uint16_t timeout_in_ms, const bool abort_on_timeout)
Start a Wi-Fi passive scan operation.
Definition: lr1110_wifi.c:240
-
void lr1110_wifi_parse_data_rate_info(const lr1110_wifi_datarate_info_byte_t data_rate_info, lr1110_wifi_signal_type_result_t *wifi_signal_type, lr1110_wifi_datarate_t *wifi_data_rate)
Retrieve the data rate information from data rate info byte.
Definition: lr1110_wifi.c:533
-
Wi-Fi passive scan driver types for LR1110.
-
uint8_t lr1110_wifi_frame_type_info_byte_t
Type to store a Wi-Fi frame type info byte.
Definition: lr1110_wifi_types.h:118
-
Cumulative timings.
Definition: lr1110_wifi_types.h:292
-
lr1110_status_t lr1110_wifi_cfg_timestamp_ap_phone(const void *context, uint32_t timestamp_in_s)
Configure the timestamp used to discriminate mobile access points from gateways.
Definition: lr1110_wifi.c:473
-
lr1110_status_t lr1110_wifi_get_nb_results(const void *context, uint8_t *nb_results)
Returns the number of results currently available in LR1110.
Definition: lr1110_wifi.c:324
-
lr1110_status_t lr1110_wifi_read_basic_complete_results(const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_basic_complete_result_t *results)
Read basic complete results.
Definition: lr1110_wifi.c:335
-
lr1110_status_t lr1110_wifi_reset_cumulative_timing(const void *context)
Reset the internal counters of cumulative timing.
Definition: lr1110_wifi.c:381
- - - - diff --git a/doc/lr1110/html/lr1110__wifi__types_8h.html b/doc/lr1110/html/lr1110__wifi__types_8h.html deleted file mode 100644 index 7d9e3b3..0000000 --- a/doc/lr1110/html/lr1110__wifi__types_8h.html +++ /dev/null @@ -1,610 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_wifi_types.h File Reference - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
lr1110_wifi_types.h File Reference
-
-
- -

Wi-Fi passive scan driver types for LR1110. -More...

-
#include <stdbool.h>
-#include <stdint.h>
-
-Include dependency graph for lr1110_wifi_types.h:
-
-
- - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - -

-Data Structures

struct  lr1110_wifi_fcs_info_byte_s
 Wi-Fi FCS info byte. More...
 
struct  lr1110_wifi_cumulative_timings_s
 Cumulative timings. More...
 
struct  lr1110_wifi_basic_complete_result_s
 Basic complete result structure. More...
 
struct  lr1110_wifi_basic_mac_type_channel_result_s
 Basic MAC, type, channel result structure. More...
 
struct  lr1110_wifi_extended_full_result_t
 Extended full result structure. More...
 
struct  lr1110_wifi_country_code_s
 Wi-Fi country code structure. More...
 
struct  lr1110_wifi_version_s
 Wi-Fi firmware version. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Macros

-#define LR1110_WIFI_MAC_ADDRESS_LENGTH   ( 6 )
 
-#define LR1110_WIFI_MAX_RESULTS   ( 32 )
 
-#define LR1110_WIFI_RESULT_SSID_LENGTH   ( 32 )
 
-#define LR1110_WIFI_MAX_COUNTRY_CODE   ( 32 )
 
-#define LR1110_WIFI_STR_COUNTRY_CODE_SIZE   ( 2 )
 
-#define LR1110_WIFI_CHANNEL_1_POS   ( 0U )
 Channel at frequency 2.412 GHz.
 
-#define LR1110_WIFI_CHANNEL_1_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_1_POS )
 
-#define LR1110_WIFI_CHANNEL_2_POS   ( 1U )
 Channel at frequency 2.417 GHz.
 
-#define LR1110_WIFI_CHANNEL_2_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_2_POS )
 
-#define LR1110_WIFI_CHANNEL_3_POS   ( 2U )
 Channel at frequency 2.422 GHz.
 
-#define LR1110_WIFI_CHANNEL_3_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_3_POS )
 
-#define LR1110_WIFI_CHANNEL_4_POS   ( 3U )
 Channel at frequency 2.427 GHz.
 
-#define LR1110_WIFI_CHANNEL_4_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_4_POS )
 
-#define LR1110_WIFI_CHANNEL_5_POS   ( 4U )
 Channel at frequency 2.432 GHz.
 
-#define LR1110_WIFI_CHANNEL_5_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_5_POS )
 
-#define LR1110_WIFI_CHANNEL_6_POS   ( 5U )
 Channel at frequency 2.437 GHz.
 
-#define LR1110_WIFI_CHANNEL_6_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_6_POS )
 
-#define LR1110_WIFI_CHANNEL_7_POS   ( 6U )
 Channel at frequency 2.442 GHz.
 
-#define LR1110_WIFI_CHANNEL_7_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_7_POS )
 
-#define LR1110_WIFI_CHANNEL_8_POS   ( 7U )
 Channel at frequency 2.447 GHz.
 
-#define LR1110_WIFI_CHANNEL_8_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_8_POS )
 
-#define LR1110_WIFI_CHANNEL_9_POS   ( 8U )
 Channel at frequency 2.452 GHz.
 
-#define LR1110_WIFI_CHANNEL_9_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_9_POS )
 
-#define LR1110_WIFI_CHANNEL_10_POS   ( 9U )
 Channel at frequency 2.457 GHz.
 
-#define LR1110_WIFI_CHANNEL_10_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_10_POS )
 
-#define LR1110_WIFI_CHANNEL_11_POS   ( 10U )
 Channel at frequency 2.462 GHz.
 
-#define LR1110_WIFI_CHANNEL_11_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_11_POS )
 
-#define LR1110_WIFI_CHANNEL_12_POS   ( 11U )
 Channel at frequency 2.467 GHz.
 
-#define LR1110_WIFI_CHANNEL_12_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_12_POS )
 
-#define LR1110_WIFI_CHANNEL_13_POS   ( 12U )
 Channel at frequency 2.472 GHz.
 
-#define LR1110_WIFI_CHANNEL_13_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_13_POS )
 
-#define LR1110_WIFI_CHANNEL_14_POS   ( 13U )
 Channel at frequency 2.484 GHz.
 
-#define LR1110_WIFI_CHANNEL_14_MASK   ( 0x01UL << LR1110_WIFI_CHANNEL_14_POS )
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Typedefs

-typedef uint16_t lr1110_wifi_channel_mask_t
 Type to store a Wi-Fi channel mask.
 
-typedef uint8_t lr1110_wifi_channel_info_byte_t
 Type to store a Wi-Fi channel info byte.
 
-typedef uint8_t lr1110_wifi_datarate_info_byte_t
 Type to store a Wi-Fi datarate info byte.
 
-typedef uint8_t lr1110_wifi_frame_type_info_byte_t
 Type to store a Wi-Fi frame type info byte.
 
-typedef uint8_t lr1110_wifi_frame_sub_type_t
 Type to store a Wi-Fi frame sub_type.
 
-typedef struct lr1110_wifi_fcs_info_byte_s lr1110_wifi_fcs_info_byte_t
 Wi-Fi FCS info byte.
 
-typedef uint8_t lr1110_wifi_mac_address_t[LR1110_WIFI_MAC_ADDRESS_LENGTH]
 Type to store a MAC address.
 
typedef struct lr1110_wifi_cumulative_timings_s lr1110_wifi_cumulative_timings_t
 Cumulative timings. More...
 
typedef struct lr1110_wifi_basic_complete_result_s lr1110_wifi_basic_complete_result_t
 Basic complete result structure. More...
 
-typedef struct lr1110_wifi_basic_mac_type_channel_result_s lr1110_wifi_basic_mac_type_channel_result_t
 Basic MAC, type, channel result structure.
 
-typedef struct lr1110_wifi_country_code_s lr1110_wifi_country_code_t
 Wi-Fi country code structure.
 
-typedef struct lr1110_wifi_version_s lr1110_wifi_version_t
 Wi-Fi firmware version.
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Enumerations

enum  lr1110_wifi_channel_t {
-  LR1110_WIFI_NO_CHANNEL = 0x00, -LR1110_WIFI_CHANNEL_1 = 0x01, -LR1110_WIFI_CHANNEL_2 = 0x02, -LR1110_WIFI_CHANNEL_3 = 0x03, -
-  LR1110_WIFI_CHANNEL_4 = 0x04, -LR1110_WIFI_CHANNEL_5 = 0x05, -LR1110_WIFI_CHANNEL_6 = 0x06, -LR1110_WIFI_CHANNEL_7 = 0x07, -
-  LR1110_WIFI_CHANNEL_8 = 0x08, -LR1110_WIFI_CHANNEL_9 = 0x09, -LR1110_WIFI_CHANNEL_10 = 0x0A, -LR1110_WIFI_CHANNEL_11 = 0x0B, -
-  LR1110_WIFI_CHANNEL_12 = 0x0C, -LR1110_WIFI_CHANNEL_13 = 0x0D, -LR1110_WIFI_CHANNEL_14 = 0x0E, -LR1110_WIFI_ALL_CHANNELS = 0x0F -
- }
 Wi-Fi Channels index. More...
 
enum  lr1110_wifi_datarate_t {
-  LR1110_WIFI_DATARATE_1_MBPS = 1, -LR1110_WIFI_DATARATE_2_MBPS = 2, -LR1110_WIFI_DATARATE_6_MBPS = 3, -LR1110_WIFI_DATARATE_9_MBPS = 4, -
-  LR1110_WIFI_DATARATE_12_MBPS = 5, -LR1110_WIFI_DATARATE_18_MBPS = 6, -LR1110_WIFI_DATARATE_24_MBPS = 7, -LR1110_WIFI_DATARATE_36_MBPS = 8, -
-  LR1110_WIFI_DATARATE_48_MBPS = 9, -LR1110_WIFI_DATARATE_54_MBPS = 10, -LR1110_WIFI_DATARATE_6_5_MBPS = 11, -LR1110_WIFI_DATARATE_13_MBPS = 12, -
-  LR1110_WIFI_DATARATE_19_5_MBPS = 13, -LR1110_WIFI_DATARATE_26_MBPS = 14, -LR1110_WIFI_DATARATE_39_MBPS = 15, -LR1110_WIFI_DATARATE_52_MBPS = 16, -
-  LR1110_WIFI_DATARATE_58_MBPS = 17, -LR1110_WIFI_DATARATE_65_MBPS = 18, -LR1110_WIFI_DATARATE_7_2_MBPS = 19, -LR1110_WIFI_DATARATE_14_4_MBPS = 20, -
-  LR1110_WIFI_DATARATE_21_7_MBPS = 21, -LR1110_WIFI_DATARATE_28_9_MBPS = 22, -LR1110_WIFI_DATARATE_43_3_MBPS = 23, -LR1110_WIFI_DATARATE_57_8_MBPS = 24, -
-  LR1110_WIFI_DATARATE_65_2_MBPS = 25, -LR1110_WIFI_DATARATE_72_2_MBPS = 26 -
- }
 WiFi theoretical Datarates.
 
enum  lr1110_wifi_frame_type_t { LR1110_WIFI_FRAME_TYPE_MANAGEMENT = 0x00, -LR1110_WIFI_FRAME_TYPE_CONTROL = 0x01, -LR1110_WIFI_FRAME_TYPE_DATA = 0x02 - }
 WiFi Frame Types.
 
enum  lr1110_wifi_mac_origin_t { LR1110_WIFI_ORIGIN_BEACON_FIX_AP = 1, -LR1110_WIFI_ORIGIN_BEACON_MOBILE_AP = 2, -LR1110_WIFI_ORIGIN_UNKNOWN = 3 - }
 The WiFi MAC address origin. More...
 
enum  lr1110_wifi_signal_type_scan_t { LR1110_WIFI_TYPE_SCAN_B = 0x01, -LR1110_WIFI_TYPE_SCAN_G = 0x02, -LR1110_WIFI_TYPE_SCAN_N = 0x03, -LR1110_WIFI_TYPE_SCAN_B_G_N = 0x04 - }
 Wi-Fi signal type for passive scanning configuration. More...
 
enum  lr1110_wifi_signal_type_result_t { LR1110_WIFI_TYPE_RESULT_B = 0x01, -LR1110_WIFI_TYPE_RESULT_G = 0x02, -LR1110_WIFI_TYPE_RESULT_N = 0x03 - }
 Wi-Fi signal type for passive scan results. More...
 
enum  lr1110_wifi_mode_t { LR1110_WIFI_SCAN_MODE_BEACON, -LR1110_WIFI_SCAN_MODE_BEACON_AND_PKT, -LR1110_WIFI_SCAN_MODE_FULL_BEACON, -LR1110_WIFI_SCAN_MODE_UNTIL_SSID = 5 - }
 Wi-Fi capture mode. More...
 
enum  lr1110_wifi_result_format_t { LR1110_WIFI_RESULT_FORMAT_BASIC_COMPLETE, -LR1110_WIFI_RESULT_FORMAT_BASIC_MAC_TYPE_CHANNEL, -LR1110_WIFI_RESULT_FORMAT_EXTENDED_FULL - }
 Wi-Fi scan result formats.
 
-

Detailed Description

-

Wi-Fi passive scan driver types for LR1110.

-

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

-

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    -
  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • -
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • -
  • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  • -
-

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-

Typedef Documentation

- -

◆ lr1110_wifi_cumulative_timings_t

- -
-
- -

Cumulative timings.

-

This structure is representing the cumulative time spent in the different modes of Wi-Fi passive scanning procedure. All timings are provided in [us].

- -
-
- -

◆ lr1110_wifi_basic_complete_result_t

- -
-
- -

Basic complete result structure.

-

The beacon period is expressed in TU (Time Unit). 1 TU is 1024 microseconds.

- -
-
-

Enumeration Type Documentation

- -

◆ lr1110_wifi_channel_t

- -
-
- - - - -
enum lr1110_wifi_channel_t
-
- -

Wi-Fi Channels index.

- - - - - - - - - - - - - - - -
Enumerator
LR1110_WIFI_CHANNEL_1 

Channel at frequency 2.412 GHz.

-
LR1110_WIFI_CHANNEL_2 

Channel at frequency 2.417 GHz.

-
LR1110_WIFI_CHANNEL_3 

Channel at frequency 2.422 GHz.

-
LR1110_WIFI_CHANNEL_4 

Channel at frequency 2.427 GHz.

-
LR1110_WIFI_CHANNEL_5 

Channel at frequency 2.432 GHz.

-
LR1110_WIFI_CHANNEL_6 

Channel at frequency 2.437 GHz.

-
LR1110_WIFI_CHANNEL_7 

Channel at frequency 2.442 GHz.

-
LR1110_WIFI_CHANNEL_8 

Channel at frequency 2.447 GHz.

-
LR1110_WIFI_CHANNEL_9 

Channel at frequency 2.452 GHz.

-
LR1110_WIFI_CHANNEL_10 

Channel at frequency 2.457 GHz.

-
LR1110_WIFI_CHANNEL_11 

Channel at frequency 2.462 GHz.

-
LR1110_WIFI_CHANNEL_12 

Channel at frequency 2.467 GHz.

-
LR1110_WIFI_CHANNEL_13 

Channel at frequency 2.472 GHz.

-
LR1110_WIFI_CHANNEL_14 

Channel at frequency 2.484 GHz.

-
- -
-
- -

◆ lr1110_wifi_mac_origin_t

- -
-
- - - - -
enum lr1110_wifi_mac_origin_t
-
- -

The WiFi MAC address origin.

-
See also
lr1110_wifi_parse_channel_info for details about the MAC address origin estimation of the LR1110
- - - - -
Enumerator
LR1110_WIFI_ORIGIN_BEACON_FIX_AP 

MAC address extracted from a packet coming from a fix Access Point.

-
LR1110_WIFI_ORIGIN_BEACON_MOBILE_AP 

MAC address extracted from a packet coming from a mobile Access Point.

-
LR1110_WIFI_ORIGIN_UNKNOWN 

Impossible to determine the origin of the packet the MAC is extracted from.

-
- -
-
- -

◆ lr1110_wifi_signal_type_scan_t

- -
-
- -

Wi-Fi signal type for passive scanning configuration.

-

Note it is not possible to configure the WiFi passive scanning to search Wi-Fi type N GreenField. Only Wi-Fi type N Mixed Mode can be scanned by LR1110.

-
Warning
LR1110_WIFI_TYPE_SCAN_G and LR1110_WIFI_TYPE_SCAN_N configurations are implemented the same way, and both will scan Wi-Fi type G AND Wi-Fi type N.
- - - - - -
Enumerator
LR1110_WIFI_TYPE_SCAN_B 

Wi-Fi B.

-
LR1110_WIFI_TYPE_SCAN_G 

Wi-Fi G.

-
LR1110_WIFI_TYPE_SCAN_N 

Wi-Fi N.

-
LR1110_WIFI_TYPE_SCAN_B_G_N 

Wi-Fi B and Wi-Fi G/N.

-
- -
-
- -

◆ lr1110_wifi_signal_type_result_t

- -
-
- -

Wi-Fi signal type for passive scan results.

-

Note that the Wi-Fi N detected is Wi-Fi N Mixed mode, and not GreenField.

- - - - -
Enumerator
LR1110_WIFI_TYPE_RESULT_B 

WiFi B.

-
LR1110_WIFI_TYPE_RESULT_G 

WiFi G.

-
LR1110_WIFI_TYPE_RESULT_N 

WiFi N.

-
- -
-
- -

◆ lr1110_wifi_mode_t

- -
-
- - - - -
enum lr1110_wifi_mode_t
-
- -

Wi-Fi capture mode.

-

The result type available depends on the Wi-Fi capture mode selected when calling the Wi-Fi scan API as follows:

- - - - - - - - - -
Scan Mode Type/Sub-type selected Corresponding read result function
LR1110_WIFI_SCAN_MODE_BEACON Management/Beacon and Management/Probe Response lr1110_wifi_read_basic_complete_results, lr1110_wifi_read_basic_mac_type_channel_results
LR1110_WIFI_SCAN_MODE_BEACON_AND_PKT Some from Management, Control and Data Types
LR1110_WIFI_SCAN_MODE_FULL_BEACON Management/Beacon and Management/Probe Response lr1110_wifi_read_extended_full_results LR1110_WIFI_SCAN_MODE_UNTIL_SSID Management/Beacon and Management/Probe Response - until SSID field lr1110_wifi_read_extended_full_results
-

When the LR1110 receives a Wi-Fi frame, it starts demodulating it. Depending on the scan mode selected, only some Wi-Fi frame type/sub-types are to be kept. The demodulation step is stopped as soon as the LR1110 detects the current Wi-Fi frame is not of the required type/sub-types. This saves scan time and consumption.

-

A Wi-Fi frame is never completely demodulated. The LR1110_WIFI_SCAN_MODE_FULL_BEACON uses a special configuration allowing to demodulate more fields (until Frame Check Sequence field), at a price of higher scan duration and higher consumption.

- - - - - -
Enumerator
LR1110_WIFI_SCAN_MODE_BEACON 

Exposes Beacons and Probe Responses Access Points frames until Period Beacon field (Basic result)

-
LR1110_WIFI_SCAN_MODE_BEACON_AND_PKT 

Exposes some Management Access Points frames until Period Beacon field, and some other packets frame until third Mac Address field (Basic result)

-
LR1110_WIFI_SCAN_MODE_FULL_BEACON 

Exposes Beacons and Probes Responses Access Points frames until Frame Check Sequence (FCS) field (Extended result). In this mode, only signal type LR1110_WIFI_TYPE_SCAN_B is executed and other signal types are silently discarded.

-
LR1110_WIFI_SCAN_MODE_UNTIL_SSID 

Exposes Beacons and Probes Responses Access Points frames until the end of SSID field (Extended result) - available since firmware 0x0306

-
- -
-
-
- - - - diff --git a/doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.map b/doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.map deleted file mode 100644 index a7efd20..0000000 --- a/doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.md5 b/doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.md5 deleted file mode 100644 index 9d614e7..0000000 --- a/doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -9d7fd907990998f8ee5f57c1fb4e9c49 \ No newline at end of file diff --git a/doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.png b/doc/lr1110/html/lr1110__wifi__types_8h__dep__incl.png deleted file mode 100644 index 4acc3287bcb318bb9159c58b6b57082f613f9842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8075 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 - - - - - - -lr1110_driver: lr1110_driver/src/lr1110_wifi_types.h Source File - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
lr1110_wifi_types.h
-
-
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_WIFI_TYPES_H
-
36 #define LR1110_WIFI_TYPES_H
-
37 
-
38 #ifdef __cplusplus
-
39 extern "C" {
-
40 #endif
-
41 
-
42 /*
-
43  * -----------------------------------------------------------------------------
-
44  * --- DEPENDENCIES ------------------------------------------------------------
-
45  */
-
46 
-
47 #include <stdbool.h>
-
48 #include <stdint.h>
-
49 
-
50 /*
-
51  * -----------------------------------------------------------------------------
-
52  * --- PUBLIC MACROS -----------------------------------------------------------
-
53  */
-
54 
-
55 /*
-
56  * -----------------------------------------------------------------------------
-
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
-
58  */
-
59 
-
60 #define LR1110_WIFI_MAC_ADDRESS_LENGTH ( 6 )
-
61 #define LR1110_WIFI_MAX_RESULTS ( 32 )
-
62 #define LR1110_WIFI_RESULT_SSID_LENGTH ( 32 )
-
63 #define LR1110_WIFI_MAX_COUNTRY_CODE ( 32 )
-
64 #define LR1110_WIFI_STR_COUNTRY_CODE_SIZE ( 2 )
-
65 
-
66 #define LR1110_WIFI_CHANNEL_1_POS ( 0U )
-
67 #define LR1110_WIFI_CHANNEL_1_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_1_POS )
-
68 #define LR1110_WIFI_CHANNEL_2_POS ( 1U )
-
69 #define LR1110_WIFI_CHANNEL_2_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_2_POS )
-
70 #define LR1110_WIFI_CHANNEL_3_POS ( 2U )
-
71 #define LR1110_WIFI_CHANNEL_3_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_3_POS )
-
72 #define LR1110_WIFI_CHANNEL_4_POS ( 3U )
-
73 #define LR1110_WIFI_CHANNEL_4_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_4_POS )
-
74 #define LR1110_WIFI_CHANNEL_5_POS ( 4U )
-
75 #define LR1110_WIFI_CHANNEL_5_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_5_POS )
-
76 #define LR1110_WIFI_CHANNEL_6_POS ( 5U )
-
77 #define LR1110_WIFI_CHANNEL_6_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_6_POS )
-
78 #define LR1110_WIFI_CHANNEL_7_POS ( 6U )
-
79 #define LR1110_WIFI_CHANNEL_7_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_7_POS )
-
80 #define LR1110_WIFI_CHANNEL_8_POS ( 7U )
-
81 #define LR1110_WIFI_CHANNEL_8_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_8_POS )
-
82 #define LR1110_WIFI_CHANNEL_9_POS ( 8U )
-
83 #define LR1110_WIFI_CHANNEL_9_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_9_POS )
-
84 #define LR1110_WIFI_CHANNEL_10_POS ( 9U )
-
85 #define LR1110_WIFI_CHANNEL_10_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_10_POS )
-
86 #define LR1110_WIFI_CHANNEL_11_POS ( 10U )
-
87 #define LR1110_WIFI_CHANNEL_11_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_11_POS )
-
88 #define LR1110_WIFI_CHANNEL_12_POS ( 11U )
-
89 #define LR1110_WIFI_CHANNEL_12_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_12_POS )
-
90 #define LR1110_WIFI_CHANNEL_13_POS ( 12U )
-
91 #define LR1110_WIFI_CHANNEL_13_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_13_POS )
-
92 #define LR1110_WIFI_CHANNEL_14_POS ( 13U )
-
93 #define LR1110_WIFI_CHANNEL_14_MASK ( 0x01UL << LR1110_WIFI_CHANNEL_14_POS )
-
94 
-
95 /*
-
96  * -----------------------------------------------------------------------------
-
97  * --- PUBLIC TYPES ------------------------------------------------------------
-
98  */
-
99 
-
103 typedef uint16_t lr1110_wifi_channel_mask_t;
-
104 
- -
109 
- -
114 
- -
119 
- -
124 
- -
129 {
-
130  bool is_fcs_ok;
- - -
133 
-
137 typedef uint8_t lr1110_wifi_mac_address_t[LR1110_WIFI_MAC_ADDRESS_LENGTH];
-
138 
-
142 typedef enum
-
143 {
-
144  LR1110_WIFI_NO_CHANNEL = 0x00,
- - - - - - - - - - - - - - -
159  LR1110_WIFI_ALL_CHANNELS = 0x0F,
- -
161 
-
165 typedef enum
-
166 {
-
167  LR1110_WIFI_DATARATE_1_MBPS = 1,
-
168  LR1110_WIFI_DATARATE_2_MBPS = 2,
-
169  LR1110_WIFI_DATARATE_6_MBPS = 3,
-
170  LR1110_WIFI_DATARATE_9_MBPS = 4,
-
171  LR1110_WIFI_DATARATE_12_MBPS = 5,
-
172  LR1110_WIFI_DATARATE_18_MBPS = 6,
-
173  LR1110_WIFI_DATARATE_24_MBPS = 7,
-
174  LR1110_WIFI_DATARATE_36_MBPS = 8,
-
175  LR1110_WIFI_DATARATE_48_MBPS = 9,
-
176  LR1110_WIFI_DATARATE_54_MBPS = 10,
-
177  LR1110_WIFI_DATARATE_6_5_MBPS = 11,
-
178  LR1110_WIFI_DATARATE_13_MBPS = 12,
-
179  LR1110_WIFI_DATARATE_19_5_MBPS = 13,
-
180  LR1110_WIFI_DATARATE_26_MBPS = 14,
-
181  LR1110_WIFI_DATARATE_39_MBPS = 15,
-
182  LR1110_WIFI_DATARATE_52_MBPS = 16,
-
183  LR1110_WIFI_DATARATE_58_MBPS = 17,
-
184  LR1110_WIFI_DATARATE_65_MBPS = 18,
-
185  LR1110_WIFI_DATARATE_7_2_MBPS = 19,
-
186  LR1110_WIFI_DATARATE_14_4_MBPS = 20,
-
187  LR1110_WIFI_DATARATE_21_7_MBPS = 21,
-
188  LR1110_WIFI_DATARATE_28_9_MBPS = 22,
-
189  LR1110_WIFI_DATARATE_43_3_MBPS = 23,
-
190  LR1110_WIFI_DATARATE_57_8_MBPS = 24,
-
191  LR1110_WIFI_DATARATE_65_2_MBPS = 25,
-
192  LR1110_WIFI_DATARATE_72_2_MBPS = 26,
- -
194 
-
198 typedef enum
-
199 {
-
200  LR1110_WIFI_FRAME_TYPE_MANAGEMENT = 0x00,
-
201  LR1110_WIFI_FRAME_TYPE_CONTROL = 0x01,
-
202  LR1110_WIFI_FRAME_TYPE_DATA = 0x02,
- -
204 
-
210 typedef enum
-
211 {
- - - - -
216 
-
226 typedef enum
-
227 {
- - - - - -
233 
-
239 typedef enum
-
240 {
- - - - -
245 
-
270 typedef enum
-
271 {
- -
273  1,
- -
275  2,
- -
278  4,
- - -
284 
- -
292 {
-
293  uint32_t rx_detection_us;
-
294  uint32_t rx_correlation_us;
-
295  uint32_t rx_capture_us;
-
296  uint32_t demodulation_us;
- -
298 
- -
305 {
-
306  lr1110_wifi_datarate_info_byte_t data_rate_info_byte;
-
307  lr1110_wifi_channel_info_byte_t channel_info_byte;
-
308  int8_t rssi;
-
309  lr1110_wifi_frame_type_info_byte_t frame_type_info_byte;
-
310  lr1110_wifi_mac_address_t mac_address;
-
311  int16_t phi_offset;
-
312  uint64_t timestamp_us;
-
313  uint16_t beacon_period_tu;
- -
315 
- -
320 {
-
321  lr1110_wifi_datarate_info_byte_t data_rate_info_byte;
-
322  lr1110_wifi_channel_info_byte_t channel_info_byte;
-
323  int8_t rssi;
-
324  lr1110_wifi_mac_address_t mac_address;
- -
326 
-
338 typedef struct
-
339 {
-
340  lr1110_wifi_datarate_info_byte_t data_rate_info_byte;
-
341  lr1110_wifi_channel_info_byte_t channel_info_byte;
-
342  int8_t rssi;
-
343  uint8_t rate;
-
344  uint16_t service;
-
345  uint16_t length;
-
346  uint16_t frame_control;
-
347  lr1110_wifi_mac_address_t mac_address_1;
-
348  lr1110_wifi_mac_address_t mac_address_2;
-
349  lr1110_wifi_mac_address_t mac_address_3;
-
350  uint64_t timestamp_us;
-
351  uint16_t beacon_period_tu;
-
353  uint16_t seq_control;
-
354  uint8_t ssid_bytes[LR1110_WIFI_RESULT_SSID_LENGTH];
-
355  lr1110_wifi_channel_t current_channel;
-
357  uint16_t country_code;
-
358  uint8_t io_regulation;
-
359  lr1110_wifi_fcs_info_byte_t fcs_check_byte; //<! Frame Check Sequence info
-
360  int16_t phi_offset;
- -
362 
-
366 typedef enum
-
367 {
-
368  LR1110_WIFI_RESULT_FORMAT_BASIC_COMPLETE,
-
369  LR1110_WIFI_RESULT_FORMAT_BASIC_MAC_TYPE_CHANNEL,
-
370  LR1110_WIFI_RESULT_FORMAT_EXTENDED_FULL,
- -
372 
- -
377 {
-
378  uint8_t country_code[LR1110_WIFI_STR_COUNTRY_CODE_SIZE];
-
379  uint8_t io_regulation;
-
380  lr1110_wifi_channel_info_byte_t channel_info_byte;
-
381  lr1110_wifi_mac_address_t mac_address;
- -
383 
-
387 typedef struct lr1110_wifi_version_s
-
388 {
-
389  uint8_t major;
-
390  uint8_t minor;
- -
392 
-
393 /*
-
394  * -----------------------------------------------------------------------------
-
395  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
-
396  */
-
397 
-
398 #ifdef __cplusplus
-
399 }
-
400 #endif
-
401 
-
402 #endif // LR1110_WIFI_TYPES_H
-
403 
-
404 /* --- EOF ------------------------------------------------------------------ */
-
-
@ LR1110_WIFI_CHANNEL_13
Channel at frequency 2.472 GHz.
Definition: lr1110_wifi_types.h:157
-
lr1110_wifi_signal_type_scan_t
Wi-Fi signal type for passive scanning configuration.
Definition: lr1110_wifi_types.h:227
-
@ LR1110_WIFI_TYPE_RESULT_B
WiFi B.
Definition: lr1110_wifi_types.h:241
-
uint8_t lr1110_wifi_channel_info_byte_t
Type to store a Wi-Fi channel info byte.
Definition: lr1110_wifi_types.h:108
-
@ LR1110_WIFI_TYPE_SCAN_N
Wi-Fi N.
Definition: lr1110_wifi_types.h:230
-
@ LR1110_WIFI_SCAN_MODE_UNTIL_SSID
Definition: lr1110_wifi_types.h:281
-
struct lr1110_wifi_fcs_info_byte_s lr1110_wifi_fcs_info_byte_t
Wi-Fi FCS info byte.
-
Basic MAC, type, channel result structure.
Definition: lr1110_wifi_types.h:320
-
bool is_fcs_checked
True if the LR1110 has checked the FCS.
Definition: lr1110_wifi_types.h:131
-
uint32_t rx_capture_us
Cumulative time spent during signal acquisition.
Definition: lr1110_wifi_types.h:295
-
uint8_t lr1110_wifi_frame_sub_type_t
Type to store a Wi-Fi frame sub_type.
Definition: lr1110_wifi_types.h:123
-
Extended full result structure.
Definition: lr1110_wifi_types.h:339
-
struct lr1110_wifi_version_s lr1110_wifi_version_t
Wi-Fi firmware version.
-
@ LR1110_WIFI_TYPE_RESULT_G
WiFi G.
Definition: lr1110_wifi_types.h:242
-
uint64_t timestamp_us
Definition: lr1110_wifi_types.h:350
-
struct lr1110_wifi_country_code_s lr1110_wifi_country_code_t
Wi-Fi country code structure.
-
@ LR1110_WIFI_CHANNEL_10
Channel at frequency 2.457 GHz.
Definition: lr1110_wifi_types.h:154
-
lr1110_wifi_channel_t
Wi-Fi Channels index.
Definition: lr1110_wifi_types.h:143
-
@ LR1110_WIFI_CHANNEL_9
Channel at frequency 2.452 GHz.
Definition: lr1110_wifi_types.h:153
-
lr1110_wifi_result_format_t
Wi-Fi scan result formats.
Definition: lr1110_wifi_types.h:367
-
uint16_t country_code
Country Code.
Definition: lr1110_wifi_types.h:357
-
@ LR1110_WIFI_TYPE_SCAN_B_G_N
Wi-Fi B and Wi-Fi G/N.
Definition: lr1110_wifi_types.h:231
-
@ LR1110_WIFI_CHANNEL_2
Channel at frequency 2.417 GHz.
Definition: lr1110_wifi_types.h:146
-
lr1110_wifi_mode_t
Wi-Fi capture mode.
Definition: lr1110_wifi_types.h:271
-
@ LR1110_WIFI_ORIGIN_UNKNOWN
Impossible to determine the origin of the packet the MAC is extracted from.
Definition: lr1110_wifi_types.h:214
-
@ LR1110_WIFI_CHANNEL_3
Channel at frequency 2.422 GHz.
Definition: lr1110_wifi_types.h:147
-
lr1110_wifi_frame_type_t
WiFi Frame Types.
Definition: lr1110_wifi_types.h:199
-
uint32_t rx_correlation_us
Cumulative time spent during preamble detection.
Definition: lr1110_wifi_types.h:294
-
@ LR1110_WIFI_CHANNEL_12
Channel at frequency 2.467 GHz.
Definition: lr1110_wifi_types.h:156
-
Wi-Fi country code structure.
Definition: lr1110_wifi_types.h:377
-
@ LR1110_WIFI_TYPE_SCAN_G
Wi-Fi G.
Definition: lr1110_wifi_types.h:229
-
Basic complete result structure.
Definition: lr1110_wifi_types.h:305
-
struct lr1110_wifi_basic_mac_type_channel_result_s lr1110_wifi_basic_mac_type_channel_result_t
Basic MAC, type, channel result structure.
-
uint8_t io_regulation
Input Output Regulation.
Definition: lr1110_wifi_types.h:358
-
uint8_t io_regulation
Input Output Regulation.
Definition: lr1110_wifi_types.h:379
-
lr1110_wifi_mac_origin_t
The WiFi MAC address origin.
Definition: lr1110_wifi_types.h:211
-
uint32_t rx_detection_us
Cumulative time spent during NFE or TOA.
Definition: lr1110_wifi_types.h:293
-
bool is_fcs_ok
True if the LR1110 has checked the FCS and the check succeeded.
Definition: lr1110_wifi_types.h:130
-
Wi-Fi FCS info byte.
Definition: lr1110_wifi_types.h:129
-
lr1110_wifi_datarate_t
WiFi theoretical Datarates.
Definition: lr1110_wifi_types.h:166
-
Wi-Fi firmware version.
Definition: lr1110_wifi_types.h:388
-
@ LR1110_WIFI_SCAN_MODE_FULL_BEACON
Definition: lr1110_wifi_types.h:277
-
@ LR1110_WIFI_CHANNEL_5
Channel at frequency 2.432 GHz.
Definition: lr1110_wifi_types.h:149
-
uint16_t lr1110_wifi_channel_mask_t
Type to store a Wi-Fi channel mask.
Definition: lr1110_wifi_types.h:103
-
@ LR1110_WIFI_TYPE_RESULT_N
WiFi N.
Definition: lr1110_wifi_types.h:243
-
@ LR1110_WIFI_CHANNEL_8
Channel at frequency 2.447 GHz.
Definition: lr1110_wifi_types.h:152
-
lr1110_wifi_signal_type_result_t
Wi-Fi signal type for passive scan results.
Definition: lr1110_wifi_types.h:240
-
uint8_t lr1110_wifi_datarate_info_byte_t
Type to store a Wi-Fi datarate info byte.
Definition: lr1110_wifi_types.h:113
-
@ LR1110_WIFI_CHANNEL_11
Channel at frequency 2.462 GHz.
Definition: lr1110_wifi_types.h:155
-
@ LR1110_WIFI_CHANNEL_7
Channel at frequency 2.442 GHz.
Definition: lr1110_wifi_types.h:151
-
@ LR1110_WIFI_SCAN_MODE_BEACON
Exposes Beacons and Probe Responses Access Points frames until Period Beacon field (Basic result)
Definition: lr1110_wifi_types.h:272
-
@ LR1110_WIFI_TYPE_SCAN_B
Wi-Fi B.
Definition: lr1110_wifi_types.h:228
-
uint8_t rate
Rate index.
Definition: lr1110_wifi_types.h:343
-
@ LR1110_WIFI_CHANNEL_14
Channel at frequency 2.484 GHz.
Definition: lr1110_wifi_types.h:158
-
uint16_t frame_control
Frame Control structure.
Definition: lr1110_wifi_types.h:346
-
uint64_t timestamp_us
Indicate the up-time of the Access Point transmitting the Beacon [us].
Definition: lr1110_wifi_types.h:312
-
@ LR1110_WIFI_ORIGIN_BEACON_MOBILE_AP
MAC address extracted from a packet coming from a mobile Access Point.
Definition: lr1110_wifi_types.h:213
-
uint8_t lr1110_wifi_mac_address_t[LR1110_WIFI_MAC_ADDRESS_LENGTH]
Type to store a MAC address.
Definition: lr1110_wifi_types.h:137
-
uint16_t service
Service value.
Definition: lr1110_wifi_types.h:344
-
struct lr1110_wifi_cumulative_timings_s lr1110_wifi_cumulative_timings_t
Cumulative timings.
-
@ LR1110_WIFI_CHANNEL_6
Channel at frequency 2.437 GHz.
Definition: lr1110_wifi_types.h:150
-
struct lr1110_wifi_basic_complete_result_s lr1110_wifi_basic_complete_result_t
Basic complete result structure.
-
uint8_t lr1110_wifi_frame_type_info_byte_t
Type to store a Wi-Fi frame type info byte.
Definition: lr1110_wifi_types.h:118
-
Cumulative timings.
Definition: lr1110_wifi_types.h:292
-
@ LR1110_WIFI_ORIGIN_BEACON_FIX_AP
MAC address extracted from a packet coming from a fix Access Point.
Definition: lr1110_wifi_types.h:212
-
@ LR1110_WIFI_CHANNEL_4
Channel at frequency 2.427 GHz.
Definition: lr1110_wifi_types.h:148
-
@ LR1110_WIFI_SCAN_MODE_BEACON_AND_PKT
Definition: lr1110_wifi_types.h:274
-
uint16_t seq_control
Sequence Control value.
Definition: lr1110_wifi_types.h:353
-
uint32_t demodulation_us
Cumulative time spent during software demodulation.
Definition: lr1110_wifi_types.h:296
-
@ LR1110_WIFI_CHANNEL_1
Channel at frequency 2.412 GHz.
Definition: lr1110_wifi_types.h:145
-
uint16_t length
Length of MPDU (in microseconds for WiFi B, bytes for WiFi G)
Definition: lr1110_wifi_types.h:345
- - - - diff --git a/doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.map b/doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.map deleted file mode 100644 index f3e0ea2..0000000 --- a/doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.map +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.md5 b/doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.md5 deleted file mode 100644 index 3cecdf9..0000000 --- a/doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -01095139721c6b83e8f3e2b589f3fd75 \ No newline at end of file diff --git a/doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.png b/doc/lr1110/html/lr__fhss__v1__base__types_8h__dep__incl.png deleted file mode 100644 index be2db2856f4438146c2a0a56ebf712d2c9409ef3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10959 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 LG?Yse&4d3JfBRsy diff --git a/doc/lr1110/html/lr__fhss__v1__base__types_8h__incl.md5 b/doc/lr1110/html/lr__fhss__v1__base__types_8h__incl.md5 deleted file mode 100644 index de71757..0000000 --- a/doc/lr1110/html/lr__fhss__v1__base__types_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -bb7c81d351a26bb0608c18e38331c57f \ No newline at end of file diff --git a/doc/lr1110/html/lr__fhss__v1__base__types_8h__incl.png b/doc/lr1110/html/lr__fhss__v1__base__types_8h__incl.png deleted file mode 100644 index 5690a5a9cd672ceaa18ac17abb47fc32bc3ee07b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6224 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 h+yaLrnYj6nttgzJD3GgEw05YVHEY+b6>4v> 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 diff --git a/doc/lr1110/html/structlr1110__wifi__extended__full__result__t.html b/doc/lr1110/html/structlr1110__wifi__extended__full__result__t.html deleted file mode 100644 index 18387cd..0000000 --- a/doc/lr1110/html/structlr1110__wifi__extended__full__result__t.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - -lr1110_driver: lr1110_wifi_extended_full_result_t Struct Reference - - - - - - - - - -
-
- - - - - - -
-
lr1110_driver -
-
-
- - - - - - - - -
-
- - -
- -
- -
-
- -
-
lr1110_wifi_extended_full_result_t Struct Reference
-
-
- -

Extended full result structure. - More...

- -

#include </home/dhoover/git/target/lib/lr1110_driver/src/lr1110_wifi_types.h>

-
-Collaboration diagram for lr1110_wifi_extended_full_result_t:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Data Fields

-lr1110_wifi_datarate_info_byte_t data_rate_info_byte
 
-lr1110_wifi_channel_info_byte_t channel_info_byte
 
-int8_t rssi
 
-uint8_t rate
 Rate index.
 
-uint16_t service
 Service value.
 
-uint16_t length
 Length of MPDU (in microseconds for WiFi B, bytes for WiFi G)
 
-uint16_t frame_control
 Frame Control structure.
 
-lr1110_wifi_mac_address_t mac_address_1
 
-lr1110_wifi_mac_address_t mac_address_2
 
-lr1110_wifi_mac_address_t mac_address_3
 
uint64_t timestamp_us
 
-uint16_t beacon_period_tu
 
-uint16_t seq_control
 Sequence Control value.
 
uint8_t ssid_bytes [LR1110_WIFI_RESULT_SSID_LENGTH]
 
-lr1110_wifi_channel_t current_channel
 Current channel indicated in the Wi-Fi frame.
 
-uint16_t country_code
 Country Code.
 
-uint8_t io_regulation
 Input Output Regulation.
 
-lr1110_wifi_fcs_info_byte_t fcs_check_byte
 
-int16_t phi_offset
 
-

Detailed Description

-

Extended full result structure.

-
Note
The beacon period is expressed in TU (Time Unit). 1 TU is 1024 microseconds.
-
Remarks
When used with LR1110_WIFI_SCAN_MODE_UNTIL_SSID, the following field are always set to 0:
    -
  • field is_fcs_ok and is_fcs_checked in fcs_check_byte structure
  • -
  • current_channel
  • -
  • country_code
  • -
  • io_regulation
  • -
-
-

Field Documentation

- -

◆ timestamp_us

- -
-
- - - - -
uint64_t lr1110_wifi_extended_full_result_t::timestamp_us
-
-

Indicate the up-time of the Access Point transmitting the Beacon [us]

- -
-
- -

◆ ssid_bytes

- -
-
- - - - -
uint8_t lr1110_wifi_extended_full_result_t::ssid_bytes[LR1110_WIFI_RESULT_SSID_LENGTH]
-
-

Service Set IDentifier

- -
-
-
- - - - diff --git a/doc/lr1110/html/structlr1110__wifi__extended__full__result__t__coll__graph.md5 b/doc/lr1110/html/structlr1110__wifi__extended__full__result__t__coll__graph.md5 deleted file mode 100644 index 0b4622f..0000000 --- a/doc/lr1110/html/structlr1110__wifi__extended__full__result__t__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -56972e8786f36ec22fa0518c0e07cbc9 \ No newline at end of file diff --git a/doc/lr1110/html/structlr1110__wifi__extended__full__result__t__coll__graph.png b/doc/lr1110/html/structlr1110__wifi__extended__full__result__t__coll__graph.png deleted file mode 100644 index 3135b5a1a74d68e3bc05cf2f455a20585bbb78f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6775 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 diff --git a/doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.map b/doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.map deleted file mode 100644 index a4f0ecf..0000000 --- a/doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.md5 b/doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.md5 deleted file mode 100644 index c5cb5dc..0000000 --- a/doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -725ba973199cbda1d9e870b16b658fd3 \ No newline at end of file diff --git a/doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.png b/doc/lr1110/html/unionlr1110__wifi__result__interface__t__coll__graph.png deleted file mode 100644 index fe0f4a445c8f0aa258400a358a90025130e82eca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20674 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%0AS{g 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 -lr1110_driver: Data Structures +lr11xx_driver: Data Structures @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -67,41 +67,42 @@
Here are the data structures with brief descriptions:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Clr1110_bootloader_stat1_sStatus register 1 structure definition
 Clr1110_bootloader_stat2_sStatus register 2 structure definition
 Clr1110_bootloader_version_sBootloader version structure definition
 Clr1110_gnss_context_status_sStructure for GNSS context status
 Clr1110_gnss_detected_satellite_sDetected SV structure
 Clr1110_gnss_solver_assistance_position_sAssistance position
 Clr1110_gnss_timings_sGNSS timings of the LR1110
 Clr1110_gnss_version_sVersion structure of the LR1110 GNSS firmware
 Clr1110_lr_fhss_mod_params_lr_fhss_sModulation configuration for LR_FHSS packets
 Clr1110_lr_fhss_params_tLR FHSS parameter structure
 Clr1110_radio_cad_params_sChannel Activity Detection parameters
 Clr1110_radio_mod_params_gfsk_sModulation configuration for GFSK packet
 Clr1110_radio_mod_params_lora_sModulation configuration for LoRa packet
 Clr1110_radio_pa_cfg_sConfiguration of Power Amplifier
 Clr1110_radio_pkt_params_gfsk_sPacket parameter configuration for GFSK packets
 Clr1110_radio_pkt_params_lora_sPacket parameter configuration for LoRa packets
 Clr1110_radio_pkt_status_gfsk_sStatus of GFSK received packet
 Clr1110_radio_pkt_status_lora_sStatus of received packet
 Clr1110_radio_rx_buffer_status_sLength and offset of received packet
 Clr1110_radio_stats_gfsk_sGFSK packet statistic structure
 Clr1110_radio_stats_lora_sLoRa packet statistic structure
 Clr1110_system_rfswitch_cfg_sRF switch configuration structure definition
 Clr1110_system_sleep_cfg_sSleep configuration structure definition
 Clr1110_system_stat1_sStatus register 1 structure definition
 Clr1110_system_stat2_sStatus register 2 structure definition
 Clr1110_system_version_sVersion structure definition
 Clr1110_wifi_basic_complete_result_sBasic complete result structure
 Clr1110_wifi_basic_mac_type_channel_result_sBasic MAC, type, channel result structure
 Clr1110_wifi_country_code_sWi-Fi country code structure
 Clr1110_wifi_cumulative_timings_sCumulative timings
 Clr1110_wifi_extended_full_result_tExtended full result structure
 Clr1110_wifi_fcs_info_byte_sWi-Fi FCS info byte
 Clr1110_wifi_result_interface_tWi-Fi scan results interface
 Clr1110_wifi_version_sWi-Fi firmware version
 Clr_fhss_v1_params_sLR-FHSS parameter structure
 Clr11xx_bootloader_stat1_sStatus register 1 structure definition
 Clr11xx_bootloader_stat2_sStatus register 2 structure definition
 Clr11xx_bootloader_version_sBootloader version structure definition
 Clr11xx_gnss_context_status_sStructure for GNSS context status
 Clr11xx_gnss_detected_satellite_sDetected SV structure
 Clr11xx_gnss_solver_assistance_position_sAssistance position
 Clr11xx_gnss_timings_sGNSS timings of the LR11XX
 Clr11xx_gnss_version_sVersion structure of the LR11XX GNSS firmware
 Clr11xx_lr_fhss_mod_params_lr_fhss_sModulation configuration for LR_FHSS packets
 Clr11xx_lr_fhss_params_tLR FHSS parameter structure
 Clr11xx_radio_cad_params_sChannel Activity Detection parameters
 Clr11xx_radio_mod_params_gfsk_sModulation configuration for GFSK packet
 Clr11xx_radio_mod_params_lora_sModulation configuration for LoRa packet
 Clr11xx_radio_pa_cfg_sConfiguration of Power Amplifier
 Clr11xx_radio_pkt_params_gfsk_sPacket parameter configuration for GFSK packets
 Clr11xx_radio_pkt_params_lora_sPacket parameter configuration for LoRa packets
 Clr11xx_radio_pkt_status_gfsk_sStatus of GFSK received packet
 Clr11xx_radio_pkt_status_lora_sStatus of received packet
 Clr11xx_radio_rssi_calibration_table_sRSSI calibration table
 Clr11xx_radio_rx_buffer_status_sLength and offset of received packet
 Clr11xx_radio_stats_gfsk_sGFSK packet statistic structure
 Clr11xx_radio_stats_lora_sLoRa packet statistic structure
 Clr11xx_system_rfswitch_cfg_sRF switch configuration structure definition
 Clr11xx_system_sleep_cfg_sSleep configuration structure definition
 Clr11xx_system_stat1_sStatus register 1 structure definition
 Clr11xx_system_stat2_sStatus register 2 structure definition
 Clr11xx_system_version_sVersion structure definition
 Clr11xx_wifi_basic_complete_result_sBasic complete result structure
 Clr11xx_wifi_basic_mac_type_channel_result_sBasic MAC, type, channel result structure
 Clr11xx_wifi_country_code_sWi-Fi country code structure
 Clr11xx_wifi_cumulative_timings_sCumulative timings
 Clr11xx_wifi_extended_full_result_tExtended full result structure
 Clr11xx_wifi_fcs_info_byte_sWi-Fi FCS info byte
 Clr11xx_wifi_result_interface_tWi-Fi scan results interface
 Clr11xx_wifi_version_sWi-Fi firmware version
 Clr_fhss_v1_params_sLR-FHSS parameter structure
diff --git a/doc/lr1110/html/bc_s.png b/doc/lr11xx/html/bc_s.png similarity index 100% rename from doc/lr1110/html/bc_s.png rename to doc/lr11xx/html/bc_s.png diff --git a/doc/lr1110/html/bdwn.png b/doc/lr11xx/html/bdwn.png similarity index 100% rename from doc/lr1110/html/bdwn.png rename to doc/lr11xx/html/bdwn.png diff --git a/doc/lr11xx/html/classes.html b/doc/lr11xx/html/classes.html new file mode 100644 index 0000000..c9f61cf --- /dev/null +++ b/doc/lr11xx/html/classes.html @@ -0,0 +1,125 @@ + + + + + + + +lr11xx_driver: Data Structure Index + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Data Structure Index
+
+
+ + + + diff --git a/doc/lr1110/html/closed.png b/doc/lr11xx/html/closed.png similarity index 100% rename from doc/lr1110/html/closed.png rename to doc/lr11xx/html/closed.png diff --git a/doc/lr1110/html/dir_3c71178d898afd3b302f88dd953c48b8.html b/doc/lr11xx/html/dir_6601b1d445de63d8503961b2b8f16c50.html similarity index 52% rename from doc/lr1110/html/dir_3c71178d898afd3b302f88dd953c48b8.html rename to doc/lr11xx/html/dir_6601b1d445de63d8503961b2b8f16c50.html index a2cee0e..a7a19a8 100644 --- a/doc/lr1110/html/dir_3c71178d898afd3b302f88dd953c48b8.html +++ b/doc/lr11xx/html/dir_6601b1d445de63d8503961b2b8f16c50.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src Directory Reference +lr11xx_driver: lr11xx_driver/src Directory Reference @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -61,7 +61,7 @@
@@ -72,92 +72,92 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + diff --git a/doc/lr1110/html/dir_9da5e55f4b5e6279dec863e382a3e740.html b/doc/lr11xx/html/dir_cffe238c7138f5e12fb514e7642ab336.html similarity index 91% rename from doc/lr1110/html/dir_9da5e55f4b5e6279dec863e382a3e740.html rename to doc/lr11xx/html/dir_cffe238c7138f5e12fb514e7642ab336.html index c014dfe..8b11636 100644 --- a/doc/lr1110/html/dir_9da5e55f4b5e6279dec863e382a3e740.html +++ b/doc/lr11xx/html/dir_cffe238c7138f5e12fb514e7642ab336.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver Directory Reference +lr11xx_driver: lr11xx_driver Directory Reference @@ -21,7 +21,7 @@ @@ -61,12 +61,12 @@
-
lr1110_driver Directory Reference
+
lr11xx_driver Directory Reference

Files

file  lr1110_bootloader.c
 Bootloader driver implementation for LR1110.
file  lr11xx_bootloader.c
 Bootloader driver implementation for LR11XX.
 
file  lr1110_bootloader.h [code]
 Bootloader driver definition for LR1110.
file  lr11xx_bootloader.h [code]
 Bootloader driver definition for LR11XX.
 
file  lr1110_bootloader_types.h [code]
 Bootloader driver types for LR1110.
file  lr11xx_bootloader_types.h [code]
 Bootloader driver types for LR11XX.
 
file  lr1110_crypto_engine.c
 Cryptographic engine driver implementation for LR1110.
file  lr11xx_crypto_engine.c
 Cryptographic engine driver implementation for LR11XX.
 
file  lr1110_crypto_engine.h [code]
 Cryptographic engine driver definition for LR1110.
file  lr11xx_crypto_engine.h [code]
 Cryptographic engine driver definition for LR11XX.
 
file  lr1110_crypto_engine_types.h [code]
 Cryptographic engine driver types for LR1110.
file  lr11xx_crypto_engine_types.h [code]
 Cryptographic engine driver types for LR11XX.
 
file  lr1110_driver_version.c
 Placeholder to keep the version of LR1110 driver.
file  lr11xx_driver_version.c
 Placeholder to keep the version of LR11XX driver.
 
file  lr1110_driver_version.h [code]
 Placeholder to keep the version of LR1110 driver.
file  lr11xx_driver_version.h [code]
 Placeholder to keep the version of LR11XX driver.
 
file  lr1110_gnss.c
 GNSS scan driver implementation for LR1110.
file  lr11xx_gnss.c
 GNSS scan driver implementation for LR11XX.
 
file  lr1110_gnss.h [code]
 GNSS scan driver definition for LR1110.
file  lr11xx_gnss.h [code]
 GNSS scan driver definition for LR11XX.
 
file  lr1110_gnss_types.h [code]
 GNSS scan driver types for LR1110.
file  lr11xx_gnss_types.h [code]
 GNSS scan driver types for LR11XX.
 
file  lr1110_hal.h [code]
 Hardware Abstraction Layer (HAL) interface for LR1110.
file  lr11xx_hal.h [code]
 Hardware Abstraction Layer (HAL) interface for LR11XX.
 
file  lr1110_lr_fhss.c
 LR_FHSS driver implementation for LR1110.
file  lr11xx_lr_fhss.c
 LR_FHSS driver implementation for LR11XX.
 
file  lr1110_lr_fhss.h [code]
 LR_FHSS driver definition for LR1110.
file  lr11xx_lr_fhss.h [code]
 LR_FHSS driver definition for LR11XX.
 
file  lr1110_lr_fhss_types.h [code]
 LR_FHSS types definition for LR1110.
file  lr11xx_lr_fhss_types.h [code]
 LR_FHSS types definition for LR11XX.
 
file  lr1110_radio.c
 Radio driver implementation for LR1110.
file  lr11xx_radio.c
 Radio driver implementation for LR11XX.
 
file  lr1110_radio.h [code]
 Radio driver definition for LR1110.
file  lr11xx_radio.h [code]
 Radio driver definition for LR11XX.
 
file  lr1110_radio_timings.c
 LR1110 timing helper functions implementation.
file  lr11xx_radio_timings.c
 LR11XX timing helper functions implementation.
 
file  lr1110_radio_timings.h [code]
 LR1110 timing helper functions definition.
file  lr11xx_radio_timings.h [code]
 LR11XX timing helper functions definition.
 
file  lr1110_radio_types.h [code]
 Radio driver types for LR1110.
file  lr11xx_radio_types.h [code]
 Radio driver types for LR11XX.
 
file  lr1110_regmem.c
 Register/memory driver implementation for LR1110.
file  lr11xx_regmem.c
 Register/memory driver implementation for LR11XX.
 
file  lr1110_regmem.h [code]
 Register/memory driver definition for LR1110.
file  lr11xx_regmem.h [code]
 Register/memory driver definition for LR11XX.
 
file  lr1110_system.c
 System driver implementation for LR1110.
file  lr11xx_system.c
 System driver implementation for LR11XX.
 
file  lr1110_system.h [code]
 System driver definition for LR1110.
file  lr11xx_system.h [code]
 System driver definition for LR11XX.
 
file  lr1110_system_types.h [code]
 System driver types for LR1110.
file  lr11xx_system_types.h [code]
 System driver types for LR11XX.
 
file  lr1110_types.h [code]
 Type definitions for LR1110.
file  lr11xx_types.h [code]
 Type definitions for LR11XX.
 
file  lr1110_wifi.c
 Wi-Fi passive scan driver implementation for LR1110.
file  lr11xx_wifi.c
 Wi-Fi passive scan driver implementation for LR11XX.
 
file  lr1110_wifi.h [code]
 Wi-Fi passive scan driver definition for LR1110.
file  lr11xx_wifi.h [code]
 Wi-Fi passive scan driver definition for LR11XX.
 
file  lr1110_wifi_types.h [code]
 Wi-Fi passive scan driver types for LR1110.
file  lr11xx_wifi_types.h [code]
 Wi-Fi passive scan driver types for LR11XX.
 
file  lr_fhss_v1_base_types.h [code]
 Radio-independent LR-FHSS base type definitions, version 1.
-
lr1110_driver +
lr11xx_driver
diff --git a/doc/lr1110/html/doc.png b/doc/lr11xx/html/doc.png similarity index 100% rename from doc/lr1110/html/doc.png rename to doc/lr11xx/html/doc.png diff --git a/doc/lr1110/html/doxygen.css b/doc/lr11xx/html/doxygen.css similarity index 100% rename from doc/lr1110/html/doxygen.css rename to doc/lr11xx/html/doxygen.css diff --git a/doc/lr1110/html/doxygen.svg b/doc/lr11xx/html/doxygen.svg similarity index 100% rename from doc/lr1110/html/doxygen.svg rename to doc/lr11xx/html/doxygen.svg diff --git a/doc/lr1110/html/dynsections.js b/doc/lr11xx/html/dynsections.js similarity index 100% rename from doc/lr1110/html/dynsections.js rename to doc/lr11xx/html/dynsections.js diff --git a/doc/lr1110/html/files.html b/doc/lr11xx/html/files.html similarity index 58% rename from doc/lr1110/html/files.html rename to doc/lr11xx/html/files.html index b9139f8..46ae6ab 100644 --- a/doc/lr1110/html/files.html +++ b/doc/lr11xx/html/files.html @@ -5,7 +5,7 @@ -lr1110_driver: File List +lr11xx_driver: File List @@ -21,7 +21,7 @@ @@ -67,37 +67,37 @@
Here is a list of all documented files with brief descriptions:
[detail level 123]
-
lr1110_driver +
lr11xx_driver
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  lr1110_driver
  src
 lr1110_bootloader.cBootloader driver implementation for LR1110
 lr1110_bootloader.hBootloader driver definition for LR1110
 lr1110_bootloader_types.hBootloader driver types for LR1110
 lr1110_crypto_engine.cCryptographic engine driver implementation for LR1110
 lr1110_crypto_engine.hCryptographic engine driver definition for LR1110
 lr1110_crypto_engine_types.hCryptographic engine driver types for LR1110
 lr1110_driver_version.cPlaceholder to keep the version of LR1110 driver
 lr1110_driver_version.hPlaceholder to keep the version of LR1110 driver
 lr1110_gnss.cGNSS scan driver implementation for LR1110
 lr1110_gnss.hGNSS scan driver definition for LR1110
 lr1110_gnss_types.hGNSS scan driver types for LR1110
 lr1110_hal.hHardware Abstraction Layer (HAL) interface for LR1110
 lr1110_lr_fhss.cLR_FHSS driver implementation for LR1110
 lr1110_lr_fhss.hLR_FHSS driver definition for LR1110
 lr1110_lr_fhss_types.hLR_FHSS types definition for LR1110
 lr1110_radio.cRadio driver implementation for LR1110
 lr1110_radio.hRadio driver definition for LR1110
 lr1110_radio_timings.cLR1110 timing helper functions implementation
 lr1110_radio_timings.hLR1110 timing helper functions definition
 lr1110_radio_types.hRadio driver types for LR1110
 lr1110_regmem.cRegister/memory driver implementation for LR1110
 lr1110_regmem.hRegister/memory driver definition for LR1110
 lr1110_system.cSystem driver implementation for LR1110
 lr1110_system.hSystem driver definition for LR1110
 lr1110_system_types.hSystem driver types for LR1110
 lr1110_types.hType definitions for LR1110
 lr1110_wifi.cWi-Fi passive scan driver implementation for LR1110
 lr1110_wifi.hWi-Fi passive scan driver definition for LR1110
 lr1110_wifi_types.hWi-Fi passive scan driver types for LR1110
  lr11xx_driver
  src
 lr11xx_bootloader.cBootloader driver implementation for LR11XX
 lr11xx_bootloader.hBootloader driver definition for LR11XX
 lr11xx_bootloader_types.hBootloader driver types for LR11XX
 lr11xx_crypto_engine.cCryptographic engine driver implementation for LR11XX
 lr11xx_crypto_engine.hCryptographic engine driver definition for LR11XX
 lr11xx_crypto_engine_types.hCryptographic engine driver types for LR11XX
 lr11xx_driver_version.cPlaceholder to keep the version of LR11XX driver
 lr11xx_driver_version.hPlaceholder to keep the version of LR11XX driver
 lr11xx_gnss.cGNSS scan driver implementation for LR11XX
 lr11xx_gnss.hGNSS scan driver definition for LR11XX
 lr11xx_gnss_types.hGNSS scan driver types for LR11XX
 lr11xx_hal.hHardware Abstraction Layer (HAL) interface for LR11XX
 lr11xx_lr_fhss.cLR_FHSS driver implementation for LR11XX
 lr11xx_lr_fhss.hLR_FHSS driver definition for LR11XX
 lr11xx_lr_fhss_types.hLR_FHSS types definition for LR11XX
 lr11xx_radio.cRadio driver implementation for LR11XX
 lr11xx_radio.hRadio driver definition for LR11XX
 lr11xx_radio_timings.cLR11XX timing helper functions implementation
 lr11xx_radio_timings.hLR11XX timing helper functions definition
 lr11xx_radio_types.hRadio driver types for LR11XX
 lr11xx_regmem.cRegister/memory driver implementation for LR11XX
 lr11xx_regmem.hRegister/memory driver definition for LR11XX
 lr11xx_system.cSystem driver implementation for LR11XX
 lr11xx_system.hSystem driver definition for LR11XX
 lr11xx_system_types.hSystem driver types for LR11XX
 lr11xx_types.hType definitions for LR11XX
 lr11xx_wifi.cWi-Fi passive scan driver implementation for LR11XX
 lr11xx_wifi.hWi-Fi passive scan driver definition for LR11XX
 lr11xx_wifi_types.hWi-Fi passive scan driver types for LR11XX
 lr_fhss_v1_base_types.hRadio-independent LR-FHSS base type definitions, version 1
diff --git a/doc/lr1110/html/folderclosed.png b/doc/lr11xx/html/folderclosed.png similarity index 100% rename from doc/lr1110/html/folderclosed.png rename to doc/lr11xx/html/folderclosed.png diff --git a/doc/lr1110/html/folderopen.png b/doc/lr11xx/html/folderopen.png similarity index 100% rename from doc/lr1110/html/folderopen.png rename to doc/lr11xx/html/folderopen.png diff --git a/doc/lr1110/html/form_0.png b/doc/lr11xx/html/form_0.png similarity index 100% rename from doc/lr1110/html/form_0.png rename to doc/lr11xx/html/form_0.png diff --git a/doc/lr1110/html/form_1.png b/doc/lr11xx/html/form_1.png similarity index 100% rename from doc/lr1110/html/form_1.png rename to doc/lr11xx/html/form_1.png diff --git a/doc/lr1110/html/form_10.png b/doc/lr11xx/html/form_10.png similarity index 100% rename from doc/lr1110/html/form_10.png rename to doc/lr11xx/html/form_10.png diff --git a/doc/lr1110/html/form_11.png b/doc/lr11xx/html/form_11.png similarity index 100% rename from doc/lr1110/html/form_11.png rename to doc/lr11xx/html/form_11.png diff --git a/doc/lr1110/html/form_12.png b/doc/lr11xx/html/form_12.png similarity index 100% rename from doc/lr1110/html/form_12.png rename to doc/lr11xx/html/form_12.png diff --git a/doc/lr1110/html/form_13.png b/doc/lr11xx/html/form_13.png similarity index 100% rename from doc/lr1110/html/form_13.png rename to doc/lr11xx/html/form_13.png diff --git a/doc/lr1110/html/form_14.png b/doc/lr11xx/html/form_14.png similarity index 100% rename from doc/lr1110/html/form_14.png rename to doc/lr11xx/html/form_14.png diff --git a/doc/lr1110/html/form_15.png b/doc/lr11xx/html/form_15.png similarity index 100% rename from doc/lr1110/html/form_15.png rename to doc/lr11xx/html/form_15.png diff --git a/doc/lr1110/html/form_16.png b/doc/lr11xx/html/form_16.png similarity index 100% rename from doc/lr1110/html/form_16.png rename to doc/lr11xx/html/form_16.png diff --git a/doc/lr1110/html/form_17.png b/doc/lr11xx/html/form_17.png similarity index 100% rename from doc/lr1110/html/form_17.png rename to doc/lr11xx/html/form_17.png diff --git a/doc/lr1110/html/form_18.png b/doc/lr11xx/html/form_18.png similarity index 100% rename from doc/lr1110/html/form_18.png rename to doc/lr11xx/html/form_18.png diff --git a/doc/lr1110/html/form_19.png b/doc/lr11xx/html/form_19.png similarity index 100% rename from doc/lr1110/html/form_19.png rename to doc/lr11xx/html/form_19.png diff --git a/doc/lr1110/html/form_2.png b/doc/lr11xx/html/form_2.png similarity index 100% rename from doc/lr1110/html/form_2.png rename to doc/lr11xx/html/form_2.png diff --git a/doc/lr11xx/html/form_20.png b/doc/lr11xx/html/form_20.png new file mode 100644 index 0000000000000000000000000000000000000000..83aaac82430abd5ae6b17e78a707abf4b3620f05 GIT binary patch literal 5363 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 literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/form_21.png b/doc/lr11xx/html/form_21.png new file mode 100644 index 0000000000000000000000000000000000000000..5f6d54aeed362b571486500c82b7e5aa383e909a GIT binary patch literal 5320 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 + + + + + + +lr11xx_driver: Data Fields + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- n -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+
+ + + + diff --git a/doc/lr11xx/html/functions_vars.html b/doc/lr11xx/html/functions_vars.html new file mode 100644 index 0000000..8496307 --- /dev/null +++ b/doc/lr11xx/html/functions_vars.html @@ -0,0 +1,357 @@ + + + + + + + +lr11xx_driver: Data Fields - Variables + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- n -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+
+ + + + diff --git a/doc/lr1110/html/globals.html b/doc/lr11xx/html/globals.html similarity index 94% rename from doc/lr1110/html/globals.html rename to doc/lr11xx/html/globals.html index 2d468d1..bb3295b 100644 --- a/doc/lr1110/html/globals.html +++ b/doc/lr11xx/html/globals.html @@ -5,7 +5,7 @@ -lr1110_driver: Globals +lr11xx_driver: Globals @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -65,7 +65,7 @@

- f -

diff --git a/doc/lr11xx/html/globals_defs.html b/doc/lr11xx/html/globals_defs.html new file mode 100644 index 0000000..4a062dc --- /dev/null +++ b/doc/lr11xx/html/globals_defs.html @@ -0,0 +1,230 @@ + + + + + + + +lr11xx_driver: Globals + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- i -

+ + +

- l -

+ + +

- r -

+ + +

- t -

+
+ + + + diff --git a/doc/lr11xx/html/globals_enum.html b/doc/lr11xx/html/globals_enum.html new file mode 100644 index 0000000..4a4075a --- /dev/null +++ b/doc/lr11xx/html/globals_enum.html @@ -0,0 +1,275 @@ + + + + + + + +lr11xx_driver: Globals + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- l -

+
+ + + + diff --git a/doc/lr11xx/html/globals_eval.html b/doc/lr11xx/html/globals_eval.html new file mode 100644 index 0000000..af4004a --- /dev/null +++ b/doc/lr11xx/html/globals_eval.html @@ -0,0 +1,659 @@ + + + + + + + +lr11xx_driver: Globals + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- l -

+
+ + + + diff --git a/doc/lr1110/html/globals_func.html b/doc/lr11xx/html/globals_func.html similarity index 94% rename from doc/lr1110/html/globals_func.html rename to doc/lr11xx/html/globals_func.html index 8711533..aa80bdb 100644 --- a/doc/lr1110/html/globals_func.html +++ b/doc/lr11xx/html/globals_func.html @@ -5,7 +5,7 @@ -lr1110_driver: Globals +lr11xx_driver: Globals @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -65,7 +65,7 @@

- f -

diff --git a/doc/lr1110/html/globals_func_g.html b/doc/lr11xx/html/globals_func_g.html similarity index 94% rename from doc/lr1110/html/globals_func_g.html rename to doc/lr11xx/html/globals_func_g.html index caf3393..58553d6 100644 --- a/doc/lr1110/html/globals_func_g.html +++ b/doc/lr11xx/html/globals_func_g.html @@ -5,7 +5,7 @@ -lr1110_driver: Globals +lr11xx_driver: Globals @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -65,7 +65,7 @@

- g -

diff --git a/doc/lr1110/html/globals_func_i.html b/doc/lr11xx/html/globals_func_i.html similarity index 88% rename from doc/lr1110/html/globals_func_i.html rename to doc/lr11xx/html/globals_func_i.html index ccc173c..a55e1e2 100644 --- a/doc/lr1110/html/globals_func_i.html +++ b/doc/lr11xx/html/globals_func_i.html @@ -5,7 +5,7 @@ -lr1110_driver: Globals +lr11xx_driver: Globals @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -65,13 +65,13 @@

- i -

diff --git a/doc/lr11xx/html/globals_func_l.html b/doc/lr11xx/html/globals_func_l.html new file mode 100644 index 0000000..4f37e57 --- /dev/null +++ b/doc/lr11xx/html/globals_func_l.html @@ -0,0 +1,828 @@ + + + + + + + +lr11xx_driver: Globals + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- l -

+
+ + + + diff --git a/doc/lr1110/html/globals_func_u.html b/doc/lr11xx/html/globals_func_u.html similarity index 91% rename from doc/lr1110/html/globals_func_u.html rename to doc/lr11xx/html/globals_func_u.html index 775a076..04be06e 100644 --- a/doc/lr1110/html/globals_func_u.html +++ b/doc/lr11xx/html/globals_func_u.html @@ -5,7 +5,7 @@ -lr1110_driver: Globals +lr11xx_driver: Globals @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -65,10 +65,10 @@

- u -

diff --git a/doc/lr1110/html/globals_g.html b/doc/lr11xx/html/globals_g.html similarity index 94% rename from doc/lr1110/html/globals_g.html rename to doc/lr11xx/html/globals_g.html index d6f2a95..49a457e 100644 --- a/doc/lr1110/html/globals_g.html +++ b/doc/lr11xx/html/globals_g.html @@ -5,7 +5,7 @@ -lr1110_driver: Globals +lr11xx_driver: Globals @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -65,7 +65,7 @@

- g -

diff --git a/doc/lr1110/html/globals_i.html b/doc/lr11xx/html/globals_i.html similarity index 84% rename from doc/lr1110/html/globals_i.html rename to doc/lr11xx/html/globals_i.html index 3463b14..73d3317 100644 --- a/doc/lr1110/html/globals_i.html +++ b/doc/lr11xx/html/globals_i.html @@ -5,7 +5,7 @@ -lr1110_driver: Globals +lr11xx_driver: Globals @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -65,19 +65,19 @@

- i -

diff --git a/doc/lr11xx/html/globals_l.html b/doc/lr11xx/html/globals_l.html new file mode 100644 index 0000000..01d205d --- /dev/null +++ b/doc/lr11xx/html/globals_l.html @@ -0,0 +1,1953 @@ + + + + + + + +lr11xx_driver: Globals + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+ +

- l -

+
+ + + + diff --git a/doc/lr1110/html/globals_r.html b/doc/lr11xx/html/globals_r.html similarity index 93% rename from doc/lr1110/html/globals_r.html rename to doc/lr11xx/html/globals_r.html index 269c172..85cfb25 100644 --- a/doc/lr1110/html/globals_r.html +++ b/doc/lr11xx/html/globals_r.html @@ -5,7 +5,7 @@ -lr1110_driver: Globals +lr11xx_driver: Globals @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -65,7 +65,7 @@

- r -

diff --git a/doc/lr1110/html/globals_t.html b/doc/lr11xx/html/globals_t.html similarity index 93% rename from doc/lr1110/html/globals_t.html rename to doc/lr11xx/html/globals_t.html index fe53cbf..e76555a 100644 --- a/doc/lr1110/html/globals_t.html +++ b/doc/lr11xx/html/globals_t.html @@ -5,7 +5,7 @@ -lr1110_driver: Globals +lr11xx_driver: Globals @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -65,7 +65,7 @@

- t -

diff --git a/doc/lr11xx/html/globals_type.html b/doc/lr11xx/html/globals_type.html new file mode 100644 index 0000000..7cc4bf1 --- /dev/null +++ b/doc/lr11xx/html/globals_type.html @@ -0,0 +1,281 @@ + + + + + + + +lr11xx_driver: Globals + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- l -

+
+ + + + diff --git a/doc/lr1110/html/globals_u.html b/doc/lr11xx/html/globals_u.html similarity index 91% rename from doc/lr1110/html/globals_u.html rename to doc/lr11xx/html/globals_u.html index 87f2625..fd5c235 100644 --- a/doc/lr1110/html/globals_u.html +++ b/doc/lr11xx/html/globals_u.html @@ -5,7 +5,7 @@ -lr1110_driver: Globals +lr11xx_driver: Globals @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -65,10 +65,10 @@

- u -

diff --git a/doc/lr1110/html/graph_legend.html b/doc/lr11xx/html/graph_legend.html similarity index 98% rename from doc/lr1110/html/graph_legend.html rename to doc/lr11xx/html/graph_legend.html index e2b5b21..5ed32fc 100644 --- a/doc/lr1110/html/graph_legend.html +++ b/doc/lr11xx/html/graph_legend.html @@ -5,7 +5,7 @@ -lr1110_driver: Graph Legend +lr11xx_driver: Graph Legend @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
diff --git a/doc/lr1110/html/graph_legend.md5 b/doc/lr11xx/html/graph_legend.md5 similarity index 100% rename from doc/lr1110/html/graph_legend.md5 rename to doc/lr11xx/html/graph_legend.md5 diff --git a/doc/lr1110/html/graph_legend.png b/doc/lr11xx/html/graph_legend.png similarity index 100% rename from doc/lr1110/html/graph_legend.png rename to doc/lr11xx/html/graph_legend.png diff --git a/doc/lr1110/html/index.html b/doc/lr11xx/html/index.html similarity index 96% rename from doc/lr1110/html/index.html rename to doc/lr11xx/html/index.html index b591df4..c6e9801 100644 --- a/doc/lr1110/html/index.html +++ b/doc/lr11xx/html/index.html @@ -5,7 +5,7 @@ -lr1110_driver: Overview +lr11xx_driver: Overview @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -66,7 +66,7 @@

-

This package contains drivers and demos for Long-Range Frequency Hopping Spread Spectrum (LR-FHSS) transmission on Semtech LR1110 and SX126x devices.

+

This package contains drivers and demos for Long-Range Frequency Hopping Spread Spectrum (LR-FHSS) transmission on Semtech LR11xx and SX126x devices.

For more information, see the doc directory, and Application Note AN1200.58, Long-Range FHSS Demo.

License

This code is provided according to the conditions found in the files LICENSE.txt and LICENSES.txt.

diff --git a/doc/lr1110/html/jquery.js b/doc/lr11xx/html/jquery.js similarity index 100% rename from doc/lr1110/html/jquery.js rename to doc/lr11xx/html/jquery.js diff --git a/doc/lr1110/html/lr1110__bootloader_8c.html b/doc/lr11xx/html/lr11xx__bootloader_8c.html similarity index 54% rename from doc/lr1110/html/lr1110__bootloader_8c.html rename to doc/lr11xx/html/lr11xx__bootloader_8c.html index 686d6cf..eafec73 100644 --- a/doc/lr1110/html/lr1110__bootloader_8c.html +++ b/doc/lr11xx/html/lr11xx__bootloader_8c.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_bootloader.c File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_bootloader.c File Reference @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -61,7 +61,7 @@
@@ -70,24 +70,24 @@ Enumerations | Functions
-
lr1110_bootloader.c File Reference
+
lr11xx_bootloader.c File Reference
-

Bootloader driver implementation for LR1110. +

Bootloader driver implementation for LR11XX. More...

-
#include "lr1110_bootloader.h"
-#include "lr1110_hal.h"
+
#include "lr11xx_bootloader.h"
+#include "lr11xx_hal.h"
-Include dependency graph for lr1110_bootloader.c:
+Include dependency graph for lr11xx_bootloader.c:
-
- - - - - - +
+ + + + + + @@ -95,239 +95,240 @@
- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +

Macros

-#define LR1110_FLASH_DATA_MAX_LENGTH_UINT32   ( 64 )
 
-#define LR1110_FLASH_DATA_MAX_LENGTH_UINT8   ( LR1110_FLASH_DATA_MAX_LENGTH_UINT32 * 4 )
 
-#define LR1110_BL_CMD_NO_PARAM_LENGTH   ( 2 )
 
-#define LR1110_BL_GET_STATUS_CMD_LENGTH   ( 2 + 4 )
 
-#define LR1110_BL_VERSION_CMD_LENGTH   LR1110_BL_CMD_NO_PARAM_LENGTH
 
-#define LR1110_BL_ERASE_FLASH_CMD_LENGTH   LR1110_BL_CMD_NO_PARAM_LENGTH
 
-#define LR1110_BL_WRITE_FLASH_ENCRYPTED_CMD_LENGTH   ( LR1110_BL_CMD_NO_PARAM_LENGTH + 4 )
 
-#define LR1110_BL_REBOOT_CMD_LENGTH   ( LR1110_BL_CMD_NO_PARAM_LENGTH + 1 )
 
-#define LR1110_BL_GET_PIN_CMD_LENGTH   ( LR1110_BL_CMD_NO_PARAM_LENGTH )
 
-#define LR1110_BL_READ_CHIP_EUI_CMD_LENGTH   ( LR1110_BL_CMD_NO_PARAM_LENGTH )
 
-#define LR1110_BL_READ_JOIN_EUI_CMD_LENGTH   ( LR1110_BL_CMD_NO_PARAM_LENGTH )
 
+#define LR11XX_FLASH_DATA_MAX_LENGTH_UINT32   ( 64 )
 
+#define LR11XX_FLASH_DATA_MAX_LENGTH_UINT8   ( LR11XX_FLASH_DATA_MAX_LENGTH_UINT32 * 4 )
 
+#define LR11XX_BL_CMD_NO_PARAM_LENGTH   ( 2 )
 
+#define LR11XX_BL_GET_STATUS_CMD_LENGTH   ( 2 + 4 )
 
+#define LR11XX_BL_VERSION_CMD_LENGTH   LR11XX_BL_CMD_NO_PARAM_LENGTH
 
+#define LR11XX_BL_ERASE_FLASH_CMD_LENGTH   LR11XX_BL_CMD_NO_PARAM_LENGTH
 
+#define LR11XX_BL_WRITE_FLASH_ENCRYPTED_CMD_LENGTH   ( LR11XX_BL_CMD_NO_PARAM_LENGTH + 4 )
 
+#define LR11XX_BL_REBOOT_CMD_LENGTH   ( LR11XX_BL_CMD_NO_PARAM_LENGTH + 1 )
 
+#define LR11XX_BL_GET_PIN_CMD_LENGTH   ( LR11XX_BL_CMD_NO_PARAM_LENGTH )
 
+#define LR11XX_BL_READ_CHIP_EUI_CMD_LENGTH   ( LR11XX_BL_CMD_NO_PARAM_LENGTH )
 
+#define LR11XX_BL_READ_JOIN_EUI_CMD_LENGTH   ( LR11XX_BL_CMD_NO_PARAM_LENGTH )
 
- +

Enumerations

enum  {
-  LR1110_BL_GET_STATUS_OC = 0x0100, -LR1110_BL_GET_VERSION_OC = 0x0101, -LR1110_BL_ERASE_FLASH_OC = 0x8000, -LR1110_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003, +  LR11XX_BL_GET_STATUS_OC = 0x0100, +LR11XX_BL_GET_VERSION_OC = 0x0101, +LR11XX_BL_ERASE_FLASH_OC = 0x8000, +LR11XX_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003,
-  LR1110_BL_REBOOT_OC = 0x8005, -LR1110_BL_GET_PIN_OC = 0x800B, -LR1110_BL_READ_CHIP_EUI_OC = 0x800C, -LR1110_BL_READ_JOIN_EUI_OC = 0x800D, +  LR11XX_BL_REBOOT_OC = 0x8005, +LR11XX_BL_GET_PIN_OC = 0x800B, +LR11XX_BL_READ_CHIP_EUI_OC = 0x800C, +LR11XX_BL_READ_JOIN_EUI_OC = 0x800D,
-  LR1110_CRYPTO_SELECT_OC = 0x0500, -LR1110_CRYPTO_SET_KEY_OC = 0x0502, -LR1110_CRYPTO_DERIVE_KEY_OC = 0x0503, -LR1110_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504, +  LR11XX_CRYPTO_SELECT_OC = 0x0500, +LR11XX_CRYPTO_SET_KEY_OC = 0x0502, +LR11XX_CRYPTO_DERIVE_KEY_OC = 0x0503, +LR11XX_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504,
-  LR1110_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, -LR1110_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, -LR1110_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, -LR1110_CRYPTO_ENCRYPT_AES_OC = 0x0508, +  LR11XX_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, +LR11XX_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, +LR11XX_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, +LR11XX_CRYPTO_ENCRYPT_AES_OC = 0x0508,
-  LR1110_CRYPTO_DECRYPT_AES_OC = 0x0509, -LR1110_CRYPTO_STORE_TO_FLASH_OC = 0x050A, -LR1110_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, -LR1110_CRYPTO_SET_PARAMETER_OC = 0x050D, +  LR11XX_CRYPTO_DECRYPT_AES_OC = 0x0509, +LR11XX_CRYPTO_STORE_TO_FLASH_OC = 0x050A, +LR11XX_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, +LR11XX_CRYPTO_SET_PARAMETER_OC = 0x050D,
-  LR1110_CRYPTO_GET_PARAMETER_OC = 0x050E, -LR1110_GNSS_SET_CONSTELLATION_OC = 0x0400, -LR1110_GNSS_READ_CONSTELLATION_OC = 0x0401, -LR1110_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402, +  LR11XX_CRYPTO_GET_PARAMETER_OC = 0x050E, +LR11XX_GNSS_SET_CONSTELLATION_OC = 0x0400, +LR11XX_GNSS_READ_CONSTELLATION_OC = 0x0401, +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402,
-  LR1110_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, -LR1110_GNSS_READ_FW_VERSION_OC = 0x0406, -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, -LR1110_GNSS_SET_SCAN_MODE_OC = 0x0408, +  LR11XX_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, +LR11XX_GNSS_READ_FW_VERSION_OC = 0x0406, +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, +LR11XX_GNSS_SET_SCAN_MODE_OC = 0x0408,
-  LR1110_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, -LR1110_GNSS_SCAN_ASSISTED_OC = 0x040A, -LR1110_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, -LR1110_GNSS_SCAN_READ_RES_OC = 0x040D, +  LR11XX_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, +LR11XX_GNSS_SCAN_ASSISTED_OC = 0x040A, +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, +LR11XX_GNSS_SCAN_READ_RES_OC = 0x040D,
-  LR1110_GNSS_ALMANAC_UPDATE_OC = 0x040E, -LR1110_GNSS_ALMANAC_READ_OC = 0x040F, -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411, +  LR11XX_GNSS_ALMANAC_UPDATE_OC = 0x040E, +LR11XX_GNSS_ALMANAC_READ_OC = 0x040F, +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411,
-  LR1110_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, -LR1110_GNSS_PUSH_DM_MSG_OC = 0x0415, -LR1110_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, -LR1110_GNSS_GET_NB_SATELLITES_OC = 0x0417, +  LR11XX_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, +LR11XX_GNSS_PUSH_DM_MSG_OC = 0x0415, +LR11XX_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, +LR11XX_GNSS_GET_NB_SATELLITES_OC = 0x0417,
-  LR1110_GNSS_GET_SATELLITES_OC = 0x0418, -LR1110_GNSS_GET_TIMINGS_OC = 0x0419, -LR1110_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, -LR1110_LR_FHSS_BUILD_FRAME_OC = 0x022C, +  LR11XX_GNSS_GET_SATELLITES_OC = 0x0418, +LR11XX_GNSS_GET_TIMINGS_OC = 0x0419, +LR11XX_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, +LR11XX_LR_FHSS_BUILD_FRAME_OC = 0x022C,
-  LR1110_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, -LR1110_RADIO_RESET_STATS_OC = 0x0200, -LR1110_RADIO_GET_STATS_OC = 0x0201, -LR1110_RADIO_GET_PKT_TYPE_OC = 0x0202, +  LR11XX_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, +LR11XX_RADIO_RESET_STATS_OC = 0x0200, +LR11XX_RADIO_GET_STATS_OC = 0x0201, +LR11XX_RADIO_GET_PKT_TYPE_OC = 0x0202,
-  LR1110_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, -LR1110_RADIO_GET_PKT_STATUS_OC = 0x0204, -LR1110_RADIO_GET_RSSI_INST_OC = 0x0205, -LR1110_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206, +  LR11XX_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, +LR11XX_RADIO_GET_PKT_STATUS_OC = 0x0204, +LR11XX_RADIO_GET_RSSI_INST_OC = 0x0205, +LR11XX_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206,
-  LR1110_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, -LR1110_RADIO_SET_RX_OC = 0x0209, -LR1110_RADIO_SET_TX_OC = 0x020A, -LR1110_RADIO_SET_RF_FREQUENCY_OC = 0x020B, +  LR11XX_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, +LR11XX_RADIO_SET_RX_OC = 0x0209, +LR11XX_RADIO_SET_TX_OC = 0x020A, +LR11XX_RADIO_SET_RF_FREQUENCY_OC = 0x020B,
-  LR1110_RADIO_AUTOTXRX_OC = 0x020C, -LR1110_RADIO_SET_CAD_PARAMS_OC = 0x020D, -LR1110_RADIO_SET_PKT_TYPE_OC = 0x020E, -LR1110_RADIO_SET_MODULATION_PARAM_OC = 0x020F, +  LR11XX_RADIO_AUTOTXRX_OC = 0x020C, +LR11XX_RADIO_SET_CAD_PARAMS_OC = 0x020D, +LR11XX_RADIO_SET_PKT_TYPE_OC = 0x020E, +LR11XX_RADIO_SET_MODULATION_PARAM_OC = 0x020F,
-  LR1110_RADIO_SET_PKT_PARAM_OC = 0x0210, -LR1110_RADIO_SET_TX_PARAMS_OC = 0x0211, -LR1110_RADIO_SET_PKT_ADRS_OC = 0x0212, -LR1110_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213, +  LR11XX_RADIO_SET_PKT_PARAM_OC = 0x0210, +LR11XX_RADIO_SET_TX_PARAMS_OC = 0x0211, +LR11XX_RADIO_SET_PKT_ADRS_OC = 0x0212, +LR11XX_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213,
-  LR1110_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, -LR1110_RADIO_SET_PA_CFG_OC = 0x0215, -LR1110_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, -LR1110_RADIO_SET_CAD_OC = 0x0218, +  LR11XX_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, +LR11XX_RADIO_SET_PA_CFG_OC = 0x0215, +LR11XX_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, +LR11XX_RADIO_SET_CAD_OC = 0x0218,
-  LR1110_RADIO_SET_TX_CW_OC = 0x0219, -LR1110_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, -LR1110_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, -LR1110_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224, +  LR11XX_RADIO_SET_TX_CW_OC = 0x0219, +LR11XX_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, +LR11XX_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, +LR11XX_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224,
-  LR1110_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, -LR1110_RADIO_SET_RX_BOOSTED_OC = 0x0227, -LR1110_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B, -LR1110_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +  LR11XX_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, +LR11XX_RADIO_SET_RX_BOOSTED_OC = 0x0227, +LR11XX_RADIO_SET_RSSI_CALIBRATION_OC = 0x0229, +LR11XX_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B,
-  LR1110_REGMEM_WRITE_REGMEM32_OC = 0x0105, -LR1110_REGMEM_READ_REGMEM32_OC = 0x0106, -LR1110_REGMEM_WRITE_MEM8_OC = 0x0107, -LR1110_REGMEM_READ_MEM8_OC = 0x0108, +  LR11XX_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +LR11XX_REGMEM_WRITE_REGMEM32_OC = 0x0105, +LR11XX_REGMEM_READ_REGMEM32_OC = 0x0106, +LR11XX_REGMEM_WRITE_MEM8_OC = 0x0107,
-  LR1110_REGMEM_WRITE_BUFFER8_OC = 0x0109, -LR1110_REGMEM_READ_BUFFER8_OC = 0x010A, -LR1110_REGMEM_CLEAR_RXBUFFER_OC = 0x010B, -LR1110_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +  LR11XX_REGMEM_READ_MEM8_OC = 0x0108, +LR11XX_REGMEM_WRITE_BUFFER8_OC = 0x0109, +LR11XX_REGMEM_READ_BUFFER8_OC = 0x010A, +LR11XX_REGMEM_CLEAR_RXBUFFER_OC = 0x010B,
-  LR1110_SYSTEM_GET_STATUS_OC = 0x0100, -LR1110_SYSTEM_GET_VERSION_OC = 0x0101, -LR1110_SYSTEM_GET_ERRORS_OC = 0x010D, -LR1110_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +  LR11XX_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +LR11XX_SYSTEM_GET_STATUS_OC = 0x0100, +LR11XX_SYSTEM_GET_VERSION_OC = 0x0101, +LR11XX_SYSTEM_GET_ERRORS_OC = 0x010D,
-  LR1110_SYSTEM_CALIBRATE_OC = 0x010F, -LR1110_SYSTEM_SET_REGMODE_OC = 0x0110, -LR1110_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111, -LR1110_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +  LR11XX_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +LR11XX_SYSTEM_CALIBRATE_OC = 0x010F, +LR11XX_SYSTEM_SET_REGMODE_OC = 0x0110, +LR11XX_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111,
-  LR1110_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, -LR1110_SYSTEM_CLEAR_IRQ_OC = 0x0114, -LR1110_SYSTEM_CFG_LFCLK_OC = 0x0116, -LR1110_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +  LR11XX_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +LR11XX_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, +LR11XX_SYSTEM_CLEAR_IRQ_OC = 0x0114, +LR11XX_SYSTEM_CFG_LFCLK_OC = 0x0116,
-  LR1110_SYSTEM_REBOOT_OC = 0x0118, -LR1110_SYSTEM_GET_VBAT_OC = 0x0119, -LR1110_SYSTEM_GET_TEMP_OC = 0x011A, -LR1110_SYSTEM_SET_SLEEP_OC = 0x011B, +  LR11XX_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +LR11XX_SYSTEM_REBOOT_OC = 0x0118, +LR11XX_SYSTEM_GET_VBAT_OC = 0x0119, +LR11XX_SYSTEM_GET_TEMP_OC = 0x011A,
-  LR1110_SYSTEM_SET_STANDBY_OC = 0x011C, -LR1110_SYSTEM_SET_FS_OC = 0x011D, -LR1110_SYSTEM_GET_RANDOM_OC = 0x0120, -LR1110_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +  LR11XX_SYSTEM_SET_SLEEP_OC = 0x011B, +LR11XX_SYSTEM_SET_STANDBY_OC = 0x011C, +LR11XX_SYSTEM_SET_FS_OC = 0x011D, +LR11XX_SYSTEM_GET_RANDOM_OC = 0x0120,
-  LR1110_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, -LR1110_SYSTEM_READ_INFOPAGE_OC = 0x0123, -LR1110_SYSTEM_READ_UID_OC = 0x0125, -LR1110_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +  LR11XX_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +LR11XX_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, +LR11XX_SYSTEM_READ_INFOPAGE_OC = 0x0123, +LR11XX_SYSTEM_READ_UID_OC = 0x0125,
-  LR1110_SYSTEM_READ_PIN_OC = 0x0127, -LR1110_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, -LR1110_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A, -LR1110_WIFI_SCAN_OC = 0x0300, +  LR11XX_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +LR11XX_SYSTEM_READ_PIN_OC = 0x0127, +LR11XX_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, +LR11XX_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A,
-  LR1110_WIFI_SCAN_TIME_LIMIT = 0x0301, -LR1110_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, -LR1110_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303, -LR1110_WIFI_GET_RESULT_SIZE_OC = 0x0305, +  LR11XX_WIFI_SCAN_OC = 0x0300, +LR11XX_WIFI_SCAN_TIME_LIMIT = 0x0301, +LR11XX_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, +LR11XX_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303,
-  LR1110_WIFI_READ_RESULT_OC = 0x0306, -LR1110_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, -LR1110_WIFI_READ_CUMUL_TIMING_OC = 0x0308, -LR1110_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +  LR11XX_WIFI_GET_RESULT_SIZE_OC = 0x0305, +LR11XX_WIFI_READ_RESULT_OC = 0x0306, +LR11XX_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, +LR11XX_WIFI_READ_CUMUL_TIMING_OC = 0x0308,
-  LR1110_WIFI_READ_COUNTRY_CODE_OC = 0x030A, -LR1110_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, -LR1110_WIFI_GET_VERSION_OC = 0x0320 +  LR11XX_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +LR11XX_WIFI_READ_COUNTRY_CODE_OC = 0x030A, +LR11XX_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, +LR11XX_WIFI_GET_VERSION_OC = 0x0320
}
 Operating codes for bootloader-related operations. More...
 Operating codes for bootloader-related operations. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

static uint8_t lr1110_bootloader_get_min_from_operand_and_max_block_size (uint32_t operand)
 Returns the minimum of the operand given as parameter and the maximum allowed block size. More...
 
lr1110_status_t lr1110_bootloader_get_status (const void *context, lr1110_bootloader_stat1_t *stat1, lr1110_bootloader_stat2_t *stat2, lr1110_bootloader_irq_mask_t *irq_status)
 Return the status registers and interrupt flags. More...
 
lr1110_status_t lr1110_bootloader_clear_reset_status_info (const void *context)
 Clear the reset status information stored in stat2. More...
 
lr1110_status_t lr1110_bootloader_get_version (const void *context, lr1110_bootloader_version_t *version)
 Return the version of the system (hardware and software) More...
 
lr1110_status_t lr1110_bootloader_erase_flash (const void *context)
 Erase the whole flash memory of the chip. More...
 
lr1110_status_t lr1110_bootloader_write_flash_encrypted (const void *context, const uint32_t offset, const uint32_t *data, uint8_t length)
 Write encrypted data in program flash memory of the chip. More...
 
lr1110_status_t lr1110_bootloader_write_flash_encrypted_full (const void *context, const uint32_t offset, const uint32_t *buffer, const uint32_t length)
 Write encrypted data in program flash memory of the chip. More...
 
lr1110_status_t lr1110_bootloader_reboot (const void *context, const bool stay_in_bootloader)
 Software reset of the chip. More...
 
lr1110_status_t lr1110_bootloader_read_pin (const void *context, lr1110_bootloader_pin_t pin)
 Returns the 4-byte PIN which can be used to claim a device on cloud services. More...
 
lr1110_status_t lr1110_bootloader_read_chip_eui (const void *context, lr1110_bootloader_chip_eui_t chip_eui)
 Read and return the Chip EUI. More...
 
lr1110_status_t lr1110_bootloader_read_join_eui (const void *context, lr1110_bootloader_join_eui_t join_eui)
 Read and return the Join EUI. More...
 
static uint8_t lr11xx_bootloader_get_min_from_operand_and_max_block_size (uint32_t operand)
 Returns the minimum of the operand given as parameter and the maximum allowed block size. More...
 
lr11xx_status_t lr11xx_bootloader_get_status (const void *context, lr11xx_bootloader_stat1_t *stat1, lr11xx_bootloader_stat2_t *stat2, lr11xx_bootloader_irq_mask_t *irq_status)
 Return the status registers and interrupt flags. More...
 
lr11xx_status_t lr11xx_bootloader_clear_reset_status_info (const void *context)
 Clear the reset status information stored in stat2. More...
 
lr11xx_status_t lr11xx_bootloader_get_version (const void *context, lr11xx_bootloader_version_t *version)
 Return the version of the system (hardware and software) More...
 
lr11xx_status_t lr11xx_bootloader_erase_flash (const void *context)
 Erase the whole flash memory of the chip. More...
 
lr11xx_status_t lr11xx_bootloader_write_flash_encrypted (const void *context, const uint32_t offset, const uint32_t *data, uint8_t length)
 Write encrypted data in program flash memory of the chip. More...
 
lr11xx_status_t lr11xx_bootloader_write_flash_encrypted_full (const void *context, const uint32_t offset, const uint32_t *buffer, const uint32_t length)
 Write encrypted data in program flash memory of the chip. More...
 
lr11xx_status_t lr11xx_bootloader_reboot (const void *context, const bool stay_in_bootloader)
 Software reset of the chip. More...
 
lr11xx_status_t lr11xx_bootloader_read_pin (const void *context, lr11xx_bootloader_pin_t pin)
 Returns the 4-byte PIN which can be used to claim a device on cloud services. More...
 
lr11xx_status_t lr11xx_bootloader_read_chip_eui (const void *context, lr11xx_bootloader_chip_eui_t chip_eui)
 Read and return the Chip EUI. More...
 
lr11xx_status_t lr11xx_bootloader_read_join_eui (const void *context, lr11xx_bootloader_join_eui_t join_eui)
 Read and return the Join EUI. More...
 

Detailed Description

-

Bootloader driver implementation for LR1110.

+

Bootloader driver implementation for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -350,55 +351,55 @@

    -EnumeratorLR1110_GNSS_SET_CONSTELLATION_OC 

    Set the constellation to use.

    +EnumeratorLR11XX_GNSS_SET_CONSTELLATION_OC 

    Set the constellation to use.

    -LR1110_GNSS_READ_CONSTELLATION_OC 

    Read the used constellations.

    +LR11XX_GNSS_READ_CONSTELLATION_OC 

    Read the used constellations.

    -LR1110_GNSS_SET_ALMANAC_UPDATE_OC 

    Set almanac update configuration.

    +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC 

    Set almanac update configuration.

    -LR1110_GNSS_READ_ALMANAC_UPDATE_OC 

    Read the almanac update configuration.

    +LR11XX_GNSS_READ_ALMANAC_UPDATE_OC 

    Read the almanac update configuration.

    -LR1110_GNSS_READ_FW_VERSION_OC 

    Read the firmware version.

    +LR11XX_GNSS_READ_FW_VERSION_OC 

    Read the firmware version.

    -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

    Read the supported constellations.

    +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

    Read the supported constellations.

    -LR1110_GNSS_SET_SCAN_MODE_OC 

    Define single or double capture.

    +LR11XX_GNSS_SET_SCAN_MODE_OC 

    Define single or double capture.

    -LR1110_GNSS_SCAN_AUTONOMOUS_OC 

    Launch an autonomous scan.

    +LR11XX_GNSS_SCAN_AUTONOMOUS_OC 

    Launch an autonomous scan.

    -LR1110_GNSS_SCAN_ASSISTED_OC 

    Launch an assisted scan.

    +LR11XX_GNSS_SCAN_ASSISTED_OC 

    Launch an assisted scan.

    -LR1110_GNSS_SCAN_GET_RES_SIZE_OC 

    Get the size of the output payload.

    +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC 

    Get the size of the output payload.

    -LR1110_GNSS_SCAN_READ_RES_OC 

    Read the byte stream.

    +LR11XX_GNSS_SCAN_READ_RES_OC 

    Read the byte stream.

    -LR1110_GNSS_ALMANAC_UPDATE_OC 

    Update the almanac.

    +LR11XX_GNSS_ALMANAC_UPDATE_OC 

    Update the almanac.

    -LR1110_GNSS_ALMANAC_READ_OC 

    Read all almanacs.

    +LR11XX_GNSS_ALMANAC_READ_OC 

    Read all almanacs.

    -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC 

    Set the assistance position.

    +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC 

    Set the assistance position.

    -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC 

    Read the assistance position.

    +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC 

    Read the assistance position.

    -LR1110_GNSS_PUSH_SOLVER_MSG_OC 

    Push messages coming from the solver.

    +LR11XX_GNSS_PUSH_SOLVER_MSG_OC 

    Push messages coming from the solver.

    -LR1110_GNSS_PUSH_DM_MSG_OC 

    Push messages coming from the device management.

    +LR11XX_GNSS_PUSH_DM_MSG_OC 

    Push messages coming from the device management.

    -LR1110_GNSS_GET_CONTEXT_STATUS_OC 

    Read the context.

    +LR11XX_GNSS_GET_CONTEXT_STATUS_OC 

    Read the context.

    -LR1110_GNSS_GET_NB_SATELLITES_OC 

    Get the number of satellites detected during a scan.

    +LR11XX_GNSS_GET_NB_SATELLITES_OC 

    Get the number of satellites detected during a scan.

    -LR1110_GNSS_GET_SATELLITES_OC 

    Get the list of satellites detected during a scan.

    +LR11XX_GNSS_GET_SATELLITES_OC 

    Get the list of satellites detected during a scan.

    -LR1110_GNSS_GET_TIMINGS_OC 

    Get the time spent in signal acquisition and analysis.

    +LR11XX_GNSS_GET_TIMINGS_OC 

    Get the time spent in signal acquisition and analysis.

Function Documentation

- -

◆ lr1110_bootloader_get_min_from_operand_and_max_block_size()

+ +

◆ lr11xx_bootloader_get_min_from_operand_and_max_block_size()

@@ -407,7 +408,7 @@

- + @@ -428,18 +429,18 @@

Returns
Minimum between operand and LR1110_FLASH_DATA_MAX_LENGTH_UINT32
+
Returns
Minimum between operand and LR11XX_FLASH_DATA_MAX_LENGTH_UINT32
-
-

◆ lr1110_bootloader_get_status()

+ +

◆ lr11xx_bootloader_get_status()

uint8_t lr1110_bootloader_get_min_from_operand_and_max_block_size uint8_t lr11xx_bootloader_get_min_from_operand_and_max_block_size ( uint32_t  operand)
- + @@ -447,19 +448,19 @@

- + - + - + @@ -471,7 +472,7 @@

Return the status registers and interrupt flags.

-
Remarks
To simplify system integration, this function does not actually execute the GetStatus command, which would require bidirectional SPI communication. It obtains the stat1, stat2, and irq_status values by performing an ordinary SPI read (which is required to send null/NOP bytes on the MOSI line). This is possible since the LR1110 returns these values automatically whenever a read that does not directly follow a response-carrying command is performed. Unlike with the GetStatus command, however, the reset status information is NOT cleared by this command. The function lr1110_bootloader_clear_reset_status_info may be used for this purpose when necessary.
+
Remarks
To simplify system integration, this function does not actually execute the GetStatus command, which would require bidirectional SPI communication. It obtains the stat1, stat2, and irq_status values by performing an ordinary SPI read (which is required to send null/NOP bytes on the MOSI line). This is possible since the LR11XX returns these values automatically whenever a read that does not directly follow a response-carrying command is performed. Unlike with the GetStatus command, however, the reset status information is NOT cleared by this command. The function lr11xx_bootloader_clear_reset_status_info may be used for this purpose when necessary.
Parameters

lr1110_status_t lr1110_bootloader_get_status lr11xx_status_t lr11xx_bootloader_get_status ( const void *  context, lr1110_bootloader_stat1_tlr11xx_bootloader_stat1_t stat1,
lr1110_bootloader_stat2_tlr11xx_bootloader_stat2_t stat2,
lr1110_bootloader_irq_mask_t * lr11xx_bootloader_irq_mask_t *  irq_status 
@@ -485,14 +486,14 @@

-

◆ lr1110_bootloader_clear_reset_status_info()

+ +

◆ lr11xx_bootloader_clear_reset_status_info()

[in]contextChip implementation context
- + @@ -512,14 +513,14 @@

-

◆ lr1110_bootloader_get_version()

+ +

◆ lr11xx_bootloader_get_version()

lr1110_status_t lr1110_bootloader_clear_reset_status_info lr11xx_status_t lr11xx_bootloader_clear_reset_status_info ( const void *  context)
- + @@ -527,7 +528,7 @@

- + @@ -550,14 +551,14 @@

-

◆ lr1110_bootloader_erase_flash()

+ +

◆ lr11xx_bootloader_erase_flash()

lr1110_status_t lr1110_bootloader_get_version lr11xx_status_t lr11xx_bootloader_get_version ( const void *  context, lr1110_bootloader_version_tlr11xx_bootloader_version_t version 
- + @@ -578,14 +579,14 @@

-

◆ lr1110_bootloader_write_flash_encrypted()

+ +

◆ lr11xx_bootloader_write_flash_encrypted()

lr1110_status_t lr1110_bootloader_erase_flash lr11xx_status_t lr11xx_bootloader_erase_flash ( const void *  context)
- + @@ -617,7 +618,7 @@

Write encrypted data in program flash memory of the chip.

-

This function shall be used when updating the encrypted flash content of the LR1110. The encrypted flash payload to transfer shall be represented as an array of words (i.e. 4-byte values).

+

This function shall be used when updating the encrypted flash content of the LR11XX. The encrypted flash payload to transfer shall be represented as an array of words (i.e. 4-byte values).

Parameters

lr1110_status_t lr1110_bootloader_write_flash_encrypted lr11xx_status_t lr11xx_bootloader_write_flash_encrypted ( const void *  context,
@@ -631,14 +632,14 @@

-

◆ lr1110_bootloader_write_flash_encrypted_full()

+ +

◆ lr11xx_bootloader_write_flash_encrypted_full()

[in]contextChip implementation context
- + @@ -670,7 +671,7 @@

Write encrypted data in program flash memory of the chip.

-

This function shall be used when updating the encrypted flash content of the LR1110. The encrypted flash payload to transfer shall be represented as an array of words (ie 4-byte values).

+

This function shall be used when updating the encrypted flash content of the LR11XX. The encrypted flash payload to transfer shall be represented as an array of words (ie 4-byte values).

Parameters

lr1110_status_t lr1110_bootloader_write_flash_encrypted_full lr11xx_status_t lr11xx_bootloader_write_flash_encrypted_full ( const void *  context,
@@ -684,14 +685,14 @@

-

◆ lr1110_bootloader_reboot()

+ +

◆ lr11xx_bootloader_reboot()

[in]contextChip implementation context
- + @@ -723,14 +724,14 @@

-

◆ lr1110_bootloader_read_pin()

+ +

◆ lr11xx_bootloader_read_pin()

lr1110_status_t lr1110_bootloader_reboot lr11xx_status_t lr11xx_bootloader_reboot ( const void *  context,
- + @@ -738,7 +739,7 @@

- + @@ -761,14 +762,14 @@

-

◆ lr1110_bootloader_read_chip_eui()

+ +

◆ lr11xx_bootloader_read_chip_eui()

lr1110_status_t lr1110_bootloader_read_pin lr11xx_status_t lr11xx_bootloader_read_pin ( const void *  context, lr1110_bootloader_pin_t lr11xx_bootloader_pin_t  pin 
- + @@ -776,7 +777,7 @@

- + @@ -791,7 +792,7 @@

Parameters

lr1110_status_t lr1110_bootloader_read_chip_eui lr11xx_status_t lr11xx_bootloader_read_chip_eui ( const void *  context, lr1110_bootloader_chip_eui_t lr11xx_bootloader_chip_eui_t  chip_eui 
- +
[in]contextChip implementation context
[out]chip_euiThe buffer to be filled with chip EUI of the LR1110. It is up to the application to ensure chip_eui is long enough to hold the chip EUI
[out]chip_euiThe buffer to be filled with chip EUI of the LR11XX. It is up to the application to ensure chip_eui is long enough to hold the chip EUI
@@ -799,14 +800,14 @@

-

◆ lr1110_bootloader_read_join_eui()

+ +

◆ lr11xx_bootloader_read_join_eui()

- + @@ -814,7 +815,7 @@

- + @@ -829,7 +830,7 @@

Parameters

lr1110_status_t lr1110_bootloader_read_join_eui lr11xx_status_t lr11xx_bootloader_read_join_eui ( const void *  context, lr1110_bootloader_join_eui_t lr11xx_bootloader_join_eui_t  join_eui 
- +
[in]contextChip implementation context
[out]join_euiThe buffer to be filled with Join EUI of the LR1110. It is up to the application to ensure join_eui is long enough to hold the join EUI
[out]join_euiThe buffer to be filled with Join EUI of the LR11XX. It is up to the application to ensure join_eui is long enough to hold the join EUI
diff --git a/doc/lr11xx/html/lr11xx__bootloader_8c__incl.map b/doc/lr11xx/html/lr11xx__bootloader_8c__incl.map new file mode 100644 index 0000000..5d30fc9 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__bootloader_8c__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__bootloader_8c__incl.md5 b/doc/lr11xx/html/lr11xx__bootloader_8c__incl.md5 new file mode 100644 index 0000000..137ec52 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__bootloader_8c__incl.md5 @@ -0,0 +1 @@ +7ec6ac6f153cc00012e9eba5cdcd7ae2 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__bootloader_8c__incl.png b/doc/lr11xx/html/lr11xx__bootloader_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc20c7dc3f3718fd3d3067c0a23896a827e7e9e GIT binary patch literal 16994 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 literal 0 HcmV?d00001 diff --git a/doc/lr1110/html/lr1110__bootloader_8h.html b/doc/lr11xx/html/lr11xx__bootloader_8h.html similarity index 63% rename from doc/lr1110/html/lr1110__bootloader_8h.html rename to doc/lr11xx/html/lr11xx__bootloader_8h.html index 416c210..07a1303 100644 --- a/doc/lr1110/html/lr1110__bootloader_8h.html +++ b/doc/lr11xx/html/lr11xx__bootloader_8h.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_bootloader.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_bootloader.h File Reference @@ -21,7 +21,7 @@ -
@@ -69,22 +69,22 @@ Typedefs | Functions
-
lr1110_bootloader.h File Reference
+
lr11xx_bootloader.h File Reference
-

Bootloader driver definition for LR1110. +

Bootloader driver definition for LR11XX. More...

-
#include "lr1110_bootloader_types.h"
-#include "lr1110_types.h"
+
-Include dependency graph for lr1110_bootloader.h:
+Include dependency graph for lr11xx_bootloader.h:
-
- - - - +
+ + + + @@ -92,56 +92,56 @@
This graph shows which files directly or indirectly include this file:
-
- - - +
+ + +
-

Go to the source code of this file.

+

Go to the source code of this file.

- - + +

Typedefs

-typedef uint32_t lr1110_bootloader_irq_mask_t
 
+typedef uint32_t lr11xx_bootloader_irq_mask_t
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

lr1110_status_t lr1110_bootloader_get_status (const void *context, lr1110_bootloader_stat1_t *stat1, lr1110_bootloader_stat2_t *stat2, lr1110_bootloader_irq_mask_t *irq_status)
 Return the status registers and interrupt flags. More...
 
lr1110_status_t lr1110_bootloader_clear_reset_status_info (const void *context)
 Clear the reset status information stored in stat2. More...
 
lr1110_status_t lr1110_bootloader_get_version (const void *context, lr1110_bootloader_version_t *version)
 Return the version of the system (hardware and software) More...
 
lr1110_status_t lr1110_bootloader_erase_flash (const void *context)
 Erase the whole flash memory of the chip. More...
 
lr1110_status_t lr1110_bootloader_write_flash_encrypted (const void *context, const uint32_t offset, const uint32_t *buffer, const uint8_t length)
 Write encrypted data in program flash memory of the chip. More...
 
lr1110_status_t lr1110_bootloader_write_flash_encrypted_full (const void *context, const uint32_t offset, const uint32_t *buffer, const uint32_t length)
 Write encrypted data in program flash memory of the chip. More...
 
lr1110_status_t lr1110_bootloader_reboot (const void *context, const bool stay_in_bootloader)
 Software reset of the chip. More...
 
lr1110_status_t lr1110_bootloader_read_pin (const void *context, lr1110_bootloader_pin_t pin)
 Returns the 4-byte PIN which can be used to claim a device on cloud services. More...
 
lr1110_status_t lr1110_bootloader_read_chip_eui (const void *context, lr1110_bootloader_chip_eui_t chip_eui)
 Read and return the Chip EUI. More...
 
lr1110_status_t lr1110_bootloader_read_join_eui (const void *context, lr1110_bootloader_join_eui_t join_eui)
 Read and return the Join EUI. More...
 
lr11xx_status_t lr11xx_bootloader_get_status (const void *context, lr11xx_bootloader_stat1_t *stat1, lr11xx_bootloader_stat2_t *stat2, lr11xx_bootloader_irq_mask_t *irq_status)
 Return the status registers and interrupt flags. More...
 
lr11xx_status_t lr11xx_bootloader_clear_reset_status_info (const void *context)
 Clear the reset status information stored in stat2. More...
 
lr11xx_status_t lr11xx_bootloader_get_version (const void *context, lr11xx_bootloader_version_t *version)
 Return the version of the system (hardware and software) More...
 
lr11xx_status_t lr11xx_bootloader_erase_flash (const void *context)
 Erase the whole flash memory of the chip. More...
 
lr11xx_status_t lr11xx_bootloader_write_flash_encrypted (const void *context, const uint32_t offset, const uint32_t *buffer, const uint8_t length)
 Write encrypted data in program flash memory of the chip. More...
 
lr11xx_status_t lr11xx_bootloader_write_flash_encrypted_full (const void *context, const uint32_t offset, const uint32_t *buffer, const uint32_t length)
 Write encrypted data in program flash memory of the chip. More...
 
lr11xx_status_t lr11xx_bootloader_reboot (const void *context, const bool stay_in_bootloader)
 Software reset of the chip. More...
 
lr11xx_status_t lr11xx_bootloader_read_pin (const void *context, lr11xx_bootloader_pin_t pin)
 Returns the 4-byte PIN which can be used to claim a device on cloud services. More...
 
lr11xx_status_t lr11xx_bootloader_read_chip_eui (const void *context, lr11xx_bootloader_chip_eui_t chip_eui)
 Read and return the Chip EUI. More...
 
lr11xx_status_t lr11xx_bootloader_read_join_eui (const void *context, lr11xx_bootloader_join_eui_t join_eui)
 Read and return the Join EUI. More...
 

Detailed Description

-

Bootloader driver definition for LR1110.

+

Bootloader driver definition for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -150,14 +150,14 @@

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Function Documentation

- -

◆ lr1110_bootloader_get_status()

+ +

◆ lr11xx_bootloader_get_status()

- + @@ -165,19 +165,19 @@

- + - + - + @@ -189,7 +189,7 @@

Return the status registers and interrupt flags.

-
Remarks
To simplify system integration, this function does not actually execute the GetStatus command, which would require bidirectional SPI communication. It obtains the stat1, stat2, and irq_status values by performing an ordinary SPI read (which is required to send null/NOP bytes on the MOSI line). This is possible since the LR1110 returns these values automatically whenever a read that does not directly follow a response-carrying command is performed. Unlike with the GetStatus command, however, the reset status information is NOT cleared by this command. The function lr1110_bootloader_clear_reset_status_info may be used for this purpose when necessary.
+
Remarks
To simplify system integration, this function does not actually execute the GetStatus command, which would require bidirectional SPI communication. It obtains the stat1, stat2, and irq_status values by performing an ordinary SPI read (which is required to send null/NOP bytes on the MOSI line). This is possible since the LR11XX returns these values automatically whenever a read that does not directly follow a response-carrying command is performed. Unlike with the GetStatus command, however, the reset status information is NOT cleared by this command. The function lr11xx_bootloader_clear_reset_status_info may be used for this purpose when necessary.
Parameters

lr1110_status_t lr1110_bootloader_get_status lr11xx_status_t lr11xx_bootloader_get_status ( const void *  context, lr1110_bootloader_stat1_tlr11xx_bootloader_stat1_t stat1,
lr1110_bootloader_stat2_tlr11xx_bootloader_stat2_t stat2,
lr1110_bootloader_irq_mask_t * lr11xx_bootloader_irq_mask_t *  irq_status 
@@ -203,14 +203,14 @@

-

◆ lr1110_bootloader_clear_reset_status_info()

+ +

◆ lr11xx_bootloader_clear_reset_status_info()

[in]contextChip implementation context
- + @@ -230,14 +230,14 @@

-

◆ lr1110_bootloader_get_version()

+ +

◆ lr11xx_bootloader_get_version()

lr1110_status_t lr1110_bootloader_clear_reset_status_info lr11xx_status_t lr11xx_bootloader_clear_reset_status_info ( const void *  context)
- + @@ -245,7 +245,7 @@

- + @@ -268,14 +268,14 @@

-

◆ lr1110_bootloader_erase_flash()

+ +

◆ lr11xx_bootloader_erase_flash()

lr1110_status_t lr1110_bootloader_get_version lr11xx_status_t lr11xx_bootloader_get_version ( const void *  context, lr1110_bootloader_version_tlr11xx_bootloader_version_t version 
- + @@ -296,14 +296,14 @@

-

◆ lr1110_bootloader_write_flash_encrypted()

+ +

◆ lr11xx_bootloader_write_flash_encrypted()

lr1110_status_t lr1110_bootloader_erase_flash lr11xx_status_t lr11xx_bootloader_erase_flash ( const void *  context)
- + @@ -335,7 +335,7 @@

Write encrypted data in program flash memory of the chip.

-

This function shall be used when updating the encrypted flash content of the LR1110. The encrypted flash payload to transfer shall be represented as an array of words (i.e. 4-byte values).

+

This function shall be used when updating the encrypted flash content of the LR11XX. The encrypted flash payload to transfer shall be represented as an array of words (i.e. 4-byte values).

Parameters

lr1110_status_t lr1110_bootloader_write_flash_encrypted lr11xx_status_t lr11xx_bootloader_write_flash_encrypted ( const void *  context,
@@ -349,14 +349,14 @@

-

◆ lr1110_bootloader_write_flash_encrypted_full()

+ +

◆ lr11xx_bootloader_write_flash_encrypted_full()

[in]contextChip implementation context
- + @@ -388,7 +388,7 @@

Write encrypted data in program flash memory of the chip.

-

This function shall be used when updating the encrypted flash content of the LR1110. The encrypted flash payload to transfer shall be represented as an array of words (ie 4-byte values).

+

This function shall be used when updating the encrypted flash content of the LR11XX. The encrypted flash payload to transfer shall be represented as an array of words (ie 4-byte values).

Parameters

lr1110_status_t lr1110_bootloader_write_flash_encrypted_full lr11xx_status_t lr11xx_bootloader_write_flash_encrypted_full ( const void *  context,
@@ -402,14 +402,14 @@

-

◆ lr1110_bootloader_reboot()

+ +

◆ lr11xx_bootloader_reboot()

[in]contextChip implementation context
- + @@ -441,14 +441,14 @@

-

◆ lr1110_bootloader_read_pin()

+ +

◆ lr11xx_bootloader_read_pin()

lr1110_status_t lr1110_bootloader_reboot lr11xx_status_t lr11xx_bootloader_reboot ( const void *  context,
- + @@ -456,7 +456,7 @@

- + @@ -479,14 +479,14 @@

-

◆ lr1110_bootloader_read_chip_eui()

+ +

◆ lr11xx_bootloader_read_chip_eui()

lr1110_status_t lr1110_bootloader_read_pin lr11xx_status_t lr11xx_bootloader_read_pin ( const void *  context, lr1110_bootloader_pin_t lr11xx_bootloader_pin_t  pin 
- + @@ -494,7 +494,7 @@

- + @@ -509,7 +509,7 @@

Parameters

lr1110_status_t lr1110_bootloader_read_chip_eui lr11xx_status_t lr11xx_bootloader_read_chip_eui ( const void *  context, lr1110_bootloader_chip_eui_t lr11xx_bootloader_chip_eui_t  chip_eui 
- +
[in]contextChip implementation context
[out]chip_euiThe buffer to be filled with chip EUI of the LR1110. It is up to the application to ensure chip_eui is long enough to hold the chip EUI
[out]chip_euiThe buffer to be filled with chip EUI of the LR11XX. It is up to the application to ensure chip_eui is long enough to hold the chip EUI
@@ -517,14 +517,14 @@

-

◆ lr1110_bootloader_read_join_eui()

+ +

◆ lr11xx_bootloader_read_join_eui()

- + @@ -532,7 +532,7 @@

- + @@ -547,7 +547,7 @@

Parameters

lr1110_status_t lr1110_bootloader_read_join_eui lr11xx_status_t lr11xx_bootloader_read_join_eui ( const void *  context, lr1110_bootloader_join_eui_t lr11xx_bootloader_join_eui_t  join_eui 
- +
[in]contextChip implementation context
[out]join_euiThe buffer to be filled with Join EUI of the LR1110. It is up to the application to ensure join_eui is long enough to hold the join EUI
[out]join_euiThe buffer to be filled with Join EUI of the LR11XX. It is up to the application to ensure join_eui is long enough to hold the join EUI
diff --git a/doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.map new file mode 100644 index 0000000..5fc2af2 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.md5 new file mode 100644 index 0000000..e119095 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.md5 @@ -0,0 +1 @@ +b3fc75b2621c9c2932c33a55c29d59be \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__bootloader_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..351dc9e77fb09c441506d3aca5cbbb6ada8620d7 GIT binary patch literal 5588 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 literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/lr11xx__bootloader_8h__incl.map b/doc/lr11xx/html/lr11xx__bootloader_8h__incl.map new file mode 100644 index 0000000..5742002 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__bootloader_8h__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__bootloader_8h__incl.md5 b/doc/lr11xx/html/lr11xx__bootloader_8h__incl.md5 new file mode 100644 index 0000000..22c14cc --- /dev/null +++ b/doc/lr11xx/html/lr11xx__bootloader_8h__incl.md5 @@ -0,0 +1 @@ +4f57d014c6a3055f98d7494a1e2bddc3 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__bootloader_8h__incl.png b/doc/lr11xx/html/lr11xx__bootloader_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..d124fcac6b18ff9e6b93672ce9ba3ffbff2544e5 GIT binary patch literal 10408 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 -lr1110_driver: lr1110_driver/src/lr1110_bootloader.h Source File +lr11xx_driver: lr11xx_driver/src/lr11xx_bootloader.h Source File @@ -21,7 +21,7 @@ -
-
lr1110_bootloader.h
+
lr11xx_bootloader.h
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_BOOTLOADER_H
-
36 #define LR1110_BOOTLOADER_H
+Go to the documentation of this file.
1 
+
35 #ifndef LR11XX_BOOTLOADER_H
+
36 #define LR11XX_BOOTLOADER_H
37 
38 #ifdef __cplusplus
39 extern "C" {
@@ -82,8 +82,8 @@
44  * --- DEPENDENCIES ------------------------------------------------------------
45  */
46 
- -
48 #include "lr1110_types.h"
+ +
48 #include "lr11xx_types.h"
49 
50 /*
51  * -----------------------------------------------------------------------------
@@ -100,64 +100,64 @@
62  * --- PUBLIC TYPES ------------------------------------------------------------
63  */
64 
-
65 typedef uint32_t lr1110_bootloader_irq_mask_t;
+
65 typedef uint32_t lr11xx_bootloader_irq_mask_t;
66 
67 /*
68  * -----------------------------------------------------------------------------
69  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
70  */
71 
- - -
91  lr1110_bootloader_irq_mask_t* irq_status );
+ + +
91  lr11xx_bootloader_irq_mask_t* irq_status );
92 
- +
101 
- +
111 
-
121 lr1110_status_t lr1110_bootloader_erase_flash( const void* context );
+
121 lr11xx_status_t lr11xx_bootloader_erase_flash( const void* context );
122 
-
136 lr1110_status_t lr1110_bootloader_write_flash_encrypted( const void* context, const uint32_t offset,
+
136 lr11xx_status_t lr11xx_bootloader_write_flash_encrypted( const void* context, const uint32_t offset,
137  const uint32_t* buffer, const uint8_t length );
138 
-
152 lr1110_status_t lr1110_bootloader_write_flash_encrypted_full( const void* context, const uint32_t offset,
+
152 lr11xx_status_t lr11xx_bootloader_write_flash_encrypted_full( const void* context, const uint32_t offset,
153  const uint32_t* buffer, const uint32_t length );
154 
-
168 lr1110_status_t lr1110_bootloader_reboot( const void* context, const bool stay_in_bootloader );
+
168 lr11xx_status_t lr11xx_bootloader_reboot( const void* context, const bool stay_in_bootloader );
169 
- +
179 
- +
190 
- +
201 
202 #ifdef __cplusplus
203 }
204 #endif
205 
-
206 #endif // LR1110_BOOTLOADER_H
+
206 #endif // LR11XX_BOOTLOADER_H
207 
208 /* --- EOF ------------------------------------------------------------------ */
-
lr1110_status_t lr1110_bootloader_clear_reset_status_info(const void *context)
Clear the reset status information stored in stat2.
Definition: lr1110_bootloader.c:136
-
lr1110_status_t lr1110_bootloader_read_pin(const void *context, lr1110_bootloader_pin_t pin)
Returns the 4-byte PIN which can be used to claim a device on cloud services.
Definition: lr1110_bootloader.c:244
-
uint8_t lr1110_bootloader_join_eui_t[LR1110_BL_JOIN_EUI_LENGTH]
Fixed-length array to store a joinEUI.
Definition: lr1110_bootloader_types.h:98
-
lr1110_status_t lr1110_bootloader_get_version(const void *context, lr1110_bootloader_version_t *version)
Return the version of the system (hardware and software)
Definition: lr1110_bootloader.c:146
-
uint8_t lr1110_bootloader_pin_t[LR1110_BL_PIN_LENGTH]
Fixed-length array to store a PIN.
Definition: lr1110_bootloader_types.h:88
-
Bootloader driver types for LR1110.
-
lr1110_status_t lr1110_bootloader_erase_flash(const void *context)
Erase the whole flash memory of the chip.
Definition: lr1110_bootloader.c:167
-
Status register 2 structure definition.
Definition: lr1110_bootloader_types.h:152
-
lr1110_status_t lr1110_bootloader_read_chip_eui(const void *context, lr1110_bootloader_chip_eui_t chip_eui)
Read and return the Chip EUI.
Definition: lr1110_bootloader.c:255
-
lr1110_status_t lr1110_bootloader_get_status(const void *context, lr1110_bootloader_stat1_t *stat1, lr1110_bootloader_stat2_t *stat2, lr1110_bootloader_irq_mask_t *irq_status)
Return the status registers and interrupt flags.
Definition: lr1110_bootloader.c:110
-
Status register 1 structure definition.
Definition: lr1110_bootloader_types.h:143
-
lr1110_status_t lr1110_bootloader_reboot(const void *context, const bool stay_in_bootloader)
Software reset of the chip.
Definition: lr1110_bootloader.c:233
-
lr1110_status_t lr1110_bootloader_write_flash_encrypted_full(const void *context, const uint32_t offset, const uint32_t *buffer, const uint32_t length)
Write encrypted data in program flash memory of the chip.
Definition: lr1110_bootloader.c:204
-
uint8_t lr1110_bootloader_chip_eui_t[LR1110_BL_CHIP_EUI_LENGTH]
Fixed-length array to store a chipEUI.
Definition: lr1110_bootloader_types.h:93
-
Type definitions for LR1110.
-
enum lr1110_status_e lr1110_status_t
LR1110 status.
-
Bootloader version structure definition.
Definition: lr1110_bootloader_types.h:162
-
lr1110_status_t lr1110_bootloader_write_flash_encrypted(const void *context, const uint32_t offset, const uint32_t *buffer, const uint8_t length)
Write encrypted data in program flash memory of the chip.
Definition: lr1110_bootloader.c:177
-
lr1110_status_t lr1110_bootloader_read_join_eui(const void *context, lr1110_bootloader_join_eui_t join_eui)
Read and return the Join EUI.
Definition: lr1110_bootloader.c:266
+
lr11xx_status_t lr11xx_bootloader_read_pin(const void *context, lr11xx_bootloader_pin_t pin)
Returns the 4-byte PIN which can be used to claim a device on cloud services.
Definition: lr11xx_bootloader.c:244
+
Status register 2 structure definition.
Definition: lr11xx_bootloader_types.h:152
+
lr11xx_status_t lr11xx_bootloader_clear_reset_status_info(const void *context)
Clear the reset status information stored in stat2.
Definition: lr11xx_bootloader.c:136
+
Status register 1 structure definition.
Definition: lr11xx_bootloader_types.h:143
+
lr11xx_status_t lr11xx_bootloader_write_flash_encrypted_full(const void *context, const uint32_t offset, const uint32_t *buffer, const uint32_t length)
Write encrypted data in program flash memory of the chip.
Definition: lr11xx_bootloader.c:204
+
Type definitions for LR11XX.
+
lr11xx_status_t lr11xx_bootloader_read_chip_eui(const void *context, lr11xx_bootloader_chip_eui_t chip_eui)
Read and return the Chip EUI.
Definition: lr11xx_bootloader.c:255
+
uint8_t lr11xx_bootloader_chip_eui_t[LR11XX_BL_CHIP_EUI_LENGTH]
Fixed-length array to store a chipEUI.
Definition: lr11xx_bootloader_types.h:93
+
uint8_t lr11xx_bootloader_join_eui_t[LR11XX_BL_JOIN_EUI_LENGTH]
Fixed-length array to store a joinEUI.
Definition: lr11xx_bootloader_types.h:98
+
lr11xx_status_t lr11xx_bootloader_erase_flash(const void *context)
Erase the whole flash memory of the chip.
Definition: lr11xx_bootloader.c:167
+
lr11xx_status_t lr11xx_bootloader_reboot(const void *context, const bool stay_in_bootloader)
Software reset of the chip.
Definition: lr11xx_bootloader.c:233
+
lr11xx_status_t lr11xx_bootloader_write_flash_encrypted(const void *context, const uint32_t offset, const uint32_t *buffer, const uint8_t length)
Write encrypted data in program flash memory of the chip.
Definition: lr11xx_bootloader.c:177
+
Bootloader version structure definition.
Definition: lr11xx_bootloader_types.h:162
+
Bootloader driver types for LR11XX.
+
lr11xx_status_t lr11xx_bootloader_get_status(const void *context, lr11xx_bootloader_stat1_t *stat1, lr11xx_bootloader_stat2_t *stat2, lr11xx_bootloader_irq_mask_t *irq_status)
Return the status registers and interrupt flags.
Definition: lr11xx_bootloader.c:110
+
enum lr11xx_status_e lr11xx_status_t
LR11XX status.
+
lr11xx_status_t lr11xx_bootloader_read_join_eui(const void *context, lr11xx_bootloader_join_eui_t join_eui)
Read and return the Join EUI.
Definition: lr11xx_bootloader.c:266
+
uint8_t lr11xx_bootloader_pin_t[LR11XX_BL_PIN_LENGTH]
Fixed-length array to store a PIN.
Definition: lr11xx_bootloader_types.h:88
+
lr11xx_status_t lr11xx_bootloader_get_version(const void *context, lr11xx_bootloader_version_t *version)
Return the version of the system (hardware and software)
Definition: lr11xx_bootloader.c:146
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_BOOTLOADER_TYPES_H
-
36 #define LR1110_BOOTLOADER_TYPES_H
+Go to the documentation of this file.
1 
+
35 #ifndef LR11XX_BOOTLOADER_TYPES_H
+
36 #define LR11XX_BOOTLOADER_TYPES_H
37 
38 #ifdef __cplusplus
39 extern "C" {
@@ -95,74 +95,74 @@
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
58  */
59 
-
63 #define LR1110_BL_VERSION_LENGTH ( 4 )
+
63 #define LR11XX_BL_VERSION_LENGTH ( 4 )
64 
-
68 #define LR1110_BL_PIN_LENGTH ( 4 )
+
68 #define LR11XX_BL_PIN_LENGTH ( 4 )
69 
-
73 #define LR1110_BL_CHIP_EUI_LENGTH ( 8 )
+
73 #define LR11XX_BL_CHIP_EUI_LENGTH ( 8 )
74 
-
78 #define LR1110_BL_JOIN_EUI_LENGTH ( 8 )
+
78 #define LR11XX_BL_JOIN_EUI_LENGTH ( 8 )
79 
80 /*
81  * -----------------------------------------------------------------------------
82  * --- PUBLIC TYPES ------------------------------------------------------------
83  */
84 
- +
89 
- +
94 
- +
99 
- +
104 {
-
105  LR1110_BOOTLOADER_CHIP_MODE_SLEEP = 0x00,
-
106  LR1110_BOOTLOADER_CHIP_MODE_STBY_RC = 0x01,
-
107  LR1110_BOOTLOADER_CHIP_MODE_STBY_XOSC = 0x02,
-
108  LR1110_BOOTLOADER_CHIP_MODE_FS = 0x03,
-
109  LR1110_BOOTLOADER_CHIP_MODE_RX = 0x04,
-
110  LR1110_BOOTLOADER_CHIP_MODE_TX = 0x05,
-
111  LR1110_BOOTLOADER_CHIP_MODE_LOC = 0x06,
- +
105  LR11XX_BOOTLOADER_CHIP_MODE_SLEEP = 0x00,
+
106  LR11XX_BOOTLOADER_CHIP_MODE_STBY_RC = 0x01,
+
107  LR11XX_BOOTLOADER_CHIP_MODE_STBY_XOSC = 0x02,
+
108  LR11XX_BOOTLOADER_CHIP_MODE_FS = 0x03,
+
109  LR11XX_BOOTLOADER_CHIP_MODE_RX = 0x04,
+
110  LR11XX_BOOTLOADER_CHIP_MODE_TX = 0x05,
+
111  LR11XX_BOOTLOADER_CHIP_MODE_LOC = 0x06,
+
113 
- +
118 {
-
119  LR1110_BOOTLOADER_RESET_STATUS_CLEARED = 0x00,
-
120  LR1110_BOOTLOADER_RESET_STATUS_ANALOG = 0x01,
-
121  LR1110_BOOTLOADER_RESET_STATUS_EXTERNAL = 0x02,
-
122  LR1110_BOOTLOADER_RESET_STATUS_SYSTEM = 0x03,
-
123  LR1110_BOOTLOADER_RESET_STATUS_WATCHDOG = 0x04,
-
124  LR1110_BOOTLOADER_RESET_STATUS_IOCD_RESTART = 0x05,
-
125  LR1110_BOOTLOADER_RESET_STATUS_RTC_RESTART = 0x06,
- +
119  LR11XX_BOOTLOADER_RESET_STATUS_CLEARED = 0x00,
+
120  LR11XX_BOOTLOADER_RESET_STATUS_ANALOG = 0x01,
+
121  LR11XX_BOOTLOADER_RESET_STATUS_EXTERNAL = 0x02,
+
122  LR11XX_BOOTLOADER_RESET_STATUS_SYSTEM = 0x03,
+
123  LR11XX_BOOTLOADER_RESET_STATUS_WATCHDOG = 0x04,
+
124  LR11XX_BOOTLOADER_RESET_STATUS_IOCD_RESTART = 0x05,
+
125  LR11XX_BOOTLOADER_RESET_STATUS_RTC_RESTART = 0x06,
+
127 
- +
132 {
-
133  LR1110_BOOTLOADER_CMD_STATUS_FAIL = 0x00,
-
134  LR1110_BOOTLOADER_CMD_STATUS_PERR = 0x01,
-
135  LR1110_BOOTLOADER_CMD_STATUS_OK = 0x02,
-
136  LR1110_BOOTLOADER_CMD_STATUS_DATA = 0x03,
- +
133  LR11XX_BOOTLOADER_CMD_STATUS_FAIL = 0x00,
+
134  LR11XX_BOOTLOADER_CMD_STATUS_PERR = 0x01,
+
135  LR11XX_BOOTLOADER_CMD_STATUS_OK = 0x02,
+
136  LR11XX_BOOTLOADER_CMD_STATUS_DATA = 0x03,
+
138 
- +
143 {
-
144  lr1110_bootloader_command_status_t command_status;
+
144  lr11xx_bootloader_command_status_t command_status;
145  bool is_interrupt_active;
- +
147 
- +
152 {
- - + +
155  bool is_running_from_flash;
- +
157 
- +
162 {
163  uint8_t hw;
164  uint8_t type;
165  uint16_t fw;
- +
167 
168 /*
169  * -----------------------------------------------------------------------------
@@ -173,28 +173,28 @@
174 }
175 #endif
176 
-
177 #endif // LR1110_BOOTLOADER_TYPES_H
+
177 #endif // LR11XX_BOOTLOADER_TYPES_H
178 
179 /* --- EOF ------------------------------------------------------------------ */
-
lr1110_bootloader_reset_status_e
Reset status.
Definition: lr1110_bootloader_types.h:118
-
uint8_t lr1110_bootloader_join_eui_t[LR1110_BL_JOIN_EUI_LENGTH]
Fixed-length array to store a joinEUI.
Definition: lr1110_bootloader_types.h:98
-
struct lr1110_bootloader_stat2_s lr1110_bootloader_stat2_t
Status register 2 structure definition.
-
#define LR1110_BL_CHIP_EUI_LENGTH
Length in bytes of a chip EUI.
Definition: lr1110_bootloader_types.h:73
-
#define LR1110_BL_JOIN_EUI_LENGTH
Length in bytes of a join EUI.
Definition: lr1110_bootloader_types.h:78
-
uint8_t lr1110_bootloader_pin_t[LR1110_BL_PIN_LENGTH]
Fixed-length array to store a PIN.
Definition: lr1110_bootloader_types.h:88
-
Status register 2 structure definition.
Definition: lr1110_bootloader_types.h:152
-
Status register 1 structure definition.
Definition: lr1110_bootloader_types.h:143
-
struct lr1110_bootloader_version_s lr1110_bootloader_version_t
Bootloader version structure definition.
-
enum lr1110_bootloader_reset_status_e lr1110_bootloader_reset_status_t
Reset status.
-
lr1110_bootloader_chip_modes_e
Chip modes.
Definition: lr1110_bootloader_types.h:104
-
uint8_t lr1110_bootloader_chip_eui_t[LR1110_BL_CHIP_EUI_LENGTH]
Fixed-length array to store a chipEUI.
Definition: lr1110_bootloader_types.h:93
-
enum lr1110_bootloader_chip_modes_e lr1110_bootloader_chip_modes_t
Chip modes.
-
struct lr1110_bootloader_stat1_s lr1110_bootloader_stat1_t
Status register 1 structure definition.
-
Bootloader version structure definition.
Definition: lr1110_bootloader_types.h:162
-
enum lr1110_bootloader_command_status_e lr1110_bootloader_command_status_t
Command status.
-
#define LR1110_BL_PIN_LENGTH
Length in bytes of a PIN.
Definition: lr1110_bootloader_types.h:68
-
lr1110_bootloader_command_status_e
Command status.
Definition: lr1110_bootloader_types.h:132
+
Status register 2 structure definition.
Definition: lr11xx_bootloader_types.h:152
+
Status register 1 structure definition.
Definition: lr11xx_bootloader_types.h:143
+
lr11xx_bootloader_chip_modes_e
Chip modes.
Definition: lr11xx_bootloader_types.h:104
+
struct lr11xx_bootloader_stat2_s lr11xx_bootloader_stat2_t
Status register 2 structure definition.
+
lr11xx_bootloader_reset_status_e
Reset status.
Definition: lr11xx_bootloader_types.h:118
+
struct lr11xx_bootloader_stat1_s lr11xx_bootloader_stat1_t
Status register 1 structure definition.
+
#define LR11XX_BL_CHIP_EUI_LENGTH
Length in bytes of a chip EUI.
Definition: lr11xx_bootloader_types.h:73
+
uint8_t lr11xx_bootloader_chip_eui_t[LR11XX_BL_CHIP_EUI_LENGTH]
Fixed-length array to store a chipEUI.
Definition: lr11xx_bootloader_types.h:93
+
uint8_t lr11xx_bootloader_join_eui_t[LR11XX_BL_JOIN_EUI_LENGTH]
Fixed-length array to store a joinEUI.
Definition: lr11xx_bootloader_types.h:98
+
enum lr11xx_bootloader_chip_modes_e lr11xx_bootloader_chip_modes_t
Chip modes.
+
struct lr11xx_bootloader_version_s lr11xx_bootloader_version_t
Bootloader version structure definition.
+
Bootloader version structure definition.
Definition: lr11xx_bootloader_types.h:162
+
enum lr11xx_bootloader_reset_status_e lr11xx_bootloader_reset_status_t
Reset status.
+
enum lr11xx_bootloader_command_status_e lr11xx_bootloader_command_status_t
Command status.
+
#define LR11XX_BL_PIN_LENGTH
Length in bytes of a PIN.
Definition: lr11xx_bootloader_types.h:68
+
lr11xx_bootloader_command_status_e
Command status.
Definition: lr11xx_bootloader_types.h:132
+
#define LR11XX_BL_JOIN_EUI_LENGTH
Length in bytes of a join EUI.
Definition: lr11xx_bootloader_types.h:78
+
uint8_t lr11xx_bootloader_pin_t[LR11XX_BL_PIN_LENGTH]
Fixed-length array to store a PIN.
Definition: lr11xx_bootloader_types.h:88
-

Cryptographic engine driver implementation for LR1110. +

Cryptographic engine driver implementation for LR11XX. More...

-
#include "lr1110_crypto_engine.h"
-#include "lr1110_hal.h"
+
#include "lr11xx_crypto_engine.h"
+#include "lr11xx_hal.h"
-Include dependency graph for lr1110_crypto_engine.c:
+Include dependency graph for lr11xx_crypto_engine.c:
-
- - - - - - +
+ + + + + + @@ -95,251 +95,252 @@
- - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +

Macros

-#define LR1110_CRYPTO_SELECT_CMD_LENGTH   ( 2 + 1 )
 
-#define LR1110_CRYPTO_SET_KEY_CMD_LENGTH   ( 2 + 17 )
 
-#define LR1110_CRYPTO_DERIVE_KEY_CMD_LENGTH   ( 2 + 18 )
 
-#define LR1110_CRYPTO_PROCESS_JOIN_ACCEPT_CMD_LENGTH   ( 2 + 3 + 12 + 32 )
 
-#define LR1110_CRYPTO_COMPUTE_AES_CMAC_CMD_LENGTH   ( 2 + 1 + 272 )
 
-#define LR1110_CRYPTO_VERIFY_AES_CMAC_CMD_LENGTH   ( 2 + 1 + 4 + 256 )
 
-#define LR1110_CRYPTO_AES_ENCRYPT_CMD_LENGTH   ( 2 + 1 + 256 )
 
-#define LR1110_CRYPTO_AES_DECRYPT_CMD_LENGTH   ( 2 + 1 + 256 )
 
-#define LR1110_CRYPTO_STORE_TO_FLASH_CMD_LENGTH   ( 2 )
 
-#define LR1110_CRYPTO_RESTORE_FROM_FLASH_CMD_LENGTH   ( 2 )
 
-#define LR1110_CRYPTO_SET_PARAMETER_CMD_LENGTH   ( 2 + 1 + 4 )
 
-#define LR1110_CRYPTO_GET_PARAMETER_CMD_LENGTH   ( 2 + 1 )
 
+#define LR11XX_CRYPTO_SELECT_CMD_LENGTH   ( 2 + 1 )
 
+#define LR11XX_CRYPTO_SET_KEY_CMD_LENGTH   ( 2 + 17 )
 
+#define LR11XX_CRYPTO_DERIVE_KEY_CMD_LENGTH   ( 2 + 18 )
 
+#define LR11XX_CRYPTO_PROCESS_JOIN_ACCEPT_CMD_LENGTH   ( 2 + 3 + 12 + 32 )
 
+#define LR11XX_CRYPTO_COMPUTE_AES_CMAC_CMD_LENGTH   ( 2 + 1 + 272 )
 
+#define LR11XX_CRYPTO_VERIFY_AES_CMAC_CMD_LENGTH   ( 2 + 1 + 4 + 256 )
 
+#define LR11XX_CRYPTO_AES_ENCRYPT_CMD_LENGTH   ( 2 + 1 + 256 )
 
+#define LR11XX_CRYPTO_AES_DECRYPT_CMD_LENGTH   ( 2 + 1 + 256 )
 
+#define LR11XX_CRYPTO_STORE_TO_FLASH_CMD_LENGTH   ( 2 )
 
+#define LR11XX_CRYPTO_RESTORE_FROM_FLASH_CMD_LENGTH   ( 2 )
 
+#define LR11XX_CRYPTO_SET_PARAMETER_CMD_LENGTH   ( 2 + 1 + 4 )
 
+#define LR11XX_CRYPTO_GET_PARAMETER_CMD_LENGTH   ( 2 + 1 )
 
- +

Enumerations

enum  {
-  LR1110_BL_GET_STATUS_OC = 0x0100, -LR1110_BL_GET_VERSION_OC = 0x0101, -LR1110_BL_ERASE_FLASH_OC = 0x8000, -LR1110_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003, +  LR11XX_BL_GET_STATUS_OC = 0x0100, +LR11XX_BL_GET_VERSION_OC = 0x0101, +LR11XX_BL_ERASE_FLASH_OC = 0x8000, +LR11XX_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003,
-  LR1110_BL_REBOOT_OC = 0x8005, -LR1110_BL_GET_PIN_OC = 0x800B, -LR1110_BL_READ_CHIP_EUI_OC = 0x800C, -LR1110_BL_READ_JOIN_EUI_OC = 0x800D, +  LR11XX_BL_REBOOT_OC = 0x8005, +LR11XX_BL_GET_PIN_OC = 0x800B, +LR11XX_BL_READ_CHIP_EUI_OC = 0x800C, +LR11XX_BL_READ_JOIN_EUI_OC = 0x800D,
-  LR1110_CRYPTO_SELECT_OC = 0x0500, -LR1110_CRYPTO_SET_KEY_OC = 0x0502, -LR1110_CRYPTO_DERIVE_KEY_OC = 0x0503, -LR1110_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504, +  LR11XX_CRYPTO_SELECT_OC = 0x0500, +LR11XX_CRYPTO_SET_KEY_OC = 0x0502, +LR11XX_CRYPTO_DERIVE_KEY_OC = 0x0503, +LR11XX_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504,
-  LR1110_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, -LR1110_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, -LR1110_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, -LR1110_CRYPTO_ENCRYPT_AES_OC = 0x0508, +  LR11XX_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, +LR11XX_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, +LR11XX_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, +LR11XX_CRYPTO_ENCRYPT_AES_OC = 0x0508,
-  LR1110_CRYPTO_DECRYPT_AES_OC = 0x0509, -LR1110_CRYPTO_STORE_TO_FLASH_OC = 0x050A, -LR1110_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, -LR1110_CRYPTO_SET_PARAMETER_OC = 0x050D, +  LR11XX_CRYPTO_DECRYPT_AES_OC = 0x0509, +LR11XX_CRYPTO_STORE_TO_FLASH_OC = 0x050A, +LR11XX_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, +LR11XX_CRYPTO_SET_PARAMETER_OC = 0x050D,
-  LR1110_CRYPTO_GET_PARAMETER_OC = 0x050E, -LR1110_GNSS_SET_CONSTELLATION_OC = 0x0400, -LR1110_GNSS_READ_CONSTELLATION_OC = 0x0401, -LR1110_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402, +  LR11XX_CRYPTO_GET_PARAMETER_OC = 0x050E, +LR11XX_GNSS_SET_CONSTELLATION_OC = 0x0400, +LR11XX_GNSS_READ_CONSTELLATION_OC = 0x0401, +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402,
-  LR1110_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, -LR1110_GNSS_READ_FW_VERSION_OC = 0x0406, -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, -LR1110_GNSS_SET_SCAN_MODE_OC = 0x0408, +  LR11XX_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, +LR11XX_GNSS_READ_FW_VERSION_OC = 0x0406, +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, +LR11XX_GNSS_SET_SCAN_MODE_OC = 0x0408,
-  LR1110_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, -LR1110_GNSS_SCAN_ASSISTED_OC = 0x040A, -LR1110_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, -LR1110_GNSS_SCAN_READ_RES_OC = 0x040D, +  LR11XX_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, +LR11XX_GNSS_SCAN_ASSISTED_OC = 0x040A, +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, +LR11XX_GNSS_SCAN_READ_RES_OC = 0x040D,
-  LR1110_GNSS_ALMANAC_UPDATE_OC = 0x040E, -LR1110_GNSS_ALMANAC_READ_OC = 0x040F, -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411, +  LR11XX_GNSS_ALMANAC_UPDATE_OC = 0x040E, +LR11XX_GNSS_ALMANAC_READ_OC = 0x040F, +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411,
-  LR1110_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, -LR1110_GNSS_PUSH_DM_MSG_OC = 0x0415, -LR1110_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, -LR1110_GNSS_GET_NB_SATELLITES_OC = 0x0417, +  LR11XX_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, +LR11XX_GNSS_PUSH_DM_MSG_OC = 0x0415, +LR11XX_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, +LR11XX_GNSS_GET_NB_SATELLITES_OC = 0x0417,
-  LR1110_GNSS_GET_SATELLITES_OC = 0x0418, -LR1110_GNSS_GET_TIMINGS_OC = 0x0419, -LR1110_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, -LR1110_LR_FHSS_BUILD_FRAME_OC = 0x022C, +  LR11XX_GNSS_GET_SATELLITES_OC = 0x0418, +LR11XX_GNSS_GET_TIMINGS_OC = 0x0419, +LR11XX_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, +LR11XX_LR_FHSS_BUILD_FRAME_OC = 0x022C,
-  LR1110_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, -LR1110_RADIO_RESET_STATS_OC = 0x0200, -LR1110_RADIO_GET_STATS_OC = 0x0201, -LR1110_RADIO_GET_PKT_TYPE_OC = 0x0202, +  LR11XX_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, +LR11XX_RADIO_RESET_STATS_OC = 0x0200, +LR11XX_RADIO_GET_STATS_OC = 0x0201, +LR11XX_RADIO_GET_PKT_TYPE_OC = 0x0202,
-  LR1110_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, -LR1110_RADIO_GET_PKT_STATUS_OC = 0x0204, -LR1110_RADIO_GET_RSSI_INST_OC = 0x0205, -LR1110_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206, +  LR11XX_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, +LR11XX_RADIO_GET_PKT_STATUS_OC = 0x0204, +LR11XX_RADIO_GET_RSSI_INST_OC = 0x0205, +LR11XX_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206,
-  LR1110_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, -LR1110_RADIO_SET_RX_OC = 0x0209, -LR1110_RADIO_SET_TX_OC = 0x020A, -LR1110_RADIO_SET_RF_FREQUENCY_OC = 0x020B, +  LR11XX_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, +LR11XX_RADIO_SET_RX_OC = 0x0209, +LR11XX_RADIO_SET_TX_OC = 0x020A, +LR11XX_RADIO_SET_RF_FREQUENCY_OC = 0x020B,
-  LR1110_RADIO_AUTOTXRX_OC = 0x020C, -LR1110_RADIO_SET_CAD_PARAMS_OC = 0x020D, -LR1110_RADIO_SET_PKT_TYPE_OC = 0x020E, -LR1110_RADIO_SET_MODULATION_PARAM_OC = 0x020F, +  LR11XX_RADIO_AUTOTXRX_OC = 0x020C, +LR11XX_RADIO_SET_CAD_PARAMS_OC = 0x020D, +LR11XX_RADIO_SET_PKT_TYPE_OC = 0x020E, +LR11XX_RADIO_SET_MODULATION_PARAM_OC = 0x020F,
-  LR1110_RADIO_SET_PKT_PARAM_OC = 0x0210, -LR1110_RADIO_SET_TX_PARAMS_OC = 0x0211, -LR1110_RADIO_SET_PKT_ADRS_OC = 0x0212, -LR1110_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213, +  LR11XX_RADIO_SET_PKT_PARAM_OC = 0x0210, +LR11XX_RADIO_SET_TX_PARAMS_OC = 0x0211, +LR11XX_RADIO_SET_PKT_ADRS_OC = 0x0212, +LR11XX_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213,
-  LR1110_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, -LR1110_RADIO_SET_PA_CFG_OC = 0x0215, -LR1110_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, -LR1110_RADIO_SET_CAD_OC = 0x0218, +  LR11XX_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, +LR11XX_RADIO_SET_PA_CFG_OC = 0x0215, +LR11XX_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, +LR11XX_RADIO_SET_CAD_OC = 0x0218,
-  LR1110_RADIO_SET_TX_CW_OC = 0x0219, -LR1110_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, -LR1110_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, -LR1110_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224, +  LR11XX_RADIO_SET_TX_CW_OC = 0x0219, +LR11XX_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, +LR11XX_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, +LR11XX_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224,
-  LR1110_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, -LR1110_RADIO_SET_RX_BOOSTED_OC = 0x0227, -LR1110_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B, -LR1110_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +  LR11XX_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, +LR11XX_RADIO_SET_RX_BOOSTED_OC = 0x0227, +LR11XX_RADIO_SET_RSSI_CALIBRATION_OC = 0x0229, +LR11XX_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B,
-  LR1110_REGMEM_WRITE_REGMEM32_OC = 0x0105, -LR1110_REGMEM_READ_REGMEM32_OC = 0x0106, -LR1110_REGMEM_WRITE_MEM8_OC = 0x0107, -LR1110_REGMEM_READ_MEM8_OC = 0x0108, +  LR11XX_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +LR11XX_REGMEM_WRITE_REGMEM32_OC = 0x0105, +LR11XX_REGMEM_READ_REGMEM32_OC = 0x0106, +LR11XX_REGMEM_WRITE_MEM8_OC = 0x0107,
-  LR1110_REGMEM_WRITE_BUFFER8_OC = 0x0109, -LR1110_REGMEM_READ_BUFFER8_OC = 0x010A, -LR1110_REGMEM_CLEAR_RXBUFFER_OC = 0x010B, -LR1110_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +  LR11XX_REGMEM_READ_MEM8_OC = 0x0108, +LR11XX_REGMEM_WRITE_BUFFER8_OC = 0x0109, +LR11XX_REGMEM_READ_BUFFER8_OC = 0x010A, +LR11XX_REGMEM_CLEAR_RXBUFFER_OC = 0x010B,
-  LR1110_SYSTEM_GET_STATUS_OC = 0x0100, -LR1110_SYSTEM_GET_VERSION_OC = 0x0101, -LR1110_SYSTEM_GET_ERRORS_OC = 0x010D, -LR1110_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +  LR11XX_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +LR11XX_SYSTEM_GET_STATUS_OC = 0x0100, +LR11XX_SYSTEM_GET_VERSION_OC = 0x0101, +LR11XX_SYSTEM_GET_ERRORS_OC = 0x010D,
-  LR1110_SYSTEM_CALIBRATE_OC = 0x010F, -LR1110_SYSTEM_SET_REGMODE_OC = 0x0110, -LR1110_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111, -LR1110_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +  LR11XX_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +LR11XX_SYSTEM_CALIBRATE_OC = 0x010F, +LR11XX_SYSTEM_SET_REGMODE_OC = 0x0110, +LR11XX_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111,
-  LR1110_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, -LR1110_SYSTEM_CLEAR_IRQ_OC = 0x0114, -LR1110_SYSTEM_CFG_LFCLK_OC = 0x0116, -LR1110_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +  LR11XX_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +LR11XX_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, +LR11XX_SYSTEM_CLEAR_IRQ_OC = 0x0114, +LR11XX_SYSTEM_CFG_LFCLK_OC = 0x0116,
-  LR1110_SYSTEM_REBOOT_OC = 0x0118, -LR1110_SYSTEM_GET_VBAT_OC = 0x0119, -LR1110_SYSTEM_GET_TEMP_OC = 0x011A, -LR1110_SYSTEM_SET_SLEEP_OC = 0x011B, +  LR11XX_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +LR11XX_SYSTEM_REBOOT_OC = 0x0118, +LR11XX_SYSTEM_GET_VBAT_OC = 0x0119, +LR11XX_SYSTEM_GET_TEMP_OC = 0x011A,
-  LR1110_SYSTEM_SET_STANDBY_OC = 0x011C, -LR1110_SYSTEM_SET_FS_OC = 0x011D, -LR1110_SYSTEM_GET_RANDOM_OC = 0x0120, -LR1110_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +  LR11XX_SYSTEM_SET_SLEEP_OC = 0x011B, +LR11XX_SYSTEM_SET_STANDBY_OC = 0x011C, +LR11XX_SYSTEM_SET_FS_OC = 0x011D, +LR11XX_SYSTEM_GET_RANDOM_OC = 0x0120,
-  LR1110_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, -LR1110_SYSTEM_READ_INFOPAGE_OC = 0x0123, -LR1110_SYSTEM_READ_UID_OC = 0x0125, -LR1110_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +  LR11XX_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +LR11XX_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, +LR11XX_SYSTEM_READ_INFOPAGE_OC = 0x0123, +LR11XX_SYSTEM_READ_UID_OC = 0x0125,
-  LR1110_SYSTEM_READ_PIN_OC = 0x0127, -LR1110_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, -LR1110_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A, -LR1110_WIFI_SCAN_OC = 0x0300, +  LR11XX_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +LR11XX_SYSTEM_READ_PIN_OC = 0x0127, +LR11XX_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, +LR11XX_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A,
-  LR1110_WIFI_SCAN_TIME_LIMIT = 0x0301, -LR1110_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, -LR1110_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303, -LR1110_WIFI_GET_RESULT_SIZE_OC = 0x0305, +  LR11XX_WIFI_SCAN_OC = 0x0300, +LR11XX_WIFI_SCAN_TIME_LIMIT = 0x0301, +LR11XX_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, +LR11XX_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303,
-  LR1110_WIFI_READ_RESULT_OC = 0x0306, -LR1110_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, -LR1110_WIFI_READ_CUMUL_TIMING_OC = 0x0308, -LR1110_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +  LR11XX_WIFI_GET_RESULT_SIZE_OC = 0x0305, +LR11XX_WIFI_READ_RESULT_OC = 0x0306, +LR11XX_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, +LR11XX_WIFI_READ_CUMUL_TIMING_OC = 0x0308,
-  LR1110_WIFI_READ_COUNTRY_CODE_OC = 0x030A, -LR1110_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, -LR1110_WIFI_GET_VERSION_OC = 0x0320 +  LR11XX_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +LR11XX_WIFI_READ_COUNTRY_CODE_OC = 0x030A, +LR11XX_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, +LR11XX_WIFI_GET_VERSION_OC = 0x0320
}
 Operating codes for crypto-related operations. More...
 Operating codes for crypto-related operations. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

static void lr1110_crypto_fill_cbuffer_opcode_key_data (uint8_t *cbuffer, uint16_t opcode, uint8_t key_id, const uint8_t *data, uint16_t length)
 Helper function that fill the cbuffer provided in first argument with the command opcode, the key id and the data to encrypt/decrypt/compute aes cmac. More...
 
lr1110_status_t lr1110_crypto_select (const void *context, const lr1110_crypto_element_t element)
 Select the crypto element to be used. More...
 
lr1110_status_t lr1110_crypto_set_key (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const lr1110_crypto_key_t key)
 Set a key in the previously selected crypto element. More...
 
lr1110_status_t lr1110_crypto_derive_key (const void *context, lr1110_crypto_status_t *status, const uint8_t src_key_id, const uint8_t dest_key_id, const lr1110_crypto_nonce_t nonce)
 Derive a key previously set. More...
 
lr1110_status_t lr1110_crypto_process_join_accept (const void *context, lr1110_crypto_status_t *status, const uint8_t dec_key_id, const uint8_t ver_key_id, const lr1110_crypto_lorawan_version_t lorawan_version, const uint8_t *header, const uint8_t *data_in, const uint8_t length, uint8_t *data_out)
 Perform the needed operations to extract the payload from a join accept message. More...
 
lr1110_status_t lr1110_crypto_compute_aes_cmac (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, lr1110_crypto_mic_t mic)
 Compute an AES-CMAC. More...
 
lr1110_status_t lr1110_crypto_verify_aes_cmac (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, const lr1110_crypto_mic_t mic)
 Compute an AES-CMAC and make a comparison with a value given as parameter. More...
 
lr1110_status_t lr1110_crypto_aes_encrypt_01 (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES encryption with a key ID specified in parameter. More...
 
lr1110_status_t lr1110_crypto_aes_encrypt (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES encryption with a key ID specified in parameter. More...
 
lr1110_status_t lr1110_crypto_aes_decrypt (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES decryption with a key ID specified in parameter. More...
 
lr1110_status_t lr1110_crypto_store_to_flash (const void *context, lr1110_crypto_status_t *status)
 Store the crypto data (keys, parameters) from RAM into the flash memory. More...
 
lr1110_status_t lr1110_crypto_restore_from_flash (const void *context, lr1110_crypto_status_t *status)
 Restore the crypto data (keys, parameters) from flash memory into RAM. More...
 
lr1110_status_t lr1110_crypto_set_parameter (const void *context, lr1110_crypto_status_t *status, const uint8_t param_id, const lr1110_crypto_param_t parameter)
 Set a specific parameter identified by param_id in the crypto RAM. More...
 
lr1110_status_t lr1110_crypto_get_parameter (const void *context, lr1110_crypto_status_t *status, const uint8_t param_id, lr1110_crypto_param_t parameter)
 Get a specific parameter identified by paramID from the crypto RAM. More...
 
static void lr11xx_crypto_fill_cbuffer_opcode_key_data (uint8_t *cbuffer, uint16_t opcode, uint8_t key_id, const uint8_t *data, uint16_t length)
 Helper function that fill the cbuffer provided in first argument with the command opcode, the key id and the data to encrypt/decrypt/compute aes cmac. More...
 
lr11xx_status_t lr11xx_crypto_select (const void *context, const lr11xx_crypto_element_t element)
 Select the crypto element to be used. More...
 
lr11xx_status_t lr11xx_crypto_set_key (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const lr11xx_crypto_key_t key)
 Set a key in the previously selected crypto element. More...
 
lr11xx_status_t lr11xx_crypto_derive_key (const void *context, lr11xx_crypto_status_t *status, const uint8_t src_key_id, const uint8_t dest_key_id, const lr11xx_crypto_nonce_t nonce)
 Derive a key previously set. More...
 
lr11xx_status_t lr11xx_crypto_process_join_accept (const void *context, lr11xx_crypto_status_t *status, const uint8_t dec_key_id, const uint8_t ver_key_id, const lr11xx_crypto_lorawan_version_t lorawan_version, const uint8_t *header, const uint8_t *data_in, const uint8_t length, uint8_t *data_out)
 Perform the needed operations to extract the payload from a join accept message. More...
 
lr11xx_status_t lr11xx_crypto_compute_aes_cmac (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, lr11xx_crypto_mic_t mic)
 Compute an AES-CMAC. More...
 
lr11xx_status_t lr11xx_crypto_verify_aes_cmac (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, const lr11xx_crypto_mic_t mic)
 Compute an AES-CMAC and make a comparison with a value given as parameter. More...
 
lr11xx_status_t lr11xx_crypto_aes_encrypt_01 (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES encryption with a key ID specified in parameter. More...
 
lr11xx_status_t lr11xx_crypto_aes_encrypt (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES encryption with a key ID specified in parameter. More...
 
lr11xx_status_t lr11xx_crypto_aes_decrypt (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES decryption with a key ID specified in parameter. More...
 
lr11xx_status_t lr11xx_crypto_store_to_flash (const void *context, lr11xx_crypto_status_t *status)
 Store the crypto data (keys, parameters) from RAM into the flash memory. More...
 
lr11xx_status_t lr11xx_crypto_restore_from_flash (const void *context, lr11xx_crypto_status_t *status)
 Restore the crypto data (keys, parameters) from flash memory into RAM. More...
 
lr11xx_status_t lr11xx_crypto_set_parameter (const void *context, lr11xx_crypto_status_t *status, const uint8_t param_id, const lr11xx_crypto_param_t parameter)
 Set a specific parameter identified by param_id in the crypto RAM. More...
 
lr11xx_status_t lr11xx_crypto_get_parameter (const void *context, lr11xx_crypto_status_t *status, const uint8_t param_id, lr11xx_crypto_param_t parameter)
 Get a specific parameter identified by paramID from the crypto RAM. More...
 

Detailed Description

-

Cryptographic engine driver implementation for LR1110.

+

Cryptographic engine driver implementation for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -362,55 +363,55 @@

    -EnumeratorLR1110_GNSS_SET_CONSTELLATION_OC 

    Set the constellation to use.

    +EnumeratorLR11XX_GNSS_SET_CONSTELLATION_OC 

    Set the constellation to use.

    -LR1110_GNSS_READ_CONSTELLATION_OC 

    Read the used constellations.

    +LR11XX_GNSS_READ_CONSTELLATION_OC 

    Read the used constellations.

    -LR1110_GNSS_SET_ALMANAC_UPDATE_OC 

    Set almanac update configuration.

    +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC 

    Set almanac update configuration.

    -LR1110_GNSS_READ_ALMANAC_UPDATE_OC 

    Read the almanac update configuration.

    +LR11XX_GNSS_READ_ALMANAC_UPDATE_OC 

    Read the almanac update configuration.

    -LR1110_GNSS_READ_FW_VERSION_OC 

    Read the firmware version.

    +LR11XX_GNSS_READ_FW_VERSION_OC 

    Read the firmware version.

    -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

    Read the supported constellations.

    +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

    Read the supported constellations.

    -LR1110_GNSS_SET_SCAN_MODE_OC 

    Define single or double capture.

    +LR11XX_GNSS_SET_SCAN_MODE_OC 

    Define single or double capture.

    -LR1110_GNSS_SCAN_AUTONOMOUS_OC 

    Launch an autonomous scan.

    +LR11XX_GNSS_SCAN_AUTONOMOUS_OC 

    Launch an autonomous scan.

    -LR1110_GNSS_SCAN_ASSISTED_OC 

    Launch an assisted scan.

    +LR11XX_GNSS_SCAN_ASSISTED_OC 

    Launch an assisted scan.

    -LR1110_GNSS_SCAN_GET_RES_SIZE_OC 

    Get the size of the output payload.

    +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC 

    Get the size of the output payload.

    -LR1110_GNSS_SCAN_READ_RES_OC 

    Read the byte stream.

    +LR11XX_GNSS_SCAN_READ_RES_OC 

    Read the byte stream.

    -LR1110_GNSS_ALMANAC_UPDATE_OC 

    Update the almanac.

    +LR11XX_GNSS_ALMANAC_UPDATE_OC 

    Update the almanac.

    -LR1110_GNSS_ALMANAC_READ_OC 

    Read all almanacs.

    +LR11XX_GNSS_ALMANAC_READ_OC 

    Read all almanacs.

    -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC 

    Set the assistance position.

    +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC 

    Set the assistance position.

    -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC 

    Read the assistance position.

    +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC 

    Read the assistance position.

    -LR1110_GNSS_PUSH_SOLVER_MSG_OC 

    Push messages coming from the solver.

    +LR11XX_GNSS_PUSH_SOLVER_MSG_OC 

    Push messages coming from the solver.

    -LR1110_GNSS_PUSH_DM_MSG_OC 

    Push messages coming from the device management.

    +LR11XX_GNSS_PUSH_DM_MSG_OC 

    Push messages coming from the device management.

    -LR1110_GNSS_GET_CONTEXT_STATUS_OC 

    Read the context.

    +LR11XX_GNSS_GET_CONTEXT_STATUS_OC 

    Read the context.

    -LR1110_GNSS_GET_NB_SATELLITES_OC 

    Get the number of satellites detected during a scan.

    +LR11XX_GNSS_GET_NB_SATELLITES_OC 

    Get the number of satellites detected during a scan.

    -LR1110_GNSS_GET_SATELLITES_OC 

    Get the list of satellites detected during a scan.

    +LR11XX_GNSS_GET_SATELLITES_OC 

    Get the list of satellites detected during a scan.

    -LR1110_GNSS_GET_TIMINGS_OC 

    Get the time spent in signal acquisition and analysis.

    +LR11XX_GNSS_GET_TIMINGS_OC 

    Get the time spent in signal acquisition and analysis.

Function Documentation

- -

◆ lr1110_crypto_fill_cbuffer_opcode_key_data()

+ +

◆ lr11xx_crypto_fill_cbuffer_opcode_key_data()

@@ -419,7 +420,7 @@

- + @@ -476,14 +477,14 @@

-

◆ lr1110_crypto_select()

+ +

◆ lr11xx_crypto_select()

static void lr1110_crypto_fill_cbuffer_opcode_key_data static void lr11xx_crypto_fill_cbuffer_opcode_key_data ( uint8_t *  cbuffer,
- + @@ -491,7 +492,7 @@

- + @@ -515,14 +516,14 @@

-

◆ lr1110_crypto_set_key()

+ +

◆ lr11xx_crypto_set_key()

lr1110_status_t lr1110_crypto_select lr11xx_status_t lr11xx_crypto_select ( const void *  context, const lr1110_crypto_element_t const lr11xx_crypto_element_t  element 
- + @@ -530,7 +531,7 @@

- + @@ -542,7 +543,7 @@

- + @@ -563,19 +564,19 @@

See also
lr1110_crypto_derive_key
+
See also
lr11xx_crypto_derive_key
Returns
Operation status
- -

◆ lr1110_crypto_derive_key()

+ +

◆ lr11xx_crypto_derive_key()

lr1110_status_t lr1110_crypto_set_key lr11xx_status_t lr11xx_crypto_set_key ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
const lr1110_crypto_key_t const lr11xx_crypto_key_t  key 
- + @@ -583,7 +584,7 @@

- + @@ -601,7 +602,7 @@

- + @@ -618,24 +619,24 @@

[in]

- +
lr1110_status_t lr1110_crypto_derive_key lr11xx_status_t lr11xx_crypto_derive_key ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
const lr1110_crypto_nonce_t const lr11xx_crypto_nonce_t  nonce 
contextChip implementation context
[out]statusThe status returned by the execution of this cryptographic function
[in]src_key_idThe identifier of the key to be derived
[in]dest_key_idThe identifier where the derived key will be stored after call to lr1110_crypto_store_to_flash
[in]dest_key_idThe identifier where the derived key will be stored after call to lr11xx_crypto_store_to_flash
[in]nonceThe nonce to be used to perform the derivation
-
See also
lr1110_crypto_set_key
+
See also
lr11xx_crypto_set_key
Returns
Operation status

- -

◆ lr1110_crypto_process_join_accept()

+ +

◆ lr11xx_crypto_process_join_accept()

- + @@ -643,7 +644,7 @@

- + @@ -661,7 +662,7 @@

- + @@ -715,14 +716,14 @@

-

◆ lr1110_crypto_compute_aes_cmac()

+ +

◆ lr11xx_crypto_compute_aes_cmac()

lr1110_status_t lr1110_crypto_process_join_accept lr11xx_status_t lr11xx_crypto_process_join_accept ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
const lr1110_crypto_lorawan_version_t const lr11xx_crypto_lorawan_version_t  lorawan_version,
- + @@ -730,7 +731,7 @@

- + @@ -754,7 +755,7 @@

- + @@ -777,19 +778,19 @@

See also
lr1110_crypto_verify_aes_cmac
+
See also
lr11xx_crypto_verify_aes_cmac
Returns
Operation status
- -

◆ lr1110_crypto_verify_aes_cmac()

+ +

◆ lr11xx_crypto_verify_aes_cmac()

lr1110_status_t lr1110_crypto_compute_aes_cmac lr11xx_status_t lr11xx_crypto_compute_aes_cmac ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
lr1110_crypto_mic_t lr11xx_crypto_mic_t  mic 
- + @@ -797,7 +798,7 @@

- + @@ -821,7 +822,7 @@

- + @@ -844,19 +845,19 @@

See also
lr1110_crypto_compute_aes_cmac
+
See also
lr11xx_crypto_compute_aes_cmac
Returns
Operation status
- -

◆ lr1110_crypto_aes_encrypt_01()

+ +

◆ lr11xx_crypto_aes_encrypt_01()

lr1110_status_t lr1110_crypto_verify_aes_cmac lr11xx_status_t lr11xx_crypto_verify_aes_cmac ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
const lr1110_crypto_mic_t const lr11xx_crypto_mic_t  mic 
- + @@ -864,7 +865,7 @@

- + @@ -907,23 +908,23 @@

[in]

- +
lr1110_status_t lr1110_crypto_aes_encrypt_01 lr11xx_status_t lr11xx_crypto_aes_encrypt_01 ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
key_idThe identifier of the key to be used for the computation
[in]dataThe data to encrypt
[in]lengthThe length in bytes of the data to encrypt - this value shall be a multiple of 16
[out]resultA pointer to a data buffer that will be filled with the encrypted data. Values of this buffer are meaningful if and only if the return status is LR1110_CRYPTO_STATUS_SUCCESS
[out]resultA pointer to a data buffer that will be filled with the encrypted data. Values of this buffer are meaningful if and only if the return status is LR11XX_CRYPTO_STATUS_SUCCESS
-
See also
lr1110_crypto_set_key, lr1110_crypto_derive_key
+
See also
lr11xx_crypto_set_key, lr11xx_crypto_derive_key
Returns
Operation status
- -

◆ lr1110_crypto_aes_encrypt()

+ +

◆ lr11xx_crypto_aes_encrypt()

- + @@ -931,7 +932,7 @@

- + @@ -974,23 +975,23 @@

[in]

- +
lr1110_status_t lr1110_crypto_aes_encrypt lr11xx_status_t lr11xx_crypto_aes_encrypt ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
key_idThe identifier of the key to be used for the computation
[in]dataThe data to encrypt
[in]lengthThe length in bytes of the data to encrypt - this value shall be a multiple of 16
[out]resultA pointer to a data buffer that will be filled with the encrypted data. Values of this buffer are meaningful if and only if the return status is LR1110_CRYPTO_STATUS_SUCCESS
[out]resultA pointer to a data buffer that will be filled with the encrypted data. Values of this buffer are meaningful if and only if the return status is LR11XX_CRYPTO_STATUS_SUCCESS
-
See also
lr1110_crypto_set_key, lr1110_crypto_derive_key
+
See also
lr11xx_crypto_set_key, lr11xx_crypto_derive_key
Returns
Operation status
- -

◆ lr1110_crypto_aes_decrypt()

+ +

◆ lr11xx_crypto_aes_decrypt()

- + @@ -998,7 +999,7 @@

- + @@ -1041,23 +1042,23 @@

[in]

- +
lr1110_status_t lr1110_crypto_aes_decrypt lr11xx_status_t lr11xx_crypto_aes_decrypt ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
key_idThe identifier of the key to be used for the computation
[in]dataThe data to decrypt
[in]lengthThe length in bytes of the data to decrypt - this value shall be a multiple of 16
[out]resultA pointer to a data buffer that will be filled with the decrypted data. Values of this buffer are meaningful if and only if the return status is LR1110_CRYPTO_STATUS_SUCCESS
[out]resultA pointer to a data buffer that will be filled with the decrypted data. Values of this buffer are meaningful if and only if the return status is LR11XX_CRYPTO_STATUS_SUCCESS
-
See also
lr1110_crypto_set_key, lr1110_crypto_derive_key
+
See also
lr11xx_crypto_set_key, lr11xx_crypto_derive_key
Returns
Operation status
- -

◆ lr1110_crypto_store_to_flash()

+ +

◆ lr11xx_crypto_store_to_flash()

- + @@ -1065,7 +1066,7 @@

- + @@ -1084,19 +1085,19 @@

See also
lr1110_crypto_restore_from_flash
+
See also
lr11xx_crypto_restore_from_flash
Returns
Operation status
- -

◆ lr1110_crypto_restore_from_flash()

+ +

◆ lr11xx_crypto_restore_from_flash()

lr1110_status_t lr1110_crypto_store_to_flash lr11xx_status_t lr11xx_crypto_store_to_flash ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status 
- + @@ -1104,7 +1105,7 @@

- + @@ -1123,19 +1124,19 @@

See also
lr1110_crypto_store_to_flash
+
See also
lr11xx_crypto_store_to_flash
Returns
Operation status
- -

◆ lr1110_crypto_set_parameter()

+ +

◆ lr11xx_crypto_set_parameter()

lr1110_status_t lr1110_crypto_restore_from_flash lr11xx_status_t lr11xx_crypto_restore_from_flash ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status 
- + @@ -1143,7 +1144,7 @@

- + @@ -1155,7 +1156,7 @@

- + @@ -1167,7 +1168,7 @@

Set a specific parameter identified by param_id in the crypto RAM.

-

This function does not store a parameter in the flash memory. The parameters shall be stored after using lr1110_crypto_store_to_flash command.

+

This function does not store a parameter in the flash memory. The parameters shall be stored after using lr11xx_crypto_store_to_flash command.

Parameters

lr1110_status_t lr1110_crypto_set_parameter lr11xx_status_t lr11xx_crypto_set_parameter ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
const lr1110_crypto_param_t const lr11xx_crypto_param_t  parameter 
@@ -1177,19 +1178,19 @@

See also
lr1110_crypto_get_parameter
+
See also
lr11xx_crypto_get_parameter
Returns
Operation status
- -

◆ lr1110_crypto_get_parameter()

+ +

◆ lr11xx_crypto_get_parameter()

[in]contextChip implementation context
- + @@ -1197,7 +1198,7 @@

- + @@ -1209,7 +1210,7 @@

- + @@ -1221,7 +1222,7 @@

Get a specific parameter identified by paramID from the crypto RAM.

-

This function does not fetch a parameter from the flash memory. The parameters shall be restored before using lr1110_crypto_restore_from_flash command.

+

This function does not fetch a parameter from the flash memory. The parameters shall be restored before using lr11xx_crypto_restore_from_flash command.

Parameters

lr1110_status_t lr1110_crypto_get_parameter lr11xx_status_t lr11xx_crypto_get_parameter ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
lr1110_crypto_param_t lr11xx_crypto_param_t  parameter 
@@ -1231,7 +1232,7 @@

See also
lr1110_crypto_set_parameter
+
See also
lr11xx_crypto_set_parameter
Returns
Operation status
diff --git a/doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.map b/doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.map new file mode 100644 index 0000000..faee006 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.md5 b/doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.md5 new file mode 100644 index 0000000..7bb3c4b --- /dev/null +++ b/doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.md5 @@ -0,0 +1 @@ +5640cd80730120e080860e13f9cb44c4 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.png b/doc/lr11xx/html/lr11xx__crypto__engine_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b1db9a6c9bcf68221a1a771a00780dc1688f45 GIT binary patch literal 19797 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 Iol`;+0AiJ6U;qFB literal 0 HcmV?d00001 diff --git a/doc/lr1110/html/lr1110__crypto__engine_8h.html b/doc/lr11xx/html/lr11xx__crypto__engine_8h.html similarity index 63% rename from doc/lr1110/html/lr1110__crypto__engine_8h.html rename to doc/lr11xx/html/lr11xx__crypto__engine_8h.html index bb0c12c..1c3084b 100644 --- a/doc/lr1110/html/lr1110__crypto__engine_8h.html +++ b/doc/lr11xx/html/lr11xx__crypto__engine_8h.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_crypto_engine.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_crypto_engine.h File Reference @@ -21,7 +21,7 @@

@@ -61,88 +61,88 @@
-
lr1110_crypto_engine.h File Reference
+
lr11xx_crypto_engine.h File Reference
-

Cryptographic engine driver definition for LR1110. +

Cryptographic engine driver definition for LR11XX. More...

-
#include "lr1110_crypto_engine_types.h"
-#include "lr1110_types.h"
+
-Include dependency graph for lr1110_crypto_engine.h:
+Include dependency graph for lr11xx_crypto_engine.h:
-
- - - - +
+ + + +
This graph shows which files directly or indirectly include this file:
-
- - - +
+ + +
-

Go to the source code of this file.

+

Go to the source code of this file.

[in]contextChip implementation context
-
lr1110_driver +
lr11xx_driver
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

lr1110_status_t lr1110_crypto_select (const void *context, const lr1110_crypto_element_t element)
 Select the crypto element to be used. More...
 
lr1110_status_t lr1110_crypto_set_key (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const lr1110_crypto_key_t key)
 Set a key in the previously selected crypto element. More...
 
lr1110_status_t lr1110_crypto_derive_key (const void *context, lr1110_crypto_status_t *status, const uint8_t src_key_id, const uint8_t dest_key_id, const lr1110_crypto_nonce_t nonce)
 Derive a key previously set. More...
 
lr1110_status_t lr1110_crypto_process_join_accept (const void *context, lr1110_crypto_status_t *status, const uint8_t dec_key_id, const uint8_t ver_key_id, const lr1110_crypto_lorawan_version_t lorawan_version, const uint8_t *header, const uint8_t *data, const uint8_t length, uint8_t *data_out)
 Perform the needed operations to extract the payload from a join accept message. More...
 
lr1110_status_t lr1110_crypto_compute_aes_cmac (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, lr1110_crypto_mic_t mic)
 Compute an AES-CMAC. More...
 
lr1110_status_t lr1110_crypto_verify_aes_cmac (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, const lr1110_crypto_mic_t mic)
 Compute an AES-CMAC and make a comparison with a value given as parameter. More...
 
lr1110_status_t lr1110_crypto_aes_encrypt_01 (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES encryption with a key ID specified in parameter. More...
 
lr1110_status_t lr1110_crypto_aes_encrypt (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES encryption with a key ID specified in parameter. More...
 
lr1110_status_t lr1110_crypto_aes_decrypt (const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES decryption with a key ID specified in parameter. More...
 
lr1110_status_t lr1110_crypto_store_to_flash (const void *context, lr1110_crypto_status_t *status)
 Store the crypto data (keys, parameters) from RAM into the flash memory. More...
 
lr1110_status_t lr1110_crypto_restore_from_flash (const void *context, lr1110_crypto_status_t *status)
 Restore the crypto data (keys, parameters) from flash memory into RAM. More...
 
lr1110_status_t lr1110_crypto_set_parameter (const void *context, lr1110_crypto_status_t *status, const uint8_t param_id, const lr1110_crypto_param_t parameter)
 Set a specific parameter identified by param_id in the crypto RAM. More...
 
lr1110_status_t lr1110_crypto_get_parameter (const void *context, lr1110_crypto_status_t *status, const uint8_t param_id, lr1110_crypto_param_t parameter)
 Get a specific parameter identified by paramID from the crypto RAM. More...
 
lr11xx_status_t lr11xx_crypto_select (const void *context, const lr11xx_crypto_element_t element)
 Select the crypto element to be used. More...
 
lr11xx_status_t lr11xx_crypto_set_key (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const lr11xx_crypto_key_t key)
 Set a key in the previously selected crypto element. More...
 
lr11xx_status_t lr11xx_crypto_derive_key (const void *context, lr11xx_crypto_status_t *status, const uint8_t src_key_id, const uint8_t dest_key_id, const lr11xx_crypto_nonce_t nonce)
 Derive a key previously set. More...
 
lr11xx_status_t lr11xx_crypto_process_join_accept (const void *context, lr11xx_crypto_status_t *status, const uint8_t dec_key_id, const uint8_t ver_key_id, const lr11xx_crypto_lorawan_version_t lorawan_version, const uint8_t *header, const uint8_t *data, const uint8_t length, uint8_t *data_out)
 Perform the needed operations to extract the payload from a join accept message. More...
 
lr11xx_status_t lr11xx_crypto_compute_aes_cmac (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, lr11xx_crypto_mic_t mic)
 Compute an AES-CMAC. More...
 
lr11xx_status_t lr11xx_crypto_verify_aes_cmac (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, const lr11xx_crypto_mic_t mic)
 Compute an AES-CMAC and make a comparison with a value given as parameter. More...
 
lr11xx_status_t lr11xx_crypto_aes_encrypt_01 (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES encryption with a key ID specified in parameter. More...
 
lr11xx_status_t lr11xx_crypto_aes_encrypt (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES encryption with a key ID specified in parameter. More...
 
lr11xx_status_t lr11xx_crypto_aes_decrypt (const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
 Compute an AES decryption with a key ID specified in parameter. More...
 
lr11xx_status_t lr11xx_crypto_store_to_flash (const void *context, lr11xx_crypto_status_t *status)
 Store the crypto data (keys, parameters) from RAM into the flash memory. More...
 
lr11xx_status_t lr11xx_crypto_restore_from_flash (const void *context, lr11xx_crypto_status_t *status)
 Restore the crypto data (keys, parameters) from flash memory into RAM. More...
 
lr11xx_status_t lr11xx_crypto_set_parameter (const void *context, lr11xx_crypto_status_t *status, const uint8_t param_id, const lr11xx_crypto_param_t parameter)
 Set a specific parameter identified by param_id in the crypto RAM. More...
 
lr11xx_status_t lr11xx_crypto_get_parameter (const void *context, lr11xx_crypto_status_t *status, const uint8_t param_id, lr11xx_crypto_param_t parameter)
 Get a specific parameter identified by paramID from the crypto RAM. More...
 

Detailed Description

-

Cryptographic engine driver definition for LR1110.

+

Cryptographic engine driver definition for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -151,14 +151,14 @@

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Function Documentation

- -

◆ lr1110_crypto_select()

+ +

◆ lr11xx_crypto_select()

- + @@ -166,7 +166,7 @@

- + @@ -190,14 +190,14 @@

-

◆ lr1110_crypto_set_key()

+ +

◆ lr11xx_crypto_set_key()

lr1110_status_t lr1110_crypto_select lr11xx_status_t lr11xx_crypto_select ( const void *  context, const lr1110_crypto_element_t const lr11xx_crypto_element_t  element 
- + @@ -205,7 +205,7 @@

- + @@ -217,7 +217,7 @@

- + @@ -238,19 +238,19 @@

See also
lr1110_crypto_derive_key
+
See also
lr11xx_crypto_derive_key
Returns
Operation status
- -

◆ lr1110_crypto_derive_key()

+ +

◆ lr11xx_crypto_derive_key()

lr1110_status_t lr1110_crypto_set_key lr11xx_status_t lr11xx_crypto_set_key ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
const lr1110_crypto_key_t const lr11xx_crypto_key_t  key 
- + @@ -258,7 +258,7 @@

- + @@ -276,7 +276,7 @@

- + @@ -293,24 +293,24 @@

[in]

- +
lr1110_status_t lr1110_crypto_derive_key lr11xx_status_t lr11xx_crypto_derive_key ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
const lr1110_crypto_nonce_t const lr11xx_crypto_nonce_t  nonce 
contextChip implementation context
[out]statusThe status returned by the execution of this cryptographic function
[in]src_key_idThe identifier of the key to be derived
[in]dest_key_idThe identifier where the derived key will be stored after call to lr1110_crypto_store_to_flash
[in]dest_key_idThe identifier where the derived key will be stored after call to lr11xx_crypto_store_to_flash
[in]nonceThe nonce to be used to perform the derivation
-
See also
lr1110_crypto_set_key
+
See also
lr11xx_crypto_set_key
Returns
Operation status
- -

◆ lr1110_crypto_process_join_accept()

+ +

◆ lr11xx_crypto_process_join_accept()

- + @@ -318,7 +318,7 @@

- + @@ -336,7 +336,7 @@

- + @@ -390,14 +390,14 @@

-

◆ lr1110_crypto_compute_aes_cmac()

+ +

◆ lr11xx_crypto_compute_aes_cmac()

lr1110_status_t lr1110_crypto_process_join_accept lr11xx_status_t lr11xx_crypto_process_join_accept ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
const lr1110_crypto_lorawan_version_t const lr11xx_crypto_lorawan_version_t  lorawan_version,
- + @@ -405,7 +405,7 @@

- + @@ -429,7 +429,7 @@

- + @@ -452,19 +452,19 @@

See also
lr1110_crypto_verify_aes_cmac
+
See also
lr11xx_crypto_verify_aes_cmac
Returns
Operation status
- -

◆ lr1110_crypto_verify_aes_cmac()

+ +

◆ lr11xx_crypto_verify_aes_cmac()

lr1110_status_t lr1110_crypto_compute_aes_cmac lr11xx_status_t lr11xx_crypto_compute_aes_cmac ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
lr1110_crypto_mic_t lr11xx_crypto_mic_t  mic 
- + @@ -472,7 +472,7 @@

- + @@ -496,7 +496,7 @@

- + @@ -519,19 +519,19 @@

See also
lr1110_crypto_compute_aes_cmac
+
See also
lr11xx_crypto_compute_aes_cmac
Returns
Operation status
- -

◆ lr1110_crypto_aes_encrypt_01()

+ +

◆ lr11xx_crypto_aes_encrypt_01()

lr1110_status_t lr1110_crypto_verify_aes_cmac lr11xx_status_t lr11xx_crypto_verify_aes_cmac ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
const lr1110_crypto_mic_t const lr11xx_crypto_mic_t  mic 
- + @@ -539,7 +539,7 @@

- + @@ -582,23 +582,23 @@

[in]

- +
lr1110_status_t lr1110_crypto_aes_encrypt_01 lr11xx_status_t lr11xx_crypto_aes_encrypt_01 ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
key_idThe identifier of the key to be used for the computation
[in]dataThe data to encrypt
[in]lengthThe length in bytes of the data to encrypt - this value shall be a multiple of 16
[out]resultA pointer to a data buffer that will be filled with the encrypted data. Values of this buffer are meaningful if and only if the return status is LR1110_CRYPTO_STATUS_SUCCESS
[out]resultA pointer to a data buffer that will be filled with the encrypted data. Values of this buffer are meaningful if and only if the return status is LR11XX_CRYPTO_STATUS_SUCCESS
-
See also
lr1110_crypto_set_key, lr1110_crypto_derive_key
+
See also
lr11xx_crypto_set_key, lr11xx_crypto_derive_key
Returns
Operation status
- -

◆ lr1110_crypto_aes_encrypt()

+ +

◆ lr11xx_crypto_aes_encrypt()

- + @@ -606,7 +606,7 @@

- + @@ -649,23 +649,23 @@

[in]

- +
lr1110_status_t lr1110_crypto_aes_encrypt lr11xx_status_t lr11xx_crypto_aes_encrypt ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
key_idThe identifier of the key to be used for the computation
[in]dataThe data to encrypt
[in]lengthThe length in bytes of the data to encrypt - this value shall be a multiple of 16
[out]resultA pointer to a data buffer that will be filled with the encrypted data. Values of this buffer are meaningful if and only if the return status is LR1110_CRYPTO_STATUS_SUCCESS
[out]resultA pointer to a data buffer that will be filled with the encrypted data. Values of this buffer are meaningful if and only if the return status is LR11XX_CRYPTO_STATUS_SUCCESS
-
See also
lr1110_crypto_set_key, lr1110_crypto_derive_key
+
See also
lr11xx_crypto_set_key, lr11xx_crypto_derive_key
Returns
Operation status
- -

◆ lr1110_crypto_aes_decrypt()

+ +

◆ lr11xx_crypto_aes_decrypt()

- + @@ -673,7 +673,7 @@

- + @@ -716,23 +716,23 @@

[in]

- +
lr1110_status_t lr1110_crypto_aes_decrypt lr11xx_status_t lr11xx_crypto_aes_decrypt ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
key_idThe identifier of the key to be used for the computation
[in]dataThe data to decrypt
[in]lengthThe length in bytes of the data to decrypt - this value shall be a multiple of 16
[out]resultA pointer to a data buffer that will be filled with the decrypted data. Values of this buffer are meaningful if and only if the return status is LR1110_CRYPTO_STATUS_SUCCESS
[out]resultA pointer to a data buffer that will be filled with the decrypted data. Values of this buffer are meaningful if and only if the return status is LR11XX_CRYPTO_STATUS_SUCCESS
-
See also
lr1110_crypto_set_key, lr1110_crypto_derive_key
+
See also
lr11xx_crypto_set_key, lr11xx_crypto_derive_key
Returns
Operation status
- -

◆ lr1110_crypto_store_to_flash()

+ +

◆ lr11xx_crypto_store_to_flash()

- + @@ -740,7 +740,7 @@

- + @@ -759,19 +759,19 @@

See also
lr1110_crypto_restore_from_flash
+
See also
lr11xx_crypto_restore_from_flash
Returns
Operation status
- -

◆ lr1110_crypto_restore_from_flash()

+ +

◆ lr11xx_crypto_restore_from_flash()

lr1110_status_t lr1110_crypto_store_to_flash lr11xx_status_t lr11xx_crypto_store_to_flash ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status 
- + @@ -779,7 +779,7 @@

- + @@ -798,19 +798,19 @@

See also
lr1110_crypto_store_to_flash
+
See also
lr11xx_crypto_store_to_flash
Returns
Operation status
- -

◆ lr1110_crypto_set_parameter()

+ +

◆ lr11xx_crypto_set_parameter()

lr1110_status_t lr1110_crypto_restore_from_flash lr11xx_status_t lr11xx_crypto_restore_from_flash ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status 
- + @@ -818,7 +818,7 @@

- + @@ -830,7 +830,7 @@

- + @@ -842,7 +842,7 @@

Set a specific parameter identified by param_id in the crypto RAM.

-

This function does not store a parameter in the flash memory. The parameters shall be stored after using lr1110_crypto_store_to_flash command.

+

This function does not store a parameter in the flash memory. The parameters shall be stored after using lr11xx_crypto_store_to_flash command.

Parameters

lr1110_status_t lr1110_crypto_set_parameter lr11xx_status_t lr11xx_crypto_set_parameter ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
const lr1110_crypto_param_t const lr11xx_crypto_param_t  parameter 
@@ -852,19 +852,19 @@

See also
lr1110_crypto_get_parameter
+
See also
lr11xx_crypto_get_parameter
Returns
Operation status
- -

◆ lr1110_crypto_get_parameter()

+ +

◆ lr11xx_crypto_get_parameter()

[in]contextChip implementation context
- + @@ -872,7 +872,7 @@

- + @@ -884,7 +884,7 @@

- + @@ -896,7 +896,7 @@

Get a specific parameter identified by paramID from the crypto RAM.

-

This function does not fetch a parameter from the flash memory. The parameters shall be restored before using lr1110_crypto_restore_from_flash command.

+

This function does not fetch a parameter from the flash memory. The parameters shall be restored before using lr11xx_crypto_restore_from_flash command.

Parameters

lr1110_status_t lr1110_crypto_get_parameter lr11xx_status_t lr11xx_crypto_get_parameter ( const void *  context, lr1110_crypto_status_tlr11xx_crypto_status_t status,
lr1110_crypto_param_t lr11xx_crypto_param_t  parameter 
@@ -906,7 +906,7 @@

See also
lr1110_crypto_set_parameter
+
See also
lr11xx_crypto_set_parameter
Returns
Operation status
diff --git a/doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.map new file mode 100644 index 0000000..0b79d0a --- /dev/null +++ b/doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.md5 new file mode 100644 index 0000000..433e998 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.md5 @@ -0,0 +1 @@ +7c1716083611c54a80659085316c27e7 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__crypto__engine_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..da15ed20de5e84d13c70af1b3169cc422759081e GIT binary patch literal 6165 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 literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.map b/doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.map new file mode 100644 index 0000000..2064eda --- /dev/null +++ b/doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.md5 b/doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.md5 new file mode 100644 index 0000000..ce5c264 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.md5 @@ -0,0 +1 @@ +e0f77a28e2b51bbd3bd4ef59c018661f \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.png b/doc/lr11xx/html/lr11xx__crypto__engine_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..18fe7d878b1312017f4d055c4e21bc3c93cad68a GIT binary patch literal 10246 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 -lr1110_driver: lr1110_driver/src/lr1110_crypto_engine.h Source File +lr11xx_driver: lr11xx_driver/src/lr11xx_crypto_engine.h Source File @@ -21,7 +21,7 @@

@@ -61,17 +61,17 @@
-
lr1110_crypto_engine.h
+
lr11xx_crypto_engine.h
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_CRYPTO_ENGINE_H
-
36 #define LR1110_CRYPTO_ENGINE_H
+Go to the documentation of this file.
1 
+
35 #ifndef LR11XX_CRYPTO_ENGINE_H
+
36 #define LR11XX_CRYPTO_ENGINE_H
37 
38 #ifdef __cplusplus
39 extern "C" {
@@ -82,8 +82,8 @@
44  * --- DEPENDENCIES ------------------------------------------------------------
45  */
46 
- -
48 #include "lr1110_types.h"
+ +
48 #include "lr11xx_types.h"
49 
50 /*
51  * -----------------------------------------------------------------------------
@@ -105,78 +105,78 @@
67  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
68  */
69 
-
81 lr1110_status_t lr1110_crypto_select( const void* context, const lr1110_crypto_element_t element );
+
81 lr11xx_status_t lr11xx_crypto_select( const void* context, const lr11xx_crypto_element_t element );
82 
-
95 lr1110_status_t lr1110_crypto_set_key( const void* context, lr1110_crypto_status_t* status, const uint8_t key_id,
-
96  const lr1110_crypto_key_t key );
+
95 lr11xx_status_t lr11xx_crypto_set_key( const void* context, lr11xx_crypto_status_t* status, const uint8_t key_id,
+
96  const lr11xx_crypto_key_t key );
97 
-
112 lr1110_status_t lr1110_crypto_derive_key( const void* context, lr1110_crypto_status_t* status, const uint8_t src_key_id,
-
113  const uint8_t dest_key_id, const lr1110_crypto_nonce_t nonce );
+
112 lr11xx_status_t lr11xx_crypto_derive_key( const void* context, lr11xx_crypto_status_t* status, const uint8_t src_key_id,
+
113  const uint8_t dest_key_id, const lr11xx_crypto_nonce_t nonce );
114 
- +
131  const uint8_t dec_key_id, const uint8_t ver_key_id,
-
132  const lr1110_crypto_lorawan_version_t lorawan_version,
+
132  const lr11xx_crypto_lorawan_version_t lorawan_version,
133  const uint8_t* header, const uint8_t* data, const uint8_t length,
134  uint8_t* data_out );
135 
- +
151  const uint8_t key_id, const uint8_t* data, const uint16_t length,
-
152  lr1110_crypto_mic_t mic );
+
152  lr11xx_crypto_mic_t mic );
153 
- +
169  const uint8_t key_id, const uint8_t* data, const uint16_t length,
-
170  const lr1110_crypto_mic_t mic );
+
170  const lr11xx_crypto_mic_t mic );
171 
-
187 lr1110_status_t lr1110_crypto_aes_encrypt_01( const void* context, lr1110_crypto_status_t* status, const uint8_t key_id,
+
187 lr11xx_status_t lr11xx_crypto_aes_encrypt_01( const void* context, lr11xx_crypto_status_t* status, const uint8_t key_id,
188  const uint8_t* data, const uint16_t length, uint8_t* result );
189 
-
205 lr1110_status_t lr1110_crypto_aes_encrypt( const void* context, lr1110_crypto_status_t* status, const uint8_t key_id,
+
205 lr11xx_status_t lr11xx_crypto_aes_encrypt( const void* context, lr11xx_crypto_status_t* status, const uint8_t key_id,
206  const uint8_t* data, const uint16_t length, uint8_t* result );
207 
-
223 lr1110_status_t lr1110_crypto_aes_decrypt( const void* context, lr1110_crypto_status_t* status, const uint8_t key_id,
+
223 lr11xx_status_t lr11xx_crypto_aes_decrypt( const void* context, lr11xx_crypto_status_t* status, const uint8_t key_id,
224  const uint8_t* data, const uint16_t length, uint8_t* result );
225 
- +
237 
- +
249 
- -
266  const uint8_t param_id, const lr1110_crypto_param_t parameter );
+ +
266  const uint8_t param_id, const lr11xx_crypto_param_t parameter );
267 
- -
284  const uint8_t param_id, lr1110_crypto_param_t parameter );
+ +
284  const uint8_t param_id, lr11xx_crypto_param_t parameter );
285 
286 #ifdef __cplusplus
287 }
288 #endif
289 
-
290 #endif // LR1110_CRYPTO_ENGINE_H
+
290 #endif // LR11XX_CRYPTO_ENGINE_H
291 
292 /* --- EOF ------------------------------------------------------------------ */
-
lr1110_status_t lr1110_crypto_set_parameter(const void *context, lr1110_crypto_status_t *status, const uint8_t param_id, const lr1110_crypto_param_t parameter)
Set a specific parameter identified by param_id in the crypto RAM.
Definition: lr1110_crypto_engine.c:414
-
lr1110_status_t lr1110_crypto_select(const void *context, const lr1110_crypto_element_t element)
Select the crypto element to be used.
Definition: lr1110_crypto_engine.c:121
-
lr1110_status_t lr1110_crypto_derive_key(const void *context, lr1110_crypto_status_t *status, const uint8_t src_key_id, const uint8_t dest_key_id, const lr1110_crypto_nonce_t nonce)
Derive a key previously set.
Definition: lr1110_crypto_engine.c:160
-
lr1110_status_t lr1110_crypto_aes_decrypt(const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
Compute an AES decryption with a key ID specified in parameter.
Definition: lr1110_crypto_engine.c:349
-
lr1110_status_t lr1110_crypto_set_key(const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const lr1110_crypto_key_t key)
Set a key in the previously selected crypto element.
Definition: lr1110_crypto_engine.c:133
-
lr1110_status_t lr1110_crypto_verify_aes_cmac(const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, const lr1110_crypto_mic_t mic)
Compute an AES-CMAC and make a comparison with a value given as parameter.
Definition: lr1110_crypto_engine.c:262
-
lr1110_status_t lr1110_crypto_compute_aes_cmac(const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, lr1110_crypto_mic_t mic)
Compute an AES-CMAC.
Definition: lr1110_crypto_engine.c:234
-
uint8_t lr1110_crypto_key_t[LR1110_CRYPTO_KEY_LENGTH]
Fixed-length array to store a crypto key.
Definition: lr1110_crypto_engine_types.h:112
-
lr1110_status_t lr1110_crypto_aes_encrypt(const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
Compute an AES encryption with a key ID specified in parameter.
Definition: lr1110_crypto_engine.c:322
-
uint8_t lr1110_crypto_mic_t[LR1110_CRYPTO_MIC_LENGTH]
Fixed-length array to store an AES CMAC.
Definition: lr1110_crypto_engine_types.h:102
-
lr1110_status_t lr1110_crypto_get_parameter(const void *context, lr1110_crypto_status_t *status, const uint8_t param_id, lr1110_crypto_param_t parameter)
Get a specific parameter identified by paramID from the crypto RAM.
Definition: lr1110_crypto_engine.c:441
-
lr1110_crypto_lorawan_version_t
The supported LoRaWAN versions.
Definition: lr1110_crypto_engine_types.h:149
-
uint8_t lr1110_crypto_param_t[LR1110_CRYPTO_PARAMETER_LENGTH]
Fixed-length array to store a crypto parameter.
Definition: lr1110_crypto_engine_types.h:122
-
lr1110_crypto_element_t
The supported crypto elements.
Definition: lr1110_crypto_engine_types.h:128
-
Type definitions for LR1110.
-
lr1110_status_t lr1110_crypto_process_join_accept(const void *context, lr1110_crypto_status_t *status, const uint8_t dec_key_id, const uint8_t ver_key_id, const lr1110_crypto_lorawan_version_t lorawan_version, const uint8_t *header, const uint8_t *data, const uint8_t length, uint8_t *data_out)
Perform the needed operations to extract the payload from a join accept message.
Definition: lr1110_crypto_engine.c:188
-
enum lr1110_status_e lr1110_status_t
LR1110 status.
-
lr1110_status_t lr1110_crypto_store_to_flash(const void *context, lr1110_crypto_status_t *status)
Store the crypto data (keys, parameters) from RAM into the flash memory.
Definition: lr1110_crypto_engine.c:376
-
lr1110_status_t lr1110_crypto_aes_encrypt_01(const void *context, lr1110_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
Compute an AES encryption with a key ID specified in parameter.
Definition: lr1110_crypto_engine.c:295
-
uint8_t lr1110_crypto_nonce_t[LR1110_CRYPTO_NONCE_LENGTH]
Fixed-length array to store a crypto nonce.
Definition: lr1110_crypto_engine_types.h:117
-
lr1110_status_t lr1110_crypto_restore_from_flash(const void *context, lr1110_crypto_status_t *status)
Restore the crypto data (keys, parameters) from flash memory into RAM.
Definition: lr1110_crypto_engine.c:395
-
Cryptographic engine driver types for LR1110.
-
lr1110_crypto_status_t
The status returned by the crypto API.
Definition: lr1110_crypto_engine_types.h:137
+
lr11xx_crypto_lorawan_version_t
The supported LoRaWAN versions.
Definition: lr11xx_crypto_engine_types.h:149
+
uint8_t lr11xx_crypto_mic_t[LR11XX_CRYPTO_MIC_LENGTH]
Fixed-length array to store an AES CMAC.
Definition: lr11xx_crypto_engine_types.h:102
+
lr11xx_status_t lr11xx_crypto_select(const void *context, const lr11xx_crypto_element_t element)
Select the crypto element to be used.
Definition: lr11xx_crypto_engine.c:121
+
Cryptographic engine driver types for LR11XX.
+
lr11xx_status_t lr11xx_crypto_compute_aes_cmac(const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, lr11xx_crypto_mic_t mic)
Compute an AES-CMAC.
Definition: lr11xx_crypto_engine.c:234
+
uint8_t lr11xx_crypto_nonce_t[LR11XX_CRYPTO_NONCE_LENGTH]
Fixed-length array to store a crypto nonce.
Definition: lr11xx_crypto_engine_types.h:117
+
Type definitions for LR11XX.
+
lr11xx_status_t lr11xx_crypto_set_parameter(const void *context, lr11xx_crypto_status_t *status, const uint8_t param_id, const lr11xx_crypto_param_t parameter)
Set a specific parameter identified by param_id in the crypto RAM.
Definition: lr11xx_crypto_engine.c:414
+
uint8_t lr11xx_crypto_key_t[LR11XX_CRYPTO_KEY_LENGTH]
Fixed-length array to store a crypto key.
Definition: lr11xx_crypto_engine_types.h:112
+
lr11xx_status_t lr11xx_crypto_process_join_accept(const void *context, lr11xx_crypto_status_t *status, const uint8_t dec_key_id, const uint8_t ver_key_id, const lr11xx_crypto_lorawan_version_t lorawan_version, const uint8_t *header, const uint8_t *data, const uint8_t length, uint8_t *data_out)
Perform the needed operations to extract the payload from a join accept message.
Definition: lr11xx_crypto_engine.c:188
+
lr11xx_status_t lr11xx_crypto_restore_from_flash(const void *context, lr11xx_crypto_status_t *status)
Restore the crypto data (keys, parameters) from flash memory into RAM.
Definition: lr11xx_crypto_engine.c:395
+
lr11xx_crypto_element_t
The supported crypto elements.
Definition: lr11xx_crypto_engine_types.h:128
+
uint8_t lr11xx_crypto_param_t[LR11XX_CRYPTO_PARAMETER_LENGTH]
Fixed-length array to store a crypto parameter.
Definition: lr11xx_crypto_engine_types.h:122
+
lr11xx_status_t lr11xx_crypto_aes_decrypt(const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
Compute an AES decryption with a key ID specified in parameter.
Definition: lr11xx_crypto_engine.c:349
+
lr11xx_crypto_status_t
The status returned by the crypto API.
Definition: lr11xx_crypto_engine_types.h:137
+
lr11xx_status_t lr11xx_crypto_get_parameter(const void *context, lr11xx_crypto_status_t *status, const uint8_t param_id, lr11xx_crypto_param_t parameter)
Get a specific parameter identified by paramID from the crypto RAM.
Definition: lr11xx_crypto_engine.c:441
+
lr11xx_status_t lr11xx_crypto_aes_encrypt(const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
Compute an AES encryption with a key ID specified in parameter.
Definition: lr11xx_crypto_engine.c:322
+
lr11xx_status_t lr11xx_crypto_derive_key(const void *context, lr11xx_crypto_status_t *status, const uint8_t src_key_id, const uint8_t dest_key_id, const lr11xx_crypto_nonce_t nonce)
Derive a key previously set.
Definition: lr11xx_crypto_engine.c:160
+
enum lr11xx_status_e lr11xx_status_t
LR11XX status.
+
lr11xx_status_t lr11xx_crypto_verify_aes_cmac(const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, const lr11xx_crypto_mic_t mic)
Compute an AES-CMAC and make a comparison with a value given as parameter.
Definition: lr11xx_crypto_engine.c:262
+
lr11xx_status_t lr11xx_crypto_aes_encrypt_01(const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const uint8_t *data, const uint16_t length, uint8_t *result)
Compute an AES encryption with a key ID specified in parameter.
Definition: lr11xx_crypto_engine.c:295
+
lr11xx_status_t lr11xx_crypto_store_to_flash(const void *context, lr11xx_crypto_status_t *status)
Store the crypto data (keys, parameters) from RAM into the flash memory.
Definition: lr11xx_crypto_engine.c:376
+
lr11xx_status_t lr11xx_crypto_set_key(const void *context, lr11xx_crypto_status_t *status, const uint8_t key_id, const lr11xx_crypto_key_t key)
Set a key in the previously selected crypto element.
Definition: lr11xx_crypto_engine.c:133
[in]contextChip implementation context
-
lr1110_driver +
lr11xx_driver
+ + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
lr11xx_crypto_engine_types.h File Reference
+
+
+ +

Cryptographic engine driver types for LR11XX. +More...

+
#include <stdint.h>
+
+Include dependency graph for lr11xx_crypto_engine_types.h:
+
+
+ + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define LR11XX_CRYPTO_MIC_LENGTH   0x04
 Length in bytes of a MIC.
 
+#define LR11XX_CRYPTO_AES_CMAC_LENGTH   0x10
 Length in bytes of a AES CMAC.
 
+#define LR11XX_CRYPTO_DATA_MAX_LENGTH   0x0100
 Maximum length in bytes of data to be encrypted / decrypted.
 
+#define LR11XX_CRYPTO_KEY_LENGTH   0x10
 Length in bytes of a key for AES computation.
 
+#define LR11XX_CRYPTO_NONCE_LENGTH   0x10
 Length in bytes of a nonce.
 
+#define LR11XX_CRYPTO_PARAMETER_LENGTH   0x04
 Length in bytes of a crypto parameter.
 
+#define LR11XX_CRYPTO_STATUS_LENGTH   0x01
 Length in bytes of the status returned by an API.
 
+ + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef uint8_t lr11xx_crypto_mic_t[LR11XX_CRYPTO_MIC_LENGTH]
 Fixed-length array to store an AES CMAC.
 
+typedef uint8_t lr11xx_crypto_aes_cmac_t[LR11XX_CRYPTO_AES_CMAC_LENGTH]
 Fixed-length array to store an AES CMAC.
 
+typedef uint8_t lr11xx_crypto_key_t[LR11XX_CRYPTO_KEY_LENGTH]
 Fixed-length array to store a crypto key.
 
+typedef uint8_t lr11xx_crypto_nonce_t[LR11XX_CRYPTO_NONCE_LENGTH]
 Fixed-length array to store a crypto nonce.
 
+typedef uint8_t lr11xx_crypto_param_t[LR11XX_CRYPTO_PARAMETER_LENGTH]
 Fixed-length array to store a crypto parameter.
 
+typedef enum lr11xx_crypto_keys_idx_e lr11xx_crypto_keys_idx_t
 Crypto keys table index definition.
 
+ + + + + + + + + + + + + +

+Enumerations

enum  lr11xx_crypto_element_t { LR11XX_CRYPTO_ELEMENT_CRYPTO_ENGINE = 0x00, +LR11XX_CRYPTO_ELEMENT_SECURE_ELEMENT = 0x01 + }
 The supported crypto elements. More...
 
enum  lr11xx_crypto_status_t {
+  LR11XX_CRYPTO_STATUS_SUCCESS = 0x00, +LR11XX_CRYPTO_STATUS_ERROR_FAIL_CMAC = 0x01, +LR11XX_CRYPTO_STATUS_ERROR_INVALID_KEY_ID = 0x03, +LR11XX_CRYPTO_STATUS_ERROR_BUFFER_SIZE = 0x05, +
+  LR11XX_CRYPTO_STATUS_ERROR = 0x06 +
+ }
 The status returned by the crypto API. More...
 
enum  lr11xx_crypto_lorawan_version_t { LR11XX_CRYPTO_LORAWAN_VERSION_1_0_X = 0x00, +LR11XX_CRYPTO_LORAWAN_VERSION_1_1_X = 0x01 + }
 The supported LoRaWAN versions.
 
enum  lr11xx_crypto_keys_idx_e {
+  LR11XX_CRYPTO_KEYS_IDX_MOTHER_KEY = 1, +LR11XX_CRYPTO_KEYS_IDX_NWK_KEY = 2, +LR11XX_CRYPTO_KEYS_IDX_APP_KEY = 3, +LR11XX_CRYPTO_KEYS_IDX_J_S_ENC_KEY = 4, +
+  LR11XX_CRYPTO_KEYS_IDX_J_S_INT_KEY = 5, +LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_0 = 6, +LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_1 = 7, +LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_2 = 8, +
+  LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_3 = 9, +LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_4 = 10, +LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_5 = 11, +LR11XX_CRYPTO_KEYS_IDX_APP_S_KEY = 12, +
+  LR11XX_CRYPTO_KEYS_IDX_F_NWK_S_INT_KEY = 13, +LR11XX_CRYPTO_KEYS_IDX_S_NWK_S_INT_KEY = 14, +LR11XX_CRYPTO_KEYS_IDX_NWK_S_ENC_KEY = 15, +LR11XX_CRYPTO_KEYS_IDX_RFU_0 = 16, +
+  LR11XX_CRYPTO_KEYS_IDX_RFU_1 = 17, +LR11XX_CRYPTO_KEYS_IDX_MC_APP_S_KEY_0 = 18, +LR11XX_CRYPTO_KEYS_IDX_MC_APP_S_KEY_1 = 19, +LR11XX_CRYPTO_KEYS_IDX_MC_APP_S_KEY_2 = 20, +
+  LR11XX_CRYPTO_KEYS_IDX_MC_APP_S_KEY_3 = 21, +LR11XX_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_0 = 22, +LR11XX_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_1 = 23, +LR11XX_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_2 = 24, +
+  LR11XX_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_3 = 25, +LR11XX_CRYPTO_KEYS_IDX_GP0 = 26, +LR11XX_CRYPTO_KEYS_IDX_GP1 = 27 +
+ }
 Crypto keys table index definition.
 
+

Detailed Description

+

Cryptographic engine driver types for LR11XX.

+

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

+

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    +
  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • +
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • +
  • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  • +
+

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+

Enumeration Type Documentation

+ +

◆ lr11xx_crypto_element_t

+ +
+
+ + + + +
enum lr11xx_crypto_element_t
+
+ +

The supported crypto elements.

+ + + +
Enumerator
LR11XX_CRYPTO_ELEMENT_CRYPTO_ENGINE 

Internal crypto engine (default)

+
LR11XX_CRYPTO_ELEMENT_SECURE_ELEMENT 

External secure element.

+
+ +
+
+ +

◆ lr11xx_crypto_status_t

+ +
+
+ + + + +
enum lr11xx_crypto_status_t
+
+ +

The status returned by the crypto API.

+ + + + + + +
Enumerator
LR11XX_CRYPTO_STATUS_SUCCESS 

The API command was successful.

+
LR11XX_CRYPTO_STATUS_ERROR_FAIL_CMAC 

AES-CMAC invalid or comparison failed.

+
LR11XX_CRYPTO_STATUS_ERROR_INVALID_KEY_ID 

Invalid key ID (source, destination)

+
LR11XX_CRYPTO_STATUS_ERROR_BUFFER_SIZE 

Invalid data buffer size.

+
LR11XX_CRYPTO_STATUS_ERROR 

Other error.

+
+ +
+
+
+ + + + diff --git a/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.map new file mode 100644 index 0000000..8a1ca9f --- /dev/null +++ b/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.md5 new file mode 100644 index 0000000..61c2d5d --- /dev/null +++ b/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.md5 @@ -0,0 +1 @@ +af5b30ef175419321ec84cbcfb992167 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..cdad0b02a4fb8bbc30fdd5f3f418f14ec05b1360 GIT binary patch literal 9513 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 literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.map b/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.map new file mode 100644 index 0000000..27fdd9f --- /dev/null +++ b/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.md5 b/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.md5 new file mode 100644 index 0000000..09d0bf5 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.md5 @@ -0,0 +1 @@ +83a54764b580b007985d26026f6c4b5e \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.png b/doc/lr11xx/html/lr11xx__crypto__engine__types_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..01a546e0fd72311165540eb4f0cf334afdb216e3 GIT binary patch literal 4536 zcmchbhc{g9+QtR1h>{SA5=4rUC__wiLnK7>5<>J&)F>083!)P(dP%%SXY@XZ7QGIm zM`w^Bj6QtNd(Jv%ee3%JzBOxRui3L^?`PlpzJAwr?=W>$d1{I~6huTs)C#X;HNmzK zy#2_@z-R4dIKyS;Fnrj^rQj#jqHr3adsfj| z*9Ue}wcI-dMfn}xM?rQ@7 zSsyQW%`Y@R&(6ig?4XZBok9AN_^mNWQ?fLDHdX@5ot+e)o;VH*OUu30BxBTQoz@)6 zC#|( z0cuhwL8qsl8Ox{rY;<%l)YWO&ymznUsbx*nOY=j_qglj$G=1E^14Go+G5Y!WDJm)w z<(HOnK7Jhbw$h50g+*CenJPCom(P*p9v9bDetv!nL8g!!Y@EEjk*%%I9z1+l|6xZj zBBrdc@B#P_5-EUC&FIxJ_K{Oji8_74KRBl)FA;JofDz<;_%IN^H3@awP+$2oLCC_+ zH%k<~DKW!i(NuSyhW_~Rd@w^oUQv<4rQTq@4ze{_);%&3+w66usjc04ir<3&9s=b> zo6~WrT69OV8npOk1dv=M{*sasmX^lc?1?A72Z2O`3yVum4h;+>ktQ6_m6w-qPgg6k z3afPUa&d)x`9kx1w!S@@RRU9CNf}5+y#$V%E)EYDnfG{M7saDfx-ya@-_hMY*6ih8 zQCZnDG-TbM{3L2^0`V~8g%2a|Hq?61eoP1v5^@#Sw0|8ee+jI~d#{thZEHdW=j`x% zzPT?~DM{32g*-YsT2x$I(C@-q>TDa@e3WN5S$ceY{3SNFZK*Rtqd<#A+Bbc7_x-OE zeT?;B`r@y)KsVextAA)H`KQ3ZdiWN7S<6L3mxH9|!9T^3gux2(^IKu6mb{kRb5> z*R$EVIb%-)x?Ih$>S`gdLhOv^(eJr!--bi$KPx@yk{{!&hcaWcveYasIZ!B6>plnd zGaH*nzP`SouNQGRHEr!g&y<{Z%m$9pU`imvHz@wvJn9{vCG%uURqjWgj!L_$;nw*STv2-39G8Aj*pM48yS_N zO75rgk5)@Rl#lKh9gUlvH4ubC_l}ObdwVJTjha30$M+lqJ^bwLwLKV`nbF@8c5!jJ z6XoUQ760W+D`+5RcXuv9!8k6pOdD_SGNb1FvarmSyx%GMeR+4D6b>O z1Vs*>H^nCCLT&p6REB=7<0h*7ik!buC1M&(4dZvPWQ?FI(lnM`rmedc(}*mHWMC?m-IQ++UiVu{>=n57AV&4ko4v5@t%3~U6`Vyqhn=#RHr()buTH; z08@7N_su)QZ;ww-7Wrj}G$~DudieTE0fk%dOjqmb>o2dZb!|^ozHR)#CnO{!-VFzm zrADLC{VC9pP*q}b{3JDp_?b~v? zx{NwyMxAqW%~P|dwnOXcY!!$F$opTdSF8q7<=(t`lV<FF%oJUl4^ro?Q1=T9akCW1mjmRDEhWMr;@OR*fz zmXY*6{(@_{G$I^>e%`$}!|m@6Nsm=ptKrQdh7BE2%px0Oc{gHXW2xAr(gDp}@mOtP z$Jw7@bfpsp8315J%f>c@@;PIa^bj~XIl=BlMpCT}q;&%VhDAi=R8=K> z`b3OB1`rC*%d^gjPsz+2oUM0NP*Ld|8j9K2u<7mVL+^YW85sd4RUoZW1$+QhS3yC+ zbh6a&QKF)-JtkX+;Oy*t>-O!~)i*)cucrglJpbsXRp*g)F?dNMbE8ySAdozw?TwzyNfzzKt~`cF^m0hlmXBYx}; zii(Jc*gH5}qoi!_=?SZ}9^Akc3)*$f!g z*fRkY0p#7JrIi6DpOYCiJgokiis@5g;_b0KwLHKKAkNoXTC$*{K$8Ie13LDfpX|f$ zia6|V>c^n;yqe%>b1SQfVm`4450(-SoB0^sm~x5+Zl%`74kkYd1l*{!8F}#M&mRFO z)b7wRtFqFyGAmIrx9g;@xA&iY<5x$A7fQ6a(S+61CQNG4yM;Ta!^ZYE95>v&|EydC zJa6ynBD;F^YDu--cL&tx_|l@xq>zb<8$7r>N+^kBEra+uOThb67wh{9MM+ zkQI0j_EHysymkN3$PnLWAviiZima`jEUz8FZ;S+Dv9{dY+~Wb0<5IJ3CRewIbY!;qhE*H<_4v7TZJ6GQymJ5OY0Ss6$UA6BJYH#FoTwJaJrM;OQyO zz;E<75HaEGC`XH%N#X-9(Od(38MNy-8hvFbD|p^}U*#qpUA^C>6j&2b%M;Io4f-rJ zGuCfvVwM5FITm8t{<+*?rshrcjaqG(N{mXN4s5;wJA(e&^ll7cl|>F^4>ZoUwF76z zl$*!)t=84ozdMf-fMc})o5-oDS66!CJ32cH03?HhW0R8PpFJZ2VkA|s{o#8sBG0Rf z^uG)9q@knB(IN29q|S_E(M1Kt#TJ9q+Tnqv8}@_-3e+*jgwvCpdch@ymJD9IVw0L1Zp?I%c+uT@g1wj#m^r@%`BYHPcaiX=+>lfyXW8@ zWdbT!RrR#ExR_DIF}UZqNc>r0#3L*6UGXn6(T!36ruJwF;UIvSmC9| zv0v2NRQ52-$bjI_(H;H8tL?n;ZIMjBUlzVss3jV4x{W1^6xK5}Z-cPoW|D+JAvKYsyBEtxXDb?X4J7al7>`{5xu zg(qcw)5$ksX#5l3a}y)4l89@Cad*KlKxu75PULHAQ8(OuU_n71srlTSw5B3)Uua^i z7z*j>t(pjj0(9E!um{^OZ_)@5^YBpOht}3yh)Lv!b0ZS36~)nm!<1JDg7in5oR)S) zT}MalRcJ`qzkf&-+xL_7dUM0Sq(q30lj@1H+~|WJj90cURfrY71By(6&5(BVe1mwl2EXFt>FOLhvv}GmO8n8Ez2$s|BncR}*I&MH1` zgF^H%0*f&-H~%NR&d+CpF=2nksinG(T7`m=QfTnLO?I3=Fj#FFnSl8teqLU!x4OFd zgPE|R!qU<=t7~h8QkUnh__~mg5NrsWugw9Yv9YoCt5>0gRaIJW!YMp4FE5Wm9gM2L z8Z@Ks!u0UK=L&I`6Z%dCV5-Rj?))0&d#;P`WH8RZMG;(xLK$rdr;ZARNL5r+Xn~Q= zbD@Pq;$G&I5E6-O9UZ+1LUeIS$=;toW@88yJ)9r7&467mTwDYxf{B4sEG;j?9j(Do z8hJ;E0t_Ma5QA55-!i%5=6wqEX3VY^(3nn|wEAD!o~ezo?EAX7x!D5>3bN<-iL-@z z*AP&{r&xZF2S(~M7;sMJ<|NPHaJ&+Fn%?zQFnJ^W>pWEsC^R0Vf@K_TsLpvgzp#+l z=5TTI@_b!d()YYhgJF3fO+>%iM}=*eUQeDygBnb^ZQ-|h>U;^}0HVMPG{AK1L)gDz z1f=G=Im(d<^SWS-hCm=-@v6QM2ibdKy9n4rNtX^(EwI=ieQqf*G;UguRhb#y2ZrAgu!6)jUP|7_(>-wCf3!}(Xg=ed*PZV z3-3I2cwxh;;2nWm?Mu2cEf?YB6`zs8m*{(_wb%c@9v6iEt2h7ejuc#!26tlIY4ojc zVhTacKp>(Z$2LTM=xb|h8|PpQX8+;n + + + + + + +lr11xx_driver: lr11xx_driver/src/lr11xx_crypto_engine_types.h Source File + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
lr11xx_crypto_engine_types.h
+
+
+Go to the documentation of this file.
1 
+
35 #ifndef LR11XX_CRYPTO_ENGINE_TYPES_H
+
36 #define LR11XX_CRYPTO_ENGINE_TYPES_H
+
37 
+
38 #ifdef __cplusplus
+
39 extern "C" {
+
40 #endif
+
41 
+
42 /*
+
43  * -----------------------------------------------------------------------------
+
44  * --- DEPENDENCIES ------------------------------------------------------------
+
45  */
+
46 
+
47 #include <stdint.h>
+
48 
+
49 /*
+
50  * -----------------------------------------------------------------------------
+
51  * --- PUBLIC MACROS -----------------------------------------------------------
+
52  */
+
53 
+
54 /*
+
55  * -----------------------------------------------------------------------------
+
56  * --- PUBLIC CONSTANTS --------------------------------------------------------
+
57  */
+
58 
+
62 #define LR11XX_CRYPTO_MIC_LENGTH 0x04
+
63 
+
67 #define LR11XX_CRYPTO_AES_CMAC_LENGTH 0x10
+
68 
+
72 #define LR11XX_CRYPTO_DATA_MAX_LENGTH 0x0100
+
73 
+
77 #define LR11XX_CRYPTO_KEY_LENGTH 0x10
+
78 
+
82 #define LR11XX_CRYPTO_NONCE_LENGTH 0x10
+
83 
+
87 #define LR11XX_CRYPTO_PARAMETER_LENGTH 0x04
+
88 
+
92 #define LR11XX_CRYPTO_STATUS_LENGTH 0x01
+
93 
+
94 /*
+
95  * -----------------------------------------------------------------------------
+
96  * --- PUBLIC TYPES ------------------------------------------------------------
+
97  */
+
98 
+ +
103 
+ +
108 
+ +
113 
+ +
118 
+ +
123 
+
127 typedef enum
+
128 {
+ + + +
132 
+
136 typedef enum
+
137 {
+ + + + + + +
144 
+
148 typedef enum
+
149 {
+
150  LR11XX_CRYPTO_LORAWAN_VERSION_1_0_X = 0x00,
+
151  LR11XX_CRYPTO_LORAWAN_VERSION_1_1_X = 0x01,
+ +
153 
+ +
158 {
+
159  LR11XX_CRYPTO_KEYS_IDX_MOTHER_KEY = 1,
+
160  LR11XX_CRYPTO_KEYS_IDX_NWK_KEY = 2,
+
161  LR11XX_CRYPTO_KEYS_IDX_APP_KEY = 3,
+
162  LR11XX_CRYPTO_KEYS_IDX_J_S_ENC_KEY = 4,
+
163  LR11XX_CRYPTO_KEYS_IDX_J_S_INT_KEY = 5,
+
164  LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_0 = 6,
+
165  LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_1 = 7,
+
166  LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_2 = 8,
+
167  LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_3 = 9,
+
168  LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_4 = 10,
+
169  LR11XX_CRYPTO_KEYS_IDX_GP_KE_KEY_5 = 11,
+
170  LR11XX_CRYPTO_KEYS_IDX_APP_S_KEY = 12,
+
171  LR11XX_CRYPTO_KEYS_IDX_F_NWK_S_INT_KEY = 13,
+
172  LR11XX_CRYPTO_KEYS_IDX_S_NWK_S_INT_KEY = 14,
+
173  LR11XX_CRYPTO_KEYS_IDX_NWK_S_ENC_KEY = 15,
+
174  LR11XX_CRYPTO_KEYS_IDX_RFU_0 = 16,
+
175  LR11XX_CRYPTO_KEYS_IDX_RFU_1 = 17,
+
176  LR11XX_CRYPTO_KEYS_IDX_MC_APP_S_KEY_0 = 18,
+
177  LR11XX_CRYPTO_KEYS_IDX_MC_APP_S_KEY_1 = 19,
+
178  LR11XX_CRYPTO_KEYS_IDX_MC_APP_S_KEY_2 = 20,
+
179  LR11XX_CRYPTO_KEYS_IDX_MC_APP_S_KEY_3 = 21,
+
180  LR11XX_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_0 = 22,
+
181  LR11XX_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_1 = 23,
+
182  LR11XX_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_2 = 24,
+
183  LR11XX_CRYPTO_KEYS_IDX_MC_NWK_S_KEY_3 = 25,
+
184  LR11XX_CRYPTO_KEYS_IDX_GP0 = 26,
+
185  LR11XX_CRYPTO_KEYS_IDX_GP1 = 27,
+ +
187 
+
188 /*
+
189  * -----------------------------------------------------------------------------
+
190  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
+
191  */
+
192 
+
193 #ifdef __cplusplus
+
194 }
+
195 #endif
+
196 
+
197 #endif // LR11XX_CRYPTO_ENGINE_TYPES_H
+
198 
+
199 /* --- EOF ------------------------------------------------------------------ */
+
+
lr11xx_crypto_lorawan_version_t
The supported LoRaWAN versions.
Definition: lr11xx_crypto_engine_types.h:149
+
uint8_t lr11xx_crypto_mic_t[LR11XX_CRYPTO_MIC_LENGTH]
Fixed-length array to store an AES CMAC.
Definition: lr11xx_crypto_engine_types.h:102
+
@ LR11XX_CRYPTO_STATUS_ERROR_INVALID_KEY_ID
Invalid key ID (source, destination)
Definition: lr11xx_crypto_engine_types.h:140
+
uint8_t lr11xx_crypto_aes_cmac_t[LR11XX_CRYPTO_AES_CMAC_LENGTH]
Fixed-length array to store an AES CMAC.
Definition: lr11xx_crypto_engine_types.h:107
+
@ LR11XX_CRYPTO_STATUS_ERROR
Other error.
Definition: lr11xx_crypto_engine_types.h:142
+
@ LR11XX_CRYPTO_STATUS_ERROR_FAIL_CMAC
AES-CMAC invalid or comparison failed.
Definition: lr11xx_crypto_engine_types.h:139
+
uint8_t lr11xx_crypto_nonce_t[LR11XX_CRYPTO_NONCE_LENGTH]
Fixed-length array to store a crypto nonce.
Definition: lr11xx_crypto_engine_types.h:117
+
uint8_t lr11xx_crypto_key_t[LR11XX_CRYPTO_KEY_LENGTH]
Fixed-length array to store a crypto key.
Definition: lr11xx_crypto_engine_types.h:112
+
enum lr11xx_crypto_keys_idx_e lr11xx_crypto_keys_idx_t
Crypto keys table index definition.
+
@ LR11XX_CRYPTO_ELEMENT_SECURE_ELEMENT
External secure element.
Definition: lr11xx_crypto_engine_types.h:130
+
lr11xx_crypto_element_t
The supported crypto elements.
Definition: lr11xx_crypto_engine_types.h:128
+
uint8_t lr11xx_crypto_param_t[LR11XX_CRYPTO_PARAMETER_LENGTH]
Fixed-length array to store a crypto parameter.
Definition: lr11xx_crypto_engine_types.h:122
+
#define LR11XX_CRYPTO_NONCE_LENGTH
Length in bytes of a nonce.
Definition: lr11xx_crypto_engine_types.h:82
+
#define LR11XX_CRYPTO_KEY_LENGTH
Length in bytes of a key for AES computation.
Definition: lr11xx_crypto_engine_types.h:77
+
lr11xx_crypto_status_t
The status returned by the crypto API.
Definition: lr11xx_crypto_engine_types.h:137
+
@ LR11XX_CRYPTO_STATUS_ERROR_BUFFER_SIZE
Invalid data buffer size.
Definition: lr11xx_crypto_engine_types.h:141
+
@ LR11XX_CRYPTO_STATUS_SUCCESS
The API command was successful.
Definition: lr11xx_crypto_engine_types.h:138
+
#define LR11XX_CRYPTO_MIC_LENGTH
Length in bytes of a MIC.
Definition: lr11xx_crypto_engine_types.h:62
+
#define LR11XX_CRYPTO_PARAMETER_LENGTH
Length in bytes of a crypto parameter.
Definition: lr11xx_crypto_engine_types.h:87
+
lr11xx_crypto_keys_idx_e
Crypto keys table index definition.
Definition: lr11xx_crypto_engine_types.h:158
+
#define LR11XX_CRYPTO_AES_CMAC_LENGTH
Length in bytes of a AES CMAC.
Definition: lr11xx_crypto_engine_types.h:67
+
@ LR11XX_CRYPTO_ELEMENT_CRYPTO_ENGINE
Internal crypto engine (default)
Definition: lr11xx_crypto_engine_types.h:129
+ + + + diff --git a/doc/lr1110/html/lr1110__driver__version_8c.html b/doc/lr11xx/html/lr11xx__driver__version_8c.html similarity index 79% rename from doc/lr1110/html/lr1110__driver__version_8c.html rename to doc/lr11xx/html/lr11xx__driver__version_8c.html index c68cf89..82b8ab5 100644 --- a/doc/lr1110/html/lr1110__driver__version_8c.html +++ b/doc/lr11xx/html/lr11xx__driver__version_8c.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_driver_version.c File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_driver_version.c File Reference @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -61,7 +61,7 @@
@@ -69,20 +69,20 @@ Macros | Functions
-
lr1110_driver_version.c File Reference
+
lr11xx_driver_version.c File Reference
-

Placeholder to keep the version of LR1110 driver. +

Placeholder to keep the version of LR11XX driver. More...

-
#include "lr1110_driver_version.h"
+
-Include dependency graph for lr1110_driver_version.c:
+Include dependency graph for lr11xx_driver_version.c:
-
- - - +
+ + +
@@ -94,18 +94,18 @@ - - + +
#define STR(x)   STR_HELPER( x )
 
-#define LR1110_DRIVER_VERSION_FULL    "v" STR( LR1110_DRIVER_VERSION_MAJOR ) "." STR( LR1110_DRIVER_VERSION_MINOR ) "." STR( LR1110_DRIVER_VERSION_PATCH )
 
+#define LR11XX_DRIVER_VERSION_FULL    "v" STR( LR11XX_DRIVER_VERSION_MAJOR ) "." STR( LR11XX_DRIVER_VERSION_MINOR ) "." STR( LR11XX_DRIVER_VERSION_PATCH )
 
- - + +

Functions

-const char * lr1110_driver_version_get_version_string (void)
 
+const char * lr11xx_driver_version_get_version_string (void)
 

Detailed Description

-

Placeholder to keep the version of LR1110 driver.

+

Placeholder to keep the version of LR11XX driver.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • diff --git a/doc/lr11xx/html/lr11xx__driver__version_8c__incl.map b/doc/lr11xx/html/lr11xx__driver__version_8c__incl.map new file mode 100644 index 0000000..8593452 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__driver__version_8c__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/doc/lr11xx/html/lr11xx__driver__version_8c__incl.md5 b/doc/lr11xx/html/lr11xx__driver__version_8c__incl.md5 new file mode 100644 index 0000000..71c0c12 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__driver__version_8c__incl.md5 @@ -0,0 +1 @@ +52d7bec33ac86c0c3d18693eb13252a6 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__driver__version_8c__incl.png b/doc/lr11xx/html/lr11xx__driver__version_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..cbfe83d150af707966a7a75048c7306d09e52f3d GIT binary patch literal 4721 zcmchbg;!KjyT%731!O=`6lsuB1cnqDDJkh3q@=qfC8QaU5(Md#k`9R>h8S7|kq&_& zr9&ElySZz9_ujwYt~oPjt#fA1?6ddtKF{wx;i}5AWH%q&gg_u<@^aGZVBZMdenbS| zvu>@r2kZz;Udc*BuC8BM%>|zz5XwjL(h{1UX83Tp=ToL2;>5qVuBoQ>_2xo76-6Ftp;V1S}v?14R; z6gLx;SVeZ|X}2Nr6D%~xJ{J3g$NB?t=d5WgFL04iNpZDiBTAiNSQfimws8R>C^X%K z?1B3SfrBZ!p8oz09V6eoaFnWMjJ$$Eoam!_M>#o6ENpC;(NV1@pK=N_SYqXN{|qsQ z*uOP)yh}xuS9Gcx-#63r?zWN7UP!xOgXRCZq!-I(v36~O=tW?T??i&lLak@^0N z1Ag_-#b>vTkaMFE=6dmOv(mxZOJoqvYD2+Y=%8A&As zi?Op4nN(668yoNL@3%+M2+e+N>FZNCIXhceA1&^$tgja?(W|?~mt2B58aSY*qr2tk z=!i!^urOAtM_X2~EV%OT^e+PK^R9S@gNrLjm0kMXI}u1$b~X+nIb8=h$4D6trK5|! z_tfy4C;`OG%rhzv#abCZEQGmzI@rcJl_fW?pv41;o{N_ZG*5*6DQQnt!Yt8T3RxAX3TJb$`>@6ZfIzTwv0_gB-uKZ*OcHEJv_3h={YGq z{2}Dy=g$OeY-|W!T^xw}_Dr~tJ78YiB`jmXU+^9Q@f;oPGmx&3t+_1U5%%Jg&gF|$xkRuZp7l}r` zqV;GUUxO=|sFbP)9zg?2D`aAv+Vwo zg_4+*jI3?-Z?fqP!dvm8lZOELXxjBBaV(715>LGvar|Xy+-ja#FvNW`O@ot|5OhT>Q zWMHXY9TOZ*2WC9oLC0dgHQ;0yLtg23^TjFXr)@dG#4RBcmW$d?@S$fmsenXTp8& z93Adrr4R@NkBU=zTG|^ElfWOTLYVGuLV0=l3AC^1+0j<9E1ZIYqN2JQ1AY&MLjAjA z=rNO%x@9{9zgBD~?x)pea(_%p3OoI~$}A?gV{lWyaFF!d%Lj{zCD* z6zop{iB)lbzhZ(tOmnhMP(u&ppC6x?$jrbXZk&ol$`;IV>ePK=Q&~5gn<^Pc{_gAh z;Lytsd3Io<=skgmd*x9-!GyK^VF_Y)g48yjH^{fn+pGMbNRX{5j$J-xjbf$yEH6=XVX zPVlaH_x1HvIAJBzL|h28wY9;d`Xe59rHgu~>gW*4%E|_ZgtP%+tx-#6t73h$1PtBW z1mfc2c8}-$Fl}u(jEszmR7*u##Yu;_;^5T6;^JO6y&nYfNI5M`z;>*4WF&rVuCo(g zL`0NIrO}(y1p^OjLM|t@9H}?-U@1^^g#Y9Jk zqS0{WOn4Nns5`@xCraCCBO{uRjnEGhxeek-u#xv+st80FFv*pqoVb~|ILgiGI`Z)F zaIokSz{!h+xTa{NMi)hdh3A1OgoTB*#=N);o1dR|zv5#DQmUz`fkt!+dmXTYA~7*F z)k}9-?xVUkGY$@p-Q8VrJG+t`Axj9Pva-^1e~H+AYbvDLa?oU{C$^`rPyHEM@F%K5 zC~>I_B#;lB9(YX02P&?m0b6brElrZ&RV?=)8gbM5gTM6S8l4wqfP-LqdWhQE+SoZb zthI`VW~qzlV!9W56aEnp5^_Ck0cA)|_gox-pziKHko*s)`dC1orer zCMqx>0LNl5BWitpU3=?C%6BBFGEzM~y`-chaTZGJ3mUCwbx~`*aWfMW2%n=#%btM& z?bmVB+Q6kW{ALpwy>+Kgx=oXC^#o4XY1nL>(O@p@%mRRl=)rg zW#1|N%E_vts^zpPF8VR;XZMaiv!Z_7TQzv~)^QG9TETJ*N{5d18ORoxw62UHHsDsV^k14m4j% zSyAhBSV`F2~Fbh(U5lE2lnwpyP^KC&%{MM9z3uj}Ww)~4b-6%ckL)Ih@gwXy3 z1>hDlJ{mW-QfvPGv+;6Yg6B^2G05@Rtr~VPT#IiViR)Tc;ZI*mkYr}9o5+`O4=#Y%P#&rrqi1{FSB%0Z!V0gBZM-<`q~;{@CjN)R{`-pm7tH>j4_vO2 zQF-m<5L8>zcTCqQ^;gz8=2_YKkZ5RNv{#>rPD?&E%-QCsl8+m^KyJ)-{HmfqJA_Fq zD-%z_b4SL|4trFD5)x9QA_Ceu)6`Udk24{3yL2mWlQn)I#>-FQ@1=WACu=O4_&uQI3Qu70L%P+(XzQF`+Dt|> ztK$yudMateP(^V--7&%mweKMi(;ZN}A$PFjSQ4OHNlw=IASwAUr16~n&sq(-(VVY! z(6K4hq7%-)X|u2@q`Vz&lL>$Bb1+2sAcf-mXGL*163I+Tdd6e4vF6O{lFu9&MaD18 z<(_SCcnZ=|ctNDj1l_y^tE-!YEhD z#Dw?)It893Hk#g*keC<*C;^apO2$oFVG$AR$X5-{jZAn|OVI4mjadoH64>0^+hYixU+9eZZBtO_kzG|GDk8!N zFww!mfk!}~6FB{q@}70gO9Ia%kCh8wtYMR<#Qy$%&&l2* zF@z~rE*>-$DaA!aVZexc`}$1IW@_zeC~k)IkE7A(j^W`?ORKA&Qc@mNy}$5U*xXdi zRkubS>*^IzKNS*6JXjk>&Y)b7{QUeM0TNUhV+itFYR4x=M-x2Xy^942w*T+cWnp_; zxv8ls>8R4Qo05ix=Izd`n7WRRtci(9m^cFiU$P=LrNIl$WVK4GnGh=W=#dN-^_xtT zG1zVnogPWe8<>=m5(jYH17#2k!V%ZM$#XAI1ca9Ws-n(7Wm;e`RVXGnG?Y@3D7M$E zV{Ghm+B3HgP)Rv8H3}SY0B}iv^VB(bVKC;&$w`H7D;1TP#LP^U$f&5~quSSH$7{m{ zcn}VD_BT`Xa349yM?eSpS7P2rJX@ek0B5+lwI}>^26b|qD~eqQ9ZXG!7kxp%eF6M8 zFfafh*T6w17qDbkR~M8Bub=lig8n{xJs8LO%IWODy6N3t0wIT)YnXsvo|pnS=Y_oa znI+Nx$%!ro>34aGoOE}!Ak~Vtw6sKC$MIrU6!nYu&p&e;d;m=y`@_b%>yzFL{5w{ICS@H3*&(9mmoMW1hrK1Njdqu$ik*3Q30d7kdG5;2xK zz~S(8I=~yJCntbb$N(0DPND;>xtfvDQ=y}ej8cG%gI5PLVckGcNrLvd8s*j99UWO< zyll#8t;sM;=-s=aX=!Q7bzG*7jxk>~3QT^a2z-=d=@}f9_4M=vfWG{;(rSq5nq>i_ zAR1gbhAm7@gLJDc7!!JkMlx@w*B?37pi@kUt1#%5cmK15enM(_SUR( zKjhS>MN~sW;NU7|c=$Hx#JXpjy>HhTK!~56L!v- zwp9}d$y^WxZ7U>;6&*i-1+BcCTq_XOlpyQch+t^WEIwEJ<>n;J;?>B}U25vWwKb01 z2$wPUDI@=1H$rdG-o$SdD9yh0nw~7hX4Qo literal 0 HcmV?d00001 diff --git a/doc/lr1110/html/lr1110__driver__version_8h.html b/doc/lr11xx/html/lr11xx__driver__version_8h.html similarity index 70% rename from doc/lr1110/html/lr1110__driver__version_8h.html rename to doc/lr11xx/html/lr11xx__driver__version_8h.html index 79dd66a..a6f6a0a 100644 --- a/doc/lr1110/html/lr1110__driver__version_8h.html +++ b/doc/lr11xx/html/lr11xx__driver__version_8h.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_driver_version.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_driver_version.h File Reference @@ -21,7 +21,7 @@ -
    lr1110_driver +
    lr11xx_driver
    @@ -61,7 +61,7 @@
@@ -69,47 +69,47 @@ Macros | Functions
-
lr1110_driver_version.h File Reference
+
lr11xx_driver_version.h File Reference
-

Placeholder to keep the version of LR1110 driver. +

Placeholder to keep the version of LR11XX driver. More...

This graph shows which files directly or indirectly include this file:
-
- - - +
+ + +
-

Go to the source code of this file.

+

Go to the source code of this file.

- - - - - - - - - + + + + + + + + +

Macros

-#define LR1110_DRIVER_VERSION_MAJOR   7
 
-#define LR1110_DRIVER_VERSION_MINOR   0
 
-#define LR1110_DRIVER_VERSION_PATCH   0
 
#define LR1110_DRIVER_VERSION_CHECK(x, y, z)
 Compare version information with current ones. More...
 
+#define LR11XX_DRIVER_VERSION_MAJOR   2
 
+#define LR11XX_DRIVER_VERSION_MINOR   1
 
+#define LR11XX_DRIVER_VERSION_PATCH   1
 
#define LR11XX_DRIVER_VERSION_CHECK(x, y, z)
 Compare version information with current ones. More...
 
- - + +

Functions

-const char * lr1110_driver_version_get_version_string (void)
 
+const char * lr11xx_driver_version_get_version_string (void)
 

Detailed Description

-

Placeholder to keep the version of LR1110 driver.

+

Placeholder to keep the version of LR11XX driver.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -118,14 +118,14 @@

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Macro Definition Documentation

- -

◆ LR1110_DRIVER_VERSION_CHECK

+ +

◆ LR11XX_DRIVER_VERSION_CHECK

- + @@ -149,9 +149,9 @@

-Value:
( x == LR1110_DRIVER_VERSION_MAJOR && \
-
( y < LR1110_DRIVER_VERSION_MINOR || \
-
( y == LR1110_DRIVER_VERSION_MINOR && z <= LR1110_DRIVER_VERSION_PATCH ) ) )
+Value:
( x == LR11XX_DRIVER_VERSION_MAJOR && \
+
( y < LR11XX_DRIVER_VERSION_MINOR || \
+
( y == LR11XX_DRIVER_VERSION_MINOR && z <= LR11XX_DRIVER_VERSION_PATCH ) ) )

Compare version information with current ones.

This macro expands to true boolean value if the version information provided in argument is compatible or retro-compatible with the version of this code base

diff --git a/doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.map new file mode 100644 index 0000000..e8bbb8e --- /dev/null +++ b/doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.md5 new file mode 100644 index 0000000..ffe6635 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.md5 @@ -0,0 +1 @@ +8c90effb71f7e47d40dece149b9a2c9c \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__driver__version_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..8adc9ecbbc0271d2b4e59592652204b73a239b00 GIT binary patch literal 5322 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 D8|z1_ literal 0 HcmV?d00001 diff --git a/doc/lr1110/html/lr1110__driver__version_8h_source.html b/doc/lr11xx/html/lr11xx__driver__version_8h_source.html similarity index 86% rename from doc/lr1110/html/lr1110__driver__version_8h_source.html rename to doc/lr11xx/html/lr11xx__driver__version_8h_source.html index 9517e27..4cd1430 100644 --- a/doc/lr1110/html/lr1110__driver__version_8h_source.html +++ b/doc/lr11xx/html/lr11xx__driver__version_8h_source.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_driver_version.h Source File +lr11xx_driver: lr11xx_driver/src/lr11xx_driver_version.h Source File @@ -21,7 +21,7 @@

@@ -61,17 +61,17 @@
-
lr1110_driver_version.h
+
lr11xx_driver_version.h
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_DRIVER_VERSION_H
-
36 #define LR1110_DRIVER_VERSION_H
+Go to the documentation of this file.
1 
+
35 #ifndef LR11XX_DRIVER_VERSION_H
+
36 #define LR11XX_DRIVER_VERSION_H
37 
38 #ifdef __cplusplus
39 extern "C" {
@@ -92,9 +92,9 @@
54  * --- PUBLIC CONSTANTS --------------------------------------------------------
55  */
56 
-
57 #define LR1110_DRIVER_VERSION_MAJOR 7
-
58 #define LR1110_DRIVER_VERSION_MINOR 0
-
59 #define LR1110_DRIVER_VERSION_PATCH 0
+
57 #define LR11XX_DRIVER_VERSION_MAJOR 2
+
58 #define LR11XX_DRIVER_VERSION_MINOR 1
+
59 #define LR11XX_DRIVER_VERSION_PATCH 1
60 
61 /*
62  * -----------------------------------------------------------------------------
@@ -106,18 +106,18 @@
68  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
69  */
70 
-
77 #define LR1110_DRIVER_VERSION_CHECK( x, y, z ) \
-
78  ( x == LR1110_DRIVER_VERSION_MAJOR && \
-
79  ( y < LR1110_DRIVER_VERSION_MINOR || \
-
80  ( y == LR1110_DRIVER_VERSION_MINOR && z <= LR1110_DRIVER_VERSION_PATCH ) ) )
+
77 #define LR11XX_DRIVER_VERSION_CHECK( x, y, z ) \
+
78  ( x == LR11XX_DRIVER_VERSION_MAJOR && \
+
79  ( y < LR11XX_DRIVER_VERSION_MINOR || \
+
80  ( y == LR11XX_DRIVER_VERSION_MINOR && z <= LR11XX_DRIVER_VERSION_PATCH ) ) )
81 
-
82 const char* lr1110_driver_version_get_version_string( void );
+
82 const char* lr11xx_driver_version_get_version_string( void );
83 
84 #ifdef __cplusplus
85 }
86 #endif
87 
-
88 #endif // LR1110_DRIVER_VERSION_H
+
88 #endif // LR11XX_DRIVER_VERSION_H
89 
90 /* --- EOF ------------------------------------------------------------------ */
diff --git a/doc/lr1110/html/lr1110__gnss_8c.html b/doc/lr11xx/html/lr11xx__gnss_8c.html similarity index 51% rename from doc/lr1110/html/lr1110__gnss_8c.html rename to doc/lr11xx/html/lr11xx__gnss_8c.html index 2138a7b..ed5b6aa 100644 --- a/doc/lr1110/html/lr1110__gnss_8c.html +++ b/doc/lr11xx/html/lr11xx__gnss_8c.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_gnss.c File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_gnss.c File Reference @@ -21,7 +21,7 @@
@@ -61,7 +61,7 @@
@@ -70,389 +70,416 @@ Enumerations | Functions
-
lr1110_gnss.c File Reference
+
lr11xx_gnss.c File Reference
-

GNSS scan driver implementation for LR1110. +

GNSS scan driver implementation for LR11XX. More...

-
#include "lr1110_gnss.h"
-#include "lr1110_regmem.h"
-#include "lr1110_hal.h"
+
#include "lr11xx_gnss.h"
+#include "lr11xx_regmem.h"
+#include "lr11xx_system_types.h"
+#include "lr11xx_hal.h"
-Include dependency graph for lr1110_gnss.c:
+Include dependency graph for lr11xx_gnss.c:
-
- - - - - - - - - +
+ + + + + + + + + +
#define LR1110_DRIVER_VERSION_CHECK#define LR11XX_DRIVER_VERSION_CHECK (   x,
-
lr1110_driver +
lr11xx_driver
-
lr1110_driver +
lr11xx_driver
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Macros

-#define LR1110_GNSS_SET_CONSTELLATION_CMD_LENGTH   ( 2 + 1 )
 
-#define LR1110_GNSS_READ_CONSTELLATION_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_SET_ALMANAC_UPDATE_CMD_LENGTH   ( 2 + 1 )
 
-#define LR1110_GNSS_READ_ALMANAC_UPDATE_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_READ_FW_VERSION_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_SET_SCAN_MODE_CMD_LENGTH   ( 2 + 1 )
 
-#define LR1110_GNSS_SCAN_AUTONOMOUS_CMD_LENGTH   ( 2 + 7 )
 
-#define LR1110_GNSS_SCAN_ASSISTED_CMD_LENGTH   ( 2 + 7 )
 
-#define LR1110_GNSS_SCAN_GET_RES_SIZE_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_SCAN_READ_RES_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_ALMANAC_UPDATE_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_ALMANAC_READ_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_SET_ASSISTANCE_POSITION_CMD_LENGTH   ( 2 + 4 )
 
-#define LR1110_GNSS_READ_ASSISTANCE_POSITION_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_PUSH_SOLVER_MSG_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_PUSH_DM_MSG_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_GET_CONTEXT_STATUS_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_SCAN_GET_TIMINGS_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_GET_NB_SV_SATELLITES_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_GET_SV_SATELLITES_CMD_LENGTH   ( 2 )
 
-#define LR1110_GNSS_ALMANAC_READ_RBUFFER_LENGTH   ( 6 )
 
-#define LR1110_GNSS_ALMANAC_DATE_LENGTH   ( 2 )
 
-#define LR1110_GNSS_ALMANAC_UPDATE_MAX_NB_OF_BLOCKS    ( ( LR1110_CMD_LENGTH_MAX - LR1110_GNSS_ALMANAC_UPDATE_CMD_LENGTH ) / LR1110_GNSS_SINGLE_ALMANAC_WRITE_SIZE )
 
-#define LR1110_GNSS_READ_ALMANAC_TEMPBUFFER_SIZE_BYTE   ( 47 )
 
-#define LR1110_GNSS_SCAN_GET_TIMINGS_RBUFFER_LENGTH   ( 8 )
 
-#define LR1110_GNSS_MAX_DETECTED_SV   ( 32 )
 
-#define LR1110_GNSS_DETECTED_SV_SINGLE_LENGTH   ( 4 )
 
-#define LR1110_GNSS_MAX_DETECTED_SV_BUFFER_LENGTH    ( LR1110_GNSS_MAX_DETECTED_SV * LR1110_GNSS_DETECTED_SV_SINGLE_LENGTH )
 
-#define LR1110_GNSS_READ_FIRMWARE_VERSION_RBUFFER_LENGTH   ( 2 )
 
-#define LR1110_GNSS_SCALING_LATITUDE   90
 
-#define LR1110_GNSS_SCALING_LONGITUDE   180
 
-#define LR1110_GNSS_SNR_TO_CNR_OFFSET   ( 31 )
 
-#define LR1110_GNSS_SCAN_RESULT_DESTINATION_INDEX   ( 0 )
 
+#define LR11XX_GNSS_SET_CONSTELLATION_CMD_LENGTH   ( 2 + 1 )
 
+#define LR11XX_GNSS_READ_CONSTELLATION_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_SET_ALMANAC_UPDATE_CMD_LENGTH   ( 2 + 1 )
 
+#define LR11XX_GNSS_READ_ALMANAC_UPDATE_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_READ_FW_VERSION_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_SET_SCAN_MODE_CMD_LENGTH   ( 2 + 1 )
 
+#define LR11XX_GNSS_SCAN_AUTONOMOUS_CMD_LENGTH   ( 2 + 7 )
 
+#define LR11XX_GNSS_SCAN_ASSISTED_CMD_LENGTH   ( 2 + 7 )
 
+#define LR11XX_GNSS_SCAN_GET_RES_SIZE_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_SCAN_READ_RES_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_ALMANAC_UPDATE_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_ALMANAC_READ_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_SET_ASSISTANCE_POSITION_CMD_LENGTH   ( 2 + 4 )
 
+#define LR11XX_GNSS_READ_ASSISTANCE_POSITION_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_PUSH_SOLVER_MSG_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_PUSH_DM_MSG_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_GET_CONTEXT_STATUS_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_SCAN_GET_TIMINGS_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_GET_NB_SV_SATELLITES_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_GET_SV_SATELLITES_CMD_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_ALMANAC_READ_RBUFFER_LENGTH   ( 6 )
 
+#define LR11XX_GNSS_ALMANAC_DATE_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_ALMANAC_UPDATE_MAX_NB_OF_BLOCKS    ( ( LR11XX_CMD_LENGTH_MAX - LR11XX_GNSS_ALMANAC_UPDATE_CMD_LENGTH ) / LR11XX_GNSS_SINGLE_ALMANAC_WRITE_SIZE )
 
+#define LR11XX_GNSS_READ_ALMANAC_TEMPBUFFER_SIZE_BYTE   ( 47 )
 
+#define LR11XX_GNSS_SCAN_GET_TIMINGS_RBUFFER_LENGTH   ( 8 )
 
+#define LR11XX_GNSS_MAX_DETECTED_SV   ( 32 )
 
+#define LR11XX_GNSS_DETECTED_SV_SINGLE_LENGTH   ( 4 )
 
+#define LR11XX_GNSS_MAX_DETECTED_SV_BUFFER_LENGTH    ( LR11XX_GNSS_MAX_DETECTED_SV * LR11XX_GNSS_DETECTED_SV_SINGLE_LENGTH )
 
+#define LR11XX_GNSS_READ_FIRMWARE_VERSION_RBUFFER_LENGTH   ( 2 )
 
+#define LR11XX_GNSS_SCALING_LATITUDE   90
 
+#define LR11XX_GNSS_SCALING_LONGITUDE   180
 
+#define LR11XX_GNSS_SNR_TO_CNR_OFFSET   ( 31 )
 
+#define LR11XX_GNSS_SCAN_RESULT_DESTINATION_INDEX   ( 0 )
 
#define LR11XX_GNSS_RADIO_ACQUISITION_GPS_UA_DCDC   ( 15000 )
 GNSS scan power consumption. More...
 
+#define LR11XX_GNSS_RADIO_ACQUISITION_BEIDOU_UA_DCDC   ( 16500 )
 
+#define LR11XX_GNSS_COMPUTATION_UA_DCDC   ( 3100 )
 
+#define LR11XX_GNSS_RADIO_ACQUISITION_GPS_UA_LDO   ( 24500 )
 
+#define LR11XX_GNSS_RADIO_ACQUISITION_BEIDOU_UA_LDO   ( 27300 )
 
+#define LR11XX_GNSS_COMPUTATION_UA_LDO   ( 5000 )
 
+#define LR11XX_GNSS_IDLE_MODE_UA   ( 1500 )
 
- +

Enumerations

enum  {
-  LR1110_BL_GET_STATUS_OC = 0x0100, -LR1110_BL_GET_VERSION_OC = 0x0101, -LR1110_BL_ERASE_FLASH_OC = 0x8000, -LR1110_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003, +  LR11XX_BL_GET_STATUS_OC = 0x0100, +LR11XX_BL_GET_VERSION_OC = 0x0101, +LR11XX_BL_ERASE_FLASH_OC = 0x8000, +LR11XX_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003,
-  LR1110_BL_REBOOT_OC = 0x8005, -LR1110_BL_GET_PIN_OC = 0x800B, -LR1110_BL_READ_CHIP_EUI_OC = 0x800C, -LR1110_BL_READ_JOIN_EUI_OC = 0x800D, +  LR11XX_BL_REBOOT_OC = 0x8005, +LR11XX_BL_GET_PIN_OC = 0x800B, +LR11XX_BL_READ_CHIP_EUI_OC = 0x800C, +LR11XX_BL_READ_JOIN_EUI_OC = 0x800D,
-  LR1110_CRYPTO_SELECT_OC = 0x0500, -LR1110_CRYPTO_SET_KEY_OC = 0x0502, -LR1110_CRYPTO_DERIVE_KEY_OC = 0x0503, -LR1110_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504, +  LR11XX_CRYPTO_SELECT_OC = 0x0500, +LR11XX_CRYPTO_SET_KEY_OC = 0x0502, +LR11XX_CRYPTO_DERIVE_KEY_OC = 0x0503, +LR11XX_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504,
-  LR1110_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, -LR1110_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, -LR1110_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, -LR1110_CRYPTO_ENCRYPT_AES_OC = 0x0508, +  LR11XX_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, +LR11XX_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, +LR11XX_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, +LR11XX_CRYPTO_ENCRYPT_AES_OC = 0x0508,
-  LR1110_CRYPTO_DECRYPT_AES_OC = 0x0509, -LR1110_CRYPTO_STORE_TO_FLASH_OC = 0x050A, -LR1110_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, -LR1110_CRYPTO_SET_PARAMETER_OC = 0x050D, +  LR11XX_CRYPTO_DECRYPT_AES_OC = 0x0509, +LR11XX_CRYPTO_STORE_TO_FLASH_OC = 0x050A, +LR11XX_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, +LR11XX_CRYPTO_SET_PARAMETER_OC = 0x050D,
-  LR1110_CRYPTO_GET_PARAMETER_OC = 0x050E, -LR1110_GNSS_SET_CONSTELLATION_OC = 0x0400, -LR1110_GNSS_READ_CONSTELLATION_OC = 0x0401, -LR1110_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402, +  LR11XX_CRYPTO_GET_PARAMETER_OC = 0x050E, +LR11XX_GNSS_SET_CONSTELLATION_OC = 0x0400, +LR11XX_GNSS_READ_CONSTELLATION_OC = 0x0401, +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402,
-  LR1110_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, -LR1110_GNSS_READ_FW_VERSION_OC = 0x0406, -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, -LR1110_GNSS_SET_SCAN_MODE_OC = 0x0408, +  LR11XX_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, +LR11XX_GNSS_READ_FW_VERSION_OC = 0x0406, +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, +LR11XX_GNSS_SET_SCAN_MODE_OC = 0x0408,
-  LR1110_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, -LR1110_GNSS_SCAN_ASSISTED_OC = 0x040A, -LR1110_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, -LR1110_GNSS_SCAN_READ_RES_OC = 0x040D, +  LR11XX_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, +LR11XX_GNSS_SCAN_ASSISTED_OC = 0x040A, +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, +LR11XX_GNSS_SCAN_READ_RES_OC = 0x040D,
-  LR1110_GNSS_ALMANAC_UPDATE_OC = 0x040E, -LR1110_GNSS_ALMANAC_READ_OC = 0x040F, -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411, +  LR11XX_GNSS_ALMANAC_UPDATE_OC = 0x040E, +LR11XX_GNSS_ALMANAC_READ_OC = 0x040F, +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411,
-  LR1110_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, -LR1110_GNSS_PUSH_DM_MSG_OC = 0x0415, -LR1110_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, -LR1110_GNSS_GET_NB_SATELLITES_OC = 0x0417, +  LR11XX_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, +LR11XX_GNSS_PUSH_DM_MSG_OC = 0x0415, +LR11XX_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, +LR11XX_GNSS_GET_NB_SATELLITES_OC = 0x0417,
-  LR1110_GNSS_GET_SATELLITES_OC = 0x0418, -LR1110_GNSS_GET_TIMINGS_OC = 0x0419, -LR1110_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, -LR1110_LR_FHSS_BUILD_FRAME_OC = 0x022C, +  LR11XX_GNSS_GET_SATELLITES_OC = 0x0418, +LR11XX_GNSS_GET_TIMINGS_OC = 0x0419, +LR11XX_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, +LR11XX_LR_FHSS_BUILD_FRAME_OC = 0x022C,
-  LR1110_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, -LR1110_RADIO_RESET_STATS_OC = 0x0200, -LR1110_RADIO_GET_STATS_OC = 0x0201, -LR1110_RADIO_GET_PKT_TYPE_OC = 0x0202, +  LR11XX_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, +LR11XX_RADIO_RESET_STATS_OC = 0x0200, +LR11XX_RADIO_GET_STATS_OC = 0x0201, +LR11XX_RADIO_GET_PKT_TYPE_OC = 0x0202,
-  LR1110_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, -LR1110_RADIO_GET_PKT_STATUS_OC = 0x0204, -LR1110_RADIO_GET_RSSI_INST_OC = 0x0205, -LR1110_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206, +  LR11XX_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, +LR11XX_RADIO_GET_PKT_STATUS_OC = 0x0204, +LR11XX_RADIO_GET_RSSI_INST_OC = 0x0205, +LR11XX_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206,
-  LR1110_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, -LR1110_RADIO_SET_RX_OC = 0x0209, -LR1110_RADIO_SET_TX_OC = 0x020A, -LR1110_RADIO_SET_RF_FREQUENCY_OC = 0x020B, +  LR11XX_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, +LR11XX_RADIO_SET_RX_OC = 0x0209, +LR11XX_RADIO_SET_TX_OC = 0x020A, +LR11XX_RADIO_SET_RF_FREQUENCY_OC = 0x020B,
-  LR1110_RADIO_AUTOTXRX_OC = 0x020C, -LR1110_RADIO_SET_CAD_PARAMS_OC = 0x020D, -LR1110_RADIO_SET_PKT_TYPE_OC = 0x020E, -LR1110_RADIO_SET_MODULATION_PARAM_OC = 0x020F, +  LR11XX_RADIO_AUTOTXRX_OC = 0x020C, +LR11XX_RADIO_SET_CAD_PARAMS_OC = 0x020D, +LR11XX_RADIO_SET_PKT_TYPE_OC = 0x020E, +LR11XX_RADIO_SET_MODULATION_PARAM_OC = 0x020F,
-  LR1110_RADIO_SET_PKT_PARAM_OC = 0x0210, -LR1110_RADIO_SET_TX_PARAMS_OC = 0x0211, -LR1110_RADIO_SET_PKT_ADRS_OC = 0x0212, -LR1110_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213, +  LR11XX_RADIO_SET_PKT_PARAM_OC = 0x0210, +LR11XX_RADIO_SET_TX_PARAMS_OC = 0x0211, +LR11XX_RADIO_SET_PKT_ADRS_OC = 0x0212, +LR11XX_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213,
-  LR1110_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, -LR1110_RADIO_SET_PA_CFG_OC = 0x0215, -LR1110_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, -LR1110_RADIO_SET_CAD_OC = 0x0218, +  LR11XX_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, +LR11XX_RADIO_SET_PA_CFG_OC = 0x0215, +LR11XX_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, +LR11XX_RADIO_SET_CAD_OC = 0x0218,
-  LR1110_RADIO_SET_TX_CW_OC = 0x0219, -LR1110_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, -LR1110_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, -LR1110_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224, +  LR11XX_RADIO_SET_TX_CW_OC = 0x0219, +LR11XX_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, +LR11XX_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, +LR11XX_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224,
-  LR1110_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, -LR1110_RADIO_SET_RX_BOOSTED_OC = 0x0227, -LR1110_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B, -LR1110_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +  LR11XX_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, +LR11XX_RADIO_SET_RX_BOOSTED_OC = 0x0227, +LR11XX_RADIO_SET_RSSI_CALIBRATION_OC = 0x0229, +LR11XX_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B,
-  LR1110_REGMEM_WRITE_REGMEM32_OC = 0x0105, -LR1110_REGMEM_READ_REGMEM32_OC = 0x0106, -LR1110_REGMEM_WRITE_MEM8_OC = 0x0107, -LR1110_REGMEM_READ_MEM8_OC = 0x0108, +  LR11XX_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +LR11XX_REGMEM_WRITE_REGMEM32_OC = 0x0105, +LR11XX_REGMEM_READ_REGMEM32_OC = 0x0106, +LR11XX_REGMEM_WRITE_MEM8_OC = 0x0107,
-  LR1110_REGMEM_WRITE_BUFFER8_OC = 0x0109, -LR1110_REGMEM_READ_BUFFER8_OC = 0x010A, -LR1110_REGMEM_CLEAR_RXBUFFER_OC = 0x010B, -LR1110_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +  LR11XX_REGMEM_READ_MEM8_OC = 0x0108, +LR11XX_REGMEM_WRITE_BUFFER8_OC = 0x0109, +LR11XX_REGMEM_READ_BUFFER8_OC = 0x010A, +LR11XX_REGMEM_CLEAR_RXBUFFER_OC = 0x010B,
-  LR1110_SYSTEM_GET_STATUS_OC = 0x0100, -LR1110_SYSTEM_GET_VERSION_OC = 0x0101, -LR1110_SYSTEM_GET_ERRORS_OC = 0x010D, -LR1110_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +  LR11XX_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +LR11XX_SYSTEM_GET_STATUS_OC = 0x0100, +LR11XX_SYSTEM_GET_VERSION_OC = 0x0101, +LR11XX_SYSTEM_GET_ERRORS_OC = 0x010D,
-  LR1110_SYSTEM_CALIBRATE_OC = 0x010F, -LR1110_SYSTEM_SET_REGMODE_OC = 0x0110, -LR1110_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111, -LR1110_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +  LR11XX_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +LR11XX_SYSTEM_CALIBRATE_OC = 0x010F, +LR11XX_SYSTEM_SET_REGMODE_OC = 0x0110, +LR11XX_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111,
-  LR1110_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, -LR1110_SYSTEM_CLEAR_IRQ_OC = 0x0114, -LR1110_SYSTEM_CFG_LFCLK_OC = 0x0116, -LR1110_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +  LR11XX_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +LR11XX_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, +LR11XX_SYSTEM_CLEAR_IRQ_OC = 0x0114, +LR11XX_SYSTEM_CFG_LFCLK_OC = 0x0116,
-  LR1110_SYSTEM_REBOOT_OC = 0x0118, -LR1110_SYSTEM_GET_VBAT_OC = 0x0119, -LR1110_SYSTEM_GET_TEMP_OC = 0x011A, -LR1110_SYSTEM_SET_SLEEP_OC = 0x011B, +  LR11XX_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +LR11XX_SYSTEM_REBOOT_OC = 0x0118, +LR11XX_SYSTEM_GET_VBAT_OC = 0x0119, +LR11XX_SYSTEM_GET_TEMP_OC = 0x011A,
-  LR1110_SYSTEM_SET_STANDBY_OC = 0x011C, -LR1110_SYSTEM_SET_FS_OC = 0x011D, -LR1110_SYSTEM_GET_RANDOM_OC = 0x0120, -LR1110_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +  LR11XX_SYSTEM_SET_SLEEP_OC = 0x011B, +LR11XX_SYSTEM_SET_STANDBY_OC = 0x011C, +LR11XX_SYSTEM_SET_FS_OC = 0x011D, +LR11XX_SYSTEM_GET_RANDOM_OC = 0x0120,
-  LR1110_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, -LR1110_SYSTEM_READ_INFOPAGE_OC = 0x0123, -LR1110_SYSTEM_READ_UID_OC = 0x0125, -LR1110_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +  LR11XX_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +LR11XX_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, +LR11XX_SYSTEM_READ_INFOPAGE_OC = 0x0123, +LR11XX_SYSTEM_READ_UID_OC = 0x0125,
-  LR1110_SYSTEM_READ_PIN_OC = 0x0127, -LR1110_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, -LR1110_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A, -LR1110_WIFI_SCAN_OC = 0x0300, +  LR11XX_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +LR11XX_SYSTEM_READ_PIN_OC = 0x0127, +LR11XX_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, +LR11XX_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A,
-  LR1110_WIFI_SCAN_TIME_LIMIT = 0x0301, -LR1110_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, -LR1110_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303, -LR1110_WIFI_GET_RESULT_SIZE_OC = 0x0305, +  LR11XX_WIFI_SCAN_OC = 0x0300, +LR11XX_WIFI_SCAN_TIME_LIMIT = 0x0301, +LR11XX_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, +LR11XX_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303,
-  LR1110_WIFI_READ_RESULT_OC = 0x0306, -LR1110_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, -LR1110_WIFI_READ_CUMUL_TIMING_OC = 0x0308, -LR1110_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +  LR11XX_WIFI_GET_RESULT_SIZE_OC = 0x0305, +LR11XX_WIFI_READ_RESULT_OC = 0x0306, +LR11XX_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, +LR11XX_WIFI_READ_CUMUL_TIMING_OC = 0x0308,
-  LR1110_WIFI_READ_COUNTRY_CODE_OC = 0x030A, -LR1110_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, -LR1110_WIFI_GET_VERSION_OC = 0x0320 +  LR11XX_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +LR11XX_WIFI_READ_COUNTRY_CODE_OC = 0x030A, +LR11XX_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, +LR11XX_WIFI_GET_VERSION_OC = 0x0320
}
 Operating codes for GNSS-related operations. More...
 Operating codes for GNSS-related operations. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

static uint32_t lr1110_gnss_uint8_to_uint32 (uint8_t value[4])
 Helper function that convert an array of uint8_t into a uint32_t single value. More...
 
static uint16_t lr1110_gnss_get_min_from_operand_and_max_nb_of_blocks (uint16_t operand)
 Returns the minimum of the operand given as parameter and the maximum allowed number of blocks. More...
 
static lr1110_status_t lr1110_gnss_get_almanac_address_size (const void *context, uint32_t *address, uint16_t *size)
 Get the almanac base address and size. More...
 
lr1110_status_t lr1110_gnss_get_result_size (const void *context, uint16_t *result_size)
 Get the size of results. More...
 
lr1110_status_t lr1110_gnss_read_results (const void *context, uint8_t *result_buffer, const uint16_t result_buffer_size)
 Read GNSS results. More...
 
lr1110_status_t lr1110_gnss_get_timings (const void *context, lr1110_gnss_timings_t *timings)
 Get the time spent in signal acquisition and signal analysis. More...
 
lr1110_status_t lr1110_gnss_almanac_update (const void *context, const uint8_t *blocks, const uint8_t nb_of_blocks)
 Update almanacs given as parameter. More...
 
lr1110_status_t lr1110_gnss_read_almanac (const void *context, lr1110_gnss_almanac_full_read_bytestream_t almanac_bytestream)
 Read the almanac. More...
 
lr1110_status_t lr1110_gnss_get_almanac_age_for_satellite (const void *context, const lr1110_gnss_satellite_id_t sv_id, uint16_t *almanac_age)
 Get almanac age for a satellite. More...
 
lr1110_status_t lr1110_gnss_push_solver_msg (const void *context, const uint8_t *payload, const uint16_t payload_size)
 Push data received from solver to LR1110. More...
 
lr1110_status_t lr1110_gnss_set_constellations_to_use (const void *context, const lr1110_gnss_constellation_mask_t constellation_to_use)
 Activate the GNSS scan constellation. More...
 
lr1110_status_t lr1110_gnss_read_used_constellations (const void *context, lr1110_gnss_constellation_mask_t *constellations_used)
 Read constellation used by the GNSS scanner from the almanac update configuration. More...
 
lr1110_status_t lr1110_gnss_set_almanac_update (const void *context, const lr1110_gnss_constellation_mask_t constellations_to_update)
 Activate the almanac update. More...
 
lr1110_status_t lr1110_gnss_read_almanac_update (const void *context, lr1110_gnss_constellation_mask_t *constellations_to_update)
 Function to read the almanac update configuration. More...
 
lr1110_status_t lr1110_gnss_read_firmware_version (const void *context, lr1110_gnss_version_t *version)
 Function to read the GNSS firmware version. More...
 
lr1110_status_t lr1110_gnss_read_supported_constellations (const void *context, lr1110_gnss_constellation_mask_t *supported_constellations)
 Function to read the supported constellation, GPS or BEIDOU other constellations. More...
 
lr1110_status_t lr1110_gnss_set_scan_mode (const void *context, const lr1110_gnss_scan_mode_t scan_mode)
 Function to set the GNSS scan mode configuration. More...
 
lr1110_status_t lr1110_gnss_scan_autonomous (const void *context, const lr1110_gnss_date_t date, const lr1110_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
 Gnss scan with no assisted parameters needed. More...
 
lr1110_status_t lr1110_gnss_scan_assisted (const void *context, const lr1110_gnss_date_t date, const lr1110_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
 Gnss scan with assisted parameters. More...
 
lr1110_status_t lr1110_gnss_set_assistance_position (const void *context, const lr1110_gnss_solver_assistance_position_t *assistance_position)
 Function to set the assistance position. More...
 
lr1110_status_t lr1110_gnss_read_assistance_position (const void *context, lr1110_gnss_solver_assistance_position_t *assistance_position)
 Function to read the assistance position. More...
 
lr1110_status_t lr1110_gnss_push_dmc_msg (const void *context, uint8_t *dmc_msg, uint16_t dmc_msg_len)
 Host receives an update from the network or assembles itself the update message and send it to the LR1110. More...
 
lr1110_status_t lr1110_gnss_get_context_status (const void *context, lr1110_gnss_context_status_bytestream_t context_status)
 Get the GNSS context status. More...
 
lr1110_status_t lr1110_gnss_get_nb_detected_satellites (const void *context, uint8_t *nb_detected_satellites)
 Get the number of detected satellites during last scan. More...
 
lr1110_status_t lr1110_gnss_get_detected_satellites (const void *context, const uint8_t nb_detected_satellites, lr1110_gnss_detected_satellite_t *detected_satellite_id_snr_doppler)
 Get the satellites detected on last scan with their IDs, C/N (aka CNR) and doppler. More...
 
lr1110_status_t lr1110_gnss_parse_context_status_buffer (const lr1110_gnss_context_status_bytestream_t context_status_bytestream, lr1110_gnss_context_status_t *context_status)
 Parse a raw buffer of context status. More...
 
lr1110_status_t lr1110_gnss_get_result_destination (const uint8_t *result_buffer, const uint16_t result_buffer_size, lr1110_gnss_destination_t *destination)
 Extract the destination from the result returned by a GNSS scan. More...
 
uint16_t lr1110_gnss_compute_almanac_age (uint16_t almanac_date, uint16_t nb_days_between_epoch_and_last_gps_time_rollover, uint16_t nb_days_since_epoch)
 Helper function that computes the age of an almanac. More...
 
-uint32_t lr1110_gnss_uint8_to_uint32 (uint8_t *value)
 
static uint32_t lr11xx_gnss_uint8_to_uint32 (uint8_t value[4])
 Helper function that convert an array of uint8_t into a uint32_t single value. More...
 
static uint16_t lr11xx_gnss_get_min_from_operand_and_max_nb_of_blocks (uint16_t operand)
 Returns the minimum of the operand given as parameter and the maximum allowed number of blocks. More...
 
static lr11xx_status_t lr11xx_gnss_get_almanac_address_size (const void *context, uint32_t *address, uint16_t *size)
 Get the almanac base address and size. More...
 
lr11xx_status_t lr11xx_gnss_get_result_size (const void *context, uint16_t *result_size)
 Get the size of results. More...
 
lr11xx_status_t lr11xx_gnss_read_results (const void *context, uint8_t *result_buffer, const uint16_t result_buffer_size)
 Read GNSS results. More...
 
lr11xx_status_t lr11xx_gnss_get_timings (const void *context, lr11xx_gnss_timings_t *timings)
 Get the time spent in signal acquisition and signal analysis. More...
 
lr11xx_status_t lr11xx_gnss_almanac_update (const void *context, const uint8_t *blocks, const uint8_t nb_of_blocks)
 Update almanacs given as parameter. More...
 
lr11xx_status_t lr11xx_gnss_read_almanac (const void *context, lr11xx_gnss_almanac_full_read_bytestream_t almanac_bytestream)
 Read the almanac. More...
 
lr11xx_status_t lr11xx_gnss_get_almanac_age_for_satellite (const void *context, const lr11xx_gnss_satellite_id_t sv_id, uint16_t *almanac_age)
 Get almanac age for a satellite. More...
 
lr11xx_status_t lr11xx_gnss_push_solver_msg (const void *context, const uint8_t *payload, const uint16_t payload_size)
 Push data received from solver to LR11XX. More...
 
lr11xx_status_t lr11xx_gnss_set_constellations_to_use (const void *context, const lr11xx_gnss_constellation_mask_t constellation_to_use)
 Activate the GNSS scan constellation. More...
 
lr11xx_status_t lr11xx_gnss_read_used_constellations (const void *context, lr11xx_gnss_constellation_mask_t *constellations_used)
 Read constellation used by the GNSS scanner from the almanac update configuration. More...
 
lr11xx_status_t lr11xx_gnss_set_almanac_update (const void *context, const lr11xx_gnss_constellation_mask_t constellations_to_update)
 Activate the almanac update. More...
 
lr11xx_status_t lr11xx_gnss_read_almanac_update (const void *context, lr11xx_gnss_constellation_mask_t *constellations_to_update)
 Function to read the almanac update configuration. More...
 
lr11xx_status_t lr11xx_gnss_read_firmware_version (const void *context, lr11xx_gnss_version_t *version)
 Function to read the GNSS firmware version. More...
 
lr11xx_status_t lr11xx_gnss_read_supported_constellations (const void *context, lr11xx_gnss_constellation_mask_t *supported_constellations)
 Function to read the supported constellation, GPS or BEIDOU other constellations. More...
 
lr11xx_status_t lr11xx_gnss_set_scan_mode (const void *context, const lr11xx_gnss_scan_mode_t scan_mode)
 Function to set the GNSS scan mode configuration. More...
 
lr11xx_status_t lr11xx_gnss_scan_autonomous (const void *context, const lr11xx_gnss_date_t date, const lr11xx_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
 Gnss scan with no assisted parameters needed. More...
 
lr11xx_status_t lr11xx_gnss_scan_assisted (const void *context, const lr11xx_gnss_date_t date, const lr11xx_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
 Gnss scan with assisted parameters. More...
 
lr11xx_status_t lr11xx_gnss_set_assistance_position (const void *context, const lr11xx_gnss_solver_assistance_position_t *assistance_position)
 Function to set the assistance position. More...
 
lr11xx_status_t lr11xx_gnss_read_assistance_position (const void *context, lr11xx_gnss_solver_assistance_position_t *assistance_position)
 Function to read the assistance position. More...
 
lr11xx_status_t lr11xx_gnss_push_dmc_msg (const void *context, uint8_t *dmc_msg, uint16_t dmc_msg_len)
 Host receives an update from the network or assembles itself the update message and send it to the LR11XX. More...
 
lr11xx_status_t lr11xx_gnss_get_context_status (const void *context, lr11xx_gnss_context_status_bytestream_t context_status)
 Get the GNSS context status. More...
 
lr11xx_status_t lr11xx_gnss_get_nb_detected_satellites (const void *context, uint8_t *nb_detected_satellites)
 Get the number of detected satellites during last scan. More...
 
lr11xx_status_t lr11xx_gnss_get_detected_satellites (const void *context, const uint8_t nb_detected_satellites, lr11xx_gnss_detected_satellite_t *detected_satellite_id_snr_doppler)
 Get the satellites detected on last scan with their IDs, C/N (aka CNR) and doppler. More...
 
lr11xx_status_t lr11xx_gnss_parse_context_status_buffer (const lr11xx_gnss_context_status_bytestream_t context_status_bytestream, lr11xx_gnss_context_status_t *context_status)
 Parse a raw buffer of context status. More...
 
lr11xx_status_t lr11xx_gnss_get_result_destination (const uint8_t *result_buffer, const uint16_t result_buffer_size, lr11xx_gnss_destination_t *destination)
 Extract the destination from the result returned by a GNSS scan. More...
 
uint16_t lr11xx_gnss_compute_almanac_age (uint16_t almanac_date, uint16_t nb_days_between_epoch_and_last_gps_time_rollover, uint16_t nb_days_since_epoch)
 Helper function that computes the age of an almanac. More...
 
uint32_t lr11xx_gnss_get_consumption (lr11xx_system_reg_mode_t regulator, lr11xx_gnss_timings_t timings, lr11xx_gnss_constellation_mask_t constellations_used)
 Compute the power consumption in uAh based on the time spent in signal acquisition and signal analysis. More...
 
+uint32_t lr11xx_gnss_uint8_to_uint32 (uint8_t *value)
 

Detailed Description

-

GNSS scan driver implementation for LR1110.

+

GNSS scan driver implementation for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -460,7 +487,25 @@
  • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-

Enumeration Type Documentation

+

Macro Definition Documentation

+ +

◆ LR11XX_GNSS_RADIO_ACQUISITION_GPS_UA_DCDC

+ +
+
+ + + + +
#define LR11XX_GNSS_RADIO_ACQUISITION_GPS_UA_DCDC   ( 15000 )
+
+ +

GNSS scan power consumption.

+
Note
these numbers are given for information, it should be modified according to the used hardware.
+ +
+
+

Enumeration Type Documentation

◆ anonymous enum

@@ -475,55 +520,55 @@

-EnumeratorLR1110_GNSS_SET_CONSTELLATION_OC 

Set the constellation to use.

+EnumeratorLR11XX_GNSS_SET_CONSTELLATION_OC 

Set the constellation to use.

-LR1110_GNSS_READ_CONSTELLATION_OC 

Read the used constellations.

+LR11XX_GNSS_READ_CONSTELLATION_OC 

Read the used constellations.

-LR1110_GNSS_SET_ALMANAC_UPDATE_OC 

Set almanac update configuration.

+LR11XX_GNSS_SET_ALMANAC_UPDATE_OC 

Set almanac update configuration.

-LR1110_GNSS_READ_ALMANAC_UPDATE_OC 

Read the almanac update configuration.

+LR11XX_GNSS_READ_ALMANAC_UPDATE_OC 

Read the almanac update configuration.

-LR1110_GNSS_READ_FW_VERSION_OC 

Read the firmware version.

+LR11XX_GNSS_READ_FW_VERSION_OC 

Read the firmware version.

-LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

Read the supported constellations.

+LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

Read the supported constellations.

-LR1110_GNSS_SET_SCAN_MODE_OC 

Define single or double capture.

+LR11XX_GNSS_SET_SCAN_MODE_OC 

Define single or double capture.

-LR1110_GNSS_SCAN_AUTONOMOUS_OC 

Launch an autonomous scan.

+LR11XX_GNSS_SCAN_AUTONOMOUS_OC 

Launch an autonomous scan.

-LR1110_GNSS_SCAN_ASSISTED_OC 

Launch an assisted scan.

+LR11XX_GNSS_SCAN_ASSISTED_OC 

Launch an assisted scan.

-LR1110_GNSS_SCAN_GET_RES_SIZE_OC 

Get the size of the output payload.

+LR11XX_GNSS_SCAN_GET_RES_SIZE_OC 

Get the size of the output payload.

-LR1110_GNSS_SCAN_READ_RES_OC 

Read the byte stream.

+LR11XX_GNSS_SCAN_READ_RES_OC 

Read the byte stream.

-LR1110_GNSS_ALMANAC_UPDATE_OC 

Update the almanac.

+LR11XX_GNSS_ALMANAC_UPDATE_OC 

Update the almanac.

-LR1110_GNSS_ALMANAC_READ_OC 

Read all almanacs.

+LR11XX_GNSS_ALMANAC_READ_OC 

Read all almanacs.

-LR1110_GNSS_SET_ASSISTANCE_POSITION_OC 

Set the assistance position.

+LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC 

Set the assistance position.

-LR1110_GNSS_READ_ASSISTANCE_POSITION_OC 

Read the assistance position.

+LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC 

Read the assistance position.

-LR1110_GNSS_PUSH_SOLVER_MSG_OC 

Push messages coming from the solver.

+LR11XX_GNSS_PUSH_SOLVER_MSG_OC 

Push messages coming from the solver.

-LR1110_GNSS_PUSH_DM_MSG_OC 

Push messages coming from the device management.

+LR11XX_GNSS_PUSH_DM_MSG_OC 

Push messages coming from the device management.

-LR1110_GNSS_GET_CONTEXT_STATUS_OC 

Read the context.

+LR11XX_GNSS_GET_CONTEXT_STATUS_OC 

Read the context.

-LR1110_GNSS_GET_NB_SATELLITES_OC 

Get the number of satellites detected during a scan.

+LR11XX_GNSS_GET_NB_SATELLITES_OC 

Get the number of satellites detected during a scan.

-LR1110_GNSS_GET_SATELLITES_OC 

Get the list of satellites detected during a scan.

+LR11XX_GNSS_GET_SATELLITES_OC 

Get the list of satellites detected during a scan.

-LR1110_GNSS_GET_TIMINGS_OC 

Get the time spent in signal acquisition and analysis.

+LR11XX_GNSS_GET_TIMINGS_OC 

Get the time spent in signal acquisition and analysis.

Function Documentation

- -

◆ lr1110_gnss_uint8_to_uint32()

+ +

◆ lr11xx_gnss_uint8_to_uint32()

@@ -532,7 +577,7 @@

- + @@ -558,8 +603,8 @@

-

◆ lr1110_gnss_get_min_from_operand_and_max_nb_of_blocks()

+ +

◆ lr11xx_gnss_get_min_from_operand_and_max_nb_of_blocks()

@@ -568,7 +613,7 @@

static uint32_t lr1110_gnss_uint8_to_uint32 static uint32_t lr11xx_gnss_uint8_to_uint32 ( uint8_t  value[4])
- + @@ -589,12 +634,12 @@

Returns
Minimum between operand and LR1110_GNSS_ALMANAC_UPDATE_MAX_NB_OF_BLOCKS
+
Returns
Minimum between operand and LR11XX_GNSS_ALMANAC_UPDATE_MAX_NB_OF_BLOCKS
-
-

◆ lr1110_gnss_get_almanac_address_size()

+ +

◆ lr11xx_gnss_get_almanac_address_size()

@@ -603,7 +648,7 @@

uint16_t lr1110_gnss_get_min_from_operand_and_max_nb_of_blocks uint16_t lr11xx_gnss_get_min_from_operand_and_max_nb_of_blocks ( uint16_t  operand)
- + @@ -646,14 +691,14 @@

-

◆ lr1110_gnss_get_result_size()

+ +

◆ lr11xx_gnss_get_result_size()

lr1110_status_t lr1110_gnss_get_almanac_address_size lr11xx_status_t lr11xx_gnss_get_almanac_address_size ( const void *  context,
- + @@ -673,7 +718,7 @@

Get the size of results.

-

This method returns the size in bytes of the results available in LR1110 result buffer.

+

This method returns the size in bytes of the results available in LR11XX result buffer.

Parameters

lr1110_status_t lr1110_gnss_get_result_size lr11xx_status_t lr11xx_gnss_get_result_size ( const void *  context,
@@ -685,14 +730,14 @@

-

◆ lr1110_gnss_read_results()

+ +

◆ lr11xx_gnss_read_results()

[in]contextChip implementation context
- + @@ -724,7 +769,7 @@

- +
lr1110_status_t lr1110_gnss_read_results lr11xx_status_t lr11xx_gnss_read_results ( const void *  context,
[in]contextChip implementation context
[out]result_bufferApplication provided buffer to be filled with result
[in]result_buffer_sizeThe number of bytes to read from the LR1110
[in]result_buffer_sizeThe number of bytes to read from the LR11XX
@@ -732,14 +777,14 @@

-

◆ lr1110_gnss_get_timings()

+ +

◆ lr11xx_gnss_get_timings()

- + @@ -747,7 +792,7 @@

- + @@ -771,14 +816,14 @@

-

◆ lr1110_gnss_almanac_update()

+ +

◆ lr11xx_gnss_almanac_update()

lr1110_status_t lr1110_gnss_get_timings lr11xx_status_t lr11xx_gnss_get_timings ( const void *  context, lr1110_gnss_timings_tlr11xx_gnss_timings_t timings 
- + @@ -808,7 +853,7 @@

Parameters

lr1110_status_t lr1110_gnss_almanac_update lr11xx_status_t lr11xx_gnss_almanac_update ( const void *  context,
- +
[in]contextChip implementation context
[in]blocksBuffer containing at least (nb_of_blocks * LR1110_GNSS_SINGLE_ALMANAC_WRITE_SIZE) bytes of almanac
[in]blocksBuffer containing at least (nb_of_blocks * LR11XX_GNSS_SINGLE_ALMANAC_WRITE_SIZE) bytes of almanac
[in]nb_of_blocksNumber of blocks to transfer
@@ -817,14 +862,14 @@

-

◆ lr1110_gnss_read_almanac()

+ +

◆ lr11xx_gnss_read_almanac()

- + @@ -832,7 +877,7 @@

- + @@ -855,14 +900,14 @@

-

◆ lr1110_gnss_get_almanac_age_for_satellite()

+ +

◆ lr11xx_gnss_get_almanac_age_for_satellite()

lr1110_status_t lr1110_gnss_read_almanac lr11xx_status_t lr11xx_gnss_read_almanac ( const void *  context, lr1110_gnss_almanac_full_read_bytestream_t lr11xx_gnss_almanac_full_read_bytestream_t  almanac_bytestream 
- + @@ -870,7 +915,7 @@

- + @@ -900,14 +945,14 @@

-

◆ lr1110_gnss_push_solver_msg()

+ +

◆ lr11xx_gnss_push_solver_msg()

lr1110_status_t lr1110_gnss_get_almanac_age_for_satellite lr11xx_status_t lr11xx_gnss_get_almanac_age_for_satellite ( const void *  context, const lr1110_gnss_satellite_id_t const lr11xx_gnss_satellite_id_t  sv_id,
- + @@ -932,7 +977,7 @@

-

Push data received from solver to LR1110.

+

Push data received from solver to LR11XX.

Parameters

lr1110_status_t lr1110_gnss_push_solver_msg lr11xx_status_t lr11xx_gnss_push_solver_msg ( const void *  context,
@@ -945,14 +990,14 @@

-

◆ lr1110_gnss_set_constellations_to_use()

+ +

◆ lr11xx_gnss_set_constellations_to_use()

[in]contextChip implementation context
- + @@ -960,7 +1005,7 @@

- + @@ -975,23 +1020,23 @@

Parameters

lr1110_status_t lr1110_gnss_set_constellations_to_use lr11xx_status_t lr11xx_gnss_set_constellations_to_use ( const void *  context, const lr1110_gnss_constellation_mask_t const lr11xx_gnss_constellation_mask_t  constellation_mask 
- +
[in]contextChip implementation context
[in]constellation_maskBit mask of the constellations to use. See lr1110_gnss_constellation_t for the possible values
[in]constellation_maskBit mask of the constellations to use. See lr11xx_gnss_constellation_t for the possible values
Returns
Operation status
-
See also
lr1110_gnss_read_used_constellations
+
See also
lr11xx_gnss_read_used_constellations
- -

◆ lr1110_gnss_read_used_constellations()

+ +

◆ lr11xx_gnss_read_used_constellations()

- + @@ -999,7 +1044,7 @@

- + @@ -1014,23 +1059,23 @@

Parameters

lr1110_status_t lr1110_gnss_read_used_constellations lr11xx_status_t lr11xx_gnss_read_used_constellations ( const void *  context, lr1110_gnss_constellation_mask_tlr11xx_gnss_constellation_mask_t constellations_used 
- +
[in]contextChip implementation context
[out]constellations_usedBit mask of the constellations used. See lr1110_gnss_constellation_t for the possible values
[out]constellations_usedBit mask of the constellations used. See lr11xx_gnss_constellation_t for the possible values
Returns
Operation status
-
See also
lr1110_gnss_set_constellations_to_use
+
See also
lr11xx_gnss_set_constellations_to_use
- -

◆ lr1110_gnss_set_almanac_update()

+ +

◆ lr11xx_gnss_set_almanac_update()

- + @@ -1038,7 +1083,7 @@

- + @@ -1053,7 +1098,7 @@

Parameters

lr1110_status_t lr1110_gnss_set_almanac_update lr11xx_status_t lr11xx_gnss_set_almanac_update ( const void *  context, const lr1110_gnss_constellation_mask_t const lr11xx_gnss_constellation_mask_t  constellations_to_update 
- +
[in]contextChip implementation context
[in]constellations_to_updateBit mask of the constellations to mark to update. See lr1110_gnss_constellation_t for the possible values
[in]constellations_to_updateBit mask of the constellations to mark to update. See lr11xx_gnss_constellation_t for the possible values
@@ -1061,14 +1106,14 @@

-

◆ lr1110_gnss_read_almanac_update()

+ +

◆ lr11xx_gnss_read_almanac_update()

- + @@ -1076,7 +1121,7 @@

- + @@ -1091,7 +1136,7 @@

Parameters

lr1110_status_t lr1110_gnss_read_almanac_update lr11xx_status_t lr11xx_gnss_read_almanac_update ( const void *  context, lr1110_gnss_constellation_mask_tlr11xx_gnss_constellation_mask_t constellations_to_update 
- +
[in]contextChip implementation context
[out]constellations_to_updateBit mask of the constellations to mark to update. See lr1110_gnss_constellation_t for the possible values
[out]constellations_to_updateBit mask of the constellations to mark to update. See lr11xx_gnss_constellation_t for the possible values
@@ -1099,14 +1144,14 @@

-

◆ lr1110_gnss_read_firmware_version()

+ +

◆ lr11xx_gnss_read_firmware_version()

- + @@ -1114,7 +1159,7 @@

- + @@ -1137,14 +1182,14 @@

-

◆ lr1110_gnss_read_supported_constellations()

+ +

◆ lr11xx_gnss_read_supported_constellations()

lr1110_status_t lr1110_gnss_read_firmware_version lr11xx_status_t lr11xx_gnss_read_firmware_version ( const void *  context, lr1110_gnss_version_tlr11xx_gnss_version_t version 
- + @@ -1152,7 +1197,7 @@

- + @@ -1167,7 +1212,7 @@

Parameters

lr1110_status_t lr1110_gnss_read_supported_constellations lr11xx_status_t lr11xx_gnss_read_supported_constellations ( const void *  context, lr1110_gnss_constellation_mask_tlr11xx_gnss_constellation_mask_t supported_constellations 
- +
[in]contextChip implementation context
[out]supported_constellationsBit mask of the constellations used. See lr1110_gnss_constellation_t for the possible values
[out]supported_constellationsBit mask of the constellations used. See lr11xx_gnss_constellation_t for the possible values
@@ -1175,14 +1220,14 @@

-

◆ lr1110_gnss_set_scan_mode()

+ +

◆ lr11xx_gnss_set_scan_mode()

- + @@ -1190,7 +1235,7 @@

- + @@ -1210,18 +1255,18 @@

Returns
Operation status
-

lr1110_gnss_scan_mode_t

+

lr11xx_gnss_scan_mode_t

- -

◆ lr1110_gnss_scan_autonomous()

+ +

◆ lr11xx_gnss_scan_autonomous()

lr1110_status_t lr1110_gnss_set_scan_mode lr11xx_status_t lr11xx_gnss_set_scan_mode ( const void *  context, const lr1110_gnss_scan_mode_t const lr11xx_gnss_scan_mode_t  scan_mode 
- + @@ -1229,13 +1274,13 @@

- + - + @@ -1263,8 +1308,8 @@

- - + +
lr1110_status_t lr1110_gnss_scan_autonomous lr11xx_status_t lr11xx_gnss_scan_autonomous ( const void *  context, const lr1110_gnss_date_t const lr11xx_gnss_date_t  date,
const lr1110_gnss_search_mode_t const lr11xx_gnss_search_mode_t  effort_mode,
[in]contextChip implementation context
[in]dateThe actual date of scan. Its format is the number of seconds elapsed since January the 6th 1980 00:00:00 with leap seconds included.
[in]effort_modeEffort mode lr1110_gnss_search_mode_t
[in]gnss_input_parametersBit mask indicating which information is added in the output payload lr1110_gnss_input_parameters_e
[in]effort_modeEffort mode lr11xx_gnss_search_mode_t
[in]gnss_input_parametersBit mask indicating which information is added in the output payload lr11xx_gnss_result_fields_legacy_e
[in]nb_satThe expected number of satellite to provide. This value must be in the range [0:128]
@@ -1273,14 +1318,14 @@

-

◆ lr1110_gnss_scan_assisted()

+ +

◆ lr11xx_gnss_scan_assisted()

- + @@ -1288,13 +1333,13 @@

- + - + @@ -1322,8 +1367,8 @@

- - + +
lr1110_status_t lr1110_gnss_scan_assisted lr11xx_status_t lr11xx_gnss_scan_assisted ( const void *  context, const lr1110_gnss_date_t const lr11xx_gnss_date_t  date,
const lr1110_gnss_search_mode_t const lr11xx_gnss_search_mode_t  effort_mode,
[in]contextChip implementation context
[in]dateThe actual date of scan. Its format is the number of seconds elapsed since January the 6th 1980 00:00:00 with leap seconds included.
[in]effort_modeEffort mode lr1110_gnss_search_mode_t
[in]gnss_input_parametersBit mask indicating which information is added in the output payload lr1110_gnss_input_parameters_e
[in]effort_modeEffort mode lr11xx_gnss_search_mode_t
[in]gnss_input_parametersBit mask indicating which information is added in the output payload lr11xx_gnss_result_fields_legacy_e
[in]nb_satThe expected number of satellite to provide. This value must be in the range [0:128]
@@ -1332,14 +1377,14 @@

-

◆ lr1110_gnss_set_assistance_position()

+ +

◆ lr11xx_gnss_set_assistance_position()

- + @@ -1347,7 +1392,7 @@

- + @@ -1366,19 +1411,19 @@

Returns
Operation status
-
-

◆ lr1110_gnss_read_assistance_position()

+ +

◆ lr11xx_gnss_read_assistance_position()

lr1110_status_t lr1110_gnss_set_assistance_position lr11xx_status_t lr11xx_gnss_set_assistance_position ( const void *  context, const lr1110_gnss_solver_assistance_position_tconst lr11xx_gnss_solver_assistance_position_t assistance_position 
- + @@ -1386,7 +1431,7 @@

- + @@ -1398,7 +1443,7 @@

Function to read the assistance position.

-

The assistance position read may be different from the one set beforehand with lr1110_gnss_set_assistance_position due to a scaling computation.

+

The assistance position read may be different from the one set beforehand with lr11xx_gnss_set_assistance_position due to a scaling computation.

Parameters

lr1110_status_t lr1110_gnss_read_assistance_position lr11xx_status_t lr11xx_gnss_read_assistance_position ( const void *  context, lr1110_gnss_solver_assistance_position_tlr11xx_gnss_solver_assistance_position_t assistance_position 
@@ -1406,19 +1451,19 @@

Returns
Operation status
-
-

◆ lr1110_gnss_push_dmc_msg()

+ +

◆ lr11xx_gnss_push_dmc_msg()

[in]contextChip implementation context
- + @@ -1443,7 +1488,7 @@

-

Host receives an update from the network or assembles itself the update message and send it to the LR1110.

+

Host receives an update from the network or assembles itself the update message and send it to the LR11XX.

Parameters

lr1110_status_t lr1110_gnss_push_dmc_msg lr11xx_status_t lr11xx_gnss_push_dmc_msg ( const void *  context,
@@ -1456,14 +1501,14 @@

-

◆ lr1110_gnss_get_context_status()

+ +

◆ lr11xx_gnss_get_context_status()

[in]contextChip implementation context
- + @@ -1471,7 +1516,7 @@

- + @@ -1483,7 +1528,7 @@

Get the GNSS context status.

-

This function returns the GNSS context status as a raw buffer. It is possible to use lr1110_gnss_parse_context_status_buffer to obtain the details of the context status.

+

This function returns the GNSS context status as a raw buffer. It is possible to use lr11xx_gnss_parse_context_status_buffer to obtain the details of the context status.

Parameters

lr1110_status_t lr1110_gnss_get_context_status lr11xx_status_t lr11xx_gnss_get_context_status ( const void *  context, lr1110_gnss_context_status_bytestream_t lr11xx_gnss_context_status_bytestream_t  context_status_buffer 
@@ -1492,18 +1537,18 @@

Returns
Operation status
-
See also
lr1110_gnss_parse_context_status_buffer
+
See also
lr11xx_gnss_parse_context_status_buffer
- -

◆ lr1110_gnss_get_nb_detected_satellites()

+ +

◆ lr11xx_gnss_get_nb_detected_satellites()

[in]contextChip implementation context
- + @@ -1534,14 +1579,14 @@

-

◆ lr1110_gnss_get_detected_satellites()

+ +

◆ lr11xx_gnss_get_detected_satellites()

lr1110_status_t lr1110_gnss_get_nb_detected_satellites lr11xx_status_t lr11xx_gnss_get_nb_detected_satellites ( const void *  context,
- + @@ -1555,7 +1600,7 @@

- + @@ -1571,7 +1616,7 @@

Parameters

lr1110_status_t lr1110_gnss_get_detected_satellites lr11xx_status_t lr11xx_gnss_get_detected_satellites ( const void *  context, lr1110_gnss_detected_satellite_tlr11xx_gnss_detected_satellite_t detected_satellite_id_snr_doppler 
- +
[in]contextChip implementation context
[in]nb_detected_satellitesNumber of detected satellites on last scan (obtained by calling lr1110_gnss_get_nb_detected_satellites)
[in]nb_detected_satellitesNumber of detected satellites on last scan (obtained by calling lr11xx_gnss_get_nb_detected_satellites)
[out]detected_satellite_id_snr_dopplerPointer to an array of structures of size big enough to contain nb_detected_satellites elements
@@ -1580,22 +1625,22 @@

-

◆ lr1110_gnss_parse_context_status_buffer()

+ +

◆ lr11xx_gnss_parse_context_status_buffer()

- + - + - + @@ -1609,24 +1654,24 @@

Parameters

lr1110_status_t lr1110_gnss_parse_context_status_buffer lr11xx_status_t lr11xx_gnss_parse_context_status_buffer (const lr1110_gnss_context_status_bytestream_t const lr11xx_gnss_context_status_bytestream_t  context_status_bytestream,
lr1110_gnss_context_status_tlr11xx_gnss_context_status_t context_status 
- - + +
[in]context_status_bytestreamThe raw buffer of context status to parse. It is up to the caller to ensure the buffer is at least LR1110_GNSS_CONTEXT_STATUS_LENGTH bytes long
[out]context_statusPointer to a structure of lr1110_gnss_context_status_t to be filled with information from context_status_bytestream
[in]context_status_bytestreamThe raw buffer of context status to parse. It is up to the caller to ensure the buffer is at least LR11XX_GNSS_CONTEXT_STATUS_LENGTH bytes long
[out]context_statusPointer to a structure of lr11xx_gnss_context_status_t to be filled with information from context_status_bytestream
Returns
Operation status
-
See also
lr1110_gnss_get_context_status
+
See also
lr11xx_gnss_get_context_status
- -

◆ lr1110_gnss_get_result_destination()

+ +

◆ lr11xx_gnss_get_result_destination()

- + @@ -1640,7 +1685,7 @@

- + @@ -1664,14 +1709,14 @@

-

◆ lr1110_gnss_compute_almanac_age()

+ +

◆ lr11xx_gnss_compute_almanac_age()

lr1110_status_t lr1110_gnss_get_result_destination lr11xx_status_t lr11xx_gnss_get_result_destination ( const uint8_t *  result_buffer, lr1110_gnss_destination_tlr11xx_gnss_destination_t destination 
- + @@ -1697,15 +1742,15 @@

Helper function that computes the age of an almanac.

-

This function does not call the LR1110. The almanac age is computed based on the following elements:

    -
  • almanac age as obtained from lr1110_gnss_get_almanac_age_for_satellite
  • +

    This function does not call the LR11XX. The almanac age is computed based on the following elements:

      +
    • almanac age as obtained from lr11xx_gnss_get_almanac_age_for_satellite
    • the number of days elapsed between Epoch (January 6th 1980) and the GPS rollover reference of the current almanac
    • the GPS date of today expressed in number of days elapsed since Epoch
    Remarks
    It is important to use for nb_days_between_epoch_and_corresponding_gps_time_rollover the GPS time rollover corresponding to the reference of the almanac_date. This is especially true when current date is just after a GPS time rollover.
    Parameters

uint16_t lr1110_gnss_compute_almanac_age uint16_t lr11xx_gnss_compute_almanac_age ( uint16_t  almanac_date,
- +
[in]almanac_dateAlmanac date as obtained from lr1110_gnss_get_almanac_age_for_satellite
[in]almanac_dateAlmanac date as obtained from lr11xx_gnss_get_almanac_age_for_satellite
[in]nb_days_between_epoch_and_corresponding_gps_time_rolloverNumber of days elapsed between GPS Epoch and the GPS rollover corresponding to the almanac_date
[in]nb_days_since_epochNumber of days elapsed between January 6th 1980 and now
@@ -1713,6 +1758,51 @@

Returns
Age of the almanac expressed in number of days between its start valid instant and now
+

+
+ +

◆ lr11xx_gnss_get_consumption()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint32_t lr11xx_gnss_get_consumption (lr11xx_system_reg_mode_t regulator,
lr11xx_gnss_timings_t timings,
lr11xx_gnss_constellation_mask_t constellations_used 
)
+
+ +

Compute the power consumption in uAh based on the time spent in signal acquisition and signal analysis.

+
Parameters
+ + + + +
[in]regulatorThe regulator used during last GNSS scan
[in]timingsTimings allowing to compute the current consumption
[in]constellations_usedBit mask of the constellations used
+
+
+
Returns
Current consumption in uAh
+
diff --git a/doc/lr11xx/html/lr11xx__gnss_8c__incl.map b/doc/lr11xx/html/lr11xx__gnss_8c__incl.map new file mode 100644 index 0000000..e00fd7c --- /dev/null +++ b/doc/lr11xx/html/lr11xx__gnss_8c__incl.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__gnss_8c__incl.md5 b/doc/lr11xx/html/lr11xx__gnss_8c__incl.md5 new file mode 100644 index 0000000..5ae4e78 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__gnss_8c__incl.md5 @@ -0,0 +1 @@ +d19857e12f6eb6eb5191be66313cba93 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__gnss_8c__incl.png b/doc/lr11xx/html/lr11xx__gnss_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..cd7de84830576fa42a216f78d375627713c6292f GIT binary patch literal 27053 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 K;>Du+e*XvIv|Zi+ literal 0 HcmV?d00001 diff --git a/doc/lr1110/html/lr1110__gnss_8h.html b/doc/lr11xx/html/lr11xx__gnss_8h.html similarity index 58% rename from doc/lr1110/html/lr1110__gnss_8h.html rename to doc/lr11xx/html/lr11xx__gnss_8h.html index 89f127a..97375c7 100644 --- a/doc/lr1110/html/lr1110__gnss_8h.html +++ b/doc/lr11xx/html/lr11xx__gnss_8h.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_gnss.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_gnss.h File Reference @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -61,125 +61,130 @@
-
lr1110_gnss.h File Reference
+
lr11xx_gnss.h File Reference
-

GNSS scan driver definition for LR1110. +

GNSS scan driver definition for LR11XX. More...

-
#include "lr1110_gnss_types.h"
-#include "lr1110_types.h"
+
#include "lr11xx_gnss_types.h"
+#include "lr11xx_system_types.h"
+#include "lr11xx_types.h"
-Include dependency graph for lr1110_gnss.h:
+Include dependency graph for lr11xx_gnss.h:
-
- - - - - - +
+ + + + + + +
This graph shows which files directly or indirectly include this file:
-
- - - +
+ + +
-

Go to the source code of this file.

+

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

lr1110_status_t lr1110_gnss_get_result_size (const void *context, uint16_t *result_size)
 Get the size of results. More...
 
lr1110_status_t lr1110_gnss_read_results (const void *context, uint8_t *result_buffer, const uint16_t result_buffer_size)
 Read GNSS results. More...
 
lr1110_status_t lr1110_gnss_get_timings (const void *context, lr1110_gnss_timings_t *timings)
 Get the time spent in signal acquisition and signal analysis. More...
 
lr1110_status_t lr1110_gnss_almanac_update (const void *context, const uint8_t *blocks, const uint8_t nb_of_blocks)
 Update almanacs given as parameter. More...
 
lr1110_status_t lr1110_gnss_read_almanac (const void *context, lr1110_gnss_almanac_full_read_bytestream_t almanac_bytestream)
 Read the almanac. More...
 
lr1110_status_t lr1110_gnss_get_almanac_age_for_satellite (const void *context, const lr1110_gnss_satellite_id_t sv_id, uint16_t *almanac_age)
 Get almanac age for a satellite. More...
 
lr1110_status_t lr1110_gnss_push_solver_msg (const void *context, const uint8_t *payload, const uint16_t payload_size)
 Push data received from solver to LR1110. More...
 
lr1110_status_t lr1110_gnss_set_constellations_to_use (const void *context, const lr1110_gnss_constellation_mask_t constellation_mask)
 Activate the GNSS scan constellation. More...
 
lr1110_status_t lr1110_gnss_read_used_constellations (const void *context, lr1110_gnss_constellation_mask_t *constellations_used)
 Read constellation used by the GNSS scanner from the almanac update configuration. More...
 
lr1110_status_t lr1110_gnss_set_almanac_update (const void *context, const lr1110_gnss_constellation_mask_t constellations_to_update)
 Activate the almanac update. More...
 
lr1110_status_t lr1110_gnss_read_almanac_update (const void *context, lr1110_gnss_constellation_mask_t *constellations_to_update)
 Function to read the almanac update configuration. More...
 
lr1110_status_t lr1110_gnss_read_firmware_version (const void *context, lr1110_gnss_version_t *version)
 Function to read the GNSS firmware version. More...
 
lr1110_status_t lr1110_gnss_read_supported_constellations (const void *context, lr1110_gnss_constellation_mask_t *supported_constellations)
 Function to read the supported constellation, GPS or BEIDOU other constellations. More...
 
lr1110_status_t lr1110_gnss_set_scan_mode (const void *context, const lr1110_gnss_scan_mode_t scan_mode)
 Function to set the GNSS scan mode configuration. More...
 
lr1110_status_t lr1110_gnss_scan_autonomous (const void *context, const lr1110_gnss_date_t date, const lr1110_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
 Gnss scan with no assisted parameters needed. More...
 
lr1110_status_t lr1110_gnss_scan_assisted (const void *context, const lr1110_gnss_date_t date, const lr1110_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
 Gnss scan with assisted parameters. More...
 
lr1110_status_t lr1110_gnss_set_assistance_position (const void *context, const lr1110_gnss_solver_assistance_position_t *assistance_position)
 Function to set the assistance position. More...
 
lr1110_status_t lr1110_gnss_read_assistance_position (const void *context, lr1110_gnss_solver_assistance_position_t *assistance_position)
 Function to read the assistance position. More...
 
lr1110_status_t lr1110_gnss_push_dmc_msg (const void *context, uint8_t *dmc_msg, uint16_t dmc_msg_len)
 Host receives an update from the network or assembles itself the update message and send it to the LR1110. More...
 
lr1110_status_t lr1110_gnss_get_context_status (const void *context, lr1110_gnss_context_status_bytestream_t context_status_buffer)
 Get the GNSS context status. More...
 
lr1110_status_t lr1110_gnss_get_nb_detected_satellites (const void *context, uint8_t *nb_detected_satellites)
 Get the number of detected satellites during last scan. More...
 
lr1110_status_t lr1110_gnss_get_detected_satellites (const void *context, const uint8_t nb_detected_satellites, lr1110_gnss_detected_satellite_t *detected_satellite_id_snr_doppler)
 Get the satellites detected on last scan with their IDs, C/N (aka CNR) and doppler. More...
 
lr1110_status_t lr1110_gnss_parse_context_status_buffer (const lr1110_gnss_context_status_bytestream_t context_status_bytestream, lr1110_gnss_context_status_t *context_status)
 Parse a raw buffer of context status. More...
 
lr1110_status_t lr1110_gnss_get_result_destination (const uint8_t *result_buffer, const uint16_t result_buffer_size, lr1110_gnss_destination_t *destination)
 Extract the destination from the result returned by a GNSS scan. More...
 
uint16_t lr1110_gnss_compute_almanac_age (uint16_t almanac_date, uint16_t nb_days_between_epoch_and_corresponding_gps_time_rollover, uint16_t nb_days_since_epoch)
 Helper function that computes the age of an almanac. More...
 
lr11xx_status_t lr11xx_gnss_get_result_size (const void *context, uint16_t *result_size)
 Get the size of results. More...
 
lr11xx_status_t lr11xx_gnss_read_results (const void *context, uint8_t *result_buffer, const uint16_t result_buffer_size)
 Read GNSS results. More...
 
lr11xx_status_t lr11xx_gnss_get_timings (const void *context, lr11xx_gnss_timings_t *timings)
 Get the time spent in signal acquisition and signal analysis. More...
 
lr11xx_status_t lr11xx_gnss_almanac_update (const void *context, const uint8_t *blocks, const uint8_t nb_of_blocks)
 Update almanacs given as parameter. More...
 
lr11xx_status_t lr11xx_gnss_read_almanac (const void *context, lr11xx_gnss_almanac_full_read_bytestream_t almanac_bytestream)
 Read the almanac. More...
 
lr11xx_status_t lr11xx_gnss_get_almanac_age_for_satellite (const void *context, const lr11xx_gnss_satellite_id_t sv_id, uint16_t *almanac_age)
 Get almanac age for a satellite. More...
 
lr11xx_status_t lr11xx_gnss_push_solver_msg (const void *context, const uint8_t *payload, const uint16_t payload_size)
 Push data received from solver to LR11XX. More...
 
lr11xx_status_t lr11xx_gnss_set_constellations_to_use (const void *context, const lr11xx_gnss_constellation_mask_t constellation_mask)
 Activate the GNSS scan constellation. More...
 
lr11xx_status_t lr11xx_gnss_read_used_constellations (const void *context, lr11xx_gnss_constellation_mask_t *constellations_used)
 Read constellation used by the GNSS scanner from the almanac update configuration. More...
 
lr11xx_status_t lr11xx_gnss_set_almanac_update (const void *context, const lr11xx_gnss_constellation_mask_t constellations_to_update)
 Activate the almanac update. More...
 
lr11xx_status_t lr11xx_gnss_read_almanac_update (const void *context, lr11xx_gnss_constellation_mask_t *constellations_to_update)
 Function to read the almanac update configuration. More...
 
lr11xx_status_t lr11xx_gnss_read_firmware_version (const void *context, lr11xx_gnss_version_t *version)
 Function to read the GNSS firmware version. More...
 
lr11xx_status_t lr11xx_gnss_read_supported_constellations (const void *context, lr11xx_gnss_constellation_mask_t *supported_constellations)
 Function to read the supported constellation, GPS or BEIDOU other constellations. More...
 
lr11xx_status_t lr11xx_gnss_set_scan_mode (const void *context, const lr11xx_gnss_scan_mode_t scan_mode)
 Function to set the GNSS scan mode configuration. More...
 
lr11xx_status_t lr11xx_gnss_scan_autonomous (const void *context, const lr11xx_gnss_date_t date, const lr11xx_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
 Gnss scan with no assisted parameters needed. More...
 
lr11xx_status_t lr11xx_gnss_scan_assisted (const void *context, const lr11xx_gnss_date_t date, const lr11xx_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
 Gnss scan with assisted parameters. More...
 
lr11xx_status_t lr11xx_gnss_set_assistance_position (const void *context, const lr11xx_gnss_solver_assistance_position_t *assistance_position)
 Function to set the assistance position. More...
 
lr11xx_status_t lr11xx_gnss_read_assistance_position (const void *context, lr11xx_gnss_solver_assistance_position_t *assistance_position)
 Function to read the assistance position. More...
 
lr11xx_status_t lr11xx_gnss_push_dmc_msg (const void *context, uint8_t *dmc_msg, uint16_t dmc_msg_len)
 Host receives an update from the network or assembles itself the update message and send it to the LR11XX. More...
 
lr11xx_status_t lr11xx_gnss_get_context_status (const void *context, lr11xx_gnss_context_status_bytestream_t context_status_buffer)
 Get the GNSS context status. More...
 
lr11xx_status_t lr11xx_gnss_get_nb_detected_satellites (const void *context, uint8_t *nb_detected_satellites)
 Get the number of detected satellites during last scan. More...
 
lr11xx_status_t lr11xx_gnss_get_detected_satellites (const void *context, const uint8_t nb_detected_satellites, lr11xx_gnss_detected_satellite_t *detected_satellite_id_snr_doppler)
 Get the satellites detected on last scan with their IDs, C/N (aka CNR) and doppler. More...
 
lr11xx_status_t lr11xx_gnss_parse_context_status_buffer (const lr11xx_gnss_context_status_bytestream_t context_status_bytestream, lr11xx_gnss_context_status_t *context_status)
 Parse a raw buffer of context status. More...
 
lr11xx_status_t lr11xx_gnss_get_result_destination (const uint8_t *result_buffer, const uint16_t result_buffer_size, lr11xx_gnss_destination_t *destination)
 Extract the destination from the result returned by a GNSS scan. More...
 
uint16_t lr11xx_gnss_compute_almanac_age (uint16_t almanac_date, uint16_t nb_days_between_epoch_and_corresponding_gps_time_rollover, uint16_t nb_days_since_epoch)
 Helper function that computes the age of an almanac. More...
 
uint32_t lr11xx_gnss_get_consumption (lr11xx_system_reg_mode_t regulator, lr11xx_gnss_timings_t timings, lr11xx_gnss_constellation_mask_t constellations_used)
 Compute the power consumption in uAh based on the time spent in signal acquisition and signal analysis. More...
 

Detailed Description

-

GNSS scan driver definition for LR1110.

+

GNSS scan driver definition for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -188,14 +193,14 @@

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Function Documentation

- -

◆ lr1110_gnss_get_result_size()

+ +

◆ lr11xx_gnss_get_result_size()

- + @@ -215,7 +220,7 @@

Get the size of results.

-

This method returns the size in bytes of the results available in LR1110 result buffer.

+

This method returns the size in bytes of the results available in LR11XX result buffer.

Parameters

lr1110_status_t lr1110_gnss_get_result_size lr11xx_status_t lr11xx_gnss_get_result_size ( const void *  context,
@@ -227,14 +232,14 @@

-

◆ lr1110_gnss_read_results()

+ +

◆ lr11xx_gnss_read_results()

[in]contextChip implementation context
- + @@ -266,7 +271,7 @@

- +
lr1110_status_t lr1110_gnss_read_results lr11xx_status_t lr11xx_gnss_read_results ( const void *  context,
[in]contextChip implementation context
[out]result_bufferApplication provided buffer to be filled with result
[in]result_buffer_sizeThe number of bytes to read from the LR1110
[in]result_buffer_sizeThe number of bytes to read from the LR11XX
@@ -274,14 +279,14 @@

-

◆ lr1110_gnss_get_timings()

+ +

◆ lr11xx_gnss_get_timings()

- + @@ -289,7 +294,7 @@

- + @@ -313,14 +318,14 @@

-

◆ lr1110_gnss_almanac_update()

+ +

◆ lr11xx_gnss_almanac_update()

lr1110_status_t lr1110_gnss_get_timings lr11xx_status_t lr11xx_gnss_get_timings ( const void *  context, lr1110_gnss_timings_tlr11xx_gnss_timings_t timings 
- + @@ -350,7 +355,7 @@

Parameters

lr1110_status_t lr1110_gnss_almanac_update lr11xx_status_t lr11xx_gnss_almanac_update ( const void *  context,
- +
[in]contextChip implementation context
[in]blocksBuffer containing at least (nb_of_blocks * LR1110_GNSS_SINGLE_ALMANAC_WRITE_SIZE) bytes of almanac
[in]blocksBuffer containing at least (nb_of_blocks * LR11XX_GNSS_SINGLE_ALMANAC_WRITE_SIZE) bytes of almanac
[in]nb_of_blocksNumber of blocks to transfer
@@ -359,14 +364,14 @@

-

◆ lr1110_gnss_read_almanac()

+ +

◆ lr11xx_gnss_read_almanac()

- + @@ -374,7 +379,7 @@

- + @@ -397,14 +402,14 @@

-

◆ lr1110_gnss_get_almanac_age_for_satellite()

+ +

◆ lr11xx_gnss_get_almanac_age_for_satellite()

lr1110_status_t lr1110_gnss_read_almanac lr11xx_status_t lr11xx_gnss_read_almanac ( const void *  context, lr1110_gnss_almanac_full_read_bytestream_t lr11xx_gnss_almanac_full_read_bytestream_t  almanac_bytestream 
- + @@ -412,7 +417,7 @@

- + @@ -442,14 +447,14 @@

-

◆ lr1110_gnss_push_solver_msg()

+ +

◆ lr11xx_gnss_push_solver_msg()

lr1110_status_t lr1110_gnss_get_almanac_age_for_satellite lr11xx_status_t lr11xx_gnss_get_almanac_age_for_satellite ( const void *  context, const lr1110_gnss_satellite_id_t const lr11xx_gnss_satellite_id_t  sv_id,
- + @@ -474,7 +479,7 @@

-

Push data received from solver to LR1110.

+

Push data received from solver to LR11XX.

Parameters

lr1110_status_t lr1110_gnss_push_solver_msg lr11xx_status_t lr11xx_gnss_push_solver_msg ( const void *  context,
@@ -487,14 +492,14 @@

-

◆ lr1110_gnss_set_constellations_to_use()

+ +

◆ lr11xx_gnss_set_constellations_to_use()

[in]contextChip implementation context
- + @@ -502,7 +507,7 @@

- + @@ -517,23 +522,23 @@

Parameters

lr1110_status_t lr1110_gnss_set_constellations_to_use lr11xx_status_t lr11xx_gnss_set_constellations_to_use ( const void *  context, const lr1110_gnss_constellation_mask_t const lr11xx_gnss_constellation_mask_t  constellation_mask 
- +
[in]contextChip implementation context
[in]constellation_maskBit mask of the constellations to use. See lr1110_gnss_constellation_t for the possible values
[in]constellation_maskBit mask of the constellations to use. See lr11xx_gnss_constellation_t for the possible values
Returns
Operation status
-
See also
lr1110_gnss_read_used_constellations
+
See also
lr11xx_gnss_read_used_constellations
- -

◆ lr1110_gnss_read_used_constellations()

+ +

◆ lr11xx_gnss_read_used_constellations()

- + @@ -541,7 +546,7 @@

- + @@ -556,23 +561,23 @@

Parameters

lr1110_status_t lr1110_gnss_read_used_constellations lr11xx_status_t lr11xx_gnss_read_used_constellations ( const void *  context, lr1110_gnss_constellation_mask_tlr11xx_gnss_constellation_mask_t constellations_used 
- +
[in]contextChip implementation context
[out]constellations_usedBit mask of the constellations used. See lr1110_gnss_constellation_t for the possible values
[out]constellations_usedBit mask of the constellations used. See lr11xx_gnss_constellation_t for the possible values
Returns
Operation status
-
See also
lr1110_gnss_set_constellations_to_use
+
See also
lr11xx_gnss_set_constellations_to_use
- -

◆ lr1110_gnss_set_almanac_update()

+ +

◆ lr11xx_gnss_set_almanac_update()

- + @@ -580,7 +585,7 @@

- + @@ -595,7 +600,7 @@

Parameters

lr1110_status_t lr1110_gnss_set_almanac_update lr11xx_status_t lr11xx_gnss_set_almanac_update ( const void *  context, const lr1110_gnss_constellation_mask_t const lr11xx_gnss_constellation_mask_t  constellations_to_update 
- +
[in]contextChip implementation context
[in]constellations_to_updateBit mask of the constellations to mark to update. See lr1110_gnss_constellation_t for the possible values
[in]constellations_to_updateBit mask of the constellations to mark to update. See lr11xx_gnss_constellation_t for the possible values
@@ -603,14 +608,14 @@

-

◆ lr1110_gnss_read_almanac_update()

+ +

◆ lr11xx_gnss_read_almanac_update()

- + @@ -618,7 +623,7 @@

- + @@ -633,7 +638,7 @@

Parameters

lr1110_status_t lr1110_gnss_read_almanac_update lr11xx_status_t lr11xx_gnss_read_almanac_update ( const void *  context, lr1110_gnss_constellation_mask_tlr11xx_gnss_constellation_mask_t constellations_to_update 
- +
[in]contextChip implementation context
[out]constellations_to_updateBit mask of the constellations to mark to update. See lr1110_gnss_constellation_t for the possible values
[out]constellations_to_updateBit mask of the constellations to mark to update. See lr11xx_gnss_constellation_t for the possible values
@@ -641,14 +646,14 @@

-

◆ lr1110_gnss_read_firmware_version()

+ +

◆ lr11xx_gnss_read_firmware_version()

- + @@ -656,7 +661,7 @@

- + @@ -679,14 +684,14 @@

-

◆ lr1110_gnss_read_supported_constellations()

+ +

◆ lr11xx_gnss_read_supported_constellations()

lr1110_status_t lr1110_gnss_read_firmware_version lr11xx_status_t lr11xx_gnss_read_firmware_version ( const void *  context, lr1110_gnss_version_tlr11xx_gnss_version_t version 
- + @@ -694,7 +699,7 @@

- + @@ -709,7 +714,7 @@

Parameters

lr1110_status_t lr1110_gnss_read_supported_constellations lr11xx_status_t lr11xx_gnss_read_supported_constellations ( const void *  context, lr1110_gnss_constellation_mask_tlr11xx_gnss_constellation_mask_t supported_constellations 
- +
[in]contextChip implementation context
[out]supported_constellationsBit mask of the constellations used. See lr1110_gnss_constellation_t for the possible values
[out]supported_constellationsBit mask of the constellations used. See lr11xx_gnss_constellation_t for the possible values
@@ -717,14 +722,14 @@

-

◆ lr1110_gnss_set_scan_mode()

+ +

◆ lr11xx_gnss_set_scan_mode()

- + @@ -732,7 +737,7 @@

- + @@ -752,18 +757,18 @@

Returns
Operation status
-

lr1110_gnss_scan_mode_t

+

lr11xx_gnss_scan_mode_t

- -

◆ lr1110_gnss_scan_autonomous()

+ +

◆ lr11xx_gnss_scan_autonomous()

lr1110_status_t lr1110_gnss_set_scan_mode lr11xx_status_t lr11xx_gnss_set_scan_mode ( const void *  context, const lr1110_gnss_scan_mode_t const lr11xx_gnss_scan_mode_t  scan_mode 
- + @@ -771,13 +776,13 @@

- + - + @@ -805,8 +810,8 @@

- - + +
lr1110_status_t lr1110_gnss_scan_autonomous lr11xx_status_t lr11xx_gnss_scan_autonomous ( const void *  context, const lr1110_gnss_date_t const lr11xx_gnss_date_t  date,
const lr1110_gnss_search_mode_t const lr11xx_gnss_search_mode_t  effort_mode,
[in]contextChip implementation context
[in]dateThe actual date of scan. Its format is the number of seconds elapsed since January the 6th 1980 00:00:00 with leap seconds included.
[in]effort_modeEffort mode lr1110_gnss_search_mode_t
[in]gnss_input_parametersBit mask indicating which information is added in the output payload lr1110_gnss_input_parameters_e
[in]effort_modeEffort mode lr11xx_gnss_search_mode_t
[in]gnss_input_parametersBit mask indicating which information is added in the output payload lr11xx_gnss_result_fields_legacy_e
[in]nb_satThe expected number of satellite to provide. This value must be in the range [0:128]
@@ -815,14 +820,14 @@

-

◆ lr1110_gnss_scan_assisted()

+ +

◆ lr11xx_gnss_scan_assisted()

- + @@ -830,13 +835,13 @@

- + - + @@ -864,8 +869,8 @@

- - + +
lr1110_status_t lr1110_gnss_scan_assisted lr11xx_status_t lr11xx_gnss_scan_assisted ( const void *  context, const lr1110_gnss_date_t const lr11xx_gnss_date_t  date,
const lr1110_gnss_search_mode_t const lr11xx_gnss_search_mode_t  effort_mode,
[in]contextChip implementation context
[in]dateThe actual date of scan. Its format is the number of seconds elapsed since January the 6th 1980 00:00:00 with leap seconds included.
[in]effort_modeEffort mode lr1110_gnss_search_mode_t
[in]gnss_input_parametersBit mask indicating which information is added in the output payload lr1110_gnss_input_parameters_e
[in]effort_modeEffort mode lr11xx_gnss_search_mode_t
[in]gnss_input_parametersBit mask indicating which information is added in the output payload lr11xx_gnss_result_fields_legacy_e
[in]nb_satThe expected number of satellite to provide. This value must be in the range [0:128]
@@ -874,14 +879,14 @@

-

◆ lr1110_gnss_set_assistance_position()

+ +

◆ lr11xx_gnss_set_assistance_position()

- + @@ -889,7 +894,7 @@

- + @@ -908,19 +913,19 @@

Returns
Operation status
-
-

◆ lr1110_gnss_read_assistance_position()

+ +

◆ lr11xx_gnss_read_assistance_position()

lr1110_status_t lr1110_gnss_set_assistance_position lr11xx_status_t lr11xx_gnss_set_assistance_position ( const void *  context, const lr1110_gnss_solver_assistance_position_tconst lr11xx_gnss_solver_assistance_position_t assistance_position 
- + @@ -928,7 +933,7 @@

- + @@ -940,7 +945,7 @@

Function to read the assistance position.

-

The assistance position read may be different from the one set beforehand with lr1110_gnss_set_assistance_position due to a scaling computation.

+

The assistance position read may be different from the one set beforehand with lr11xx_gnss_set_assistance_position due to a scaling computation.

Parameters

lr1110_status_t lr1110_gnss_read_assistance_position lr11xx_status_t lr11xx_gnss_read_assistance_position ( const void *  context, lr1110_gnss_solver_assistance_position_tlr11xx_gnss_solver_assistance_position_t assistance_position 
@@ -948,19 +953,19 @@

Returns
Operation status
-
-

◆ lr1110_gnss_push_dmc_msg()

+ +

◆ lr11xx_gnss_push_dmc_msg()

[in]contextChip implementation context
- + @@ -985,7 +990,7 @@

-

Host receives an update from the network or assembles itself the update message and send it to the LR1110.

+

Host receives an update from the network or assembles itself the update message and send it to the LR11XX.

Parameters

lr1110_status_t lr1110_gnss_push_dmc_msg lr11xx_status_t lr11xx_gnss_push_dmc_msg ( const void *  context,
@@ -998,14 +1003,14 @@

-

◆ lr1110_gnss_get_context_status()

+ +

◆ lr11xx_gnss_get_context_status()

[in]contextChip implementation context
- + @@ -1013,7 +1018,7 @@

- + @@ -1025,7 +1030,7 @@

Get the GNSS context status.

-

This function returns the GNSS context status as a raw buffer. It is possible to use lr1110_gnss_parse_context_status_buffer to obtain the details of the context status.

+

This function returns the GNSS context status as a raw buffer. It is possible to use lr11xx_gnss_parse_context_status_buffer to obtain the details of the context status.

Parameters

lr1110_status_t lr1110_gnss_get_context_status lr11xx_status_t lr11xx_gnss_get_context_status ( const void *  context, lr1110_gnss_context_status_bytestream_t lr11xx_gnss_context_status_bytestream_t  context_status_buffer 
@@ -1034,18 +1039,18 @@

Returns
Operation status
-
See also
lr1110_gnss_parse_context_status_buffer
+
See also
lr11xx_gnss_parse_context_status_buffer
- -

◆ lr1110_gnss_get_nb_detected_satellites()

+ +

◆ lr11xx_gnss_get_nb_detected_satellites()

[in]contextChip implementation context
- + @@ -1076,14 +1081,14 @@

-

◆ lr1110_gnss_get_detected_satellites()

+ +

◆ lr11xx_gnss_get_detected_satellites()

lr1110_status_t lr1110_gnss_get_nb_detected_satellites lr11xx_status_t lr11xx_gnss_get_nb_detected_satellites ( const void *  context,
- + @@ -1097,7 +1102,7 @@

- + @@ -1113,7 +1118,7 @@

Parameters

lr1110_status_t lr1110_gnss_get_detected_satellites lr11xx_status_t lr11xx_gnss_get_detected_satellites ( const void *  context, lr1110_gnss_detected_satellite_tlr11xx_gnss_detected_satellite_t detected_satellite_id_snr_doppler 
- +
[in]contextChip implementation context
[in]nb_detected_satellitesNumber of detected satellites on last scan (obtained by calling lr1110_gnss_get_nb_detected_satellites)
[in]nb_detected_satellitesNumber of detected satellites on last scan (obtained by calling lr11xx_gnss_get_nb_detected_satellites)
[out]detected_satellite_id_snr_dopplerPointer to an array of structures of size big enough to contain nb_detected_satellites elements
@@ -1122,22 +1127,22 @@

-

◆ lr1110_gnss_parse_context_status_buffer()

+ +

◆ lr11xx_gnss_parse_context_status_buffer()

- + - + - + @@ -1151,24 +1156,24 @@

Parameters

lr1110_status_t lr1110_gnss_parse_context_status_buffer lr11xx_status_t lr11xx_gnss_parse_context_status_buffer (const lr1110_gnss_context_status_bytestream_t const lr11xx_gnss_context_status_bytestream_t  context_status_bytestream,
lr1110_gnss_context_status_tlr11xx_gnss_context_status_t context_status 
- - + +
[in]context_status_bytestreamThe raw buffer of context status to parse. It is up to the caller to ensure the buffer is at least LR1110_GNSS_CONTEXT_STATUS_LENGTH bytes long
[out]context_statusPointer to a structure of lr1110_gnss_context_status_t to be filled with information from context_status_bytestream
[in]context_status_bytestreamThe raw buffer of context status to parse. It is up to the caller to ensure the buffer is at least LR11XX_GNSS_CONTEXT_STATUS_LENGTH bytes long
[out]context_statusPointer to a structure of lr11xx_gnss_context_status_t to be filled with information from context_status_bytestream
Returns
Operation status
-
See also
lr1110_gnss_get_context_status
+
See also
lr11xx_gnss_get_context_status
- -

◆ lr1110_gnss_get_result_destination()

+ +

◆ lr11xx_gnss_get_result_destination()

- + @@ -1182,7 +1187,7 @@

- + @@ -1206,14 +1211,14 @@

-

◆ lr1110_gnss_compute_almanac_age()

+ +

◆ lr11xx_gnss_compute_almanac_age()

lr1110_status_t lr1110_gnss_get_result_destination lr11xx_status_t lr11xx_gnss_get_result_destination ( const uint8_t *  result_buffer, lr1110_gnss_destination_tlr11xx_gnss_destination_t destination 
- + @@ -1239,15 +1244,15 @@

Helper function that computes the age of an almanac.

-

This function does not call the LR1110. The almanac age is computed based on the following elements:

    -
  • almanac age as obtained from lr1110_gnss_get_almanac_age_for_satellite
  • +

    This function does not call the LR11XX. The almanac age is computed based on the following elements:

      +
    • almanac age as obtained from lr11xx_gnss_get_almanac_age_for_satellite
    • the number of days elapsed between Epoch (January 6th 1980) and the GPS rollover reference of the current almanac
    • the GPS date of today expressed in number of days elapsed since Epoch
    Remarks
    It is important to use for nb_days_between_epoch_and_corresponding_gps_time_rollover the GPS time rollover corresponding to the reference of the almanac_date. This is especially true when current date is just after a GPS time rollover.
    Parameters

uint16_t lr1110_gnss_compute_almanac_age uint16_t lr11xx_gnss_compute_almanac_age ( uint16_t  almanac_date,
- +
[in]almanac_dateAlmanac date as obtained from lr1110_gnss_get_almanac_age_for_satellite
[in]almanac_dateAlmanac date as obtained from lr11xx_gnss_get_almanac_age_for_satellite
[in]nb_days_between_epoch_and_corresponding_gps_time_rolloverNumber of days elapsed between GPS Epoch and the GPS rollover corresponding to the almanac_date
[in]nb_days_since_epochNumber of days elapsed between January 6th 1980 and now
@@ -1255,6 +1260,51 @@

Returns
Age of the almanac expressed in number of days between its start valid instant and now
+

+
+ +

◆ lr11xx_gnss_get_consumption()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint32_t lr11xx_gnss_get_consumption (lr11xx_system_reg_mode_t regulator,
lr11xx_gnss_timings_t timings,
lr11xx_gnss_constellation_mask_t constellations_used 
)
+
+ +

Compute the power consumption in uAh based on the time spent in signal acquisition and signal analysis.

+
Parameters
+ + + + +
[in]regulatorThe regulator used during last GNSS scan
[in]timingsTimings allowing to compute the current consumption
[in]constellations_usedBit mask of the constellations used
+
+
+
Returns
Current consumption in uAh
+
diff --git a/doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.map new file mode 100644 index 0000000..53a0116 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.md5 new file mode 100644 index 0000000..e2a94eb --- /dev/null +++ b/doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.md5 @@ -0,0 +1 @@ +f1c30a7c71c4286e714d97ca63422113 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__gnss_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..66bdc60beccf0d1948868df9943cb888d2bbf792 GIT binary patch literal 4827 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 WT4img@qvGpnm~N(r1qV literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/lr11xx__gnss_8h__incl.map b/doc/lr11xx/html/lr11xx__gnss_8h__incl.map new file mode 100644 index 0000000..1d13575 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__gnss_8h__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__gnss_8h__incl.md5 b/doc/lr11xx/html/lr11xx__gnss_8h__incl.md5 new file mode 100644 index 0000000..4bcd00f --- /dev/null +++ b/doc/lr11xx/html/lr11xx__gnss_8h__incl.md5 @@ -0,0 +1 @@ +b780f8461dc635bfeb319e9b6549d41e \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__gnss_8h__incl.png b/doc/lr11xx/html/lr11xx__gnss_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..0046bffb3057633649ec82f2bb90fe4c509b3fbe GIT binary patch literal 13394 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 + + + + + + +lr11xx_driver: lr11xx_driver/src/lr11xx_gnss.h Source File + + + + + + + + + +

+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
lr11xx_gnss.h
+
+
+Go to the documentation of this file.
1 
+
35 #ifndef LR11XX_GNSS_H
+
36 #define LR11XX_GNSS_H
+
37 
+
38 #ifdef __cplusplus
+
39 extern "C" {
+
40 #endif
+
41 
+
42 /*
+
43  * -----------------------------------------------------------------------------
+
44  * --- DEPENDENCIES ------------------------------------------------------------
+
45  */
+
46 
+
47 #include "lr11xx_gnss_types.h"
+
48 #include "lr11xx_system_types.h"
+
49 #include "lr11xx_types.h"
+
50 
+
51 /*
+
52  * -----------------------------------------------------------------------------
+
53  * --- PUBLIC MACROS -----------------------------------------------------------
+
54  */
+
55 
+
56 /*
+
57  * -----------------------------------------------------------------------------
+
58  * --- PUBLIC CONSTANTS --------------------------------------------------------
+
59  */
+
60 
+
61 /*
+
62  * -----------------------------------------------------------------------------
+
63  * --- PUBLIC TYPES ------------------------------------------------------------
+
64  */
+
65 
+
66 /*
+
67  * -----------------------------------------------------------------------------
+
68  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
+
69  */
+
70 
+
81 lr11xx_status_t lr11xx_gnss_get_result_size( const void* context, uint16_t* result_size );
+
82 
+
98 lr11xx_status_t lr11xx_gnss_read_results( const void* context, uint8_t* result_buffer,
+
99  const uint16_t result_buffer_size );
+
100 
+
111 lr11xx_status_t lr11xx_gnss_get_timings( const void* context, lr11xx_gnss_timings_t* timings );
+
112 
+
126 lr11xx_status_t lr11xx_gnss_almanac_update( const void* context, const uint8_t* blocks, const uint8_t nb_of_blocks );
+
127 
+
136 lr11xx_status_t lr11xx_gnss_read_almanac( const void* context,
+
137  lr11xx_gnss_almanac_full_read_bytestream_t almanac_bytestream );
+
138 
+ +
149  uint16_t* almanac_age );
+
150 
+
160 lr11xx_status_t lr11xx_gnss_push_solver_msg( const void* context, const uint8_t* payload, const uint16_t payload_size );
+
161 
+ +
174  const lr11xx_gnss_constellation_mask_t constellation_mask );
+
175 
+ +
188  lr11xx_gnss_constellation_mask_t* constellations_used );
+
189 
+ +
200  const lr11xx_gnss_constellation_mask_t constellations_to_update );
+
201 
+ +
212  lr11xx_gnss_constellation_mask_t* constellations_to_update );
+
213 
+ +
223 
+ +
234  lr11xx_gnss_constellation_mask_t* supported_constellations );
+
235 
+
246 lr11xx_status_t lr11xx_gnss_set_scan_mode( const void* context, const lr11xx_gnss_scan_mode_t scan_mode );
+
247 
+
261 lr11xx_status_t lr11xx_gnss_scan_autonomous( const void* context, const lr11xx_gnss_date_t date,
+
262  const lr11xx_gnss_search_mode_t effort_mode,
+
263  const uint8_t gnss_input_parameters, const uint8_t nb_sat );
+
264 
+
278 lr11xx_status_t lr11xx_gnss_scan_assisted( const void* context, const lr11xx_gnss_date_t date,
+
279  const lr11xx_gnss_search_mode_t effort_mode,
+
280  const uint8_t gnss_input_parameters, const uint8_t nb_sat );
+
281 
+ +
293  const void* context, const lr11xx_gnss_solver_assistance_position_t* assistance_position );
+
294 
+ +
309  lr11xx_gnss_solver_assistance_position_t* assistance_position );
+
310 
+
320 lr11xx_status_t lr11xx_gnss_push_dmc_msg( const void* context, uint8_t* dmc_msg, uint16_t dmc_msg_len );
+
321 
+ +
337  lr11xx_gnss_context_status_bytestream_t context_status_buffer );
+
338 
+
347 lr11xx_status_t lr11xx_gnss_get_nb_detected_satellites( const void* context, uint8_t* nb_detected_satellites );
+
348 
+ +
363  const void* context, const uint8_t nb_detected_satellites,
+
364  lr11xx_gnss_detected_satellite_t* detected_satellite_id_snr_doppler );
+
365 
+ +
379  const lr11xx_gnss_context_status_bytestream_t context_status_bytestream,
+
380  lr11xx_gnss_context_status_t* context_status );
+
381 
+
391 lr11xx_status_t lr11xx_gnss_get_result_destination( const uint8_t* result_buffer, const uint16_t result_buffer_size,
+
392  lr11xx_gnss_destination_t* destination );
+
393 
+
415 uint16_t lr11xx_gnss_compute_almanac_age( uint16_t almanac_date,
+
416  uint16_t nb_days_between_epoch_and_corresponding_gps_time_rollover,
+
417  uint16_t nb_days_since_epoch );
+
418 
+ +
429  lr11xx_gnss_constellation_mask_t constellations_used );
+
430 
+
431 #ifdef __cplusplus
+
432 }
+
433 #endif
+
434 
+
435 #endif // LR11XX_GNSS_H
+
436 
+
437 /* --- EOF ------------------------------------------------------------------ */
+
+
lr11xx_gnss_destination_t
GNSS response type indicates the destination: Host MCU, GNSS solver or GNSS DMC.
Definition: lr11xx_gnss_types.h:163
+
System driver types for LR11XX.
+
lr11xx_system_reg_mode_t
Regulator modes.
Definition: lr11xx_system_types.h:216
+
GNSS timings of the LR11XX.
Definition: lr11xx_gnss_types.h:274
+
lr11xx_status_t lr11xx_gnss_read_supported_constellations(const void *context, lr11xx_gnss_constellation_mask_t *supported_constellations)
Function to read the supported constellation, GPS or BEIDOU other constellations.
Definition: lr11xx_gnss.c:429
+
Type definitions for LR11XX.
+
lr11xx_status_t lr11xx_gnss_read_almanac(const void *context, lr11xx_gnss_almanac_full_read_bytestream_t almanac_bytestream)
Read the almanac.
Definition: lr11xx_gnss.c:265
+
uint8_t lr11xx_gnss_satellite_id_t
Satellite ID type.
Definition: lr11xx_gnss_types.h:109
+
uint16_t lr11xx_gnss_compute_almanac_age(uint16_t almanac_date, uint16_t nb_days_between_epoch_and_corresponding_gps_time_rollover, uint16_t nb_days_since_epoch)
Helper function that computes the age of an almanac.
Definition: lr11xx_gnss.c:668
+
lr11xx_status_t lr11xx_gnss_get_almanac_age_for_satellite(const void *context, const lr11xx_gnss_satellite_id_t sv_id, uint16_t *almanac_age)
Get almanac age for a satellite.
Definition: lr11xx_gnss.c:306
+
lr11xx_status_t lr11xx_gnss_get_timings(const void *context, lr11xx_gnss_timings_t *timings)
Get the time spent in signal acquisition and signal analysis.
Definition: lr11xx_gnss.c:218
+
uint8_t lr11xx_gnss_context_status_bytestream_t[LR11XX_GNSS_CONTEXT_STATUS_LENGTH]
Buffer that holds data for context status.
Definition: lr11xx_gnss_types.h:249
+
lr11xx_status_t lr11xx_gnss_get_context_status(const void *context, lr11xx_gnss_context_status_bytestream_t context_status_buffer)
Get the GNSS context status.
Definition: lr11xx_gnss.c:541
+
lr11xx_status_t lr11xx_gnss_get_nb_detected_satellites(const void *context, uint8_t *nb_detected_satellites)
Get the number of detected satellites during last scan.
Definition: lr11xx_gnss.c:553
+
lr11xx_gnss_scan_mode_t
GNSS single or double scan mode.
Definition: lr11xx_gnss_types.h:203
+
lr11xx_status_t lr11xx_gnss_get_detected_satellites(const void *context, const uint8_t nb_detected_satellites, lr11xx_gnss_detected_satellite_t *detected_satellite_id_snr_doppler)
Get the satellites detected on last scan with their IDs, C/N (aka CNR) and doppler.
Definition: lr11xx_gnss.c:564
+
lr11xx_status_t lr11xx_gnss_get_result_size(const void *context, uint16_t *result_size)
Get the size of results.
Definition: lr11xx_gnss.c:187
+
lr11xx_status_t lr11xx_gnss_almanac_update(const void *context, const uint8_t *blocks, const uint8_t nb_of_blocks)
Update almanacs given as parameter.
Definition: lr11xx_gnss.c:233
+
lr11xx_status_t lr11xx_gnss_scan_assisted(const void *context, const lr11xx_gnss_date_t date, const lr11xx_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
Gnss scan with assisted parameters.
Definition: lr11xx_gnss.c:471
+
lr11xx_status_t lr11xx_gnss_parse_context_status_buffer(const lr11xx_gnss_context_status_bytestream_t context_status_bytestream, lr11xx_gnss_context_status_t *context_status)
Parse a raw buffer of context status.
Definition: lr11xx_gnss.c:597
+
lr11xx_status_t lr11xx_gnss_set_constellations_to_use(const void *context, const lr11xx_gnss_constellation_mask_t constellation_mask)
Activate the GNSS scan constellation.
Definition: lr11xx_gnss.c:365
+
lr11xx_status_t lr11xx_gnss_read_results(const void *context, uint8_t *result_buffer, const uint16_t result_buffer_size)
Read GNSS results.
Definition: lr11xx_gnss.c:206
+
uint32_t lr11xx_gnss_date_t
Representation of absolute time for GNSS operations.
Definition: lr11xx_gnss_types.h:239
+
GNSS scan driver types for LR11XX.
+
uint8_t lr11xx_gnss_almanac_full_read_bytestream_t[LR11XX_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE]
Buffer that holds data for all almanacs full update - when reading.
Definition: lr11xx_gnss_types.h:244
+
lr11xx_gnss_search_mode_t
Search mode for GNSS scan.
Definition: lr11xx_gnss_types.h:154
+
lr11xx_status_t lr11xx_gnss_push_dmc_msg(const void *context, uint8_t *dmc_msg, uint16_t dmc_msg_len)
Host receives an update from the network or assembles itself the update message and send it to the LR...
Definition: lr11xx_gnss.c:530
+
lr11xx_status_t lr11xx_gnss_read_assistance_position(const void *context, lr11xx_gnss_solver_assistance_position_t *assistance_position)
Function to read the assistance position.
Definition: lr11xx_gnss.c:508
+
lr11xx_status_t lr11xx_gnss_get_result_destination(const uint8_t *result_buffer, const uint16_t result_buffer_size, lr11xx_gnss_destination_t *destination)
Extract the destination from the result returned by a GNSS scan.
Definition: lr11xx_gnss.c:635
+
lr11xx_status_t lr11xx_gnss_set_assistance_position(const void *context, const lr11xx_gnss_solver_assistance_position_t *assistance_position)
Function to set the assistance position.
Definition: lr11xx_gnss.c:490
+
enum lr11xx_status_e lr11xx_status_t
LR11XX status.
+
lr11xx_status_t lr11xx_gnss_read_almanac_update(const void *context, lr11xx_gnss_constellation_mask_t *constellations_to_update)
Function to read the almanac update configuration.
Definition: lr11xx_gnss.c:401
+
lr11xx_status_t lr11xx_gnss_set_almanac_update(const void *context, const lr11xx_gnss_constellation_mask_t constellations_to_update)
Activate the almanac update.
Definition: lr11xx_gnss.c:389
+
Version structure of the LR11XX GNSS firmware.
Definition: lr11xx_gnss_types.h:283
+
uint8_t lr11xx_gnss_constellation_mask_t
Bit mask of constellation configurations.
Definition: lr11xx_gnss_types.h:148
+
lr11xx_status_t lr11xx_gnss_set_scan_mode(const void *context, const lr11xx_gnss_scan_mode_t scan_mode)
Function to set the GNSS scan mode configuration.
Definition: lr11xx_gnss.c:441
+
lr11xx_status_t lr11xx_gnss_push_solver_msg(const void *context, const uint8_t *payload, const uint16_t payload_size)
Push data received from solver to LR11XX.
Definition: lr11xx_gnss.c:354
+
lr11xx_status_t lr11xx_gnss_read_used_constellations(const void *context, lr11xx_gnss_constellation_mask_t *constellations_used)
Read constellation used by the GNSS scanner from the almanac update configuration.
Definition: lr11xx_gnss.c:377
+
lr11xx_status_t lr11xx_gnss_read_firmware_version(const void *context, lr11xx_gnss_version_t *version)
Function to read the GNSS firmware version.
Definition: lr11xx_gnss.c:413
+
Assistance position.
Definition: lr11xx_gnss_types.h:255
+
Structure for GNSS context status.
Definition: lr11xx_gnss_types.h:292
+
lr11xx_status_t lr11xx_gnss_scan_autonomous(const void *context, const lr11xx_gnss_date_t date, const lr11xx_gnss_search_mode_t effort_mode, const uint8_t gnss_input_parameters, const uint8_t nb_sat)
Gnss scan with no assisted parameters needed.
Definition: lr11xx_gnss.c:452
+
Detected SV structure.
Definition: lr11xx_gnss_types.h:264
+
uint32_t lr11xx_gnss_get_consumption(lr11xx_system_reg_mode_t regulator, lr11xx_gnss_timings_t timings, lr11xx_gnss_constellation_mask_t constellations_used)
Compute the power consumption in uAh based on the time spent in signal acquisition and signal analysi...
Definition: lr11xx_gnss.c:675
+ + + + diff --git a/doc/lr11xx/html/lr11xx__gnss__types_8h.html b/doc/lr11xx/html/lr11xx__gnss__types_8h.html new file mode 100644 index 0000000..4fc8968 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__gnss__types_8h.html @@ -0,0 +1,526 @@ + + + + + + + +lr11xx_driver: lr11xx_driver/src/lr11xx_gnss_types.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
lr11xx_gnss_types.h File Reference
+
+
+ +

GNSS scan driver types for LR11XX. +More...

+
#include <stdbool.h>
+#include <stdint.h>
+
+Include dependency graph for lr11xx_gnss_types.h:
+
+
+ + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + +

+Data Structures

struct  lr11xx_gnss_solver_assistance_position_s
 Assistance position. More...
 
struct  lr11xx_gnss_detected_satellite_s
 Detected SV structure. More...
 
struct  lr11xx_gnss_timings_s
 GNSS timings of the LR11XX. More...
 
struct  lr11xx_gnss_version_s
 Version structure of the LR11XX GNSS firmware. More...
 
struct  lr11xx_gnss_context_status_s
 Structure for GNSS context status. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define LR11XX_GNSS_MAX_SIZE_ARRAY   2820
 Maximal buffer size. More...
 
+#define LR11XX_GNSS_FULL_UPDATE_N_ALMANACS   ( 128 )
 Number of almanacs in full update payload.
 
+#define LR11XX_GNSS_SINGLE_ALMANAC_READ_SIZE   ( 22 )
 Size of the almanac of a single satellite when reading.
 
+#define LR11XX_GNSS_SINGLE_ALMANAC_WRITE_SIZE   ( 20 )
 Size of the almanac of a single satellite when writing.
 
+#define LR11XX_GNSS_CONTEXT_STATUS_LENGTH   ( 9 )
 Size of the almanac of the GNSS context status buffer.
 
+#define LR11XX_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE    ( ( LR11XX_GNSS_FULL_UPDATE_N_ALMANACS * LR11XX_GNSS_SINGLE_ALMANAC_READ_SIZE ) + 4 )
 Size of the whole almanac when reading.
 
+#define LR11XX_GNSS_DMC_ALMANAC_UPDATE_POS   ( 1U )
 
+#define LR11XX_GNSS_DMC_ALMANAC_UPDATE_GPS_MASK   ( 0x01UL << LR11XX_GNSS_DMC_ALMANAC_UPDATE_POS )
 
+#define LR11XX_GNSS_DMC_ALMANAC_UPDATE_BEIDOU_MASK   ( 0x02UL << LR11XX_GNSS_DMC_ALMANAC_UPDATE_POS )
 
+#define LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_POS   ( 0U )
 
+#define LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_MASK   ( 0x01UL << LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_POS )
 
+#define LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_POS   ( 7U )
 
+#define LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_MASK   ( 0x01UL << LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_POS )
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

+typedef uint8_t lr11xx_gnss_satellite_id_t
 Satellite ID type.
 
typedef uint8_t lr11xx_gnss_constellation_mask_t
 Bit mask of constellation configurations. More...
 
+typedef enum lr11xx_gnss_error_code_e lr11xx_gnss_error_code_t
 GNSS error codes.
 
+typedef enum lr11xx_gnss_freq_search_space_e lr11xx_gnss_freq_search_space_t
 GNSS frequency search space.
 
typedef uint32_t lr11xx_gnss_date_t
 Representation of absolute time for GNSS operations. More...
 
+typedef uint8_t lr11xx_gnss_almanac_full_read_bytestream_t[LR11XX_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE]
 Buffer that holds data for all almanacs full update - when reading.
 
+typedef uint8_t lr11xx_gnss_context_status_bytestream_t[LR11XX_GNSS_CONTEXT_STATUS_LENGTH]
 Buffer that holds data for context status.
 
+typedef struct lr11xx_gnss_solver_assistance_position_s lr11xx_gnss_solver_assistance_position_t
 Assistance position.
 
+typedef struct lr11xx_gnss_detected_satellite_s lr11xx_gnss_detected_satellite_t
 Detected SV structure.
 
+typedef struct lr11xx_gnss_timings_s lr11xx_gnss_timings_t
 GNSS timings of the LR11XX.
 
+typedef struct lr11xx_gnss_version_s lr11xx_gnss_version_t
 Version structure of the LR11XX GNSS firmware.
 
+typedef struct lr11xx_gnss_context_status_s lr11xx_gnss_context_status_t
 Structure for GNSS context status.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Enumerations

enum  lr11xx_gnss_result_fields_legacy_e { LR11XX_GNSS_RESULTS_LEGACY_PSEUDO_RANGE_MASK = ( 1 << 0 ), +LR11XX_GNSS_RESULTS_LEGACY_DOPPLER_MASK = ( 1 << 1 ), +LR11XX_GNSS_RESULTS_LEGACY_BIT_CHANGE_MASK = ( 1 << 2 ) + }
 Bit mask indicating which information is added in the output payload - to be used with LR11XX_GNSS_SCAN_MODE_0_SINGLE_SCAN_LEGACY. More...
 
enum  lr11xx_gnss_result_fields_e { LR11XX_GNSS_RESULTS_DOPPLER_ENABLE_MASK = ( 1 << 0 ), +LR11XX_GNSS_RESULTS_DOPPLER_MASK = ( 1 << 1 ), +LR11XX_GNSS_RESULTS_BIT_CHANGE_MASK = ( 1 << 2 ) + }
 bit mask indicating which information is added in the output payload - to be used with LR11XX_GNSS_SCAN_MODE_3_SINGLE_SCAN_AND_5_FAST_SCANS More...
 
enum  lr11xx_gnss_constellation_t { LR11XX_GNSS_GPS_MASK = 0x01, +LR11XX_GNSS_BEIDOU_MASK = 0x02 + }
 Constellation identifiers.
 
enum  lr11xx_gnss_search_mode_t { LR11XX_GNSS_OPTION_DEFAULT = 0x00, +LR11XX_GNSS_OPTION_BEST_EFFORT = 0x01 + }
 Search mode for GNSS scan. More...
 
enum  lr11xx_gnss_destination_t { LR11XX_GNSS_DESTINATION_HOST = 0x00, +LR11XX_GNSS_DESTINATION_SOLVER = 0x01, +LR11XX_GNSS_DESTINATION_DMC = 0x02 + }
 GNSS response type indicates the destination: Host MCU, GNSS solver or GNSS DMC. More...
 
enum  lr11xx_gnss_message_host_status_t {
+  LR11XX_GNSS_HOST_OK = 0x00, +LR11XX_GNSS_HOST_UNEXPECTED_CMD = 0x01, +LR11XX_GNSS_HOST_UNIMPLEMENTED_CMD = 0x02, +LR11XX_GNSS_HOST_INVALID_PARAMETERS = 0x03, +
+  LR11XX_GNSS_HOST_MESSAGE_SANITY_CHECK_ERROR = 0x04, +LR11XX_GNSS_HOST_IQ_CAPTURE_FAILS = 0x05, +LR11XX_GNSS_HOST_NO_TIME = 0x06, +LR11XX_GNSS_HOST_NO_SATELLITE_DETECTED = 0x07, +
+  LR11XX_GNSS_HOST_ALMANAC_IN_FLASH_TOO_OLD = 0x08, +LR11XX_GNSS_HOST_ALMANAC_UPDATE_FAILS_CRC_ERROR = 0x09, +LR11XX_GNSS_HOST_ALMANAC_UPDATE_FAILS_FLASH_INTEGRITY_ERROR = 0x0A, +LR11XX_GNSS_HOST_ALMANAC_UPDATE_NOT_ALLOWED = 0x0B, +
+  LR11XX_GNSS_HOST_ALMANAC_CRC_ERROR = 0x0C, +LR11XX_GNSS_HOST_ALMANAC_VERSION_NOT_SUPPORTED = 0x0D, +LR11XX_GNSS_HOST_NOT_ENOUGH_SV_DETECTED_TO_BUILD_A_NAV_MESSAGE = 0x10 +
+ }
 Message to host indicating the status of the message.
 
enum  lr11xx_gnss_message_dmc_opcode_t { LR11XX_GNSS_DMC_STATUS = 0x18 + }
 Message to DMC operation code. More...
 
enum  lr11xx_gnss_scan_mode_t { LR11XX_GNSS_SCAN_MODE_0_SINGLE_SCAN_LEGACY = 0x00, +LR11XX_GNSS_SCAN_MODE_3_SINGLE_SCAN_AND_5_FAST_SCANS = 0x03 + }
 GNSS single or double scan mode. More...
 
enum  lr11xx_gnss_error_code_e {
+  LR11XX_GNSS_NO_ERROR = 0, +LR11XX_GNSS_ERROR_ALMANAC_TOO_OLD = 1, +LR11XX_GNSS_ERROR_UPDATE_CRC_MISMATCH = 2, +LR11XX_GNSS_ERROR_UPDATE_FLASH_MEMORY_INTEGRITY = 3, +
+  LR11XX_GNSS_ERROR_ALMANAC_UPDATE_NOT_ALLOWED = 4 +
+ }
 GNSS error codes. More...
 
enum  lr11xx_gnss_freq_search_space_e { LR11XX_GNSS_FREQUENCY_SEARCH_SPACE_250_HZ = 0, +LR11XX_GNSS_FREQUENCY_SEARCH_SPACE_500_HZ = 1, +LR11XX_GNSS_FREQUENCY_SEARCH_SPACE_1_KHZ = 2, +LR11XX_GNSS_FREQUENCY_SEARCH_SPACE_2_KHZ = 3 + }
 GNSS frequency search space.
 
+

Detailed Description

+

GNSS scan driver types for LR11XX.

+

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

+

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    +
  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • +
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • +
  • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  • +
+

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+

Macro Definition Documentation

+ +

◆ LR11XX_GNSS_MAX_SIZE_ARRAY

+ +
+
+ + + + +
#define LR11XX_GNSS_MAX_SIZE_ARRAY   2820
+
+ +

Maximal buffer size.

+

(128sv * 22bytes + 4bytes for CRC)

+ +
+
+

Typedef Documentation

+ +

◆ lr11xx_gnss_constellation_mask_t

+ +
+
+ + + + +
typedef uint8_t lr11xx_gnss_constellation_mask_t
+
+ +

Bit mask of constellation configurations.

+
See also
lr11xx_gnss_constellation_t
+ +
+
+ +

◆ lr11xx_gnss_date_t

+ +
+
+ + + + +
typedef uint32_t lr11xx_gnss_date_t
+
+ +

Representation of absolute time for GNSS operations.

+

The GNSS absolute time is represented as a 32 bits word that is the number of seconds elapsed since January 6th 1980, 00:00:00

+

The GNSS absolute time must take into account the Leap Seconds between UTC time and GPS time.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lr11xx_gnss_result_fields_legacy_e

+ +
+
+ +

Bit mask indicating which information is added in the output payload - to be used with LR11XX_GNSS_SCAN_MODE_0_SINGLE_SCAN_LEGACY.

+ + + + +
Enumerator
LR11XX_GNSS_RESULTS_LEGACY_PSEUDO_RANGE_MASK 

Add pseudo-range information if set.

+
LR11XX_GNSS_RESULTS_LEGACY_DOPPLER_MASK 

Add all Doppler information if set - up to 5 if not.

+
LR11XX_GNSS_RESULTS_LEGACY_BIT_CHANGE_MASK 

Add bit change if set.

+
+ +
+
+ +

◆ lr11xx_gnss_result_fields_e

+ +
+
+ + + + +
enum lr11xx_gnss_result_fields_e
+
+ +

bit mask indicating which information is added in the output payload - to be used with LR11XX_GNSS_SCAN_MODE_3_SINGLE_SCAN_AND_5_FAST_SCANS

+ + + + +
Enumerator
LR11XX_GNSS_RESULTS_DOPPLER_ENABLE_MASK 

Add Doppler information if set.

+
LR11XX_GNSS_RESULTS_DOPPLER_MASK 

Add up to 14 Doppler if set - up to 7 if not. Valid if LR11XX_GNSS_RESULTS_DOPPLER_ENABLE_MASK is set

+
LR11XX_GNSS_RESULTS_BIT_CHANGE_MASK 

Add bit change if set.

+
+ +
+
+ +

◆ lr11xx_gnss_search_mode_t

+ +
+
+ + + + +
enum lr11xx_gnss_search_mode_t
+
+ +

Search mode for GNSS scan.

+ + + +
Enumerator
LR11XX_GNSS_OPTION_DEFAULT 

Search all requested satellites or fail.

+
LR11XX_GNSS_OPTION_BEST_EFFORT 

Add additional search if not all satellites are found.

+
+ +
+
+ +

◆ lr11xx_gnss_destination_t

+ +
+
+ + + + +
enum lr11xx_gnss_destination_t
+
+ +

GNSS response type indicates the destination: Host MCU, GNSS solver or GNSS DMC.

+ + + + +
Enumerator
LR11XX_GNSS_DESTINATION_HOST 

Host MCU.

+
LR11XX_GNSS_DESTINATION_SOLVER 

GNSS Solver.

+
LR11XX_GNSS_DESTINATION_DMC 

GNSS DMC.

+
+ +
+
+ +

◆ lr11xx_gnss_message_dmc_opcode_t

+ +
+
+ +

Message to DMC operation code.

+ + +
Enumerator
LR11XX_GNSS_DMC_STATUS 

Status message in payload.

+
+ +
+
+ +

◆ lr11xx_gnss_scan_mode_t

+ +
+
+ + + + +
enum lr11xx_gnss_scan_mode_t
+
+ +

GNSS single or double scan mode.

+ + + +
Enumerator
LR11XX_GNSS_SCAN_MODE_0_SINGLE_SCAN_LEGACY 

Generated NAV message format = NAV1.

+
LR11XX_GNSS_SCAN_MODE_3_SINGLE_SCAN_AND_5_FAST_SCANS 

Generated NAV message format = NAV2.

+
+ +
+
+ +

◆ lr11xx_gnss_error_code_e

+ +
+
+ + + + +
enum lr11xx_gnss_error_code_e
+
+ +

GNSS error codes.

+ + +
Enumerator
LR11XX_GNSS_ERROR_ALMANAC_UPDATE_NOT_ALLOWED 

Impossible to update more than one constellation at a time.

+
+ +
+
+
+ + + + diff --git a/doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.map new file mode 100644 index 0000000..607bd7c --- /dev/null +++ b/doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.md5 new file mode 100644 index 0000000..54d8120 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.md5 @@ -0,0 +1 @@ +0b9bd022794ca99e0346b36c4f63d650 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__gnss__types_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..e3191b63766fa2df37e43c1bb9ac6129113a6f04 GIT binary patch literal 7822 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 at7^p$S0|IC$UuV`@ - + + diff --git a/doc/lr11xx/html/lr11xx__gnss__types_8h__incl.md5 b/doc/lr11xx/html/lr11xx__gnss__types_8h__incl.md5 new file mode 100644 index 0000000..494c952 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__gnss__types_8h__incl.md5 @@ -0,0 +1 @@ +6fa556b5376e3c27e45d50918b495537 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__gnss__types_8h__incl.png b/doc/lr11xx/html/lr11xx__gnss__types_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..294efe3b5844668146c41b3233907aaef35f53b0 GIT binary patch literal 6177 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 + + + + + + +lr11xx_driver: lr11xx_driver/src/lr11xx_gnss_types.h Source File + + + + + + + + + +
+
+ + + + + + +
+
lr11xx_driver +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
lr11xx_gnss_types.h
+
+
+Go to the documentation of this file.
1 
+
35 #ifndef LR11XX_GNSS_TYPES_H
+
36 #define LR11XX_GNSS_TYPES_H
+
37 
+
38 #ifdef __cplusplus
+
39 extern "C" {
+
40 #endif
+
41 
+
42 /*
+
43  * -----------------------------------------------------------------------------
+
44  * --- DEPENDENCIES ------------------------------------------------------------
+
45  */
+
46 
+
47 #include <stdbool.h>
+
48 #include <stdint.h>
+
49 
+
50 /*
+
51  * -----------------------------------------------------------------------------
+
52  * --- PUBLIC MACROS -----------------------------------------------------------
+
53  */
+
54 
+
55 /*
+
56  * -----------------------------------------------------------------------------
+
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
+
58  */
+
59 
+
63 #define LR11XX_GNSS_MAX_SIZE_ARRAY 2820
+
64 
+
65 
+
68 #define LR11XX_GNSS_FULL_UPDATE_N_ALMANACS ( 128 )
+
69 
+
73 #define LR11XX_GNSS_SINGLE_ALMANAC_READ_SIZE ( 22 )
+
74 
+
78 #define LR11XX_GNSS_SINGLE_ALMANAC_WRITE_SIZE ( 20 )
+
79 
+
83 #define LR11XX_GNSS_CONTEXT_STATUS_LENGTH ( 9 )
+
84 
+
88 #define LR11XX_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE \
+
89  ( ( LR11XX_GNSS_FULL_UPDATE_N_ALMANACS * LR11XX_GNSS_SINGLE_ALMANAC_READ_SIZE ) + 4 )
+
90 
+
91 #define LR11XX_GNSS_DMC_ALMANAC_UPDATE_POS ( 1U )
+
92 #define LR11XX_GNSS_DMC_ALMANAC_UPDATE_GPS_MASK ( 0x01UL << LR11XX_GNSS_DMC_ALMANAC_UPDATE_POS )
+
93 #define LR11XX_GNSS_DMC_ALMANAC_UPDATE_BEIDOU_MASK ( 0x02UL << LR11XX_GNSS_DMC_ALMANAC_UPDATE_POS )
+
94 
+
95 #define LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_POS ( 0U )
+
96 #define LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_MASK ( 0x01UL << LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_MSB_POS )
+
97 
+
98 #define LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_POS ( 7U )
+
99 #define LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_MASK ( 0x01UL << LR11XX_GNSS_DMC_FREQUENCY_SEARCH_SPACE_LSB_POS )
+
100 
+
101 /*
+
102  * -----------------------------------------------------------------------------
+
103  * --- PUBLIC TYPES ------------------------------------------------------------
+
104  */
+
105 
+ +
110 
+ +
116 {
+ + + +
120 };
+
121 
+ +
127 {
+ +
129  LR11XX_GNSS_RESULTS_DOPPLER_MASK = ( 1 << 1 ),
+ +
132 };
+
133 
+
137 typedef enum
+
138 {
+
139  LR11XX_GNSS_GPS_MASK = 0x01,
+
140  LR11XX_GNSS_BEIDOU_MASK = 0x02,
+ +
142 
+ +
149 
+
153 typedef enum
+
154 {
+ + + +
158 
+
162 typedef enum
+
163 {
+ + + + +
168 
+
172 typedef enum
+
173 {
+
174  LR11XX_GNSS_HOST_OK = 0x00,
+
175  LR11XX_GNSS_HOST_UNEXPECTED_CMD = 0x01,
+
176  LR11XX_GNSS_HOST_UNIMPLEMENTED_CMD = 0x02,
+
177  LR11XX_GNSS_HOST_INVALID_PARAMETERS = 0x03,
+
178  LR11XX_GNSS_HOST_MESSAGE_SANITY_CHECK_ERROR = 0x04,
+
179  LR11XX_GNSS_HOST_IQ_CAPTURE_FAILS = 0x05,
+
180  LR11XX_GNSS_HOST_NO_TIME = 0x06,
+
181  LR11XX_GNSS_HOST_NO_SATELLITE_DETECTED = 0x07,
+
182  LR11XX_GNSS_HOST_ALMANAC_IN_FLASH_TOO_OLD = 0x08,
+
183  LR11XX_GNSS_HOST_ALMANAC_UPDATE_FAILS_CRC_ERROR = 0x09,
+
184  LR11XX_GNSS_HOST_ALMANAC_UPDATE_FAILS_FLASH_INTEGRITY_ERROR = 0x0A,
+
185  LR11XX_GNSS_HOST_ALMANAC_UPDATE_NOT_ALLOWED = 0x0B,
+
186  LR11XX_GNSS_HOST_ALMANAC_CRC_ERROR = 0x0C,
+
187  LR11XX_GNSS_HOST_ALMANAC_VERSION_NOT_SUPPORTED = 0x0D,
+
188  LR11XX_GNSS_HOST_NOT_ENOUGH_SV_DETECTED_TO_BUILD_A_NAV_MESSAGE = 0x10,
+ +
190 
+
194 typedef enum
+
195 {
+ + +
198 
+
202 typedef enum
+
203 {
+ + + +
207 
+ +
212 {
+
213  LR11XX_GNSS_NO_ERROR = 0,
+
214  LR11XX_GNSS_ERROR_ALMANAC_TOO_OLD = 1,
+
215  LR11XX_GNSS_ERROR_UPDATE_CRC_MISMATCH = 2,
+
216  LR11XX_GNSS_ERROR_UPDATE_FLASH_MEMORY_INTEGRITY = 3,
+ + +
219 
+ +
224 {
+
225  LR11XX_GNSS_FREQUENCY_SEARCH_SPACE_250_HZ = 0,
+
226  LR11XX_GNSS_FREQUENCY_SEARCH_SPACE_500_HZ = 1,
+
227  LR11XX_GNSS_FREQUENCY_SEARCH_SPACE_1_KHZ = 2,
+
228  LR11XX_GNSS_FREQUENCY_SEARCH_SPACE_2_KHZ = 3,
+ +
230 
+
239 typedef uint32_t lr11xx_gnss_date_t;
+
240 
+ +
245 
+ +
250 
+ +
255 {
+
256  float latitude;
+
257  float longitude;
+ +
259 
+ +
264 {
+
265  lr11xx_gnss_satellite_id_t satellite_id;
+
266  int8_t cnr;
+
267  int16_t doppler;
+ +
269 
+
273 typedef struct lr11xx_gnss_timings_s
+
274 {
+
275  uint32_t radio_ms;
+
276  uint32_t computation_ms;
+ +
278 
+
282 typedef struct lr11xx_gnss_version_s
+
283 {
+
284  uint8_t gnss_firmware;
+
285  uint8_t gnss_almanac;
+ +
287 
+ +
292 {
+
293  uint8_t firmware_version;
+
294  uint32_t global_almanac_crc;
+
295  lr11xx_gnss_error_code_t error_code;
+
296  bool almanac_update_gps;
+
297  bool almanac_update_beidou;
+
298  lr11xx_gnss_freq_search_space_t freq_search_space;
+ +
300 
+
301 /*
+
302  * -----------------------------------------------------------------------------
+
303  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
+
304  */
+
305 
+
306 #ifdef __cplusplus
+
307 }
+
308 #endif
+
309 
+
310 #endif // LR11XX_GNSS_TYPES_H
+
311 
+
312 /* --- EOF ------------------------------------------------------------------ */
+
+
lr11xx_gnss_destination_t
GNSS response type indicates the destination: Host MCU, GNSS solver or GNSS DMC.
Definition: lr11xx_gnss_types.h:163
+
uint8_t gnss_firmware
Version of the firmware.
Definition: lr11xx_gnss_types.h:284
+
int16_t doppler
SV doppler in Hz.
Definition: lr11xx_gnss_types.h:267
+
@ LR11XX_GNSS_ERROR_ALMANAC_UPDATE_NOT_ALLOWED
Impossible to update more than one constellation at a time.
Definition: lr11xx_gnss_types.h:217
+
#define LR11XX_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE
Size of the whole almanac when reading.
Definition: lr11xx_gnss_types.h:88
+
@ LR11XX_GNSS_OPTION_BEST_EFFORT
Add additional search if not all satellites are found.
Definition: lr11xx_gnss_types.h:156
+
GNSS timings of the LR11XX.
Definition: lr11xx_gnss_types.h:274
+
float longitude
Longitude 12 bits (longitude in degree * 2048/180) with resolution 0.088°
Definition: lr11xx_gnss_types.h:257
+
lr11xx_gnss_result_fields_legacy_e
Bit mask indicating which information is added in the output payload - to be used with LR11XX_GNSS_SC...
Definition: lr11xx_gnss_types.h:116
+
struct lr11xx_gnss_timings_s lr11xx_gnss_timings_t
GNSS timings of the LR11XX.
+
@ LR11XX_GNSS_SCAN_MODE_0_SINGLE_SCAN_LEGACY
Generated NAV message format = NAV1.
Definition: lr11xx_gnss_types.h:204
+
lr11xx_gnss_result_fields_e
bit mask indicating which information is added in the output payload - to be used with LR11XX_GNSS_SC...
Definition: lr11xx_gnss_types.h:127
+
struct lr11xx_gnss_solver_assistance_position_s lr11xx_gnss_solver_assistance_position_t
Assistance position.
+
enum lr11xx_gnss_freq_search_space_e lr11xx_gnss_freq_search_space_t
GNSS frequency search space.
+
uint8_t lr11xx_gnss_satellite_id_t
Satellite ID type.
Definition: lr11xx_gnss_types.h:109
+
@ LR11XX_GNSS_RESULTS_DOPPLER_MASK
Definition: lr11xx_gnss_types.h:129
+
uint8_t lr11xx_gnss_context_status_bytestream_t[LR11XX_GNSS_CONTEXT_STATUS_LENGTH]
Buffer that holds data for context status.
Definition: lr11xx_gnss_types.h:249
+
lr11xx_gnss_scan_mode_t
GNSS single or double scan mode.
Definition: lr11xx_gnss_types.h:203
+
@ LR11XX_GNSS_DESTINATION_DMC
GNSS DMC.
Definition: lr11xx_gnss_types.h:166
+
lr11xx_gnss_error_code_e
GNSS error codes.
Definition: lr11xx_gnss_types.h:212
+
enum lr11xx_gnss_error_code_e lr11xx_gnss_error_code_t
GNSS error codes.
+
@ LR11XX_GNSS_DMC_STATUS
Status message in payload.
Definition: lr11xx_gnss_types.h:196
+
@ LR11XX_GNSS_RESULTS_LEGACY_PSEUDO_RANGE_MASK
Add pseudo-range information if set.
Definition: lr11xx_gnss_types.h:117
+
struct lr11xx_gnss_version_s lr11xx_gnss_version_t
Version structure of the LR11XX GNSS firmware.
+
#define LR11XX_GNSS_CONTEXT_STATUS_LENGTH
Size of the almanac of the GNSS context status buffer.
Definition: lr11xx_gnss_types.h:83
+
uint32_t lr11xx_gnss_date_t
Representation of absolute time for GNSS operations.
Definition: lr11xx_gnss_types.h:239
+
lr11xx_gnss_message_dmc_opcode_t
Message to DMC operation code.
Definition: lr11xx_gnss_types.h:195
+
float latitude
Latitude 12 bits (latitude in degree * 2048/90) with resolution 0.044°
Definition: lr11xx_gnss_types.h:256
+
uint8_t lr11xx_gnss_almanac_full_read_bytestream_t[LR11XX_GNSS_FULL_ALMANAC_READ_BUFFER_SIZE]
Buffer that holds data for all almanacs full update - when reading.
Definition: lr11xx_gnss_types.h:244
+
@ LR11XX_GNSS_DESTINATION_SOLVER
GNSS Solver.
Definition: lr11xx_gnss_types.h:165
+
@ LR11XX_GNSS_DESTINATION_HOST
Host MCU.
Definition: lr11xx_gnss_types.h:164
+
struct lr11xx_gnss_detected_satellite_s lr11xx_gnss_detected_satellite_t
Detected SV structure.
+
lr11xx_gnss_search_mode_t
Search mode for GNSS scan.
Definition: lr11xx_gnss_types.h:154
+
@ LR11XX_GNSS_SCAN_MODE_3_SINGLE_SCAN_AND_5_FAST_SCANS
Generated NAV message format = NAV2.
Definition: lr11xx_gnss_types.h:205
+
lr11xx_gnss_constellation_t
Constellation identifiers.
Definition: lr11xx_gnss_types.h:138
+
@ LR11XX_GNSS_OPTION_DEFAULT
Search all requested satellites or fail.
Definition: lr11xx_gnss_types.h:155
+
int8_t cnr
Carrier-to-noise ration (C/N) in dB.
Definition: lr11xx_gnss_types.h:266
+
Version structure of the LR11XX GNSS firmware.
Definition: lr11xx_gnss_types.h:283
+
lr11xx_gnss_freq_search_space_e
GNSS frequency search space.
Definition: lr11xx_gnss_types.h:224
+
@ LR11XX_GNSS_RESULTS_LEGACY_DOPPLER_MASK
Add all Doppler information if set - up to 5 if not.
Definition: lr11xx_gnss_types.h:118
+
uint8_t lr11xx_gnss_constellation_mask_t
Bit mask of constellation configurations.
Definition: lr11xx_gnss_types.h:148
+
@ LR11XX_GNSS_RESULTS_BIT_CHANGE_MASK
Add bit change if set.
Definition: lr11xx_gnss_types.h:131
+
lr11xx_gnss_message_host_status_t
Message to host indicating the status of the message.
Definition: lr11xx_gnss_types.h:173
+
Assistance position.
Definition: lr11xx_gnss_types.h:255
+
struct lr11xx_gnss_context_status_s lr11xx_gnss_context_status_t
Structure for GNSS context status.
+
Structure for GNSS context status.
Definition: lr11xx_gnss_types.h:292
+
@ LR11XX_GNSS_RESULTS_LEGACY_BIT_CHANGE_MASK
Add bit change if set.
Definition: lr11xx_gnss_types.h:119
+
Detected SV structure.
Definition: lr11xx_gnss_types.h:264
+
uint8_t gnss_almanac
Version of the almanac format.
Definition: lr11xx_gnss_types.h:285
+
@ LR11XX_GNSS_RESULTS_DOPPLER_ENABLE_MASK
Add Doppler information if set.
Definition: lr11xx_gnss_types.h:128
+ + + + diff --git a/doc/lr1110/html/lr1110__hal_8h.html b/doc/lr11xx/html/lr11xx__hal_8h.html similarity index 67% rename from doc/lr1110/html/lr1110__hal_8h.html rename to doc/lr11xx/html/lr11xx__hal_8h.html index 98588ec..e0d255f 100644 --- a/doc/lr1110/html/lr1110__hal_8h.html +++ b/doc/lr11xx/html/lr11xx__hal_8h.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_hal.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_hal.h File Reference @@ -21,7 +21,7 @@ -
lr1110_driver +
lr11xx_driver
@@ -61,7 +61,7 @@
@@ -71,20 +71,20 @@ Enumerations | Functions
-
lr1110_hal.h File Reference
+
lr11xx_hal.h File Reference
-

Hardware Abstraction Layer (HAL) interface for LR1110. +

Hardware Abstraction Layer (HAL) interface for LR11XX. More...

#include <stdint.h>
#include <stdbool.h>
-Include dependency graph for lr1110_hal.h:
+Include dependency graph for lr11xx_hal.h:
-
- - +
+ + @@ -92,67 +92,67 @@
This graph shows which files directly or indirectly include this file:
-
- - - - - - - - - - +
+ + + + + + + + + +
-

Go to the source code of this file.

+

Go to the source code of this file.

- - - + + +

Macros

-#define LR1110_NOP   ( 0x00 )
 Write this to SPI bus while reading data, or as a dummy/placeholder.
 
+#define LR11XX_NOP   ( 0x00 )
 Write this to SPI bus while reading data, or as a dummy/placeholder.
 
- - - + + +

Typedefs

-typedef enum lr1110_hal_status_e lr1110_hal_status_t
 LR1110 HAL status.
 
+typedef enum lr11xx_hal_status_e lr11xx_hal_status_t
 LR11XX HAL status.
 
- - - + +

Enumerations

enum  lr1110_hal_status_e { LR1110_HAL_STATUS_OK = 0, -LR1110_HAL_STATUS_ERROR = 3 +
enum  lr11xx_hal_status_e { LR11XX_HAL_STATUS_OK = 0, +LR11XX_HAL_STATUS_ERROR = 3 }
 LR1110 HAL status.
 
 LR11XX HAL status.
 
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Functions

lr1110_hal_status_t lr1110_hal_write (const void *context, const uint8_t *command, const uint16_t command_length, const uint8_t *data, const uint16_t data_length)
 Radio data transfer - write. More...
 
lr1110_hal_status_t lr1110_hal_read (const void *context, const uint8_t *command, const uint16_t command_length, uint8_t *data, const uint16_t data_length)
 Radio data transfer - read. More...
 
lr1110_hal_status_t lr1110_hal_direct_read (const void *context, uint8_t *data, const uint16_t data_length)
 Direct read from the SPI bus. More...
 
lr1110_hal_status_t lr1110_hal_reset (const void *context)
 Reset the radio. More...
 
lr1110_hal_status_t lr1110_hal_wakeup (const void *context)
 Wake the radio up. More...
 
static uint8_t lr1110_hal_compute_crc (const uint8_t initial_value, const uint8_t *buffer, uint16_t length)
 Return the computed CRC. More...
 
lr11xx_hal_status_t lr11xx_hal_write (const void *context, const uint8_t *command, const uint16_t command_length, const uint8_t *data, const uint16_t data_length)
 Radio data transfer - write. More...
 
lr11xx_hal_status_t lr11xx_hal_read (const void *context, const uint8_t *command, const uint16_t command_length, uint8_t *data, const uint16_t data_length)
 Radio data transfer - read. More...
 
lr11xx_hal_status_t lr11xx_hal_direct_read (const void *context, uint8_t *data, const uint16_t data_length)
 Direct read from the SPI bus. More...
 
lr11xx_hal_status_t lr11xx_hal_reset (const void *context)
 Reset the radio. More...
 
lr11xx_hal_status_t lr11xx_hal_wakeup (const void *context)
 Wake the radio up. More...
 
static uint8_t lr11xx_hal_compute_crc (const uint8_t initial_value, const uint8_t *buffer, uint16_t length)
 Return the computed CRC. More...
 

Detailed Description

-

Hardware Abstraction Layer (HAL) interface for LR1110.

+

Hardware Abstraction Layer (HAL) interface for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -161,14 +161,14 @@

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Function Documentation

- -

◆ lr1110_hal_write()

+ +

◆ lr11xx_hal_write()

- + @@ -220,14 +220,14 @@

-

◆ lr1110_hal_read()

+ +

◆ lr11xx_hal_read()

lr1110_hal_status_t lr1110_hal_write lr11xx_hal_status_t lr11xx_hal_write ( const void *  context,
- + @@ -277,18 +277,18 @@

Returns
Operation status
-
Remarks
Some hardware SPI implementations write arbitary values on the MOSI line while reading. If this is done on the LR1110, non-zero values may be interpreted as commands. This driver does not exploit this functionality, and expects that zeros be sent on the MOSI line when this command is reading the command response data.
+
Remarks
Some hardware SPI implementations write arbitary values on the MOSI line while reading. If this is done on the LR11XX, non-zero values may be interpreted as commands. This driver does not exploit this functionality, and expects that zeros be sent on the MOSI line when this command is reading the command response data.
-
-

◆ lr1110_hal_direct_read()

+ +

◆ lr11xx_hal_direct_read()

lr1110_hal_status_t lr1110_hal_read lr11xx_hal_status_t lr11xx_hal_read ( const void *  context,
- + @@ -314,11 +314,11 @@

Direct read from the SPI bus.

-
Remarks
Unlike lr1110_hal_read, this is a simple direct SPI bus SS/read/nSS operation. While reading the response data, the implementation of this function must ensure that only zero bytes (NOP) are written to the SPI bus.
+
Remarks
Unlike lr11xx_hal_read, this is a simple direct SPI bus SS/read/nSS operation. While reading the response data, the implementation of this function must ensure that only zero bytes (NOP) are written to the SPI bus.
-Formerly, that function depended on a lr1110_hal_write_read API function, which required bidirectional SPI communication. Given that all other radio functionality can be implemented with unidirectional SPI, it has been decided to make this HAL API change to simplify implementation requirements.
+Formerly, that function depended on a lr11xx_hal_write_read API function, which required bidirectional SPI communication. Given that all other radio functionality can be implemented with unidirectional SPI, it has been decided to make this HAL API change to simplify implementation requirements.
-Only required by the lr1110_system_get_status and lr1110_bootloader_get_status commands
+Only required by the lr11xx_system_get_status and lr11xx_bootloader_get_status commands
Parameters

lr1110_hal_status_t lr1110_hal_direct_read lr11xx_hal_status_t lr11xx_hal_direct_read ( const void *  context,
@@ -331,14 +331,14 @@

-

◆ lr1110_hal_reset()

+ +

◆ lr11xx_hal_reset()

[in]contextRadio implementation parameters
- + @@ -358,14 +358,14 @@

-

◆ lr1110_hal_wakeup()

+ +

◆ lr11xx_hal_wakeup()

lr1110_hal_status_t lr1110_hal_reset lr11xx_hal_status_t lr11xx_hal_reset ( const void *  context)
- + @@ -385,8 +385,8 @@

-

◆ lr1110_hal_compute_crc()

+ +

◆ lr11xx_hal_compute_crc()

@@ -395,7 +395,7 @@

lr1110_hal_status_t lr1110_hal_wakeup lr11xx_hal_status_t lr11xx_hal_wakeup ( const void *  context)
- + diff --git a/doc/lr11xx/html/lr11xx__hal_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__hal_8h__dep__incl.map new file mode 100644 index 0000000..2902904 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__hal_8h__dep__incl.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__hal_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__hal_8h__dep__incl.md5 new file mode 100644 index 0000000..504d9c6 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__hal_8h__dep__incl.md5 @@ -0,0 +1 @@ +315dd228726422ac1a88423b61cd8c9d \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__hal_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__hal_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..03a478783cb2b57a2cfb55bfd13b5f4593f0bcef GIT binary patch literal 22625 zcmbTe1z449w>CNn=>|c%6eL6tkd%;85mAtC5Kua#k(3qz5eaD&MY_ABr9rwwknWQD z$HcY2{hf2Zz5nYv6W0RfoXq!q#xvp`_ZZ^|di+QZABPGDfk5EjzbCDPKw$8~&!Jct z@c-?fffn!$!%$vM8gY*NO0NDAi9j$Q?n_HPb&g-1aB)^Po)p-$?tA&=_}xouZ!SKs zR6*YYY^8BpN!nj33n;Sn<|cHuFHPv4n36d(|8i+`djCYO7xU7~r!P&U<&v*oe$Dh} z8SACIR>c>Mifa>NR~Jv2I~iX@e)v$L@#j=qEw@O)&UG<V@ZTPy z{g_HlrC$H`%yU6J6C&b&JtE|cxPAZaWl<_$O6mW8%=bQ9w?ZJ_-TRE4le4kJa%_A8 zFBNyY9+SST68qwfk-_zNOz?eLOLe z$Uji-n+p?PUuPi-)s&P(DY2SZUjKVX3c`aO49HLV=MmPdkMXY?B_?*^!{Gh5J8ez- z=kxe{^iF0e4tM(%Cnnz5_V@Mq7`K0@*XJ&)WQ%Mbddqlm_fH%C`7HeUde4i`-@baw zN#H^lG`TO%!_CJ^OJVKjxbau+J|phSa*PmoILv=$%uMhZr{=cbgt- zl~~m84e5nBtPIYyMldti&>izBd!8Rp*>>MK5ET8ApHJK#eKSBd4F&Pi$!YF$wC?w{ z(y6!9R%Iygr{1cWwENbGx~;jEeEoXVdsj)^cYEd33r+BI$``1{ou*!0zj>2>|42ti z$9d^5k)wuIqsPoy;VsC#xvsjDAn6Jwi&sC(@;+A7ff|0xM98c_cl~;7Dku-+i zocvQC?nh=aQc_7*-e?fL1()==%43LcB#m}yHGeanr~ai2ebT&uQ!a5&HSQ6TRiI2gwrR?*tg z@p7bDj?M*rZEekYA=Z=#?$pNz)&2bRpzLJ3owj5xSb$avxxUnlxBqMuk9x7$K-r*k z*>0b_?U-fhOs^chjJ!N5stZ*w_tj_*=^vAOpL5$UJnZ-=VEywzByDJg zn2hW--0_xEP*9K*oj~78`TnT6?e8AOn1?J#!TkRHyKc5A1Vvr>5lUTl>0~fimBC1X zv3iZWP(?*WBj3}mv*xx)RvyzXn%A#iGcYouTx`H$4@M8^)rGikZPzAGR{Djuzv>MiGjiaMQioePS_HL#v{qviPc&10)u6$L;pn$)b2#b~b)!XsGjA z@sR9YbX} zcWy=Q1>u|Uw#-CYzZ8RR0qW@Jd3nzD)= z&6ARmlM{^WKa2fpbnjxT|MBXfAs|Vz_76828VJSlLYkP;wQgO(W1fT!otmpYm}~&w z`!+e5LEC++sci18$mZc(SlX8_rj5sP+rvg-DV3GfPLnRIB^D#dmAF34-HJ2MsRtQ& zy?%{8KR+)xUTWM<{wY0u)~WWG)~e>nr0Q@sq--J1e0pPJkB~3vW_fu2mE&Uqem-1a5 z9a=i)X_WU-QH;XERA9W#Cr3Ld2xLGAB4uTWxW^FPZad*HG?P=g?jy}a8NJqj_%+As zuBK+k*SEMA3;v@2SEH-?2*rOItc?zZ$FjA&yEdX;X2arfGPi_h^)MU_lR$rEFdMle znDp*m5DLQ%f2W1P=Wjw>MMH3sUPz8J%;TS_Nl+}uQnp0P1p#P#df>qIuHd@Cx1 zcXxLY2$Sx_J62@uDu|0R)$&GWoxEcWaXOT9gQmqk3u6t$%R5aB-oS ze-)sWqp9(suQZc41D4eK%7#G5lmK7RjJ4-6mD@fUYB+rxF zpQEF}tV!-9TBTM^*P^w3rl|iAl@q`U=^fc`YnB21HSK z8Et+~lxC8=d$;k~?dS{h(f$V>>890Az4`Eg;CZnu{Cn+>k(_2UKXS~{Uyd@lut0}U zy2={B8_q-E>gL9Xg?d*?YGz{t3ESK^>oEg^f^3iC&(Ai_{bkeYce=&JgKq43q@ZEHY{y|KxUnTrdrw>O1!-0)&6w*J9h<7rh`&bl<*TR9ec+!GSCPfm8CylZeWX3z6^MJ$wFQBxH6L|(v`n5y~mYlo0AX#vr_n6Je$)bquiF0{>?ainM3|JC( z@1n0)J5jDz*`xUQqHUfXZ_MqFS+~qI1h5(j5QSy}IonfHPw$UOUxh&}pc`~BDH24X zC;A$+4Po<}0^WUeBvbY~mF#-d{d@BE2^e^S(S4m7+lqvrx+=)y%%GfYWq&<~mWV;>>C?c5X=Bw7hOH7NhK5(af0uoP%};gX zM#6P2tHx=K-?p|hW&5M$Wq-`B+1Zg?X}#hN3LD379zW>>fqyO~fG%#HyjLB9*z~td z6Gkp8DsXWdps&Avudez@Gf5C-6&n!H2>Q0r9k;nyc27-NGxS{XUbSe-3o9nH8O7wY z+_=Wi-zoUAHPGK*HQ*1ww|9ZJ3LUZ3B=4%4$5j^D@9-z9A^}K^aYy|NZ^SyDuhL;j z7fEFnPbPjeu#`|%#^j?y6BeNjdEV0eh}8afOG|*k*~!b+U;9G4UxGL|$FK1!i*Y|* zIdrS8p{;bHZ~16Vhk^j3W#W)0_xs0Q1V@h%Sn5S_)4q1 zHqsLGn&K|J<>o+EYNNKkxw!a}KUHWV1YARUrOwH=(W{9f3-AoaO`U|0S#3HX+n z&IXF}l2{&Q0L)ggtt@Xp=H!U+=p;NEB1q^8OlL9Ql*+ZH@MXAg9~OI}@t1@xGIHj( zZO}0>%a)=pBGHw66J#D4!OC-`qA`BgS6OVNMlDmTx7XI{n%|9q$Qvs1jwPt_AD)Gl zllzt4lMnH(txb{|&78sVK?F(HogCRha%q}pF_KL>em8aNG7V=#lp4ldV~|t+^WIn2 z*ca6=$fY8w_m*AIqVI)<&VxbJNun6>Vf~!N=-_3HZFSgILA90TEelR z?Ywg#@Qfru8?}T;*i;_rlvIoiYvm*AzGRCgXZ~f{_jyz>TQoI=pJQzOQbRh^Q* z-U|yS@#i=3tpgVqN@k4f*GRCfsq{#ui%?PH&t~gdzt)|a z;ieWA6~)4lxjH-7fQ%<%Vix!EHT{@S85uhU2-Gq0+JEpF5*w|U;o?IeM68@WR1A|+ z{XjD^g7eH+qgF{NwW+>tF-hDjT37gWjaXzu$!8^OL!*Yxk5k&d=R2O{f_QW_=V!-d zr~701FPD^}Emt-OB~+s9UaK)kuovUG$IdL8`ad;;e?Cb`mwJ1tTA!UVTQt1-bBt!d z-I!b}PK1rEvToIt2T!E*eqs`>x@2IG9sZy@SN65YOGp2-G-g!t5c&=iN>1`x@0%IU zBJs(|T%XcElvnBH4yBcqIk!G|)77QBI(~FH(en(^VG`1RSzgcMi0BsYFGN;T88ww= zlZWX_2z!)lRxxvQK*(v=DCV!n?2$xNRDz=uvym43B79W7>MafXg~hGqd%TURF|>IY zce0Z3BLYJ{`oDgCFQ7Z{^=qu_WW<4Q@NDNen8E36-=qHvDwQ87D%MKj2ak>}F!I{8 zywkeF$Vf6XBWdMsoY=0>lbV%9ES%u*S;pC!yRY9U0R4uNa+;iWY=QMut?fp&bqHGJ ztyp>=pObu-9h~u32TJG|1UiA*>gs`(Vl-!7$(3%qxUpzxovmF~vg+znUz0?7 z(ItHr7WALqY@=Pf2B17*f@V`AA25z8kX@j2%4JozBR|n{yl!6X*St9R0(KwH$x37fWnYEA4-UWAMdpLgo z;hT9efGDXMuP^e7ZT!DLMHr84;3uC59yvca`Ra)y{oZm(rWOVnB_*pseBY7q$HfUF)Rn7-QOUs%&FVjgG$Q6a{lVw@C^a!$fY~P}pN5N;9-M4P ztA)zzFJ*k$pV=F#741fy8%%EB8|rR4Kj~H^CZ5qK{MMZ~Fqh!;Xga|O$AEiRf<3Cv zqGWndYjLiLV&kRLPM5r#+)Z*$XVe=vbi&(CAmfcl$gZn!2+1=W_)JIfkQ1U=qMKuC zh2{nk4Q*TP*`B$!yY2F&^V7aQS<$2U7D4wiGC+!OpMoAI5xAr2*o7Jz4kohYJB-2yxNlRm-wpACBhs4{koyOTxw^h_CNTXt9}< zz6O%yj_tZ+0$TV){Sa$@duz;;bZx>(aay3(MNd13IYM1I`2J@S?N@s=Svqc)$Z!1E zjq#WmGykrvxYhu$z)u?WOR>(Xj5K=M*WY1tn##yjO!VwfJmLd+=#ZYCxYby(z=wm^ ztE=dZEddJm+}tOQ+*y`it`TIk9>yX`12L})U9n5riS-lK-m*A;uefNEW=Fp4Oxe!4 z8Xu3|*rc$IFxJt*1&`EX={7O(>To&Jjz;+Dn`*aONvG143JRqRbo+&?a|3GUb3Upu zZ@&C^Kzp`d8aZ6NA~-r$$ry3ZA20Rz=>FE&ly1oJy4Fm(>f6vJrs?I(bIi}5M;ZNc zjBl|$WWnw0Gqf4fi8kttyA=4Az(HA__SKOwrN>db4mVY$PEH?ah|SXH7wQ#!)a}vT z-{Xba=5FV4Vxdw|jfTh5@NgH5KEfgHU%^(g$+i@p0+K#=}R;G0V#=?q@DMV&_%petwsKukadm#Xo!a zk^FTeD@OpHMEf%(EFZ7q4ZR@v4_jRP0HeF2@;J|WiqQFZ&FFBwk_sLDFeSI!#g#LI zEHErg!eA!tk$JFl1t}{#VC;PZI!5oLBy=Sxt624M%#3MZ$Y7_NM@3A3o^Fn)I8m9FLA??2qWn_D{A z8x)8|c~3^*kFYSGFolxb4-b<1>F%}p`Rk>%HzCSLbQ@ey2C{Nr%mZ|-b$AS@5icx? z@STe!a|MF=Nf0Xt9c}Fx!QqH-n;e^r)9f!D$@?n4A%8|ONZQ+r8_4%MI~BIu;us+V zn0loK42dDlop0YWlpV0JvFpD3#kRI98#V=NgL8L2m>@k|vljPiva@1PWQk+~)R9}Y z&8zLG;ZLpCBm{U=zcWrv|2FQGrCnVn6kV5J;x_#X6pBhK%~N*{RvW$1OlkT|gjnm} zP$FTPo|`noQzG=$5qs1yu|LF|Wf^Y4T+#wzn`lxYlsxYwfp*%>Ur^?&+nO;`g@9D#^FZqVgW1j7l$NmnK@9u6lR7v z-}4;r5pK-!@i8N0irCl@Xi29LkFRHW6Zn016$_8K(xyTO=EX;K!O8UsVMq;ySB>pw zvQa@)B$M)5d9S$dcaM~m88Yp~W;Om|fFdcXrTEyIaPi$;_5N!@xSEhMiHU#xG*p_F zoJz+EvzG_Y&HyZwcPy;$foFp zUt{m>OTLYZGub-LPEV&q5Yf@S-rW`CX^n`Z^3CGB1jt}c)AP0e(3m+DmerN`oDR{X z9js&2g_2RatY63+5bYuZjKleJ+}X1-*4xv=-u21i`Ex&6BOMj^4X1kYH@Cc?*knZ< z6NLNw_mMK68q56(N@X*b88-@lC+Mb181=v?n(09Zgo)j~SV(#!-jiL!xM9Jj1tLhi z)zS&D?dw-b8g#K&6?Bm1$B2v5y0|>hc3Y#ldM#92N`IulG)3tJx1}bLuCoDtPNmiQ z)gljzM7MR`szbw?_PhNc=<`2AxwgGBY?0#yTL&GyNwYUSk5Ekt3#rIR4v*!xdgW@r ze~wO9bnNev2e%J}Ay((pJ!S;D=x)#6VfQ&rx&M8QSPa zk>Bk4K3+cQY0(|sI~)qmB_KI_?@s!1fP2^Z?LH#d-dMKqQs;_rBNiWZ5MRm>#a@olD>PW_`M=tt3S%I zJZjY$NZ0pP>^7h;%Jb0Z&wZ-8tbbd}AN|H^e=ho^qsq#o$ei+WsrV+3O?_f;jh{X@ z>2J+ud26hWU}0U+NeDDeI;E&NEy1~2{gMKh4s5fdLr_I(fpsA0P5tq=HR(5)iO` z+HGmM)~KczHTV0;Wdb@;G~kXhGI-PruHuGJm_jW=LoAlX>Z+^};kV2^E?=6nGY?3- zjKUjy@zvTJR9m&bm{asGj|@!|+|;$w8}fA!h1|S~?jko&%*yS4-Q1kQM!kx5*}>rk zL17*yCVQ98Pu{giR$%GUQtt+A+u=Wu@4noaoo(q4rchf;pRO2Y-%6U4kS*cry82!$ zv1EW^uzsA${n(Np74>8@ja~tWRSorWyW61c6uSbWqZMEVtCxM_!EW>${LlTg>E3>0 zua;5>n%4KE5kI>QnW{jEjXN;&_eD4Brf8O5-@7XD=n?R6zIpbG-PNgdist65Ow3YT z*Q2_g?Ow7r<=anAy&F37x`4wOCI4E8!F~iQOuU z>u`bHeF6nSW33kv2?<_xb-mfwH&uXe5p;Z0*o%35IOl1!vv5Z}|85Yl#pL6zD~>=1 z*FP($>sAa7psOH&91Bv6g|Y&5bg-=*NR!F*7HOSMu#hj5?Q{)6g(J^=NVX%Ma$`OH zQALpY=lRUhF}KGmzg(}$sjCy+x;3lrJdV4!7uz#BDzv&h@aK(G_&O7mjF`nJi9}qsIaRYq34+kewtvu6?F~+B z?nI^*7n80GR(o&T-I#PXLgT7+_pki8e0xqs+~gZ2o6colnwoksoiA(cw=)_YxfVHf zyz+V~|Em{Zar*AB{YV9nefqP<2~a)txnO7cG?B4^4`bguc-idEn`XMLEpP8zl?a*F zI$pEmmu!GO#1yM~pPB6U;IpKnqBuf=i?C(9oDIN8$3r0>U!lVOC`iL>Rb4zhc#wgA z_IuvT7yETt+cd8OFv}}rtxRueY;HEVZLL@8%>}Wl8l3)-Avo|n(80GVHx?lMMChpU^yaMcm*>XawdSjmLIj`e3Xy? z5WW?a9x&Xvfx)4AJ>Tv#2`+g@OyAOq?CiHqXOJm^0W#pFB|N)BD&Lg$8TW3n>68IY zWlaaCgP^cdLg!&j5exAzUs|^8-+(k;UTk53K$)zJrDb7*-^xg#@XMFG!C|GB*jLpa z3x3RytC7s)54=+*X zl)mgqpi9=3SYqZ`j!A+^J`g>e=C^vDvUn?&6X2TJ{2~R?9X(3;CUx%~f}E>ES~rn| zLv`NOea203hO^an`DsEK39qQ=m8GS8DIXfhPpqtjLMe{1Z|>I3Q+gYWmUf0R6XP4KvD||BHG%X+syhw2OH#Fr=b&zDbTPK45-X;fUz+ zrLkX37sT(1I50O`_L4P{FfyWEUeN-O151;Ul0yEH+)vr`UiDV&)2yHm@8_Mx%tYjV zEnWqFg%JsxA~y1Jm3f?RYg=0Kf=~bQ3X@@U&_=&i_P`qq@}qX*D3;v31m|M zPa(rpmCFkV&3g~GZuul8dbsZ>Tz*UQWTwu$|LfNtMs{{Gs0{`CH406OId=KbeEuBT zvyv?dHAbQUgdC8Dz=j8g5!&0gzepWX(!}S|v=XTuSQ<5;{$X44VEF6=b}D%B1~@5> z3k~1U*Ng8ZkI&O<*3+3lPs`VG7mZ$vykjaEGHb{$ERvl;7k}x7oqeQwl|9Wcq5nFV zUsMzgUNunwVYFdC3qiA9ASCJQ6(RM>`TE>;c7RurZ12x!I(L>iTcLpFRVIiblpfrh zE>o;9ov-L;rq_N0l*PkC^d<`vQ&1aXOxsgS}=gxp(AUSxVH|68+fBWk|_T$X4$9hx2P-%Exj1lv2@Y*s|U;dVH zAm8cX=78o0cUcYfiU|LBvop>b~ig1h~THYNGFWK33UE*S5 zK04>q=rF+z4yJ0XZ|na8-5>K|M?3vU^jA~HufuR{py^kyRLI}4wBSh z;#(Dx*(GNdAH7f!fMf67527oR&GWd%Dn~euTxl>VBM9oEc}>BgYkP?x@s%;qv9sZS zg4)|(6ahAUANAs~rWvj_U+Sk%!~j$fUVwQz;*4oU+qxcIx$^J{13UZA&KpT_fSezz zKTptk^)E~t=vNud)hR3C)iKezdw*a+;lJ>S+ktFH4DrS~%Td*<vjkS+IXE|{w1NVOM*|? z&BLMBf*v>%fU&JzVx>5@IOKtjpA$NK*g(ZLVWAR52RYvCT!7X@LAfnHTJDJ=iPajd7ue{|FY$}MOJAlD(~k9bEC3Mu?mR*}i{Ptx}K0bN?2 zwUnma%PC44m{Jh10sur @@ -61,17 +61,17 @@
-
lr1110_hal.h
+
lr11xx_hal.h
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_HAL_H
-
36 #define LR1110_HAL_H
+Go to the documentation of this file.
1 
+
35 #ifndef LR11XX_HAL_H
+
36 #define LR11XX_HAL_H
37 
38 #ifdef __cplusplus
39 extern "C" {
@@ -95,37 +95,37 @@
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
58  */
59 
-
63 #define LR1110_NOP ( 0x00 )
+
63 #define LR11XX_NOP ( 0x00 )
64 
65 /*
66  * -----------------------------------------------------------------------------
67  * --- PUBLIC TYPES ------------------------------------------------------------
68  */
69 
-
73 typedef enum lr1110_hal_status_e
+
73 typedef enum lr11xx_hal_status_e
74 {
-
75  LR1110_HAL_STATUS_OK = 0,
-
76  LR1110_HAL_STATUS_ERROR = 3,
- +
75  LR11XX_HAL_STATUS_OK = 0,
+
76  LR11XX_HAL_STATUS_ERROR = 3,
+
78 
79 /*
80  * -----------------------------------------------------------------------------
81  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
82  */
83 
-
95 lr1110_hal_status_t lr1110_hal_write( const void* context, const uint8_t* command, const uint16_t command_length,
+
95 lr11xx_hal_status_t lr11xx_hal_write( const void* context, const uint8_t* command, const uint16_t command_length,
96  const uint8_t* data, const uint16_t data_length );
97 
-
118 lr1110_hal_status_t lr1110_hal_read( const void* context, const uint8_t* command, const uint16_t command_length,
+
118 lr11xx_hal_status_t lr11xx_hal_read( const void* context, const uint8_t* command, const uint16_t command_length,
119  uint8_t* data, const uint16_t data_length );
120 
-
139 lr1110_hal_status_t lr1110_hal_direct_read( const void* context, uint8_t* data, const uint16_t data_length );
+
139 lr11xx_hal_status_t lr11xx_hal_direct_read( const void* context, uint8_t* data, const uint16_t data_length );
140 
-
148 lr1110_hal_status_t lr1110_hal_reset( const void* context );
+
148 lr11xx_hal_status_t lr11xx_hal_reset( const void* context );
149 
-
157 lr1110_hal_status_t lr1110_hal_wakeup( const void* context );
+
157 lr11xx_hal_status_t lr11xx_hal_wakeup( const void* context );
158 
-
168 inline static uint8_t lr1110_hal_compute_crc( const uint8_t initial_value, const uint8_t* buffer, uint16_t length )
+
168 inline static uint8_t lr11xx_hal_compute_crc( const uint8_t initial_value, const uint8_t* buffer, uint16_t length )
169 {
170  uint8_t crc = initial_value;
171 
@@ -155,16 +155,16 @@
195 }
196 #endif
197 
-
198 #endif // LR1110_HAL_H
+
198 #endif // LR11XX_HAL_H
-
enum lr1110_hal_status_e lr1110_hal_status_t
LR1110 HAL status.
-
lr1110_hal_status_t lr1110_hal_read(const void *context, const uint8_t *command, const uint16_t command_length, uint8_t *data, const uint16_t data_length)
Radio data transfer - read.
-
lr1110_hal_status_t lr1110_hal_reset(const void *context)
Reset the radio.
-
static uint8_t lr1110_hal_compute_crc(const uint8_t initial_value, const uint8_t *buffer, uint16_t length)
Return the computed CRC.
Definition: lr1110_hal.h:168
-
lr1110_hal_status_t lr1110_hal_wakeup(const void *context)
Wake the radio up.
-
lr1110_hal_status_t lr1110_hal_direct_read(const void *context, uint8_t *data, const uint16_t data_length)
Direct read from the SPI bus.
-
lr1110_hal_status_e
LR1110 HAL status.
Definition: lr1110_hal.h:74
-
lr1110_hal_status_t lr1110_hal_write(const void *context, const uint8_t *command, const uint16_t command_length, const uint8_t *data, const uint16_t data_length)
Radio data transfer - write.
+
lr11xx_hal_status_t lr11xx_hal_direct_read(const void *context, uint8_t *data, const uint16_t data_length)
Direct read from the SPI bus.
+
static uint8_t lr11xx_hal_compute_crc(const uint8_t initial_value, const uint8_t *buffer, uint16_t length)
Return the computed CRC.
Definition: lr11xx_hal.h:168
+
lr11xx_hal_status_t lr11xx_hal_read(const void *context, const uint8_t *command, const uint16_t command_length, uint8_t *data, const uint16_t data_length)
Radio data transfer - read.
+
enum lr11xx_hal_status_e lr11xx_hal_status_t
LR11XX HAL status.
+
lr11xx_hal_status_t lr11xx_hal_wakeup(const void *context)
Wake the radio up.
+
lr11xx_hal_status_t lr11xx_hal_write(const void *context, const uint8_t *command, const uint16_t command_length, const uint8_t *data, const uint16_t data_length)
Radio data transfer - write.
+
lr11xx_hal_status_e
LR11XX HAL status.
Definition: lr11xx_hal.h:74
+
lr11xx_hal_status_t lr11xx_hal_reset(const void *context)
Reset the radio.
@@ -61,7 +61,7 @@
@@ -72,278 +72,279 @@ Enumerations | Functions
-
lr1110_lr_fhss.c File Reference
+
lr11xx_lr_fhss.c File Reference
-

LR_FHSS driver implementation for LR1110. +

LR_FHSS driver implementation for LR11XX. More...

-
#include "lr1110_lr_fhss.h"
-#include "lr1110_radio.h"
-#include "lr1110_hal.h"
+
#include "lr11xx_lr_fhss.h"
+#include "lr11xx_radio.h"
+#include "lr11xx_hal.h"
-Include dependency graph for lr1110_lr_fhss.c:
+Include dependency graph for lr11xx_lr_fhss.c:
-
- - - - - - - +
+ + + + + + + - +
static uint8_t lr1110_hal_compute_crc static uint8_t lr11xx_hal_compute_crc ( const uint8_t  initial_value, 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 t_`spfKd%(q&;I1|b1z-^KhM36)V!9Xj*Ezn17 - + + diff --git a/doc/lr11xx/html/lr11xx__hal_8h__incl.md5 b/doc/lr11xx/html/lr11xx__hal_8h__incl.md5 new file mode 100644 index 0000000..56077bc --- /dev/null +++ b/doc/lr11xx/html/lr11xx__hal_8h__incl.md5 @@ -0,0 +1 @@ +a1499eb56e1ecb4f36527fd7c1b901e3 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__hal_8h__incl.png b/doc/lr11xx/html/lr11xx__hal_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..38fddf0c5fb58e3fac5e2752658b7459eb46faa3 GIT binary patch literal 5471 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 -lr1110_driver: lr1110_driver/src/lr1110_hal.h Source File +lr11xx_driver: lr11xx_driver/src/lr11xx_hal.h Source File @@ -21,7 +21,7 @@
-
lr1110_driver +
lr11xx_driver
-
lr1110_driver +
lr11xx_driver
- - + +

Data Structures

struct  lr1110_lr_fhss_mod_params_lr_fhss_s
 Modulation configuration for LR_FHSS packets. More...
struct  lr11xx_lr_fhss_mod_params_lr_fhss_s
 Modulation configuration for LR_FHSS packets. More...
 
- - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Macros

-#define LR1110_LR_FHSS_PKT_TYPE_LR_FHSS   ( 0x04 )
 
+#define LR11XX_LR_FHSS_PKT_TYPE_LR_FHSS   ( 0x04 )
 
#define LR_FHSS_BITRATE_IN_256_BPS_STEPS   ( 125000 )
 
-#define LR1110_LR_FHSS_SET_MODULATION_PARAMS_LR_FHSS_CMD_LENGTH   ( 2 + 5 )
 
-#define LR1110_LR_FHSS_BUILD_FRAME_LENGTH   ( 2 + 9 )
 
-#define LR1110_LR_FHSS_SET_SYNC_WORD_LENGTH   ( 2 + 0 )
 
-#define LR1110_LR_FHSS_SET_MODULATION_PARAM_DIVIDE_BITRATE_BY_256   ( 0x80000000 )
 
-#define LR1110_LR_FHSS_HEADER_BITS   ( 114 )
 
-#define LR1110_LR_FHSS_FRAG_BITS   ( 48 )
 
-#define LR1110_LR_FHSS_BLOCK_PREAMBLE_BITS   ( 2 )
 
-#define LR1110_LR_FHSS_BLOCK_BITS   ( LR1110_LR_FHSS_FRAG_BITS + LR1110_LR_FHSS_BLOCK_PREAMBLE_BITS )
 
-#define LR1110_LR_FHSS_SYNCWORD_LENGTH   ( 4 )
 
+#define LR11XX_LR_FHSS_SET_MODULATION_PARAMS_LR_FHSS_CMD_LENGTH   ( 2 + 5 )
 
+#define LR11XX_LR_FHSS_BUILD_FRAME_LENGTH   ( 2 + 9 )
 
+#define LR11XX_LR_FHSS_SET_SYNC_WORD_LENGTH   ( 2 + 0 )
 
+#define LR11XX_LR_FHSS_SET_MODULATION_PARAM_DIVIDE_BITRATE_BY_256   ( 0x80000000 )
 
+#define LR11XX_LR_FHSS_HEADER_BITS   ( 114 )
 
+#define LR11XX_LR_FHSS_FRAG_BITS   ( 48 )
 
+#define LR11XX_LR_FHSS_BLOCK_PREAMBLE_BITS   ( 2 )
 
+#define LR11XX_LR_FHSS_BLOCK_BITS   ( LR11XX_LR_FHSS_FRAG_BITS + LR11XX_LR_FHSS_BLOCK_PREAMBLE_BITS )
 
+#define LR11XX_LR_FHSS_SYNCWORD_LENGTH   ( 4 )
 
- - - + + +

Typedefs

-typedef struct lr1110_lr_fhss_mod_params_lr_fhss_s lr1110_lr_fhss_mod_params_lr_fhss_t
 Modulation configuration for LR_FHSS packets.
 
+typedef struct lr11xx_lr_fhss_mod_params_lr_fhss_s lr11xx_lr_fhss_mod_params_lr_fhss_t
 Modulation configuration for LR_FHSS packets.
 
- + - - - - + + - - + +

Enumerations

enum  {
-  LR1110_BL_GET_STATUS_OC = 0x0100, -LR1110_BL_GET_VERSION_OC = 0x0101, -LR1110_BL_ERASE_FLASH_OC = 0x8000, -LR1110_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003, +  LR11XX_BL_GET_STATUS_OC = 0x0100, +LR11XX_BL_GET_VERSION_OC = 0x0101, +LR11XX_BL_ERASE_FLASH_OC = 0x8000, +LR11XX_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003,
-  LR1110_BL_REBOOT_OC = 0x8005, -LR1110_BL_GET_PIN_OC = 0x800B, -LR1110_BL_READ_CHIP_EUI_OC = 0x800C, -LR1110_BL_READ_JOIN_EUI_OC = 0x800D, +  LR11XX_BL_REBOOT_OC = 0x8005, +LR11XX_BL_GET_PIN_OC = 0x800B, +LR11XX_BL_READ_CHIP_EUI_OC = 0x800C, +LR11XX_BL_READ_JOIN_EUI_OC = 0x800D,
-  LR1110_CRYPTO_SELECT_OC = 0x0500, -LR1110_CRYPTO_SET_KEY_OC = 0x0502, -LR1110_CRYPTO_DERIVE_KEY_OC = 0x0503, -LR1110_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504, +  LR11XX_CRYPTO_SELECT_OC = 0x0500, +LR11XX_CRYPTO_SET_KEY_OC = 0x0502, +LR11XX_CRYPTO_DERIVE_KEY_OC = 0x0503, +LR11XX_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504,
-  LR1110_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, -LR1110_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, -LR1110_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, -LR1110_CRYPTO_ENCRYPT_AES_OC = 0x0508, +  LR11XX_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, +LR11XX_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, +LR11XX_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, +LR11XX_CRYPTO_ENCRYPT_AES_OC = 0x0508,
-  LR1110_CRYPTO_DECRYPT_AES_OC = 0x0509, -LR1110_CRYPTO_STORE_TO_FLASH_OC = 0x050A, -LR1110_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, -LR1110_CRYPTO_SET_PARAMETER_OC = 0x050D, +  LR11XX_CRYPTO_DECRYPT_AES_OC = 0x0509, +LR11XX_CRYPTO_STORE_TO_FLASH_OC = 0x050A, +LR11XX_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, +LR11XX_CRYPTO_SET_PARAMETER_OC = 0x050D,
-  LR1110_CRYPTO_GET_PARAMETER_OC = 0x050E, -LR1110_GNSS_SET_CONSTELLATION_OC = 0x0400, -LR1110_GNSS_READ_CONSTELLATION_OC = 0x0401, -LR1110_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402, +  LR11XX_CRYPTO_GET_PARAMETER_OC = 0x050E, +LR11XX_GNSS_SET_CONSTELLATION_OC = 0x0400, +LR11XX_GNSS_READ_CONSTELLATION_OC = 0x0401, +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402,
-  LR1110_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, -LR1110_GNSS_READ_FW_VERSION_OC = 0x0406, -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, -LR1110_GNSS_SET_SCAN_MODE_OC = 0x0408, +  LR11XX_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, +LR11XX_GNSS_READ_FW_VERSION_OC = 0x0406, +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, +LR11XX_GNSS_SET_SCAN_MODE_OC = 0x0408,
-  LR1110_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, -LR1110_GNSS_SCAN_ASSISTED_OC = 0x040A, -LR1110_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, -LR1110_GNSS_SCAN_READ_RES_OC = 0x040D, +  LR11XX_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, +LR11XX_GNSS_SCAN_ASSISTED_OC = 0x040A, +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, +LR11XX_GNSS_SCAN_READ_RES_OC = 0x040D,
-  LR1110_GNSS_ALMANAC_UPDATE_OC = 0x040E, -LR1110_GNSS_ALMANAC_READ_OC = 0x040F, -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411, +  LR11XX_GNSS_ALMANAC_UPDATE_OC = 0x040E, +LR11XX_GNSS_ALMANAC_READ_OC = 0x040F, +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411,
-  LR1110_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, -LR1110_GNSS_PUSH_DM_MSG_OC = 0x0415, -LR1110_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, -LR1110_GNSS_GET_NB_SATELLITES_OC = 0x0417, +  LR11XX_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, +LR11XX_GNSS_PUSH_DM_MSG_OC = 0x0415, +LR11XX_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, +LR11XX_GNSS_GET_NB_SATELLITES_OC = 0x0417,
-  LR1110_GNSS_GET_SATELLITES_OC = 0x0418, -LR1110_GNSS_GET_TIMINGS_OC = 0x0419, -LR1110_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, -LR1110_LR_FHSS_BUILD_FRAME_OC = 0x022C, +  LR11XX_GNSS_GET_SATELLITES_OC = 0x0418, +LR11XX_GNSS_GET_TIMINGS_OC = 0x0419, +LR11XX_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, +LR11XX_LR_FHSS_BUILD_FRAME_OC = 0x022C,
-  LR1110_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, -LR1110_RADIO_RESET_STATS_OC = 0x0200, -LR1110_RADIO_GET_STATS_OC = 0x0201, -LR1110_RADIO_GET_PKT_TYPE_OC = 0x0202, +  LR11XX_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, +LR11XX_RADIO_RESET_STATS_OC = 0x0200, +LR11XX_RADIO_GET_STATS_OC = 0x0201, +LR11XX_RADIO_GET_PKT_TYPE_OC = 0x0202,
-  LR1110_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, -LR1110_RADIO_GET_PKT_STATUS_OC = 0x0204, -LR1110_RADIO_GET_RSSI_INST_OC = 0x0205, -LR1110_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206, +  LR11XX_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, +LR11XX_RADIO_GET_PKT_STATUS_OC = 0x0204, +LR11XX_RADIO_GET_RSSI_INST_OC = 0x0205, +LR11XX_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206,
-  LR1110_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, -LR1110_RADIO_SET_RX_OC = 0x0209, -LR1110_RADIO_SET_TX_OC = 0x020A, -LR1110_RADIO_SET_RF_FREQUENCY_OC = 0x020B, +  LR11XX_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, +LR11XX_RADIO_SET_RX_OC = 0x0209, +LR11XX_RADIO_SET_TX_OC = 0x020A, +LR11XX_RADIO_SET_RF_FREQUENCY_OC = 0x020B,
-  LR1110_RADIO_AUTOTXRX_OC = 0x020C, -LR1110_RADIO_SET_CAD_PARAMS_OC = 0x020D, -LR1110_RADIO_SET_PKT_TYPE_OC = 0x020E, -LR1110_RADIO_SET_MODULATION_PARAM_OC = 0x020F, +  LR11XX_RADIO_AUTOTXRX_OC = 0x020C, +LR11XX_RADIO_SET_CAD_PARAMS_OC = 0x020D, +LR11XX_RADIO_SET_PKT_TYPE_OC = 0x020E, +LR11XX_RADIO_SET_MODULATION_PARAM_OC = 0x020F,
-  LR1110_RADIO_SET_PKT_PARAM_OC = 0x0210, -LR1110_RADIO_SET_TX_PARAMS_OC = 0x0211, -LR1110_RADIO_SET_PKT_ADRS_OC = 0x0212, -LR1110_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213, +  LR11XX_RADIO_SET_PKT_PARAM_OC = 0x0210, +LR11XX_RADIO_SET_TX_PARAMS_OC = 0x0211, +LR11XX_RADIO_SET_PKT_ADRS_OC = 0x0212, +LR11XX_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213,
-  LR1110_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, -LR1110_RADIO_SET_PA_CFG_OC = 0x0215, -LR1110_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, -LR1110_RADIO_SET_CAD_OC = 0x0218, +  LR11XX_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, +LR11XX_RADIO_SET_PA_CFG_OC = 0x0215, +LR11XX_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, +LR11XX_RADIO_SET_CAD_OC = 0x0218,
-  LR1110_RADIO_SET_TX_CW_OC = 0x0219, -LR1110_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, -LR1110_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, -LR1110_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224, +  LR11XX_RADIO_SET_TX_CW_OC = 0x0219, +LR11XX_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, +LR11XX_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, +LR11XX_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224,
-  LR1110_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, -LR1110_RADIO_SET_RX_BOOSTED_OC = 0x0227, -LR1110_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B, -LR1110_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +  LR11XX_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, +LR11XX_RADIO_SET_RX_BOOSTED_OC = 0x0227, +LR11XX_RADIO_SET_RSSI_CALIBRATION_OC = 0x0229, +LR11XX_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B,
-  LR1110_REGMEM_WRITE_REGMEM32_OC = 0x0105, -LR1110_REGMEM_READ_REGMEM32_OC = 0x0106, -LR1110_REGMEM_WRITE_MEM8_OC = 0x0107, -LR1110_REGMEM_READ_MEM8_OC = 0x0108, +  LR11XX_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +LR11XX_REGMEM_WRITE_REGMEM32_OC = 0x0105, +LR11XX_REGMEM_READ_REGMEM32_OC = 0x0106, +LR11XX_REGMEM_WRITE_MEM8_OC = 0x0107,
-  LR1110_REGMEM_WRITE_BUFFER8_OC = 0x0109, -LR1110_REGMEM_READ_BUFFER8_OC = 0x010A, -LR1110_REGMEM_CLEAR_RXBUFFER_OC = 0x010B, -LR1110_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +  LR11XX_REGMEM_READ_MEM8_OC = 0x0108, +LR11XX_REGMEM_WRITE_BUFFER8_OC = 0x0109, +LR11XX_REGMEM_READ_BUFFER8_OC = 0x010A, +LR11XX_REGMEM_CLEAR_RXBUFFER_OC = 0x010B,
-  LR1110_SYSTEM_GET_STATUS_OC = 0x0100, -LR1110_SYSTEM_GET_VERSION_OC = 0x0101, -LR1110_SYSTEM_GET_ERRORS_OC = 0x010D, -LR1110_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +  LR11XX_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +LR11XX_SYSTEM_GET_STATUS_OC = 0x0100, +LR11XX_SYSTEM_GET_VERSION_OC = 0x0101, +LR11XX_SYSTEM_GET_ERRORS_OC = 0x010D,
-  LR1110_SYSTEM_CALIBRATE_OC = 0x010F, -LR1110_SYSTEM_SET_REGMODE_OC = 0x0110, -LR1110_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111, -LR1110_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +  LR11XX_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +LR11XX_SYSTEM_CALIBRATE_OC = 0x010F, +LR11XX_SYSTEM_SET_REGMODE_OC = 0x0110, +LR11XX_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111,
-  LR1110_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, -LR1110_SYSTEM_CLEAR_IRQ_OC = 0x0114, -LR1110_SYSTEM_CFG_LFCLK_OC = 0x0116, -LR1110_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +  LR11XX_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +LR11XX_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, +LR11XX_SYSTEM_CLEAR_IRQ_OC = 0x0114, +LR11XX_SYSTEM_CFG_LFCLK_OC = 0x0116,
-  LR1110_SYSTEM_REBOOT_OC = 0x0118, -LR1110_SYSTEM_GET_VBAT_OC = 0x0119, -LR1110_SYSTEM_GET_TEMP_OC = 0x011A, -LR1110_SYSTEM_SET_SLEEP_OC = 0x011B, +  LR11XX_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +LR11XX_SYSTEM_REBOOT_OC = 0x0118, +LR11XX_SYSTEM_GET_VBAT_OC = 0x0119, +LR11XX_SYSTEM_GET_TEMP_OC = 0x011A,
-  LR1110_SYSTEM_SET_STANDBY_OC = 0x011C, -LR1110_SYSTEM_SET_FS_OC = 0x011D, -LR1110_SYSTEM_GET_RANDOM_OC = 0x0120, -LR1110_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +  LR11XX_SYSTEM_SET_SLEEP_OC = 0x011B, +LR11XX_SYSTEM_SET_STANDBY_OC = 0x011C, +LR11XX_SYSTEM_SET_FS_OC = 0x011D, +LR11XX_SYSTEM_GET_RANDOM_OC = 0x0120,
-  LR1110_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, -LR1110_SYSTEM_READ_INFOPAGE_OC = 0x0123, -LR1110_SYSTEM_READ_UID_OC = 0x0125, -LR1110_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +  LR11XX_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +LR11XX_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, +LR11XX_SYSTEM_READ_INFOPAGE_OC = 0x0123, +LR11XX_SYSTEM_READ_UID_OC = 0x0125,
-  LR1110_SYSTEM_READ_PIN_OC = 0x0127, -LR1110_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, -LR1110_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A, -LR1110_WIFI_SCAN_OC = 0x0300, +  LR11XX_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +LR11XX_SYSTEM_READ_PIN_OC = 0x0127, +LR11XX_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, +LR11XX_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A,
-  LR1110_WIFI_SCAN_TIME_LIMIT = 0x0301, -LR1110_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, -LR1110_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303, -LR1110_WIFI_GET_RESULT_SIZE_OC = 0x0305, +  LR11XX_WIFI_SCAN_OC = 0x0300, +LR11XX_WIFI_SCAN_TIME_LIMIT = 0x0301, +LR11XX_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, +LR11XX_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303,
-  LR1110_WIFI_READ_RESULT_OC = 0x0306, -LR1110_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, -LR1110_WIFI_READ_CUMUL_TIMING_OC = 0x0308, -LR1110_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +  LR11XX_WIFI_GET_RESULT_SIZE_OC = 0x0305, +LR11XX_WIFI_READ_RESULT_OC = 0x0306, +LR11XX_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, +LR11XX_WIFI_READ_CUMUL_TIMING_OC = 0x0308,
-  LR1110_WIFI_READ_COUNTRY_CODE_OC = 0x030A, -LR1110_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, -LR1110_WIFI_GET_VERSION_OC = 0x0320 +  LR11XX_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +LR11XX_WIFI_READ_COUNTRY_CODE_OC = 0x030A, +LR11XX_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, +LR11XX_WIFI_GET_VERSION_OC = 0x0320
}
 Operating codes for radio-related operations. More...
 Operating codes for radio-related operations. More...
 
enum  lr1110_lr_fhss_hopping_configuration_t { LR1110_LR_FHSS_HOPPING_DISABLE = 0x00, -LR1110_LR_FHSS_HOPPING_ENABLE = 0x01 +
enum  lr11xx_lr_fhss_hopping_configuration_t { LR11XX_LR_FHSS_HOPPING_DISABLE = 0x00, +LR11XX_LR_FHSS_HOPPING_ENABLE = 0x01 }
 Hopping enable/disabled enumerations for lr1110_lr_fhss_build_frame.
 
enum  lr1110_lr_fhss_pulse_shape_t { LR1110_LR_FHSS_PULSE_SHAPE_BT_1 = 0x0B +
 Hopping enable/disabled enumerations for lr11xx_lr_fhss_build_frame.
 
enum  lr11xx_lr_fhss_pulse_shape_t { LR11XX_LR_FHSS_PULSE_SHAPE_BT_1 = 0x0B }
 Pulse shape configurations. More...
 
 Pulse shape configurations. More...
 
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +

Functions

static lr1110_status_t lr1110_lr_fhss_set_lr_fhss_mod_params (const void *context, const lr1110_lr_fhss_mod_params_lr_fhss_t *mod_params)
 Set the modulation parameters for LR_FHSS. More...
 
static lr1110_status_t lr1110_lr_fhss_set_sync_word (const void *context, const uint8_t sync_word[LR1110_LR_FHSS_SYNCWORD_LENGTH])
 Set the syncword for LR_FHSS. More...
 
static uint16_t lr1110_lr_fhss_get_nb_bits (const lr_fhss_v1_params_t *params, uint16_t payload_length)
 Get the bit count and block count for a LR-FHSS frame. More...
 
lr1110_status_t lr1110_lr_fhss_init (const void *context)
 Initialize the LR_FHSS. More...
 
lr1110_status_t lr1110_lr_fhss_build_frame (const void *context, const lr1110_lr_fhss_params_t *lr_fhss_params, uint16_t hop_sequence_id, const uint8_t *payload, uint8_t payload_length)
 Configure a payload to be sent with LR_FHSS. More...
 
uint32_t lr1110_lr_fhss_get_time_on_air_in_ms (const lr1110_lr_fhss_params_t *params, uint16_t payload_length)
 Get the time on air in ms for LR-FHSS transmission. More...
 
unsigned int lr1110_lr_fhss_get_hop_sequence_count (const lr1110_lr_fhss_params_t *lr_fhss_params)
 Return the number of hop sequences available using the given parameters. More...
 
static lr11xx_status_t lr11xx_lr_fhss_set_lr_fhss_mod_params (const void *context, const lr11xx_lr_fhss_mod_params_lr_fhss_t *mod_params)
 Set the modulation parameters for LR_FHSS. More...
 
static lr11xx_status_t lr11xx_lr_fhss_set_sync_word (const void *context, const uint8_t sync_word[LR11XX_LR_FHSS_SYNCWORD_LENGTH])
 Set the syncword for LR_FHSS. More...
 
static uint16_t lr11xx_lr_fhss_get_nb_bits (const lr_fhss_v1_params_t *params, uint16_t payload_length)
 Get the bit count and block count for a LR-FHSS frame. More...
 
lr11xx_status_t lr11xx_lr_fhss_init (const void *context)
 Initialize the LR_FHSS. More...
 
lr11xx_status_t lr11xx_lr_fhss_build_frame (const void *context, const lr11xx_lr_fhss_params_t *lr_fhss_params, uint16_t hop_sequence_id, const uint8_t *payload, uint8_t payload_length)
 Configure a payload to be sent with LR_FHSS. More...
 
uint32_t lr11xx_lr_fhss_get_time_on_air_in_ms (const lr11xx_lr_fhss_params_t *params, uint16_t payload_length)
 Get the time on air in ms for LR-FHSS transmission. More...
 
unsigned int lr11xx_lr_fhss_get_hop_sequence_count (const lr11xx_lr_fhss_params_t *lr_fhss_params)
 Return the number of hop sequences available using the given parameters. More...
 

Detailed Description

-

LR_FHSS driver implementation for LR1110.

+

LR_FHSS driver implementation for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -366,75 +367,75 @@

    -EnumeratorLR1110_GNSS_SET_CONSTELLATION_OC 

    Set the constellation to use.

    +EnumeratorLR11XX_GNSS_SET_CONSTELLATION_OC 

    Set the constellation to use.

    -LR1110_GNSS_READ_CONSTELLATION_OC 

    Read the used constellations.

    +LR11XX_GNSS_READ_CONSTELLATION_OC 

    Read the used constellations.

    -LR1110_GNSS_SET_ALMANAC_UPDATE_OC 

    Set almanac update configuration.

    +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC 

    Set almanac update configuration.

    -LR1110_GNSS_READ_ALMANAC_UPDATE_OC 

    Read the almanac update configuration.

    +LR11XX_GNSS_READ_ALMANAC_UPDATE_OC 

    Read the almanac update configuration.

    -LR1110_GNSS_READ_FW_VERSION_OC 

    Read the firmware version.

    +LR11XX_GNSS_READ_FW_VERSION_OC 

    Read the firmware version.

    -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

    Read the supported constellations.

    +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

    Read the supported constellations.

    -LR1110_GNSS_SET_SCAN_MODE_OC 

    Define single or double capture.

    +LR11XX_GNSS_SET_SCAN_MODE_OC 

    Define single or double capture.

    -LR1110_GNSS_SCAN_AUTONOMOUS_OC 

    Launch an autonomous scan.

    +LR11XX_GNSS_SCAN_AUTONOMOUS_OC 

    Launch an autonomous scan.

    -LR1110_GNSS_SCAN_ASSISTED_OC 

    Launch an assisted scan.

    +LR11XX_GNSS_SCAN_ASSISTED_OC 

    Launch an assisted scan.

    -LR1110_GNSS_SCAN_GET_RES_SIZE_OC 

    Get the size of the output payload.

    +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC 

    Get the size of the output payload.

    -LR1110_GNSS_SCAN_READ_RES_OC 

    Read the byte stream.

    +LR11XX_GNSS_SCAN_READ_RES_OC 

    Read the byte stream.

    -LR1110_GNSS_ALMANAC_UPDATE_OC 

    Update the almanac.

    +LR11XX_GNSS_ALMANAC_UPDATE_OC 

    Update the almanac.

    -LR1110_GNSS_ALMANAC_READ_OC 

    Read all almanacs.

    +LR11XX_GNSS_ALMANAC_READ_OC 

    Read all almanacs.

    -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC 

    Set the assistance position.

    +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC 

    Set the assistance position.

    -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC 

    Read the assistance position.

    +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC 

    Read the assistance position.

    -LR1110_GNSS_PUSH_SOLVER_MSG_OC 

    Push messages coming from the solver.

    +LR11XX_GNSS_PUSH_SOLVER_MSG_OC 

    Push messages coming from the solver.

    -LR1110_GNSS_PUSH_DM_MSG_OC 

    Push messages coming from the device management.

    +LR11XX_GNSS_PUSH_DM_MSG_OC 

    Push messages coming from the device management.

    -LR1110_GNSS_GET_CONTEXT_STATUS_OC 

    Read the context.

    +LR11XX_GNSS_GET_CONTEXT_STATUS_OC 

    Read the context.

    -LR1110_GNSS_GET_NB_SATELLITES_OC 

    Get the number of satellites detected during a scan.

    +LR11XX_GNSS_GET_NB_SATELLITES_OC 

    Get the number of satellites detected during a scan.

    -LR1110_GNSS_GET_SATELLITES_OC 

    Get the list of satellites detected during a scan.

    +LR11XX_GNSS_GET_SATELLITES_OC 

    Get the list of satellites detected during a scan.

    -LR1110_GNSS_GET_TIMINGS_OC 

    Get the time spent in signal acquisition and analysis.

    +LR11XX_GNSS_GET_TIMINGS_OC 

    Get the time spent in signal acquisition and analysis.

- -

◆ lr1110_lr_fhss_pulse_shape_t

+ +

◆ lr11xx_lr_fhss_pulse_shape_t

Pulse shape configurations.

-
Enumerator
LR1110_LR_FHSS_PULSE_SHAPE_BT_1 

Gaussian BT 1.0.

+
Enumerator
LR11XX_LR_FHSS_PULSE_SHAPE_BT_1 

Gaussian BT 1.0.

Function Documentation

- -

◆ lr1110_lr_fhss_set_lr_fhss_mod_params()

+ +

◆ lr11xx_lr_fhss_set_lr_fhss_mod_params()

@@ -443,7 +444,7 @@

- + @@ -451,7 +452,7 @@

- + @@ -468,7 +469,7 @@

Set the modulation parameters for LR_FHSS.

-

The command lr1110_lr_fhss_set_pkt_type must be called prior this one.

+

The command lr11xx_lr_fhss_set_pkt_type must be called prior this one.

Parameters

lr1110_status_t lr1110_lr_fhss_set_lr_fhss_mod_params lr11xx_status_t lr11xx_lr_fhss_set_lr_fhss_mod_params ( const void *  context, const lr1110_lr_fhss_mod_params_lr_fhss_tconst lr11xx_lr_fhss_mod_params_lr_fhss_t mod_params 
@@ -477,12 +478,12 @@

Returns
Operation status
-
See also
lr1110_lr_fhss_set_pkt_type
+
See also
lr11xx_lr_fhss_set_pkt_type
-
-

◆ lr1110_lr_fhss_set_sync_word()

+ +

◆ lr11xx_lr_fhss_set_sync_word()

@@ -491,7 +492,7 @@

[in]contextChip implementation context
- + @@ -500,7 +501,7 @@

- + @@ -528,8 +529,8 @@

-

◆ lr1110_lr_fhss_get_nb_bits()

+ +

◆ lr11xx_lr_fhss_get_nb_bits()

@@ -538,7 +539,7 @@

lr1110_status_t lr1110_lr_fhss_set_sync_word lr11xx_status_t lr11xx_lr_fhss_set_sync_word ( const void *  context, const uint8_t sync_word[LR1110_LR_FHSS_SYNCWORD_LENGTH] sync_word[LR11XX_LR_FHSS_SYNCWORD_LENGTH] 
- + @@ -574,14 +575,14 @@

-

◆ lr1110_lr_fhss_init()

+ +

◆ lr11xx_lr_fhss_init()

uint16_t lr1110_lr_fhss_get_nb_bits uint16_t lr11xx_lr_fhss_get_nb_bits ( const lr_fhss_v1_params_t params,
- + @@ -601,14 +602,14 @@

-

◆ lr1110_lr_fhss_build_frame()

+ +

◆ lr11xx_lr_fhss_build_frame()

lr1110_status_t lr1110_lr_fhss_init lr11xx_status_t lr11xx_lr_fhss_init ( const void *  context)
- + @@ -616,7 +617,7 @@

- + @@ -646,7 +647,7 @@

Configure a payload to be sent with LR_FHSS.

-

When calling this method, lr1110_lr_fhss_set_sync_word is implicitely called to configure the sync word. Note that the syncword must be 4 bytes long.

+

When calling this method, lr11xx_lr_fhss_set_sync_word is implicitely called to configure the sync word. Note that the syncword must be 4 bytes long.

Parameters

lr1110_status_t lr1110_lr_fhss_build_frame lr11xx_status_t lr11xx_lr_fhss_build_frame ( const void *  context, const lr1110_lr_fhss_params_tconst lr11xx_lr_fhss_params_t lr_fhss_params,
@@ -661,16 +662,16 @@

-

◆ lr1110_lr_fhss_get_time_on_air_in_ms()

+ +

◆ lr11xx_lr_fhss_get_time_on_air_in_ms()

[in]contextChip implementation context
- + - + @@ -690,7 +691,7 @@

Parameters

uint32_t lr1110_lr_fhss_get_time_on_air_in_ms uint32_t lr11xx_lr_fhss_get_time_on_air_in_ms (const lr1110_lr_fhss_params_tconst lr11xx_lr_fhss_params_t params,
- +
[in]paramsLR1110 LR-FHSS parameter structure
[in]paramsLR11XX LR-FHSS parameter structure
[in]payload_lengthLength of application-layer payload
@@ -699,16 +700,16 @@

-

◆ lr1110_lr_fhss_get_hop_sequence_count()

+ +

◆ lr11xx_lr_fhss_get_hop_sequence_count()

- + - + diff --git a/doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.map b/doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.map new file mode 100644 index 0000000..30d8424 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.md5 b/doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.md5 new file mode 100644 index 0000000..c264c99 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.md5 @@ -0,0 +1 @@ +a84d296624d36c9ddd87fe86112a2d08 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.png b/doc/lr11xx/html/lr11xx__lr__fhss_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..ab4fd0f8ab51bf2e8af662da753449961ece0ab6 GIT binary patch literal 27968 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 -lr1110_driver: lr1110_driver/src/lr1110_lr_fhss.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_lr_fhss.h File Reference @@ -21,7 +21,7 @@ @@ -61,7 +61,7 @@
@@ -69,22 +69,22 @@ Macros | Functions
-
lr1110_lr_fhss.h File Reference
+
lr11xx_lr_fhss.h File Reference
-

LR_FHSS driver definition for LR1110. +

LR_FHSS driver definition for LR11XX. More...

-
#include "lr1110_lr_fhss_types.h"
-#include "lr1110_types.h"
+
#include "lr11xx_lr_fhss_types.h"
+#include "lr11xx_types.h"
-Include dependency graph for lr1110_lr_fhss.h:
+Include dependency graph for lr11xx_lr_fhss.h:
-
- - - - +
+ + + + @@ -93,39 +93,39 @@
This graph shows which files directly or indirectly include this file:
-
- - - +
+ + +
-

Go to the source code of this file.

+

Go to the source code of this file.

unsigned int lr1110_lr_fhss_get_hop_sequence_count unsigned int lr11xx_lr_fhss_get_hop_sequence_count (const lr1110_lr_fhss_params_tconst lr11xx_lr_fhss_params_t lr_fhss_params)
-
lr1110_driver +
lr11xx_driver
+#define 

Macros

-#define LR_FHSS_SYNC_WORD_BYTES   ( 4 )
LR_FHSS_SYNC_WORD_BYTES   ( 4 )
 Length, in bytes, of a LR-FHSS sync word.
 
- - - - - - - - - - - - + + + + + + + + + + + +

Functions

lr1110_status_t lr1110_lr_fhss_init (const void *context)
 Initialize the LR_FHSS. More...
 
lr1110_status_t lr1110_lr_fhss_build_frame (const void *context, const lr1110_lr_fhss_params_t *lr_fhss_params, uint16_t hop_sequence_id, const uint8_t *payload, uint8_t payload_length)
 Configure a payload to be sent with LR_FHSS. More...
 
uint32_t lr1110_lr_fhss_get_time_on_air_in_ms (const lr1110_lr_fhss_params_t *params, uint16_t payload_length)
 Get the time on air in ms for LR-FHSS transmission. More...
 
unsigned int lr1110_lr_fhss_get_hop_sequence_count (const lr1110_lr_fhss_params_t *lr_fhss_params)
 Return the number of hop sequences available using the given parameters. More...
 
lr11xx_status_t lr11xx_lr_fhss_init (const void *context)
 Initialize the LR_FHSS. More...
 
lr11xx_status_t lr11xx_lr_fhss_build_frame (const void *context, const lr11xx_lr_fhss_params_t *lr_fhss_params, uint16_t hop_sequence_id, const uint8_t *payload, uint8_t payload_length)
 Configure a payload to be sent with LR_FHSS. More...
 
uint32_t lr11xx_lr_fhss_get_time_on_air_in_ms (const lr11xx_lr_fhss_params_t *params, uint16_t payload_length)
 Get the time on air in ms for LR-FHSS transmission. More...
 
unsigned int lr11xx_lr_fhss_get_hop_sequence_count (const lr11xx_lr_fhss_params_t *lr_fhss_params)
 Return the number of hop sequences available using the given parameters. More...
 

Detailed Description

-

LR_FHSS driver definition for LR1110.

+

LR_FHSS driver definition for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -134,14 +134,14 @@

NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Function Documentation

- -

◆ lr1110_lr_fhss_init()

+ +

◆ lr11xx_lr_fhss_init()

- + @@ -161,14 +161,14 @@

-

◆ lr1110_lr_fhss_build_frame()

+ +

◆ lr11xx_lr_fhss_build_frame()

lr1110_status_t lr1110_lr_fhss_init lr11xx_status_t lr11xx_lr_fhss_init ( const void *  context)
- + @@ -176,7 +176,7 @@

- + @@ -206,7 +206,7 @@

Configure a payload to be sent with LR_FHSS.

-

When calling this method, lr1110_lr_fhss_set_sync_word is implicitely called to configure the sync word. Note that the syncword must be 4 bytes long.

+

When calling this method, lr11xx_lr_fhss_set_sync_word is implicitely called to configure the sync word. Note that the syncword must be 4 bytes long.

Parameters

lr1110_status_t lr1110_lr_fhss_build_frame lr11xx_status_t lr11xx_lr_fhss_build_frame ( const void *  context, const lr1110_lr_fhss_params_tconst lr11xx_lr_fhss_params_t lr_fhss_params,
@@ -221,16 +221,16 @@

-

◆ lr1110_lr_fhss_get_time_on_air_in_ms()

+ +

◆ lr11xx_lr_fhss_get_time_on_air_in_ms()

[in]contextChip implementation context
- + - + @@ -250,7 +250,7 @@

Parameters

uint32_t lr1110_lr_fhss_get_time_on_air_in_ms uint32_t lr11xx_lr_fhss_get_time_on_air_in_ms (const lr1110_lr_fhss_params_tconst lr11xx_lr_fhss_params_t params,
- +
[in]paramsLR1110 LR-FHSS parameter structure
[in]paramsLR11XX LR-FHSS parameter structure
[in]payload_lengthLength of application-layer payload
@@ -259,16 +259,16 @@

-

◆ lr1110_lr_fhss_get_hop_sequence_count()

+ +

◆ lr11xx_lr_fhss_get_hop_sequence_count()

- + - + diff --git a/doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.map new file mode 100644 index 0000000..b852be4 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.md5 new file mode 100644 index 0000000..1c6aa9f --- /dev/null +++ b/doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.md5 @@ -0,0 +1 @@ +77527dafa2bf4557b7791bf7d6911a47 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__lr__fhss_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..4edbfa62e0a36882c97f9fcc27d04708717f156e GIT binary patch literal 4709 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 - - - + + + + diff --git a/doc/lr11xx/html/lr11xx__lr__fhss_8h__incl.md5 b/doc/lr11xx/html/lr11xx__lr__fhss_8h__incl.md5 new file mode 100644 index 0000000..2ffff3e --- /dev/null +++ b/doc/lr11xx/html/lr11xx__lr__fhss_8h__incl.md5 @@ -0,0 +1 @@ +4e769c9017666f2e2cbad914604de692 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__lr__fhss_8h__incl.png b/doc/lr11xx/html/lr11xx__lr__fhss_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb96775c40a6b5d9694fe3f45b33aa405114908 GIT binary patch literal 11904 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 -lr1110_driver: lr1110_driver/src/lr1110_lr_fhss.h Source File +lr11xx_driver: lr11xx_driver/src/lr11xx_lr_fhss.h Source File @@ -21,7 +21,7 @@ @@ -61,17 +61,17 @@
-
lr1110_lr_fhss.h
+
lr11xx_lr_fhss.h
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_LR_FHSS_H
-
36 #define LR1110_LR_FHSS_H
+Go to the documentation of this file.
1 
+
35 #ifndef LR11XX_LR_FHSS_H
+
36 #define LR11XX_LR_FHSS_H
37 
38 #ifdef __cplusplus
39 extern "C" {
@@ -82,8 +82,8 @@
44  * --- DEPENDENCIES ------------------------------------------------------------
45  */
46 
-
47 #include "lr1110_lr_fhss_types.h"
-
48 #include "lr1110_types.h"
+
47 #include "lr11xx_lr_fhss_types.h"
+
48 #include "lr11xx_types.h"
49 
50 /*
51  * -----------------------------------------------------------------------------
@@ -95,7 +95,7 @@
57  * --- PUBLIC CONSTANTS --------------------------------------------------------
58  */
59 
-
63 #define LR_FHSS_SYNC_WORD_BYTES ( 4 )
+
63 #define LR_FHSS_SYNC_WORD_BYTES ( 4 )
64 
65 /*
66  * -----------------------------------------------------------------------------
@@ -107,31 +107,31 @@
72  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
73  */
74 
-
82 lr1110_status_t lr1110_lr_fhss_init( const void* context );
+
82 lr11xx_status_t lr11xx_lr_fhss_init( const void* context );
83 
-
100 lr1110_status_t lr1110_lr_fhss_build_frame( const void* context, const lr1110_lr_fhss_params_t* lr_fhss_params,
+
100 lr11xx_status_t lr11xx_lr_fhss_build_frame( const void* context, const lr11xx_lr_fhss_params_t* lr_fhss_params,
101  uint16_t hop_sequence_id, const uint8_t* payload, uint8_t payload_length );
102 
-
111 uint32_t lr1110_lr_fhss_get_time_on_air_in_ms( const lr1110_lr_fhss_params_t* params, uint16_t payload_length );
+
111 uint32_t lr11xx_lr_fhss_get_time_on_air_in_ms( const lr11xx_lr_fhss_params_t* params, uint16_t payload_length );
112 
-
120 unsigned int lr1110_lr_fhss_get_hop_sequence_count( const lr1110_lr_fhss_params_t* lr_fhss_params );
+
120 unsigned int lr11xx_lr_fhss_get_hop_sequence_count( const lr11xx_lr_fhss_params_t* lr_fhss_params );
121 
122 #ifdef __cplusplus
123 }
124 #endif
125 
-
126 #endif // LR1110_LR_FHSS_H
+
126 #endif // LR11XX_LR_FHSS_H
127 
128 /* --- EOF ------------------------------------------------------------------ */
-
unsigned int lr1110_lr_fhss_get_hop_sequence_count(const lr1110_lr_fhss_params_t *lr_fhss_params)
Return the number of hop sequences available using the given parameters.
Definition: lr1110_lr_fhss.c:215
-
LR FHSS parameter structure.
Definition: lr1110_lr_fhss_types.h:54
-
lr1110_status_t lr1110_lr_fhss_init(const void *context)
Initialize the LR_FHSS.
Definition: lr1110_lr_fhss.c:161
-
LR_FHSS types definition for LR1110.
-
uint32_t lr1110_lr_fhss_get_time_on_air_in_ms(const lr1110_lr_fhss_params_t *params, uint16_t payload_length)
Get the time on air in ms for LR-FHSS transmission.
Definition: lr1110_lr_fhss.c:209
-
Type definitions for LR1110.
-
enum lr1110_status_e lr1110_status_t
LR1110 status.
-
lr1110_status_t lr1110_lr_fhss_build_frame(const void *context, const lr1110_lr_fhss_params_t *lr_fhss_params, uint16_t hop_sequence_id, const uint8_t *payload, uint8_t payload_length)
Configure a payload to be sent with LR_FHSS.
Definition: lr1110_lr_fhss.c:179
+
Type definitions for LR11XX.
+
unsigned int lr11xx_lr_fhss_get_hop_sequence_count(const lr11xx_lr_fhss_params_t *lr_fhss_params)
Return the number of hop sequences available using the given parameters.
Definition: lr11xx_lr_fhss.c:215
+
uint32_t lr11xx_lr_fhss_get_time_on_air_in_ms(const lr11xx_lr_fhss_params_t *params, uint16_t payload_length)
Get the time on air in ms for LR-FHSS transmission.
Definition: lr11xx_lr_fhss.c:209
+
lr11xx_status_t lr11xx_lr_fhss_build_frame(const void *context, const lr11xx_lr_fhss_params_t *lr_fhss_params, uint16_t hop_sequence_id, const uint8_t *payload, uint8_t payload_length)
Configure a payload to be sent with LR_FHSS.
Definition: lr11xx_lr_fhss.c:179
+
enum lr11xx_status_e lr11xx_status_t
LR11XX status.
+
LR_FHSS types definition for LR11XX.
+
lr11xx_status_t lr11xx_lr_fhss_init(const void *context)
Initialize the LR_FHSS.
Definition: lr11xx_lr_fhss.c:161
+
LR FHSS parameter structure.
Definition: lr11xx_lr_fhss_types.h:54
@@ -61,26 +61,26 @@
-
lr1110_lr_fhss_types.h File Reference
+
lr11xx_lr_fhss_types.h File Reference
-

LR_FHSS types definition for LR1110. +

LR_FHSS types definition for LR11XX. More...

-Include dependency graph for lr1110_lr_fhss_types.h:
+Include dependency graph for lr11xx_lr_fhss_types.h:
-
- - +
+ + @@ -89,24 +89,24 @@
This graph shows which files directly or indirectly include this file:
-
- - - - +
+ + + +
-

Go to the source code of this file.

+

Go to the source code of this file.

unsigned int lr1110_lr_fhss_get_hop_sequence_count unsigned int lr11xx_lr_fhss_get_hop_sequence_count (const lr1110_lr_fhss_params_tconst lr11xx_lr_fhss_params_t lr_fhss_params)
-
lr1110_driver +
lr11xx_driver
-
lr1110_driver +
lr11xx_driver
- - + +

Data Structures

struct  lr1110_lr_fhss_params_t
 LR FHSS parameter structure. More...
struct  lr11xx_lr_fhss_params_t
 LR FHSS parameter structure. More...
 

Detailed Description

-

LR_FHSS types definition for LR1110.

+

LR_FHSS types definition for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • diff --git a/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.map new file mode 100644 index 0000000..23f674a --- /dev/null +++ b/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.md5 new file mode 100644 index 0000000..047f7e6 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.md5 @@ -0,0 +1 @@ +bbb6dce4578afc62644814ab70afbeb5 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..39cea8f077e85a32e9e17e2b79d1561d96629922 GIT binary patch literal 7690 zcmeI1WmHsAyT=DmKvFs#kPrj}hDKUSLb{X&3F(k-l@Mtp1QcoML1c)bYm}58T1skY z1nIlE_kG{H?ppWT{qTOdz-HDuGv~}X`+4^B{Qm#_R!c*fn1G%D0)Y^#JXX*FuShUf z@o~X_r5TRj;04!8O<4hQb^ZIfsVEr&xznPeAgAY>wKeOfrDu35y6Zafbvo*lfR?H= zJjx17SY6hHyn*qiGviyjlpb}x=bZuyS#`wGYD9V3j`y@r*xf(#(9A%vUg%nxeCN~F zR#70%fJZTx=Hh>65t&`R=tv9BF+^+^o=InyT)qz2mO9RAHlOa;igbZm$AsM;NprGY zBfFi;N9o;8_s@YtDf-;bZb|0qB>ryqqsQ4Q8X5*ug_K8MzY65%=l`1ZnIG%@jK8iX zEG+E1`zx$RqySz!-5i9h=$4NfIN$9c{fns{)I$tqe00MN|F5Bx{U&IvME~zLa_2O+ zG&l!=pvJ<&`chdbdZ=~SJz9~&b=Wf}Z-O6LtQ{a)Sh+P_OS-?3Ys(r)*EkK z^iP&C{$X3?J^oGxfbQejd*TzdIQCL}H);kHSmuXeNZ;3uiSD49#F z59)OtdS9>In_3OCkLxl)+mxXB(kHg%;%~wg5*wg zdOEGsYy*{xi_7=HK~yY*XhK55^(2*VO<~YgI7dfEV!`KP8JU^aXOT3)^ZLDx9an6(7QRyLm!yv8MNPh?ew+w@X1O8RO+ zMf3+J|7=cFS+rrlPfJ_MbZu@+GY`HcDk@4zMYXWM(n~87+&BeunQNruGjHysF%JyO zk&j%AWD1sbap5gg|1eza>J_t2?;SqS4kafaE^_RXIbR_C+iQOL3OvW?_&AG*2(^3! z(YgonAqZKW&kl5Wc-X?#l{6qApv_YzOgbutCo^W-+HwZZ zvP4~>C8eb>Fmt{E0X|66l#C2|qo+^X=H|?rx5{hhbfz??17E#*<+eV|{;j6wuBa$Y zY;0`0bkM_4Q8jwV-(RmuZ{NNh8X5}04}T;iD%zVSUNYdmIsQQXlO!FuAzJA`F@)3P zE7z6_YBDl1bhRBRR66jBcg)z>7{8#Pt~gCs^B64E5v~7_5Lx17;mY3)cbwo={~&Oa zii%1shB) zb!dEKwcQ{KH+Shs$NaqcmN=M$x#HRRd8U9POk3@IFrllfYnfRSeR+8~SGuTho!? zcED0uXt}y@two`h_V@#ioU+6{ab+(5vi|P-!0PJh=GHn|th?7mWB$3Zkr901-;3k< zDv*MY*~n8aR0?!v8obn+n=emRvl9~%LZhPzz#PlnOI`q(=@8;~eg6CVx^TNe==;>v z+~VR}s{+cK7$&7rWk71)X^}`u|aNM2bu!oaNQj2&K<=*G{zUfu!*6GO}(VsUwXf^G?s!N$R{baAQpT4^3~LDdmKoP70ab7dtw3*gha{1Ljd7CjqB*>ShF5>Bo@d|ipFVvW<@wHk6BsvDoPOAp;_7|{>EYG@$m># zq_^cjmbekZi4H8QG@roD4B9JCtNluhsr%NH@bc;^tGGBF0)dEtk_?e0``YZ3=jO72 z(!?OS29oxBU!Tw#tvX%!9a&x7P_Rr+bx_s8_|?e3=Wo#AfkKqzsx{p^&-v)EsPVzc$87?HwH2mwzNz+4j?mJ$!g%UzYJH z`Er1*gXCqCq}N1+DZ18`DPQNl^u^(bhBK%;t#;W#xQ2#?Y#ba*=2xdQI=Z^r+S)mY z83cDhUCDK620!?>Zpnd62^E!-^4(?L-``(epnBJ}ySJAZNd*xQ5P)A-b?`)($!c_+ zJ8K-13<)TBu?1ZjzjNXmR`V-2?O(P%PlIi(6gL%zUxEU{Z`pps=-IQy!H`SAjg5`n z^ApeAlfVLx=@f25?9gt+_E!X=yXS!3{pKM|8OBPc#b^&ae8TwJ?rLwV3x{aH^dBK4z`CcYkBiPQ^(AwLMX zRc930zQ;5upfPtOs0pcgTG3V35-E#Zh(Dd@CkItlT?7hBN{heyGk+bNsO|)lFiD%N zuV!RqXcTlsgTlG6vopU{RT7{P6ZRv*bmFS~^y~~&9i|wVNyE!qrG}MCAj~`u9ta~| znze|2(;aiBF((Q zLfnzUCnL|El{uFM9B=ENzI$M8`?V6&ung8JNNlH>Ix+wR9p4jKS5^=ipmGoscg-~g zBxYm~fc|%a@>0(fA;u$N3{6W*JJ-ZKBmfKh(W6)AE`1fI$mQNxkmHO}{*(+NPOa}~ z__bFr?8OK*Dhh`m`U z1{QI6_!0!&syl`*0ve~idEA>mm%4V8Mn3;3?mFWEKXgVAGrSLmvCod|WHX&68{)TtmTz4T7Ud3h56JXJMy>eT->G$i~Go&NUJ0VhtZY< z&hVhoFWOv$k&own&(S31<>T<0J0uL5BJ!lDWg-R<^{v%@?xxqOFM9|1sN-6n1f^Wi@#dt+U;=D_~8-Pj`qd=o~qo%o7*$@1$U$B z!rLo21nA^dd-!}WPWvCu&ICfhrx<+oW*%8iBr}LY7bmOJ_OscOMDp{OWx2L8cL-Ug zw9$Xqq%K7I`cFP0ntX?1Fc=n`*r)(bj6ax8_ai4>wxofOu;(rV$_`u)Y!1P9;K`it zN|-h4UFJQ1s}LO%WAY6#eBmAR8NS)}L9oT56*3kAnHy%2GZ=UEhmwhEqrJ)sR)m|c zq)DBfOG3z24*VWJxlkO;Tf9erj5DoE;AolsqH3H85M+5_rMLNHjyV?^Zi*VnI=LD8 zdk~)Zc<#ohHR^EF$c>GRy_T!Y`S8IQ%R}5`sMg(dk{Sder=g*F1fiA&wdhUNdv1q% zIW@4FX}SEp?UWHZ!FGHmQzv4Znu_ylQQ+GM!m{HAE>Tr(k6gArA+kC;Nny%XQ`EdBUm6qdiv^tu;mDHSk?QN?`A}c~x(#KyK}wZ0 z8r)A5G)4|n0w8Mi%|5Y5jkRR>*~!V>yLWT=8a8M^t!P`?+r>-@%9AR( zs&CPkJgUSH}n2?&r&LP^0N4ld{Xjp6aR`Rg9Cu(04So|c)(@U^;{c&_$Z z3xrGY@{+{BqPiBLHJkELeuE8TW@d&4U3V^EM+*N2cGg3$62l99 z1B3RVA+on`-|jnuZlo+L3(40h9`|-GDJcO=Xklj;`IdrXvG0T6v(*uIItm&ZJXhBp z4V0w+A%37V6FWOQB(%F*NkLJut*h%MfN-D$I3GM1^Cf}Ye%F;Q;ltb4*9Q-|3a)Et zXdfS^1|PA!oZJ?Pxw$zt6BFOn z}xVU%~fZ{4pmo?6!yR5ob55|rPDlP!Js59S&w)tjclxK)e{}>yNE?KPlAA z9-!tiYW*bX*ADnUJwBckr_}+h^ns$KEPx;%3JTbJ`}%BG&?okq~$V9$*1ONP) z*}%l4Z)0ydEujR%WLtU7n`gGX^}*fJLXMVyP@I6}!h1j5)LlB-)2zfI(LCPr3PEY>kqK$+r(>g(x!KTcCE=o=V_1GQdrOWXlGAZUJ$_VyNCU0r?S z;|9$wEL}@#YHD;410$m^9#?Ter5W)s(~dZya8o-+Z#%nH=^f9No)i$haPZh~9$D5- z>)+?&i!3jHz{tqBJl!34r}SGk;)KT-L4=BDLTye|y07$5jgE~i0C2_IwN=4^uqwqQ zTw$YD4~BmJWH$f(>O}w?MlHcofq{Xysi`B7K076MtW{KQ{S9pH zsptHs{&*{EShK6RL*&ja8NuRE*H#U&)H z=NkR4B{cy7!B5bNv$7c9ym|Avrbgc;#M#*yPz%s+*bpGd$udQpA8Biov60^bxAW}T zGv?$Ude9vVhA8pz8#tW*{Ak)0xChFCfsz9sC5lFCo7Xnzy`PGXOF9%k+qom*T{a@U zx3|Zo2AiJf%9yG&sc#1|vbVQ4`S=(}iRxPv_uyc~0@)0tZ8gaEd$;k^kw}Sm@80P? ztL7e1b{~j=8E9#>Lf|UN_wIkp%gG5VH?EC~r4x*poSG5U2zfJi6n+?Ud8YJ?9C51+qy@q#}40B9hD!x)!{!ziZ+Kop?y+UOY=QcewonSj#Y z5-Okci}9*happ^WuD9r@1(tU>Sd`w|GcWXl7&0Qx?=kcXL^yU@RSl%lHDHi3f+z5_ z_wT>&gmOx!@|rrVEfni(X+c6lLh?3|GMgbciGrLC*M`2au|mXld**bT${pT6W;6Qw z{1%u1Nl8gaqaR`O()2<@Zsh?jLvo0X==*Ci$iacPva&)eWDh#Iylf@rq37zroxi82 zIzP|IKQ4H zyITMc5AR;`524gu2kssH{B_B~0cQR9LQYWqFE1|vU`lPXa&ZytG#-#RIXS_>v`Pk@ zQUdRQUsN6L=2WVgQN7?=7&Dkt`<4ekrpQqBtw}kKh>Wxb3KjR0+?BE`*B^?V<}+Ro zPfs#R$~QoR0(!rD|NbpNV54ZIhB(#0w<*HRVLMsyKwm73{2!0_P`R%xmLrDzBH|p_Y15;b4X#gSVG? zrLsS&+m;-Ic~j@MV4m>9jLu&yEBBCuYpDDt;U(VWq#_#Wb65J@E&8AEB^7i^F6t_M zBOVVx6D|0(yyZk5fS&XZd#$u?n+CT^N;Zh3*fetBo7$?XB+tK!mMTfl6VcK65J|GQ zfTJoe);-Tp9m6Ft&dvgC93whP*#NGRQjZA#p2um5cD%+*;pDA=q0{Rk0KeV8FOyeZ zeo))|A@d+HweW-$_IMs#B&@;E4ZxOekqf#DX^BfZd_aICsj2zl2Cy$*2bb_2mID(cK2^ZK^+$``SXx7aZP~N26XOgfsS-eU zJNSf|b1%+5%ZZ#a(sO8!<$bbwKGW8dqOA4wq#!4A;0cuo0OCU zw;y7Wj|r#f>%Sr`E4vqpTB7sky!T{`rsvCrMgb`Ln=kp7Ddb68*=&GITUyzyGg&Bt zA*A6QoeaevV)wEv68%|EKQ?9817ZK-z#z`=7q+kTIH-l@$!9a1@Jv!Qc*$3>r*3|=T9UW|ly_1uIo*w0O zPXi_)=mf*VIytdZYO7FSkURqndTtlr9EO|;;888SKu%% zDKsW33SUTA_`jXjcFHX2pp0U4Sz=`+-@Ewuv@6W|`j4!vEMSdJfEH?86x3w}TRJ## zIMbO3-dj`zodON81`Vvz^t?RQQn02xkoQ1X?0`77(EKE6si>&fheAbSSpb9F0RZDb zO-)VT@Nm+~@83OVz|Z2QAPC>jmVflfNK5NBH!rX4pFe+`wx(+Orl&K3;}ttN8AB&% zq^e5LJ2+?uG$RHW6=ekl;UL`AUYp}Tj&;4x8~qN@-(HNMFV2o9fx<+$y~g`s#AC2w z>@Jwn*bM-}Xjwfx9Jw z1ne)r4V*4eOMBm5A;#1t&Sz4WP;ST1vI<9d%3Rp8pSPfs&E%7IUBm4IH{0q~fFgk;~@8WpF1?X0FgFpgM4#V-NB zug+tI;M)DTJlnzXtY4a5m$};HmTM4`iZL8fKJ7d zM379O7fHk7^z`)T2Cq$YI?Os9AoszaKQ_SFbI7hPE93dSuyFUPzNRK+Ypy916sEYR z#>Rr0nwqJpsfByum8GTDr3U3zc}lTXU{ApkxRPa6Roca_`Ufzer8Gt|KBA0PxsH!y z<}A3P=igqInIfsdspxvoBJDrU_VoLiPC~u36=d(a9va)Oecie2TkbH^(P3%9$^8qM zwKylT$N<=w=NA{T7619BwEv-ffdunbJa88sB@wkgsHO6R$ufrm|2tH4N8LLx zEn!Xbs&pK77ZA9jh6YJbZ!gULC$l_h - + + diff --git a/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__incl.md5 b/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__incl.md5 new file mode 100644 index 0000000..f11ba51 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__incl.md5 @@ -0,0 +1 @@ +d43912aacb2f6e9a8ebe41621dd06609 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__incl.png b/doc/lr11xx/html/lr11xx__lr__fhss__types_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..6b2f50358634790841415ace4eeb49f9a01cbfc5 GIT binary patch literal 7579 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 E0FOPDhX4Qo literal 0 HcmV?d00001 diff --git a/doc/lr1110/html/lr1110__lr__fhss__types_8h_source.html b/doc/lr11xx/html/lr11xx__lr__fhss__types_8h_source.html similarity index 75% rename from doc/lr1110/html/lr1110__lr__fhss__types_8h_source.html rename to doc/lr11xx/html/lr11xx__lr__fhss__types_8h_source.html index afebf01..5dc95a4 100644 --- a/doc/lr1110/html/lr1110__lr__fhss__types_8h_source.html +++ b/doc/lr11xx/html/lr11xx__lr__fhss__types_8h_source.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_lr_fhss_types.h Source File +lr11xx_driver: lr11xx_driver/src/lr11xx_lr_fhss_types.h Source File @@ -21,7 +21,7 @@ -
    lr1110_driver +
    lr11xx_driver
    @@ -61,17 +61,17 @@
-
lr1110_lr_fhss_types.h
+
lr11xx_lr_fhss_types.h
-Go to the documentation of this file.
1 
-
35 #ifndef LR1110_LR_FHSS_TYPES_H
-
36 #define LR1110_LR_FHSS_TYPES_H
+Go to the documentation of this file.
1 
+
35 #ifndef LR11XX_LR_FHSS_TYPES_H
+
36 #define LR11XX_LR_FHSS_TYPES_H
37 
38 /*
39  * -----------------------------------------------------------------------------
@@ -85,24 +85,24 @@
47  * --- PUBLIC TYPES ------------------------------------------------------------
48  */
49 
-
53 typedef struct
+
53 typedef struct
54 {
- -
56  int8_t device_offset; //<! Per device offset to avoid collisions over the air. Possible values:
-
57  //<! - if lr_fhss_params.grid == LR_FHSS_V1_GRID_25391_HZ:
-
58  //<! [-26, 25]
-
59  //<! - if lr_fhss_params.grid == LR_FHSS_V1_GRID_3906_HZ:
-
60  //<! [-4, 3]
- + +
56  int8_t device_offset; //<! Per device offset to avoid collisions over the air. Possible values:
+
57  //<! - if lr_fhss_params.grid == LR_FHSS_V1_GRID_25391_HZ:
+
58  //<! [-26, 25]
+
59  //<! - if lr_fhss_params.grid == LR_FHSS_V1_GRID_3906_HZ:
+
60  //<! [-4, 3]
+
62 
-
63 #endif // LR1110_LR_FHSS_TYPES_H
+
63 #endif // LR11XX_LR_FHSS_TYPES_H
64 
65 /* --- EOF ------------------------------------------------------------------ */
-
LR FHSS parameter structure.
Definition: lr1110_lr_fhss_types.h:54
Radio-independent LR-FHSS base type definitions, version 1.
+
lr_fhss_v1_params_t lr_fhss_params
Base LR FHSS parameters.
Definition: lr11xx_lr_fhss_types.h:55
LR-FHSS parameter structure.
Definition: lr_fhss_v1_base_types.h:110
-
lr_fhss_v1_params_t lr_fhss_params
Base LR FHSS parameters.
Definition: lr1110_lr_fhss_types.h:55
+
LR FHSS parameter structure.
Definition: lr11xx_lr_fhss_types.h:54
-

Radio driver implementation for LR1110. +

Radio driver implementation for LR11XX. More...

-
#include "lr1110_radio.h"
-#include "lr1110_hal.h"
+
#include "lr11xx_radio.h"
+#include "lr11xx_regmem.h"
+#include "lr11xx_hal.h"
-Include dependency graph for lr1110_radio.c:
+Include dependency graph for lr11xx_radio.c:
-
- - - - - - +
+ + + + + + + - +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Macros

-#define LR1110_RADIO_RESET_STATS_CMD_LENGTH   ( 2 )
 
-#define LR1110_RADIO_GET_STATS_CMD_LENGTH   ( 2 )
 
-#define LR1110_RADIO_GET_PKT_TYPE_CMD_LENGTH   ( 2 )
 
-#define LR1110_RADIO_GET_RXBUFFER_STATUS_CMD_LENGTH   ( 2 )
 
-#define LR1110_RADIO_GET_PKT_STATUS_CMD_LENGTH   ( 2 )
 
-#define LR1110_RADIO_GET_RSSI_INST_CMD_LENGTH   ( 2 )
 
-#define LR1110_RADIO_SET_GFSK_SYNC_WORD_CMD_LENGTH   ( 2 + LR1110_RADIO_GFSK_SYNC_WORD_LENGTH )
 
-#define LR1110_RADIO_SET_LORA_PUBLIC_NETWORK_CMD_LENGTH   ( 2 + 8 )
 
-#define LR1110_RADIO_SET_RX_CMD_LENGTH   ( 2 + 3 )
 
-#define LR1110_RADIO_SET_TX_CMD_LENGTH   ( 2 + 3 )
 
-#define LR1110_RADIO_SET_RF_FREQUENCY_CMD_LENGTH   ( 2 + 4 )
 
-#define LR1110_RADIO_SET_AUTO_TX_RX_CMD_LENGTH   ( 2 + 7 )
 
-#define LR1110_RADIO_SET_CAD_PARAMS_CMD_LENGTH   ( 2 + 7 )
 
-#define LR1110_RADIO_SET_PKT_TYPE_CMD_LENGTH   ( 2 + 1 )
 
-#define LR1110_RADIO_SET_MODULATION_PARAMS_GFSK_CMD_LENGTH   ( 2 + 10 )
 
-#define LR1110_RADIO_SET_MODULATION_PARAMS_LORA_CMD_LENGTH   ( 2 + 4 )
 
-#define LR1110_RADIO_SET_PKT_PARAM_GFSK_CMD_LENGTH   ( 2 + 9 )
 
-#define LR1110_RADIO_SET_PKT_PARAM_LORA_CMD_LENGTH   ( 2 + 6 )
 
-#define LR1110_RADIO_SET_TX_PARAMS_CMD_LENGTH   ( 2 + 2 )
 
-#define LR1110_RADIO_SET_PKT_ADDRESS_CMD_LENGTH   ( 2 + 2 )
 
-#define LR1110_RADIO_SET_RX_TX_FALLBACK_MODE_CMD_LENGTH   ( 2 + 1 )
 
-#define LR1110_RADIO_SET_RX_DUTY_CYCLE_MODE_CMD_LENGTH   ( 2 + 7 )
 
-#define LR1110_RADIO_SET_PA_CFG_CMD_LENGTH   ( 2 + 4 )
 
-#define LR1110_RADIO_STOP_TIMEOUT_ON_PREAMBLE_CMD_LENGTH   ( 2 + 1 )
 
-#define LR1110_RADIO_SET_CAD_CMD_LENGTH   ( 2 )
 
-#define LR1110_RADIO_SET_TX_CW_CMD_LENGTH   ( 2 )
 
-#define LR1110_RADIO_SET_TX_INFINITE_PREAMBLE_CMD_LENGTH   ( 2 )
 
-#define LR1110_RADIO_SET_LORA_SYNC_TIMEOUT_CMD_LENGTH   ( 2 + 1 )
 
-#define LR1110_RADIO_SET_GFSK_CRC_PARAMS_CMD_LENGTH   ( 2 + 8 )
 
-#define LR1110_RADIO_SET_GFSK_WHITENING_CMD_LENGTH   ( 2 + 2 )
 
-#define LR1110_RADIO_SET_RX_BOOSTED_LENGTH   ( 2 + 1 )
 
-#define LR1110_RADIO_SET_LORA_SYNC_WORD_CMD_LENGTH   ( 2 + 1 )
 
-#define LR1110_RADIO_GET_LORA_RX_INFO_CMD_LENGTH   ( 2 )
 
-#define LR1110_RTC_FREQ_IN_HZ   32768UL
 Internal RTC frequency.
 
+#define LR11XX_RADIO_APPLY_HIGH_ACP_WORKAROUND(context)   lr11xx_radio_apply_high_acp_workaround( context )
 Management of the high ACP workaround.
 
+#define LR11XX_RADIO_RESET_STATS_CMD_LENGTH   ( 2 )
 
+#define LR11XX_RADIO_GET_STATS_CMD_LENGTH   ( 2 )
 
+#define LR11XX_RADIO_GET_PKT_TYPE_CMD_LENGTH   ( 2 )
 
+#define LR11XX_RADIO_GET_RXBUFFER_STATUS_CMD_LENGTH   ( 2 )
 
+#define LR11XX_RADIO_GET_PKT_STATUS_CMD_LENGTH   ( 2 )
 
+#define LR11XX_RADIO_GET_RSSI_INST_CMD_LENGTH   ( 2 )
 
+#define LR11XX_RADIO_SET_GFSK_SYNC_WORD_CMD_LENGTH   ( 2 + LR11XX_RADIO_GFSK_SYNC_WORD_LENGTH )
 
+#define LR11XX_RADIO_SET_LORA_PUBLIC_NETWORK_CMD_LENGTH   ( 2 + 8 )
 
+#define LR11XX_RADIO_SET_RX_CMD_LENGTH   ( 2 + 3 )
 
+#define LR11XX_RADIO_SET_TX_CMD_LENGTH   ( 2 + 3 )
 
+#define LR11XX_RADIO_SET_RF_FREQUENCY_CMD_LENGTH   ( 2 + 4 )
 
+#define LR11XX_RADIO_SET_AUTO_TX_RX_CMD_LENGTH   ( 2 + 7 )
 
+#define LR11XX_RADIO_SET_CAD_PARAMS_CMD_LENGTH   ( 2 + 7 )
 
+#define LR11XX_RADIO_SET_PKT_TYPE_CMD_LENGTH   ( 2 + 1 )
 
+#define LR11XX_RADIO_SET_MODULATION_PARAMS_GFSK_CMD_LENGTH   ( 2 + 10 )
 
+#define LR11XX_RADIO_SET_MODULATION_PARAMS_LORA_CMD_LENGTH   ( 2 + 4 )
 
+#define LR11XX_RADIO_SET_PKT_PARAM_GFSK_CMD_LENGTH   ( 2 + 9 )
 
+#define LR11XX_RADIO_SET_PKT_PARAM_LORA_CMD_LENGTH   ( 2 + 6 )
 
+#define LR11XX_RADIO_SET_TX_PARAMS_CMD_LENGTH   ( 2 + 2 )
 
+#define LR11XX_RADIO_SET_PKT_ADDRESS_CMD_LENGTH   ( 2 + 2 )
 
+#define LR11XX_RADIO_SET_RX_TX_FALLBACK_MODE_CMD_LENGTH   ( 2 + 1 )
 
+#define LR11XX_RADIO_SET_RX_DUTY_CYCLE_MODE_CMD_LENGTH   ( 2 + 7 )
 
+#define LR11XX_RADIO_SET_PA_CFG_CMD_LENGTH   ( 2 + 4 )
 
+#define LR11XX_RADIO_STOP_TIMEOUT_ON_PREAMBLE_CMD_LENGTH   ( 2 + 1 )
 
+#define LR11XX_RADIO_SET_CAD_CMD_LENGTH   ( 2 )
 
+#define LR11XX_RADIO_SET_TX_CW_CMD_LENGTH   ( 2 )
 
+#define LR11XX_RADIO_SET_TX_INFINITE_PREAMBLE_CMD_LENGTH   ( 2 )
 
+#define LR11XX_RADIO_SET_LORA_SYNC_TIMEOUT_CMD_LENGTH   ( 2 + 1 )
 
+#define LR11XX_RADIO_SET_GFSK_CRC_PARAMS_CMD_LENGTH   ( 2 + 8 )
 
+#define LR11XX_RADIO_SET_GFSK_WHITENING_CMD_LENGTH   ( 2 + 2 )
 
+#define LR11XX_RADIO_SET_RX_BOOSTED_LENGTH   ( 2 + 1 )
 
+#define LR11XX_RADIO_SET_RSSI_CALIBRATION_LENGTH   ( 2 + 11 )
 
+#define LR11XX_RADIO_SET_LORA_SYNC_WORD_CMD_LENGTH   ( 2 + 1 )
 
+#define LR11XX_RADIO_GET_LORA_RX_INFO_CMD_LENGTH   ( 2 )
 
+#define LR11XX_RTC_FREQ_IN_HZ   32768UL
 Internal RTC frequency.
 
- +

Enumerations

enum  {
-  LR1110_BL_GET_STATUS_OC = 0x0100, -LR1110_BL_GET_VERSION_OC = 0x0101, -LR1110_BL_ERASE_FLASH_OC = 0x8000, -LR1110_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003, +  LR11XX_BL_GET_STATUS_OC = 0x0100, +LR11XX_BL_GET_VERSION_OC = 0x0101, +LR11XX_BL_ERASE_FLASH_OC = 0x8000, +LR11XX_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003,
-  LR1110_BL_REBOOT_OC = 0x8005, -LR1110_BL_GET_PIN_OC = 0x800B, -LR1110_BL_READ_CHIP_EUI_OC = 0x800C, -LR1110_BL_READ_JOIN_EUI_OC = 0x800D, +  LR11XX_BL_REBOOT_OC = 0x8005, +LR11XX_BL_GET_PIN_OC = 0x800B, +LR11XX_BL_READ_CHIP_EUI_OC = 0x800C, +LR11XX_BL_READ_JOIN_EUI_OC = 0x800D,
-  LR1110_CRYPTO_SELECT_OC = 0x0500, -LR1110_CRYPTO_SET_KEY_OC = 0x0502, -LR1110_CRYPTO_DERIVE_KEY_OC = 0x0503, -LR1110_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504, +  LR11XX_CRYPTO_SELECT_OC = 0x0500, +LR11XX_CRYPTO_SET_KEY_OC = 0x0502, +LR11XX_CRYPTO_DERIVE_KEY_OC = 0x0503, +LR11XX_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504,
-  LR1110_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, -LR1110_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, -LR1110_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, -LR1110_CRYPTO_ENCRYPT_AES_OC = 0x0508, +  LR11XX_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, +LR11XX_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, +LR11XX_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, +LR11XX_CRYPTO_ENCRYPT_AES_OC = 0x0508,
-  LR1110_CRYPTO_DECRYPT_AES_OC = 0x0509, -LR1110_CRYPTO_STORE_TO_FLASH_OC = 0x050A, -LR1110_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, -LR1110_CRYPTO_SET_PARAMETER_OC = 0x050D, +  LR11XX_CRYPTO_DECRYPT_AES_OC = 0x0509, +LR11XX_CRYPTO_STORE_TO_FLASH_OC = 0x050A, +LR11XX_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, +LR11XX_CRYPTO_SET_PARAMETER_OC = 0x050D,
-  LR1110_CRYPTO_GET_PARAMETER_OC = 0x050E, -LR1110_GNSS_SET_CONSTELLATION_OC = 0x0400, -LR1110_GNSS_READ_CONSTELLATION_OC = 0x0401, -LR1110_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402, +  LR11XX_CRYPTO_GET_PARAMETER_OC = 0x050E, +LR11XX_GNSS_SET_CONSTELLATION_OC = 0x0400, +LR11XX_GNSS_READ_CONSTELLATION_OC = 0x0401, +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402,
-  LR1110_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, -LR1110_GNSS_READ_FW_VERSION_OC = 0x0406, -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, -LR1110_GNSS_SET_SCAN_MODE_OC = 0x0408, +  LR11XX_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, +LR11XX_GNSS_READ_FW_VERSION_OC = 0x0406, +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, +LR11XX_GNSS_SET_SCAN_MODE_OC = 0x0408,
-  LR1110_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, -LR1110_GNSS_SCAN_ASSISTED_OC = 0x040A, -LR1110_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, -LR1110_GNSS_SCAN_READ_RES_OC = 0x040D, +  LR11XX_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, +LR11XX_GNSS_SCAN_ASSISTED_OC = 0x040A, +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, +LR11XX_GNSS_SCAN_READ_RES_OC = 0x040D,
-  LR1110_GNSS_ALMANAC_UPDATE_OC = 0x040E, -LR1110_GNSS_ALMANAC_READ_OC = 0x040F, -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411, +  LR11XX_GNSS_ALMANAC_UPDATE_OC = 0x040E, +LR11XX_GNSS_ALMANAC_READ_OC = 0x040F, +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411,
-  LR1110_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, -LR1110_GNSS_PUSH_DM_MSG_OC = 0x0415, -LR1110_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, -LR1110_GNSS_GET_NB_SATELLITES_OC = 0x0417, +  LR11XX_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, +LR11XX_GNSS_PUSH_DM_MSG_OC = 0x0415, +LR11XX_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, +LR11XX_GNSS_GET_NB_SATELLITES_OC = 0x0417,
-  LR1110_GNSS_GET_SATELLITES_OC = 0x0418, -LR1110_GNSS_GET_TIMINGS_OC = 0x0419, -LR1110_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, -LR1110_LR_FHSS_BUILD_FRAME_OC = 0x022C, +  LR11XX_GNSS_GET_SATELLITES_OC = 0x0418, +LR11XX_GNSS_GET_TIMINGS_OC = 0x0419, +LR11XX_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, +LR11XX_LR_FHSS_BUILD_FRAME_OC = 0x022C,
-  LR1110_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, -LR1110_RADIO_RESET_STATS_OC = 0x0200, -LR1110_RADIO_GET_STATS_OC = 0x0201, -LR1110_RADIO_GET_PKT_TYPE_OC = 0x0202, +  LR11XX_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, +LR11XX_RADIO_RESET_STATS_OC = 0x0200, +LR11XX_RADIO_GET_STATS_OC = 0x0201, +LR11XX_RADIO_GET_PKT_TYPE_OC = 0x0202,
-  LR1110_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, -LR1110_RADIO_GET_PKT_STATUS_OC = 0x0204, -LR1110_RADIO_GET_RSSI_INST_OC = 0x0205, -LR1110_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206, +  LR11XX_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, +LR11XX_RADIO_GET_PKT_STATUS_OC = 0x0204, +LR11XX_RADIO_GET_RSSI_INST_OC = 0x0205, +LR11XX_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206,
-  LR1110_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, -LR1110_RADIO_SET_RX_OC = 0x0209, -LR1110_RADIO_SET_TX_OC = 0x020A, -LR1110_RADIO_SET_RF_FREQUENCY_OC = 0x020B, +  LR11XX_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, +LR11XX_RADIO_SET_RX_OC = 0x0209, +LR11XX_RADIO_SET_TX_OC = 0x020A, +LR11XX_RADIO_SET_RF_FREQUENCY_OC = 0x020B,
-  LR1110_RADIO_AUTOTXRX_OC = 0x020C, -LR1110_RADIO_SET_CAD_PARAMS_OC = 0x020D, -LR1110_RADIO_SET_PKT_TYPE_OC = 0x020E, -LR1110_RADIO_SET_MODULATION_PARAM_OC = 0x020F, +  LR11XX_RADIO_AUTOTXRX_OC = 0x020C, +LR11XX_RADIO_SET_CAD_PARAMS_OC = 0x020D, +LR11XX_RADIO_SET_PKT_TYPE_OC = 0x020E, +LR11XX_RADIO_SET_MODULATION_PARAM_OC = 0x020F,
-  LR1110_RADIO_SET_PKT_PARAM_OC = 0x0210, -LR1110_RADIO_SET_TX_PARAMS_OC = 0x0211, -LR1110_RADIO_SET_PKT_ADRS_OC = 0x0212, -LR1110_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213, +  LR11XX_RADIO_SET_PKT_PARAM_OC = 0x0210, +LR11XX_RADIO_SET_TX_PARAMS_OC = 0x0211, +LR11XX_RADIO_SET_PKT_ADRS_OC = 0x0212, +LR11XX_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213,
-  LR1110_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, -LR1110_RADIO_SET_PA_CFG_OC = 0x0215, -LR1110_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, -LR1110_RADIO_SET_CAD_OC = 0x0218, +  LR11XX_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, +LR11XX_RADIO_SET_PA_CFG_OC = 0x0215, +LR11XX_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, +LR11XX_RADIO_SET_CAD_OC = 0x0218,
-  LR1110_RADIO_SET_TX_CW_OC = 0x0219, -LR1110_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, -LR1110_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, -LR1110_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224, +  LR11XX_RADIO_SET_TX_CW_OC = 0x0219, +LR11XX_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, +LR11XX_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, +LR11XX_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224,
-  LR1110_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, -LR1110_RADIO_SET_RX_BOOSTED_OC = 0x0227, -LR1110_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B, -LR1110_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +  LR11XX_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, +LR11XX_RADIO_SET_RX_BOOSTED_OC = 0x0227, +LR11XX_RADIO_SET_RSSI_CALIBRATION_OC = 0x0229, +LR11XX_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B,
-  LR1110_REGMEM_WRITE_REGMEM32_OC = 0x0105, -LR1110_REGMEM_READ_REGMEM32_OC = 0x0106, -LR1110_REGMEM_WRITE_MEM8_OC = 0x0107, -LR1110_REGMEM_READ_MEM8_OC = 0x0108, +  LR11XX_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +LR11XX_REGMEM_WRITE_REGMEM32_OC = 0x0105, +LR11XX_REGMEM_READ_REGMEM32_OC = 0x0106, +LR11XX_REGMEM_WRITE_MEM8_OC = 0x0107,
-  LR1110_REGMEM_WRITE_BUFFER8_OC = 0x0109, -LR1110_REGMEM_READ_BUFFER8_OC = 0x010A, -LR1110_REGMEM_CLEAR_RXBUFFER_OC = 0x010B, -LR1110_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +  LR11XX_REGMEM_READ_MEM8_OC = 0x0108, +LR11XX_REGMEM_WRITE_BUFFER8_OC = 0x0109, +LR11XX_REGMEM_READ_BUFFER8_OC = 0x010A, +LR11XX_REGMEM_CLEAR_RXBUFFER_OC = 0x010B,
-  LR1110_SYSTEM_GET_STATUS_OC = 0x0100, -LR1110_SYSTEM_GET_VERSION_OC = 0x0101, -LR1110_SYSTEM_GET_ERRORS_OC = 0x010D, -LR1110_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +  LR11XX_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +LR11XX_SYSTEM_GET_STATUS_OC = 0x0100, +LR11XX_SYSTEM_GET_VERSION_OC = 0x0101, +LR11XX_SYSTEM_GET_ERRORS_OC = 0x010D,
-  LR1110_SYSTEM_CALIBRATE_OC = 0x010F, -LR1110_SYSTEM_SET_REGMODE_OC = 0x0110, -LR1110_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111, -LR1110_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +  LR11XX_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +LR11XX_SYSTEM_CALIBRATE_OC = 0x010F, +LR11XX_SYSTEM_SET_REGMODE_OC = 0x0110, +LR11XX_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111,
-  LR1110_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, -LR1110_SYSTEM_CLEAR_IRQ_OC = 0x0114, -LR1110_SYSTEM_CFG_LFCLK_OC = 0x0116, -LR1110_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +  LR11XX_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +LR11XX_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, +LR11XX_SYSTEM_CLEAR_IRQ_OC = 0x0114, +LR11XX_SYSTEM_CFG_LFCLK_OC = 0x0116,
-  LR1110_SYSTEM_REBOOT_OC = 0x0118, -LR1110_SYSTEM_GET_VBAT_OC = 0x0119, -LR1110_SYSTEM_GET_TEMP_OC = 0x011A, -LR1110_SYSTEM_SET_SLEEP_OC = 0x011B, +  LR11XX_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +LR11XX_SYSTEM_REBOOT_OC = 0x0118, +LR11XX_SYSTEM_GET_VBAT_OC = 0x0119, +LR11XX_SYSTEM_GET_TEMP_OC = 0x011A,
-  LR1110_SYSTEM_SET_STANDBY_OC = 0x011C, -LR1110_SYSTEM_SET_FS_OC = 0x011D, -LR1110_SYSTEM_GET_RANDOM_OC = 0x0120, -LR1110_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +  LR11XX_SYSTEM_SET_SLEEP_OC = 0x011B, +LR11XX_SYSTEM_SET_STANDBY_OC = 0x011C, +LR11XX_SYSTEM_SET_FS_OC = 0x011D, +LR11XX_SYSTEM_GET_RANDOM_OC = 0x0120,
-  LR1110_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, -LR1110_SYSTEM_READ_INFOPAGE_OC = 0x0123, -LR1110_SYSTEM_READ_UID_OC = 0x0125, -LR1110_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +  LR11XX_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +LR11XX_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, +LR11XX_SYSTEM_READ_INFOPAGE_OC = 0x0123, +LR11XX_SYSTEM_READ_UID_OC = 0x0125,
-  LR1110_SYSTEM_READ_PIN_OC = 0x0127, -LR1110_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, -LR1110_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A, -LR1110_WIFI_SCAN_OC = 0x0300, +  LR11XX_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +LR11XX_SYSTEM_READ_PIN_OC = 0x0127, +LR11XX_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, +LR11XX_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A,
-  LR1110_WIFI_SCAN_TIME_LIMIT = 0x0301, -LR1110_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, -LR1110_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303, -LR1110_WIFI_GET_RESULT_SIZE_OC = 0x0305, +  LR11XX_WIFI_SCAN_OC = 0x0300, +LR11XX_WIFI_SCAN_TIME_LIMIT = 0x0301, +LR11XX_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, +LR11XX_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303,
-  LR1110_WIFI_READ_RESULT_OC = 0x0306, -LR1110_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, -LR1110_WIFI_READ_CUMUL_TIMING_OC = 0x0308, -LR1110_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +  LR11XX_WIFI_GET_RESULT_SIZE_OC = 0x0305, +LR11XX_WIFI_READ_RESULT_OC = 0x0306, +LR11XX_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, +LR11XX_WIFI_READ_CUMUL_TIMING_OC = 0x0308,
-  LR1110_WIFI_READ_COUNTRY_CODE_OC = 0x030A, -LR1110_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, -LR1110_WIFI_GET_VERSION_OC = 0x0320 +  LR11XX_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +LR11XX_WIFI_READ_COUNTRY_CODE_OC = 0x030A, +LR11XX_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, +LR11XX_WIFI_GET_VERSION_OC = 0x0320
}
 Operating codes for radio-related operations. More...
 Operating codes for radio-related operations. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Functions

static uint32_t lr1110_radio_get_gfsk_crc_len_in_bytes (lr1110_radio_gfsk_crc_type_t crc_type)
 Get the CRC length in byte from the corresponding GFSK radio parameter. More...
 
lr1110_status_t lr1110_radio_reset_stats (const void *context)
 Reset internal statistics of the received packets. More...
 
lr1110_status_t lr1110_radio_get_gfsk_stats (const void *context, lr1110_radio_stats_gfsk_t *stats)
 Get the internal statistics of the GFSK received packets. More...
 
lr1110_status_t lr1110_radio_get_lora_stats (const void *context, lr1110_radio_stats_lora_t *stats)
 Get the internal statistics of the LoRa received packets. More...
 
lr1110_status_t lr1110_radio_get_pkt_type (const void *context, lr1110_radio_pkt_type_t *pkt_type)
 Get the packet type currently configured. More...
 
lr1110_status_t lr1110_radio_get_rx_buffer_status (const void *context, lr1110_radio_rx_buffer_status_t *rx_buffer_status)
 Get the length of last received packet, and the offset in the RX internal buffer of the first byte of the received payload. More...
 
lr1110_status_t lr1110_radio_get_gfsk_pkt_status (const void *context, lr1110_radio_pkt_status_gfsk_t *pkt_status)
 Get the status of last GFSK received packet. More...
 
lr1110_status_t lr1110_radio_get_lora_pkt_status (const void *context, lr1110_radio_pkt_status_lora_t *pkt_status)
 Get the status of last LoRa received packet. More...
 
lr1110_status_t lr1110_radio_get_rssi_inst (const void *context, int8_t *rssi_in_dbm)
 Get the instantaneous RSSI. More...
 
lr1110_status_t lr1110_radio_set_gfsk_sync_word (const void *context, const uint8_t gfsk_sync_word[LR1110_RADIO_GFSK_SYNC_WORD_LENGTH])
 Set the GFSK modem sync word. More...
 
lr1110_status_t lr1110_radio_set_lora_sync_word (const void *context, const uint8_t sync_word)
 Set the LoRa modem sync word. More...
 
lr1110_status_t lr1110_radio_set_lora_public_network (const void *context, const lr1110_radio_lora_network_type_t network_type)
 Set the LoRa modem sync word to private / public. More...
 
lr1110_status_t lr1110_radio_set_rx (const void *context, const uint32_t timeout_in_ms)
 Start RX operations. More...
 
lr1110_status_t lr1110_radio_set_rx_with_timeout_in_rtc_step (const void *context, const uint32_t timeout)
 Start RX operations. More...
 
lr1110_status_t lr1110_radio_set_tx (const void *context, const uint32_t timeout_in_ms)
 Start TX operations. More...
 
lr1110_status_t lr1110_radio_set_tx_with_timeout_in_rtc_step (const void *context, const uint32_t timeout_in_rtc_step)
 Start TX operations. More...
 
lr1110_status_t lr1110_radio_set_rf_freq (const void *context, const uint32_t freq_in_hz)
 Set the frequency for future radio operations. More...
 
lr1110_status_t lr1110_radio_auto_tx_rx (const void *context, const uint32_t delay, const lr1110_radio_intermediary_mode_t intermediary_mode, const uint32_t timeout)
 Configure automatic TX after RX or automatic RX after TX. More...
 
lr1110_status_t lr1110_radio_set_cad_params (const void *context, const lr1110_radio_cad_params_t *cad_params)
 Set Channel Activity Detection configuration. More...
 
lr1110_status_t lr1110_radio_set_pkt_type (const void *context, const lr1110_radio_pkt_type_t pkt_type)
 Set the packet type. More...
 
lr1110_status_t lr1110_radio_set_gfsk_mod_params (const void *context, const lr1110_radio_mod_params_gfsk_t *mod_params)
 Set the modulation parameters for GFSK packets. More...
 
lr1110_status_t lr1110_radio_set_lora_mod_params (const void *context, const lr1110_radio_mod_params_lora_t *mod_params)
 Set the modulation parameters for LoRa packets. More...
 
lr1110_status_t lr1110_radio_set_gfsk_pkt_params (const void *context, const lr1110_radio_pkt_params_gfsk_t *pkt_params)
 Set the packet parameters for GFSK packets. More...
 
lr1110_status_t lr1110_radio_set_lora_pkt_params (const void *context, const lr1110_radio_pkt_params_lora_t *pkt_params)
 Set the packet parameters for LoRa packets. More...
 
lr1110_status_t lr1110_radio_set_tx_params (const void *context, const int8_t pwr_in_dbm, const lr1110_radio_ramp_time_t ramp_time)
 Set the parameters for TX power and power amplifier ramp time. More...
 
lr1110_status_t lr1110_radio_set_pkt_address (const void *context, const uint8_t node_address, const uint8_t broadcast_address)
 Sets the Node and Broadcast address used for GFSK. More...
 
lr1110_status_t lr1110_radio_set_rx_tx_fallback_mode (const void *context, const lr1110_radio_fallback_modes_t fallback_mode)
 Alter the chip mode after successfull transmission or reception operation. More...
 
lr1110_status_t lr1110_radio_set_rx_duty_cycle (const void *context, const uint32_t rx_period_in_ms, const uint32_t sleep_period_in_ms, const lr1110_radio_rx_duty_cycle_mode_t mode)
 Configure and start a Rx Duty Cycle operation. More...
 
lr1110_status_t lr1110_radio_set_rx_duty_cycle_with_timings_in_rtc_step (const void *context, const uint32_t rx_period_in_rtc_step, const uint32_t sleep_period_in_rtc_step, const lr1110_radio_rx_duty_cycle_mode_t mode)
 Configure and start a Rx Duty Cycle operation. More...
 
lr1110_status_t lr1110_radio_set_pa_cfg (const void *context, const lr1110_radio_pa_cfg_t *pa_cfg)
 Set the Power Amplifier configuration. More...
 
lr1110_status_t lr1110_radio_stop_timeout_on_preamble (const void *context, const bool stop_timeout_on_preamble)
 Define on which event the Rx timeout shall be stopped. More...
 
lr1110_status_t lr1110_radio_set_cad (const void *context)
 Start the CAD mode. More...
 
lr1110_status_t lr1110_radio_set_tx_cw (const void *context)
 Set the device into Tx continuous wave (RF tone). More...
 
lr1110_status_t lr1110_radio_set_tx_infinite_preamble (const void *context)
 Set the device into Tx continuous preamble (modulated signal). More...
 
lr1110_status_t lr1110_radio_set_lora_sync_timeout (const void *context, const uint8_t nb_symbol)
 Configure the LoRa modem to issue a RX timeout after an exact number of symbols given in parameter if no LoRa modulation is detected. More...
 
lr1110_status_t lr1110_radio_set_gfsk_crc_params (const void *context, const uint32_t seed, const uint32_t polynomial)
 Configure the seed and the polynomial used to compute CRC in GFSK packet. More...
 
lr1110_status_t lr1110_radio_set_gfsk_whitening_seed (const void *context, const uint16_t seed)
 Configure the whitening seed used in GFSK packet. More...
 
lr1110_status_t lr1110_radio_cfg_rx_boosted (const void *context, const bool enable_boost_mode)
 Configure the boost mode in reception. More...
 
lr1110_status_t lr1110_radio_get_gfsk_rx_bandwidth (uint32_t bw_in_hz, lr1110_radio_gfsk_bw_t *bw_parameter)
 Gets the radio bw parameter for a given bandwidth in Hz. More...
 
uint32_t lr1110_radio_get_lora_time_on_air_numerator (const lr1110_radio_pkt_params_lora_t *pkt_p, const lr1110_radio_mod_params_lora_t *mod_p)
 Compute the numerator for LoRa time-on-air computation. More...
 
uint32_t lr1110_radio_get_lora_bw_in_hz (lr1110_radio_lora_bw_t bw)
 Get the actual value in Hertz of a given LoRa bandwidth. More...
 
uint32_t lr1110_radio_get_lora_time_on_air_in_ms (const lr1110_radio_pkt_params_lora_t *pkt_p, const lr1110_radio_mod_params_lora_t *mod_p)
 Get the time on air in ms for LoRa transmission. More...
 
uint32_t lr1110_radio_get_gfsk_time_on_air_numerator (const lr1110_radio_pkt_params_gfsk_t *pkt_p)
 Compute the numerator for GFSK time-on-air computation. More...
 
uint32_t lr1110_radio_get_gfsk_time_on_air_in_ms (const lr1110_radio_pkt_params_gfsk_t *pkt_p, const lr1110_radio_mod_params_gfsk_t *mod_p)
 Get the time on air in ms for GFSK transmission. More...
 
uint32_t lr1110_radio_convert_time_in_ms_to_rtc_step (uint32_t time_in_ms)
 Get the number of RTC steps for a given time in millisecond. More...
 
lr1110_status_t lr1110_radio_get_lora_rx_info (const void *context, bool *is_crc_present, lr1110_radio_lora_cr_t *cr)
 Get the information from the last received LoRa packet header (if LR1110_RADIO_LORA_PKT_EXPLICIT) or the locally configured settings (if LR1110_RADIO_LORA_PKT_IMPLICIT) More...
 
static uint32_t lr11xx_radio_get_gfsk_crc_len_in_bytes (lr11xx_radio_gfsk_crc_type_t crc_type)
 Get the CRC length in byte from the corresponding GFSK radio parameter. More...
 
lr11xx_status_t lr11xx_radio_reset_stats (const void *context)
 Reset internal statistics of the received packets. More...
 
lr11xx_status_t lr11xx_radio_get_gfsk_stats (const void *context, lr11xx_radio_stats_gfsk_t *stats)
 Get the internal statistics of the GFSK received packets. More...
 
lr11xx_status_t lr11xx_radio_get_lora_stats (const void *context, lr11xx_radio_stats_lora_t *stats)
 Get the internal statistics of the LoRa received packets. More...
 
lr11xx_status_t lr11xx_radio_get_pkt_type (const void *context, lr11xx_radio_pkt_type_t *pkt_type)
 Get the packet type currently configured. More...
 
lr11xx_status_t lr11xx_radio_get_rx_buffer_status (const void *context, lr11xx_radio_rx_buffer_status_t *rx_buffer_status)
 Get the length of last received packet, and the offset in the RX internal buffer of the first byte of the received payload. More...
 
lr11xx_status_t lr11xx_radio_get_gfsk_pkt_status (const void *context, lr11xx_radio_pkt_status_gfsk_t *pkt_status)
 Get the status of last GFSK received packet. More...
 
lr11xx_status_t lr11xx_radio_get_lora_pkt_status (const void *context, lr11xx_radio_pkt_status_lora_t *pkt_status)
 Get the status of last LoRa received packet. More...
 
lr11xx_status_t lr11xx_radio_get_rssi_inst (const void *context, int8_t *rssi_in_dbm)
 Get the instantaneous RSSI. More...
 
lr11xx_status_t lr11xx_radio_set_gfsk_sync_word (const void *context, const uint8_t gfsk_sync_word[LR11XX_RADIO_GFSK_SYNC_WORD_LENGTH])
 Set the GFSK modem sync word. More...
 
lr11xx_status_t lr11xx_radio_set_lora_sync_word (const void *context, const uint8_t sync_word)
 Set the LoRa modem sync word. More...
 
lr11xx_status_t lr11xx_radio_set_lora_public_network (const void *context, const lr11xx_radio_lora_network_type_t network_type)
 Set the LoRa modem sync word to private / public. More...
 
lr11xx_status_t lr11xx_radio_set_rx (const void *context, const uint32_t timeout_in_ms)
 Start RX operations with a timeout in millisecond. More...
 
lr11xx_status_t lr11xx_radio_set_rx_with_timeout_in_rtc_step (const void *context, const uint32_t timeout)
 Start RX operations with a timeout in RTC step. More...
 
lr11xx_status_t lr11xx_radio_set_tx (const void *context, const uint32_t timeout_in_ms)
 Start TX operations. More...
 
lr11xx_status_t lr11xx_radio_set_tx_with_timeout_in_rtc_step (const void *context, const uint32_t timeout_in_rtc_step)
 Start TX operations. More...
 
lr11xx_status_t lr11xx_radio_set_rf_freq (const void *context, const uint32_t freq_in_hz)
 Set the frequency for future radio operations. More...
 
lr11xx_status_t lr11xx_radio_auto_tx_rx (const void *context, const uint32_t delay, const lr11xx_radio_intermediary_mode_t intermediary_mode, const uint32_t timeout)
 Configure automatic TX after RX or automatic RX after TX. More...
 
lr11xx_status_t lr11xx_radio_set_cad_params (const void *context, const lr11xx_radio_cad_params_t *cad_params)
 Set Channel Activity Detection configuration. More...
 
lr11xx_status_t lr11xx_radio_set_pkt_type (const void *context, const lr11xx_radio_pkt_type_t pkt_type)
 Set the packet type. More...
 
lr11xx_status_t lr11xx_radio_set_gfsk_mod_params (const void *context, const lr11xx_radio_mod_params_gfsk_t *mod_params)
 Set the modulation parameters for GFSK packets. More...
 
lr11xx_status_t lr11xx_radio_set_lora_mod_params (const void *context, const lr11xx_radio_mod_params_lora_t *mod_params)
 Set the modulation parameters for LoRa packets. More...
 
lr11xx_status_t lr11xx_radio_set_gfsk_pkt_params (const void *context, const lr11xx_radio_pkt_params_gfsk_t *pkt_params)
 Set the packet parameters for GFSK packets. More...
 
lr11xx_status_t lr11xx_radio_set_lora_pkt_params (const void *context, const lr11xx_radio_pkt_params_lora_t *pkt_params)
 Set the packet parameters for LoRa packets. More...
 
lr11xx_status_t lr11xx_radio_set_tx_params (const void *context, const int8_t pwr_in_dbm, const lr11xx_radio_ramp_time_t ramp_time)
 Set the parameters for TX power and power amplifier ramp time. More...
 
lr11xx_status_t lr11xx_radio_set_pkt_address (const void *context, const uint8_t node_address, const uint8_t broadcast_address)
 Sets the Node and Broadcast address used for GFSK. More...
 
lr11xx_status_t lr11xx_radio_set_rx_tx_fallback_mode (const void *context, const lr11xx_radio_fallback_modes_t fallback_mode)
 Alter the chip mode after successfull transmission or reception operation. More...
 
lr11xx_status_t lr11xx_radio_set_rx_duty_cycle (const void *context, const uint32_t rx_period_in_ms, const uint32_t sleep_period_in_ms, const lr11xx_radio_rx_duty_cycle_mode_t mode)
 Configure and start a Rx Duty Cycle operation. More...
 
lr11xx_status_t lr11xx_radio_set_rx_duty_cycle_with_timings_in_rtc_step (const void *context, const uint32_t rx_period_in_rtc_step, const uint32_t sleep_period_in_rtc_step, const lr11xx_radio_rx_duty_cycle_mode_t mode)
 Configure and start a Rx Duty Cycle operation. More...
 
lr11xx_status_t lr11xx_radio_set_pa_cfg (const void *context, const lr11xx_radio_pa_cfg_t *pa_cfg)
 Set the Power Amplifier configuration. More...
 
lr11xx_status_t lr11xx_radio_stop_timeout_on_preamble (const void *context, const bool stop_timeout_on_preamble)
 Define on which event the Rx timeout shall be stopped. More...
 
lr11xx_status_t lr11xx_radio_set_cad (const void *context)
 Start the CAD mode. More...
 
lr11xx_status_t lr11xx_radio_set_tx_cw (const void *context)
 Set the device into Tx continuous wave (RF tone). More...
 
lr11xx_status_t lr11xx_radio_set_tx_infinite_preamble (const void *context)
 Set the device into Tx continuous preamble (modulated signal). More...
 
lr11xx_status_t lr11xx_radio_set_lora_sync_timeout (const void *context, const uint8_t nb_symbol)
 Configure the LoRa modem to issue a RX timeout after an exact number of symbols given in parameter if no LoRa modulation is detected. More...
 
lr11xx_status_t lr11xx_radio_set_gfsk_crc_params (const void *context, const uint32_t seed, const uint32_t polynomial)
 Configure the seed and the polynomial used to compute CRC in GFSK packet. More...
 
lr11xx_status_t lr11xx_radio_set_gfsk_whitening_seed (const void *context, const uint16_t seed)
 Configure the whitening seed used in GFSK packet. More...
 
lr11xx_status_t lr11xx_radio_cfg_rx_boosted (const void *context, const bool enable_boost_mode)
 Configure the boost mode in reception. More...
 
lr11xx_status_t lr11xx_radio_set_rssi_calibration (const void *context, const lr11xx_radio_rssi_calibration_table_t *rssi_cal_table)
 Set RSSI calibration table. More...
 
lr11xx_status_t lr11xx_radio_get_gfsk_rx_bandwidth (uint32_t bw_in_hz, lr11xx_radio_gfsk_bw_t *bw_parameter)
 Gets the radio bw parameter for a given bandwidth in Hz. More...
 
uint32_t lr11xx_radio_get_lora_time_on_air_numerator (const lr11xx_radio_pkt_params_lora_t *pkt_p, const lr11xx_radio_mod_params_lora_t *mod_p)
 Compute the numerator for LoRa time-on-air computation. More...
 
uint32_t lr11xx_radio_get_lora_bw_in_hz (lr11xx_radio_lora_bw_t bw)
 Get the actual value in Hertz of a given LoRa bandwidth. More...
 
uint32_t lr11xx_radio_get_lora_time_on_air_in_ms (const lr11xx_radio_pkt_params_lora_t *pkt_p, const lr11xx_radio_mod_params_lora_t *mod_p)
 Get the time on air in ms for LoRa transmission. More...
 
uint32_t lr11xx_radio_get_gfsk_time_on_air_numerator (const lr11xx_radio_pkt_params_gfsk_t *pkt_p)
 Compute the numerator for GFSK time-on-air computation. More...
 
uint32_t lr11xx_radio_get_gfsk_time_on_air_in_ms (const lr11xx_radio_pkt_params_gfsk_t *pkt_p, const lr11xx_radio_mod_params_gfsk_t *mod_p)
 Get the time on air in ms for GFSK transmission. More...
 
uint32_t lr11xx_radio_convert_time_in_ms_to_rtc_step (uint32_t time_in_ms)
 Get the number of RTC steps for a given time in millisecond. More...
 
lr11xx_status_t lr11xx_radio_get_lora_rx_info (const void *context, bool *is_crc_present, lr11xx_radio_lora_cr_t *cr)
 Get the information from the last received LoRa packet header (if LR11XX_RADIO_LORA_PKT_EXPLICIT) or the locally configured settings (if LR11XX_RADIO_LORA_PKT_IMPLICIT) More...
 
lr11xx_status_t lr11xx_radio_apply_high_acp_workaround (const void *context)
 Apply the workaround for the high ACP limitation. More...
 

Detailed Description

-

Radio driver implementation for LR1110.

+

Radio driver implementation for LR11XX.

The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • @@ -525,55 +541,55 @@

    -EnumeratorLR1110_GNSS_SET_CONSTELLATION_OC 

    Set the constellation to use.

    +EnumeratorLR11XX_GNSS_SET_CONSTELLATION_OC 

    Set the constellation to use.

    -LR1110_GNSS_READ_CONSTELLATION_OC 

    Read the used constellations.

    +LR11XX_GNSS_READ_CONSTELLATION_OC 

    Read the used constellations.

    -LR1110_GNSS_SET_ALMANAC_UPDATE_OC 

    Set almanac update configuration.

    +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC 

    Set almanac update configuration.

    -LR1110_GNSS_READ_ALMANAC_UPDATE_OC 

    Read the almanac update configuration.

    +LR11XX_GNSS_READ_ALMANAC_UPDATE_OC 

    Read the almanac update configuration.

    -LR1110_GNSS_READ_FW_VERSION_OC 

    Read the firmware version.

    +LR11XX_GNSS_READ_FW_VERSION_OC 

    Read the firmware version.

    -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

    Read the supported constellations.

    +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

    Read the supported constellations.

    -LR1110_GNSS_SET_SCAN_MODE_OC 

    Define single or double capture.

    +LR11XX_GNSS_SET_SCAN_MODE_OC 

    Define single or double capture.

    -LR1110_GNSS_SCAN_AUTONOMOUS_OC 

    Launch an autonomous scan.

    +LR11XX_GNSS_SCAN_AUTONOMOUS_OC 

    Launch an autonomous scan.

    -LR1110_GNSS_SCAN_ASSISTED_OC 

    Launch an assisted scan.

    +LR11XX_GNSS_SCAN_ASSISTED_OC 

    Launch an assisted scan.

    -LR1110_GNSS_SCAN_GET_RES_SIZE_OC 

    Get the size of the output payload.

    +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC 

    Get the size of the output payload.

    -LR1110_GNSS_SCAN_READ_RES_OC 

    Read the byte stream.

    +LR11XX_GNSS_SCAN_READ_RES_OC 

    Read the byte stream.

    -LR1110_GNSS_ALMANAC_UPDATE_OC 

    Update the almanac.

    +LR11XX_GNSS_ALMANAC_UPDATE_OC 

    Update the almanac.

    -LR1110_GNSS_ALMANAC_READ_OC 

    Read all almanacs.

    +LR11XX_GNSS_ALMANAC_READ_OC 

    Read all almanacs.

    -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC 

    Set the assistance position.

    +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC 

    Set the assistance position.

    -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC 

    Read the assistance position.

    +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC 

    Read the assistance position.

    -LR1110_GNSS_PUSH_SOLVER_MSG_OC 

    Push messages coming from the solver.

    +LR11XX_GNSS_PUSH_SOLVER_MSG_OC 

    Push messages coming from the solver.

    -LR1110_GNSS_PUSH_DM_MSG_OC 

    Push messages coming from the device management.

    +LR11XX_GNSS_PUSH_DM_MSG_OC 

    Push messages coming from the device management.

    -LR1110_GNSS_GET_CONTEXT_STATUS_OC 

    Read the context.

    +LR11XX_GNSS_GET_CONTEXT_STATUS_OC 

    Read the context.

    -LR1110_GNSS_GET_NB_SATELLITES_OC 

    Get the number of satellites detected during a scan.

    +LR11XX_GNSS_GET_NB_SATELLITES_OC 

    Get the number of satellites detected during a scan.

    -LR1110_GNSS_GET_SATELLITES_OC 

    Get the list of satellites detected during a scan.

    +LR11XX_GNSS_GET_SATELLITES_OC 

    Get the list of satellites detected during a scan.

    -LR1110_GNSS_GET_TIMINGS_OC 

    Get the time spent in signal acquisition and analysis.

    +LR11XX_GNSS_GET_TIMINGS_OC 

    Get the time spent in signal acquisition and analysis.

Function Documentation

- -

◆ lr1110_radio_get_gfsk_crc_len_in_bytes()

+ +

◆ lr11xx_radio_get_gfsk_crc_len_in_bytes()

@@ -582,9 +598,9 @@

- + - + @@ -607,14 +623,14 @@

-

◆ lr1110_radio_reset_stats()

+ +

◆ lr11xx_radio_reset_stats()

static uint32_t lr1110_radio_get_gfsk_crc_len_in_bytes static uint32_t lr11xx_radio_get_gfsk_crc_len_in_bytes (lr1110_radio_gfsk_crc_type_t lr11xx_radio_gfsk_crc_type_t  crc_type)
- + @@ -631,18 +647,18 @@

Returns
Operation status
-
See also
lr1110_radio_get_gfsk_stats, lr1110_radio_get_lora_stats
+
See also
lr11xx_radio_get_gfsk_stats, lr11xx_radio_get_lora_stats
- -

◆ lr1110_radio_get_gfsk_stats()

+ +

◆ lr11xx_radio_get_gfsk_stats()

lr1110_status_t lr1110_radio_reset_stats lr11xx_status_t lr11xx_radio_reset_stats ( const void *  context)
- + @@ -650,7 +666,7 @@

- + @@ -662,7 +678,7 @@

Get the internal statistics of the GFSK received packets.

-

Internal statistics are reset on Power on Reset, by entering sleep mode without memory retention, or by calling lr1110_radio_reset_stats.

+

Internal statistics are reset on Power on Reset, by entering sleep mode without memory retention, or by calling lr11xx_radio_reset_stats.

Parameters

lr1110_status_t lr1110_radio_get_gfsk_stats lr11xx_status_t lr11xx_radio_get_gfsk_stats ( const void *  context, lr1110_radio_stats_gfsk_tlr11xx_radio_stats_gfsk_t stats 
@@ -671,18 +687,18 @@

Returns
Operation status
-
See also
lr1110_radio_reset_stats
+
See also
lr11xx_radio_reset_stats
- -

◆ lr1110_radio_get_lora_stats()

+ +

◆ lr11xx_radio_get_lora_stats()

[in]contextChip implementation context
- + @@ -690,7 +706,7 @@

- + @@ -702,7 +718,7 @@

Get the internal statistics of the LoRa received packets.

-

Internal statistics are reset on Power on Reset, by entering sleep mode without memory retention, or by calling lr1110_radio_reset_stats.

+

Internal statistics are reset on Power on Reset, by entering sleep mode without memory retention, or by calling lr11xx_radio_reset_stats.

Parameters

lr1110_status_t lr1110_radio_get_lora_stats lr11xx_status_t lr11xx_radio_get_lora_stats ( const void *  context, lr1110_radio_stats_lora_tlr11xx_radio_stats_lora_t stats 
@@ -711,18 +727,18 @@

Returns
Operation status
-
See also
lr1110_radio_reset_stats
+
See also
lr11xx_radio_reset_stats
- -

◆ lr1110_radio_get_pkt_type()

+ +

◆ lr11xx_radio_get_pkt_type()

[in]contextChip implementation context
- + @@ -730,7 +746,7 @@

- + @@ -750,18 +766,18 @@

Returns
Operation status
-
See also
lr1110_radio_set_pkt_type
+
See also
lr11xx_radio_set_pkt_type
- -

◆ lr1110_radio_get_rx_buffer_status()

+ +

◆ lr11xx_radio_get_rx_buffer_status()

lr1110_status_t lr1110_radio_get_pkt_type lr11xx_status_t lr11xx_radio_get_pkt_type ( const void *  context, lr1110_radio_pkt_type_tlr11xx_radio_pkt_type_t pkt_type 
- + @@ -769,7 +785,7 @@

- + @@ -792,14 +808,14 @@

-

◆ lr1110_radio_get_gfsk_pkt_status()

+ +

◆ lr11xx_radio_get_gfsk_pkt_status()

lr1110_status_t lr1110_radio_get_rx_buffer_status lr11xx_status_t lr11xx_radio_get_rx_buffer_status ( const void *  context, lr1110_radio_rx_buffer_status_tlr11xx_radio_rx_buffer_status_t rx_buffer_status 
- + @@ -807,7 +823,7 @@

- + @@ -831,14 +847,14 @@

-

◆ lr1110_radio_get_lora_pkt_status()

+ +

◆ lr11xx_radio_get_lora_pkt_status()

lr1110_status_t lr1110_radio_get_gfsk_pkt_status lr11xx_status_t lr11xx_radio_get_gfsk_pkt_status ( const void *  context, lr1110_radio_pkt_status_gfsk_tlr11xx_radio_pkt_status_gfsk_t pkt_status 
- + @@ -846,7 +862,7 @@

- + @@ -870,14 +886,14 @@

-

◆ lr1110_radio_get_rssi_inst()

+ +

◆ lr11xx_radio_get_rssi_inst()

lr1110_status_t lr1110_radio_get_lora_pkt_status lr11xx_status_t lr11xx_radio_get_lora_pkt_status ( const void *  context, lr1110_radio_pkt_status_lora_tlr11xx_radio_pkt_status_lora_t pkt_status 
- + @@ -909,14 +925,14 @@

-

◆ lr1110_radio_set_gfsk_sync_word()

+ +

◆ lr11xx_radio_set_gfsk_sync_word()

lr1110_status_t lr1110_radio_get_rssi_inst lr11xx_status_t lr11xx_radio_get_rssi_inst ( const void *  context,
- + @@ -925,7 +941,7 @@

- + @@ -948,14 +964,14 @@

-

◆ lr1110_radio_set_lora_sync_word()

+ +

◆ lr11xx_radio_set_lora_sync_word()

lr1110_status_t lr1110_radio_set_gfsk_sync_word lr11xx_status_t lr11xx_radio_set_gfsk_sync_word ( const void *  context, const uint8_t gfsk_sync_word[LR1110_RADIO_GFSK_SYNC_WORD_LENGTH] gfsk_sync_word[LR11XX_RADIO_GFSK_SYNC_WORD_LENGTH] 
- + @@ -986,14 +1002,14 @@

-

◆ lr1110_radio_set_lora_public_network()

+ +

◆ lr11xx_radio_set_lora_public_network()

lr1110_status_t lr1110_radio_set_lora_sync_word lr11xx_status_t lr11xx_radio_set_lora_sync_word ( const void *  context,
- + @@ -1001,7 +1017,7 @@

- + @@ -1022,18 +1038,18 @@

Returns
Operation status
-
Warning
This function is deprecated. Use lr1110_radio_set_lora_sync_word for chip firmware equal to or more recent than 0x303.
+
Warning
This function is deprecated. Use lr11xx_radio_set_lora_sync_word for chip firmware equal to or more recent than 0x303.
-
-

◆ lr1110_radio_set_rx()

+ +

◆ lr11xx_radio_set_rx()

lr1110_status_t lr1110_radio_set_lora_public_network lr11xx_status_t lr11xx_radio_set_lora_public_network ( const void *  context, const lr1110_radio_lora_network_type_t const lr11xx_radio_lora_network_type_t  network_type 
- + @@ -1052,9 +1068,10 @@

-

Start RX operations.

-

This command sets the LR1110 to RX mode. The radio must have been configured before using this command with lr1110_radio_set_pkt_type

-

By default, the timeout parameter allows to return automatically to standby RC mode if no packets have been received after a certain amount of time. This behavior can be altered by lr1110_radio_set_rx_tx_fallback_mode and lr1110_radio_auto_tx_rx.

+

Start RX operations with a timeout in millisecond.

+

This command sets the LR11XX to RX mode. The radio must have been configured before using this command with lr11xx_radio_set_pkt_type

+

By default, the timeout parameter allows to return automatically to standby RC mode if no packets have been received after a certain amount of time. This behavior can be altered by lr11xx_radio_set_rx_tx_fallback_mode and lr11xx_radio_auto_tx_rx.

+
Remarks
To set the radio in Rx continuous mode, the function lr11xx_radio_set_rx_with_timeout_in_rtc_step has to be called with timeout_in_rtc_step set to 0xFFFFFF
Parameters

lr1110_status_t lr1110_radio_set_rx lr11xx_status_t lr11xx_radio_set_rx ( const void *  context,
@@ -1063,18 +1080,18 @@

Returns
Operation status
-
See also
lr1110_radio_set_pkt_type, lr1110_radio_set_rx_tx_fallback_mode
+
See also
lr11xx_radio_set_pkt_type, lr11xx_radio_set_rx_tx_fallback_mode
- -

◆ lr1110_radio_set_rx_with_timeout_in_rtc_step()

+ +

◆ lr11xx_radio_set_rx_with_timeout_in_rtc_step()

[in]contextChip implementation context
- + @@ -1093,18 +1110,18 @@

-

Start RX operations.

-

This command sets the LR1110 to RX mode. The radio must have been configured before using this command with lr1110_radio_set_pkt_type

-

By default, the timeout parameter allows to return automatically to standby RC mode if no packets have been received after a certain amount of time. This behavior can be altered by lr1110_radio_set_rx_tx_fallback_mode and lr1110_radio_auto_tx_rx.

+

Start RX operations with a timeout in RTC step.

+

This command sets the LR11XX to RX mode. The radio must have been configured before using this command with lr11xx_radio_set_pkt_type

+

By default, the timeout parameter allows to return automatically to standby RC mode if no packets have been received after a certain amount of time. This behavior can be altered by lr11xx_radio_set_rx_tx_fallback_mode and lr11xx_radio_auto_tx_rx.

The timeout duration is obtained by: $ timeout\_duration\_ms = timeout \times \frac{1}{32.768} $

Maximal timeout value is 0xFFFFFF, which gives a maximal timeout of 511 seconds.

The timeout argument can also have the following special values:

lr1110_status_t lr1110_radio_set_rx_with_timeout_in_rtc_step lr11xx_status_t lr11xx_radio_set_rx_with_timeout_in_rtc_step ( const void *  context,
- + - +
Special values Meaning
0x000000 RX single: LR1110 stays in RX mode until a packet is received, then switch to standby RC mode
0x000000 RX single: LR11XX stays in RX mode until a packet is received, then switch to standby RC mode
0xFFFFFF RX continuous: LR1110 stays in RX mode even after reception of a packet
0xFFFFFF RX continuous: LR11XX stays in RX mode even after reception of a packet
Parameters
@@ -1114,18 +1131,18 @@

Returns
Operation status
-
See also
lr1110_radio_set_pkt_type, lr1110_radio_set_rx_tx_fallback_mode
+
See also
lr11xx_radio_set_pkt_type, lr11xx_radio_set_rx_tx_fallback_mode
- -

◆ lr1110_radio_set_tx()

+ +

◆ lr11xx_radio_set_tx()

- + @@ -1145,8 +1162,8 @@

Start TX operations.

-

This command sets the LR1110 to TX mode. The radio must have been configured before using this command with lr1110_radio_set_pkt_type

-

By default, the timeout parameter allows to return automatically to standby RC mode if the packet has not been completely transmitted after a certain amount of time. This behavior can be altered by lr1110_radio_set_rx_tx_fallback_mode and lr1110_radio_auto_tx_rx.

+

This command sets the LR11XX to TX mode. The radio must have been configured before using this command with lr11xx_radio_set_pkt_type

+

By default, the timeout parameter allows to return automatically to standby RC mode if the packet has not been completely transmitted after a certain amount of time. This behavior can be altered by lr11xx_radio_set_rx_tx_fallback_mode and lr11xx_radio_auto_tx_rx.

Parameters

lr1110_status_t lr1110_radio_set_tx lr11xx_status_t lr11xx_radio_set_tx ( const void *  context,
@@ -1155,18 +1172,18 @@

Returns
Operation status
-
See also
lr1110_radio_set_pkt_type, lr1110_radio_set_rx_tx_fallback_mode
+
See also
lr11xx_radio_set_pkt_type, lr11xx_radio_set_rx_tx_fallback_mode
- -

◆ lr1110_radio_set_tx_with_timeout_in_rtc_step()

+ +

◆ lr11xx_radio_set_tx_with_timeout_in_rtc_step()

[in]contextChip implementation context
- + @@ -1186,8 +1203,8 @@

Start TX operations.

-

This command sets the LR1110 to TX mode. The radio must have been configured before using this command with lr1110_radio_set_pkt_type

-

By default, the timeout parameter allows to return automatically to standby RC mode if the packet has not been completely transmitted after a certain amount of time. This behavior can be altered by lr1110_radio_set_rx_tx_fallback_mode and lr1110_radio_auto_tx_rx.

+

This command sets the LR11XX to TX mode. The radio must have been configured before using this command with lr11xx_radio_set_pkt_type

+

By default, the timeout parameter allows to return automatically to standby RC mode if the packet has not been completely transmitted after a certain amount of time. This behavior can be altered by lr11xx_radio_set_rx_tx_fallback_mode and lr11xx_radio_auto_tx_rx.

The timeout duration is obtained by: $ timeout\_duration\_ms = timeout \times \frac{1}{32.768} $

Maximal value is 0xFFFFFF.

If the timeout argument is 0, then no timeout is used.

@@ -1199,18 +1216,18 @@

Returns
Operation status
-
See also
lr1110_radio_set_pkt_type, lr1110_radio_set_rx_tx_fallback_mode
+
See also
lr11xx_radio_set_pkt_type, lr11xx_radio_set_rx_tx_fallback_mode
- -

◆ lr1110_radio_set_rf_freq()

+ +

◆ lr11xx_radio_set_rf_freq()

lr1110_status_t lr1110_radio_set_tx_with_timeout_in_rtc_step lr11xx_status_t lr11xx_radio_set_tx_with_timeout_in_rtc_step ( const void *  context,
- + @@ -1242,14 +1259,14 @@

-

◆ lr1110_radio_auto_tx_rx()

+ +

◆ lr11xx_radio_auto_tx_rx()

lr1110_status_t lr1110_radio_set_rf_freq lr11xx_status_t lr11xx_radio_set_rf_freq ( const void *  context,
- + @@ -1263,7 +1280,7 @@

- + @@ -1281,23 +1298,23 @@

Configure automatic TX after RX or automatic RX after TX.

-

After issuing this command, using the command SetTx will make the LR1110 doing the following:

    +

    After issuing this command, using the command SetTx will make the LR11XX doing the following:

    • Enter TX mode as usual
    • Enter configurable Intermediary mode during configurable delay
    • Enter RX mode
    -

    Similarly, after a SetRx command, the LR1110 will do the following:

      +

      Similarly, after a SetRx command, the LR11XX will do the following:

      • Enter RX mode as usual
      • Enter configurable Intermediary mode during configurable delay
      • Enter TX mode
      -

      In case delay is 0, the LR1110 does not enter Intermediary mode and directly enter the following mode.

      +

      In case delay is 0, the LR11XX does not enter Intermediary mode and directly enter the following mode.

      To disable this behavior, use this function with delay set to 0xFFFFFFFF.

      Parameters

lr1110_status_t lr1110_radio_auto_tx_rx lr11xx_status_t lr11xx_radio_auto_tx_rx ( const void *  context, const lr1110_radio_intermediary_mode_t const lr11xx_radio_intermediary_mode_t  intermediary_mode,
- +
[in]contextChip implementation context
[in]delayTime to spend in Intermediary mode expressed as steps of $\frac{1}{32.768 KHz}$ steps.
[in]intermediary_modeThe mode the LR1110 enters after first mode completion during delay time
[in]intermediary_modeThe mode the LR11XX enters after first mode completion during delay time
[in]timeoutThe timeout duration of the automatic RX or TX, expressed as steps of $ \frac{1}{32.768KHz} $
@@ -1306,14 +1323,14 @@

-

◆ lr1110_radio_set_cad_params()

+ +

◆ lr11xx_radio_set_cad_params()

- + @@ -1321,7 +1338,7 @@

- + @@ -1344,14 +1361,14 @@

-

◆ lr1110_radio_set_pkt_type()

+ +

◆ lr11xx_radio_set_pkt_type()

lr1110_status_t lr1110_radio_set_cad_params lr11xx_status_t lr11xx_radio_set_cad_params ( const void *  context, const lr1110_radio_cad_params_tconst lr11xx_radio_cad_params_t cad_params 
- + @@ -1359,7 +1376,7 @@

- + @@ -1379,18 +1396,18 @@

Returns
Operation status
-
See also
lr1110_radio_get_pkt_type
+
See also
lr11xx_radio_get_pkt_type
- -

◆ lr1110_radio_set_gfsk_mod_params()

+ +

◆ lr11xx_radio_set_gfsk_mod_params()

lr1110_status_t lr1110_radio_set_pkt_type lr11xx_status_t lr11xx_radio_set_pkt_type ( const void *  context, const lr1110_radio_pkt_type_t const lr11xx_radio_pkt_type_t  pkt_type 
- + @@ -1398,7 +1415,7 @@

- + @@ -1410,7 +1427,7 @@

Set the modulation parameters for GFSK packets.

-

The command lr1110_radio_set_pkt_type must be called prior this one.

+

The command lr11xx_radio_set_pkt_type must be called prior this one.

Parameters

lr1110_status_t lr1110_radio_set_gfsk_mod_params lr11xx_status_t lr11xx_radio_set_gfsk_mod_params ( const void *  context, const lr1110_radio_mod_params_gfsk_tconst lr11xx_radio_mod_params_gfsk_t mod_params 
@@ -1419,18 +1436,18 @@

Returns
Operation status
-
See also
lr1110_radio_set_pkt_type
+
See also
lr11xx_radio_set_pkt_type
- -

◆ lr1110_radio_set_lora_mod_params()

+ +

◆ lr11xx_radio_set_lora_mod_params()

[in]contextChip implementation context
- + @@ -1438,7 +1455,7 @@

- + @@ -1450,7 +1467,7 @@

Set the modulation parameters for LoRa packets.

-

The command lr1110_radio_set_pkt_type must be called prior this one.

+

The command lr11xx_radio_set_pkt_type must be called prior this one.

Parameters

lr1110_status_t lr1110_radio_set_lora_mod_params lr11xx_status_t lr11xx_radio_set_lora_mod_params ( const void *  context, const lr1110_radio_mod_params_lora_tconst lr11xx_radio_mod_params_lora_t mod_params 
@@ -1459,18 +1476,18 @@

Returns
Operation status
-
See also
lr1110_radio_set_pkt_type
+
See also
lr11xx_radio_set_pkt_type
- -

◆ lr1110_radio_set_gfsk_pkt_params()

+ +

◆ lr11xx_radio_set_gfsk_pkt_params()

[in]contextChip implementation context
- + @@ -1478,7 +1495,7 @@

- + @@ -1490,7 +1507,7 @@

Set the packet parameters for GFSK packets.

-

The command lr1110_radio_set_pkt_type must be called prior this one.

+

The command lr11xx_radio_set_pkt_type must be called prior this one.

Parameters

lr1110_status_t lr1110_radio_set_gfsk_pkt_params lr11xx_status_t lr11xx_radio_set_gfsk_pkt_params ( const void *  context, const lr1110_radio_pkt_params_gfsk_tconst lr11xx_radio_pkt_params_gfsk_t pkt_params 
@@ -1499,18 +1516,18 @@

Returns
Operation status
-
See also
lr1110_radio_set_pkt_type, lr1110_radio_set_gfsk_mod_params
+
See also
lr11xx_radio_set_pkt_type, lr11xx_radio_set_gfsk_mod_params
- -

◆ lr1110_radio_set_lora_pkt_params()

+ +

◆ lr11xx_radio_set_lora_pkt_params()

[in]contextChip implementation context
- + @@ -1518,7 +1535,7 @@

- + @@ -1530,7 +1547,7 @@

Set the packet parameters for LoRa packets.

-

The command lr1110_radio_set_pkt_type must be called prior this one.

+

The command lr11xx_radio_set_pkt_type must be called prior this one.

Parameters

lr1110_status_t lr1110_radio_set_lora_pkt_params lr11xx_status_t lr11xx_radio_set_lora_pkt_params ( const void *  context, const lr1110_radio_pkt_params_lora_tconst lr11xx_radio_pkt_params_lora_t pkt_params 
@@ -1539,18 +1556,18 @@

Returns
Operation status
-
See also
lr1110_radio_set_pkt_type, lr1110_radio_set_lora_mod_params
+
See also
lr11xx_radio_set_pkt_type, lr11xx_radio_set_lora_mod_params
- -

◆ lr1110_radio_set_tx_params()

+ +

◆ lr11xx_radio_set_tx_params()

[in]contextChip implementation context
- + @@ -1564,7 +1581,7 @@

- + @@ -1576,12 +1593,12 @@

Set the parameters for TX power and power amplifier ramp time.

-

The command lr1110_radio_set_pa_cfg must be called prior calling lr1110_radio_set_tx_params.

-

The range of possible TX output power values depends on PA selected with lr1110_radio_set_pa_cfg :

    +

    The command lr11xx_radio_set_pa_cfg must be called prior calling lr11xx_radio_set_tx_params.

    +

    The range of possible TX output power values depends on PA selected with lr11xx_radio_set_pa_cfg :

    • for LPA: power value goes from -17dBm to +14dBm (ie. from 0xEF to 0x0E)
    • for HPA: power value goes from -9dBm to +22dBm (ie. from 0xF7 to 0x16)
    -

    Moreover, to use TX output power value higher than +10dBm, the REGPASUPPLY_VBAT supply must have been selected with lr1110_radio_set_pa_cfg.

    +

    Moreover, to use TX output power value higher than +10dBm, the REGPASUPPLY_VBAT supply must have been selected with lr11xx_radio_set_pa_cfg.

    Parameters

lr1110_status_t lr1110_radio_set_tx_params lr11xx_status_t lr11xx_radio_set_tx_params ( const void *  context, const lr1110_radio_ramp_time_t const lr11xx_radio_ramp_time_t  ramp_time 
@@ -1594,14 +1611,14 @@

-

◆ lr1110_radio_set_pkt_address()

+ +

◆ lr11xx_radio_set_pkt_address()

[in]contextChip implementation context
- + @@ -1640,14 +1657,14 @@

-

◆ lr1110_radio_set_rx_tx_fallback_mode()

+ +

◆ lr11xx_radio_set_rx_tx_fallback_mode()

lr1110_status_t lr1110_radio_set_pkt_address lr11xx_status_t lr11xx_radio_set_pkt_address ( const void *  context,
- + @@ -1655,7 +1672,7 @@

- + @@ -1679,14 +1696,14 @@

-

◆ lr1110_radio_set_rx_duty_cycle()

+ +

◆ lr11xx_radio_set_rx_duty_cycle()

lr1110_status_t lr1110_radio_set_rx_tx_fallback_mode lr11xx_status_t lr11xx_radio_set_rx_tx_fallback_mode ( const void *  context, const lr1110_radio_fallback_modes_t const lr11xx_radio_fallback_modes_t  fallback_mode 
- + @@ -1706,7 +1723,7 @@

- + @@ -1720,18 +1737,18 @@

  • Reception: enters reception state for duration defined by rx_period
      -
    • If mode is LR1110_RADIO_RX_DUTY_CYCLE_MODE_RX: it is standard RX mode
    • -
    • If mode is LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD (only in LoRa) : it is CAD operation
    • +
    • If mode is LR11XX_RADIO_RX_DUTY_CYCLE_MODE_RX: it is standard RX mode
    • +
    • If mode is LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD (only in LoRa) : it is CAD operation
  • Depending on the over-the-air activity detection:
    • In case of positive over-the-air detection, the rx_period timeout is recomputed to the value $2 \times rx\_period + sleep\_period$
    • -
    • If no air activity is detected, the LR1110 goes back to sleep mode with retention for a duration defined by sleep_period
    • +
    • If no air activity is detected, the LR11XX goes back to sleep mode with retention for a duration defined by sleep_period
  • -
  • On wake-up, the LR1110 restarts the process with the reception state.
  • +
  • On wake-up, the LR11XX restarts the process with the reception state.
  • -
    Remarks
    If mode is configured to LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD, then the CAD configuration used in step 1. is the one set from the last call to lr1110_radio_set_cad_params.
    +
    Remarks
    If mode is configured to LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD, then the CAD configuration used in step 1. is the one set from the last call to lr11xx_radio_set_cad_params.
    Parameters

    lr1110_status_t lr1110_radio_set_rx_duty_cycle lr11xx_status_t lr11xx_radio_set_rx_duty_cycle ( const void *  context, const lr1110_radio_rx_duty_cycle_mode_t const lr11xx_radio_rx_duty_cycle_mode_t  mode 
    @@ -1742,18 +1759,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_cad_params
    +
    See also
    lr11xx_radio_set_cad_params
    - -

    ◆ lr1110_radio_set_rx_duty_cycle_with_timings_in_rtc_step()

    + +

    ◆ lr11xx_radio_set_rx_duty_cycle_with_timings_in_rtc_step()

    [in]contextChip implementation context
    - + @@ -1773,7 +1790,7 @@

    - + @@ -1787,18 +1804,18 @@

  • Reception: enters reception state for duration defined by rx_period
      -
    • If mode is LR1110_RADIO_RX_DUTY_CYCLE_MODE_RX: it is standard RX mode
    • -
    • If mode is LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD (only in LoRa) : it is CAD operation
    • +
    • If mode is LR11XX_RADIO_RX_DUTY_CYCLE_MODE_RX: it is standard RX mode
    • +
    • If mode is LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD (only in LoRa) : it is CAD operation
  • Depending on the over-the-air activity detection:
    • In case of positive over-the-air detection, the rx_period timeout is recomputed to the value $2 \times rx\_period + sleep\_period$
    • -
    • If no air activity is detected, the LR1110 goes back to sleep mode with retention for a duration defined by sleep_period
    • +
    • If no air activity is detected, the LR11XX goes back to sleep mode with retention for a duration defined by sleep_period
  • -
  • On wake-up, the LR1110 restarts the process with the reception state.
  • +
  • On wake-up, the LR11XX restarts the process with the reception state.
  • -
    Remarks
    If mode is configured to LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD, then the CAD configuration used in step 1. is the one set from the last call to lr1110_radio_set_cad_params.
    +
    Remarks
    If mode is configured to LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD, then the CAD configuration used in step 1. is the one set from the last call to lr11xx_radio_set_cad_params.
    Parameters

    lr1110_status_t lr1110_radio_set_rx_duty_cycle_with_timings_in_rtc_step lr11xx_status_t lr11xx_radio_set_rx_duty_cycle_with_timings_in_rtc_step ( const void *  context, const lr1110_radio_rx_duty_cycle_mode_t const lr11xx_radio_rx_duty_cycle_mode_t  mode 
    @@ -1809,18 +1826,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_cad_params
    +
    See also
    lr11xx_radio_set_cad_params
    - -

    ◆ lr1110_radio_set_pa_cfg()

    + +

    ◆ lr11xx_radio_set_pa_cfg()

    [in]contextChip implementation context
    - + @@ -1828,7 +1845,7 @@

    - + @@ -1840,7 +1857,7 @@

    Set the Power Amplifier configuration.

    -

    It must be called prior using lr1110_radio_set_tx_params.

    +

    It must be called prior using lr11xx_radio_set_tx_params.

    Parameters

    lr1110_status_t lr1110_radio_set_pa_cfg lr11xx_status_t lr11xx_radio_set_pa_cfg ( const void *  context, const lr1110_radio_pa_cfg_tconst lr11xx_radio_pa_cfg_t pa_cfg 
    @@ -1852,14 +1869,14 @@

    -

    ◆ lr1110_radio_stop_timeout_on_preamble()

    + +

    ◆ lr11xx_radio_stop_timeout_on_preamble()

    [in]contextChip implementation context
    - + @@ -1894,14 +1911,14 @@

    -

    ◆ lr1110_radio_set_cad()

    + +

    ◆ lr11xx_radio_set_cad()

    lr1110_status_t lr1110_radio_stop_timeout_on_preamble lr11xx_status_t lr11xx_radio_stop_timeout_on_preamble ( const void *  context,
    - + @@ -1911,7 +1928,7 @@

    Start the CAD mode.

    -

    The LoRa packet type shall be selected before this function is called. The fallback mode is configured with lr1110_radio_set_cad_params.

    +

    The LoRa packet type shall be selected before this function is called. The fallback mode is configured with lr11xx_radio_set_cad_params.

    Parameters

    lr1110_status_t lr1110_radio_set_cad lr11xx_status_t lr11xx_radio_set_cad ( const void *  context)
    @@ -1919,18 +1936,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_cad_params, lr1110_radio_set_pkt_type
    +
    See also
    lr11xx_radio_set_cad_params, lr11xx_radio_set_pkt_type
    - -

    ◆ lr1110_radio_set_tx_cw()

    + +

    ◆ lr11xx_radio_set_tx_cw()

    [in]contextChip implementation context
    - + @@ -1948,18 +1965,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type
    +
    See also
    lr11xx_radio_set_pkt_type
    - -

    ◆ lr1110_radio_set_tx_infinite_preamble()

    + +

    ◆ lr11xx_radio_set_tx_infinite_preamble()

    lr1110_status_t lr1110_radio_set_tx_cw lr11xx_status_t lr11xx_radio_set_tx_cw ( const void *  context)
    - + @@ -1979,14 +1996,14 @@

    -

    ◆ lr1110_radio_set_lora_sync_timeout()

    + +

    ◆ lr11xx_radio_set_lora_sync_timeout()

    lr1110_status_t lr1110_radio_set_tx_infinite_preamble lr11xx_status_t lr11xx_radio_set_tx_infinite_preamble ( const void *  context)
    - + @@ -2017,14 +2034,14 @@

    -

    ◆ lr1110_radio_set_gfsk_crc_params()

    + +

    ◆ lr11xx_radio_set_gfsk_crc_params()

    lr1110_status_t lr1110_radio_set_lora_sync_timeout lr11xx_status_t lr11xx_radio_set_lora_sync_timeout ( const void *  context,
    - + @@ -2062,14 +2079,14 @@

    -

    ◆ lr1110_radio_set_gfsk_whitening_seed()

    + +

    ◆ lr11xx_radio_set_gfsk_whitening_seed()

    lr1110_status_t lr1110_radio_set_gfsk_crc_params lr11xx_status_t lr11xx_radio_set_gfsk_crc_params ( const void *  context,
    - + @@ -2100,14 +2117,14 @@

    -

    ◆ lr1110_radio_cfg_rx_boosted()

    + +

    ◆ lr11xx_radio_cfg_rx_boosted()

    lr1110_status_t lr1110_radio_set_gfsk_whitening_seed lr11xx_status_t lr11xx_radio_set_gfsk_whitening_seed ( const void *  context,
    - + @@ -2138,14 +2155,52 @@

    -

    ◆ lr1110_radio_get_gfsk_rx_bandwidth()

    + +

    ◆ lr11xx_radio_set_rssi_calibration()

    lr1110_status_t lr1110_radio_cfg_rx_boosted lr11xx_status_t lr11xx_radio_cfg_rx_boosted ( const void *  context,
    - + + + + + + + + + + + + + + + + +
    lr1110_status_t lr1110_radio_get_gfsk_rx_bandwidth lr11xx_status_t lr11xx_radio_set_rssi_calibration (const void * context,
    const lr11xx_radio_rssi_calibration_table_trssi_cal_table 
    )
    +
    + +

    Set RSSI calibration table.

    +
    Parameters
    + + + +
    [in]contextChip implementation context
    [in]rssi_cal_tableRSSI calibration table
    +
    +
    +
    Returns
    Operation status
    + +
    +
    + +

    ◆ lr11xx_radio_get_gfsk_rx_bandwidth()

    + +
    +
    + + + @@ -2153,7 +2208,7 @@

    - + @@ -2176,22 +2231,22 @@

    -

    ◆ lr1110_radio_get_lora_time_on_air_numerator()

    + +

    ◆ lr11xx_radio_get_lora_time_on_air_numerator()

    lr11xx_status_t lr11xx_radio_get_gfsk_rx_bandwidth ( uint32_t  bw_in_hz, lr1110_radio_gfsk_bw_tlr11xx_radio_gfsk_bw_t bw_parameter 
    - + - + - + @@ -2215,16 +2270,16 @@

    -

    ◆ lr1110_radio_get_lora_bw_in_hz()

    + +

    ◆ lr11xx_radio_get_lora_bw_in_hz()

    uint32_t lr1110_radio_get_lora_time_on_air_numerator uint32_t lr11xx_radio_get_lora_time_on_air_numerator (const lr1110_radio_pkt_params_lora_tconst lr11xx_radio_pkt_params_lora_t pkt_p,
    const lr1110_radio_mod_params_lora_tconst lr11xx_radio_mod_params_lora_t mod_p 
    - + - + @@ -2242,22 +2297,22 @@

    -

    ◆ lr1110_radio_get_lora_time_on_air_in_ms()

    + +

    ◆ lr11xx_radio_get_lora_time_on_air_in_ms()

    uint32_t lr1110_radio_get_lora_bw_in_hz uint32_t lr11xx_radio_get_lora_bw_in_hz (lr1110_radio_lora_bw_t lr11xx_radio_lora_bw_t  bw)
    - + - + - + @@ -2280,16 +2335,16 @@

    -

    ◆ lr1110_radio_get_gfsk_time_on_air_numerator()

    + +

    ◆ lr11xx_radio_get_gfsk_time_on_air_numerator()

    uint32_t lr1110_radio_get_lora_time_on_air_in_ms uint32_t lr11xx_radio_get_lora_time_on_air_in_ms (const lr1110_radio_pkt_params_lora_tconst lr11xx_radio_pkt_params_lora_t pkt_p,
    const lr1110_radio_mod_params_lora_tconst lr11xx_radio_mod_params_lora_t mod_p 
    - + - + @@ -2308,22 +2363,22 @@

    -

    ◆ lr1110_radio_get_gfsk_time_on_air_in_ms()

    + +

    ◆ lr11xx_radio_get_gfsk_time_on_air_in_ms()

    uint32_t lr1110_radio_get_gfsk_time_on_air_numerator uint32_t lr11xx_radio_get_gfsk_time_on_air_numerator (const lr1110_radio_pkt_params_gfsk_tconst lr11xx_radio_pkt_params_gfsk_t pkt_p)
    - + - + - + @@ -2346,14 +2401,14 @@

    -

    ◆ lr1110_radio_convert_time_in_ms_to_rtc_step()

    + +

    ◆ lr11xx_radio_convert_time_in_ms_to_rtc_step()

    uint32_t lr1110_radio_get_gfsk_time_on_air_in_ms uint32_t lr11xx_radio_get_gfsk_time_on_air_in_ms (const lr1110_radio_pkt_params_gfsk_tconst lr11xx_radio_pkt_params_gfsk_t pkt_p,
    const lr1110_radio_mod_params_gfsk_tconst lr11xx_radio_mod_params_gfsk_t mod_p 
    - + @@ -2373,14 +2428,14 @@

    -

    ◆ lr1110_radio_get_lora_rx_info()

    + +

    ◆ lr11xx_radio_get_lora_rx_info()

    uint32_t lr1110_radio_convert_time_in_ms_to_rtc_step uint32_t lr11xx_radio_convert_time_in_ms_to_rtc_step ( uint32_t  time_in_ms)
    - + @@ -2394,7 +2449,7 @@

    - + @@ -2405,8 +2460,8 @@

    -

    Get the information from the last received LoRa packet header (if LR1110_RADIO_LORA_PKT_EXPLICIT) or the locally configured settings (if LR1110_RADIO_LORA_PKT_IMPLICIT)

    -
    Remarks
    This function can be called only if LR1110_RADIO_PKT_TYPE_LORA is selected with lr1110_radio_set_pkt_type
    +

    Get the information from the last received LoRa packet header (if LR11XX_RADIO_LORA_PKT_EXPLICIT) or the locally configured settings (if LR11XX_RADIO_LORA_PKT_IMPLICIT)

    +
    Remarks
    This function can be called only if LR11XX_RADIO_PKT_TYPE_LORA is selected with lr11xx_radio_set_pkt_type
    Parameters

    lr1110_status_t lr1110_radio_get_lora_rx_info lr11xx_status_t lr11xx_radio_get_lora_rx_info ( const void *  context, lr1110_radio_lora_cr_tlr11xx_radio_lora_cr_t cr 
    @@ -2417,6 +2472,33 @@

    Returns
    Operation status
    + + +
    +

    ◆ lr11xx_radio_apply_high_acp_workaround()

    + +
    +
    +

    [in]contextChip implementation context
    + + + + + + + +
    lr11xx_status_t lr11xx_radio_apply_high_acp_workaround (const void * context)
    +
    + +

    Apply the workaround for the high ACP limitation.

    +
    Parameters
    + + +
    [in]contextChip implementation context
    +
    +
    +
    Returns
    Operation status
    +

    diff --git a/doc/lr11xx/html/lr11xx__radio_8c__incl.map b/doc/lr11xx/html/lr11xx__radio_8c__incl.map new file mode 100644 index 0000000..a6c8e61 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio_8c__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__radio_8c__incl.md5 b/doc/lr11xx/html/lr11xx__radio_8c__incl.md5 new file mode 100644 index 0000000..d079e1d --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio_8c__incl.md5 @@ -0,0 +1 @@ +bcc76b9ed4b237ff3cb6ab3cceccdbff \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__radio_8c__incl.png b/doc/lr11xx/html/lr11xx__radio_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..b232259c652e8f41665e62044a33da002cedae34 GIT binary patch literal 20858 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 bUkMT?Yv<`Y`KLq>co65#I@?rP`6d1bt#(|C literal 0 HcmV?d00001 diff --git a/doc/lr1110/html/lr1110__radio_8h.html b/doc/lr11xx/html/lr11xx__radio_8h.html similarity index 55% rename from doc/lr1110/html/lr1110__radio_8h.html rename to doc/lr11xx/html/lr11xx__radio_8h.html index a2a4938..90cf184 100644 --- a/doc/lr1110/html/lr1110__radio_8h.html +++ b/doc/lr11xx/html/lr11xx__radio_8h.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_radio.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_radio.h File Reference @@ -21,7 +21,7 @@ -
    @@ -69,22 +69,22 @@ Macros | Functions
    -
    lr1110_radio.h File Reference
    +
    lr11xx_radio.h File Reference
    -

    Radio driver definition for LR1110. +

    Radio driver definition for LR11XX. More...

    -
    #include "lr1110_radio_types.h"
    -#include "lr1110_types.h"
    +
    #include "lr11xx_radio_types.h"
    +#include "lr11xx_types.h"
    -Include dependency graph for lr1110_radio.h:
    +Include dependency graph for lr11xx_radio.h:
    -
    - - - - +
    + + + + @@ -92,167 +92,173 @@
    This graph shows which files directly or indirectly include this file:
    -
    - - - - - +
    + + + + +
    -

    Go to the source code of this file.

    +

    Go to the source code of this file.

    - - - - - - + + + + + +

    Macros

    -#define LR1110_RADIO_GFSK_SYNC_WORD_LENGTH   8
     Length in byte of the GFSK sync word.
     
    #define LR11110_RADIO_GFSK_SYNC_WORD_DEFAULT
     Default GFSK sync word value. More...
     
    +#define LR11XX_RADIO_GFSK_SYNC_WORD_LENGTH   8
     Length in byte of the GFSK sync word.
     
    #define LR11XX_RADIO_GFSK_SYNC_WORD_DEFAULT
     Default GFSK sync word value. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    lr1110_status_t lr1110_radio_reset_stats (const void *context)
     Reset internal statistics of the received packets. More...
     
    lr1110_status_t lr1110_radio_get_gfsk_stats (const void *context, lr1110_radio_stats_gfsk_t *stats)
     Get the internal statistics of the GFSK received packets. More...
     
    lr1110_status_t lr1110_radio_get_lora_stats (const void *context, lr1110_radio_stats_lora_t *stats)
     Get the internal statistics of the LoRa received packets. More...
     
    lr1110_status_t lr1110_radio_get_pkt_type (const void *context, lr1110_radio_pkt_type_t *pkt_type)
     Get the packet type currently configured. More...
     
    lr1110_status_t lr1110_radio_get_rx_buffer_status (const void *context, lr1110_radio_rx_buffer_status_t *rx_buffer_status)
     Get the length of last received packet, and the offset in the RX internal buffer of the first byte of the received payload. More...
     
    lr1110_status_t lr1110_radio_get_gfsk_pkt_status (const void *context, lr1110_radio_pkt_status_gfsk_t *pkt_status)
     Get the status of last GFSK received packet. More...
     
    lr1110_status_t lr1110_radio_get_lora_pkt_status (const void *context, lr1110_radio_pkt_status_lora_t *pkt_status)
     Get the status of last LoRa received packet. More...
     
    lr1110_status_t lr1110_radio_get_rssi_inst (const void *context, int8_t *rssi_in_dbm)
     Get the instantaneous RSSI. More...
     
    lr1110_status_t lr1110_radio_set_gfsk_sync_word (const void *context, const uint8_t gfsk_sync_word[LR1110_RADIO_GFSK_SYNC_WORD_LENGTH])
     Set the GFSK modem sync word. More...
     
    lr1110_status_t lr1110_radio_set_lora_sync_word (const void *context, const uint8_t sync_word)
     Set the LoRa modem sync word. More...
     
    lr1110_status_t lr1110_radio_set_lora_public_network (const void *context, const lr1110_radio_lora_network_type_t network_type)
     Set the LoRa modem sync word to private / public. More...
     
    lr1110_status_t lr1110_radio_set_rx (const void *context, const uint32_t timeout_in_ms)
     Start RX operations. More...
     
    lr1110_status_t lr1110_radio_set_rx_with_timeout_in_rtc_step (const void *context, const uint32_t timeout_in_rtc_step)
     Start RX operations. More...
     
    lr1110_status_t lr1110_radio_set_tx (const void *context, const uint32_t timeout_in_ms)
     Start TX operations. More...
     
    lr1110_status_t lr1110_radio_set_tx_with_timeout_in_rtc_step (const void *context, const uint32_t timeout_in_rtc_step)
     Start TX operations. More...
     
    lr1110_status_t lr1110_radio_set_rf_freq (const void *context, const uint32_t freq_in_hz)
     Set the frequency for future radio operations. More...
     
    lr1110_status_t lr1110_radio_auto_tx_rx (const void *context, const uint32_t delay, const lr1110_radio_intermediary_mode_t intermediary_mode, const uint32_t timeout)
     Configure automatic TX after RX or automatic RX after TX. More...
     
    lr1110_status_t lr1110_radio_set_cad_params (const void *context, const lr1110_radio_cad_params_t *cad_params)
     Set Channel Activity Detection configuration. More...
     
    lr1110_status_t lr1110_radio_set_pkt_type (const void *context, const lr1110_radio_pkt_type_t pkt_type)
     Set the packet type. More...
     
    lr1110_status_t lr1110_radio_set_gfsk_mod_params (const void *context, const lr1110_radio_mod_params_gfsk_t *mod_params)
     Set the modulation parameters for GFSK packets. More...
     
    lr1110_status_t lr1110_radio_set_lora_mod_params (const void *context, const lr1110_radio_mod_params_lora_t *mod_params)
     Set the modulation parameters for LoRa packets. More...
     
    lr1110_status_t lr1110_radio_set_gfsk_pkt_params (const void *context, const lr1110_radio_pkt_params_gfsk_t *pkt_params)
     Set the packet parameters for GFSK packets. More...
     
    lr1110_status_t lr1110_radio_set_lora_pkt_params (const void *context, const lr1110_radio_pkt_params_lora_t *pkt_params)
     Set the packet parameters for LoRa packets. More...
     
    lr1110_status_t lr1110_radio_set_tx_params (const void *context, const int8_t pwr_in_dbm, const lr1110_radio_ramp_time_t ramp_time)
     Set the parameters for TX power and power amplifier ramp time. More...
     
    lr1110_status_t lr1110_radio_set_pkt_address (const void *context, const uint8_t node_address, const uint8_t broadcast_address)
     Sets the Node and Broadcast address used for GFSK. More...
     
    lr1110_status_t lr1110_radio_set_rx_tx_fallback_mode (const void *context, const lr1110_radio_fallback_modes_t fallback_mode)
     Alter the chip mode after successfull transmission or reception operation. More...
     
    lr1110_status_t lr1110_radio_set_rx_duty_cycle (const void *context, const uint32_t rx_period_in_ms, const uint32_t sleep_period_in_ms, const lr1110_radio_rx_duty_cycle_mode_t mode)
     Configure and start a Rx Duty Cycle operation. More...
     
    lr1110_status_t lr1110_radio_set_rx_duty_cycle_with_timings_in_rtc_step (const void *context, const uint32_t rx_period_in_rtc_step, const uint32_t sleep_period_in_rtc_step, const lr1110_radio_rx_duty_cycle_mode_t mode)
     Configure and start a Rx Duty Cycle operation. More...
     
    lr1110_status_t lr1110_radio_set_pa_cfg (const void *context, const lr1110_radio_pa_cfg_t *pa_cfg)
     Set the Power Amplifier configuration. More...
     
    lr1110_status_t lr1110_radio_stop_timeout_on_preamble (const void *context, const bool stop_timeout_on_preamble)
     Define on which event the Rx timeout shall be stopped. More...
     
    lr1110_status_t lr1110_radio_set_cad (const void *context)
     Start the CAD mode. More...
     
    lr1110_status_t lr1110_radio_set_tx_cw (const void *context)
     Set the device into Tx continuous wave (RF tone). More...
     
    lr1110_status_t lr1110_radio_set_tx_infinite_preamble (const void *context)
     Set the device into Tx continuous preamble (modulated signal). More...
     
    lr1110_status_t lr1110_radio_set_lora_sync_timeout (const void *context, const uint8_t nb_symbol)
     Configure the LoRa modem to issue a RX timeout after an exact number of symbols given in parameter if no LoRa modulation is detected. More...
     
    lr1110_status_t lr1110_radio_set_gfsk_crc_params (const void *context, const uint32_t seed, const uint32_t polynomial)
     Configure the seed and the polynomial used to compute CRC in GFSK packet. More...
     
    lr1110_status_t lr1110_radio_set_gfsk_whitening_seed (const void *context, const uint16_t seed)
     Configure the whitening seed used in GFSK packet. More...
     
    lr1110_status_t lr1110_radio_cfg_rx_boosted (const void *context, const bool enable_boost_mode)
     Configure the boost mode in reception. More...
     
    lr1110_status_t lr1110_radio_get_gfsk_rx_bandwidth (uint32_t bw_in_hz, lr1110_radio_gfsk_bw_t *bw_parameter)
     Gets the radio bw parameter for a given bandwidth in Hz. More...
     
    uint32_t lr1110_radio_get_lora_time_on_air_numerator (const lr1110_radio_pkt_params_lora_t *pkt_p, const lr1110_radio_mod_params_lora_t *mod_p)
     Compute the numerator for LoRa time-on-air computation. More...
     
    uint32_t lr1110_radio_get_lora_bw_in_hz (lr1110_radio_lora_bw_t bw)
     Get the actual value in Hertz of a given LoRa bandwidth. More...
     
    uint32_t lr1110_radio_get_lora_time_on_air_in_ms (const lr1110_radio_pkt_params_lora_t *pkt_p, const lr1110_radio_mod_params_lora_t *mod_p)
     Get the time on air in ms for LoRa transmission. More...
     
    uint32_t lr1110_radio_get_gfsk_time_on_air_numerator (const lr1110_radio_pkt_params_gfsk_t *pkt_p)
     Compute the numerator for GFSK time-on-air computation. More...
     
    uint32_t lr1110_radio_get_gfsk_time_on_air_in_ms (const lr1110_radio_pkt_params_gfsk_t *pkt_p, const lr1110_radio_mod_params_gfsk_t *mod_p)
     Get the time on air in ms for GFSK transmission. More...
     
    uint32_t lr1110_radio_convert_time_in_ms_to_rtc_step (uint32_t time_in_ms)
     Get the number of RTC steps for a given time in millisecond. More...
     
    lr1110_status_t lr1110_radio_get_lora_rx_info (const void *context, bool *is_crc_present, lr1110_radio_lora_cr_t *cr)
     Get the information from the last received LoRa packet header (if LR1110_RADIO_LORA_PKT_EXPLICIT) or the locally configured settings (if LR1110_RADIO_LORA_PKT_IMPLICIT) More...
     
    lr11xx_status_t lr11xx_radio_reset_stats (const void *context)
     Reset internal statistics of the received packets. More...
     
    lr11xx_status_t lr11xx_radio_get_gfsk_stats (const void *context, lr11xx_radio_stats_gfsk_t *stats)
     Get the internal statistics of the GFSK received packets. More...
     
    lr11xx_status_t lr11xx_radio_get_lora_stats (const void *context, lr11xx_radio_stats_lora_t *stats)
     Get the internal statistics of the LoRa received packets. More...
     
    lr11xx_status_t lr11xx_radio_get_pkt_type (const void *context, lr11xx_radio_pkt_type_t *pkt_type)
     Get the packet type currently configured. More...
     
    lr11xx_status_t lr11xx_radio_get_rx_buffer_status (const void *context, lr11xx_radio_rx_buffer_status_t *rx_buffer_status)
     Get the length of last received packet, and the offset in the RX internal buffer of the first byte of the received payload. More...
     
    lr11xx_status_t lr11xx_radio_get_gfsk_pkt_status (const void *context, lr11xx_radio_pkt_status_gfsk_t *pkt_status)
     Get the status of last GFSK received packet. More...
     
    lr11xx_status_t lr11xx_radio_get_lora_pkt_status (const void *context, lr11xx_radio_pkt_status_lora_t *pkt_status)
     Get the status of last LoRa received packet. More...
     
    lr11xx_status_t lr11xx_radio_get_rssi_inst (const void *context, int8_t *rssi_in_dbm)
     Get the instantaneous RSSI. More...
     
    lr11xx_status_t lr11xx_radio_set_gfsk_sync_word (const void *context, const uint8_t gfsk_sync_word[LR11XX_RADIO_GFSK_SYNC_WORD_LENGTH])
     Set the GFSK modem sync word. More...
     
    lr11xx_status_t lr11xx_radio_set_lora_sync_word (const void *context, const uint8_t sync_word)
     Set the LoRa modem sync word. More...
     
    lr11xx_status_t lr11xx_radio_set_lora_public_network (const void *context, const lr11xx_radio_lora_network_type_t network_type)
     Set the LoRa modem sync word to private / public. More...
     
    lr11xx_status_t lr11xx_radio_set_rx (const void *context, const uint32_t timeout_in_ms)
     Start RX operations with a timeout in millisecond. More...
     
    lr11xx_status_t lr11xx_radio_set_rx_with_timeout_in_rtc_step (const void *context, const uint32_t timeout_in_rtc_step)
     Start RX operations with a timeout in RTC step. More...
     
    lr11xx_status_t lr11xx_radio_set_tx (const void *context, const uint32_t timeout_in_ms)
     Start TX operations. More...
     
    lr11xx_status_t lr11xx_radio_set_tx_with_timeout_in_rtc_step (const void *context, const uint32_t timeout_in_rtc_step)
     Start TX operations. More...
     
    lr11xx_status_t lr11xx_radio_set_rf_freq (const void *context, const uint32_t freq_in_hz)
     Set the frequency for future radio operations. More...
     
    lr11xx_status_t lr11xx_radio_auto_tx_rx (const void *context, const uint32_t delay, const lr11xx_radio_intermediary_mode_t intermediary_mode, const uint32_t timeout)
     Configure automatic TX after RX or automatic RX after TX. More...
     
    lr11xx_status_t lr11xx_radio_set_cad_params (const void *context, const lr11xx_radio_cad_params_t *cad_params)
     Set Channel Activity Detection configuration. More...
     
    lr11xx_status_t lr11xx_radio_set_pkt_type (const void *context, const lr11xx_radio_pkt_type_t pkt_type)
     Set the packet type. More...
     
    lr11xx_status_t lr11xx_radio_set_gfsk_mod_params (const void *context, const lr11xx_radio_mod_params_gfsk_t *mod_params)
     Set the modulation parameters for GFSK packets. More...
     
    lr11xx_status_t lr11xx_radio_set_lora_mod_params (const void *context, const lr11xx_radio_mod_params_lora_t *mod_params)
     Set the modulation parameters for LoRa packets. More...
     
    lr11xx_status_t lr11xx_radio_set_gfsk_pkt_params (const void *context, const lr11xx_radio_pkt_params_gfsk_t *pkt_params)
     Set the packet parameters for GFSK packets. More...
     
    lr11xx_status_t lr11xx_radio_set_lora_pkt_params (const void *context, const lr11xx_radio_pkt_params_lora_t *pkt_params)
     Set the packet parameters for LoRa packets. More...
     
    lr11xx_status_t lr11xx_radio_set_tx_params (const void *context, const int8_t pwr_in_dbm, const lr11xx_radio_ramp_time_t ramp_time)
     Set the parameters for TX power and power amplifier ramp time. More...
     
    lr11xx_status_t lr11xx_radio_set_pkt_address (const void *context, const uint8_t node_address, const uint8_t broadcast_address)
     Sets the Node and Broadcast address used for GFSK. More...
     
    lr11xx_status_t lr11xx_radio_set_rx_tx_fallback_mode (const void *context, const lr11xx_radio_fallback_modes_t fallback_mode)
     Alter the chip mode after successfull transmission or reception operation. More...
     
    lr11xx_status_t lr11xx_radio_set_rx_duty_cycle (const void *context, const uint32_t rx_period_in_ms, const uint32_t sleep_period_in_ms, const lr11xx_radio_rx_duty_cycle_mode_t mode)
     Configure and start a Rx Duty Cycle operation. More...
     
    lr11xx_status_t lr11xx_radio_set_rx_duty_cycle_with_timings_in_rtc_step (const void *context, const uint32_t rx_period_in_rtc_step, const uint32_t sleep_period_in_rtc_step, const lr11xx_radio_rx_duty_cycle_mode_t mode)
     Configure and start a Rx Duty Cycle operation. More...
     
    lr11xx_status_t lr11xx_radio_set_pa_cfg (const void *context, const lr11xx_radio_pa_cfg_t *pa_cfg)
     Set the Power Amplifier configuration. More...
     
    lr11xx_status_t lr11xx_radio_stop_timeout_on_preamble (const void *context, const bool stop_timeout_on_preamble)
     Define on which event the Rx timeout shall be stopped. More...
     
    lr11xx_status_t lr11xx_radio_set_cad (const void *context)
     Start the CAD mode. More...
     
    lr11xx_status_t lr11xx_radio_set_tx_cw (const void *context)
     Set the device into Tx continuous wave (RF tone). More...
     
    lr11xx_status_t lr11xx_radio_set_tx_infinite_preamble (const void *context)
     Set the device into Tx continuous preamble (modulated signal). More...
     
    lr11xx_status_t lr11xx_radio_set_lora_sync_timeout (const void *context, const uint8_t nb_symbol)
     Configure the LoRa modem to issue a RX timeout after an exact number of symbols given in parameter if no LoRa modulation is detected. More...
     
    lr11xx_status_t lr11xx_radio_set_gfsk_crc_params (const void *context, const uint32_t seed, const uint32_t polynomial)
     Configure the seed and the polynomial used to compute CRC in GFSK packet. More...
     
    lr11xx_status_t lr11xx_radio_set_gfsk_whitening_seed (const void *context, const uint16_t seed)
     Configure the whitening seed used in GFSK packet. More...
     
    lr11xx_status_t lr11xx_radio_cfg_rx_boosted (const void *context, const bool enable_boost_mode)
     Configure the boost mode in reception. More...
     
    lr11xx_status_t lr11xx_radio_set_rssi_calibration (const void *context, const lr11xx_radio_rssi_calibration_table_t *rssi_cal_table)
     Set RSSI calibration table. More...
     
    lr11xx_status_t lr11xx_radio_get_gfsk_rx_bandwidth (uint32_t bw_in_hz, lr11xx_radio_gfsk_bw_t *bw_parameter)
     Gets the radio bw parameter for a given bandwidth in Hz. More...
     
    uint32_t lr11xx_radio_get_lora_time_on_air_numerator (const lr11xx_radio_pkt_params_lora_t *pkt_p, const lr11xx_radio_mod_params_lora_t *mod_p)
     Compute the numerator for LoRa time-on-air computation. More...
     
    uint32_t lr11xx_radio_get_lora_bw_in_hz (lr11xx_radio_lora_bw_t bw)
     Get the actual value in Hertz of a given LoRa bandwidth. More...
     
    uint32_t lr11xx_radio_get_lora_time_on_air_in_ms (const lr11xx_radio_pkt_params_lora_t *pkt_p, const lr11xx_radio_mod_params_lora_t *mod_p)
     Get the time on air in ms for LoRa transmission. More...
     
    uint32_t lr11xx_radio_get_gfsk_time_on_air_numerator (const lr11xx_radio_pkt_params_gfsk_t *pkt_p)
     Compute the numerator for GFSK time-on-air computation. More...
     
    uint32_t lr11xx_radio_get_gfsk_time_on_air_in_ms (const lr11xx_radio_pkt_params_gfsk_t *pkt_p, const lr11xx_radio_mod_params_gfsk_t *mod_p)
     Get the time on air in ms for GFSK transmission. More...
     
    uint32_t lr11xx_radio_convert_time_in_ms_to_rtc_step (uint32_t time_in_ms)
     Get the number of RTC steps for a given time in millisecond. More...
     
    lr11xx_status_t lr11xx_radio_get_lora_rx_info (const void *context, bool *is_crc_present, lr11xx_radio_lora_cr_t *cr)
     Get the information from the last received LoRa packet header (if LR11XX_RADIO_LORA_PKT_EXPLICIT) or the locally configured settings (if LR11XX_RADIO_LORA_PKT_IMPLICIT) More...
     
    lr11xx_status_t lr11xx_radio_apply_high_acp_workaround (const void *context)
     Apply the workaround for the high ACP limitation. More...
     

    Detailed Description

    -

    Radio driver definition for LR1110.

    +

    Radio driver definition for LR11XX.

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • @@ -261,14 +267,14 @@

    NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    Macro Definition Documentation

    - -

    ◆ LR11110_RADIO_GFSK_SYNC_WORD_DEFAULT

    + +

    ◆ LR11XX_RADIO_GFSK_SYNC_WORD_DEFAULT

    - +
    #define LR11110_RADIO_GFSK_SYNC_WORD_DEFAULT#define LR11XX_RADIO_GFSK_SYNC_WORD_DEFAULT
    @@ -281,14 +287,14 @@

    Function Documentation

    - -

    ◆ lr1110_radio_reset_stats()

    + +

    ◆ lr11xx_radio_reset_stats()

    - + @@ -305,18 +311,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_get_gfsk_stats, lr1110_radio_get_lora_stats
    +
    See also
    lr11xx_radio_get_gfsk_stats, lr11xx_radio_get_lora_stats
    - -

    ◆ lr1110_radio_get_gfsk_stats()

    + +

    ◆ lr11xx_radio_get_gfsk_stats()

    lr1110_status_t lr1110_radio_reset_stats lr11xx_status_t lr11xx_radio_reset_stats ( const void *  context)
    - + @@ -324,7 +330,7 @@

    - + @@ -336,7 +342,7 @@

    Get the internal statistics of the GFSK received packets.

    -

    Internal statistics are reset on Power on Reset, by entering sleep mode without memory retention, or by calling lr1110_radio_reset_stats.

    +

    Internal statistics are reset on Power on Reset, by entering sleep mode without memory retention, or by calling lr11xx_radio_reset_stats.

    Parameters

    lr1110_status_t lr1110_radio_get_gfsk_stats lr11xx_status_t lr11xx_radio_get_gfsk_stats ( const void *  context, lr1110_radio_stats_gfsk_tlr11xx_radio_stats_gfsk_t stats 
    @@ -345,18 +351,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_reset_stats
    +
    See also
    lr11xx_radio_reset_stats
    - -

    ◆ lr1110_radio_get_lora_stats()

    + +

    ◆ lr11xx_radio_get_lora_stats()

    [in]contextChip implementation context
    - + @@ -364,7 +370,7 @@

    - + @@ -376,7 +382,7 @@

    Get the internal statistics of the LoRa received packets.

    -

    Internal statistics are reset on Power on Reset, by entering sleep mode without memory retention, or by calling lr1110_radio_reset_stats.

    +

    Internal statistics are reset on Power on Reset, by entering sleep mode without memory retention, or by calling lr11xx_radio_reset_stats.

    Parameters

    lr1110_status_t lr1110_radio_get_lora_stats lr11xx_status_t lr11xx_radio_get_lora_stats ( const void *  context, lr1110_radio_stats_lora_tlr11xx_radio_stats_lora_t stats 
    @@ -385,18 +391,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_reset_stats
    +
    See also
    lr11xx_radio_reset_stats
    - -

    ◆ lr1110_radio_get_pkt_type()

    + +

    ◆ lr11xx_radio_get_pkt_type()

    [in]contextChip implementation context
    - + @@ -404,7 +410,7 @@

    - + @@ -424,18 +430,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type
    +
    See also
    lr11xx_radio_set_pkt_type
    - -

    ◆ lr1110_radio_get_rx_buffer_status()

    + +

    ◆ lr11xx_radio_get_rx_buffer_status()

    lr1110_status_t lr1110_radio_get_pkt_type lr11xx_status_t lr11xx_radio_get_pkt_type ( const void *  context, lr1110_radio_pkt_type_tlr11xx_radio_pkt_type_t pkt_type 
    - + @@ -443,7 +449,7 @@

    - + @@ -466,14 +472,14 @@

    -

    ◆ lr1110_radio_get_gfsk_pkt_status()

    + +

    ◆ lr11xx_radio_get_gfsk_pkt_status()

    lr1110_status_t lr1110_radio_get_rx_buffer_status lr11xx_status_t lr11xx_radio_get_rx_buffer_status ( const void *  context, lr1110_radio_rx_buffer_status_tlr11xx_radio_rx_buffer_status_t rx_buffer_status 
    - + @@ -481,7 +487,7 @@

    - + @@ -505,14 +511,14 @@

    -

    ◆ lr1110_radio_get_lora_pkt_status()

    + +

    ◆ lr11xx_radio_get_lora_pkt_status()

    lr1110_status_t lr1110_radio_get_gfsk_pkt_status lr11xx_status_t lr11xx_radio_get_gfsk_pkt_status ( const void *  context, lr1110_radio_pkt_status_gfsk_tlr11xx_radio_pkt_status_gfsk_t pkt_status 
    - + @@ -520,7 +526,7 @@

    - + @@ -544,14 +550,14 @@

    -

    ◆ lr1110_radio_get_rssi_inst()

    + +

    ◆ lr11xx_radio_get_rssi_inst()

    lr1110_status_t lr1110_radio_get_lora_pkt_status lr11xx_status_t lr11xx_radio_get_lora_pkt_status ( const void *  context, lr1110_radio_pkt_status_lora_tlr11xx_radio_pkt_status_lora_t pkt_status 
    - + @@ -583,14 +589,14 @@

    -

    ◆ lr1110_radio_set_gfsk_sync_word()

    + +

    ◆ lr11xx_radio_set_gfsk_sync_word()

    lr1110_status_t lr1110_radio_get_rssi_inst lr11xx_status_t lr11xx_radio_get_rssi_inst ( const void *  context,
    - + @@ -599,7 +605,7 @@

    - + @@ -622,14 +628,14 @@

    -

    ◆ lr1110_radio_set_lora_sync_word()

    + +

    ◆ lr11xx_radio_set_lora_sync_word()

    lr1110_status_t lr1110_radio_set_gfsk_sync_word lr11xx_status_t lr11xx_radio_set_gfsk_sync_word ( const void *  context, const uint8_t gfsk_sync_word[LR1110_RADIO_GFSK_SYNC_WORD_LENGTH] gfsk_sync_word[LR11XX_RADIO_GFSK_SYNC_WORD_LENGTH] 
    - + @@ -660,14 +666,14 @@

    -

    ◆ lr1110_radio_set_lora_public_network()

    + +

    ◆ lr11xx_radio_set_lora_public_network()

    lr1110_status_t lr1110_radio_set_lora_sync_word lr11xx_status_t lr11xx_radio_set_lora_sync_word ( const void *  context,
    - + @@ -675,7 +681,7 @@

    - + @@ -696,18 +702,18 @@

    Returns
    Operation status
    -
    Warning
    This function is deprecated. Use lr1110_radio_set_lora_sync_word for chip firmware equal to or more recent than 0x303.
    +
    Warning
    This function is deprecated. Use lr11xx_radio_set_lora_sync_word for chip firmware equal to or more recent than 0x303.
    -
    -

    ◆ lr1110_radio_set_rx()

    + +

    ◆ lr11xx_radio_set_rx()

    lr1110_status_t lr1110_radio_set_lora_public_network lr11xx_status_t lr11xx_radio_set_lora_public_network ( const void *  context, const lr1110_radio_lora_network_type_t const lr11xx_radio_lora_network_type_t  network_type 
    - + @@ -726,9 +732,10 @@

    -

    Start RX operations.

    -

    This command sets the LR1110 to RX mode. The radio must have been configured before using this command with lr1110_radio_set_pkt_type

    -

    By default, the timeout parameter allows to return automatically to standby RC mode if no packets have been received after a certain amount of time. This behavior can be altered by lr1110_radio_set_rx_tx_fallback_mode and lr1110_radio_auto_tx_rx.

    +

    Start RX operations with a timeout in millisecond.

    +

    This command sets the LR11XX to RX mode. The radio must have been configured before using this command with lr11xx_radio_set_pkt_type

    +

    By default, the timeout parameter allows to return automatically to standby RC mode if no packets have been received after a certain amount of time. This behavior can be altered by lr11xx_radio_set_rx_tx_fallback_mode and lr11xx_radio_auto_tx_rx.

    +
    Remarks
    To set the radio in Rx continuous mode, the function lr11xx_radio_set_rx_with_timeout_in_rtc_step has to be called with timeout_in_rtc_step set to 0xFFFFFF
    Parameters

    lr1110_status_t lr1110_radio_set_rx lr11xx_status_t lr11xx_radio_set_rx ( const void *  context,
    @@ -737,18 +744,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type, lr1110_radio_set_rx_tx_fallback_mode
    +
    See also
    lr11xx_radio_set_pkt_type, lr11xx_radio_set_rx_tx_fallback_mode
    - -

    ◆ lr1110_radio_set_rx_with_timeout_in_rtc_step()

    + +

    ◆ lr11xx_radio_set_rx_with_timeout_in_rtc_step()

    [in]contextChip implementation context
    - + @@ -767,18 +774,18 @@

    -

    Start RX operations.

    -

    This command sets the LR1110 to RX mode. The radio must have been configured before using this command with lr1110_radio_set_pkt_type

    -

    By default, the timeout parameter allows to return automatically to standby RC mode if no packets have been received after a certain amount of time. This behavior can be altered by lr1110_radio_set_rx_tx_fallback_mode and lr1110_radio_auto_tx_rx.

    +

    Start RX operations with a timeout in RTC step.

    +

    This command sets the LR11XX to RX mode. The radio must have been configured before using this command with lr11xx_radio_set_pkt_type

    +

    By default, the timeout parameter allows to return automatically to standby RC mode if no packets have been received after a certain amount of time. This behavior can be altered by lr11xx_radio_set_rx_tx_fallback_mode and lr11xx_radio_auto_tx_rx.

    The timeout duration is obtained by: $ timeout\_duration\_ms = timeout \times \frac{1}{32.768} $

    Maximal timeout value is 0xFFFFFF, which gives a maximal timeout of 511 seconds.

    The timeout argument can also have the following special values:

    lr1110_status_t lr1110_radio_set_rx_with_timeout_in_rtc_step lr11xx_status_t lr11xx_radio_set_rx_with_timeout_in_rtc_step ( const void *  context,
    - + - +
    Special values Meaning
    0x000000 RX single: LR1110 stays in RX mode until a packet is received, then switch to standby RC mode
    0x000000 RX single: LR11XX stays in RX mode until a packet is received, then switch to standby RC mode
    0xFFFFFF RX continuous: LR1110 stays in RX mode even after reception of a packet
    0xFFFFFF RX continuous: LR11XX stays in RX mode even after reception of a packet
    Parameters
    @@ -788,18 +795,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type, lr1110_radio_set_rx_tx_fallback_mode
    +
    See also
    lr11xx_radio_set_pkt_type, lr11xx_radio_set_rx_tx_fallback_mode
    - -

    ◆ lr1110_radio_set_tx()

    + +

    ◆ lr11xx_radio_set_tx()

    - + @@ -819,8 +826,8 @@

    Start TX operations.

    -

    This command sets the LR1110 to TX mode. The radio must have been configured before using this command with lr1110_radio_set_pkt_type

    -

    By default, the timeout parameter allows to return automatically to standby RC mode if the packet has not been completely transmitted after a certain amount of time. This behavior can be altered by lr1110_radio_set_rx_tx_fallback_mode and lr1110_radio_auto_tx_rx.

    +

    This command sets the LR11XX to TX mode. The radio must have been configured before using this command with lr11xx_radio_set_pkt_type

    +

    By default, the timeout parameter allows to return automatically to standby RC mode if the packet has not been completely transmitted after a certain amount of time. This behavior can be altered by lr11xx_radio_set_rx_tx_fallback_mode and lr11xx_radio_auto_tx_rx.

    Parameters

    lr1110_status_t lr1110_radio_set_tx lr11xx_status_t lr11xx_radio_set_tx ( const void *  context,
    @@ -829,18 +836,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type, lr1110_radio_set_rx_tx_fallback_mode
    +
    See also
    lr11xx_radio_set_pkt_type, lr11xx_radio_set_rx_tx_fallback_mode
    - -

    ◆ lr1110_radio_set_tx_with_timeout_in_rtc_step()

    + +

    ◆ lr11xx_radio_set_tx_with_timeout_in_rtc_step()

    [in]contextChip implementation context
    - + @@ -860,8 +867,8 @@

    Start TX operations.

    -

    This command sets the LR1110 to TX mode. The radio must have been configured before using this command with lr1110_radio_set_pkt_type

    -

    By default, the timeout parameter allows to return automatically to standby RC mode if the packet has not been completely transmitted after a certain amount of time. This behavior can be altered by lr1110_radio_set_rx_tx_fallback_mode and lr1110_radio_auto_tx_rx.

    +

    This command sets the LR11XX to TX mode. The radio must have been configured before using this command with lr11xx_radio_set_pkt_type

    +

    By default, the timeout parameter allows to return automatically to standby RC mode if the packet has not been completely transmitted after a certain amount of time. This behavior can be altered by lr11xx_radio_set_rx_tx_fallback_mode and lr11xx_radio_auto_tx_rx.

    The timeout duration is obtained by: $ timeout\_duration\_ms = timeout \times \frac{1}{32.768} $

    Maximal value is 0xFFFFFF.

    If the timeout argument is 0, then no timeout is used.

    @@ -873,18 +880,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type, lr1110_radio_set_rx_tx_fallback_mode
    +
    See also
    lr11xx_radio_set_pkt_type, lr11xx_radio_set_rx_tx_fallback_mode
    - -

    ◆ lr1110_radio_set_rf_freq()

    + +

    ◆ lr11xx_radio_set_rf_freq()

    lr1110_status_t lr1110_radio_set_tx_with_timeout_in_rtc_step lr11xx_status_t lr11xx_radio_set_tx_with_timeout_in_rtc_step ( const void *  context,
    - + @@ -916,14 +923,14 @@

    -

    ◆ lr1110_radio_auto_tx_rx()

    + +

    ◆ lr11xx_radio_auto_tx_rx()

    lr1110_status_t lr1110_radio_set_rf_freq lr11xx_status_t lr11xx_radio_set_rf_freq ( const void *  context,
    - + @@ -937,7 +944,7 @@

    - + @@ -955,23 +962,23 @@

    Configure automatic TX after RX or automatic RX after TX.

    -

    After issuing this command, using the command SetTx will make the LR1110 doing the following:

      +

      After issuing this command, using the command SetTx will make the LR11XX doing the following:

      • Enter TX mode as usual
      • Enter configurable Intermediary mode during configurable delay
      • Enter RX mode
      -

      Similarly, after a SetRx command, the LR1110 will do the following:

        +

        Similarly, after a SetRx command, the LR11XX will do the following:

        • Enter RX mode as usual
        • Enter configurable Intermediary mode during configurable delay
        • Enter TX mode
        -

        In case delay is 0, the LR1110 does not enter Intermediary mode and directly enter the following mode.

        +

        In case delay is 0, the LR11XX does not enter Intermediary mode and directly enter the following mode.

        To disable this behavior, use this function with delay set to 0xFFFFFFFF.

        Parameters

    lr1110_status_t lr1110_radio_auto_tx_rx lr11xx_status_t lr11xx_radio_auto_tx_rx ( const void *  context, const lr1110_radio_intermediary_mode_t const lr11xx_radio_intermediary_mode_t  intermediary_mode,
    - +
    [in]contextChip implementation context
    [in]delayTime to spend in Intermediary mode expressed as steps of $\frac{1}{32.768 KHz}$ steps.
    [in]intermediary_modeThe mode the LR1110 enters after first mode completion during delay time
    [in]intermediary_modeThe mode the LR11XX enters after first mode completion during delay time
    [in]timeoutThe timeout duration of the automatic RX or TX, expressed as steps of $ \frac{1}{32.768KHz} $
    @@ -980,14 +987,14 @@

    -

    ◆ lr1110_radio_set_cad_params()

    + +

    ◆ lr11xx_radio_set_cad_params()

    - + @@ -995,7 +1002,7 @@

    - + @@ -1018,14 +1025,14 @@

    -

    ◆ lr1110_radio_set_pkt_type()

    + +

    ◆ lr11xx_radio_set_pkt_type()

    lr1110_status_t lr1110_radio_set_cad_params lr11xx_status_t lr11xx_radio_set_cad_params ( const void *  context, const lr1110_radio_cad_params_tconst lr11xx_radio_cad_params_t cad_params 
    - + @@ -1033,7 +1040,7 @@

    - + @@ -1053,18 +1060,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_get_pkt_type
    +
    See also
    lr11xx_radio_get_pkt_type
    - -

    ◆ lr1110_radio_set_gfsk_mod_params()

    + +

    ◆ lr11xx_radio_set_gfsk_mod_params()

    lr1110_status_t lr1110_radio_set_pkt_type lr11xx_status_t lr11xx_radio_set_pkt_type ( const void *  context, const lr1110_radio_pkt_type_t const lr11xx_radio_pkt_type_t  pkt_type 
    - + @@ -1072,7 +1079,7 @@

    - + @@ -1084,7 +1091,7 @@

    Set the modulation parameters for GFSK packets.

    -

    The command lr1110_radio_set_pkt_type must be called prior this one.

    +

    The command lr11xx_radio_set_pkt_type must be called prior this one.

    Parameters

    lr1110_status_t lr1110_radio_set_gfsk_mod_params lr11xx_status_t lr11xx_radio_set_gfsk_mod_params ( const void *  context, const lr1110_radio_mod_params_gfsk_tconst lr11xx_radio_mod_params_gfsk_t mod_params 
    @@ -1093,18 +1100,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type
    +
    See also
    lr11xx_radio_set_pkt_type
    - -

    ◆ lr1110_radio_set_lora_mod_params()

    + +

    ◆ lr11xx_radio_set_lora_mod_params()

    [in]contextChip implementation context
    - + @@ -1112,7 +1119,7 @@

    - + @@ -1124,7 +1131,7 @@

    Set the modulation parameters for LoRa packets.

    -

    The command lr1110_radio_set_pkt_type must be called prior this one.

    +

    The command lr11xx_radio_set_pkt_type must be called prior this one.

    Parameters

    lr1110_status_t lr1110_radio_set_lora_mod_params lr11xx_status_t lr11xx_radio_set_lora_mod_params ( const void *  context, const lr1110_radio_mod_params_lora_tconst lr11xx_radio_mod_params_lora_t mod_params 
    @@ -1133,18 +1140,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type
    +
    See also
    lr11xx_radio_set_pkt_type
    - -

    ◆ lr1110_radio_set_gfsk_pkt_params()

    + +

    ◆ lr11xx_radio_set_gfsk_pkt_params()

    [in]contextChip implementation context
    - + @@ -1152,7 +1159,7 @@

    - + @@ -1164,7 +1171,7 @@

    Set the packet parameters for GFSK packets.

    -

    The command lr1110_radio_set_pkt_type must be called prior this one.

    +

    The command lr11xx_radio_set_pkt_type must be called prior this one.

    Parameters

    lr1110_status_t lr1110_radio_set_gfsk_pkt_params lr11xx_status_t lr11xx_radio_set_gfsk_pkt_params ( const void *  context, const lr1110_radio_pkt_params_gfsk_tconst lr11xx_radio_pkt_params_gfsk_t pkt_params 
    @@ -1173,18 +1180,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type, lr1110_radio_set_gfsk_mod_params
    +
    See also
    lr11xx_radio_set_pkt_type, lr11xx_radio_set_gfsk_mod_params
    - -

    ◆ lr1110_radio_set_lora_pkt_params()

    + +

    ◆ lr11xx_radio_set_lora_pkt_params()

    [in]contextChip implementation context
    - + @@ -1192,7 +1199,7 @@

    - + @@ -1204,7 +1211,7 @@

    Set the packet parameters for LoRa packets.

    -

    The command lr1110_radio_set_pkt_type must be called prior this one.

    +

    The command lr11xx_radio_set_pkt_type must be called prior this one.

    Parameters

    lr1110_status_t lr1110_radio_set_lora_pkt_params lr11xx_status_t lr11xx_radio_set_lora_pkt_params ( const void *  context, const lr1110_radio_pkt_params_lora_tconst lr11xx_radio_pkt_params_lora_t pkt_params 
    @@ -1213,18 +1220,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type, lr1110_radio_set_lora_mod_params
    +
    See also
    lr11xx_radio_set_pkt_type, lr11xx_radio_set_lora_mod_params
    - -

    ◆ lr1110_radio_set_tx_params()

    + +

    ◆ lr11xx_radio_set_tx_params()

    [in]contextChip implementation context
    - + @@ -1238,7 +1245,7 @@

    - + @@ -1250,12 +1257,12 @@

    Set the parameters for TX power and power amplifier ramp time.

    -

    The command lr1110_radio_set_pa_cfg must be called prior calling lr1110_radio_set_tx_params.

    -

    The range of possible TX output power values depends on PA selected with lr1110_radio_set_pa_cfg :

      +

      The command lr11xx_radio_set_pa_cfg must be called prior calling lr11xx_radio_set_tx_params.

      +

      The range of possible TX output power values depends on PA selected with lr11xx_radio_set_pa_cfg :

      • for LPA: power value goes from -17dBm to +14dBm (ie. from 0xEF to 0x0E)
      • for HPA: power value goes from -9dBm to +22dBm (ie. from 0xF7 to 0x16)
      -

      Moreover, to use TX output power value higher than +10dBm, the REGPASUPPLY_VBAT supply must have been selected with lr1110_radio_set_pa_cfg.

      +

      Moreover, to use TX output power value higher than +10dBm, the REGPASUPPLY_VBAT supply must have been selected with lr11xx_radio_set_pa_cfg.

      Parameters

    lr1110_status_t lr1110_radio_set_tx_params lr11xx_status_t lr11xx_radio_set_tx_params ( const void *  context, const lr1110_radio_ramp_time_t const lr11xx_radio_ramp_time_t  ramp_time 
    @@ -1268,14 +1275,14 @@

    -

    ◆ lr1110_radio_set_pkt_address()

    + +

    ◆ lr11xx_radio_set_pkt_address()

    [in]contextChip implementation context
    - + @@ -1314,14 +1321,14 @@

    -

    ◆ lr1110_radio_set_rx_tx_fallback_mode()

    + +

    ◆ lr11xx_radio_set_rx_tx_fallback_mode()

    lr1110_status_t lr1110_radio_set_pkt_address lr11xx_status_t lr11xx_radio_set_pkt_address ( const void *  context,
    - + @@ -1329,7 +1336,7 @@

    - + @@ -1353,14 +1360,14 @@

    -

    ◆ lr1110_radio_set_rx_duty_cycle()

    + +

    ◆ lr11xx_radio_set_rx_duty_cycle()

    lr1110_status_t lr1110_radio_set_rx_tx_fallback_mode lr11xx_status_t lr11xx_radio_set_rx_tx_fallback_mode ( const void *  context, const lr1110_radio_fallback_modes_t const lr11xx_radio_fallback_modes_t  fallback_mode 
    - + @@ -1380,7 +1387,7 @@

    - + @@ -1394,18 +1401,18 @@

  • Reception: enters reception state for duration defined by rx_period
      -
    • If mode is LR1110_RADIO_RX_DUTY_CYCLE_MODE_RX: it is standard RX mode
    • -
    • If mode is LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD (only in LoRa) : it is CAD operation
    • +
    • If mode is LR11XX_RADIO_RX_DUTY_CYCLE_MODE_RX: it is standard RX mode
    • +
    • If mode is LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD (only in LoRa) : it is CAD operation
  • Depending on the over-the-air activity detection:
    • In case of positive over-the-air detection, the rx_period timeout is recomputed to the value $2 \times rx\_period + sleep\_period$
    • -
    • If no air activity is detected, the LR1110 goes back to sleep mode with retention for a duration defined by sleep_period
    • +
    • If no air activity is detected, the LR11XX goes back to sleep mode with retention for a duration defined by sleep_period
  • -
  • On wake-up, the LR1110 restarts the process with the reception state.
  • +
  • On wake-up, the LR11XX restarts the process with the reception state.
  • -
    Remarks
    If mode is configured to LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD, then the CAD configuration used in step 1. is the one set from the last call to lr1110_radio_set_cad_params.
    +
    Remarks
    If mode is configured to LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD, then the CAD configuration used in step 1. is the one set from the last call to lr11xx_radio_set_cad_params.
    Parameters

    lr1110_status_t lr1110_radio_set_rx_duty_cycle lr11xx_status_t lr11xx_radio_set_rx_duty_cycle ( const void *  context, const lr1110_radio_rx_duty_cycle_mode_t const lr11xx_radio_rx_duty_cycle_mode_t  mode 
    @@ -1416,18 +1423,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_cad_params
    +
    See also
    lr11xx_radio_set_cad_params
    - -

    ◆ lr1110_radio_set_rx_duty_cycle_with_timings_in_rtc_step()

    + +

    ◆ lr11xx_radio_set_rx_duty_cycle_with_timings_in_rtc_step()

    [in]contextChip implementation context
    - + @@ -1447,7 +1454,7 @@

    - + @@ -1461,18 +1468,18 @@

  • Reception: enters reception state for duration defined by rx_period
      -
    • If mode is LR1110_RADIO_RX_DUTY_CYCLE_MODE_RX: it is standard RX mode
    • -
    • If mode is LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD (only in LoRa) : it is CAD operation
    • +
    • If mode is LR11XX_RADIO_RX_DUTY_CYCLE_MODE_RX: it is standard RX mode
    • +
    • If mode is LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD (only in LoRa) : it is CAD operation
  • Depending on the over-the-air activity detection:
    • In case of positive over-the-air detection, the rx_period timeout is recomputed to the value $2 \times rx\_period + sleep\_period$
    • -
    • If no air activity is detected, the LR1110 goes back to sleep mode with retention for a duration defined by sleep_period
    • +
    • If no air activity is detected, the LR11XX goes back to sleep mode with retention for a duration defined by sleep_period
  • -
  • On wake-up, the LR1110 restarts the process with the reception state.
  • +
  • On wake-up, the LR11XX restarts the process with the reception state.
  • -
    Remarks
    If mode is configured to LR1110_RADIO_RX_DUTY_CYCLE_MODE_CAD, then the CAD configuration used in step 1. is the one set from the last call to lr1110_radio_set_cad_params.
    +
    Remarks
    If mode is configured to LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD, then the CAD configuration used in step 1. is the one set from the last call to lr11xx_radio_set_cad_params.
    Parameters

    lr1110_status_t lr1110_radio_set_rx_duty_cycle_with_timings_in_rtc_step lr11xx_status_t lr11xx_radio_set_rx_duty_cycle_with_timings_in_rtc_step ( const void *  context, const lr1110_radio_rx_duty_cycle_mode_t const lr11xx_radio_rx_duty_cycle_mode_t  mode 
    @@ -1483,18 +1490,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_cad_params
    +
    See also
    lr11xx_radio_set_cad_params
    - -

    ◆ lr1110_radio_set_pa_cfg()

    + +

    ◆ lr11xx_radio_set_pa_cfg()

    [in]contextChip implementation context
    - + @@ -1502,7 +1509,7 @@

    - + @@ -1514,7 +1521,7 @@

    Set the Power Amplifier configuration.

    -

    It must be called prior using lr1110_radio_set_tx_params.

    +

    It must be called prior using lr11xx_radio_set_tx_params.

    Parameters

    lr1110_status_t lr1110_radio_set_pa_cfg lr11xx_status_t lr11xx_radio_set_pa_cfg ( const void *  context, const lr1110_radio_pa_cfg_tconst lr11xx_radio_pa_cfg_t pa_cfg 
    @@ -1526,14 +1533,14 @@

    -

    ◆ lr1110_radio_stop_timeout_on_preamble()

    + +

    ◆ lr11xx_radio_stop_timeout_on_preamble()

    [in]contextChip implementation context
    - + @@ -1568,14 +1575,14 @@

    -

    ◆ lr1110_radio_set_cad()

    + +

    ◆ lr11xx_radio_set_cad()

    lr1110_status_t lr1110_radio_stop_timeout_on_preamble lr11xx_status_t lr11xx_radio_stop_timeout_on_preamble ( const void *  context,
    - + @@ -1585,7 +1592,7 @@

    Start the CAD mode.

    -

    The LoRa packet type shall be selected before this function is called. The fallback mode is configured with lr1110_radio_set_cad_params.

    +

    The LoRa packet type shall be selected before this function is called. The fallback mode is configured with lr11xx_radio_set_cad_params.

    Parameters

    lr1110_status_t lr1110_radio_set_cad lr11xx_status_t lr11xx_radio_set_cad ( const void *  context)
    @@ -1593,18 +1600,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_cad_params, lr1110_radio_set_pkt_type
    +
    See also
    lr11xx_radio_set_cad_params, lr11xx_radio_set_pkt_type
    - -

    ◆ lr1110_radio_set_tx_cw()

    + +

    ◆ lr11xx_radio_set_tx_cw()

    [in]contextChip implementation context
    - + @@ -1622,18 +1629,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_radio_set_pkt_type
    +
    See also
    lr11xx_radio_set_pkt_type
    - -

    ◆ lr1110_radio_set_tx_infinite_preamble()

    + +

    ◆ lr11xx_radio_set_tx_infinite_preamble()

    lr1110_status_t lr1110_radio_set_tx_cw lr11xx_status_t lr11xx_radio_set_tx_cw ( const void *  context)
    - + @@ -1653,14 +1660,14 @@

    -

    ◆ lr1110_radio_set_lora_sync_timeout()

    + +

    ◆ lr11xx_radio_set_lora_sync_timeout()

    lr1110_status_t lr1110_radio_set_tx_infinite_preamble lr11xx_status_t lr11xx_radio_set_tx_infinite_preamble ( const void *  context)
    - + @@ -1691,14 +1698,14 @@

    -

    ◆ lr1110_radio_set_gfsk_crc_params()

    + +

    ◆ lr11xx_radio_set_gfsk_crc_params()

    lr1110_status_t lr1110_radio_set_lora_sync_timeout lr11xx_status_t lr11xx_radio_set_lora_sync_timeout ( const void *  context,
    - + @@ -1736,14 +1743,14 @@

    -

    ◆ lr1110_radio_set_gfsk_whitening_seed()

    + +

    ◆ lr11xx_radio_set_gfsk_whitening_seed()

    lr1110_status_t lr1110_radio_set_gfsk_crc_params lr11xx_status_t lr11xx_radio_set_gfsk_crc_params ( const void *  context,
    - + @@ -1774,14 +1781,14 @@

    -

    ◆ lr1110_radio_cfg_rx_boosted()

    + +

    ◆ lr11xx_radio_cfg_rx_boosted()

    lr1110_status_t lr1110_radio_set_gfsk_whitening_seed lr11xx_status_t lr11xx_radio_set_gfsk_whitening_seed ( const void *  context,
    - + @@ -1812,14 +1819,52 @@

    -

    ◆ lr1110_radio_get_gfsk_rx_bandwidth()

    + +

    ◆ lr11xx_radio_set_rssi_calibration()

    lr1110_status_t lr1110_radio_cfg_rx_boosted lr11xx_status_t lr11xx_radio_cfg_rx_boosted ( const void *  context,
    - + + + + + + + + + + + + + + + + +
    lr1110_status_t lr1110_radio_get_gfsk_rx_bandwidth lr11xx_status_t lr11xx_radio_set_rssi_calibration (const void * context,
    const lr11xx_radio_rssi_calibration_table_trssi_cal_table 
    )
    +
    + +

    Set RSSI calibration table.

    +
    Parameters
    + + + +
    [in]contextChip implementation context
    [in]rssi_cal_tableRSSI calibration table
    +
    +
    +
    Returns
    Operation status
    + +
    +
    + +

    ◆ lr11xx_radio_get_gfsk_rx_bandwidth()

    + +
    +
    + + + @@ -1827,7 +1872,7 @@

    - + @@ -1850,22 +1895,22 @@

    -

    ◆ lr1110_radio_get_lora_time_on_air_numerator()

    + +

    ◆ lr11xx_radio_get_lora_time_on_air_numerator()

    lr11xx_status_t lr11xx_radio_get_gfsk_rx_bandwidth ( uint32_t  bw_in_hz, lr1110_radio_gfsk_bw_tlr11xx_radio_gfsk_bw_t bw_parameter 
    - + - + - + @@ -1889,16 +1934,16 @@

    -

    ◆ lr1110_radio_get_lora_bw_in_hz()

    + +

    ◆ lr11xx_radio_get_lora_bw_in_hz()

    uint32_t lr1110_radio_get_lora_time_on_air_numerator uint32_t lr11xx_radio_get_lora_time_on_air_numerator (const lr1110_radio_pkt_params_lora_tconst lr11xx_radio_pkt_params_lora_t pkt_p,
    const lr1110_radio_mod_params_lora_tconst lr11xx_radio_mod_params_lora_t mod_p 
    - + - + @@ -1916,22 +1961,22 @@

    -

    ◆ lr1110_radio_get_lora_time_on_air_in_ms()

    + +

    ◆ lr11xx_radio_get_lora_time_on_air_in_ms()

    uint32_t lr1110_radio_get_lora_bw_in_hz uint32_t lr11xx_radio_get_lora_bw_in_hz (lr1110_radio_lora_bw_t lr11xx_radio_lora_bw_t  bw)
    - + - + - + @@ -1954,16 +1999,16 @@

    -

    ◆ lr1110_radio_get_gfsk_time_on_air_numerator()

    + +

    ◆ lr11xx_radio_get_gfsk_time_on_air_numerator()

    uint32_t lr1110_radio_get_lora_time_on_air_in_ms uint32_t lr11xx_radio_get_lora_time_on_air_in_ms (const lr1110_radio_pkt_params_lora_tconst lr11xx_radio_pkt_params_lora_t pkt_p,
    const lr1110_radio_mod_params_lora_tconst lr11xx_radio_mod_params_lora_t mod_p 
    - + - + @@ -1982,22 +2027,22 @@

    -

    ◆ lr1110_radio_get_gfsk_time_on_air_in_ms()

    + +

    ◆ lr11xx_radio_get_gfsk_time_on_air_in_ms()

    uint32_t lr1110_radio_get_gfsk_time_on_air_numerator uint32_t lr11xx_radio_get_gfsk_time_on_air_numerator (const lr1110_radio_pkt_params_gfsk_tconst lr11xx_radio_pkt_params_gfsk_t pkt_p)
    - + - + - + @@ -2020,14 +2065,14 @@

    -

    ◆ lr1110_radio_convert_time_in_ms_to_rtc_step()

    + +

    ◆ lr11xx_radio_convert_time_in_ms_to_rtc_step()

    uint32_t lr1110_radio_get_gfsk_time_on_air_in_ms uint32_t lr11xx_radio_get_gfsk_time_on_air_in_ms (const lr1110_radio_pkt_params_gfsk_tconst lr11xx_radio_pkt_params_gfsk_t pkt_p,
    const lr1110_radio_mod_params_gfsk_tconst lr11xx_radio_mod_params_gfsk_t mod_p 
    - + @@ -2047,14 +2092,14 @@

    -

    ◆ lr1110_radio_get_lora_rx_info()

    + +

    ◆ lr11xx_radio_get_lora_rx_info()

    uint32_t lr1110_radio_convert_time_in_ms_to_rtc_step uint32_t lr11xx_radio_convert_time_in_ms_to_rtc_step ( uint32_t  time_in_ms)
    - + @@ -2068,7 +2113,7 @@

    - + @@ -2079,8 +2124,8 @@

    -

    Get the information from the last received LoRa packet header (if LR1110_RADIO_LORA_PKT_EXPLICIT) or the locally configured settings (if LR1110_RADIO_LORA_PKT_IMPLICIT)

    -
    Remarks
    This function can be called only if LR1110_RADIO_PKT_TYPE_LORA is selected with lr1110_radio_set_pkt_type
    +

    Get the information from the last received LoRa packet header (if LR11XX_RADIO_LORA_PKT_EXPLICIT) or the locally configured settings (if LR11XX_RADIO_LORA_PKT_IMPLICIT)

    +
    Remarks
    This function can be called only if LR11XX_RADIO_PKT_TYPE_LORA is selected with lr11xx_radio_set_pkt_type
    Parameters

    lr1110_status_t lr1110_radio_get_lora_rx_info lr11xx_status_t lr11xx_radio_get_lora_rx_info ( const void *  context, lr1110_radio_lora_cr_tlr11xx_radio_lora_cr_t cr 
    @@ -2091,6 +2136,33 @@

    Returns
    Operation status
    + + +
    +

    ◆ lr11xx_radio_apply_high_acp_workaround()

    + +
    +
    +

    [in]contextChip implementation context
    + + + + + + + +
    lr11xx_status_t lr11xx_radio_apply_high_acp_workaround (const void * context)
    +
    + +

    Apply the workaround for the high ACP limitation.

    +
    Parameters
    + + +
    [in]contextChip implementation context
    +
    +
    +
    Returns
    Operation status
    +
    diff --git a/doc/lr11xx/html/lr11xx__radio_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__radio_8h__dep__incl.map new file mode 100644 index 0000000..83982af --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio_8h__dep__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/doc/lr11xx/html/lr11xx__radio_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__radio_8h__dep__incl.md5 new file mode 100644 index 0000000..0d683bf --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio_8h__dep__incl.md5 @@ -0,0 +1 @@ +e90830ea29496a37990bfcc32fad4172 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__radio_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__radio_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..f5aa98553d52ec8d209d81f3da9c98ec1c78d824 GIT binary patch literal 8788 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 literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/lr11xx__radio_8h__incl.map b/doc/lr11xx/html/lr11xx__radio_8h__incl.map new file mode 100644 index 0000000..8f2548e --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio_8h__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__radio_8h__incl.md5 b/doc/lr11xx/html/lr11xx__radio_8h__incl.md5 new file mode 100644 index 0000000..42140a1 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio_8h__incl.md5 @@ -0,0 +1 @@ +f82f067a3ce23768215b462efa064693 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__radio_8h__incl.png b/doc/lr11xx/html/lr11xx__radio_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9c8ccf268b0f84701021ff1c8b36a32e9a5557 GIT binary patch literal 10666 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 literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/lr11xx__radio_8h_source.html b/doc/lr11xx/html/lr11xx__radio_8h_source.html new file mode 100644 index 0000000..67e4055 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio_8h_source.html @@ -0,0 +1,315 @@ + + + + + + + +lr11xx_driver: lr11xx_driver/src/lr11xx_radio.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    lr11xx_driver +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    lr11xx_radio.h
    +
    +
    +Go to the documentation of this file.
    1 
    +
    35 #ifndef LR11XX_RADIO_H
    +
    36 #define LR11XX_RADIO_H
    +
    37 
    +
    38 #ifdef __cplusplus
    +
    39 extern "C" {
    +
    40 #endif
    +
    41 
    +
    42 /*
    +
    43  * -----------------------------------------------------------------------------
    +
    44  * --- DEPENDENCIES ------------------------------------------------------------
    +
    45  */
    +
    46 
    +
    47 #include "lr11xx_radio_types.h"
    +
    48 #include "lr11xx_types.h"
    +
    49 
    +
    50 /*
    +
    51  * -----------------------------------------------------------------------------
    +
    52  * --- PUBLIC MACROS -----------------------------------------------------------
    +
    53  */
    +
    54 
    +
    55 /*
    +
    56  * -----------------------------------------------------------------------------
    +
    57  * --- PUBLIC CONSTANTS --------------------------------------------------------
    +
    58  */
    +
    59 
    +
    63 #define LR11XX_RADIO_GFSK_SYNC_WORD_LENGTH 8
    +
    64 
    +
    68 #define LR11XX_RADIO_GFSK_SYNC_WORD_DEFAULT \
    +
    69  { \
    +
    70  0x97, 0x23, 0x52, 0x25, 0x56, 0x53, 0x65, 0x64 \
    +
    71  }
    +
    72 
    +
    73 /*
    +
    74  * -----------------------------------------------------------------------------
    +
    75  * --- PUBLIC TYPES ------------------------------------------------------------
    +
    76  */
    +
    77 
    +
    78 /*
    +
    79  * -----------------------------------------------------------------------------
    +
    80  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
    +
    81  */
    +
    82 
    +
    92 lr11xx_status_t lr11xx_radio_reset_stats( const void* context );
    +
    93 
    + +
    108 
    + +
    123 
    +
    134 lr11xx_status_t lr11xx_radio_get_pkt_type( const void* context, lr11xx_radio_pkt_type_t* pkt_type );
    +
    135 
    + +
    146  lr11xx_radio_rx_buffer_status_t* rx_buffer_status );
    +
    147 
    + +
    159 
    + +
    171 
    +
    182 lr11xx_status_t lr11xx_radio_get_rssi_inst( const void* context, int8_t* rssi_in_dbm );
    +
    183 
    + +
    196  const uint8_t gfsk_sync_word[LR11XX_RADIO_GFSK_SYNC_WORD_LENGTH] );
    +
    197 
    +
    206 lr11xx_status_t lr11xx_radio_set_lora_sync_word( const void* context, const uint8_t sync_word );
    +
    207 
    + +
    222  const lr11xx_radio_lora_network_type_t network_type );
    +
    223 
    +
    244 lr11xx_status_t lr11xx_radio_set_rx( const void* context, const uint32_t timeout_in_ms );
    +
    245 
    +
    277 lr11xx_status_t lr11xx_radio_set_rx_with_timeout_in_rtc_step( const void* context, const uint32_t timeout_in_rtc_step );
    +
    278 
    +
    296 lr11xx_status_t lr11xx_radio_set_tx( const void* context, const uint32_t timeout_in_ms );
    +
    297 
    +
    322 lr11xx_status_t lr11xx_radio_set_tx_with_timeout_in_rtc_step( const void* context, const uint32_t timeout_in_rtc_step );
    +
    323 
    +
    334 lr11xx_status_t lr11xx_radio_set_rf_freq( const void* context, const uint32_t freq_in_hz );
    +
    335 
    +
    360 lr11xx_status_t lr11xx_radio_auto_tx_rx( const void* context, const uint32_t delay,
    +
    361  const lr11xx_radio_intermediary_mode_t intermediary_mode,
    +
    362  const uint32_t timeout );
    +
    363 
    +
    372 lr11xx_status_t lr11xx_radio_set_cad_params( const void* context, const lr11xx_radio_cad_params_t* cad_params );
    +
    373 
    +
    384 lr11xx_status_t lr11xx_radio_set_pkt_type( const void* context, const lr11xx_radio_pkt_type_t pkt_type );
    +
    385 
    + +
    399  const lr11xx_radio_mod_params_gfsk_t* mod_params );
    +
    400 
    + +
    414  const lr11xx_radio_mod_params_lora_t* mod_params );
    +
    415 
    + +
    429  const lr11xx_radio_pkt_params_gfsk_t* pkt_params );
    +
    430 
    + +
    444  const lr11xx_radio_pkt_params_lora_t* pkt_params );
    +
    445 
    +
    465 lr11xx_status_t lr11xx_radio_set_tx_params( const void* context, const int8_t pwr_in_dbm,
    +
    466  const lr11xx_radio_ramp_time_t ramp_time );
    +
    467 
    +
    479 lr11xx_status_t lr11xx_radio_set_pkt_address( const void* context, const uint8_t node_address,
    +
    480  const uint8_t broadcast_address );
    +
    481 
    + +
    493  const lr11xx_radio_fallback_modes_t fallback_mode );
    +
    494 
    +
    521 lr11xx_status_t lr11xx_radio_set_rx_duty_cycle( const void* context, const uint32_t rx_period_in_ms,
    +
    522  const uint32_t sleep_period_in_ms,
    + +
    524 
    + +
    552  const uint32_t rx_period_in_rtc_step,
    +
    553  const uint32_t sleep_period_in_rtc_step,
    + +
    555 
    +
    566 lr11xx_status_t lr11xx_radio_set_pa_cfg( const void* context, const lr11xx_radio_pa_cfg_t* pa_cfg );
    +
    567 
    +
    580 lr11xx_status_t lr11xx_radio_stop_timeout_on_preamble( const void* context, const bool stop_timeout_on_preamble );
    +
    581 
    +
    594 lr11xx_status_t lr11xx_radio_set_cad( const void* context );
    +
    595 
    +
    607 lr11xx_status_t lr11xx_radio_set_tx_cw( const void* context );
    +
    608 
    + +
    617 
    +
    627 lr11xx_status_t lr11xx_radio_set_lora_sync_timeout( const void* context, const uint8_t nb_symbol );
    +
    628 
    +
    638 lr11xx_status_t lr11xx_radio_set_gfsk_crc_params( const void* context, const uint32_t seed, const uint32_t polynomial );
    +
    639 
    +
    648 lr11xx_status_t lr11xx_radio_set_gfsk_whitening_seed( const void* context, const uint16_t seed );
    +
    649 
    +
    658 lr11xx_status_t lr11xx_radio_cfg_rx_boosted( const void* context, const bool enable_boost_mode );
    +
    659 
    + +
    669  const lr11xx_radio_rssi_calibration_table_t* rssi_cal_table );
    +
    670 
    + +
    680 
    + +
    692  const lr11xx_radio_mod_params_lora_t* mod_p );
    +
    693 
    + +
    702 
    + +
    712  const lr11xx_radio_mod_params_lora_t* mod_p );
    +
    713 
    + +
    725 
    + +
    735  const lr11xx_radio_mod_params_gfsk_t* mod_p );
    +
    736 
    +
    744 uint32_t lr11xx_radio_convert_time_in_ms_to_rtc_step( uint32_t time_in_ms );
    +
    745 
    +
    759 lr11xx_status_t lr11xx_radio_get_lora_rx_info( const void* context, bool* is_crc_present, lr11xx_radio_lora_cr_t* cr );
    +
    760 
    + +
    769 
    +
    770 #ifdef __cplusplus
    +
    771 }
    +
    772 #endif
    +
    773 
    +
    774 #endif // LR11XX_RADIO_H
    +
    775 
    +
    776 /* --- EOF ------------------------------------------------------------------ */
    +
    +
    uint32_t lr11xx_radio_get_gfsk_time_on_air_numerator(const lr11xx_radio_pkt_params_gfsk_t *pkt_p)
    Compute the numerator for GFSK time-on-air computation.
    Definition: lr11xx_radio.c:1069
    +
    Status of GFSK received packet.
    Definition: lr11xx_radio_types.h:406
    +
    lr11xx_status_t lr11xx_radio_get_rx_buffer_status(const void *context, lr11xx_radio_rx_buffer_status_t *rx_buffer_status)
    Get the length of last received packet, and the offset in the RX internal buffer of the first byte of...
    Definition: lr11xx_radio.c:243
    +
    lr11xx_status_t lr11xx_radio_set_rx_with_timeout_in_rtc_step(const void *context, const uint32_t timeout_in_rtc_step)
    Start RX operations with a timeout in RTC step.
    Definition: lr11xx_radio.c:390
    +
    lr11xx_radio_fallback_modes_t
    Chip mode after successfull transmission or reception.
    Definition: lr11xx_radio_types.h:98
    +
    lr11xx_status_t lr11xx_radio_set_gfsk_sync_word(const void *context, const uint8_t gfsk_sync_word[LR11XX_RADIO_GFSK_SYNC_WORD_LENGTH])
    Set the GFSK modem sync word.
    Definition: lr11xx_radio.c:331
    +
    lr11xx_radio_lora_bw_t
    LoRa Bandwidth configurations.
    Definition: lr11xx_radio_types.h:157
    +
    lr11xx_status_t lr11xx_radio_stop_timeout_on_preamble(const void *context, const bool stop_timeout_on_preamble)
    Define on which event the Rx timeout shall be stopped.
    Definition: lr11xx_radio.c:675
    +
    Modulation configuration for LoRa packet.
    Definition: lr11xx_radio_types.h:476
    +
    Packet parameter configuration for LoRa packets.
    Definition: lr11xx_radio_types.h:502
    +
    lr11xx_status_t lr11xx_radio_set_lora_pkt_params(const void *context, const lr11xx_radio_pkt_params_lora_t *pkt_params)
    Set the packet parameters for LoRa packets.
    Definition: lr11xx_radio.c:573
    +
    lr11xx_status_t lr11xx_radio_set_tx_infinite_preamble(const void *context)
    Set the device into Tx continuous preamble (modulated signal).
    Definition: lr11xx_radio.c:723
    +
    lr11xx_status_t lr11xx_radio_set_rx(const void *context, const uint32_t timeout_in_ms)
    Start RX operations with a timeout in millisecond.
    Definition: lr11xx_radio.c:383
    +
    Type definitions for LR11XX.
    +
    uint32_t lr11xx_radio_get_lora_time_on_air_numerator(const lr11xx_radio_pkt_params_lora_t *pkt_p, const lr11xx_radio_mod_params_lora_t *mod_p)
    Compute the numerator for LoRa time-on-air computation.
    Definition: lr11xx_radio.c:922
    +
    lr11xx_status_t lr11xx_radio_set_rssi_calibration(const void *context, const lr11xx_radio_rssi_calibration_table_t *rssi_cal_table)
    Set RSSI calibration table.
    Definition: lr11xx_radio.c:803
    +
    lr11xx_status_t lr11xx_radio_set_tx_params(const void *context, const int8_t pwr_in_dbm, const lr11xx_radio_ramp_time_t ramp_time)
    Set the parameters for TX power and power amplifier ramp time.
    Definition: lr11xx_radio.c:590
    +
    lr11xx_radio_pkt_type_t
    Packet type values.
    Definition: lr11xx_radio_types.h:295
    +
    RSSI calibration table.
    Definition: lr11xx_radio_types.h:537
    +
    lr11xx_status_t lr11xx_radio_get_lora_stats(const void *context, lr11xx_radio_stats_lora_t *stats)
    Get the internal statistics of the LoRa received packets.
    Definition: lr11xx_radio.c:202
    +
    uint32_t lr11xx_radio_get_gfsk_time_on_air_in_ms(const lr11xx_radio_pkt_params_gfsk_t *pkt_p, const lr11xx_radio_mod_params_gfsk_t *mod_p)
    Get the time on air in ms for GFSK transmission.
    Definition: lr11xx_radio.c:1103
    +
    Modulation configuration for GFSK packet.
    Definition: lr11xx_radio_types.h:465
    +
    Channel Activity Detection parameters.
    Definition: lr11xx_radio_types.h:392
    +
    lr11xx_status_t lr11xx_radio_get_gfsk_pkt_status(const void *context, lr11xx_radio_pkt_status_gfsk_t *pkt_status)
    Get the status of last GFSK received packet.
    Definition: lr11xx_radio.c:264
    +
    lr11xx_status_t lr11xx_radio_set_tx_cw(const void *context)
    Set the device into Tx continuous wave (RF tone).
    Definition: lr11xx_radio.c:713
    +
    lr11xx_status_t lr11xx_radio_set_rx_duty_cycle_with_timings_in_rtc_step(const void *context, const uint32_t rx_period_in_rtc_step, const uint32_t sleep_period_in_rtc_step, const lr11xx_radio_rx_duty_cycle_mode_t mode)
    Configure and start a Rx Duty Cycle operation.
    Definition: lr11xx_radio.c:640
    +
    lr11xx_status_t lr11xx_radio_get_lora_rx_info(const void *context, bool *is_crc_present, lr11xx_radio_lora_cr_t *cr)
    Get the information from the last received LoRa packet header (if LR11XX_RADIO_LORA_PKT_EXPLICIT) or ...
    Definition: lr11xx_radio.c:1118
    +
    lr11xx_status_t lr11xx_radio_set_lora_sync_word(const void *context, const uint8_t sync_word)
    Set the LoRa modem sync word.
    Definition: lr11xx_radio.c:360
    +
    lr11xx_status_t lr11xx_radio_set_cad(const void *context)
    Start the CAD mode.
    Definition: lr11xx_radio.c:687
    +
    lr11xx_radio_gfsk_bw_t
    GFSK Bandwidth configurations.
    Definition: lr11xx_radio_types.h:323
    +
    lr11xx_status_t lr11xx_radio_set_rx_duty_cycle(const void *context, const uint32_t rx_period_in_ms, const uint32_t sleep_period_in_ms, const lr11xx_radio_rx_duty_cycle_mode_t mode)
    Configure and start a Rx Duty Cycle operation.
    Definition: lr11xx_radio.c:629
    +
    uint32_t lr11xx_radio_get_lora_time_on_air_in_ms(const lr11xx_radio_pkt_params_lora_t *pkt_p, const lr11xx_radio_mod_params_lora_t *mod_p)
    Get the time on air in ms for LoRa transmission.
    Definition: lr11xx_radio.c:1060
    +
    lr11xx_status_t lr11xx_radio_set_gfsk_pkt_params(const void *context, const lr11xx_radio_pkt_params_gfsk_t *pkt_params)
    Set the packet parameters for GFSK packets.
    Definition: lr11xx_radio.c:553
    +
    lr11xx_status_t lr11xx_radio_set_pkt_address(const void *context, const uint8_t node_address, const uint8_t broadcast_address)
    Sets the Node and Broadcast address used for GFSK.
    Definition: lr11xx_radio.c:603
    +
    lr11xx_status_t lr11xx_radio_set_cad_params(const void *context, const lr11xx_radio_cad_params_t *cad_params)
    Set Channel Activity Detection configuration.
    Definition: lr11xx_radio.c:487
    +
    lr11xx_status_t lr11xx_radio_auto_tx_rx(const void *context, const uint32_t delay, const lr11xx_radio_intermediary_mode_t intermediary_mode, const uint32_t timeout)
    Configure automatic TX after RX or automatic RX after TX.
    Definition: lr11xx_radio.c:468
    +
    Length and offset of received packet.
    Definition: lr11xx_radio_types.h:434
    +
    lr11xx_status_t lr11xx_radio_set_pa_cfg(const void *context, const lr11xx_radio_pa_cfg_t *pa_cfg)
    Set the Power Amplifier configuration.
    Definition: lr11xx_radio.c:661
    +
    uint32_t lr11xx_radio_get_lora_bw_in_hz(lr11xx_radio_lora_bw_t bw)
    Get the actual value in Hertz of a given LoRa bandwidth.
    Definition: lr11xx_radio.c:1013
    +
    lr11xx_status_t lr11xx_radio_cfg_rx_boosted(const void *context, const bool enable_boost_mode)
    Configure the boost mode in reception.
    Definition: lr11xx_radio.c:792
    +
    lr11xx_status_t lr11xx_radio_set_lora_mod_params(const void *context, const lr11xx_radio_mod_params_lora_t *mod_params)
    Set the modulation parameters for LoRa packets.
    Definition: lr11xx_radio.c:537
    +
    Status of received packet.
    Definition: lr11xx_radio_types.h:424
    +
    lr11xx_status_t lr11xx_radio_set_rx_tx_fallback_mode(const void *context, const lr11xx_radio_fallback_modes_t fallback_mode)
    Alter the chip mode after successfull transmission or reception operation.
    Definition: lr11xx_radio.c:616
    +
    uint32_t lr11xx_radio_convert_time_in_ms_to_rtc_step(uint32_t time_in_ms)
    Get the number of RTC steps for a given time in millisecond.
    Definition: lr11xx_radio.c:1113
    +
    lr11xx_radio_rx_duty_cycle_mode_t
    RX Duty Cycle Modes.
    Definition: lr11xx_radio_types.h:314
    +
    lr11xx_status_t lr11xx_radio_set_gfsk_crc_params(const void *context, const uint32_t seed, const uint32_t polynomial)
    Configure the seed and the polynomial used to compute CRC in GFSK packet.
    Definition: lr11xx_radio.c:762
    +
    lr11xx_radio_intermediary_mode_t
    Values for intermediary mode.
    Definition: lr11xx_radio_types.h:191
    +
    lr11xx_status_t lr11xx_radio_get_gfsk_rx_bandwidth(uint32_t bw_in_hz, lr11xx_radio_gfsk_bw_t *bw_parameter)
    Gets the radio bw parameter for a given bandwidth in Hz.
    Definition: lr11xx_radio.c:828
    +
    GFSK packet statistic structure.
    Definition: lr11xx_radio_types.h:444
    +
    lr11xx_status_t lr11xx_radio_set_gfsk_mod_params(const void *context, const lr11xx_radio_mod_params_gfsk_t *mod_params)
    Set the modulation parameters for GFSK packets.
    Definition: lr11xx_radio.c:515
    +
    lr11xx_status_t lr11xx_radio_reset_stats(const void *context)
    Reset internal statistics of the received packets.
    Definition: lr11xx_radio.c:171
    +
    lr11xx_status_t lr11xx_radio_set_lora_sync_timeout(const void *context, const uint8_t nb_symbol)
    Configure the LoRa modem to issue a RX timeout after an exact number of symbols given in parameter if...
    Definition: lr11xx_radio.c:750
    +
    lr11xx_status_t lr11xx_radio_set_lora_public_network(const void *context, const lr11xx_radio_lora_network_type_t network_type)
    Set the LoRa modem sync word to private / public.
    Definition: lr11xx_radio.c:371
    +
    enum lr11xx_status_e lr11xx_status_t
    LR11XX status.
    +
    lr11xx_status_t lr11xx_radio_set_rf_freq(const void *context, const uint32_t freq_in_hz)
    Set the frequency for future radio operations.
    Definition: lr11xx_radio.c:454
    +
    Radio driver types for LR11XX.
    +
    LoRa packet statistic structure.
    Definition: lr11xx_radio_types.h:454
    +
    lr11xx_radio_lora_network_type_t
    LoRa network type configuration.
    Definition: lr11xx_radio_types.h:133
    +
    lr11xx_status_t lr11xx_radio_get_rssi_inst(const void *context, int8_t *rssi_in_dbm)
    Get the instantaneous RSSI.
    Definition: lr11xx_radio.c:312
    +
    lr11xx_status_t lr11xx_radio_apply_high_acp_workaround(const void *context)
    Apply the workaround for the high ACP limitation.
    Definition: lr11xx_radio.c:1138
    +
    lr11xx_status_t lr11xx_radio_set_pkt_type(const void *context, const lr11xx_radio_pkt_type_t pkt_type)
    Set the packet type.
    Definition: lr11xx_radio.c:504
    +
    lr11xx_status_t lr11xx_radio_set_tx_with_timeout_in_rtc_step(const void *context, const uint32_t timeout_in_rtc_step)
    Start TX operations.
    Definition: lr11xx_radio.c:426
    +
    lr11xx_radio_ramp_time_t
    Ramping time for PA.
    Definition: lr11xx_radio_types.h:110
    +
    lr11xx_status_t lr11xx_radio_get_lora_pkt_status(const void *context, lr11xx_radio_pkt_status_lora_t *pkt_status)
    Get the status of last LoRa received packet.
    Definition: lr11xx_radio.c:291
    +
    Configuration of Power Amplifier.
    Definition: lr11xx_radio_types.h:526
    +
    #define LR11XX_RADIO_GFSK_SYNC_WORD_LENGTH
    Length in byte of the GFSK sync word.
    Definition: lr11xx_radio.h:63
    +
    lr11xx_status_t lr11xx_radio_get_gfsk_stats(const void *context, lr11xx_radio_stats_gfsk_t *stats)
    Get the internal statistics of the GFSK received packets.
    Definition: lr11xx_radio.c:181
    +
    lr11xx_status_t lr11xx_radio_get_pkt_type(const void *context, lr11xx_radio_pkt_type_t *pkt_type)
    Get the packet type currently configured.
    Definition: lr11xx_radio.c:224
    +
    lr11xx_radio_lora_cr_t
    LoRa Coding Rate configurations.
    Definition: lr11xx_radio_types.h:176
    +
    lr11xx_status_t lr11xx_radio_set_gfsk_whitening_seed(const void *context, const uint16_t seed)
    Configure the whitening seed used in GFSK packet.
    Definition: lr11xx_radio.c:780
    +
    Packet parameter configuration for GFSK packets.
    Definition: lr11xx_radio_types.h:487
    +
    lr11xx_status_t lr11xx_radio_set_tx(const void *context, const uint32_t timeout_in_ms)
    Start TX operations.
    Definition: lr11xx_radio.c:419
    + + + + diff --git a/doc/lr1110/html/lr1110__radio__timings_8c.html b/doc/lr11xx/html/lr11xx__radio__timings_8c.html similarity index 65% rename from doc/lr1110/html/lr1110__radio__timings_8c.html rename to doc/lr11xx/html/lr11xx__radio__timings_8c.html index 3d9b9f0..d4ff2b4 100644 --- a/doc/lr1110/html/lr1110__radio__timings_8c.html +++ b/doc/lr11xx/html/lr11xx__radio__timings_8c.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_radio_timings.c File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_radio_timings.c File Reference @@ -21,7 +21,7 @@ -
    lr1110_driver +
    lr11xx_driver
    @@ -61,7 +61,7 @@
    @@ -69,60 +69,60 @@ Macros | Functions
    -
    lr1110_radio_timings.c File Reference
    +
    lr11xx_radio_timings.c File Reference
    -

    LR1110 timing helper functions implementation. +

    LR11XX timing helper functions implementation. More...

    -
    #include "lr1110_radio_timings.h"
    -#include "lr1110_radio.h"
    +
    #include "lr11xx_radio_timings.h"
    +#include "lr11xx_radio.h"
    -Include dependency graph for lr1110_radio_timings.c:
    +Include dependency graph for lr11xx_radio_timings.c:
    -
    - - - - - +
    + + + + + - +
    +#define  +#define 

    Macros

    -#define RX_DONE_IRQ_PROCESSING_TIME_IN_US   74
    RX_DONE_IRQ_PROCESSING_TIME_IN_US   74
     Time in microsecond taken by the chip to process the Rx done interrupt.
     
    -#define TX_DONE_IRQ_PROCESSING_TIME_IN_US   111
    TX_DONE_IRQ_PROCESSING_TIME_IN_US   111
     Time in microsecond taken by the chip to process the Tx done interrupt.
     
    - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +

    Functions

    static uint32_t lr1110_radio_timings_get_pa_ramp_time_in_us (const lr1110_radio_ramp_time_t ramp_time)
     Get the power amplifier ramp time for a given power amplifier ramp time parameter. More...
     
    static uint32_t lr1110_radio_timings_get_lora_rx_input_delay_in_us (lr1110_radio_lora_bw_t bw)
     Get the LoRa reception input delay. More...
     
    static uint32_t lr1110_radio_timings_get_lora_symb_time_in_us (const lr1110_radio_lora_sf_t sf, const lr1110_radio_lora_bw_t bw)
     Get the LoRa symbol time. More...
     
    uint32_t lr1110_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us (const lr1110_radio_mod_params_lora_t *mod_params)
     Get the time between the last bit sent (on Tx side) and the Rx done event (on Rx side) More...
     
    uint32_t lr1110_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us (const lr1110_radio_ramp_time_t ramp_time)
     Get the time between the last bit sent and the Tx done event. More...
     
    static uint32_t lr11xx_radio_timings_get_pa_ramp_time_in_us (const lr11xx_radio_ramp_time_t ramp_time)
     Get the power amplifier ramp time for a given power amplifier ramp time parameter. More...
     
    static uint32_t lr11xx_radio_timings_get_lora_rx_input_delay_in_us (lr11xx_radio_lora_bw_t bw)
     Get the LoRa reception input delay. More...
     
    static uint32_t lr11xx_radio_timings_get_lora_symb_time_in_us (const lr11xx_radio_lora_sf_t sf, const lr11xx_radio_lora_bw_t bw)
     Get the LoRa symbol time. More...
     
    uint32_t lr11xx_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us (const lr11xx_radio_mod_params_lora_t *mod_params)
     Get the time between the last bit sent (on Tx side) and the Rx done event (on Rx side) More...
     
    uint32_t lr11xx_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us (const lr11xx_radio_ramp_time_t ramp_time)
     Get the time between the last bit sent and the Tx done event. More...
     

    Detailed Description

    -

    LR1110 timing helper functions implementation.

    +

    LR11XX timing helper functions implementation.

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • @@ -131,8 +131,8 @@

    NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    Function Documentation

    - -

    ◆ lr1110_radio_timings_get_pa_ramp_time_in_us()

    + +

    ◆ lr11xx_radio_timings_get_pa_ramp_time_in_us()

    @@ -141,9 +141,9 @@

    - + - + @@ -166,8 +166,8 @@

    -

    ◆ lr1110_radio_timings_get_lora_rx_input_delay_in_us()

    + +

    ◆ lr11xx_radio_timings_get_lora_rx_input_delay_in_us()

    @@ -176,9 +176,9 @@

    static uint32_t lr1110_radio_timings_get_pa_ramp_time_in_us static uint32_t lr11xx_radio_timings_get_pa_ramp_time_in_us (const lr1110_radio_ramp_time_t const lr11xx_radio_ramp_time_t  ramp_time)
    - + - + @@ -201,8 +201,8 @@

    -

    ◆ lr1110_radio_timings_get_lora_symb_time_in_us()

    + +

    ◆ lr11xx_radio_timings_get_lora_symb_time_in_us()

    @@ -211,15 +211,15 @@

    static uint32_t lr1110_radio_timings_get_lora_rx_input_delay_in_us static uint32_t lr11xx_radio_timings_get_lora_rx_input_delay_in_us (lr1110_radio_lora_bw_t lr11xx_radio_lora_bw_t  bw)
    - + - + - + @@ -247,16 +247,16 @@

    -

    ◆ lr1110_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us()

    + +

    ◆ lr11xx_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us()

    static uint32_t lr1110_radio_timings_get_lora_symb_time_in_us static uint32_t lr11xx_radio_timings_get_lora_symb_time_in_us (const lr1110_radio_lora_sf_t const lr11xx_radio_lora_sf_t  sf,
    const lr1110_radio_lora_bw_t const lr11xx_radio_lora_bw_t  bw 
    - + - + @@ -274,16 +274,16 @@

    -

    ◆ lr1110_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us()

    + +

    ◆ lr11xx_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us()

    uint32_t lr1110_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us uint32_t lr11xx_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us (const lr1110_radio_mod_params_lora_tconst lr11xx_radio_mod_params_lora_t mod_params)
    - + - + diff --git a/doc/lr11xx/html/lr11xx__radio__timings_8c__incl.map b/doc/lr11xx/html/lr11xx__radio__timings_8c__incl.map new file mode 100644 index 0000000..824cd95 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio__timings_8c__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__radio__timings_8c__incl.md5 b/doc/lr11xx/html/lr11xx__radio__timings_8c__incl.md5 new file mode 100644 index 0000000..3341ba9 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio__timings_8c__incl.md5 @@ -0,0 +1 @@ +06e05a1bed55f8a0d304465b8f4e5c04 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__radio__timings_8c__incl.png b/doc/lr11xx/html/lr11xx__radio__timings_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..5ddf227a5ece9fee215bd49123f5a2d809130709 GIT binary patch literal 13621 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 K%2Z34h5Qc=ma^jj literal 0 HcmV?d00001 diff --git a/doc/lr1110/html/lr1110__radio__timings_8h.html b/doc/lr11xx/html/lr11xx__radio__timings_8h.html similarity index 68% rename from doc/lr1110/html/lr1110__radio__timings_8h.html rename to doc/lr11xx/html/lr11xx__radio__timings_8h.html index 0f0e277..c5c50ef 100644 --- a/doc/lr1110/html/lr1110__radio__timings_8h.html +++ b/doc/lr11xx/html/lr11xx__radio__timings_8h.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_radio_timings.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_radio_timings.h File Reference @@ -21,7 +21,7 @@ @@ -61,27 +61,27 @@
    -
    lr1110_radio_timings.h File Reference
    +
    lr11xx_radio_timings.h File Reference
    -

    LR1110 timing helper functions definition. +

    LR11XX timing helper functions definition. More...

    -
    #include "lr1110_radio_types.h"
    +
    -Include dependency graph for lr1110_radio_timings.h:
    +Include dependency graph for lr11xx_radio_timings.h:
    -
    - - - +
    + + + @@ -89,26 +89,26 @@
    This graph shows which files directly or indirectly include this file:
    -
    - - - +
    + + +
    -

    Go to the source code of this file.

    +

    Go to the source code of this file.

    uint32_t lr1110_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us uint32_t lr11xx_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us (const lr1110_radio_ramp_time_t const lr11xx_radio_ramp_time_t  ramp_time)
    -
    lr1110_driver +
    lr11xx_driver
    - - - - - - + + + + + +

    Functions

    uint32_t lr1110_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us (const lr1110_radio_mod_params_lora_t *mod_params)
     Get the time between the last bit sent (on Tx side) and the Rx done event (on Rx side) More...
     
    uint32_t lr1110_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us (const lr1110_radio_ramp_time_t ramp_time)
     Get the time between the last bit sent and the Tx done event. More...
     
    uint32_t lr11xx_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us (const lr11xx_radio_mod_params_lora_t *mod_params)
     Get the time between the last bit sent (on Tx side) and the Rx done event (on Rx side) More...
     
    uint32_t lr11xx_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us (const lr11xx_radio_ramp_time_t ramp_time)
     Get the time between the last bit sent and the Tx done event. More...
     

    Detailed Description

    -

    LR1110 timing helper functions definition.

    +

    LR11XX timing helper functions definition.

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • @@ -117,16 +117,16 @@

    NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    Function Documentation

    - -

    ◆ lr1110_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us()

    + +

    ◆ lr11xx_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us()

    - + - + @@ -144,16 +144,16 @@

    -

    ◆ lr1110_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us()

    + +

    ◆ lr11xx_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us()

    uint32_t lr1110_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us uint32_t lr11xx_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us (const lr1110_radio_mod_params_lora_tconst lr11xx_radio_mod_params_lora_t mod_params)
    - + - + diff --git a/doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.map new file mode 100644 index 0000000..c9d4b0a --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.md5 new file mode 100644 index 0000000..1c4742e --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.md5 @@ -0,0 +1 @@ +0e92d2e48268ca932321d0c71a63dcde \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__radio__timings_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..2d92d10212d39af9e6e6c885b970ce977097d54b GIT binary patch literal 6022 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 literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/lr11xx__radio__timings_8h__incl.map b/doc/lr11xx/html/lr11xx__radio__timings_8h__incl.map new file mode 100644 index 0000000..ab01b29 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio__timings_8h__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/doc/lr11xx/html/lr11xx__radio__timings_8h__incl.md5 b/doc/lr11xx/html/lr11xx__radio__timings_8h__incl.md5 new file mode 100644 index 0000000..7ef6733 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio__timings_8h__incl.md5 @@ -0,0 +1 @@ +037ac1b648c718436426981ceb0234b8 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__radio__timings_8h__incl.png b/doc/lr11xx/html/lr11xx__radio__timings_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..4a802db4083eba4a977010300a7bce34ae576fb4 GIT binary patch literal 8637 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 -lr1110_driver: lr1110_driver/src/lr1110_radio_timings.h Source File +lr11xx_driver: lr11xx_driver/src/lr11xx_radio_timings.h Source File @@ -21,7 +21,7 @@ @@ -61,17 +61,17 @@
    -
    lr1110_radio_timings.h
    +
    lr11xx_radio_timings.h
    -Go to the documentation of this file.
    1 
    -
    35 #ifndef LR1110_RADIO_TIMINGS_H
    -
    36 #define LR1110_RADIO_TIMINGS_H
    +Go to the documentation of this file.
    1 
    +
    35 #ifndef LR11XX_RADIO_TIMINGS_H
    +
    36 #define LR11XX_RADIO_TIMINGS_H
    37 
    38 #ifdef __cplusplus
    39 extern "C" {
    @@ -82,7 +82,7 @@
    44  * --- DEPENDENCIES ------------------------------------------------------------
    45  */
    46 
    -
    47 #include "lr1110_radio_types.h"
    +
    47 #include "lr11xx_radio_types.h"
    48 
    49 /*
    50  * -----------------------------------------------------------------------------
    @@ -104,25 +104,25 @@
    66  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
    67  */
    68 
    - -
    77  const lr1110_radio_mod_params_lora_t* mod_params );
    + +
    77  const lr11xx_radio_mod_params_lora_t* mod_params );
    78 
    - -
    87  const lr1110_radio_ramp_time_t ramp_time );
    + +
    87  const lr11xx_radio_ramp_time_t ramp_time );
    88 
    89 #ifdef __cplusplus
    90 }
    91 #endif
    92 
    -
    93 #endif // LR1110_RADIO_TIMINGS_H
    +
    93 #endif // LR11XX_RADIO_TIMINGS_H
    94 
    95 /* --- EOF ------------------------------------------------------------------ */
    -
    Radio driver types for LR1110.
    -
    lr1110_radio_ramp_time_t
    Ramping time for PA.
    Definition: lr1110_radio_types.h:110
    -
    uint32_t lr1110_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us(const lr1110_radio_ramp_time_t ramp_time)
    Get the time between the last bit sent and the Tx done event.
    Definition: lr1110_radio_timings.c:120
    -
    uint32_t lr1110_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us(const lr1110_radio_mod_params_lora_t *mod_params)
    Get the time between the last bit sent (on Tx side) and the Rx done event (on Rx side)
    Definition: lr1110_radio_timings.c:112
    -
    Modulation configuration for LoRa packet.
    Definition: lr1110_radio_types.h:469
    +
    uint32_t lr11xx_radio_timings_get_delay_between_last_bit_sent_and_rx_done_in_us(const lr11xx_radio_mod_params_lora_t *mod_params)
    Get the time between the last bit sent (on Tx side) and the Rx done event (on Rx side)
    Definition: lr11xx_radio_timings.c:112
    +
    Modulation configuration for LoRa packet.
    Definition: lr11xx_radio_types.h:476
    +
    uint32_t lr11xx_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us(const lr11xx_radio_ramp_time_t ramp_time)
    Get the time between the last bit sent and the Tx done event.
    Definition: lr11xx_radio_timings.c:120
    +
    Radio driver types for LR11XX.
    +
    lr11xx_radio_ramp_time_t
    Ramping time for PA.
    Definition: lr11xx_radio_types.h:110
    uint32_t lr1110_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us uint32_t lr11xx_radio_timings_get_delay_between_last_bit_sent_and_tx_done_in_us (const lr1110_radio_ramp_time_t const lr11xx_radio_ramp_time_t  ramp_time)
    -
    lr1110_driver +
    lr11xx_driver
    + + + + + +
    +
    lr11xx_driver +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    lr11xx_radio_types.h File Reference
    +
    +
    + +

    Radio driver types for LR11XX. +More...

    +
    #include <stdbool.h>
    +#include <stdint.h>
    +
    +Include dependency graph for lr11xx_radio_types.h:
    +
    +
    + + + + + +
    +
    +This graph shows which files directly or indirectly include this file:
    +
    +
    + + + + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Data Structures

    struct  lr11xx_radio_cad_params_s
     Channel Activity Detection parameters. More...
     
    struct  lr11xx_radio_pkt_status_gfsk_s
     Status of GFSK received packet. More...
     
    struct  lr11xx_radio_pkt_status_lora_s
     Status of received packet. More...
     
    struct  lr11xx_radio_rx_buffer_status_s
     Length and offset of received packet. More...
     
    struct  lr11xx_radio_stats_gfsk_s
     GFSK packet statistic structure. More...
     
    struct  lr11xx_radio_stats_lora_s
     LoRa packet statistic structure. More...
     
    struct  lr11xx_radio_mod_params_gfsk_s
     Modulation configuration for GFSK packet. More...
     
    struct  lr11xx_radio_mod_params_lora_s
     Modulation configuration for LoRa packet. More...
     
    struct  lr11xx_radio_pkt_params_gfsk_s
     Packet parameter configuration for GFSK packets. More...
     
    struct  lr11xx_radio_pkt_params_lora_s
     Packet parameter configuration for LoRa packets. More...
     
    struct  lr11xx_radio_pa_cfg_s
     Configuration of Power Amplifier. More...
     
    struct  lr11xx_radio_rssi_calibration_table_s
     RSSI calibration table. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    typedef struct lr11xx_radio_cad_params_s lr11xx_radio_cad_params_t
     Channel Activity Detection parameters. More...
     
    +typedef struct lr11xx_radio_pkt_status_gfsk_s lr11xx_radio_pkt_status_gfsk_t
     Status of GFSK received packet.
     
    +typedef struct lr11xx_radio_pkt_status_lora_s lr11xx_radio_pkt_status_lora_t
     Status of received packet.
     
    +typedef struct lr11xx_radio_rx_buffer_status_s lr11xx_radio_rx_buffer_status_t
     Length and offset of received packet.
     
    +typedef struct lr11xx_radio_stats_gfsk_s lr11xx_radio_stats_gfsk_t
     GFSK packet statistic structure.
     
    +typedef struct lr11xx_radio_stats_lora_s lr11xx_radio_stats_lora_t
     LoRa packet statistic structure.
     
    +typedef struct lr11xx_radio_mod_params_gfsk_s lr11xx_radio_mod_params_gfsk_t
     Modulation configuration for GFSK packet.
     
    +typedef struct lr11xx_radio_mod_params_lora_s lr11xx_radio_mod_params_lora_t
     Modulation configuration for LoRa packet.
     
    +typedef struct lr11xx_radio_pkt_params_gfsk_s lr11xx_radio_pkt_params_gfsk_t
     Packet parameter configuration for GFSK packets.
     
    +typedef struct lr11xx_radio_pkt_params_lora_s lr11xx_radio_pkt_params_lora_t
     Packet parameter configuration for LoRa packets.
     
    typedef struct lr11xx_radio_pa_cfg_s lr11xx_radio_pa_cfg_t
     Configuration of Power Amplifier. More...
     
    +typedef struct lr11xx_radio_rssi_calibration_table_s lr11xx_radio_rssi_calibration_table_t
     RSSI calibration table.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Enumerations

    enum  lr11xx_radio_pa_selection_t { LR11XX_RADIO_PA_SEL_LP = 0x00, +LR11XX_RADIO_PA_SEL_HP = 0x01, +LR11XX_RADIO_PA_SEL_HF = 0x02 + }
     Power Amplifier Selection values. More...
     
    enum  lr11xx_radio_gfsk_address_filtering_t { LR11XX_RADIO_GFSK_ADDRESS_FILTERING_DISABLE = 0x00, +LR11XX_RADIO_GFSK_ADDRESS_FILTERING_NODE_ADDRESS = 0x01, +LR11XX_RADIO_GFSK_ADDRESS_FILTERING_NODE_AND_BROADCAST_ADDRESSES + }
     GFSK Address Filtering configurations. More...
     
    enum  lr11xx_radio_fallback_modes_t { LR11XX_RADIO_FALLBACK_STDBY_RC = 0x01, +LR11XX_RADIO_FALLBACK_STDBY_XOSC = 0x02, +LR11XX_RADIO_FALLBACK_FS = 0x03 + }
     Chip mode after successfull transmission or reception. More...
     
    enum  lr11xx_radio_ramp_time_t {
    +  LR11XX_RADIO_RAMP_16_US = 0x00, +LR11XX_RADIO_RAMP_32_US = 0x01, +LR11XX_RADIO_RAMP_48_US = 0x02, +LR11XX_RADIO_RAMP_64_US = 0x03, +
    +  LR11XX_RADIO_RAMP_80_US = 0x04, +LR11XX_RADIO_RAMP_96_US = 0x05, +LR11XX_RADIO_RAMP_112_US = 0x06, +LR11XX_RADIO_RAMP_128_US = 0x07, +
    +  LR11XX_RADIO_RAMP_144_US = 0x08, +LR11XX_RADIO_RAMP_160_US = 0x09, +LR11XX_RADIO_RAMP_176_US = 0x0A, +LR11XX_RADIO_RAMP_192_US = 0x0B, +
    +  LR11XX_RADIO_RAMP_208_US = 0x0C, +LR11XX_RADIO_RAMP_240_US = 0x0D, +LR11XX_RADIO_RAMP_272_US = 0x0E, +LR11XX_RADIO_RAMP_304_US = 0x0F +
    + }
     Ramping time for PA. More...
     
    enum  lr11xx_radio_lora_network_type_t { LR11XX_RADIO_LORA_NETWORK_PRIVATE = 0x00, +LR11XX_RADIO_LORA_NETWORK_PUBLIC = 0x01 + }
     LoRa network type configuration. More...
     
    enum  lr11xx_radio_lora_sf_t {
    +  LR11XX_RADIO_LORA_SF5 = 0x05, +LR11XX_RADIO_LORA_SF6 = 0x06, +LR11XX_RADIO_LORA_SF7 = 0x07, +LR11XX_RADIO_LORA_SF8 = 0x08, +
    +  LR11XX_RADIO_LORA_SF9 = 0x09, +LR11XX_RADIO_LORA_SF10 = 0x0A, +LR11XX_RADIO_LORA_SF11 = 0x0B, +LR11XX_RADIO_LORA_SF12 = 0x0C +
    + }
     LoRa Spreading Factor configurations. More...
     
    enum  lr11xx_radio_lora_bw_t {
    +  LR11XX_RADIO_LORA_BW_10 = 0x08, +LR11XX_RADIO_LORA_BW_15 = 0x01, +LR11XX_RADIO_LORA_BW_20 = 0x09, +LR11XX_RADIO_LORA_BW_31 = 0x02, +
    +  LR11XX_RADIO_LORA_BW_41 = 0x0A, +LR11XX_RADIO_LORA_BW_62 = 0x03, +LR11XX_RADIO_LORA_BW_125 = 0x04, +LR11XX_RADIO_LORA_BW_250 = 0x05, +
    +  LR11XX_RADIO_LORA_BW_500 = 0x06, +LR11XX_RADIO_LORA_BW_200 = 0x0D, +LR11XX_RADIO_LORA_BW_400 = 0x0E, +LR11XX_RADIO_LORA_BW_800 = 0x0F +
    + }
     LoRa Bandwidth configurations. More...
     
    enum  lr11xx_radio_lora_cr_t {
    +  LR11XX_RADIO_LORA_NO_CR = 0x00, +LR11XX_RADIO_LORA_CR_4_5 = 0x01, +LR11XX_RADIO_LORA_CR_4_6 = 0x02, +LR11XX_RADIO_LORA_CR_4_7 = 0x03, +
    +  LR11XX_RADIO_LORA_CR_4_8 = 0x04, +LR11XX_RADIO_LORA_CR_LI_4_5 = 0x05, +LR11XX_RADIO_LORA_CR_LI_4_6 = 0x06, +LR11XX_RADIO_LORA_CR_LI_4_8 = 0x07 +
    + }
     LoRa Coding Rate configurations. More...
     
    enum  lr11xx_radio_intermediary_mode_t { LR11XX_RADIO_MODE_SLEEP = 0x00, +LR11XX_RADIO_MODE_STANDBY_RC = 0x01, +LR11XX_RADIO_MODE_STANDBY_XOSC = 0x02, +LR11XX_RADIO_MODE_FS = 0x03 + }
     Values for intermediary mode. More...
     
    enum  lr11xx_radio_gfsk_crc_type_t {
    +  LR11XX_RADIO_GFSK_CRC_OFF = 0x01, +LR11XX_RADIO_GFSK_CRC_1_BYTE = 0x00, +LR11XX_RADIO_GFSK_CRC_2_BYTES = 0x02, +LR11XX_RADIO_GFSK_CRC_1_BYTE_INV = 0x04, +
    +  LR11XX_RADIO_GFSK_CRC_2_BYTES_INV = 0x06 +
    + }
     GFSK Cyclic Redundancy Check configurations. More...
     
    enum  lr11xx_radio_gfsk_dc_free_t { LR11XX_RADIO_GFSK_DC_FREE_OFF = 0x00, +LR11XX_RADIO_GFSK_DC_FREE_WHITENING = 0x01, +LR11XX_RADIO_GFSK_DC_FREE_WHITENING_SX128X_COMP = 0x03 + }
     GFSK data whitening configurations. More...
     
    enum  lr11xx_radio_gfsk_pkt_len_modes_t { LR11XX_RADIO_GFSK_PKT_FIX_LEN = 0x00, +LR11XX_RADIO_GFSK_PKT_VAR_LEN = 0x01, +LR11XX_RADIO_GFSK_PKT_VAR_LEN_SX128X_COMP + }
     GFSK Header Type configurations. More...
     
    enum  lr11xx_radio_gfsk_preamble_detector_t {
    +  LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_OFF = 0x00, +LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_8BITS = 0x04, +LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_16BITS = 0x05, +LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_24BITS = 0x06, +
    +  LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_32BITS = 0x07 +
    + }
     GFSK Preamble Detector Length configurations. More...
     
    enum  lr11xx_radio_lora_crc_t { LR11XX_RADIO_LORA_CRC_OFF = 0x00, +LR11XX_RADIO_LORA_CRC_ON = 0x01 + }
     LoRa Cyclic Redundancy Check configurations. More...
     
    enum  lr11xx_radio_lora_pkt_len_modes_t { LR11XX_RADIO_LORA_PKT_EXPLICIT = 0x00, +LR11XX_RADIO_LORA_PKT_IMPLICIT = 0x01 + }
     LoRa Header type configurations. More...
     
    enum  lr11xx_radio_lora_iq_t { LR11XX_RADIO_LORA_IQ_STANDARD = 0x00, +LR11XX_RADIO_LORA_IQ_INVERTED = 0x01 + }
     LoRa IQ mode configurations. More...
     
    enum  lr11xx_radio_pkt_type_t { LR11XX_RADIO_PKT_NONE = 0x00, +LR11XX_RADIO_PKT_TYPE_GFSK = 0x01, +LR11XX_RADIO_PKT_TYPE_LORA = 0x02 + }
     Packet type values. More...
     
    enum  lr11xx_radio_pa_reg_supply_t { LR11XX_RADIO_PA_REG_SUPPLY_VREG = 0x00, +LR11XX_RADIO_PA_REG_SUPPLY_VBAT = 0x01 + }
     Select power amplifier supply source. More...
     
    enum  lr11xx_radio_rx_duty_cycle_mode_t { LR11XX_RADIO_RX_DUTY_CYCLE_MODE_RX = 0x00, +LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD = 0x01 + }
     RX Duty Cycle Modes. More...
     
    enum  lr11xx_radio_gfsk_bw_t {
    +  LR11XX_RADIO_GFSK_BW_4800 = 0x1F, +LR11XX_RADIO_GFSK_BW_5800 = 0x17, +LR11XX_RADIO_GFSK_BW_7300 = 0x0F, +LR11XX_RADIO_GFSK_BW_9700 = 0x1E, +
    +  LR11XX_RADIO_GFSK_BW_11700 = 0x16, +LR11XX_RADIO_GFSK_BW_14600 = 0x0E, +LR11XX_RADIO_GFSK_BW_19500 = 0x1D, +LR11XX_RADIO_GFSK_BW_23400 = 0x15, +
    +  LR11XX_RADIO_GFSK_BW_29300 = 0x0D, +LR11XX_RADIO_GFSK_BW_39000 = 0x1C, +LR11XX_RADIO_GFSK_BW_46900 = 0x14, +LR11XX_RADIO_GFSK_BW_58600 = 0x0C, +
    +  LR11XX_RADIO_GFSK_BW_78200 = 0x1B, +LR11XX_RADIO_GFSK_BW_93800 = 0x13, +LR11XX_RADIO_GFSK_BW_117300 = 0x0B, +LR11XX_RADIO_GFSK_BW_156200 = 0x1A, +
    +  LR11XX_RADIO_GFSK_BW_187200 = 0x12, +LR11XX_RADIO_GFSK_BW_234300 = 0x0A, +LR11XX_RADIO_GFSK_BW_312000 = 0x19, +LR11XX_RADIO_GFSK_BW_373600 = 0x11, +
    +  LR11XX_RADIO_GFSK_BW_467000 = 0x09 +
    + }
     GFSK Bandwidth configurations. More...
     
    enum  lr11xx_radio_cad_exit_mode_t { LR11XX_RADIO_CAD_EXIT_MODE_STANDBYRC = 0x00, +LR11XX_RADIO_CAD_EXIT_MODE_RX = 0x01, +LR11XX_RADIO_CAD_EXIT_MODE_TX = 0x10 + }
     Possible automatic actions when Channel Activity Detection operations terminate. More...
     
    enum  lr11xx_radio_gfsk_pulse_shape_t {
    +  LR11XX_RADIO_GFSK_PULSE_SHAPE_OFF = 0x00, +LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_03 = 0x08, +LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_05 = 0x09, +LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_07 = 0x0A, +
    +  LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_1 = 0x0B +
    + }
     Pulse shape configurations. More...
     
    +

    Detailed Description

    +

    Radio driver types for LR11XX.

    +

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    +

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

      +
    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • +
    • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    • +
    • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    • +
    +

    NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    +

    Typedef Documentation

    + +

    ◆ lr11xx_radio_cad_params_t

    + +
    +
    + +

    Channel Activity Detection parameters.

    +

    Parameters detPeak and detMin are to be used for tuning the sensitivity of Channel Activity Detection. It depends on Spreading Factor, Bandwidth and symbolNum.

    +

    For detPeak, the 5 MSBits are encoding the integer part, the 3 LSBits are encoding 1/8 of the decimal part. For instance, $detPeak = 50$ (= 0x32) leads to a ratio being $6 + 2 * 1/8 = 6.25$.

    +

    detMin is unit free and represents the ratio between the minimal power of a correlation peak and measurement gain that can be considered as a peak detection. It helps to avoid detection on noise. Authorized values a from 0 to 181.

    + +
    +
    + +

    ◆ lr11xx_radio_pa_cfg_t

    + +
    +
    + + + + +
    typedef struct lr11xx_radio_pa_cfg_s lr11xx_radio_pa_cfg_t
    +
    + +

    Configuration of Power Amplifier.

    +

    pa_duty_cycle controls the duty cycle of Power Amplifier according to: $ dutycycle = 0.2 + 0.04 \times pa_duty_cycle $ It can be used to adapt the TX multi-band operation using a single-matching network.

    +

    The allowed duty cycle values for LPA are from 0.2 to 0.48 (by step of 0.04). Therefore possible values for pa_duty_cycle go from 0 to 7.

    +

    The allowed duty cycle values for HPA go from 0.2 to 0.36 (by step of 0.04). Therefore in this case, the possible values for pa_duty_cycle go from 0 to 4.

    +

    pa_hp_sel controls the number of slices for HPA according to: $ \#slices = pa_hp_sel + 1 $

    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ lr11xx_radio_pa_selection_t

    + +
    +
    + + + + +
    enum lr11xx_radio_pa_selection_t
    +
    + +

    Power Amplifier Selection values.

    +
      +
    • Low-power Power Amplifier can reach up to 14dBm
    • +
    • High-power Power Amplifier can reach up to 22 dBm
    • +
    + + + + +
    Enumerator
    LR11XX_RADIO_PA_SEL_LP 

    Low-power Power Amplifier.

    +
    LR11XX_RADIO_PA_SEL_HP 

    High-power Power Amplifier.

    +
    LR11XX_RADIO_PA_SEL_HF 

    High-frequency Power Amplifier.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_gfsk_address_filtering_t

    + +
    +
    + +

    GFSK Address Filtering configurations.

    +

    If Address Filtering is enabled but a wrong address is received, therefore the reception is aborted and the address error flag of packet status is set.

    + + + + +
    Enumerator
    LR11XX_RADIO_GFSK_ADDRESS_FILTERING_DISABLE 

    Filter deactivated.

    +
    LR11XX_RADIO_GFSK_ADDRESS_FILTERING_NODE_ADDRESS 

    Filter on Node Address.

    +
    LR11XX_RADIO_GFSK_ADDRESS_FILTERING_NODE_AND_BROADCAST_ADDRESSES 

    Filtering on Node and Broadcast addresses.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_fallback_modes_t

    + +
    +
    + +

    Chip mode after successfull transmission or reception.

    +

    Unused for RX duty cycle and AutoTxRx operations

    + + + + +
    Enumerator
    LR11XX_RADIO_FALLBACK_STDBY_RC 

    Standby RC (Default)

    +
    LR11XX_RADIO_FALLBACK_STDBY_XOSC 

    Standby XOSC.

    +
    LR11XX_RADIO_FALLBACK_FS 

    FS.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_ramp_time_t

    + +
    +
    + + + + +
    enum lr11xx_radio_ramp_time_t
    +
    + +

    Ramping time for PA.

    +

    This parameter is the ramping time of the PA. A high value improves spectral quality.

    + + + + + + + + + + + + + + + + + +
    Enumerator
    LR11XX_RADIO_RAMP_16_US 

    16 us Ramp Time

    +
    LR11XX_RADIO_RAMP_32_US 

    32 us Ramp Time

    +
    LR11XX_RADIO_RAMP_48_US 

    48 us Ramp Time (Default)

    +
    LR11XX_RADIO_RAMP_64_US 

    64 us Ramp Time

    +
    LR11XX_RADIO_RAMP_80_US 

    80 us Ramp Time

    +
    LR11XX_RADIO_RAMP_96_US 

    96 us Ramp Time

    +
    LR11XX_RADIO_RAMP_112_US 

    112 us Ramp Time

    +
    LR11XX_RADIO_RAMP_128_US 

    128 us Ramp Time

    +
    LR11XX_RADIO_RAMP_144_US 

    144 us Ramp Time

    +
    LR11XX_RADIO_RAMP_160_US 

    160 us Ramp Time

    +
    LR11XX_RADIO_RAMP_176_US 

    176 us Ramp Time

    +
    LR11XX_RADIO_RAMP_192_US 

    192 us Ramp Time

    +
    LR11XX_RADIO_RAMP_208_US 

    208 us Ramp Time

    +
    LR11XX_RADIO_RAMP_240_US 

    240 us Ramp Time

    +
    LR11XX_RADIO_RAMP_272_US 

    272 us Ramp Time

    +
    LR11XX_RADIO_RAMP_304_US 

    304 us Ramp Time

    +
    + +
    +
    + +

    ◆ lr11xx_radio_lora_network_type_t

    + +
    +
    + +

    LoRa network type configuration.

    + + + +
    Enumerator
    LR11XX_RADIO_LORA_NETWORK_PRIVATE 

    LoRa private network.

    +
    LR11XX_RADIO_LORA_NETWORK_PUBLIC 

    LoRa public network.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_lora_sf_t

    + +
    +
    + + + + +
    enum lr11xx_radio_lora_sf_t
    +
    + +

    LoRa Spreading Factor configurations.

    + + + + + + + + + +
    Enumerator
    LR11XX_RADIO_LORA_SF5 

    Spreading Factor 5.

    +
    LR11XX_RADIO_LORA_SF6 

    Spreading Factor 6.

    +
    LR11XX_RADIO_LORA_SF7 

    Spreading Factor 7.

    +
    LR11XX_RADIO_LORA_SF8 

    Spreading Factor 8.

    +
    LR11XX_RADIO_LORA_SF9 

    Spreading Factor 9.

    +
    LR11XX_RADIO_LORA_SF10 

    Spreading Factor 10.

    +
    LR11XX_RADIO_LORA_SF11 

    Spreading Factor 11.

    +
    LR11XX_RADIO_LORA_SF12 

    Spreading Factor 12.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_lora_bw_t

    + +
    +
    + + + + +
    enum lr11xx_radio_lora_bw_t
    +
    + +

    LoRa Bandwidth configurations.

    + + + + + + + + + + + + + +
    Enumerator
    LR11XX_RADIO_LORA_BW_10 

    Bandwidth 10.42 kHz.

    +
    LR11XX_RADIO_LORA_BW_15 

    Bandwidth 15.63 kHz.

    +
    LR11XX_RADIO_LORA_BW_20 

    Bandwidth 20.83 kHz.

    +
    LR11XX_RADIO_LORA_BW_31 

    Bandwidth 31.25 kHz.

    +
    LR11XX_RADIO_LORA_BW_41 

    Bandwidth 41.67 kHz.

    +
    LR11XX_RADIO_LORA_BW_62 

    Bandwidth 62.50 kHz.

    +
    LR11XX_RADIO_LORA_BW_125 

    Bandwidth 125.00 kHz.

    +
    LR11XX_RADIO_LORA_BW_250 

    Bandwidth 250.00 kHz.

    +
    LR11XX_RADIO_LORA_BW_500 

    Bandwidth 500.00 kHz.

    +
    LR11XX_RADIO_LORA_BW_200 

    Bandwidth 203.00 kHz, 2G4 and compatible with LR112x chips only.

    +
    LR11XX_RADIO_LORA_BW_400 

    Bandwidth 406.00 kHz, 2G4 and compatible with LR112x chips only.

    +
    LR11XX_RADIO_LORA_BW_800 

    Bandwidth 812.00 kHz, 2G4 and compatible with LR112x chips only.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_lora_cr_t

    + +
    +
    + + + + +
    enum lr11xx_radio_lora_cr_t
    +
    + +

    LoRa Coding Rate configurations.

    + + + + + + + + + +
    Enumerator
    LR11XX_RADIO_LORA_NO_CR 

    No Coding Rate.

    +
    LR11XX_RADIO_LORA_CR_4_5 

    Coding Rate 4/5 Short Interleaver.

    +
    LR11XX_RADIO_LORA_CR_4_6 

    Coding Rate 4/6 Short Interleaver.

    +
    LR11XX_RADIO_LORA_CR_4_7 

    Coding Rate 4/7 Short Interleaver.

    +
    LR11XX_RADIO_LORA_CR_4_8 

    Coding Rate 4/8 Short Interleaver.

    +
    LR11XX_RADIO_LORA_CR_LI_4_5 

    Coding Rate 4/5 Long Interleaver.

    +
    LR11XX_RADIO_LORA_CR_LI_4_6 

    Coding Rate 4/6 Long Interleaver.

    +
    LR11XX_RADIO_LORA_CR_LI_4_8 

    Coding Rate 4/8 Long Interleaver.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_intermediary_mode_t

    + +
    +
    + +

    Values for intermediary mode.

    + + + + + +
    Enumerator
    LR11XX_RADIO_MODE_SLEEP 

    Sleep / Not recommended with LR1110 FW from 0x0303 to 0x0307 and LR1120 FW 0x0101 in case of transition from Rx to Tx in LoRa

    +
    LR11XX_RADIO_MODE_STANDBY_RC 

    Standby RC.

    +
    LR11XX_RADIO_MODE_STANDBY_XOSC 

    Standby XOSC.

    +
    LR11XX_RADIO_MODE_FS 

    Frequency Synthesis.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_gfsk_crc_type_t

    + +
    +
    + +

    GFSK Cyclic Redundancy Check configurations.

    +

    If this value is set to something other than CRC_OFF, a CRC is automatically computed and added after the end of the payload on transmitter side. On receiver side, the CRC check is automatically processed.

    + + +
    Enumerator
    LR11XX_RADIO_GFSK_CRC_OFF 

    CRC check deactivated.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_gfsk_dc_free_t

    + +
    +
    + + + + +
    enum lr11xx_radio_gfsk_dc_free_t
    +
    + +

    GFSK data whitening configurations.

    + + + + +
    Enumerator
    LR11XX_RADIO_GFSK_DC_FREE_OFF 

    Whitening deactivated.

    +
    LR11XX_RADIO_GFSK_DC_FREE_WHITENING 

    Whitening enabled.

    +
    LR11XX_RADIO_GFSK_DC_FREE_WHITENING_SX128X_COMP 

    Whitening enabled - SX128x compatibility.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_gfsk_pkt_len_modes_t

    + +
    +
    + +

    GFSK Header Type configurations.

    +

    This parameter indicates whether or not the payload length is sent and read over the air.

    +

    If the payload length is known beforehand by both transmitter and receiver, therefore there is no need to send it over the air. Otherwise, setting this parameter to LR11XX_RADIO_GFSK_PKT_VAR_LEN will make the modem to automatically prepand a byte containing the payload length to the the payload on transmitter side. On receiver side, this first byte is read to set the payload length to read.

    +

    This configuration is only available for GFSK packet types.

    + + + + +
    Enumerator
    LR11XX_RADIO_GFSK_PKT_FIX_LEN 

    Payload length is not sent/read over the air.

    +
    LR11XX_RADIO_GFSK_PKT_VAR_LEN 

    Payload length is sent/read over the air.

    +
    LR11XX_RADIO_GFSK_PKT_VAR_LEN_SX128X_COMP 

    Payload length is sent/read over the air - SX128x compatibility.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_gfsk_preamble_detector_t

    + +
    +
    + +

    GFSK Preamble Detector Length configurations.

    +

    This parameter sets the minimum length of preamble bits to be received to continue reception of incoming packet. If a packet with preamble length lower than this value is being received, the reception stops without generating IRQ.

    +

    This parameter has no impact on TX operations.

    + +
    +
    + +

    ◆ lr11xx_radio_lora_crc_t

    + +
    +
    + + + + +
    enum lr11xx_radio_lora_crc_t
    +
    + +

    LoRa Cyclic Redundancy Check configurations.

    + + + +
    Enumerator
    LR11XX_RADIO_LORA_CRC_OFF 

    CRC deactivated.

    +
    LR11XX_RADIO_LORA_CRC_ON 

    CRC activated.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_lora_pkt_len_modes_t

    + +
    +
    + +

    LoRa Header type configurations.

    + + + +
    Enumerator
    LR11XX_RADIO_LORA_PKT_EXPLICIT 

    Explicit header: transmitted over the air.

    +
    LR11XX_RADIO_LORA_PKT_IMPLICIT 

    Implicit header: not transmitted over the air.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_lora_iq_t

    + +
    +
    + + + + +
    enum lr11xx_radio_lora_iq_t
    +
    + +

    LoRa IQ mode configurations.

    +

    LoRa IQ modes are mutually exclusives: a physical packet sent with standard IQ will not be received by a receiver configured with inverted IQ.

    + + + +
    Enumerator
    LR11XX_RADIO_LORA_IQ_STANDARD 

    IQ standard.

    +
    LR11XX_RADIO_LORA_IQ_INVERTED 

    IQ inverted.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_pkt_type_t

    + +
    +
    + + + + +
    enum lr11xx_radio_pkt_type_t
    +
    + +

    Packet type values.

    + + + + +
    Enumerator
    LR11XX_RADIO_PKT_NONE 

    State after cold start, Wi-Fi or GNSS capture.

    +
    LR11XX_RADIO_PKT_TYPE_GFSK 

    GFSK modulation.

    +
    LR11XX_RADIO_PKT_TYPE_LORA 

    LoRa modulation.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_pa_reg_supply_t

    + +
    +
    + +

    Select power amplifier supply source.

    + + + +
    Enumerator
    LR11XX_RADIO_PA_REG_SUPPLY_VREG 

    Power amplifier supplied by the main regulator.

    +
    LR11XX_RADIO_PA_REG_SUPPLY_VBAT 

    Power amplifier supplied by the battery.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_rx_duty_cycle_mode_t

    + +
    +
    + +

    RX Duty Cycle Modes.

    + + + +
    Enumerator
    LR11XX_RADIO_RX_DUTY_CYCLE_MODE_RX 

    LoRa/GFSK: Uses Rx for listening to packets.

    +
    LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD 

    Only in LoRa: Uses CAD to listen for over-the-air activity.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_gfsk_bw_t

    + +
    +
    + + + + +
    enum lr11xx_radio_gfsk_bw_t
    +
    + +

    GFSK Bandwidth configurations.

    + + + + + + + + + + + + + + + + + + + + + + +
    Enumerator
    LR11XX_RADIO_GFSK_BW_4800 

    Bandwidth 4.8 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_5800 

    Bandwidth 5.8 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_7300 

    Bandwidth 7.3 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_9700 

    Bandwidth 9.7 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_11700 

    Bandwidth 11.7 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_14600 

    Bandwidth 14.6 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_19500 

    Bandwidth 19.5 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_23400 

    Bandwidth 23.4 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_29300 

    Bandwidth 29.3 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_39000 

    Bandwidth 39.0 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_46900 

    Bandwidth 46.9 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_58600 

    Bandwidth 58.6 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_78200 

    Bandwidth 78.2 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_93800 

    Bandwidth 93.8 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_117300 

    Bandwidth 117.3 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_156200 

    Bandwidth 156.2 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_187200 

    Bandwidth 187.2 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_234300 

    Bandwidth 232.3 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_312000 

    Bandwidth 312.0 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_373600 

    Bandwidth 373.6 kHz DSB.

    +
    LR11XX_RADIO_GFSK_BW_467000 

    Bandwidth 467.0 kHz DSB.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_cad_exit_mode_t

    + +
    +
    + +

    Possible automatic actions when Channel Activity Detection operations terminate.

    +

    For RADIO_EXIT_MODE_CAD_RX, LR11XX enters RX mode on activity detected. The timeout value for this RX operation is defined as:

    +

    $ 31.25us \times timeout $

    +

    With $ timeout $ defined in RadioCadParams_t::timeout

    +

    If the CAD operation is negative with RADIO_CAD_EXIT_MODE_RX or if CAD operation is positive with RADIO_CAD_EXIT_MODE_TX, therefore the LR11XX enters Standby RC mode.

    + + + + +
    Enumerator
    LR11XX_RADIO_CAD_EXIT_MODE_STANDBYRC 

    Enter standby RC mode after CAD operation.

    +
    LR11XX_RADIO_CAD_EXIT_MODE_RX 

    Enter in RX mode if an activity is detected.

    +
    LR11XX_RADIO_CAD_EXIT_MODE_TX 

    Enter in TX mode if no activity is detected.

    +
    + +
    +
    + +

    ◆ lr11xx_radio_gfsk_pulse_shape_t

    + +
    +
    + +

    Pulse shape configurations.

    + + + + + + +
    Enumerator
    LR11XX_RADIO_GFSK_PULSE_SHAPE_OFF 

    No filter applied.

    +
    LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_03 

    Gaussian BT 0.3.

    +
    LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_05 

    Gaussian BT 0.5.

    +
    LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_07 

    Gaussian BT 0.7.

    +
    LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_1 

    Gaussian BT 1.0.

    +
    + +
    +
    +
    + + + + diff --git a/doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.map new file mode 100644 index 0000000..05b4778 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.md5 new file mode 100644 index 0000000..f3c2ba9 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.md5 @@ -0,0 +1 @@ +78d4f4b3aefe76108a448c4217c1c277 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__radio__types_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..020f5d1a229645b3ba17a3e267a59ea9b4cd9fc4 GIT binary patch literal 14797 zcmcJWWn5N&x2JDFLb^Mo6={_gln$jqN|08h1?dow4iQOFN?N3(yFpMuK)ORZRX}Ri z{y)$8oHKD|UX6;%&8}apy1r|NsjDgw;L_rvP$&W=MOjT03S9;M{}Trb{w6#nZG?ZY z%v2O)Q5VSX^oHCx6zU2}N%pR`d+OG-hu)jt6WF^ueI?z|DgF!SnJc;rnxE2N*AO=H zUVB{^>)E$eos+Yona_|oY@Yw71}`Z^Pt)p80;bKA6c0_3TX%@b?~+&~A2;|N35Hl& z>0Ns7Vbz$nu~2LA-rDz>RPWa*$;l#OX&hn_5|UU+66Ji>D=aK5f|lF~q3|p6QK>Ba zvbYq%4xh5He*8e_ADWk$nUz&)KP{HucEyte&eIIJlZ_l$M#01s6NpWe>2as9=`imQsmww|N9-wu4?7n zYk6Se!|qBQ&%wh(aNFyTth{{iaE3PBv&mqKzk1vxB*~(bRI>fSZfzta6bFL}O!M8b ztSD5rW>_4jTEf%X{P8kNl?tC9tAkm4evh(0^ZFYD}jDnRFhe4(7wd1j=VC`hMNvs^+<;!;;KfY@9Ej8@?>}2s|r^zp8 zZ+o^WrX>)2u|15ecJ#+b{XoC-gR}vgifmQB-XlCp?q+{941W75k<+8am~39P`60&; zBBsu_4vqRtx0RHXaBy($I6DiXu851%y%n;PR#zt;wz);gt><6ownKY{k2+dTG#SX( z;=D?ZOE2bv)6&wiI$6b+qm~xEFWdov&)9pvh^FiMU5UlEOpy4wy?A`J>Fl==Iw`Jx(<2%UVj-QbxvJcTKf3=hs&rd zTwJ(~jg7mzyC{_RZVPtz*RLJH1axx?3jy!M-OTnDI>u^U3qR=%R(v0zDHKRti*hWvEDmv5}xnn>dIZ8Vfkg~85PaJMDhYl+fJ94rw(S5|b_%n9j5 zh-sLD|~bp`jQV z8P%_nAHf7T!AUGq4{Kcnj%b=r_f=xo;QuWtx1R3yaHgf(O;#pJ`iMC@JO65&ZEM3Y zD58V~8>DmCEBzhYE5znu2ChWA=lRY|)bOx2w^23mPW=I)ki$&mTVaO;Sl-|3BQhI5 ziuSvdg3&56Rp<1XLo=5)(K9l^id1?ueG6E>E5v_2NR=u zcM{i)A94pPUnA}rmOMhE6|xQWI9M?qNWVK)?Zo=`&lcX(r%xNq&-S{Q^0acJx6z$U zOiVdP#zZ&B?NE0^lBj)EH{U3U}05hJ05_Bfu;RL zFOK8Bw6?Z(cBCBJgMY`0Im{VZSyEi^&AF=Y9FO-cjq08gJX`5&2_xeqCL_amDUIgl z=Jso6mMKd<>U+hnYQGD~^WVjO^WU>oV9p4!2xzq}`mSl^JOWo;o29b0wl-Gpal`jy zOBmJM%hwbM6VZy;sx5fXu8OClC7!=+J{mXB@)&%+Gu!CnwA4-F{b$^|_L!8El>hmr z-sWT#(f0Ost!1st8mawMHJX~5+PySMh9bi%ER=<{H7j^on3&GRu9&@6JibROeaVh) zZrCWqy+aUm-qTi5~Ks>F6&aJcXRQE~k~u79pvWMSd;Kikt0A3t()n>0?X9$~7b z5E2l)l+S7@&?(%V@!ByRDbSIht+MDLW#iy5+nxI-(D>)R{Pv^B&$KIY-$aV}xMMbqaRYMj*#n%ZJ ziA_ohMM4JzE(HiW#B_8K5T9vz5*m+J=pYlohusPJMzhyWLx@ZWp^j&hNSToYfr2bs zDTE#*YO8ZaoGa;a#Xp|-d@UHCCLqo4oCf9i^BaRvt;^+$)1OlF>+9hVp-dOr!?3zk zm6cn;{|P)>xrcajdwcsNAv@Y{siJ`=hdYVlx?mN*wx{V7Vi++|;0c%^lG#+$c6(!B z69yF*^KEWzk}RI^bZtphRTo$Uw(%G6V|5Gdw zfWVO@&;UOA@l3raxW+xHivuY|HMQb_G7_3rRu$N?&z?QIzJEd_b?WbP@`qVc(s=ag z$GNMjHa1)~!+B^A9z2*n1uu6)*j|b5;G&GQyIspDmPoLsU z>>8t%rY0%)V_YI4A|$I3b-wiN+c!_Ca+O5h)$iGOLBvPfbvyh%e_g;L6d&M_=m@_L zW@Qm%2FFb--Q3cG_T$G7NGWk48Fd-j7%2>ay|tJXBPs3aDfasH>k_+3p}@tFB10;^ z#v>NkhW@bJtnBQVNPg87&Cu(jov&MD5E>B?D4%t0|8M%;z!JX;-_zrtX`W14j=xql z5WlOhuaAR=Cj+Zd>$-s@EG+D@H9=9RTO=(ljSlm*J8I%*3dv1(Z*N<1(|P#7fI3(W ziud$&h_|$mmXMI(fAXE}qh2XGStsD57E-c>4}&_+&mW*^QCBdQFKE?!=sZE z6$V0$_(k|Ulk0VAY9u7D4MTr_tp!%i`qrheausCm{ob0SijIzkU}YSJR~Obta_9^P zFU-%Ie$U0ZPCF|+>uv7h`S|f;IT;o~CB#YmmkI^(j3gv9El9Mv_xL6{ZPb(5;P;8S z@nV-UofjcquzBq?o_rc+R^;OAr=+2&h)uMPsC9KvW{B4C@TgQ&wa2mkc~eC6w!h|+ znhq@+n}T6xb(&JJj&YlT^cOS19~182U~bP=$vBr`2nyO}sH6BAlh75qzMnKG@d!V- zB2db#sYREr`i|S(T_QNk{L`?hP8~Rsbj#iZ&5*m6&7AIJBt42oMqGckB3c@K2D`i6 z(X%ztqU0k+jW_(G=oFM0jFT;_R?@X{mlaid1LEUxkB@03F6yy6qc(zD0w>$XYl4TF zNhv7*8D#tN%F5zf2j0blen0tpeFS;h%1b{ls!HvmXn%x88((sBqq>~MopyF&&Tp++ z{b?jb8trO4F8ukmc7QG)vmIbRog$r~u1J541S#_3To>hWAw`XtuJdcjQW%GnZonqu zyhk_xO_F#OQ;ymWyT%)etP$jNzSG~M4pK5-^ z{5GmD!(TbuU-R-Mtjdnn!G{B-=8HBFF{>A)vAiU)*F^o!9r}`=p{RII2~b#g>?mS% zNT=?Walb*OYjHB+Qx9P2>T+Q`!+CtuU}^b@)9QdnUou&62vM5$(@0rVS~>DSwa@JW zh@|kPpJ1OAebjzDl*5dUF{!O(p<_N?c2}J%$|UiFHrL#y5k{R`Q%^*b5-E~z+`Fef z(3>P$UNy)foizxd&N%K2bKv)SjoJPZqk2BR55u)|&1(<|W!*h)KPW0Cp+IV4i-47H zTaaBE4;aeo8D1CgKI(=0y|@&s)A(e_vt?w2QTg_)BJRuP&M4Nw#)bzKU2@v~9i$|& zm&2nQU!?hl%Pn@=vwvDEEz_Lesyb02*I$0-SkfWBb4fZhQ=x|(H{Ii)_UPA8+N*>= zdYP-C$o@}G%~J5|>W(#>|2axdLZUUdtV5@(t9D^jsIAvECd z==HMH;-;C)X})4;hdb70&HlebqwdFwD3@vfGit@ht1(AiQqN6?^LU}0( z6%muPd$O>y68Y*C)cX2sZPWL+eS!y%F5AzUW-em==OoM^#8??Gg zrx~J58T!xYV7r*j)H`w;{$bbsL?1wL9czPk*M2xp=+9>IB|5t6+$OxU3Yc$JmJ{jB zoBf5{&yQ>2?jN^3i&Abe5Hm_*o}c%#iX4&Ai~V}r9{W0bUgla@C|g2ua-dS2WY>7P zaH(bQw{X<@ypZ9|w5x^nBo_$$(7 zcf13HNn+o;j=RBcGb}XKlos}|Zl)cNZ#YqmEw0MV;U*=wNN9$P_#?=CN-BkZsjFlv zlbF8mat;f%nEMhhPJP=`+{kFtadYgRyXTKLVr=@W)O*Pk|M{ z5A)5jE%id5QtN(MMvDA&N}l!k!eT2(L8Oaj{8bVcvI)cb$ia*=ZCHYuCn_|Oq@>Vq zSk;HSZpiO?zO`POpATpY$<5HYu7=O>*CAD8FL#(ZmSzD-qerfAax&ep+LY5Cw)|+q z6bX(-iQ%<=53JK*CSQqz34Q_}Q{>)aoe~3SGLiAzeOc|1@822CPmk1`&i+267vZOQ zCw8pJ@Om7!su|>Ak0*v1cIuzuI639(RocE9v}%VU0o-yP?sTmy5vziIpl+d@#S;F} zQ8jWSyvutbb#*s#)Mg_-d~mUyk-)uWqo=|^*+XBf52I)K`E5GLpaHGIW}H>fnFBA| zhLn0WA~f_`XjsjQQR5Tg?de{a@YkZ0Fta*ytAn#(YLqV9Q*nDTCErF$JSxWa^E2xbvku}& zx>23=S2&n%EZZ{L!%TWr_LqY3pYXXVvhi&~{L!ZQGJ&7?p@pOV7yi*IiY3!prbS4c@2OD^-p(;$mv-E398-^x+1O;X?dHZ(5)H)USP zZvC58wIK4L@js82?s#Krx^8x9@N%*#nK2g;GQ4FtZzb@)d;UjvVR{k`no^oi9%k@E z%pJ&;xbTG9ZkgD&s$`oYbu_L}TLnHd^SR@*XPuEW@Uh%p3b=XJG5paoeEM#<4=LjI zG2nZ_(#w1lU9dumL~xQV9Q$(59^$n07=9wIIhip!-5M#$8P(hQ*OIoaPxp|4viN^> z>?v8e?@mTGROOP_?LXd%<{o-2xQPDM=&*KrK6#Q!mJ8ka1Hsim_ z;n!mLT%0eZF|kAbK>aTf)SW0s-=i~<=CjhJrK?-<$Xts`U%!6UFd9ySy;^{C&J?(m zR~t^Vg548adODYd@qa?8;HY&`&Z)|bYXViS zy{G&LU&#Be-^!$x8E)p=jUX^Ge%EzvNT1=4o_>72QpM-B91ac+1Y?ct>witTCFA1q zdCC0kq|i1?u(Ap~YDQg+SGJw1CV_&`(b3UAEsg10nv}z@Ga@EQ9?ZlpMUafSP{dCfB|E*AKTbs=3=|MlF z=}q1Bv9Yn>G->F22Yvw>#Np)RbXxvGQTpts>iqULFBB4AB&MmQq@)B~R@I#jw;z%~ zL=tmZy@Cn_Bo)}J<(@qB{d-VRQBk$ye1Lr)yGlYRl;6`kfF>yc+>tpsIl*XT`rh9* z1kj@U_$F=EM&InL3B827x>19tj-H`m#89qU#O9_g2?GNUV1TT*YO^QUg!EUT&CbU+nE_@_%rP`8-FBtwNauY z(c@@$-VBm(X&mOy21SpD^J0Nv#t=(~9v!)(-GSm}eP#6V&DQa8eJHkj=Bz(tXJ7X6 z^4i;-mm#5|;-sgicR8SXaC%ndFiVMQ|GhE#`IK}k zja*g-(8xIMH3JSH=yc!s!IP)W)zGWyZ7Z`>MzE~NyOD5gDtZjLv?4mL-12jlQJV^C z@#oxt;y;-*MfXddd^8#&$Tw+{WR&ua1jIZ26jqmg<+`1R=izn~?Jb+Ru~PFR*jfT+ z?KorO<7g=O>=FPOP(kkEXe@E^^AF5fgKj~Y%m_tUUf$Kz+g`|+cMlI0bafME4!t}) zpo*UBjH2^g)!OKD!Vg@-sL{Ko zZ-`)TZ|^Q(0ReCcz>!&ac?m&zxa#JuoK0%p8QB6Cg&dgqUK0OZ;UbuMY7xgP@L33` z0L<5~;{jZ6n`;S-jf=~2s|VC9D<^liNEZX8nkw?*B_0)076;ESMiy3931SU50R?87H2DH`Qv!k@ zZ97w6(|(JlBQf_#5RbVX5ZooyAV4e9G-UG$Sbw7*tadV=pPRdaSUXgiW{&UPiMc9& zwx2dQ^ioxg)@$&r0Ms5v9dE8_$p&H($QBt?v;!iSwX(7b zEB(zAGgWDdR%2AomJ18;>OzS7(Pj$!OJZql<25;p8E_*cR?kMyKIIQ0gAWL6#XgmJdqulr7xb@xD{pz42%G+&Ts|78A4rgiS9bUEGGG1@FUOm7 zUs*Z8peVS!{08V_VZc~2yOTQ9Xg+-SF!y`ZBm`jj)bz9ffKc!dG*KJtBZVMx`NQGw z{mwnSPqwP!>*m;0a%!806;==iv0aFB$@ zu(Cb*hIPsFEra1=6DD3>-Xswxvsg~o4LWncFIdmm0M?(K9FFoFfR_t5%B^r(l!s?+ z15D)W>nq}SUO#9V_Y|3&Oyz@d>$G`*ScnUekEDKK-W3hvPkp@vf?mblwjt9yaXrAs z#LNICCNwHa&ccFC^5XPa)*=KRdKwy4{=R=$_Z;D-imIxeNdo5l zp1&T?%*&$gJ@do#2aK2wWDgtzb`Y_=+B*hGZ)!RrTSV>y6c7ZGCdGqd;|_4pyT~O4 z1?T&Y>p%3auMJPcUj|?6Mc@NzJ4^$ zOfCm1W@}_$Uw`oFrdYoMlMh=!KtK?&bbDtfE@}bNiQ2VUpTmc-lsGRZuYv?5gCZ7o zm>K?h(Z%G4gIa)?j%998_q=HP@bl-J;Op7gv>($fem?)}Tm?LBdvuEiZ49hb4Ov7G>6 zX(r}=?ia-DoOp-qH=Pu4Ae6_qSy<3Punf$~Vuh^7sxRq9P|zjRo&O90Z)dx@y5`2f zyOorc1tcaWZdY*JPg%{O(R4ozP~9FMAGb8QDrlHf-IVYE4BqA9lSUR6U|Vnn>Pr>h z|G3GBzD`QQQBY8jIGlP`yM}0ZXOokYbTEruQ#H>J84sKy8Wo@M#{uhPG03a6pOE9e z+@6K#DCg+NpTMmj@Zkg7;|hb1CQXc>38DP|{@z&JTkKL)QW|XFyW%PDx{Mudby!I2;~78VOIX6yds1+AvzWa5-hiF zQ9uOJD|z&yWsg?a9^cQ;um1NBLjb?h-rf?3JnVb+Hv@7ll>e(&#J|7@za&QW#gLyA z3V@=7Y&w^Y6!MgtPXb`|%_lxT@k~4h30tq)k=e}LJT@^AJ4!ywFvj0wnH7@F0#ajR zW4&@K0uYYoH#Z~o%dJeiUop$ATn0o6LOIanblpM$t3K*1^Wc{+5yM5;E9@I05I;62 zDhj!%0=a|ow~9f^YJ=%BwYJW!qf^BNT@0Xj2n-AhpV}Wn6B^3a)^?!5%MH>(BnIT^ zmvj6mHi_BYbp%;UnbJW=1BW@JcOdMZjJvxCZ1W|jLo5w}e>`vBEFjY;(AeVFNN}9Z zEiR(w$m+vFLluilO8E8k^)p~qf%>+AR)K`+{I-JUh>y;OY>N_BeI~7Si#qh)i~OD9 z97Yq<2G8HpAfF*|yuu&~GP{ot>vY#k3K(LzNi_27>+9WZURtybA3o5EDJ}sEU2J}V zp&7y~$_SMz2v`9?IR2N81`c*nQJHn((0h~zGPF?b<)K3)$tKLurj5Fzs|%^cHyQZH zX1GMU!Sj!1h~;n`CoR2*BgSIqtvE6AtRU1UlYalAB3wd3T}Q`~fOqfKE<~fEqdz6| z$IAG2#~SU+e2QESS+f?71s8%_u%f2j`sE9zvL(S)@>}WJlxH4)Q*LW>om^Z@Q{r~` z4T8yN!0Dl30v z_lM@1bYfsvc37v~hb58tR>^eR6HPfAT^eQGKO?QFSv$-euT*Zuc(h*V*E%#r@#6JMj#r>}{NR{NYto*%Jl99q6gE0&WDs#m>LT|2Qj zkdg1cmffkI|Lfw3&Q)?pr_#2?F43|lZg;=m2swQv4z7`7`$v(NUfB}An2TPp-Q+nH z0o@NSC!a{^ymzL?k7Ero6|Zma&d-KZP@_NiGE;v8(^JVi7E5yXQpXs6 ze&Yd+vMn~Pc<^hk`qgx8E`;kvGEU32hF;&EYcYx7CPV2N7DBIwM;J?i2-In|lR}hj z!429AtMAL75kS&md-`h#{TE<{od&9~=UX!!^&ayG;=F1m=(_TT$r(|ulV43ud3zr( zV|wrRTmvyt$$hT_%YBhR3ZHSx*o`NW82w>gW6WgL&fR?N)(L}`4B|6)4!8SN=zThj zYMikfJbm)qQgW^Dr;1m7NMS9Ym&QTJW~IZ02@V>9eO+z%`rb{d3HP^!s1Y;zQchN$ z`HQ=KAFOz)6%=%o^`JOG{p!*)+W3O#nw5~g-9a?joVo4k5WPAf+^va*2+?P)10TY~ zSy-)ExNIl^+~#-7wSgoQ$9Wh;4E-KFgpA%Ql`lzA^pf5)b1zrJ!iaXem@bddYb--@ zg#hv-DL)iM+Rp}$`jS4$tvEgZ^x_qVGyp^GJq?R(Eep@Jl#h(dbouUY-D2G-K(j6Omua5ht~<9rANU1+#|*&yb>~i zfyOhzz_U*ui*#@f8F1|85;f<17?a31bIqh_Y6ryt}tyg<{G^b>-_A%)SNZO z`YMg{A6t4Xf(Z+k_Y)NiPJ0W^`qR_7Y93Xi4PMDOc;bQmlHyTs-h|-bJVr)*bX>}p zlwI=Sl-~&gfc8VchV4xkKBVu&irS^lOYtgfM6YmfG99hF9S14nSq&58wL|I4sAzft z@9>P~vy)_zXB?kWSPI0Jr;Yn>{|v2~@x&Am*m=~OFsP{F6`7tMGg!4FwmD7~m703W z75?VlOZMfE{KZ)IOs>u$uD{DapAP1HHM6jg5cqqgYs!cKh7<`hrjEHwPX65ItytEd z8s#}M$!e3YPx+db{eQqrDUyz)A@%1h8Vmfv>cGG=Zv zZk@*sid@yRmzT*-!|S&f%wjaM#za0hPuCFvEap4fEFbFb^A2eAF==iOyFJk8!+ei_8JjPe>u=Jh~^&4N}72njtKBmL9{Gl8IJAELfKO1~FnUheoJ$fYFxv z`QZcW$0D!^2_y4LS0WS6mtnnOWp4fw7N)htly81>T*UkDnp)DW4b+U^#q~(qk;~wn zGpz1o=eM!Fz75`l;=>3ouozclx9v361;|I)ET&y-Mh#}wHII+0uJ3lY)}K0?BVSX1 zioFgyuiX5_X*=Uh`r<`nk{~)X+IF(ZRRCBs`*m4ssy^SHX+QMvW6p1_o#_U z>$84QX14a2(STRBAgvu8-wI4KxiMYgx-se(5k=S3c5$j^Xl$sUjRhzD8gNS-taW8| zPbBFvSnPBK!2Aet4sN3>jXnbPPvi2);V9f|?!I3UFS$B6^mFv1K3V(E(O3G{9?yxJ z2Bd9!JTmVJ-uHMUiv=EEx+l1@rRCj`g@vFO#G&HG30(M6KKyWeI4c$GceWvtc2i9o zCxX39?=S5{yJB!sw#`$O9%$nuus(Jm983wFt@xv}UbNaNpCRN%t;;Nbrn zd6#2cy?aISbXSD#=yeA~PpkVTGLtXyM(X|J^XQGeOVNbv>BHnA&|L|tb?ZAk`Ctar%^zGN~= z6^rj<0||=faFM0x4$@>cxQL*X?VO4;2o(2lVKm87Lc8oW@Z_(};Uc|o5jN~o4wfFc z2j$B5EN@zEGz1=MAJq;Whs|^oRfB}c{!^5y>wO}=B$HP@?kb5L^!J!4P zS-%7k*o7(D!=YSwFcs_H-nnd!InjC@%Cla-P8En<)uzA{CA;zCy=I8KtTqQGfp-^Z z#>GvIL26Py6U|j}5uV_a+g>p<9Jx3Os*;mYQgWbnL!{9COR5~$r=~e^Idko$vz^~a zye~V~rdUxJIoC6k;!I7gRbmXOx!{+&^08<-D5Cdz>+~6ubpGc=IIg4bG%uRzb}K=` zcSz}jIbtyfA44gZ?J2jQ_=Q7Ej1~&ty#0PtU+sz~n%IvLl9(3yI|KIwMxw7@37llk(M&`Qt)woxw zsrWCYUjT1YVo^i>xzgap_Z}Y#9x)yuKYiKH>uRHV)Pt{;Re;PC(DjZJG zIn=)Zv<}kp8^B=D)TmxK;`sczJam`tbx@hSsg-z1lx06tPXmp6Jp1qe)p;}z6*#mibfDddZR?#J-0$*K)shoPJ( z==>#y{+06X{(e3|2Mdc2>iODOU4l2ypqxYq9;8Nc&;+JcT~`O9-UmT7;m-bkkRHXf zry9H-0HO$omNFa^RJ0>=`{c$efFMktKE2LsRGm)utmid5%atp44o`qj$~F0($r>4@ zc6WCpT{V<22NbkXovUI8hlfQy|a&u>jp#EaKvZvI+{2Gp($y3>}`oz`zcN zVmJ(Gw2^S%y<;`AMxnYc{OlBY?rx?t7Un)D9r<#4BgJ>4(SIg&I|6(Dzt^ z9VRhpzUl=-)Km4<)-U~_ewE8rqDVKQ)VvE(e}Jk$deZ;p*7U3Y3Rozqs2-R#eox4S z$~_O*4$^kpFLgoBDj(_p?i~Xv9g2PEWUhAGVGJUc^F_zNAn=t3X)AW^#fulvm)tsD zZcRc=i~>4>G)Vh2B_>kcq$L2fmLWW|V7|ecXm?e?Ss%7`+kff+Nk)~X`aLV6DuB~u z0j50Pns^Bu&lCijYVTv`w&I#J^vo@e1{^7l3 zLAjfc2kt;CtIEBUn@R}sr#773@3y0(eARo4#@XN>Kih`h7n6$&%O~<-`3F#;T06A< z1$@*uEeou`{)3B(cp$g*(U0P(D46j}X3BYStRc_`4)-*Vn)SpX$X2yYKLwlxmw2Ck zyg8W;_6l~aDTtfae>%SZL*R-3djkKOYDM99wB47!Mm<;yE+_1}E&V^!{Oo@<^iOQ^ z^YIbEuwgFA465u2=GNlw<4IY*QB>}K&7{*pDqb14#>FF5-DE&m&X@4v7rel+0I*R} zQE~3!bx1e2H`zFK8k%%FkNWb%1sZ-dS}lPXq5$g2{K5i@>s8q@axyYjR~%VO-Q<&} z(B211?=Va5$$#*AO^Pqw-2femhE3sxoxvNAO0@}>*FJpIEiCmoumaCU0YxFS%SYQ! zz$zfyA2eBsi_?Q6z_hMIk*>i)LPgcz#pKC!gnW)ObPGXJfSMXYLlk&8${L=k&(T}| zEzpk)^SBe7v~X_l2%6ZBwyI|NeNWv%B5+wBR@ym&H$jqaJ*7N7J)K)!4Nc%NTSMxm7*H zu5BFrFmwo0isPX0C<5^|6X+mvwFSV3W}rm0e*JnMcxl$V43!Pqhel5rvcAS&lXU6V zr0$IY5zFcP)MN025*eZ#PH$wp+VZ^*oUU`D0-HL;^AV^T9YFirL5D=_$Nk`|a0i^$0YX$zNJt0{5s|Q1 zaK;WBa}c~$Qb;Xe76f#dMA&|cn6K#+{PWi>ubwfPYx>+Y8t+xV{H5kf`0?ps;mK_t z90dw+(^Eb z!r=~()8?5OMsN~x#=YOZ2_bXzp}ift#>5tCe!d^N?=V$ex;>lltD)U2Kb5O4&e^F` z?4Oyq1B)3}pgezC?RCft$hj2hNoQxjTR36{!a5`x*y?|xw=ijMKK6%|J_S*xb`+?! z>rl8kqxzG3PyBdP^WU6rj1LWw!7DRz?^$)clX;fCl>Qdo75mpM#Msy_0pLY{RBwJ$ z!}Z#j)I%eqN9N{%NlDZ|`i+Gf>KP_s&i^l1JqcUeNprKfa~S%J6L}wgr+BJ~yv>8W zCjwpjYY(kd{u-N=T1eNr?GQpQH#k=!cz>iFq8kY#BOyo52Jkk+fg`BmAWN@p2ggan6}}G*!4(4G zor*_eC8j789kk;AHP*z@_}su-Cm)wuS||ptlE_on#P94DXkj`z3Rk+LAPovogU%fm zmWI~W)<>3>FJ~IOSV3$?+J-^O`#@MYp}+a0+IowFXViXJmZIhC-BSC%3Au5DCo||h zNPcQiBoF!r*uZsHy^(KbG29d`aS7{Zvd*pl<#-_KbX&Tn*SP=uBT#DSLv8rqaCK;~ z3~H&HFQ~<)jZGDh3dJ|~eN}T!gWGlOJ0?^kn(fjS`$gDhe*lG0 Bx~l*H literal 0 HcmV?d00001 diff --git a/doc/lr1110/html/lr1110__radio__types_8h__incl.map b/doc/lr11xx/html/lr11xx__radio__types_8h__incl.map similarity index 62% rename from doc/lr1110/html/lr1110__radio__types_8h__incl.map rename to doc/lr11xx/html/lr11xx__radio__types_8h__incl.map index 09c8312..5124511 100644 --- a/doc/lr1110/html/lr1110__radio__types_8h__incl.map +++ b/doc/lr11xx/html/lr11xx__radio__types_8h__incl.map @@ -1,5 +1,5 @@ - - + + diff --git a/doc/lr11xx/html/lr11xx__radio__types_8h__incl.md5 b/doc/lr11xx/html/lr11xx__radio__types_8h__incl.md5 new file mode 100644 index 0000000..c950772 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__radio__types_8h__incl.md5 @@ -0,0 +1 @@ +1db418d4868fc093053c183533bb3a7f \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__radio__types_8h__incl.png b/doc/lr11xx/html/lr11xx__radio__types_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..68360e511f6264b600564843a668d014887f6f3d GIT binary patch literal 6390 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 + + + + + + +lr11xx_driver: lr11xx_driver/src/lr11xx_radio_types.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    lr11xx_driver +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    lr11xx_radio_types.h
    +
    +
    +Go to the documentation of this file.
    1 
    +
    35 #ifndef LR11XX_RADIO_TYPES_H
    +
    36 #define LR11XX_RADIO_TYPES_H
    +
    37 
    +
    38 #ifdef __cplusplus
    +
    39 extern "C" {
    +
    40 #endif
    +
    41 
    +
    42 /*
    +
    43  * -----------------------------------------------------------------------------
    +
    44  * --- DEPENDENCIES ------------------------------------------------------------
    +
    45  */
    +
    46 
    +
    47 #include <stdbool.h>
    +
    48 #include <stdint.h>
    +
    49 
    +
    50 /*
    +
    51  * -----------------------------------------------------------------------------
    +
    52  * --- PUBLIC MACROS -----------------------------------------------------------
    +
    53  */
    +
    54 
    +
    55 /*
    +
    56  * -----------------------------------------------------------------------------
    +
    57  * --- PUBLIC CONSTANTS --------------------------------------------------------
    +
    58  */
    +
    59 
    +
    60 /*
    +
    61  * -----------------------------------------------------------------------------
    +
    62  * --- PUBLIC TYPES ------------------------------------------------------------
    +
    63  */
    +
    64 
    +
    71 typedef enum
    +
    72 {
    + + + + +
    77 
    +
    84 typedef enum
    +
    85 {
    + + + +
    89  0x02,
    + +
    91 
    +
    97 typedef enum
    +
    98 {
    + + + + +
    103 
    +
    109 typedef enum
    +
    110 {
    + + + + + + + + + + + + + + + + + +
    128 
    +
    132 typedef enum
    +
    133 {
    + + + +
    137 
    +
    141 typedef enum
    +
    142 {
    + + + + + + + + + +
    152 
    +
    156 typedef enum
    +
    157 {
    + + + + + + + + + + + + + +
    171 
    +
    175 typedef enum
    +
    176 {
    + + + + + + + + + +
    186 
    +
    190 typedef enum
    +
    191 {
    +
    192  LR11XX_RADIO_MODE_SLEEP = 0x00,
    + + +
    196  LR11XX_RADIO_MODE_FS = 0x03
    + +
    198 
    +
    205 typedef enum
    +
    206 {
    + +
    208  LR11XX_RADIO_GFSK_CRC_1_BYTE = 0x00,
    +
    209  LR11XX_RADIO_GFSK_CRC_2_BYTES = 0x02,
    +
    210  LR11XX_RADIO_GFSK_CRC_1_BYTE_INV = 0x04,
    +
    211  LR11XX_RADIO_GFSK_CRC_2_BYTES_INV = 0x06,
    + +
    213 
    +
    217 typedef enum
    +
    218 {
    + + + + +
    223 
    +
    236 typedef enum
    +
    237 {
    + + + +
    241  0x02,
    + +
    243 
    +
    252 typedef enum
    +
    253 {
    +
    254  LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_OFF = 0x00,
    +
    255  LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_8BITS = 0x04,
    +
    256  LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_16BITS = 0x05,
    +
    257  LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_24BITS = 0x06,
    +
    258  LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_32BITS = 0x07
    + +
    260 
    +
    264 typedef enum
    +
    265 {
    + + + +
    269 
    +
    273 typedef enum
    +
    274 {
    + + + +
    278 
    +
    285 typedef enum
    +
    286 {
    + + + +
    290 
    +
    294 typedef enum
    +
    295 {
    + + + + +
    300 
    +
    304 typedef enum
    +
    305 {
    + + + +
    309 
    +
    313 typedef enum
    +
    314 {
    + + + +
    318 
    +
    322 typedef enum
    +
    323 {
    + + + + + + + + + + + + + + + + + + + + + + +
    346 
    +
    360 typedef enum
    +
    361 {
    + + + + +
    366 
    +
    370 typedef enum
    +
    371 {
    + + + + + + +
    378 
    + +
    392 {
    +
    393  uint8_t cad_symb_nb;
    +
    394  uint8_t cad_detect_peak;
    +
    395  uint8_t cad_detect_min;
    + +
    399  uint32_t cad_timeout;
    + +
    401 
    + +
    406 {
    + + +
    409  uint8_t rx_len_in_bytes;
    +
    410  bool is_addr_err;
    +
    411  bool is_crc_err;
    +
    413  bool is_len_err;
    +
    414  bool is_abort_err;
    +
    416  bool is_received;
    +
    417  bool is_sent;
    + +
    419 
    + +
    424 {
    + +
    426  int8_t snr_pkt_in_db;
    + + +
    429 
    + +
    434 {
    + + + +
    439 
    + +
    444 {
    +
    445  uint16_t nb_pkt_received;
    +
    446  uint16_t nb_pkt_crc_error;
    +
    447  uint16_t nb_pkt_len_error;
    + +
    449 
    + +
    454 {
    +
    455  uint16_t nb_pkt_received;
    +
    456  uint16_t nb_pkt_crc_error;
    + +
    458  uint16_t nb_pkt_falsesync;
    + +
    460 
    + +
    465 {
    +
    466  uint32_t br_in_bps;
    + + +
    469  uint32_t fdev_in_hz;
    + +
    471 
    + +
    476 {
    + + + +
    480  uint8_t ldro;
    + +
    482 
    + +
    487 {
    + + + + + + + + + +
    497 
    + +
    502 {
    + + + + + + +
    509 
    +
    525 typedef struct lr11xx_radio_pa_cfg_s
    +
    526 {
    + + +
    529  uint8_t pa_duty_cycle;
    +
    530  uint8_t pa_hp_sel;
    + +
    532 
    + +
    537 {
    +
    538  struct
    +
    539  {
    +
    540  uint8_t g4;
    +
    541  uint8_t g5;
    +
    542  uint8_t g6;
    +
    543  uint8_t g7;
    +
    544  uint8_t g8;
    +
    545  uint8_t g9;
    +
    546  uint8_t g10;
    +
    547  uint8_t g11;
    +
    548  uint8_t g12;
    +
    549  uint8_t g13;
    +
    550  uint8_t g13hp1;
    +
    551  uint8_t g13hp2;
    +
    552  uint8_t g13hp3;
    +
    553  uint8_t g13hp4;
    +
    554  uint8_t g13hp5;
    +
    555  uint8_t g13hp6;
    +
    556  uint8_t g13hp7;
    + +
    558 
    +
    559  int16_t gain_offset;
    + +
    561 
    +
    562 /*
    +
    563  * -----------------------------------------------------------------------------
    +
    564  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
    +
    565  */
    +
    566 
    +
    567 #ifdef __cplusplus
    +
    568 }
    +
    569 #endif
    +
    570 
    +
    571 #endif // LR11XX_RADIO_TYPES_H
    +
    572 
    +
    573 /* --- EOF ------------------------------------------------------------------ */
    +
    +
    @ LR11XX_RADIO_LORA_SF7
    Spreading Factor 7.
    Definition: lr11xx_radio_types.h:145
    +
    @ LR11XX_RADIO_RAMP_96_US
    96 us Ramp Time
    Definition: lr11xx_radio_types.h:116
    +
    @ LR11XX_RADIO_PA_SEL_HF
    High-frequency Power Amplifier.
    Definition: lr11xx_radio_types.h:75
    +
    Status of GFSK received packet.
    Definition: lr11xx_radio_types.h:406
    +
    @ LR11XX_RADIO_LORA_CR_LI_4_5
    Coding Rate 4/5 Long Interleaver.
    Definition: lr11xx_radio_types.h:182
    +
    lr11xx_radio_lora_crc_t crc
    LoRa CRC configuration.
    Definition: lr11xx_radio_types.h:506
    +
    @ LR11XX_RADIO_LORA_SF6
    Spreading Factor 6.
    Definition: lr11xx_radio_types.h:144
    +
    @ LR11XX_RADIO_GFSK_BW_23400
    Bandwidth 23.4 kHz DSB.
    Definition: lr11xx_radio_types.h:331
    +
    lr11xx_radio_lora_cr_t cr
    LoRa coding rate.
    Definition: lr11xx_radio_types.h:479
    +
    @ LR11XX_RADIO_GFSK_DC_FREE_WHITENING_SX128X_COMP
    Whitening enabled - SX128x compatibility.
    Definition: lr11xx_radio_types.h:221
    +
    @ LR11XX_RADIO_GFSK_PULSE_SHAPE_OFF
    No filter applied.
    Definition: lr11xx_radio_types.h:372
    +
    @ LR11XX_RADIO_CAD_EXIT_MODE_RX
    Enter in RX mode if an activity is detected.
    Definition: lr11xx_radio_types.h:363
    +
    lr11xx_radio_gfsk_pkt_len_modes_t header_type
    GFSK Header type configuration.
    Definition: lr11xx_radio_types.h:492
    +
    uint16_t nb_pkt_received
    Total number of received packets.
    Definition: lr11xx_radio_types.h:445
    +
    uint8_t sync_word_len_in_bits
    GFSK Syncword length [bits].
    Definition: lr11xx_radio_types.h:490
    +
    @ LR11XX_RADIO_LORA_BW_10
    Bandwidth 10.42 kHz.
    Definition: lr11xx_radio_types.h:158
    +
    @ LR11XX_RADIO_GFSK_CRC_OFF
    CRC check deactivated.
    Definition: lr11xx_radio_types.h:207
    +
    @ LR11XX_RADIO_LORA_SF10
    Spreading Factor 10.
    Definition: lr11xx_radio_types.h:148
    +
    bool is_len_err
    Definition: lr11xx_radio_types.h:413
    +
    lr11xx_radio_fallback_modes_t
    Chip mode after successfull transmission or reception.
    Definition: lr11xx_radio_types.h:98
    +
    uint8_t pa_duty_cycle
    Power Amplifier duty cycle (Default 0x04)
    Definition: lr11xx_radio_types.h:529
    +
    uint8_t ldro
    LoRa LDRO.
    Definition: lr11xx_radio_types.h:480
    +
    lr11xx_radio_lora_bw_t bw
    LoRa bandwidth.
    Definition: lr11xx_radio_types.h:478
    +
    @ LR11XX_RADIO_LORA_BW_31
    Bandwidth 31.25 kHz.
    Definition: lr11xx_radio_types.h:161
    +
    lr11xx_radio_pa_selection_t pa_sel
    Power Amplifier selection.
    Definition: lr11xx_radio_types.h:527
    +
    @ LR11XX_RADIO_GFSK_BW_58600
    Bandwidth 58.6 kHz DSB.
    Definition: lr11xx_radio_types.h:335
    +
    @ LR11XX_RADIO_FALLBACK_FS
    FS.
    Definition: lr11xx_radio_types.h:101
    +
    struct lr11xx_radio_cad_params_s lr11xx_radio_cad_params_t
    Channel Activity Detection parameters.
    +
    @ LR11XX_RADIO_GFSK_BW_39000
    Bandwidth 39.0 kHz DSB.
    Definition: lr11xx_radio_types.h:333
    +
    @ LR11XX_RADIO_PKT_NONE
    State after cold start, Wi-Fi or GNSS capture.
    Definition: lr11xx_radio_types.h:296
    +
    lr11xx_radio_gfsk_crc_type_t
    GFSK Cyclic Redundancy Check configurations.
    Definition: lr11xx_radio_types.h:206
    +
    @ LR11XX_RADIO_GFSK_DC_FREE_WHITENING
    Whitening enabled.
    Definition: lr11xx_radio_types.h:220
    +
    lr11xx_radio_lora_bw_t
    LoRa Bandwidth configurations.
    Definition: lr11xx_radio_types.h:157
    +
    @ LR11XX_RADIO_GFSK_BW_156200
    Bandwidth 156.2 kHz DSB.
    Definition: lr11xx_radio_types.h:339
    +
    @ LR11XX_RADIO_GFSK_BW_78200
    Bandwidth 78.2 kHz DSB.
    Definition: lr11xx_radio_types.h:336
    +
    Modulation configuration for LoRa packet.
    Definition: lr11xx_radio_types.h:476
    +
    @ LR11XX_RADIO_LORA_SF11
    Spreading Factor 11.
    Definition: lr11xx_radio_types.h:149
    +
    @ LR11XX_RADIO_FALLBACK_STDBY_XOSC
    Standby XOSC.
    Definition: lr11xx_radio_types.h:100
    +
    struct lr11xx_radio_rx_buffer_status_s lr11xx_radio_rx_buffer_status_t
    Length and offset of received packet.
    +
    Packet parameter configuration for LoRa packets.
    Definition: lr11xx_radio_types.h:502
    +
    @ LR11XX_RADIO_RAMP_304_US
    304 us Ramp Time
    Definition: lr11xx_radio_types.h:126
    +
    @ LR11XX_RADIO_PA_SEL_LP
    Low-power Power Amplifier.
    Definition: lr11xx_radio_types.h:73
    +
    @ LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD
    Only in LoRa: Uses CAD to listen for over-the-air activity.
    Definition: lr11xx_radio_types.h:316
    +
    struct lr11xx_radio_pkt_params_lora_s lr11xx_radio_pkt_params_lora_t
    Packet parameter configuration for LoRa packets.
    +
    uint8_t cad_detect_min
    Definition: lr11xx_radio_types.h:396
    +
    lr11xx_radio_cad_exit_mode_t
    Possible automatic actions when Channel Activity Detection operations terminate.
    Definition: lr11xx_radio_types.h:361
    +
    @ LR11XX_RADIO_PA_REG_SUPPLY_VREG
    Power amplifier supplied by the main regulator.
    Definition: lr11xx_radio_types.h:306
    +
    @ LR11XX_RADIO_GFSK_BW_187200
    Bandwidth 187.2 kHz DSB.
    Definition: lr11xx_radio_types.h:340
    +
    int8_t signal_rssi_pkt_in_dbm
    RSSI of last packet latched after.
    Definition: lr11xx_radio_types.h:427
    +
    @ LR11XX_RADIO_PKT_TYPE_GFSK
    GFSK modulation.
    Definition: lr11xx_radio_types.h:297
    +
    @ LR11XX_RADIO_RAMP_32_US
    32 us Ramp Time
    Definition: lr11xx_radio_types.h:112
    +
    uint16_t preamble_len_in_bits
    GFSK Preamble length [bits].
    Definition: lr11xx_radio_types.h:488
    +
    @ LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_03
    Gaussian BT 0.3.
    Definition: lr11xx_radio_types.h:373
    +
    lr11xx_radio_cad_exit_mode_t cad_exit_mode
    Automated action on CAD completion.
    Definition: lr11xx_radio_types.h:398
    +
    uint16_t nb_pkt_crc_error
    Total number of received packets with CRC error.
    Definition: lr11xx_radio_types.h:446
    +
    @ LR11XX_RADIO_LORA_SF9
    Spreading Factor 9.
    Definition: lr11xx_radio_types.h:147
    +
    @ LR11XX_RADIO_RAMP_208_US
    208 us Ramp Time
    Definition: lr11xx_radio_types.h:123
    +
    uint16_t preamble_len_in_symb
    LoRa Preamble length [symbols].
    Definition: lr11xx_radio_types.h:503
    +
    @ LR11XX_RADIO_RAMP_128_US
    128 us Ramp Time
    Definition: lr11xx_radio_types.h:118
    +
    struct lr11xx_radio_pa_cfg_s lr11xx_radio_pa_cfg_t
    Configuration of Power Amplifier.
    +
    @ LR11XX_RADIO_LORA_BW_20
    Bandwidth 20.83 kHz.
    Definition: lr11xx_radio_types.h:160
    +
    lr11xx_radio_lora_pkt_len_modes_t header_type
    LoRa Header type configuration.
    Definition: lr11xx_radio_types.h:504
    +
    lr11xx_radio_pkt_type_t
    Packet type values.
    Definition: lr11xx_radio_types.h:295
    +
    lr11xx_radio_lora_sf_t
    LoRa Spreading Factor configurations.
    Definition: lr11xx_radio_types.h:142
    +
    @ LR11XX_RADIO_LORA_CR_4_6
    Coding Rate 4/6 Short Interleaver.
    Definition: lr11xx_radio_types.h:179
    +
    uint8_t pld_len_in_bytes
    LoRa Payload length [bytes].
    Definition: lr11xx_radio_types.h:505
    +
    lr11xx_radio_lora_iq_t iq
    LoRa IQ configuration.
    Definition: lr11xx_radio_types.h:507
    +
    RSSI calibration table.
    Definition: lr11xx_radio_types.h:537
    +
    @ LR11XX_RADIO_MODE_STANDBY_XOSC
    Standby XOSC.
    Definition: lr11xx_radio_types.h:195
    +
    @ LR11XX_RADIO_RAMP_48_US
    48 us Ramp Time (Default)
    Definition: lr11xx_radio_types.h:113
    +
    @ LR11XX_RADIO_GFSK_BW_5800
    Bandwidth 5.8 kHz DSB.
    Definition: lr11xx_radio_types.h:325
    +
    lr11xx_radio_gfsk_preamble_detector_t
    GFSK Preamble Detector Length configurations.
    Definition: lr11xx_radio_types.h:253
    +
    @ LR11XX_RADIO_CAD_EXIT_MODE_STANDBYRC
    Enter standby RC mode after CAD operation.
    Definition: lr11xx_radio_types.h:362
    +
    Modulation configuration for GFSK packet.
    Definition: lr11xx_radio_types.h:465
    +
    Channel Activity Detection parameters.
    Definition: lr11xx_radio_types.h:392
    +
    lr11xx_radio_gfsk_pkt_len_modes_t
    GFSK Header Type configurations.
    Definition: lr11xx_radio_types.h:237
    +
    struct lr11xx_radio_pkt_status_gfsk_s lr11xx_radio_pkt_status_gfsk_t
    Status of GFSK received packet.
    +
    int8_t snr_pkt_in_db
    SNR estimated on last received packet.
    Definition: lr11xx_radio_types.h:426
    +
    @ LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_05
    Gaussian BT 0.5.
    Definition: lr11xx_radio_types.h:374
    +
    @ LR11XX_RADIO_GFSK_BW_19500
    Bandwidth 19.5 kHz DSB.
    Definition: lr11xx_radio_types.h:330
    +
    uint32_t br_in_bps
    GFSK bitrate [bit/s].
    Definition: lr11xx_radio_types.h:466
    +
    @ LR11XX_RADIO_LORA_BW_400
    Bandwidth 406.00 kHz, 2G4 and compatible with LR112x chips only.
    Definition: lr11xx_radio_types.h:168
    +
    uint32_t fdev_in_hz
    GFSK frequency deviation [Hz].
    Definition: lr11xx_radio_types.h:469
    +
    @ LR11XX_RADIO_LORA_IQ_STANDARD
    IQ standard.
    Definition: lr11xx_radio_types.h:287
    +
    @ LR11XX_RADIO_MODE_FS
    Frequency Synthesis.
    Definition: lr11xx_radio_types.h:196
    +
    lr11xx_radio_gfsk_address_filtering_t address_filtering
    GFSK Address filtering/comparison configuration.
    Definition: lr11xx_radio_types.h:491
    +
    struct lr11xx_radio_mod_params_lora_s lr11xx_radio_mod_params_lora_t
    Modulation configuration for LoRa packet.
    +
    struct lr11xx_radio_pkt_params_gfsk_s lr11xx_radio_pkt_params_gfsk_t
    Packet parameter configuration for GFSK packets.
    +
    @ LR11XX_RADIO_CAD_EXIT_MODE_TX
    Enter in TX mode if no activity is detected.
    Definition: lr11xx_radio_types.h:364
    +
    struct lr11xx_radio_rssi_calibration_table_s::@0 gain_tune
    Used to set gain tune value for RSSI calibration.
    +
    lr11xx_radio_gfsk_bw_t
    GFSK Bandwidth configurations.
    Definition: lr11xx_radio_types.h:323
    +
    @ LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_1
    Gaussian BT 1.0.
    Definition: lr11xx_radio_types.h:376
    +
    @ LR11XX_RADIO_RAMP_160_US
    160 us Ramp Time
    Definition: lr11xx_radio_types.h:120
    +
    @ LR11XX_RADIO_GFSK_DC_FREE_OFF
    Whitening deactivated.
    Definition: lr11xx_radio_types.h:219
    +
    @ LR11XX_RADIO_GFSK_BW_4800
    Bandwidth 4.8 kHz DSB.
    Definition: lr11xx_radio_types.h:324
    +
    @ LR11XX_RADIO_GFSK_BW_11700
    Bandwidth 11.7 kHz DSB.
    Definition: lr11xx_radio_types.h:328
    +
    struct lr11xx_radio_stats_gfsk_s lr11xx_radio_stats_gfsk_t
    GFSK packet statistic structure.
    +
    lr11xx_radio_lora_sf_t sf
    LoRa spreading factor.
    Definition: lr11xx_radio_types.h:477
    +
    lr11xx_radio_gfsk_preamble_detector_t preamble_detector
    GFSK Preamble detection configuration.
    Definition: lr11xx_radio_types.h:489
    +
    @ LR11XX_RADIO_LORA_CR_LI_4_6
    Coding Rate 4/6 Long Interleaver.
    Definition: lr11xx_radio_types.h:183
    +
    Length and offset of received packet.
    Definition: lr11xx_radio_types.h:434
    +
    @ LR11XX_RADIO_PA_REG_SUPPLY_VBAT
    Power amplifier supplied by the battery.
    Definition: lr11xx_radio_types.h:307
    +
    uint32_t cad_timeout
    Value used to compute timeout.
    Definition: lr11xx_radio_types.h:399
    +
    @ LR11XX_RADIO_LORA_PKT_IMPLICIT
    Implicit header: not transmitted over the air.
    Definition: lr11xx_radio_types.h:276
    +
    uint8_t pld_len_in_bytes
    GFSK Payload length [bytes].
    Definition: lr11xx_radio_types.h:493
    +
    lr11xx_radio_pa_reg_supply_t
    Select power amplifier supply source.
    Definition: lr11xx_radio_types.h:305
    +
    @ LR11XX_RADIO_GFSK_BW_467000
    Bandwidth 467.0 kHz DSB.
    Definition: lr11xx_radio_types.h:344
    +
    @ LR11XX_RADIO_RX_DUTY_CYCLE_MODE_RX
    LoRa/GFSK: Uses Rx for listening to packets.
    Definition: lr11xx_radio_types.h:315
    +
    uint8_t rx_len_in_bytes
    Length of the last received packet [Bytes].
    Definition: lr11xx_radio_types.h:409
    +
    @ LR11XX_RADIO_GFSK_ADDRESS_FILTERING_NODE_ADDRESS
    Filter on Node Address.
    Definition: lr11xx_radio_types.h:87
    +
    @ LR11XX_RADIO_LORA_PKT_EXPLICIT
    Explicit header: transmitted over the air.
    Definition: lr11xx_radio_types.h:275
    +
    @ LR11XX_RADIO_LORA_CR_4_5
    Coding Rate 4/5 Short Interleaver.
    Definition: lr11xx_radio_types.h:178
    +
    @ LR11XX_RADIO_LORA_IQ_INVERTED
    IQ inverted.
    Definition: lr11xx_radio_types.h:288
    +
    @ LR11XX_RADIO_RAMP_80_US
    80 us Ramp Time
    Definition: lr11xx_radio_types.h:115
    +
    @ LR11XX_RADIO_LORA_BW_200
    Bandwidth 203.00 kHz, 2G4 and compatible with LR112x chips only.
    Definition: lr11xx_radio_types.h:167
    +
    lr11xx_radio_lora_iq_t
    LoRa IQ mode configurations.
    Definition: lr11xx_radio_types.h:286
    +
    lr11xx_radio_gfsk_pulse_shape_t pulse_shape
    GFSK pulse shape.
    Definition: lr11xx_radio_types.h:467
    +
    Status of received packet.
    Definition: lr11xx_radio_types.h:424
    +
    @ LR11XX_RADIO_PA_SEL_HP
    High-power Power Amplifier.
    Definition: lr11xx_radio_types.h:74
    +
    bool is_received
    Asserted when packet reception is done (applicable in RX)
    Definition: lr11xx_radio_types.h:416
    +
    @ LR11XX_RADIO_GFSK_BW_7300
    Bandwidth 7.3 kHz DSB.
    Definition: lr11xx_radio_types.h:326
    +
    @ LR11XX_RADIO_GFSK_ADDRESS_FILTERING_DISABLE
    Filter deactivated.
    Definition: lr11xx_radio_types.h:86
    +
    int8_t rssi_avg_in_dbm
    RSSI averaged over the payload of the last received packet.
    Definition: lr11xx_radio_types.h:408
    +
    @ LR11XX_RADIO_GFSK_PKT_VAR_LEN_SX128X_COMP
    Payload length is sent/read over the air - SX128x compatibility.
    Definition: lr11xx_radio_types.h:240
    +
    int16_t gain_offset
    Used to set gain offset value for RSSI calibration.
    Definition: lr11xx_radio_types.h:559
    +
    lr11xx_radio_rx_duty_cycle_mode_t
    RX Duty Cycle Modes.
    Definition: lr11xx_radio_types.h:314
    +
    struct lr11xx_radio_mod_params_gfsk_s lr11xx_radio_mod_params_gfsk_t
    Modulation configuration for GFSK packet.
    +
    lr11xx_radio_intermediary_mode_t
    Values for intermediary mode.
    Definition: lr11xx_radio_types.h:191
    +
    GFSK packet statistic structure.
    Definition: lr11xx_radio_types.h:444
    +
    @ LR11XX_RADIO_RAMP_112_US
    112 us Ramp Time
    Definition: lr11xx_radio_types.h:117
    +
    @ LR11XX_RADIO_LORA_BW_125
    Bandwidth 125.00 kHz.
    Definition: lr11xx_radio_types.h:164
    +
    @ LR11XX_RADIO_GFSK_BW_29300
    Bandwidth 29.3 kHz DSB.
    Definition: lr11xx_radio_types.h:332
    +
    @ LR11XX_RADIO_GFSK_PKT_FIX_LEN
    Payload length is not sent/read over the air.
    Definition: lr11xx_radio_types.h:238
    +
    @ LR11XX_RADIO_MODE_STANDBY_RC
    Standby RC.
    Definition: lr11xx_radio_types.h:194
    +
    uint8_t pld_len_in_bytes
    Length of received packet [Bytes].
    Definition: lr11xx_radio_types.h:435
    +
    @ LR11XX_RADIO_GFSK_ADDRESS_FILTERING_NODE_AND_BROADCAST_ADDRESSES
    Filtering on Node and Broadcast addresses.
    Definition: lr11xx_radio_types.h:88
    +
    @ LR11XX_RADIO_LORA_BW_41
    Bandwidth 41.67 kHz.
    Definition: lr11xx_radio_types.h:162
    +
    uint16_t nb_pkt_received
    Total number of received packets.
    Definition: lr11xx_radio_types.h:455
    +
    @ LR11XX_RADIO_LORA_BW_500
    Bandwidth 500.00 kHz.
    Definition: lr11xx_radio_types.h:166
    +
    lr11xx_radio_gfsk_crc_type_t crc_type
    GFSK CRC configuration.
    Definition: lr11xx_radio_types.h:494
    +
    @ LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_07
    Gaussian BT 0.7.
    Definition: lr11xx_radio_types.h:375
    +
    bool is_crc_err
    CRC status of the current packet (applicable only in RX, with CRC enabled)
    Definition: lr11xx_radio_types.h:412
    +
    uint8_t buffer_start_pointer
    Definition: lr11xx_radio_types.h:436
    +
    uint8_t cad_detect_peak
    Definition: lr11xx_radio_types.h:394
    +
    uint16_t nb_pkt_len_error
    Total number of received packets with a length error.
    Definition: lr11xx_radio_types.h:447
    +
    lr11xx_radio_gfsk_dc_free_t
    GFSK data whitening configurations.
    Definition: lr11xx_radio_types.h:218
    +
    @ LR11XX_RADIO_GFSK_PKT_VAR_LEN
    Payload length is sent/read over the air.
    Definition: lr11xx_radio_types.h:239
    +
    @ LR11XX_RADIO_LORA_BW_15
    Bandwidth 15.63 kHz.
    Definition: lr11xx_radio_types.h:159
    +
    bool is_sent
    Asserted when packet transmission is done (applicable in TX)
    Definition: lr11xx_radio_types.h:417
    +
    lr11xx_radio_gfsk_bw_t bw_dsb_param
    GFSK bandwidth.
    Definition: lr11xx_radio_types.h:468
    +
    @ LR11XX_RADIO_FALLBACK_STDBY_RC
    Standby RC (Default)
    Definition: lr11xx_radio_types.h:99
    +
    @ LR11XX_RADIO_LORA_BW_800
    Bandwidth 812.00 kHz, 2G4 and compatible with LR112x chips only.
    Definition: lr11xx_radio_types.h:169
    +
    uint16_t nb_pkt_header_error
    Total number of packets with header error.
    Definition: lr11xx_radio_types.h:457
    +
    LoRa packet statistic structure.
    Definition: lr11xx_radio_types.h:454
    +
    lr11xx_radio_lora_network_type_t
    LoRa network type configuration.
    Definition: lr11xx_radio_types.h:133
    +
    @ LR11XX_RADIO_LORA_CRC_OFF
    CRC deactivated.
    Definition: lr11xx_radio_types.h:266
    +
    @ LR11XX_RADIO_LORA_SF5
    Spreading Factor 5.
    Definition: lr11xx_radio_types.h:143
    +
    @ LR11XX_RADIO_GFSK_BW_14600
    Bandwidth 14.6 kHz DSB.
    Definition: lr11xx_radio_types.h:329
    +
    @ LR11XX_RADIO_RAMP_240_US
    240 us Ramp Time
    Definition: lr11xx_radio_types.h:124
    +
    struct lr11xx_radio_stats_lora_s lr11xx_radio_stats_lora_t
    LoRa packet statistic structure.
    +
    @ LR11XX_RADIO_GFSK_BW_9700
    Bandwidth 9.7 kHz DSB.
    Definition: lr11xx_radio_types.h:327
    +
    @ LR11XX_RADIO_LORA_SF8
    Spreading Factor 8.
    Definition: lr11xx_radio_types.h:146
    +
    @ LR11XX_RADIO_RAMP_272_US
    272 us Ramp Time
    Definition: lr11xx_radio_types.h:125
    +
    uint16_t nb_pkt_falsesync
    Total number of false sync.
    Definition: lr11xx_radio_types.h:458
    +
    @ LR11XX_RADIO_LORA_SF12
    Spreading Factor 12.
    Definition: lr11xx_radio_types.h:150
    +
    @ LR11XX_RADIO_PKT_TYPE_LORA
    LoRa modulation.
    Definition: lr11xx_radio_types.h:298
    +
    @ LR11XX_RADIO_GFSK_BW_46900
    Bandwidth 46.9 kHz DSB.
    Definition: lr11xx_radio_types.h:334
    +
    @ LR11XX_RADIO_LORA_NO_CR
    No Coding Rate.
    Definition: lr11xx_radio_types.h:177
    +
    @ LR11XX_RADIO_RAMP_192_US
    192 us Ramp Time
    Definition: lr11xx_radio_types.h:122
    +
    @ LR11XX_RADIO_LORA_CR_4_7
    Coding Rate 4/7 Short Interleaver.
    Definition: lr11xx_radio_types.h:180
    +
    lr11xx_radio_lora_crc_t
    LoRa Cyclic Redundancy Check configurations.
    Definition: lr11xx_radio_types.h:265
    +
    lr11xx_radio_pa_selection_t
    Power Amplifier Selection values.
    Definition: lr11xx_radio_types.h:72
    +
    @ LR11XX_RADIO_GFSK_BW_117300
    Bandwidth 117.3 kHz DSB.
    Definition: lr11xx_radio_types.h:338
    +
    @ LR11XX_RADIO_RAMP_176_US
    176 us Ramp Time
    Definition: lr11xx_radio_types.h:121
    +
    lr11xx_radio_gfsk_dc_free_t dc_free
    GFSK Whitening configuration.
    Definition: lr11xx_radio_types.h:495
    +
    @ LR11XX_RADIO_GFSK_BW_312000
    Bandwidth 312.0 kHz DSB.
    Definition: lr11xx_radio_types.h:342
    +
    @ LR11XX_RADIO_GFSK_BW_373600
    Bandwidth 373.6 kHz DSB.
    Definition: lr11xx_radio_types.h:343
    +
    lr11xx_radio_gfsk_address_filtering_t
    GFSK Address Filtering configurations.
    Definition: lr11xx_radio_types.h:85
    +
    lr11xx_radio_ramp_time_t
    Ramping time for PA.
    Definition: lr11xx_radio_types.h:110
    +
    struct lr11xx_radio_pkt_status_lora_s lr11xx_radio_pkt_status_lora_t
    Status of received packet.
    +
    uint8_t cad_symb_nb
    Number of symbols used for CAD detection.
    Definition: lr11xx_radio_types.h:393
    +
    @ LR11XX_RADIO_GFSK_BW_93800
    Bandwidth 93.8 kHz DSB.
    Definition: lr11xx_radio_types.h:337
    +
    @ LR11XX_RADIO_LORA_CRC_ON
    CRC activated.
    Definition: lr11xx_radio_types.h:267
    +
    @ LR11XX_RADIO_LORA_BW_250
    Bandwidth 250.00 kHz.
    Definition: lr11xx_radio_types.h:165
    +
    Configuration of Power Amplifier.
    Definition: lr11xx_radio_types.h:526
    +
    uint16_t nb_pkt_crc_error
    Total number of received packets with CRC error.
    Definition: lr11xx_radio_types.h:456
    +
    @ LR11XX_RADIO_LORA_NETWORK_PUBLIC
    LoRa public network.
    Definition: lr11xx_radio_types.h:135
    +
    @ LR11XX_RADIO_LORA_NETWORK_PRIVATE
    LoRa private network.
    Definition: lr11xx_radio_types.h:134
    +
    @ LR11XX_RADIO_LORA_CR_LI_4_8
    Coding Rate 4/8 Long Interleaver.
    Definition: lr11xx_radio_types.h:184
    +
    lr11xx_radio_pa_reg_supply_t pa_reg_supply
    Power Amplifier regulator supply source.
    Definition: lr11xx_radio_types.h:528
    +
    bool is_addr_err
    Definition: lr11xx_radio_types.h:410
    +
    struct lr11xx_radio_rssi_calibration_table_s lr11xx_radio_rssi_calibration_table_t
    RSSI calibration table.
    +
    @ LR11XX_RADIO_LORA_BW_62
    Bandwidth 62.50 kHz.
    Definition: lr11xx_radio_types.h:163
    +
    bool is_abort_err
    Asserted when the current packet has been aborted (applicable in RX and TX)
    Definition: lr11xx_radio_types.h:415
    +
    @ LR11XX_RADIO_MODE_SLEEP
    Definition: lr11xx_radio_types.h:192
    +
    int8_t rssi_sync_in_dbm
    RSSI value latched on detection of the last received packet Sync Address.
    Definition: lr11xx_radio_types.h:407
    +
    lr11xx_radio_lora_pkt_len_modes_t
    LoRa Header type configurations.
    Definition: lr11xx_radio_types.h:274
    +
    uint8_t pa_hp_sel
    Number of slices for HPA (Default 0x07)
    Definition: lr11xx_radio_types.h:530
    +
    @ LR11XX_RADIO_LORA_CR_4_8
    Coding Rate 4/8 Short Interleaver.
    Definition: lr11xx_radio_types.h:181
    +
    @ LR11XX_RADIO_RAMP_144_US
    144 us Ramp Time
    Definition: lr11xx_radio_types.h:119
    +
    @ LR11XX_RADIO_RAMP_64_US
    64 us Ramp Time
    Definition: lr11xx_radio_types.h:114
    +
    int8_t rssi_pkt_in_dbm
    Average RSSI over last received packet.
    Definition: lr11xx_radio_types.h:425
    +
    @ LR11XX_RADIO_GFSK_BW_234300
    Bandwidth 232.3 kHz DSB.
    Definition: lr11xx_radio_types.h:341
    +
    @ LR11XX_RADIO_RAMP_16_US
    16 us Ramp Time
    Definition: lr11xx_radio_types.h:111
    +
    lr11xx_radio_lora_cr_t
    LoRa Coding Rate configurations.
    Definition: lr11xx_radio_types.h:176
    +
    lr11xx_radio_gfsk_pulse_shape_t
    Pulse shape configurations.
    Definition: lr11xx_radio_types.h:371
    +
    Packet parameter configuration for GFSK packets.
    Definition: lr11xx_radio_types.h:487
    + + + + diff --git a/doc/lr1110/html/lr1110__regmem_8c.html b/doc/lr11xx/html/lr11xx__regmem_8c.html similarity index 60% rename from doc/lr1110/html/lr1110__regmem_8c.html rename to doc/lr11xx/html/lr11xx__regmem_8c.html index e1b415b..7622cec 100644 --- a/doc/lr1110/html/lr1110__regmem_8c.html +++ b/doc/lr11xx/html/lr11xx__regmem_8c.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_regmem.c File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_regmem.c File Reference @@ -21,7 +21,7 @@ -
    lr1110_driver +
    lr11xx_driver
    @@ -61,7 +61,7 @@
    @@ -70,263 +70,264 @@ Enumerations | Functions
    -
    lr1110_regmem.c File Reference
    +
    lr11xx_regmem.c File Reference

    -

    Register/memory driver implementation for LR1110. +

    Register/memory driver implementation for LR11XX. More...

    -
    #include "lr1110_regmem.h"
    -#include "lr1110_hal.h"
    +
    #include "lr11xx_regmem.h"
    +#include "lr11xx_hal.h"
    -Include dependency graph for lr1110_regmem.c:
    +Include dependency graph for lr11xx_regmem.c:
    -
    - - - - +
    + + + + - +
    - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

    Macros

    -#define LR1110_REGMEM_CLEAR_RXBUFFER_CMD_LENGTH   2
     
    -#define LR1110_REGMEM_WRITE_REGMEM32_CMD_LENGTH   ( 2 + 4 )
     
    -#define LR1110_REGMEM_READ_REGMEM32_CMD_LENGTH   ( 2 + 4 + 1 )
     
    -#define LR1110_REGMEM_WRITE_MEM8_CMD_LENGTH   ( 2 + 4 )
     
    -#define LR1110_REGMEM_READ_MEM8_CMD_LENGTH   ( 2 + 4 + 1 )
     
    -#define LR1110_REGMEM_WRITE_BUFFER8_CMD_LENGTH   ( 2 )
     
    -#define LR1110_REGMEM_READ_BUFFER8_CMD_LENGTH   ( 2 + 2 )
     
    -#define LR1110_REGMEM_WRITE_REGMEM32_MASK_CMD_LENGTH   ( 2 + 4 + 4 + 4 )
     
    -#define LR1110_REGMEM_BUFFER_SIZE_MAX   ( 256 )
     
    +#define LR11XX_REGMEM_CLEAR_RXBUFFER_CMD_LENGTH   2
     
    +#define LR11XX_REGMEM_WRITE_REGMEM32_CMD_LENGTH   ( 2 + 4 )
     
    +#define LR11XX_REGMEM_READ_REGMEM32_CMD_LENGTH   ( 2 + 4 + 1 )
     
    +#define LR11XX_REGMEM_WRITE_MEM8_CMD_LENGTH   ( 2 + 4 )
     
    +#define LR11XX_REGMEM_READ_MEM8_CMD_LENGTH   ( 2 + 4 + 1 )
     
    +#define LR11XX_REGMEM_WRITE_BUFFER8_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_REGMEM_READ_BUFFER8_CMD_LENGTH   ( 2 + 2 )
     
    +#define LR11XX_REGMEM_WRITE_REGMEM32_MASK_CMD_LENGTH   ( 2 + 4 + 4 + 4 )
     
    +#define LR11XX_REGMEM_BUFFER_SIZE_MAX   ( 256 )
     
    - +

    Enumerations

    enum  {
    -  LR1110_BL_GET_STATUS_OC = 0x0100, -LR1110_BL_GET_VERSION_OC = 0x0101, -LR1110_BL_ERASE_FLASH_OC = 0x8000, -LR1110_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003, +  LR11XX_BL_GET_STATUS_OC = 0x0100, +LR11XX_BL_GET_VERSION_OC = 0x0101, +LR11XX_BL_ERASE_FLASH_OC = 0x8000, +LR11XX_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003,
    -  LR1110_BL_REBOOT_OC = 0x8005, -LR1110_BL_GET_PIN_OC = 0x800B, -LR1110_BL_READ_CHIP_EUI_OC = 0x800C, -LR1110_BL_READ_JOIN_EUI_OC = 0x800D, +  LR11XX_BL_REBOOT_OC = 0x8005, +LR11XX_BL_GET_PIN_OC = 0x800B, +LR11XX_BL_READ_CHIP_EUI_OC = 0x800C, +LR11XX_BL_READ_JOIN_EUI_OC = 0x800D,
    -  LR1110_CRYPTO_SELECT_OC = 0x0500, -LR1110_CRYPTO_SET_KEY_OC = 0x0502, -LR1110_CRYPTO_DERIVE_KEY_OC = 0x0503, -LR1110_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504, +  LR11XX_CRYPTO_SELECT_OC = 0x0500, +LR11XX_CRYPTO_SET_KEY_OC = 0x0502, +LR11XX_CRYPTO_DERIVE_KEY_OC = 0x0503, +LR11XX_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504,
    -  LR1110_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, -LR1110_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, -LR1110_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, -LR1110_CRYPTO_ENCRYPT_AES_OC = 0x0508, +  LR11XX_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, +LR11XX_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, +LR11XX_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, +LR11XX_CRYPTO_ENCRYPT_AES_OC = 0x0508,
    -  LR1110_CRYPTO_DECRYPT_AES_OC = 0x0509, -LR1110_CRYPTO_STORE_TO_FLASH_OC = 0x050A, -LR1110_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, -LR1110_CRYPTO_SET_PARAMETER_OC = 0x050D, +  LR11XX_CRYPTO_DECRYPT_AES_OC = 0x0509, +LR11XX_CRYPTO_STORE_TO_FLASH_OC = 0x050A, +LR11XX_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, +LR11XX_CRYPTO_SET_PARAMETER_OC = 0x050D,
    -  LR1110_CRYPTO_GET_PARAMETER_OC = 0x050E, -LR1110_GNSS_SET_CONSTELLATION_OC = 0x0400, -LR1110_GNSS_READ_CONSTELLATION_OC = 0x0401, -LR1110_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402, +  LR11XX_CRYPTO_GET_PARAMETER_OC = 0x050E, +LR11XX_GNSS_SET_CONSTELLATION_OC = 0x0400, +LR11XX_GNSS_READ_CONSTELLATION_OC = 0x0401, +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402,
    -  LR1110_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, -LR1110_GNSS_READ_FW_VERSION_OC = 0x0406, -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, -LR1110_GNSS_SET_SCAN_MODE_OC = 0x0408, +  LR11XX_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, +LR11XX_GNSS_READ_FW_VERSION_OC = 0x0406, +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, +LR11XX_GNSS_SET_SCAN_MODE_OC = 0x0408,
    -  LR1110_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, -LR1110_GNSS_SCAN_ASSISTED_OC = 0x040A, -LR1110_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, -LR1110_GNSS_SCAN_READ_RES_OC = 0x040D, +  LR11XX_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, +LR11XX_GNSS_SCAN_ASSISTED_OC = 0x040A, +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, +LR11XX_GNSS_SCAN_READ_RES_OC = 0x040D,
    -  LR1110_GNSS_ALMANAC_UPDATE_OC = 0x040E, -LR1110_GNSS_ALMANAC_READ_OC = 0x040F, -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411, +  LR11XX_GNSS_ALMANAC_UPDATE_OC = 0x040E, +LR11XX_GNSS_ALMANAC_READ_OC = 0x040F, +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411,
    -  LR1110_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, -LR1110_GNSS_PUSH_DM_MSG_OC = 0x0415, -LR1110_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, -LR1110_GNSS_GET_NB_SATELLITES_OC = 0x0417, +  LR11XX_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, +LR11XX_GNSS_PUSH_DM_MSG_OC = 0x0415, +LR11XX_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, +LR11XX_GNSS_GET_NB_SATELLITES_OC = 0x0417,
    -  LR1110_GNSS_GET_SATELLITES_OC = 0x0418, -LR1110_GNSS_GET_TIMINGS_OC = 0x0419, -LR1110_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, -LR1110_LR_FHSS_BUILD_FRAME_OC = 0x022C, +  LR11XX_GNSS_GET_SATELLITES_OC = 0x0418, +LR11XX_GNSS_GET_TIMINGS_OC = 0x0419, +LR11XX_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, +LR11XX_LR_FHSS_BUILD_FRAME_OC = 0x022C,
    -  LR1110_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, -LR1110_RADIO_RESET_STATS_OC = 0x0200, -LR1110_RADIO_GET_STATS_OC = 0x0201, -LR1110_RADIO_GET_PKT_TYPE_OC = 0x0202, +  LR11XX_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, +LR11XX_RADIO_RESET_STATS_OC = 0x0200, +LR11XX_RADIO_GET_STATS_OC = 0x0201, +LR11XX_RADIO_GET_PKT_TYPE_OC = 0x0202,
    -  LR1110_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, -LR1110_RADIO_GET_PKT_STATUS_OC = 0x0204, -LR1110_RADIO_GET_RSSI_INST_OC = 0x0205, -LR1110_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206, +  LR11XX_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, +LR11XX_RADIO_GET_PKT_STATUS_OC = 0x0204, +LR11XX_RADIO_GET_RSSI_INST_OC = 0x0205, +LR11XX_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206,
    -  LR1110_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, -LR1110_RADIO_SET_RX_OC = 0x0209, -LR1110_RADIO_SET_TX_OC = 0x020A, -LR1110_RADIO_SET_RF_FREQUENCY_OC = 0x020B, +  LR11XX_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, +LR11XX_RADIO_SET_RX_OC = 0x0209, +LR11XX_RADIO_SET_TX_OC = 0x020A, +LR11XX_RADIO_SET_RF_FREQUENCY_OC = 0x020B,
    -  LR1110_RADIO_AUTOTXRX_OC = 0x020C, -LR1110_RADIO_SET_CAD_PARAMS_OC = 0x020D, -LR1110_RADIO_SET_PKT_TYPE_OC = 0x020E, -LR1110_RADIO_SET_MODULATION_PARAM_OC = 0x020F, +  LR11XX_RADIO_AUTOTXRX_OC = 0x020C, +LR11XX_RADIO_SET_CAD_PARAMS_OC = 0x020D, +LR11XX_RADIO_SET_PKT_TYPE_OC = 0x020E, +LR11XX_RADIO_SET_MODULATION_PARAM_OC = 0x020F,
    -  LR1110_RADIO_SET_PKT_PARAM_OC = 0x0210, -LR1110_RADIO_SET_TX_PARAMS_OC = 0x0211, -LR1110_RADIO_SET_PKT_ADRS_OC = 0x0212, -LR1110_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213, +  LR11XX_RADIO_SET_PKT_PARAM_OC = 0x0210, +LR11XX_RADIO_SET_TX_PARAMS_OC = 0x0211, +LR11XX_RADIO_SET_PKT_ADRS_OC = 0x0212, +LR11XX_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213,
    -  LR1110_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, -LR1110_RADIO_SET_PA_CFG_OC = 0x0215, -LR1110_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, -LR1110_RADIO_SET_CAD_OC = 0x0218, +  LR11XX_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, +LR11XX_RADIO_SET_PA_CFG_OC = 0x0215, +LR11XX_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, +LR11XX_RADIO_SET_CAD_OC = 0x0218,
    -  LR1110_RADIO_SET_TX_CW_OC = 0x0219, -LR1110_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, -LR1110_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, -LR1110_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224, +  LR11XX_RADIO_SET_TX_CW_OC = 0x0219, +LR11XX_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, +LR11XX_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, +LR11XX_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224,
    -  LR1110_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, -LR1110_RADIO_SET_RX_BOOSTED_OC = 0x0227, -LR1110_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B, -LR1110_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +  LR11XX_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, +LR11XX_RADIO_SET_RX_BOOSTED_OC = 0x0227, +LR11XX_RADIO_SET_RSSI_CALIBRATION_OC = 0x0229, +LR11XX_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B,
    -  LR1110_REGMEM_WRITE_REGMEM32_OC = 0x0105, -LR1110_REGMEM_READ_REGMEM32_OC = 0x0106, -LR1110_REGMEM_WRITE_MEM8_OC = 0x0107, -LR1110_REGMEM_READ_MEM8_OC = 0x0108, +  LR11XX_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +LR11XX_REGMEM_WRITE_REGMEM32_OC = 0x0105, +LR11XX_REGMEM_READ_REGMEM32_OC = 0x0106, +LR11XX_REGMEM_WRITE_MEM8_OC = 0x0107,
    -  LR1110_REGMEM_WRITE_BUFFER8_OC = 0x0109, -LR1110_REGMEM_READ_BUFFER8_OC = 0x010A, -LR1110_REGMEM_CLEAR_RXBUFFER_OC = 0x010B, -LR1110_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +  LR11XX_REGMEM_READ_MEM8_OC = 0x0108, +LR11XX_REGMEM_WRITE_BUFFER8_OC = 0x0109, +LR11XX_REGMEM_READ_BUFFER8_OC = 0x010A, +LR11XX_REGMEM_CLEAR_RXBUFFER_OC = 0x010B,
    -  LR1110_SYSTEM_GET_STATUS_OC = 0x0100, -LR1110_SYSTEM_GET_VERSION_OC = 0x0101, -LR1110_SYSTEM_GET_ERRORS_OC = 0x010D, -LR1110_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +  LR11XX_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +LR11XX_SYSTEM_GET_STATUS_OC = 0x0100, +LR11XX_SYSTEM_GET_VERSION_OC = 0x0101, +LR11XX_SYSTEM_GET_ERRORS_OC = 0x010D,
    -  LR1110_SYSTEM_CALIBRATE_OC = 0x010F, -LR1110_SYSTEM_SET_REGMODE_OC = 0x0110, -LR1110_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111, -LR1110_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +  LR11XX_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +LR11XX_SYSTEM_CALIBRATE_OC = 0x010F, +LR11XX_SYSTEM_SET_REGMODE_OC = 0x0110, +LR11XX_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111,
    -  LR1110_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, -LR1110_SYSTEM_CLEAR_IRQ_OC = 0x0114, -LR1110_SYSTEM_CFG_LFCLK_OC = 0x0116, -LR1110_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +  LR11XX_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +LR11XX_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, +LR11XX_SYSTEM_CLEAR_IRQ_OC = 0x0114, +LR11XX_SYSTEM_CFG_LFCLK_OC = 0x0116,
    -  LR1110_SYSTEM_REBOOT_OC = 0x0118, -LR1110_SYSTEM_GET_VBAT_OC = 0x0119, -LR1110_SYSTEM_GET_TEMP_OC = 0x011A, -LR1110_SYSTEM_SET_SLEEP_OC = 0x011B, +  LR11XX_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +LR11XX_SYSTEM_REBOOT_OC = 0x0118, +LR11XX_SYSTEM_GET_VBAT_OC = 0x0119, +LR11XX_SYSTEM_GET_TEMP_OC = 0x011A,
    -  LR1110_SYSTEM_SET_STANDBY_OC = 0x011C, -LR1110_SYSTEM_SET_FS_OC = 0x011D, -LR1110_SYSTEM_GET_RANDOM_OC = 0x0120, -LR1110_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +  LR11XX_SYSTEM_SET_SLEEP_OC = 0x011B, +LR11XX_SYSTEM_SET_STANDBY_OC = 0x011C, +LR11XX_SYSTEM_SET_FS_OC = 0x011D, +LR11XX_SYSTEM_GET_RANDOM_OC = 0x0120,
    -  LR1110_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, -LR1110_SYSTEM_READ_INFOPAGE_OC = 0x0123, -LR1110_SYSTEM_READ_UID_OC = 0x0125, -LR1110_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +  LR11XX_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +LR11XX_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, +LR11XX_SYSTEM_READ_INFOPAGE_OC = 0x0123, +LR11XX_SYSTEM_READ_UID_OC = 0x0125,
    -  LR1110_SYSTEM_READ_PIN_OC = 0x0127, -LR1110_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, -LR1110_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A, -LR1110_WIFI_SCAN_OC = 0x0300, +  LR11XX_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +LR11XX_SYSTEM_READ_PIN_OC = 0x0127, +LR11XX_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, +LR11XX_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A,
    -  LR1110_WIFI_SCAN_TIME_LIMIT = 0x0301, -LR1110_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, -LR1110_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303, -LR1110_WIFI_GET_RESULT_SIZE_OC = 0x0305, +  LR11XX_WIFI_SCAN_OC = 0x0300, +LR11XX_WIFI_SCAN_TIME_LIMIT = 0x0301, +LR11XX_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, +LR11XX_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303,
    -  LR1110_WIFI_READ_RESULT_OC = 0x0306, -LR1110_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, -LR1110_WIFI_READ_CUMUL_TIMING_OC = 0x0308, -LR1110_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +  LR11XX_WIFI_GET_RESULT_SIZE_OC = 0x0305, +LR11XX_WIFI_READ_RESULT_OC = 0x0306, +LR11XX_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, +LR11XX_WIFI_READ_CUMUL_TIMING_OC = 0x0308,
    -  LR1110_WIFI_READ_COUNTRY_CODE_OC = 0x030A, -LR1110_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, -LR1110_WIFI_GET_VERSION_OC = 0x0320 +  LR11XX_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +LR11XX_WIFI_READ_COUNTRY_CODE_OC = 0x030A, +LR11XX_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, +LR11XX_WIFI_GET_VERSION_OC = 0x0320
    }
     Operating codes for register and memory related operations. More...
     Operating codes for register and memory related operations. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    static void lr1110_regmem_fill_cbuffer_opcode_address (uint8_t *cbuffer, uint16_t opcode, uint32_t address)
     Helper function that fill both cbuffer with opcode and memory address. More...
     
    static void lr1110_regmem_fill_cbuffer_opcode_address_length (uint8_t *cbuffer, uint16_t opcode, uint32_t address, uint8_t length)
     Helper function that fill both cbuffer with opcode memory address, and data length to read. More...
     
    static void lr1110_regmem_fill_cdata (uint8_t *cdata, const uint32_t *data, uint8_t data_length)
     Helper function that fill both cbuffer with data. More...
     
    static void lr1110_regmem_fill_cbuffer_cdata_opcode_address_data (uint8_t *cbuffer, uint8_t *cdata, uint16_t opcode, uint32_t address, const uint32_t *data, uint8_t data_length)
     Helper function that fill both cbuffer and cdata buffers with opcode, memory address and data. More...
     
    static void lr1110_regmem_fill_out_buffer_from_raw_buffer (uint32_t *out_buffer, const uint8_t *raw_buffer, uint8_t out_buffer_length)
     Helper function that convert an array of uint8_t into an array of uint32_t. More...
     
    lr1110_status_t lr1110_regmem_write_regmem32 (const void *context, const uint32_t address, const uint32_t *buffer, const uint8_t length)
     Write words into register memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_read_regmem32 (const void *context, const uint32_t address, uint32_t *buffer, const uint8_t length)
     Read words into register memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_write_mem8 (const void *context, const uint32_t address, const uint8_t *buffer, const uint8_t length)
     Write bytes into register memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_read_mem8 (const void *context, const uint32_t address, uint8_t *buffer, const uint8_t length)
     Read bytes into register memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_write_buffer8 (const void *context, const uint8_t *buffer, const uint8_t length)
     Write bytes into radio TX buffer memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_read_buffer8 (const void *context, uint8_t *buffer, const uint8_t offset, const uint8_t length)
     Read bytes from radio RX buffer memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_clear_rxbuffer (const void *context)
     Clear radio RX buffer. More...
     
    lr1110_status_t lr1110_regmem_write_regmem32_mask (const void *context, const uint32_t address, const uint32_t mask, const uint32_t data)
     Read-modify-write data at given register/memory address. More...
     
    static void lr11xx_regmem_fill_cbuffer_opcode_address (uint8_t *cbuffer, uint16_t opcode, uint32_t address)
     Helper function that fill both cbuffer with opcode and memory address. More...
     
    static void lr11xx_regmem_fill_cbuffer_opcode_address_length (uint8_t *cbuffer, uint16_t opcode, uint32_t address, uint8_t length)
     Helper function that fill both cbuffer with opcode memory address, and data length to read. More...
     
    static void lr11xx_regmem_fill_cdata (uint8_t *cdata, const uint32_t *data, uint8_t data_length)
     Helper function that fill both cbuffer with data. More...
     
    static void lr11xx_regmem_fill_cbuffer_cdata_opcode_address_data (uint8_t *cbuffer, uint8_t *cdata, uint16_t opcode, uint32_t address, const uint32_t *data, uint8_t data_length)
     Helper function that fill both cbuffer and cdata buffers with opcode, memory address and data. More...
     
    static void lr11xx_regmem_fill_out_buffer_from_raw_buffer (uint32_t *out_buffer, const uint8_t *raw_buffer, uint8_t out_buffer_length)
     Helper function that convert an array of uint8_t into an array of uint32_t. More...
     
    lr11xx_status_t lr11xx_regmem_write_regmem32 (const void *context, const uint32_t address, const uint32_t *buffer, const uint8_t length)
     Write words into register memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_read_regmem32 (const void *context, const uint32_t address, uint32_t *buffer, const uint8_t length)
     Read words into register memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_write_mem8 (const void *context, const uint32_t address, const uint8_t *buffer, const uint8_t length)
     Write bytes into register memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_read_mem8 (const void *context, const uint32_t address, uint8_t *buffer, const uint8_t length)
     Read bytes into register memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_write_buffer8 (const void *context, const uint8_t *buffer, const uint8_t length)
     Write bytes into radio TX buffer memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_read_buffer8 (const void *context, uint8_t *buffer, const uint8_t offset, const uint8_t length)
     Read bytes from radio RX buffer memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_clear_rxbuffer (const void *context)
     Clear radio RX buffer. More...
     
    lr11xx_status_t lr11xx_regmem_write_regmem32_mask (const void *context, const uint32_t address, const uint32_t mask, const uint32_t data)
     Read-modify-write data at given register/memory address. More...
     

    Detailed Description

    -

    Register/memory driver implementation for LR1110.

    +

    Register/memory driver implementation for LR11XX.

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • @@ -349,55 +350,55 @@

      -EnumeratorLR1110_GNSS_SET_CONSTELLATION_OC 

      Set the constellation to use.

      +EnumeratorLR11XX_GNSS_SET_CONSTELLATION_OC 

      Set the constellation to use.

      -LR1110_GNSS_READ_CONSTELLATION_OC 

      Read the used constellations.

      +LR11XX_GNSS_READ_CONSTELLATION_OC 

      Read the used constellations.

      -LR1110_GNSS_SET_ALMANAC_UPDATE_OC 

      Set almanac update configuration.

      +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC 

      Set almanac update configuration.

      -LR1110_GNSS_READ_ALMANAC_UPDATE_OC 

      Read the almanac update configuration.

      +LR11XX_GNSS_READ_ALMANAC_UPDATE_OC 

      Read the almanac update configuration.

      -LR1110_GNSS_READ_FW_VERSION_OC 

      Read the firmware version.

      +LR11XX_GNSS_READ_FW_VERSION_OC 

      Read the firmware version.

      -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

      Read the supported constellations.

      +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

      Read the supported constellations.

      -LR1110_GNSS_SET_SCAN_MODE_OC 

      Define single or double capture.

      +LR11XX_GNSS_SET_SCAN_MODE_OC 

      Define single or double capture.

      -LR1110_GNSS_SCAN_AUTONOMOUS_OC 

      Launch an autonomous scan.

      +LR11XX_GNSS_SCAN_AUTONOMOUS_OC 

      Launch an autonomous scan.

      -LR1110_GNSS_SCAN_ASSISTED_OC 

      Launch an assisted scan.

      +LR11XX_GNSS_SCAN_ASSISTED_OC 

      Launch an assisted scan.

      -LR1110_GNSS_SCAN_GET_RES_SIZE_OC 

      Get the size of the output payload.

      +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC 

      Get the size of the output payload.

      -LR1110_GNSS_SCAN_READ_RES_OC 

      Read the byte stream.

      +LR11XX_GNSS_SCAN_READ_RES_OC 

      Read the byte stream.

      -LR1110_GNSS_ALMANAC_UPDATE_OC 

      Update the almanac.

      +LR11XX_GNSS_ALMANAC_UPDATE_OC 

      Update the almanac.

      -LR1110_GNSS_ALMANAC_READ_OC 

      Read all almanacs.

      +LR11XX_GNSS_ALMANAC_READ_OC 

      Read all almanacs.

      -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC 

      Set the assistance position.

      +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC 

      Set the assistance position.

      -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC 

      Read the assistance position.

      +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC 

      Read the assistance position.

      -LR1110_GNSS_PUSH_SOLVER_MSG_OC 

      Push messages coming from the solver.

      +LR11XX_GNSS_PUSH_SOLVER_MSG_OC 

      Push messages coming from the solver.

      -LR1110_GNSS_PUSH_DM_MSG_OC 

      Push messages coming from the device management.

      +LR11XX_GNSS_PUSH_DM_MSG_OC 

      Push messages coming from the device management.

      -LR1110_GNSS_GET_CONTEXT_STATUS_OC 

      Read the context.

      +LR11XX_GNSS_GET_CONTEXT_STATUS_OC 

      Read the context.

      -LR1110_GNSS_GET_NB_SATELLITES_OC 

      Get the number of satellites detected during a scan.

      +LR11XX_GNSS_GET_NB_SATELLITES_OC 

      Get the number of satellites detected during a scan.

      -LR1110_GNSS_GET_SATELLITES_OC 

      Get the list of satellites detected during a scan.

      +LR11XX_GNSS_GET_SATELLITES_OC 

      Get the list of satellites detected during a scan.

      -LR1110_GNSS_GET_TIMINGS_OC 

      Get the time spent in signal acquisition and analysis.

      +LR11XX_GNSS_GET_TIMINGS_OC 

      Get the time spent in signal acquisition and analysis.

    Function Documentation

    - -

    ◆ lr1110_regmem_fill_cbuffer_opcode_address()

    + +

    ◆ lr11xx_regmem_fill_cbuffer_opcode_address()

    @@ -406,7 +407,7 @@

    - + @@ -442,8 +443,8 @@

    -

    ◆ lr1110_regmem_fill_cbuffer_opcode_address_length()

    + +

    ◆ lr11xx_regmem_fill_cbuffer_opcode_address_length()

    @@ -452,7 +453,7 @@

    void lr1110_regmem_fill_cbuffer_opcode_address void lr11xx_regmem_fill_cbuffer_opcode_address ( uint8_t *  cbuffer,
    - + @@ -494,8 +495,8 @@

    -

    ◆ lr1110_regmem_fill_cdata()

    + +

    ◆ lr11xx_regmem_fill_cdata()

    @@ -504,7 +505,7 @@

    void lr1110_regmem_fill_cbuffer_opcode_address_length void lr11xx_regmem_fill_cbuffer_opcode_address_length ( uint8_t *  cbuffer,
    - + @@ -540,8 +541,8 @@

    -

    ◆ lr1110_regmem_fill_cbuffer_cdata_opcode_address_data()

    + +

    ◆ lr11xx_regmem_fill_cbuffer_cdata_opcode_address_data()

    @@ -550,7 +551,7 @@

    void lr1110_regmem_fill_cdata void lr11xx_regmem_fill_cdata ( uint8_t *  cdata,
    - + @@ -599,13 +600,13 @@

    Helper function that fill both cbuffer and cdata buffers with opcode, memory address and data.

    -

    It is typically used to factorize and write regmem32 operations. Behind the scene it calls the other helpers lr1110_regmem_fill_cbuffer_opcode_address and lr1110_regmem_fill_cdata.

    +

    It is typically used to factorize and write regmem32 operations. Behind the scene it calls the other helpers lr11xx_regmem_fill_cbuffer_opcode_address and lr11xx_regmem_fill_cdata.

    Warning
    It is up to the caller to ensure cbuffer and cdata are big enough to contain their respective information!
    -
    -

    ◆ lr1110_regmem_fill_out_buffer_from_raw_buffer()

    + +

    ◆ lr11xx_regmem_fill_out_buffer_from_raw_buffer()

    @@ -614,7 +615,7 @@

    void lr1110_regmem_fill_cbuffer_cdata_opcode_address_data void lr11xx_regmem_fill_cbuffer_cdata_opcode_address_data ( uint8_t *  cbuffer,
    - + @@ -651,14 +652,14 @@

    -

    ◆ lr1110_regmem_write_regmem32()

    + +

    ◆ lr11xx_regmem_write_regmem32()

    void lr1110_regmem_fill_out_buffer_from_raw_buffer void lr11xx_regmem_fill_out_buffer_from_raw_buffer ( uint32_t *  out_buffer,
    - + @@ -689,7 +690,7 @@

    -

    Write words into register memory space of LR1110.

    +

    Write words into register memory space of LR11XX.

    A word is 32-bit long. The writing operations write contiguously in register memory, starting at the address provided.

    Parameters

    lr1110_status_t lr1110_regmem_write_regmem32 lr11xx_status_t lr11xx_regmem_write_regmem32 ( const void *  context,
    @@ -701,18 +702,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_read_regmem32
    +
    See also
    lr11xx_regmem_read_regmem32
    - -

    ◆ lr1110_regmem_read_regmem32()

    + +

    ◆ lr11xx_regmem_read_regmem32()

    - + @@ -743,7 +744,7 @@

    -

    Read words into register memory space of LR1110.

    +

    Read words into register memory space of LR11XX.

    A word is 32-bit long. The reading operations read contiguously from register memory, starting at the address provided.

    Parameters

    lr1110_status_t lr1110_regmem_read_regmem32 lr11xx_status_t lr11xx_regmem_read_regmem32 ( const void *  context,
    @@ -755,18 +756,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_write_regmem32
    +
    See also
    lr11xx_regmem_write_regmem32
    - -

    ◆ lr1110_regmem_write_mem8()

    + +

    ◆ lr11xx_regmem_write_mem8()

    - + @@ -797,7 +798,7 @@

    -

    Write bytes into register memory space of LR1110.

    +

    Write bytes into register memory space of LR11XX.

    A byte is 8-bit long. The writing operations write contiguously in register memory, starting at the address provided.

    Parameters

    lr1110_status_t lr1110_regmem_write_mem8 lr11xx_status_t lr11xx_regmem_write_mem8 ( const void *  context,
    @@ -809,18 +810,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_read_mem8
    +
    See also
    lr11xx_regmem_read_mem8
    - -

    ◆ lr1110_regmem_read_mem8()

    + +

    ◆ lr11xx_regmem_read_mem8()

    - + @@ -851,7 +852,7 @@

    -

    Read bytes into register memory space of LR1110.

    +

    Read bytes into register memory space of LR11XX.

    A byte is 8-bit long. The reading operations read contiguously from register memory, starting at the address provided.

    Parameters

    lr1110_status_t lr1110_regmem_read_mem8 lr11xx_status_t lr11xx_regmem_read_mem8 ( const void *  context,
    @@ -863,18 +864,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_write_mem8
    +
    See also
    lr11xx_regmem_write_mem8
    - -

    ◆ lr1110_regmem_write_buffer8()

    + +

    ◆ lr11xx_regmem_write_buffer8()

    - + @@ -899,7 +900,7 @@

    -

    Write bytes into radio TX buffer memory space of LR1110.

    +

    Write bytes into radio TX buffer memory space of LR11XX.

    Parameters

    lr1110_status_t lr1110_regmem_write_buffer8 lr11xx_status_t lr11xx_regmem_write_buffer8 ( const void *  context,
    @@ -909,18 +910,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_read_buffer8
    +
    See also
    lr11xx_regmem_read_buffer8
    - -

    ◆ lr1110_regmem_read_buffer8()

    + +

    ◆ lr11xx_regmem_read_buffer8()

    [in]contextChip implementation context
    - + @@ -951,7 +952,7 @@

    -

    Read bytes from radio RX buffer memory space of LR1110.

    +

    Read bytes from radio RX buffer memory space of LR11XX.

    Parameters

    lr1110_status_t lr1110_regmem_read_buffer8 lr11xx_status_t lr11xx_regmem_read_buffer8 ( const void *  context,
    @@ -962,18 +963,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_write_buffer8
    +
    See also
    lr11xx_regmem_write_buffer8
    - -

    ◆ lr1110_regmem_clear_rxbuffer()

    + +

    ◆ lr11xx_regmem_clear_rxbuffer()

    [in]contextChip implementation context
    - + @@ -994,14 +995,14 @@

    -

    ◆ lr1110_regmem_write_regmem32_mask()

    + +

    ◆ lr11xx_regmem_write_regmem32_mask()

    lr1110_status_t lr1110_regmem_clear_rxbuffer lr11xx_status_t lr11xx_regmem_clear_rxbuffer ( const void *  context)
    - + diff --git a/doc/lr11xx/html/lr11xx__regmem_8c__incl.map b/doc/lr11xx/html/lr11xx__regmem_8c__incl.map new file mode 100644 index 0000000..f2c1e14 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__regmem_8c__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__regmem_8c__incl.md5 b/doc/lr11xx/html/lr11xx__regmem_8c__incl.md5 new file mode 100644 index 0000000..4402c70 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__regmem_8c__incl.md5 @@ -0,0 +1 @@ +70b2f422a050318947b88054a3f927c4 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__regmem_8c__incl.png b/doc/lr11xx/html/lr11xx__regmem_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..93a928a1aa0356a7ac0d79eddecf85271cdcbcfb GIT binary patch literal 11784 zcmYki1z1#HxIH|SARwL6T@s4Y;m{!69a1VO-5nBwG{{gQAl;oZbeD7^-QDnQfA@a> z=MFr~0nY5R&v|pLcZDe{N0*l&Sbqe|(d1^m{8fZI{^2v*KHL6W^XA<{-Ko`gPd(d(b(p88p|5kskbC;& zHSAPmlYiKqh(uBa4FW-9K`uf8+n_`w$AX}7x2-_@xRCxkq%T4-9@rkwtE{Lf(?n>) z4G9TJPfyn_Tz;Otu%e@*6HO&LIXe1V7Y#!EcYWQ2-M>H5B~%>eXLh#Z-yYl|4T!z} zk-^htVR8tLg&!ONV)BIVe-3Bb|NJ>WSZLHP+{)rU=dsR zML;sy)6|C2g;QZLOel{3TeqvDm2ca3e^)yr<_C}RGJIxReIFx9x%r08zCAl4SM^5{ zg7bGSEC|!lt#yRqTjyeMn46my7Z;OXP#81CjpD0{K*&X`$tft{aJaCLkYm4_(t*w~}!jqD;6ch&EhNh&X)EoasBniRC$G5SuN#ZnW zG3}0OZ*TXhwX?Gmbv=NAeFXNYw;oVoX|0S9f+aTRKlELy;Qu zkcfqo)Awlkw|FR)LYlxEQBhGrK|vuQ*jsAMcoAh0>1fJ?xVVV0u#aF-kF%|}v$l&( zy)yb0X1zJ@lETBo8I{s8p(FRVm*;0^@d*huXea0A`v(VDn3&+Vui@b*$Hz~fJ~iR{ zw#~)O&0Snn)Ysq7Y0%)bF_4n4mPbTLDC~7*-xtqPB`nh3*U2v`8WfFYD%F63hS5^Jp+#F8f&dbjalc1HAlLPm;v$b_rYa?U0odvM!vRr zb-Xq+YGG^paC_J~{-Fv6gH29ON=6Vtanv<5P@p5T)m94sy#@ycX6NQet6g)844d3u zI&R3z%E}TF5>ioREH5u-_&&@mEj^CsDHTa-X=&l3Av2nIbDJcDf}M~oAH}qtJ?DR+ zOmKdF{^s@TqF=vc-n}Dxl}3ny5CgE5FJED};uW>Q=1SHygMAD5Sny}j=#1YMk*onP9N78ONO%b1%p z#D%n^aQXjtZF?Wb^PN8p4Gl=BSmZ)(M|an!ot>S5d6lnx?yl@wt~d5(DverwiVF(R zpFK0r(L3f&}8ty}|(t zRsVv3wHe>&dieeOcS=5c2oy)kAZfI@Xz2_X0GNhOI_gVA#P0TXu~F+oPYhjJS{hOg zw))lzJXBCXU~g})si`TEU9T&5V!c19)$>wOQqp|3>SJ@5p`jtLwCCl4L9>Umvhv8u zdcUNEM6!$5<3n>m0AjYeqLPx5uCB*Yi#HJw5eS7)Y^ua>-;CM&=jQa()Eo~Nn`>%n zP*6~AZf?A}f1Ahz6S~C@SAVjxG0@Ut@-lr=-`^QQ44w$-SI23KcB?3I{vVl{-@bkG ztHvooNMG^G>h0@WZE_h*kcYrgyx8HKfByUdE6RuUC$f_@^)qqSd7QHH71<-VBwf&x;o?)KyhyYweb9 zFAwqY@PIo5rxp?xCZ&)8PxWRnad6>wY;n=&`ec1zU|@1m6CXd$X09eIBH~okHXHv4 zlUN3XF0jzSe7&iK#m4Tgo{9=C2?+@mRcT4d!P**ptMja%vsFe`wzH$->gMJGE6(ER zZ*ScGTrCqLBZ%3(#pcGMq8GHZwDk1!+}x+fYu%AHPx}5{*x~N#xV>ErxEUF*?FTEX z&A)$-_=Nm?5wM75NKDzEA|sk!ZKex*s;jHhGcXwF>$9@5hDSuOv9gMIU6q-3V}S$( z!qL)lv!$_Ar_y3)A|DSAZ^`%38|3R6n>mnr80C|>JTI)fBC(Ln`!^1}O(N+Rz|#P= zBPS<^g#dl)vR&ydy8-n!h1HDUUFD%~VPRp;&!1qcX6ELkEZ~CPyjv9R;GLC`aZ=9` zq)T&50y1X3uDW9ySIgPLrI??P2M9UGw=;^or*L}*hgT``2aQnRF4EG{YHIlKzw&hQ zp=O!Z(r*uCRJ*KkAR@r-0fTShq9A=)4kY6e5WFtJ%@w!k_rYRPN;ex28b6d7TcM!$ zL-K>8r2B{XQVKZzs;>SsG-UhuaL>rdh=W{?g+T$Wq4RU5-|jgdST@sc}4nJW7p^NT8W4b)@eUOe>q?jL$jQk`kWc^MAlIn%pxxI~ z9EYBc&gZ@X0~3C6v0`I0;MfEyL*dge+uqI+6fn$EwK9DVONi%7i#G3wBx9n$U(;7P zHXqOJUs!luWCqa&-fpZ+uu#c#u-?DAJLNk$rrMzy8PZiZt(`PK?|>amhK6W(e}rgX z2XQ?6Ag4N(I-(q^Q#nyKi3r7c?R|6ApTxV=n6$eV_obSsO%&WW>*la1<}+_{oU+9Z zv*(k#51l<99F#|*RaAyK^xeQ&5M+N58^pe1y;3jlLrVS=_-wUf*<|}bfyRwdOBEHL z{X0WLkNcZz?S9gIupVXWV|uOQ<}=sJ97RRGeW;C{ow~t7m8DWsQPI!(Yx$z}$WLvT z_6Tc(sbkK&93|Q>cR}{i(L#e`Glw6{;AbRX3GhssFA9z15pn~k4hsm_`BOMNm{#b1 zePZ!&_HG?nfa3G#FrO28QI=kt8>h03r##@gn1B8#fV8HeO55GtC@1sfJ$op-fS{+f zO&}oQ@ur%Sd1-=ne#GKFh~!aLQBC+6rW*MJ;NG8!+JonV$Vhy$$OSZ z&(M5)EGyvj;ZK9JWBFvef@W#@{rbCG5HY4*GPBbIaNVdQB=RWfbP@KWqq-L7!kJ;w zRO8~{TkF{~8_CY3X3sT30<)l8j{rSjy!qpceM_s|i2kHuO!Ri=R&~X7!nPCXSkkGY=*w`D5!l9k*d}#^m-@f3i%yC@H&7M8$PYxAx@ho!M{kXb*@Xrzo z3gZPDP;~TH$HyhHu>qr;3HZQrlcm@kY*zBJGg$@bH&rLd%l1tp^YirPEdya{H3gIY6RgM>(cQsUTkUK!jq`6Q z#AW-vtnrxrxl%%ciH@#@$aVznzP^gjpY=q2ZKoUFe3ue0OQf@ggqmW8|M0wI6!JK8 zHT#>Gua;1r82Ie_cXSmM#o=^9503zmVtoK$Oz-XvI=frz+>Z0=9i`8u>AbzqmyK`# z{^fnVT@o&;Mk8!n(Z(aa-n+XFWl}29Yay4nc*3sp1E1t-t=T%=>FY_I?-W^H$5OjQk0!9jyI0(sOkr3|8mMx)wVUI*tla9xZR zd*?TWrFJvTf{IY+6D_sh7|hF_d{3G@wJdDBO}58KH-~Jfae^w1SeY`JceY7WV^4TQ zd2Vl(#mAo1*vZMt-gkX9@$kS$Lh?nvI3Okoxxb$xeg0`?F4Xr% zeeTi-o6-wHrxc3f7IKR7{8@_dt&FMZZWz85udO~BR9Qjc6k8PeD+OD^w`EoahLGyF z`s1UcHm3OcI@b&gooO$LOqY`{hH@?`r&Ti6D%L~!7v)5*25ki$YOH&aL zF7r~ukuM8(<*!Qz0$iGQuD!ozdm9%NDKGqsc@T1ni`ibCY;TWae|Y`V zb)B0w#@OsN1J5Lio(&%=AFMw0?E5g!$SB3<;S`lj5;Kfg*WTc~>t^_* z&vbQl)y)U94yx*q7!c50cVz|$i@>@%zM5_H;bo zd|=X)oLHz3NYh&gd5ib03rUCx31f`R-cKZCEc*m_o$bP`q9V+I%Z;WOc(1p(mQQY!`ST|?s!fS_FwyvR^>R%dMi)IJyO6f_Pu zzRseFiHYgi*?&+7uolp7+?GQlAMWMzSl<3y+kS7l9Jt=r*4FM+si&Kp*VU29(HV`3 zmX=ZVr-Z;jaVQk(>3Q3q#L3Ri-q_Fp3}yY{!`8-zrk0j;j%ssLQ%H_uruEG5Z-AV8 zV;SJA>U_&LEC)H+*+@_vKw$u0127QaqGydM5J^J_IVB|}7Q8Gt7$r^7QvCyI^q|i; z_p4WmX#xq~zELwUn7@Bt;d*FjWwi_Ny8qbB1P%p-u+8jiU}E4tyu7@qsHiVrzC;TE z>88c!z91*3+F@PJ%E}5Y0B|oeqE-GC6gJB%1l)j4Il8>8t*&N>>jhD4HCePWhNj5G9*!eOOXzYuk&6*@}puAQx$A z8su})M7^uB^755o`)M zZA;7elBjDRK}GYux{8XvRy+}hevdn&cG~KaZ>igPf$cD*L6_L)y^%kX*qC?5CRruf z+#z|h_K4b^PH&rHzyb#?%H?avohXWzii%zEYT&e}Sjy-aR(SYEr(z_F5Uj%tKfhZ!IWthMVP>yB z|M2=$&=`w1)4sYFK@2Ao#v%!djrEZ3X6x#jMa7OX<7-Y#Ty1bZy}LhjcEz}uwsQeX zgs!eO=+zqTFE;B-1dYG30&QdXSLYN#t?{l6)lWNmB|T*8uX$?juS~yupPgP_{wlGG z#WmIt%Qdhk$e&R;o;-X&Pih86a8KV(0kFoKfO6WH83cZl0tuE=u`u} z`QAPp7x`W@}z zrTY2(=P(KiV$>(IQqrQQM|F$i+|xpfem?vT^!&p2r6bCy?Cg?5j&yMhHFl32ug{{t zf43NNgtND;JgzJ>R-B!+HZ?H|-9){&5$0v=y8a!A?czcsW+eKT!^9+-)5ynRBeFOK zcS;juslvP*1~W6J9-8D@W(6PrJ#`66%B<^>!lnW4l8@jUe)sM?CFepdR1Hm^bpvR- zgvX7Mbabwpry2+~#Wge}(6^Ns^n-W~4-dLz$R9WXh-gN^ zsA{=)L8t0dRU=CUY=oL4Ea6XZQIV1tv&!4+yLuDgvf!M%yCU}((HNQOT06;4JB?GN z@4&AckkChXwzRLMx%bIM?oqLXj!y5iHnFLxjo#cc04ZKN+|+^d0FD z89d3_EnXWi{^v}JXq)JHZ7Vp)Q0DL_$n!=GP9Xp|i1rf_G8icRv0w zArWyK5d#fdPt4y^BSD{Q^YafRSTE_B!#zB@T0FH9VSBkhXuEe;HwIIyoVFv4d=+%6 zKGc5eq!NPDAVZN5DV3QUmb|jV6P`$Schb;YOqG}m@EdIJkso}pr0JNtw3U-n)J}$< zZLeLc{YaYXySw|eva5qhj>W*x%)$I?vDuTq=9Om2go2Fy;83ovo{_aR`J%3nSl3sw z8Db8hlS`vow{o5(^fVrY&c41j;1A!NrJnC&<&DR*wK=h|1+u8c18QY3B|9a#uDPM1 zckDzTppBw+V{xgjZtq(>A>pK%>47!J(c8fwnVUSXZYT7J3m(1F7_jqqF6`x?fzyDP+!)IhxAd=Ad z^UyCBH&@>Mfs`d{n@y_^k#ODqR%Vu%xY&6or>;^R$A{7E*78KS=%-KLd92ayH&UPa z``2hI>}{@;$4iNei9fdebTZ^BprE8kn;99|IcOoUq8X5p4U?1-;LyAH8Yq5szB{Ac zzk*s^Y~bROH8!@2i<>Gb`SP}dj*V@5^}WNks+55NhUW7+jAKB+Yg@I2TwK^%Zp!G* zp%8>qPU_zH%g`sM4oj$oZ`Od=TAy2c75Y`fu{QU)74ICkZF@eUxxhcrXmgswrTJd>>fRq zla}V4bf_B!hy;Wwr{SHfkr9Oz`=haC?OSov`FyqZk$(Gl0U>&NBb=mr zP!J2)-JN2vnlk)VYS*cY#ar(!$V9#Tdo(+-KhZm|I?mvsCqvNio8h^bBr?VenrKOU*g7f1|HN2hnn_Mwm7t6J0=;7~y&%&QS*5kQ$fR@1w z{!v(3da&tAY()cm^_;@z;Z7VEcNJ}8riL2hK6kAlVjLim{femF)_!-+vA9UG3xl`=%%3HX!f^~LNHP8-Kk3*9;dSMH(B|4 zTVt-z_czNRH<_IH>+*{4mF|ubPEL$~)e@7IzT6m0lBHi=?@#UMuorF^?e3=Kt=&6V z&@T#(gpIBrJsK5m-Qt#N1fhPBXn%aLZ1#Ob2Vh@BL^j|&=zq8~28MG`2u@DM0FfB5 zJ>LCz6xfoH0l}6gHNe{J)0N~inX5Te%rK;)xF3M8g+L5^L$MgZ;d=R1ydX_tab zo0W~X&VqvCmX@YP)tF@N?jJ2J<06Quz(6G*|sLJq;7Q6kKCU(B1q?@X_2EK~H0k8ir+OZEao1ye~_vms*fbO~F*}GAHN!%5IHd;tRIo=g$<#P_zJAwD0lpYg;5) zSv1ir5)pS$^?0Y1b|n`Vj2hc!kK@(s#j}EfQXZZpMOYm?RM%XtZ?2~1psGrrt?(4E z&CbrFpFbuIzfN<~YCe2g++JlsArx4Bc`fcw8F}a`d{Yv65#=vFc0W+-GDQ*VSz(DjL$z z;-y2I7#XSYx|UBzpRQyo0W&}7w}ytqpFeqLW-=C=Z^_9THN?f!^FT6Br@Z+}HcUaz zp{2!pem3Gs92#P>HD{N%Y7){4ZF7$PfeWTAO0>9*jUSs?goR(D1-v)SV4`oDZTJI7 zQ}X~lQ*t~|zD&F2_UGNROGuN5wJbC?GEDwxX z=PhiAai|xYSc*$*E&jEwP6E2>>Tq9KxELSj8Q|s@3)DHeFyUNYH&yId-K-}8-O(7V ztSx70q#;t-t!^rJM<$e<;k$c#VbQ+56DL8`%mLJ(M^-yL~I=0=j z3oEvw7wzre zYwbkodVC9>AR}TzkLK&+#>QQ5uXUm+*g8A$uA}R(2X?0nIyz+Jzw+_<5)zArs^vR3 z^Xk&ZP=hJaZOz<#JtFsnzc@*C0+Uh`EKQ-u>?tCG#YasEFpwC|@a^do%g*Lbv1LX^ zEGiISq&HhD)|zL;YP3$q1fyV*NKmR`(+#-7jD#EUhM`ilf@U#~1ZW5ZxF z&0lW=?UdKDzvoh8Q$5eda=u3T>qjPYWsYwB{!Kcs`@Fcal8NKM-Ht5v3mQ~TZoc1Y zJ&wtch{z2Vk&X|dNL6iNeLaWtILM^#7uwYL#?vf#{=^L!b%aT%tJ3D>?0@G`P!{cS zi2B9c+b+h*^6@qhwb9yo1I!O`(73V#0)LEvDpRK_2e3(34-f><#-Nqz@p1~zd4gQe zrQZ;gC!b#Ac6p%qrn($>G+22kb=(A2iyY;5*dlm+xs(vc$THtlub`ttWW~?-1Jr#` zh;VV0@+Wkq3a1wuDLp)3L#m2d$Sv+_=+F_6&s!fpg`J8R&i}~IUzp@M+n-Z)ci+A| z^zGCg^1JK)r(pt8n=a*NT0KLQoHWqXm)YqO?c208|D$vww@?Km^Le3mO`uRIn3!nI z5MoJxDb7#rmz}Tp?p-UNz~Xb!^d|4y_Ik(q5j{l(g|G6Aj>)nB%j@WnZoYq#R~hGW zW$&S=Xs$Y@q^jz+?X1KY_h(|l!}lSNQbSYI1>69T!kicoPHk<|$jF|{XBaBcu2k8^ zrVXZXY7GAOqT_}a>9AH>@M_ z80zZc@~UE0e~kJ|L|hb=(Z=CpT~m{+9vN|*YWd>Xt-G3>jLdQbNjjLW(6Gw2pGrgk ziOYOnxIE)<^2@+D^2kWOwBwEG@{js3!rf@mhh$>=^`1)yNG!{PNDlFK9G zy3@3oXcQb6*bu~eqQ3NFi2|B29N0MDIu|ge>FxP&pm=I( zZdQ<&2b2Eyrlz6QcIM_ev9YR${arvRBCnvZ?R4{Y``)6$=l*7@)W~kO>S@Rd3I-7} zD(W!o`mjkSI5?OdFTbiPp60yGA1Q)}oi?r)kc~bUd!(kRfQoW;y#y3hUvDp9E4#XI zkbz3%SL<=PulH_heEjtI*hD~kvM9OD-HY!j7BbY`-MuJD4bbqw5Wm3d=T9>`yQS%A zKDQfcdnS($RDdK(R=qI?<9!nolgL&eok~bZ$Po6F${zLLl~GV&zzZu9tjNvF%j@sy z0UA9(F|n|)0C~Z)^hM4mPo8L%=$qUvjE#vg#sU7b@2cKvssxB=F6Ah=E##%7fHE&G zBZDeMzNENVQf1;lsTNEwhv&_k{n_ewMn)Nmd7GP?5nsLtdEZn4@fI7K)#brL(K=Aw z6ciQ$t267fcXLW8ai(+1IpPEAU=QBl5R2INMTBj0?rtOBM1%x zLc+lmZq$Ixh6aK7b%{&QGI^bIbL8XRo}OR%`6io3sChswNJnRSWW$F!^foE3y!<$v z5J*2*MSLHuKYeO=--#|If|PUl%)v;?#kt&&P~ZLv5Xs3r#!D;A;glj?Za~up#1Gh1 zB4$i!gt=-JK-cn&j3<+Mc4p?EP7i7@55BUNZ+< zTaE;|gxJ`=!9j|j`UVCIetwXyrAR#oclYaMRh0(;ugvT%vhp84Xwd>Zyw8D@4Eyhq z54MYaC^oOiofBW^@9j&6o3m|vWGK*HMRr^sE{Wp+FwUKGYouum42(TRzs&ud*kDg#7)mF}k-u7``~dWm3jYuG^WgccwmAP~ZkFjeMA02o<7 z7NEE==xAv}Wo~_r3lE2fR^dz zd>62?R3cs^Ld`~i#&&RY{8;5XC2H^Ne13U3JTPE(GmTG94m3w=iHV6o@{*90q^GM3 zT)0%Xy6^Yztjx^J=H`147~tOq1_s;P+dw|Y%*wh0gdF4B6ciMZvOPdqn)E`aJy7N- z$Uh3~8R*=Ay0OM?$?*R%$r{LNM<~o9Fx1dZN~AJcm1y8sOxA0`|q)0_m-R1VFZAUnMO)U6ZwYQS>9R6y_pv~ATjHMUk(WX#@~ zVj%WX6B8L}Xh!E?Rv$mgQsaO`NBSqr5SEtK+}zw9O+|%|?+D~@U0dyd5&t-zo06Ie z0;d5CM)>#uf*>U$>+kIae~c#O2L8egCR1Z$R}=f#}C&Dh>4ll*@dkpUmzhN0kVE;>qA!;QqC!?rCN2%kBhcu-hP_it5b<;iXqqtvn-;>XOB*?s&F}b0tDqnxco8LP~YNAfDz7I7G7H)Gp3@JR#I}Z_ENkLxvi-woKrZP zz_yrwbbcO|l+>M26cjs3N}lUX9b~`o3IZ9yaKlE01d%S=L*6DMfYICk9$t%X;tz*7 UOKgS#O*KSTQc -lr1110_driver: lr1110_driver/src/lr1110_regmem.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_regmem.h File Reference @@ -21,7 +21,7 @@ @@ -61,75 +61,76 @@
    -
    lr1110_regmem.h File Reference
    +
    lr11xx_regmem.h File Reference
    -

    Register/memory driver definition for LR1110. +

    Register/memory driver definition for LR11XX. More...

    #include <stdint.h>
    -#include "lr1110_types.h"
    +#include "lr11xx_types.h"
    -Include dependency graph for lr1110_regmem.h:
    +Include dependency graph for lr11xx_regmem.h:
    -
    - - +
    + + - +
    This graph shows which files directly or indirectly include this file:
    -
    - - - - - - +
    + + + + + + +
    -

    Go to the source code of this file.

    +

    Go to the source code of this file.

    lr1110_status_t lr1110_regmem_write_regmem32_mask lr11xx_status_t lr11xx_regmem_write_regmem32_mask ( const void *  context,
    -
    lr1110_driver +
    lr11xx_driver
    - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    lr1110_status_t lr1110_regmem_write_regmem32 (const void *context, const uint32_t address, const uint32_t *buffer, const uint8_t length)
     Write words into register memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_read_regmem32 (const void *context, const uint32_t address, uint32_t *buffer, const uint8_t length)
     Read words into register memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_write_mem8 (const void *context, const uint32_t address, const uint8_t *buffer, const uint8_t length)
     Write bytes into register memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_read_mem8 (const void *context, const uint32_t address, uint8_t *buffer, const uint8_t length)
     Read bytes into register memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_write_buffer8 (const void *context, const uint8_t *buffer, const uint8_t length)
     Write bytes into radio TX buffer memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_read_buffer8 (const void *context, uint8_t *buffer, const uint8_t offset, const uint8_t length)
     Read bytes from radio RX buffer memory space of LR1110. More...
     
    lr1110_status_t lr1110_regmem_clear_rxbuffer (const void *context)
     Clear radio RX buffer. More...
     
    lr1110_status_t lr1110_regmem_write_regmem32_mask (const void *context, const uint32_t address, const uint32_t mask, const uint32_t data)
     Read-modify-write data at given register/memory address. More...
     
    lr11xx_status_t lr11xx_regmem_write_regmem32 (const void *context, const uint32_t address, const uint32_t *buffer, const uint8_t length)
     Write words into register memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_read_regmem32 (const void *context, const uint32_t address, uint32_t *buffer, const uint8_t length)
     Read words into register memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_write_mem8 (const void *context, const uint32_t address, const uint8_t *buffer, const uint8_t length)
     Write bytes into register memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_read_mem8 (const void *context, const uint32_t address, uint8_t *buffer, const uint8_t length)
     Read bytes into register memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_write_buffer8 (const void *context, const uint8_t *buffer, const uint8_t length)
     Write bytes into radio TX buffer memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_read_buffer8 (const void *context, uint8_t *buffer, const uint8_t offset, const uint8_t length)
     Read bytes from radio RX buffer memory space of LR11XX. More...
     
    lr11xx_status_t lr11xx_regmem_clear_rxbuffer (const void *context)
     Clear radio RX buffer. More...
     
    lr11xx_status_t lr11xx_regmem_write_regmem32_mask (const void *context, const uint32_t address, const uint32_t mask, const uint32_t data)
     Read-modify-write data at given register/memory address. More...
     

    Detailed Description

    -

    Register/memory driver definition for LR1110.

    +

    Register/memory driver definition for LR11XX.

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • @@ -138,14 +139,14 @@

    NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    Function Documentation

    - -

    ◆ lr1110_regmem_write_regmem32()

    + +

    ◆ lr11xx_regmem_write_regmem32()

    - + @@ -176,7 +177,7 @@

    -

    Write words into register memory space of LR1110.

    +

    Write words into register memory space of LR11XX.

    A word is 32-bit long. The writing operations write contiguously in register memory, starting at the address provided.

    Parameters

    lr1110_status_t lr1110_regmem_write_regmem32 lr11xx_status_t lr11xx_regmem_write_regmem32 ( const void *  context,
    @@ -188,18 +189,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_read_regmem32
    +
    See also
    lr11xx_regmem_read_regmem32
    - -

    ◆ lr1110_regmem_read_regmem32()

    + +

    ◆ lr11xx_regmem_read_regmem32()

    - + @@ -230,7 +231,7 @@

    -

    Read words into register memory space of LR1110.

    +

    Read words into register memory space of LR11XX.

    A word is 32-bit long. The reading operations read contiguously from register memory, starting at the address provided.

    Parameters

    lr1110_status_t lr1110_regmem_read_regmem32 lr11xx_status_t lr11xx_regmem_read_regmem32 ( const void *  context,
    @@ -242,18 +243,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_write_regmem32
    +
    See also
    lr11xx_regmem_write_regmem32
    - -

    ◆ lr1110_regmem_write_mem8()

    + +

    ◆ lr11xx_regmem_write_mem8()

    - + @@ -284,7 +285,7 @@

    -

    Write bytes into register memory space of LR1110.

    +

    Write bytes into register memory space of LR11XX.

    A byte is 8-bit long. The writing operations write contiguously in register memory, starting at the address provided.

    Parameters

    lr1110_status_t lr1110_regmem_write_mem8 lr11xx_status_t lr11xx_regmem_write_mem8 ( const void *  context,
    @@ -296,18 +297,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_read_mem8
    +
    See also
    lr11xx_regmem_read_mem8
    - -

    ◆ lr1110_regmem_read_mem8()

    + +

    ◆ lr11xx_regmem_read_mem8()

    - + @@ -338,7 +339,7 @@

    -

    Read bytes into register memory space of LR1110.

    +

    Read bytes into register memory space of LR11XX.

    A byte is 8-bit long. The reading operations read contiguously from register memory, starting at the address provided.

    Parameters

    lr1110_status_t lr1110_regmem_read_mem8 lr11xx_status_t lr11xx_regmem_read_mem8 ( const void *  context,
    @@ -350,18 +351,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_write_mem8
    +
    See also
    lr11xx_regmem_write_mem8
    - -

    ◆ lr1110_regmem_write_buffer8()

    + +

    ◆ lr11xx_regmem_write_buffer8()

    - + @@ -386,7 +387,7 @@

    -

    Write bytes into radio TX buffer memory space of LR1110.

    +

    Write bytes into radio TX buffer memory space of LR11XX.

    Parameters

    lr1110_status_t lr1110_regmem_write_buffer8 lr11xx_status_t lr11xx_regmem_write_buffer8 ( const void *  context,
    @@ -396,18 +397,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_read_buffer8
    +
    See also
    lr11xx_regmem_read_buffer8
    - -

    ◆ lr1110_regmem_read_buffer8()

    + +

    ◆ lr11xx_regmem_read_buffer8()

    [in]contextChip implementation context
    - + @@ -438,7 +439,7 @@

    -

    Read bytes from radio RX buffer memory space of LR1110.

    +

    Read bytes from radio RX buffer memory space of LR11XX.

    Parameters

    lr1110_status_t lr1110_regmem_read_buffer8 lr11xx_status_t lr11xx_regmem_read_buffer8 ( const void *  context,
    @@ -449,18 +450,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_regmem_write_buffer8
    +
    See also
    lr11xx_regmem_write_buffer8
    - -

    ◆ lr1110_regmem_clear_rxbuffer()

    + +

    ◆ lr11xx_regmem_clear_rxbuffer()

    [in]contextChip implementation context
    - + @@ -481,14 +482,14 @@

    -

    ◆ lr1110_regmem_write_regmem32_mask()

    + +

    ◆ lr11xx_regmem_write_regmem32_mask()

    lr1110_status_t lr1110_regmem_clear_rxbuffer lr11xx_status_t lr11xx_regmem_clear_rxbuffer ( const void *  context)
    - + diff --git a/doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.map new file mode 100644 index 0000000..5282693 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.md5 new file mode 100644 index 0000000..1c36f75 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.md5 @@ -0,0 +1 @@ +d48b72d2c4674bdb8092550658f12fef \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__regmem_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..6a226745e244e5c6389a8af1655b907711fac56f GIT binary patch literal 14852 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 literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/lr11xx__regmem_8h__incl.map b/doc/lr11xx/html/lr11xx__regmem_8h__incl.map new file mode 100644 index 0000000..073a931 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__regmem_8h__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/doc/lr11xx/html/lr11xx__regmem_8h__incl.md5 b/doc/lr11xx/html/lr11xx__regmem_8h__incl.md5 new file mode 100644 index 0000000..4800375 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__regmem_8h__incl.md5 @@ -0,0 +1 @@ +388a41b49b8e3e538255881a468ca1c3 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__regmem_8h__incl.png b/doc/lr11xx/html/lr11xx__regmem_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..21715d6ef77428884b323fb962ba0f9d646991e2 GIT binary patch literal 6504 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 -lr1110_driver: lr1110_driver/src/lr1110_regmem.h Source File +lr11xx_driver: lr11xx_driver/src/lr11xx_regmem.h Source File @@ -21,7 +21,7 @@ @@ -61,17 +61,17 @@
    -
    lr1110_regmem.h
    +
    lr11xx_regmem.h
    -Go to the documentation of this file.
    1 
    -
    35 #ifndef LR1110_REGMEM_H
    -
    36 #define LR1110_REGMEM_H
    +Go to the documentation of this file.
    1 
    +
    35 #ifndef LR11XX_REGMEM_H
    +
    36 #define LR11XX_REGMEM_H
    37 
    38 #ifdef __cplusplus
    39 extern "C" {
    @@ -83,7 +83,7 @@
    45  */
    46 
    47 #include <stdint.h>
    -
    48 #include "lr1110_types.h"
    +
    48 #include "lr11xx_types.h"
    49 
    50 /*
    51  * -----------------------------------------------------------------------------
    @@ -105,46 +105,46 @@
    67  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
    68  */
    69 
    -
    85 lr1110_status_t lr1110_regmem_write_regmem32( const void* context, const uint32_t address, const uint32_t* buffer,
    +
    85 lr11xx_status_t lr11xx_regmem_write_regmem32( const void* context, const uint32_t address, const uint32_t* buffer,
    86  const uint8_t length );
    87 
    -
    104 lr1110_status_t lr1110_regmem_read_regmem32( const void* context, const uint32_t address, uint32_t* buffer,
    +
    104 lr11xx_status_t lr11xx_regmem_read_regmem32( const void* context, const uint32_t address, uint32_t* buffer,
    105  const uint8_t length );
    106 
    -
    121 lr1110_status_t lr1110_regmem_write_mem8( const void* context, const uint32_t address, const uint8_t* buffer,
    +
    121 lr11xx_status_t lr11xx_regmem_write_mem8( const void* context, const uint32_t address, const uint8_t* buffer,
    122  const uint8_t length );
    123 
    -
    140 lr1110_status_t lr1110_regmem_read_mem8( const void* context, const uint32_t address, uint8_t* buffer,
    +
    140 lr11xx_status_t lr11xx_regmem_read_mem8( const void* context, const uint32_t address, uint8_t* buffer,
    141  const uint8_t length );
    142 
    -
    154 lr1110_status_t lr1110_regmem_write_buffer8( const void* context, const uint8_t* buffer, const uint8_t length );
    +
    154 lr11xx_status_t lr11xx_regmem_write_buffer8( const void* context, const uint8_t* buffer, const uint8_t length );
    155 
    -
    169 lr1110_status_t lr1110_regmem_read_buffer8( const void* context, uint8_t* buffer, const uint8_t offset,
    +
    169 lr11xx_status_t lr11xx_regmem_read_buffer8( const void* context, uint8_t* buffer, const uint8_t offset,
    170  const uint8_t length );
    171 
    -
    181 lr1110_status_t lr1110_regmem_clear_rxbuffer( const void* context );
    +
    181 lr11xx_status_t lr11xx_regmem_clear_rxbuffer( const void* context );
    182 
    -
    193 lr1110_status_t lr1110_regmem_write_regmem32_mask( const void* context, const uint32_t address, const uint32_t mask,
    +
    193 lr11xx_status_t lr11xx_regmem_write_regmem32_mask( const void* context, const uint32_t address, const uint32_t mask,
    194  const uint32_t data );
    195 
    196 #ifdef __cplusplus
    197 }
    198 #endif
    199 
    -
    200 #endif // LR1110_REGMEM_H
    +
    200 #endif // LR11XX_REGMEM_H
    201 
    202 /* --- EOF ------------------------------------------------------------------ */
    -
    lr1110_status_t lr1110_regmem_read_mem8(const void *context, const uint32_t address, uint8_t *buffer, const uint8_t length)
    Read bytes into register memory space of LR1110.
    Definition: lr1110_regmem.c:193
    -
    lr1110_status_t lr1110_regmem_read_regmem32(const void *context, const uint32_t address, uint32_t *buffer, const uint8_t length)
    Read words into register memory space of LR1110.
    Definition: lr1110_regmem.c:163
    -
    lr1110_status_t lr1110_regmem_clear_rxbuffer(const void *context)
    Clear radio RX buffer.
    Definition: lr1110_regmem.c:228
    -
    lr1110_status_t lr1110_regmem_write_regmem32_mask(const void *context, const uint32_t address, const uint32_t mask, const uint32_t data)
    Read-modify-write data at given register/memory address.
    Definition: lr1110_regmem.c:238
    -
    Type definitions for LR1110.
    -
    lr1110_status_t lr1110_regmem_write_mem8(const void *context, const uint32_t address, const uint8_t *buffer, const uint8_t length)
    Write bytes into register memory space of LR1110.
    Definition: lr1110_regmem.c:182
    -
    enum lr1110_status_e lr1110_status_t
    LR1110 status.
    -
    lr1110_status_t lr1110_regmem_write_regmem32(const void *context, const uint32_t address, const uint32_t *buffer, const uint8_t length)
    Write words into register memory space of LR1110.
    Definition: lr1110_regmem.c:150
    -
    lr1110_status_t lr1110_regmem_read_buffer8(const void *context, uint8_t *buffer, const uint8_t offset, const uint8_t length)
    Read bytes from radio RX buffer memory space of LR1110.
    Definition: lr1110_regmem.c:214
    -
    lr1110_status_t lr1110_regmem_write_buffer8(const void *context, const uint8_t *buffer, const uint8_t length)
    Write bytes into radio TX buffer memory space of LR1110.
    Definition: lr1110_regmem.c:203
    +
    lr11xx_status_t lr11xx_regmem_write_buffer8(const void *context, const uint8_t *buffer, const uint8_t length)
    Write bytes into radio TX buffer memory space of LR11XX.
    Definition: lr11xx_regmem.c:203
    +
    lr11xx_status_t lr11xx_regmem_write_regmem32_mask(const void *context, const uint32_t address, const uint32_t mask, const uint32_t data)
    Read-modify-write data at given register/memory address.
    Definition: lr11xx_regmem.c:238
    +
    Type definitions for LR11XX.
    +
    lr11xx_status_t lr11xx_regmem_write_mem8(const void *context, const uint32_t address, const uint8_t *buffer, const uint8_t length)
    Write bytes into register memory space of LR11XX.
    Definition: lr11xx_regmem.c:182
    +
    lr11xx_status_t lr11xx_regmem_read_mem8(const void *context, const uint32_t address, uint8_t *buffer, const uint8_t length)
    Read bytes into register memory space of LR11XX.
    Definition: lr11xx_regmem.c:193
    +
    lr11xx_status_t lr11xx_regmem_write_regmem32(const void *context, const uint32_t address, const uint32_t *buffer, const uint8_t length)
    Write words into register memory space of LR11XX.
    Definition: lr11xx_regmem.c:150
    +
    lr11xx_status_t lr11xx_regmem_read_regmem32(const void *context, const uint32_t address, uint32_t *buffer, const uint8_t length)
    Read words into register memory space of LR11XX.
    Definition: lr11xx_regmem.c:163
    +
    enum lr11xx_status_e lr11xx_status_t
    LR11XX status.
    +
    lr11xx_status_t lr11xx_regmem_clear_rxbuffer(const void *context)
    Clear radio RX buffer.
    Definition: lr11xx_regmem.c:228
    +
    lr11xx_status_t lr11xx_regmem_read_buffer8(const void *context, uint8_t *buffer, const uint8_t offset, const uint8_t length)
    Read bytes from radio RX buffer memory space of LR11XX.
    Definition: lr11xx_regmem.c:214
    @@ -61,7 +61,7 @@
    @@ -70,26 +70,26 @@ Enumerations | Functions
    -
    lr1110_system.c File Reference
    +
    lr11xx_system.c File Reference
    -

    System driver implementation for LR1110. +

    System driver implementation for LR11XX. More...

    #include <stdlib.h>
    -#include "lr1110_system.h"
    -#include "lr1110_hal.h"
    +#include "lr11xx_system.h"
    +#include "lr11xx_hal.h"
    -Include dependency graph for lr1110_system.c:
    +Include dependency graph for lr11xx_system.c:
    -
    - - +
    + + - - - - + + + + @@ -97,365 +97,363 @@
    lr1110_status_t lr1110_regmem_write_regmem32_mask lr11xx_status_t lr11xx_regmem_write_regmem32_mask ( const void *  context,
    -
    lr1110_driver +
    lr11xx_driver
    -
    lr1110_driver +
    lr11xx_driver
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Macros

    -#define LR1110_SYSTEM_GET_IRQ_STATUS_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_GET_VERSION_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_GET_ERRORS_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_CLEAR_ERRORS_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_CALIBRATE_CMD_LENGTH   ( 2 + 1 )
     
    -#define LR1110_SYSTEM_SET_REGMODE_CMD_LENGTH   ( 2 + 1 )
     
    -#define LR1110_SYSTEM_CALIBRATE_IMAGE_CMD_LENGTH   ( 2 + 2 )
     
    -#define LR1110_SYSTEM_SET_DIO_AS_RF_SWITCH_CMD_LENGTH   ( 2 + 8 )
     
    -#define LR1110_SYSTEM_SET_DIO_IRQ_PARAMS_CMD_LENGTH   ( 2 + 8 )
     
    -#define LR1110_SYSTEM_CLEAR_IRQ_CMD_LENGTH   ( 2 + 4 )
     
    -#define LR1110_SYSTEM_CFG_LFCLK_CMD_LENGTH   ( 2 + 1 )
     
    -#define LR1110_SYSTEM_SET_TCXO_MODE_CMD_LENGTH   ( 2 + 4 )
     
    -#define LR1110_SYSTEM_REBOOT_CMD_LENGTH   ( 2 + 1 )
     
    -#define LR1110_SYSTEM_GET_VBAT_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_GET_TEMP_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_SET_SLEEP_CMD_LENGTH   ( 2 + 5 )
     
    -#define LR1110_SYSTEM_SET_STANDBY_CMD_LENGTH   ( 2 + 1 )
     
    -#define LR1110_SYSTEM_SET_FS_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_ERASE_INFOPAGE_CMD_LENGTH   ( 2 + 1 )
     
    -#define LR1110_SYSTEM_WRITE_INFOPAGE_CMD_LENGTH   ( 2 + 3 )
     
    -#define LR1110_SYSTEM_READ_INFOPAGE_CMD_LENGTH   ( 2 + 4 )
     
    -#define LR1110_SYSTEM_READ_UID_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_READ_JOIN_EUI_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_READ_PIN_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_READ_PIN_CUSTOM_EUI_CMD_LENGTH   ( LR1110_SYSTEM_READ_PIN_CMD_LENGTH + 17 )
     
    -#define LR1110_SYSTEM_GET_RANDOM_CMD_LENGTH   ( 2 )
     
    -#define LR1110_SYSTEM_ENABLE_SPI_CRC_CMD_LENGTH   ( 3 )
     
    -#define LR1110_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_CMD_LENGTH   ( 3 )
     
    -#define LR1110_SYSTEM_GET_STATUS_DIRECT_READ_LENGTH   ( 6 )
     
    +#define LR11XX_SYSTEM_GET_VERSION_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_SYSTEM_GET_ERRORS_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_SYSTEM_CLEAR_ERRORS_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_SYSTEM_CALIBRATE_CMD_LENGTH   ( 2 + 1 )
     
    +#define LR11XX_SYSTEM_SET_REGMODE_CMD_LENGTH   ( 2 + 1 )
     
    +#define LR11XX_SYSTEM_CALIBRATE_IMAGE_CMD_LENGTH   ( 2 + 2 )
     
    +#define LR11XX_SYSTEM_SET_DIO_AS_RF_SWITCH_CMD_LENGTH   ( 2 + 8 )
     
    +#define LR11XX_SYSTEM_SET_DIO_IRQ_PARAMS_CMD_LENGTH   ( 2 + 8 )
     
    +#define LR11XX_SYSTEM_CLEAR_IRQ_CMD_LENGTH   ( 2 + 4 )
     
    +#define LR11XX_SYSTEM_CFG_LFCLK_CMD_LENGTH   ( 2 + 1 )
     
    +#define LR11XX_SYSTEM_SET_TCXO_MODE_CMD_LENGTH   ( 2 + 4 )
     
    +#define LR11XX_SYSTEM_REBOOT_CMD_LENGTH   ( 2 + 1 )
     
    +#define LR11XX_SYSTEM_GET_VBAT_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_SYSTEM_GET_TEMP_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_SYSTEM_SET_SLEEP_CMD_LENGTH   ( 2 + 5 )
     
    +#define LR11XX_SYSTEM_SET_STANDBY_CMD_LENGTH   ( 2 + 1 )
     
    +#define LR11XX_SYSTEM_SET_FS_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_SYSTEM_ERASE_INFOPAGE_CMD_LENGTH   ( 2 + 1 )
     
    +#define LR11XX_SYSTEM_WRITE_INFOPAGE_CMD_LENGTH   ( 2 + 3 )
     
    +#define LR11XX_SYSTEM_READ_INFOPAGE_CMD_LENGTH   ( 2 + 4 )
     
    +#define LR11XX_SYSTEM_READ_UID_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_SYSTEM_READ_JOIN_EUI_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_SYSTEM_READ_PIN_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_SYSTEM_READ_PIN_CUSTOM_EUI_CMD_LENGTH   ( LR11XX_SYSTEM_READ_PIN_CMD_LENGTH + 17 )
     
    +#define LR11XX_SYSTEM_GET_RANDOM_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_SYSTEM_ENABLE_SPI_CRC_CMD_LENGTH   ( 3 )
     
    +#define LR11XX_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_CMD_LENGTH   ( 3 )
     
    +#define LR11XX_SYSTEM_GET_STATUS_DIRECT_READ_LENGTH   ( 6 )
     
    - +

    Enumerations

    enum  {
    -  LR1110_BL_GET_STATUS_OC = 0x0100, -LR1110_BL_GET_VERSION_OC = 0x0101, -LR1110_BL_ERASE_FLASH_OC = 0x8000, -LR1110_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003, +  LR11XX_BL_GET_STATUS_OC = 0x0100, +LR11XX_BL_GET_VERSION_OC = 0x0101, +LR11XX_BL_ERASE_FLASH_OC = 0x8000, +LR11XX_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003,
    -  LR1110_BL_REBOOT_OC = 0x8005, -LR1110_BL_GET_PIN_OC = 0x800B, -LR1110_BL_READ_CHIP_EUI_OC = 0x800C, -LR1110_BL_READ_JOIN_EUI_OC = 0x800D, +  LR11XX_BL_REBOOT_OC = 0x8005, +LR11XX_BL_GET_PIN_OC = 0x800B, +LR11XX_BL_READ_CHIP_EUI_OC = 0x800C, +LR11XX_BL_READ_JOIN_EUI_OC = 0x800D,
    -  LR1110_CRYPTO_SELECT_OC = 0x0500, -LR1110_CRYPTO_SET_KEY_OC = 0x0502, -LR1110_CRYPTO_DERIVE_KEY_OC = 0x0503, -LR1110_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504, +  LR11XX_CRYPTO_SELECT_OC = 0x0500, +LR11XX_CRYPTO_SET_KEY_OC = 0x0502, +LR11XX_CRYPTO_DERIVE_KEY_OC = 0x0503, +LR11XX_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504,
    -  LR1110_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, -LR1110_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, -LR1110_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, -LR1110_CRYPTO_ENCRYPT_AES_OC = 0x0508, +  LR11XX_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, +LR11XX_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, +LR11XX_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, +LR11XX_CRYPTO_ENCRYPT_AES_OC = 0x0508,
    -  LR1110_CRYPTO_DECRYPT_AES_OC = 0x0509, -LR1110_CRYPTO_STORE_TO_FLASH_OC = 0x050A, -LR1110_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, -LR1110_CRYPTO_SET_PARAMETER_OC = 0x050D, +  LR11XX_CRYPTO_DECRYPT_AES_OC = 0x0509, +LR11XX_CRYPTO_STORE_TO_FLASH_OC = 0x050A, +LR11XX_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, +LR11XX_CRYPTO_SET_PARAMETER_OC = 0x050D,
    -  LR1110_CRYPTO_GET_PARAMETER_OC = 0x050E, -LR1110_GNSS_SET_CONSTELLATION_OC = 0x0400, -LR1110_GNSS_READ_CONSTELLATION_OC = 0x0401, -LR1110_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402, +  LR11XX_CRYPTO_GET_PARAMETER_OC = 0x050E, +LR11XX_GNSS_SET_CONSTELLATION_OC = 0x0400, +LR11XX_GNSS_READ_CONSTELLATION_OC = 0x0401, +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402,
    -  LR1110_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, -LR1110_GNSS_READ_FW_VERSION_OC = 0x0406, -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, -LR1110_GNSS_SET_SCAN_MODE_OC = 0x0408, +  LR11XX_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, +LR11XX_GNSS_READ_FW_VERSION_OC = 0x0406, +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, +LR11XX_GNSS_SET_SCAN_MODE_OC = 0x0408,
    -  LR1110_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, -LR1110_GNSS_SCAN_ASSISTED_OC = 0x040A, -LR1110_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, -LR1110_GNSS_SCAN_READ_RES_OC = 0x040D, +  LR11XX_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, +LR11XX_GNSS_SCAN_ASSISTED_OC = 0x040A, +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, +LR11XX_GNSS_SCAN_READ_RES_OC = 0x040D,
    -  LR1110_GNSS_ALMANAC_UPDATE_OC = 0x040E, -LR1110_GNSS_ALMANAC_READ_OC = 0x040F, -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411, +  LR11XX_GNSS_ALMANAC_UPDATE_OC = 0x040E, +LR11XX_GNSS_ALMANAC_READ_OC = 0x040F, +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411,
    -  LR1110_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, -LR1110_GNSS_PUSH_DM_MSG_OC = 0x0415, -LR1110_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, -LR1110_GNSS_GET_NB_SATELLITES_OC = 0x0417, +  LR11XX_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, +LR11XX_GNSS_PUSH_DM_MSG_OC = 0x0415, +LR11XX_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, +LR11XX_GNSS_GET_NB_SATELLITES_OC = 0x0417,
    -  LR1110_GNSS_GET_SATELLITES_OC = 0x0418, -LR1110_GNSS_GET_TIMINGS_OC = 0x0419, -LR1110_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, -LR1110_LR_FHSS_BUILD_FRAME_OC = 0x022C, +  LR11XX_GNSS_GET_SATELLITES_OC = 0x0418, +LR11XX_GNSS_GET_TIMINGS_OC = 0x0419, +LR11XX_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, +LR11XX_LR_FHSS_BUILD_FRAME_OC = 0x022C,
    -  LR1110_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, -LR1110_RADIO_RESET_STATS_OC = 0x0200, -LR1110_RADIO_GET_STATS_OC = 0x0201, -LR1110_RADIO_GET_PKT_TYPE_OC = 0x0202, +  LR11XX_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, +LR11XX_RADIO_RESET_STATS_OC = 0x0200, +LR11XX_RADIO_GET_STATS_OC = 0x0201, +LR11XX_RADIO_GET_PKT_TYPE_OC = 0x0202,
    -  LR1110_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, -LR1110_RADIO_GET_PKT_STATUS_OC = 0x0204, -LR1110_RADIO_GET_RSSI_INST_OC = 0x0205, -LR1110_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206, +  LR11XX_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, +LR11XX_RADIO_GET_PKT_STATUS_OC = 0x0204, +LR11XX_RADIO_GET_RSSI_INST_OC = 0x0205, +LR11XX_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206,
    -  LR1110_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, -LR1110_RADIO_SET_RX_OC = 0x0209, -LR1110_RADIO_SET_TX_OC = 0x020A, -LR1110_RADIO_SET_RF_FREQUENCY_OC = 0x020B, +  LR11XX_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, +LR11XX_RADIO_SET_RX_OC = 0x0209, +LR11XX_RADIO_SET_TX_OC = 0x020A, +LR11XX_RADIO_SET_RF_FREQUENCY_OC = 0x020B,
    -  LR1110_RADIO_AUTOTXRX_OC = 0x020C, -LR1110_RADIO_SET_CAD_PARAMS_OC = 0x020D, -LR1110_RADIO_SET_PKT_TYPE_OC = 0x020E, -LR1110_RADIO_SET_MODULATION_PARAM_OC = 0x020F, +  LR11XX_RADIO_AUTOTXRX_OC = 0x020C, +LR11XX_RADIO_SET_CAD_PARAMS_OC = 0x020D, +LR11XX_RADIO_SET_PKT_TYPE_OC = 0x020E, +LR11XX_RADIO_SET_MODULATION_PARAM_OC = 0x020F,
    -  LR1110_RADIO_SET_PKT_PARAM_OC = 0x0210, -LR1110_RADIO_SET_TX_PARAMS_OC = 0x0211, -LR1110_RADIO_SET_PKT_ADRS_OC = 0x0212, -LR1110_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213, +  LR11XX_RADIO_SET_PKT_PARAM_OC = 0x0210, +LR11XX_RADIO_SET_TX_PARAMS_OC = 0x0211, +LR11XX_RADIO_SET_PKT_ADRS_OC = 0x0212, +LR11XX_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213,
    -  LR1110_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, -LR1110_RADIO_SET_PA_CFG_OC = 0x0215, -LR1110_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, -LR1110_RADIO_SET_CAD_OC = 0x0218, +  LR11XX_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, +LR11XX_RADIO_SET_PA_CFG_OC = 0x0215, +LR11XX_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, +LR11XX_RADIO_SET_CAD_OC = 0x0218,
    -  LR1110_RADIO_SET_TX_CW_OC = 0x0219, -LR1110_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, -LR1110_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, -LR1110_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224, +  LR11XX_RADIO_SET_TX_CW_OC = 0x0219, +LR11XX_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, +LR11XX_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, +LR11XX_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224,
    -  LR1110_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, -LR1110_RADIO_SET_RX_BOOSTED_OC = 0x0227, -LR1110_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B, -LR1110_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +  LR11XX_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, +LR11XX_RADIO_SET_RX_BOOSTED_OC = 0x0227, +LR11XX_RADIO_SET_RSSI_CALIBRATION_OC = 0x0229, +LR11XX_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B,
    -  LR1110_REGMEM_WRITE_REGMEM32_OC = 0x0105, -LR1110_REGMEM_READ_REGMEM32_OC = 0x0106, -LR1110_REGMEM_WRITE_MEM8_OC = 0x0107, -LR1110_REGMEM_READ_MEM8_OC = 0x0108, +  LR11XX_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +LR11XX_REGMEM_WRITE_REGMEM32_OC = 0x0105, +LR11XX_REGMEM_READ_REGMEM32_OC = 0x0106, +LR11XX_REGMEM_WRITE_MEM8_OC = 0x0107,
    -  LR1110_REGMEM_WRITE_BUFFER8_OC = 0x0109, -LR1110_REGMEM_READ_BUFFER8_OC = 0x010A, -LR1110_REGMEM_CLEAR_RXBUFFER_OC = 0x010B, -LR1110_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +  LR11XX_REGMEM_READ_MEM8_OC = 0x0108, +LR11XX_REGMEM_WRITE_BUFFER8_OC = 0x0109, +LR11XX_REGMEM_READ_BUFFER8_OC = 0x010A, +LR11XX_REGMEM_CLEAR_RXBUFFER_OC = 0x010B,
    -  LR1110_SYSTEM_GET_STATUS_OC = 0x0100, -LR1110_SYSTEM_GET_VERSION_OC = 0x0101, -LR1110_SYSTEM_GET_ERRORS_OC = 0x010D, -LR1110_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +  LR11XX_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +LR11XX_SYSTEM_GET_STATUS_OC = 0x0100, +LR11XX_SYSTEM_GET_VERSION_OC = 0x0101, +LR11XX_SYSTEM_GET_ERRORS_OC = 0x010D,
    -  LR1110_SYSTEM_CALIBRATE_OC = 0x010F, -LR1110_SYSTEM_SET_REGMODE_OC = 0x0110, -LR1110_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111, -LR1110_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +  LR11XX_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +LR11XX_SYSTEM_CALIBRATE_OC = 0x010F, +LR11XX_SYSTEM_SET_REGMODE_OC = 0x0110, +LR11XX_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111,
    -  LR1110_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, -LR1110_SYSTEM_CLEAR_IRQ_OC = 0x0114, -LR1110_SYSTEM_CFG_LFCLK_OC = 0x0116, -LR1110_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +  LR11XX_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +LR11XX_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, +LR11XX_SYSTEM_CLEAR_IRQ_OC = 0x0114, +LR11XX_SYSTEM_CFG_LFCLK_OC = 0x0116,
    -  LR1110_SYSTEM_REBOOT_OC = 0x0118, -LR1110_SYSTEM_GET_VBAT_OC = 0x0119, -LR1110_SYSTEM_GET_TEMP_OC = 0x011A, -LR1110_SYSTEM_SET_SLEEP_OC = 0x011B, +  LR11XX_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +LR11XX_SYSTEM_REBOOT_OC = 0x0118, +LR11XX_SYSTEM_GET_VBAT_OC = 0x0119, +LR11XX_SYSTEM_GET_TEMP_OC = 0x011A,
    -  LR1110_SYSTEM_SET_STANDBY_OC = 0x011C, -LR1110_SYSTEM_SET_FS_OC = 0x011D, -LR1110_SYSTEM_GET_RANDOM_OC = 0x0120, -LR1110_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +  LR11XX_SYSTEM_SET_SLEEP_OC = 0x011B, +LR11XX_SYSTEM_SET_STANDBY_OC = 0x011C, +LR11XX_SYSTEM_SET_FS_OC = 0x011D, +LR11XX_SYSTEM_GET_RANDOM_OC = 0x0120,
    -  LR1110_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, -LR1110_SYSTEM_READ_INFOPAGE_OC = 0x0123, -LR1110_SYSTEM_READ_UID_OC = 0x0125, -LR1110_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +  LR11XX_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +LR11XX_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, +LR11XX_SYSTEM_READ_INFOPAGE_OC = 0x0123, +LR11XX_SYSTEM_READ_UID_OC = 0x0125,
    -  LR1110_SYSTEM_READ_PIN_OC = 0x0127, -LR1110_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, -LR1110_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A, -LR1110_WIFI_SCAN_OC = 0x0300, +  LR11XX_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +LR11XX_SYSTEM_READ_PIN_OC = 0x0127, +LR11XX_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, +LR11XX_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A,
    -  LR1110_WIFI_SCAN_TIME_LIMIT = 0x0301, -LR1110_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, -LR1110_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303, -LR1110_WIFI_GET_RESULT_SIZE_OC = 0x0305, +  LR11XX_WIFI_SCAN_OC = 0x0300, +LR11XX_WIFI_SCAN_TIME_LIMIT = 0x0301, +LR11XX_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, +LR11XX_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303,
    -  LR1110_WIFI_READ_RESULT_OC = 0x0306, -LR1110_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, -LR1110_WIFI_READ_CUMUL_TIMING_OC = 0x0308, -LR1110_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +  LR11XX_WIFI_GET_RESULT_SIZE_OC = 0x0305, +LR11XX_WIFI_READ_RESULT_OC = 0x0306, +LR11XX_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, +LR11XX_WIFI_READ_CUMUL_TIMING_OC = 0x0308,
    -  LR1110_WIFI_READ_COUNTRY_CODE_OC = 0x030A, -LR1110_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, -LR1110_WIFI_GET_VERSION_OC = 0x0320 +  LR11XX_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +LR11XX_WIFI_READ_COUNTRY_CODE_OC = 0x030A, +LR11XX_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, +LR11XX_WIFI_GET_VERSION_OC = 0x0320
    }
     Operating codes for system-related operations. More...
     Operating codes for system-related operations. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    static void lr1110_system_convert_stat1_byte_to_enum (uint8_t stat1_byte, lr1110_system_stat1_t *stat1)
     Fill stat1 structure with data from stat1_byte. More...
     
    static void lr1110_system_convert_stat2_byte_to_enum (uint8_t stat2_byte, lr1110_system_stat2_t *stat2)
     Fill stat2 structure with data from stat2_byte. More...
     
    lr1110_status_t lr1110_system_reset (const void *context)
     Reset the radio. More...
     
    lr1110_status_t lr1110_system_get_status (const void *context, lr1110_system_stat1_t *stat1, lr1110_system_stat2_t *stat2, lr1110_system_irq_mask_t *irq_status)
     Return stat1, stat2, and irq_status. More...
     
    lr1110_status_t lr1110_system_clear_reset_status_info (const void *context)
     Clear the reset status information stored in stat2. More...
     
    lr1110_status_t lr1110_system_get_version (const void *context, lr1110_system_version_t *version)
     Return the version of the system (hardware and software) More...
     
    lr1110_status_t lr1110_system_get_errors (const void *context, lr1110_system_errors_t *errors)
     Return the system errors. More...
     
    lr1110_status_t lr1110_system_clear_errors (const void *context)
     Clear all error flags pending. More...
     
    lr1110_status_t lr1110_system_calibrate (const void *context, const uint8_t calib_param)
     lr1110_system_calibrate the requested blocks More...
     
    lr1110_status_t lr1110_system_set_reg_mode (const void *context, const lr1110_system_reg_mode_t reg_mode)
     Configure the regulator mode to be used in specific modes. More...
     
    lr1110_status_t lr1110_system_calibrate_image (const void *context, const uint8_t freq1, const uint8_t freq2)
     Launch an image calibration valid for all frequencies inside an interval, in steps. More...
     
    lr1110_status_t lr1110_system_calibrate_image_in_mhz (const void *context, const uint16_t freq1_in_mhz, const uint16_t freq2_in_mhz)
     Launch an image calibration valid for all frequencies inside an interval, in MHz. More...
     
    lr1110_status_t lr1110_system_set_dio_as_rf_switch (const void *context, const lr1110_system_rfswitch_cfg_t *rf_switch_cfg)
     Set the RF switch configurations for each RF setup. More...
     
    lr1110_status_t lr1110_system_set_dio_irq_params (const void *context, const uint32_t irqs_to_enable_dio1, const uint32_t irqs_to_enable_dio2)
     Set which interrupt signals are redirected to the dedicated DIO pin. More...
     
    lr1110_status_t lr1110_system_clear_irq_status (const void *context, const lr1110_system_irq_mask_t irqs_to_clear)
     Clear requested bits in the internal pending interrupt register. More...
     
    lr1110_status_t lr1110_system_get_and_clear_irq_status (const void *context, lr1110_system_irq_mask_t *irq)
     This helper function clears any radio irq status flags that are set and returns the flags that were cleared. More...
     
    lr1110_status_t lr1110_system_cfg_lfclk (const void *context, const lr1110_system_lfclk_cfg_t lfclock_cfg, const bool wait_for_32k_ready)
     Defines which clock is used as Low Frequency (LF) clock. More...
     
    lr1110_status_t lr1110_system_set_tcxo_mode (const void *context, const lr1110_system_tcxo_supply_voltage_t tune, const uint32_t timeout)
     Enable and configure TCXO supply voltage and detection timeout. More...
     
    lr1110_status_t lr1110_system_reboot (const void *context, const bool stay_in_bootloader)
     Software reset of the chip. More...
     
    lr1110_status_t lr1110_system_get_vbat (const void *context, uint8_t *vbat)
     Returns the value of Vbat. More...
     
    lr1110_status_t lr1110_system_get_temp (const void *context, uint16_t *temp)
     Returns the value of Temp. More...
     
    lr1110_status_t lr1110_system_set_sleep (const void *context, const lr1110_system_sleep_cfg_t sleep_cfg, const uint32_t sleep_time)
     Set the device into Sleep or Deep Sleep Mode. More...
     
    lr1110_status_t lr1110_system_set_standby (const void *context, const lr1110_system_standby_cfg_t standby_cfg)
     Set the device into the requested Standby mode. More...
     
    lr1110_status_t lr1110_system_wakeup (const void *context)
     Wake the radio up from sleep mode. More...
     
    lr1110_status_t lr1110_system_set_fs (const void *context)
     Set the device into Frequency Synthesis (FS) mode. More...
     
    lr1110_status_t lr1110_system_erase_infopage (const void *context, const lr1110_system_infopage_id_t infopage_id)
     Erase an info page. More...
     
    lr1110_status_t lr1110_system_write_infopage (const void *context, const lr1110_system_infopage_id_t infopage_id, const uint16_t address, const uint32_t *data, const uint8_t length)
     Write data in an info page. More...
     
    lr1110_status_t lr1110_system_read_infopage (const void *context, const lr1110_system_infopage_id_t infopage_id, const uint16_t address, uint32_t *data, const uint8_t length)
     Read data from an info page. More...
     
    lr1110_status_t lr1110_system_read_uid (const void *context, lr1110_system_uid_t unique_identifier)
     Read and return the Unique Identifier of the LR1110. More...
     
    lr1110_status_t lr1110_system_read_join_eui (const void *context, lr1110_system_join_eui_t join_eui)
     Read and return the Join EUI of the LR1110. More...
     
    lr1110_status_t lr1110_system_read_pin (const void *context, lr1110_system_pin_t pin)
     Compute and return the PIN of the LR1110 based on factory default EUIs. More...
     
    lr1110_status_t lr1110_system_read_pin_custom_eui (const void *context, lr1110_system_uid_t device_eui, lr1110_system_join_eui_t join_eui, uint8_t rfu, lr1110_system_pin_t pin)
     Compute and return the PIN of the LR1110 based on EUIs provided as parameters. More...
     
    lr1110_status_t lr1110_system_get_random_number (const void *context, uint32_t *random_number)
     Read and return a 32-bit random number. More...
     
    lr1110_status_t lr1110_system_enable_spi_crc (const void *context, bool enable_crc)
     Enable the CRC on SPI transactions. More...
     
    lr1110_status_t lr1110_system_drive_dio_in_sleep_mode (const void *context, bool enable_drive)
     Configure the GPIO drive in sleep mode. More...
     
    static void lr11xx_system_convert_stat1_byte_to_enum (uint8_t stat1_byte, lr11xx_system_stat1_t *stat1)
     Fill stat1 structure with data from stat1_byte. More...
     
    static void lr11xx_system_convert_stat2_byte_to_enum (uint8_t stat2_byte, lr11xx_system_stat2_t *stat2)
     Fill stat2 structure with data from stat2_byte. More...
     
    lr11xx_status_t lr11xx_system_reset (const void *context)
     Reset the radio. More...
     
    lr11xx_status_t lr11xx_system_get_status (const void *context, lr11xx_system_stat1_t *stat1, lr11xx_system_stat2_t *stat2, lr11xx_system_irq_mask_t *irq_status)
     Return stat1, stat2, and irq_status. More...
     
    lr11xx_status_t lr11xx_system_clear_reset_status_info (const void *context)
     Clear the reset status information stored in stat2. More...
     
    lr11xx_status_t lr11xx_system_get_version (const void *context, lr11xx_system_version_t *version)
     Return the version of the system (hardware and software) More...
     
    lr11xx_status_t lr11xx_system_get_errors (const void *context, lr11xx_system_errors_t *errors)
     Return the system errors. More...
     
    lr11xx_status_t lr11xx_system_clear_errors (const void *context)
     Clear all error flags pending. More...
     
    lr11xx_status_t lr11xx_system_calibrate (const void *context, const uint8_t calib_param)
     lr11xx_system_calibrate the requested blocks More...
     
    lr11xx_status_t lr11xx_system_set_reg_mode (const void *context, const lr11xx_system_reg_mode_t reg_mode)
     Configure the regulator mode to be used in specific modes. More...
     
    lr11xx_status_t lr11xx_system_calibrate_image (const void *context, const uint8_t freq1, const uint8_t freq2)
     Launch an image calibration valid for all frequencies inside an interval, in steps. More...
     
    lr11xx_status_t lr11xx_system_calibrate_image_in_mhz (const void *context, const uint16_t freq1_in_mhz, const uint16_t freq2_in_mhz)
     Launch an image calibration valid for all frequencies inside an interval, in MHz. More...
     
    lr11xx_status_t lr11xx_system_set_dio_as_rf_switch (const void *context, const lr11xx_system_rfswitch_cfg_t *rf_switch_cfg)
     Set the RF switch configurations for each RF setup. More...
     
    lr11xx_status_t lr11xx_system_set_dio_irq_params (const void *context, const lr11xx_system_irq_mask_t irqs_to_enable_dio1, const lr11xx_system_irq_mask_t irqs_to_enable_dio2)
     Set which interrupt signals are redirected to the dedicated DIO pin. More...
     
    lr11xx_status_t lr11xx_system_clear_irq_status (const void *context, const lr11xx_system_irq_mask_t irqs_to_clear)
     Clear requested bits in the internal pending interrupt register. More...
     
    lr11xx_status_t lr11xx_system_get_and_clear_irq_status (const void *context, lr11xx_system_irq_mask_t *irq)
     This helper function clears any radio irq status flags that are set and returns the flags that were cleared. More...
     
    lr11xx_status_t lr11xx_system_cfg_lfclk (const void *context, const lr11xx_system_lfclk_cfg_t lfclock_cfg, const bool wait_for_32k_ready)
     Defines which clock is used as Low Frequency (LF) clock. More...
     
    lr11xx_status_t lr11xx_system_set_tcxo_mode (const void *context, const lr11xx_system_tcxo_supply_voltage_t tune, const uint32_t timeout)
     Enable and configure TCXO supply voltage and detection timeout. More...
     
    lr11xx_status_t lr11xx_system_reboot (const void *context, const bool stay_in_bootloader)
     Software reset of the chip. More...
     
    lr11xx_status_t lr11xx_system_get_vbat (const void *context, uint8_t *vbat)
     Returns the value of Vbat. More...
     
    lr11xx_status_t lr11xx_system_get_temp (const void *context, uint16_t *temp)
     Returns the value of Temp. More...
     
    lr11xx_status_t lr11xx_system_set_sleep (const void *context, const lr11xx_system_sleep_cfg_t sleep_cfg, const uint32_t sleep_time)
     Set the device into Sleep or Deep Sleep Mode. More...
     
    lr11xx_status_t lr11xx_system_set_standby (const void *context, const lr11xx_system_standby_cfg_t standby_cfg)
     Set the device into the requested Standby mode. More...
     
    lr11xx_status_t lr11xx_system_wakeup (const void *context)
     Wake the radio up from sleep mode. More...
     
    lr11xx_status_t lr11xx_system_set_fs (const void *context)
     Set the device into Frequency Synthesis (FS) mode. More...
     
    lr11xx_status_t lr11xx_system_erase_infopage (const void *context, const lr11xx_system_infopage_id_t infopage_id)
     Erase an info page. More...
     
    lr11xx_status_t lr11xx_system_write_infopage (const void *context, const lr11xx_system_infopage_id_t infopage_id, const uint16_t address, const uint32_t *data, const uint8_t length)
     Write data in an info page. More...
     
    lr11xx_status_t lr11xx_system_read_infopage (const void *context, const lr11xx_system_infopage_id_t infopage_id, const uint16_t address, uint32_t *data, const uint8_t length)
     Read data from an info page. More...
     
    lr11xx_status_t lr11xx_system_read_uid (const void *context, lr11xx_system_uid_t unique_identifier)
     Read and return the Unique Identifier of the LR11XX. More...
     
    lr11xx_status_t lr11xx_system_read_join_eui (const void *context, lr11xx_system_join_eui_t join_eui)
     Read and return the Join EUI of the LR11XX. More...
     
    lr11xx_status_t lr11xx_system_read_pin (const void *context, lr11xx_system_pin_t pin)
     Compute and return the PIN of the LR11XX based on factory default EUIs. More...
     
    lr11xx_status_t lr11xx_system_read_pin_custom_eui (const void *context, lr11xx_system_uid_t device_eui, lr11xx_system_join_eui_t join_eui, uint8_t rfu, lr11xx_system_pin_t pin)
     Compute and return the PIN of the LR11XX based on EUIs provided as parameters. More...
     
    lr11xx_status_t lr11xx_system_get_random_number (const void *context, uint32_t *random_number)
     Read and return a 32-bit random number. More...
     
    lr11xx_status_t lr11xx_system_enable_spi_crc (const void *context, bool enable_crc)
     Enable the CRC on SPI transactions. More...
     
    lr11xx_status_t lr11xx_system_drive_dio_in_sleep_mode (const void *context, bool enable_drive)
     Configure the GPIO drive in sleep mode. More...
     

    Detailed Description

    -

    System driver implementation for LR1110.

    +

    System driver implementation for LR11XX.

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • @@ -478,55 +476,55 @@

      -EnumeratorLR1110_GNSS_SET_CONSTELLATION_OC 

      Set the constellation to use.

      +EnumeratorLR11XX_GNSS_SET_CONSTELLATION_OC 

      Set the constellation to use.

      -LR1110_GNSS_READ_CONSTELLATION_OC 

      Read the used constellations.

      +LR11XX_GNSS_READ_CONSTELLATION_OC 

      Read the used constellations.

      -LR1110_GNSS_SET_ALMANAC_UPDATE_OC 

      Set almanac update configuration.

      +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC 

      Set almanac update configuration.

      -LR1110_GNSS_READ_ALMANAC_UPDATE_OC 

      Read the almanac update configuration.

      +LR11XX_GNSS_READ_ALMANAC_UPDATE_OC 

      Read the almanac update configuration.

      -LR1110_GNSS_READ_FW_VERSION_OC 

      Read the firmware version.

      +LR11XX_GNSS_READ_FW_VERSION_OC 

      Read the firmware version.

      -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

      Read the supported constellations.

      +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

      Read the supported constellations.

      -LR1110_GNSS_SET_SCAN_MODE_OC 

      Define single or double capture.

      +LR11XX_GNSS_SET_SCAN_MODE_OC 

      Define single or double capture.

      -LR1110_GNSS_SCAN_AUTONOMOUS_OC 

      Launch an autonomous scan.

      +LR11XX_GNSS_SCAN_AUTONOMOUS_OC 

      Launch an autonomous scan.

      -LR1110_GNSS_SCAN_ASSISTED_OC 

      Launch an assisted scan.

      +LR11XX_GNSS_SCAN_ASSISTED_OC 

      Launch an assisted scan.

      -LR1110_GNSS_SCAN_GET_RES_SIZE_OC 

      Get the size of the output payload.

      +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC 

      Get the size of the output payload.

      -LR1110_GNSS_SCAN_READ_RES_OC 

      Read the byte stream.

      +LR11XX_GNSS_SCAN_READ_RES_OC 

      Read the byte stream.

      -LR1110_GNSS_ALMANAC_UPDATE_OC 

      Update the almanac.

      +LR11XX_GNSS_ALMANAC_UPDATE_OC 

      Update the almanac.

      -LR1110_GNSS_ALMANAC_READ_OC 

      Read all almanacs.

      +LR11XX_GNSS_ALMANAC_READ_OC 

      Read all almanacs.

      -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC 

      Set the assistance position.

      +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC 

      Set the assistance position.

      -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC 

      Read the assistance position.

      +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC 

      Read the assistance position.

      -LR1110_GNSS_PUSH_SOLVER_MSG_OC 

      Push messages coming from the solver.

      +LR11XX_GNSS_PUSH_SOLVER_MSG_OC 

      Push messages coming from the solver.

      -LR1110_GNSS_PUSH_DM_MSG_OC 

      Push messages coming from the device management.

      +LR11XX_GNSS_PUSH_DM_MSG_OC 

      Push messages coming from the device management.

      -LR1110_GNSS_GET_CONTEXT_STATUS_OC 

      Read the context.

      +LR11XX_GNSS_GET_CONTEXT_STATUS_OC 

      Read the context.

      -LR1110_GNSS_GET_NB_SATELLITES_OC 

      Get the number of satellites detected during a scan.

      +LR11XX_GNSS_GET_NB_SATELLITES_OC 

      Get the number of satellites detected during a scan.

      -LR1110_GNSS_GET_SATELLITES_OC 

      Get the list of satellites detected during a scan.

      +LR11XX_GNSS_GET_SATELLITES_OC 

      Get the list of satellites detected during a scan.

      -LR1110_GNSS_GET_TIMINGS_OC 

      Get the time spent in signal acquisition and analysis.

      +LR11XX_GNSS_GET_TIMINGS_OC 

      Get the time spent in signal acquisition and analysis.

    Function Documentation

    - -

    ◆ lr1110_system_convert_stat1_byte_to_enum()

    + +

    ◆ lr11xx_system_convert_stat1_byte_to_enum()

    @@ -535,7 +533,7 @@

    - + @@ -543,7 +541,7 @@

    - + @@ -570,8 +568,8 @@

    -

    ◆ lr1110_system_convert_stat2_byte_to_enum()

    + +

    ◆ lr11xx_system_convert_stat2_byte_to_enum()

    @@ -580,7 +578,7 @@

    static void lr1110_system_convert_stat1_byte_to_enum static void lr11xx_system_convert_stat1_byte_to_enum ( uint8_t  stat1_byte, lr1110_system_stat1_tlr11xx_system_stat1_t stat1 
    - + @@ -588,7 +586,7 @@

    - + @@ -615,14 +613,14 @@

    -

    ◆ lr1110_system_reset()

    + +

    ◆ lr11xx_system_reset()

    static void lr1110_system_convert_stat2_byte_to_enum static void lr11xx_system_convert_stat2_byte_to_enum ( uint8_t  stat2_byte, lr1110_system_stat2_tlr11xx_system_stat2_t stat2 
    - + @@ -642,14 +640,14 @@

    -

    ◆ lr1110_system_get_status()

    + +

    ◆ lr11xx_system_get_status()

    lr1110_status_t lr1110_system_reset lr11xx_status_t lr11xx_system_reset ( const void *  context)
    - + @@ -657,19 +655,19 @@

    - + - + - + @@ -691,18 +689,18 @@

    Returns
    Operation status
    -
    Remarks
    To simplify system integration, this function does not actually execute the GetStatus command, which would require bidirectional SPI communication. It obtains the stat1, stat2, and irq_status values by performing an ordinary SPI read (which is required to send null/NOP bytes on the MOSI line). This is possible since the LR1110 returns these values automatically whenever a read that does not directly follow a response-carrying command is performed. Unlike with the GetStatus command, however, the reset status information is NOT cleared by this command. The function lr1110_system_clear_reset_status_info may be used for this purpose when necessary.
    +
    Remarks
    To simplify system integration, this function does not actually execute the GetStatus command, which would require bidirectional SPI communication. It obtains the stat1, stat2, and irq_status values by performing an ordinary SPI read (which is required to send null/NOP bytes on the MOSI line). This is possible since the LR11XX returns these values automatically whenever a read that does not directly follow a response-carrying command is performed. Unlike with the GetStatus command, however, the reset status information is NOT cleared by this command. The function lr11xx_system_clear_reset_status_info may be used for this purpose when necessary.
    - -

    ◆ lr1110_system_clear_reset_status_info()

    + +

    ◆ lr11xx_system_clear_reset_status_info()

    lr1110_status_t lr1110_system_get_status lr11xx_status_t lr11xx_system_get_status ( const void *  context, lr1110_system_stat1_tlr11xx_system_stat1_t stat1,
    lr1110_system_stat2_tlr11xx_system_stat2_t stat2,
    lr1110_system_irq_mask_tlr11xx_system_irq_mask_t irq_status 
    - + @@ -722,14 +720,14 @@

    -

    ◆ lr1110_system_get_version()

    + +

    ◆ lr11xx_system_get_version()

    lr1110_status_t lr1110_system_clear_reset_status_info lr11xx_status_t lr11xx_system_clear_reset_status_info ( const void *  context)
    - + @@ -737,7 +735,7 @@

    - + @@ -760,14 +758,14 @@

    -

    ◆ lr1110_system_get_errors()

    + +

    ◆ lr11xx_system_get_errors()

    lr1110_status_t lr1110_system_get_version lr11xx_status_t lr11xx_system_get_version ( const void *  context, lr1110_system_version_tlr11xx_system_version_t version 
    - + @@ -800,18 +798,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_calibrate, lr1110_system_calibrate_image, lr1110_system_clear_errors
    +
    See also
    lr11xx_system_calibrate, lr11xx_system_calibrate_image, lr11xx_system_clear_errors
    - -

    ◆ lr1110_system_clear_errors()

    + +

    ◆ lr11xx_system_clear_errors()

    lr1110_status_t lr1110_system_get_errors lr11xx_status_t lr11xx_system_get_errors ( const void *  context,
    - + @@ -829,18 +827,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_get_errors
    +
    See also
    lr11xx_system_get_errors
    - -

    ◆ lr1110_system_calibrate()

    + +

    ◆ lr11xx_system_calibrate()

    lr1110_status_t lr1110_system_clear_errors lr11xx_status_t lr11xx_system_clear_errors ( const void *  context)
    - + @@ -859,9 +857,9 @@

    -

    lr1110_system_calibrate the requested blocks

    +

    lr11xx_system_calibrate the requested blocks

    This function can be called in any mode of the chip.

    -

    The chip will return to standby RC mode on exit. Potential calibration issues can be read out with lr1110_system_get_errors command.

    +

    The chip will return to standby RC mode on exit. Potential calibration issues can be read out with lr11xx_system_get_errors command.

    Parameters

    lr1110_status_t lr1110_system_calibrate lr11xx_status_t lr11xx_system_calibrate ( const void *  context,
    @@ -870,18 +868,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_get_errors
    +
    See also
    lr11xx_system_get_errors
    - -

    ◆ lr1110_system_set_reg_mode()

    + +

    ◆ lr11xx_system_set_reg_mode()

    [in]contextChip implementation context
    - + @@ -889,7 +887,7 @@

    - + @@ -914,14 +912,14 @@

    -

    ◆ lr1110_system_calibrate_image()

    + +

    ◆ lr11xx_system_calibrate_image()

    lr1110_status_t lr1110_system_set_reg_mode lr11xx_status_t lr11xx_system_set_reg_mode ( const void *  context, const lr1110_system_reg_mode_t const lr11xx_system_reg_mode_t  reg_mode 
    - + @@ -948,7 +946,7 @@

    Parameters

    lr1110_status_t lr1110_system_calibrate_image lr11xx_status_t lr11xx_system_calibrate_image ( const void *  context,
    @@ -960,18 +958,18 @@

    Remarks
    freq1 must be less than or equal to freq2
    Returns
    Operation status
    -
    See also
    lr1110_system_get_errors
    +
    See also
    lr11xx_system_get_errors
    - -

    ◆ lr1110_system_calibrate_image_in_mhz()

    + +

    ◆ lr11xx_system_calibrate_image_in_mhz()

    - + @@ -997,7 +995,7 @@

    Launch an image calibration valid for all frequencies inside an interval, in MHz.

    -
    Remarks
    This function relies on lr1110_system_calibrate_image
    +
    Remarks
    This function relies on lr11xx_system_calibrate_image
    Parameters

    lr1110_status_t lr1110_system_calibrate_image_in_mhz lr11xx_status_t lr11xx_system_calibrate_image_in_mhz ( const void *  context,
    @@ -1008,18 +1006,18 @@

    Remarks
    freq1 must be less than or equal to freq2
    Returns
    Operation status
    -
    See also
    lr1110_system_calibrate_image
    +
    See also
    lr11xx_system_calibrate_image
    - -

    ◆ lr1110_system_set_dio_as_rf_switch()

    + +

    ◆ lr11xx_system_set_dio_as_rf_switch()

    [in]contextChip implementation context
    - + @@ -1027,7 +1025,7 @@

    - + @@ -1052,14 +1050,14 @@

    -

    ◆ lr1110_system_set_dio_irq_params()

    + +

    ◆ lr11xx_system_set_dio_irq_params()

    lr1110_status_t lr1110_system_set_dio_as_rf_switch lr11xx_status_t lr11xx_system_set_dio_as_rf_switch ( const void *  context, const lr1110_system_rfswitch_cfg_tconst lr11xx_system_rfswitch_cfg_t rf_switch_cfg 
    - + @@ -1067,13 +1065,13 @@

    - + - + @@ -1086,7 +1084,7 @@

    Parameters

    lr1110_status_t lr1110_system_set_dio_irq_params lr11xx_status_t lr11xx_system_set_dio_irq_params ( const void *  context, const lr1110_system_irq_mask_t const lr11xx_system_irq_mask_t  irqs_to_enable_dio1,
    const lr1110_system_irq_mask_t const lr11xx_system_irq_mask_t  irqs_to_enable_dio2 
    @@ -1096,18 +1094,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_clear_irq_status
    +
    See also
    lr11xx_system_clear_irq_status
    - -

    ◆ lr1110_system_clear_irq_status()

    + +

    ◆ lr11xx_system_clear_irq_status()

    [in]contextChip implementation context
    - + @@ -1115,7 +1113,7 @@

    - + @@ -1138,14 +1136,14 @@

    -

    ◆ lr1110_system_get_and_clear_irq_status()

    + +

    ◆ lr11xx_system_get_and_clear_irq_status()

    lr1110_status_t lr1110_system_clear_irq_status lr11xx_status_t lr11xx_system_clear_irq_status ( const void *  context, const lr1110_system_irq_mask_t const lr11xx_system_irq_mask_t  irqs_to_clear 
    - + @@ -1153,7 +1151,7 @@

    - + @@ -1173,18 +1171,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_get_irq_status, lr1110_system_clear_irq_status
    +
    See also
    lr11xx_system_get_irq_status, lr11xx_system_clear_irq_status
    - -

    ◆ lr1110_system_cfg_lfclk()

    + +

    ◆ lr11xx_system_cfg_lfclk()

    lr1110_status_t lr1110_system_get_and_clear_irq_status lr11xx_status_t lr11xx_system_get_and_clear_irq_status ( const void *  context, lr1110_system_irq_mask_tlr11xx_system_irq_mask_t irq 
    - + @@ -1192,7 +1190,7 @@

    - + @@ -1219,18 +1217,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_calibrate, lr1110_system_calibrate_image
    +
    See also
    lr11xx_system_calibrate, lr11xx_system_calibrate_image
    - -

    ◆ lr1110_system_set_tcxo_mode()

    + +

    ◆ lr11xx_system_set_tcxo_mode()

    lr1110_status_t lr1110_system_cfg_lfclk lr11xx_status_t lr11xx_system_cfg_lfclk ( const void *  context, const lr1110_system_lfclk_cfg_t const lr11xx_system_lfclk_cfg_t  lfclock_cfg,
    - + @@ -1238,7 +1236,7 @@

    - + @@ -1268,18 +1266,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_calibrate, lr1110_system_calibrate_image
    +
    See also
    lr11xx_system_calibrate, lr11xx_system_calibrate_image
    - -

    ◆ lr1110_system_reboot()

    + +

    ◆ lr11xx_system_reboot()

    lr1110_status_t lr1110_system_set_tcxo_mode lr11xx_status_t lr11xx_system_set_tcxo_mode ( const void *  context, const lr1110_system_tcxo_supply_voltage_t const lr11xx_system_tcxo_supply_voltage_t  tune,
    - + @@ -1311,14 +1309,14 @@

    -

    ◆ lr1110_system_get_vbat()

    + +

    ◆ lr11xx_system_get_vbat()

    lr1110_status_t lr1110_system_reboot lr11xx_status_t lr11xx_system_reboot ( const void *  context,
    - + @@ -1350,14 +1348,14 @@

    -

    ◆ lr1110_system_get_temp()

    + +

    ◆ lr11xx_system_get_temp()

    lr1110_status_t lr1110_system_get_vbat lr11xx_status_t lr11xx_system_get_vbat ( const void *  context,
    - + @@ -1378,7 +1376,7 @@

    -
    Remarks
    If a TCXO is used, make sure to configure it with lr1110_system_set_tcxo_mode before calling this function
    +
    Remarks
    If a TCXO is used, make sure to configure it with lr11xx_system_set_tcxo_mode before calling this function
    Parameters

    lr1110_status_t lr1110_system_get_temp lr11xx_status_t lr11xx_system_get_temp ( const void *  context,
    @@ -1390,14 +1388,14 @@

    -

    ◆ lr1110_system_set_sleep()

    + +

    ◆ lr11xx_system_set_sleep()

    [in]contextChip implementation context
    - + @@ -1405,7 +1403,7 @@

    - + @@ -1434,18 +1432,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_set_standby, lr1110_system_set_fs
    +
    See also
    lr11xx_system_set_standby, lr11xx_system_set_fs
    - -

    ◆ lr1110_system_set_standby()

    + +

    ◆ lr11xx_system_set_standby()

    lr1110_status_t lr1110_system_set_sleep lr11xx_status_t lr11xx_system_set_sleep ( const void *  context, const lr1110_system_sleep_cfg_t const lr11xx_system_sleep_cfg_t  sleep_cfg,
    - + @@ -1453,7 +1451,7 @@

    - + @@ -1473,18 +1471,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_set_sleep, lr1110_system_set_fs
    +
    See also
    lr11xx_system_set_sleep, lr11xx_system_set_fs
    - -

    ◆ lr1110_system_wakeup()

    + +

    ◆ lr11xx_system_wakeup()

    lr1110_status_t lr1110_system_set_standby lr11xx_status_t lr11xx_system_set_standby ( const void *  context, const lr1110_system_standby_cfg_t const lr11xx_system_standby_cfg_t  standby_cfg 
    - + @@ -1504,14 +1502,14 @@

    -

    ◆ lr1110_system_set_fs()

    + +

    ◆ lr11xx_system_set_fs()

    lr1110_status_t lr1110_system_wakeup lr11xx_status_t lr11xx_system_wakeup ( const void *  context)
    - + @@ -1528,18 +1526,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_set_standby, lr1110_system_set_sleep
    +
    See also
    lr11xx_system_set_standby, lr11xx_system_set_sleep
    - -

    ◆ lr1110_system_erase_infopage()

    + +

    ◆ lr11xx_system_erase_infopage()

    lr1110_status_t lr1110_system_set_fs lr11xx_status_t lr11xx_system_set_fs ( const void *  context)
    - + @@ -1547,7 +1545,7 @@

    - + @@ -1562,23 +1560,23 @@

    Parameters

    lr1110_status_t lr1110_system_erase_infopage lr11xx_status_t lr11xx_system_erase_infopage ( const void *  context, const lr1110_system_infopage_id_t const lr11xx_system_infopage_id_t  info_page_id 
    - +
    [in]contextChip implementation context
    [in]info_page_idInfo page to be erased. Only LR1110_SYSTEM_INFOPAGE_1 is allowed.
    [in]info_page_idInfo page to be erased. Only LR11XX_SYSTEM_INFOPAGE_1 is allowed.
    Returns
    Operation status
    -
    See also
    lr1110_system_write_infopage, lr1110_system_read_infopage
    +
    See also
    lr11xx_system_write_infopage, lr11xx_system_read_infopage

    - -

    ◆ lr1110_system_write_infopage()

    + +

    ◆ lr11xx_system_write_infopage()

    - + @@ -1586,7 +1584,7 @@

    - + @@ -1619,7 +1617,7 @@

    Parameters

    lr1110_status_t lr1110_system_write_infopage lr11xx_status_t lr11xx_system_write_infopage ( const void *  context, const lr1110_system_infopage_id_t const lr11xx_system_infopage_id_t  info_page_id,
    - + @@ -1627,18 +1625,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_erase_infopage, lr1110_system_read_infopage
    +
    See also
    lr11xx_system_erase_infopage, lr11xx_system_read_infopage
    - -

    ◆ lr1110_system_read_infopage()

    + +

    ◆ lr11xx_system_read_infopage()

    [in]contextChip implementation context
    [in]info_page_idInfo page where data are written. Only LR1110_SYSTEM_INFOPAGE_1 is allowed.
    [in]info_page_idInfo page where data are written. Only LR11XX_SYSTEM_INFOPAGE_1 is allowed.
    [in]addressAddress within the info page (aligned on 32-bit data)
    [in]dataPointer to the data to write (data buffer shall be - at least - length words long)
    [in]lengthNumber of 32-bit data to write (maximum value is 64)
    - + @@ -1646,7 +1644,7 @@

    - + @@ -1688,18 +1686,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_erase_infopage, lr1110_system_write_infopage
    +
    See also
    lr11xx_system_erase_infopage, lr11xx_system_write_infopage
    - -

    ◆ lr1110_system_read_uid()

    + +

    ◆ lr11xx_system_read_uid()

    lr1110_status_t lr1110_system_read_infopage lr11xx_status_t lr11xx_system_read_infopage ( const void *  context, const lr1110_system_infopage_id_t const lr11xx_system_infopage_id_t  info_page_id,
    - + @@ -1707,7 +1705,7 @@

    - + @@ -1718,27 +1716,27 @@

    -

    Read and return the Unique Identifier of the LR1110.

    +

    Read and return the Unique Identifier of the LR11XX.

    Parameters

    lr1110_status_t lr1110_system_read_uid lr11xx_status_t lr11xx_system_read_uid ( const void *  context, lr1110_system_uid_t lr11xx_system_uid_t  unique_identifier 
    - +
    [in]contextChip implementation context
    [out]unique_identifierThe buffer to be filled with the Unique Identifier of the LR1110. It is up to the application to ensure unique_identifier is long enough to hold the unique identifier
    [out]unique_identifierThe buffer to be filled with the Unique Identifier of the LR11XX. It is up to the application to ensure unique_identifier is long enough to hold the unique identifier
    Returns
    Operation status
    -
    See also
    LR1110_SYSTEM_UID_LENGTH
    +
    See also
    LR11XX_SYSTEM_UID_LENGTH
    - -

    ◆ lr1110_system_read_join_eui()

    + +

    ◆ lr11xx_system_read_join_eui()

    - + @@ -1746,7 +1744,7 @@

    - + @@ -1757,27 +1755,27 @@

    -

    Read and return the Join EUI of the LR1110.

    +

    Read and return the Join EUI of the LR11XX.

    Parameters

    lr1110_status_t lr1110_system_read_join_eui lr11xx_status_t lr11xx_system_read_join_eui ( const void *  context, lr1110_system_join_eui_t lr11xx_system_join_eui_t  join_eui 
    - +
    [in]contextChip implementation context
    [out]join_euiThe buffer to be filled with Join EUI of the LR1110. It is up to the application to ensure join_eui is long enough to hold the join EUI
    [out]join_euiThe buffer to be filled with Join EUI of the LR11XX. It is up to the application to ensure join_eui is long enough to hold the join EUI
    Returns
    Operation status
    -
    See also
    LR1110_SYSTEM_JOIN_EUI_LENGTH
    +
    See also
    LR11XX_SYSTEM_JOIN_EUI_LENGTH
    - -

    ◆ lr1110_system_read_pin()

    + +

    ◆ lr11xx_system_read_pin()

    - -

    ◆ lr1110_system_read_pin_custom_eui()

    + +

    ◆ lr11xx_system_read_pin_custom_eui()

    - -

    ◆ lr1110_system_get_random_number()

    + +

    ◆ lr11xx_system_get_random_number()

    - + @@ -1910,14 +1908,14 @@

    -

    ◆ lr1110_system_enable_spi_crc()

    + +

    ◆ lr11xx_system_enable_spi_crc()

    lr1110_status_t lr1110_system_get_random_number lr11xx_status_t lr11xx_system_get_random_number ( const void *  context,
    - + @@ -1949,14 +1947,14 @@

    -

    ◆ lr1110_system_drive_dio_in_sleep_mode()

    + +

    ◆ lr11xx_system_drive_dio_in_sleep_mode()

    lr1110_status_t lr1110_system_enable_spi_crc lr11xx_status_t lr11xx_system_enable_spi_crc ( const void *  context,
    - + diff --git a/doc/lr11xx/html/lr11xx__system_8c__incl.map b/doc/lr11xx/html/lr11xx__system_8c__incl.map new file mode 100644 index 0000000..837d833 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system_8c__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__system_8c__incl.md5 b/doc/lr11xx/html/lr11xx__system_8c__incl.md5 new file mode 100644 index 0000000..7e0fae4 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system_8c__incl.md5 @@ -0,0 +1 @@ +acbc7f178ad0e55b8655eead119e94ef \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__system_8c__incl.png b/doc/lr11xx/html/lr11xx__system_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..7683d8e685e2210e58806241df382ccf6dc95685 GIT binary patch literal 17320 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 literal 0 HcmV?d00001 diff --git a/doc/lr1110/html/lr1110__system_8h.html b/doc/lr11xx/html/lr11xx__system_8h.html similarity index 59% rename from doc/lr1110/html/lr1110__system_8h.html rename to doc/lr11xx/html/lr11xx__system_8h.html index 0802dba..1e60b26 100644 --- a/doc/lr1110/html/lr1110__system_8h.html +++ b/doc/lr11xx/html/lr11xx__system_8h.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_system.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_system.h File Reference @@ -21,7 +21,7 @@ @@ -61,7 +61,7 @@
    @@ -69,22 +69,22 @@ Macros | Functions
    -
    lr1110_system.h File Reference
    +
    lr11xx_system.h File Reference
    -

    System driver definition for LR1110. +

    System driver definition for LR11XX. More...

    -
    #include "lr1110_system_types.h"
    -#include "lr1110_types.h"
    +
    #include "lr11xx_system_types.h"
    +#include "lr11xx_types.h"
    -Include dependency graph for lr1110_system.h:
    +Include dependency graph for lr11xx_system.h:
    -
    - - - - +
    + + + + @@ -92,128 +92,128 @@
    This graph shows which files directly or indirectly include this file:
    -
    - - - +
    + + +
    -

    Go to the source code of this file.

    +

    Go to the source code of this file.

    lr1110_status_t lr1110_system_drive_dio_in_sleep_mode lr11xx_status_t lr11xx_system_drive_dio_in_sleep_mode ( const void *  context,
    -
    lr1110_driver +
    lr11xx_driver
    - - - + + +

    Macros

    #define LR1110_SYSTEM_IMAGE_CALIBRATION_STEP_IN_MHZ   4
     Frequency step in MHz used to compute the image calibration parameter. More...
     
    #define LR11XX_SYSTEM_IMAGE_CALIBRATION_STEP_IN_MHZ   4
     Frequency step in MHz used to compute the image calibration parameter. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    lr1110_status_t lr1110_system_reset (const void *context)
     Reset the radio. More...
     
    lr1110_status_t lr1110_system_wakeup (const void *context)
     Wake the radio up from sleep mode. More...
     
    lr1110_status_t lr1110_system_get_status (const void *context, lr1110_system_stat1_t *stat1, lr1110_system_stat2_t *stat2, lr1110_system_irq_mask_t *irq_status)
     Return stat1, stat2, and irq_status. More...
     
    lr1110_status_t lr1110_system_clear_reset_status_info (const void *context)
     Clear the reset status information stored in stat2. More...
     
    static lr1110_status_t lr1110_system_get_irq_status (const void *context, lr1110_system_irq_mask_t *irq_status)
     Return irq_status. More...
     
    lr1110_status_t lr1110_system_get_version (const void *context, lr1110_system_version_t *version)
     Return the version of the system (hardware and software) More...
     
    lr1110_status_t lr1110_system_get_errors (const void *context, uint16_t *errors)
     Return the system errors. More...
     
    lr1110_status_t lr1110_system_clear_errors (const void *context)
     Clear all error flags pending. More...
     
    lr1110_status_t lr1110_system_calibrate (const void *context, const uint8_t calib_param)
     lr1110_system_calibrate the requested blocks More...
     
    lr1110_status_t lr1110_system_set_reg_mode (const void *context, const lr1110_system_reg_mode_t reg_mode)
     Configure the regulator mode to be used in specific modes. More...
     
    lr1110_status_t lr1110_system_calibrate_image (const void *context, const uint8_t freq1, const uint8_t freq2)
     Launch an image calibration valid for all frequencies inside an interval, in steps. More...
     
    lr1110_status_t lr1110_system_calibrate_image_in_mhz (const void *context, const uint16_t freq1_in_mhz, const uint16_t freq2_in_mhz)
     Launch an image calibration valid for all frequencies inside an interval, in MHz. More...
     
    lr1110_status_t lr1110_system_set_dio_as_rf_switch (const void *context, const lr1110_system_rfswitch_cfg_t *rf_switch_cfg)
     Set the RF switch configurations for each RF setup. More...
     
    lr1110_status_t lr1110_system_set_dio_irq_params (const void *context, const lr1110_system_irq_mask_t irqs_to_enable_dio1, const lr1110_system_irq_mask_t irqs_to_enable_dio2)
     Set which interrupt signals are redirected to the dedicated DIO pin. More...
     
    lr1110_status_t lr1110_system_clear_irq_status (const void *context, const lr1110_system_irq_mask_t irqs_to_clear)
     Clear requested bits in the internal pending interrupt register. More...
     
    lr1110_status_t lr1110_system_get_and_clear_irq_status (const void *context, lr1110_system_irq_mask_t *irq)
     This helper function clears any radio irq status flags that are set and returns the flags that were cleared. More...
     
    lr1110_status_t lr1110_system_cfg_lfclk (const void *context, const lr1110_system_lfclk_cfg_t lfclock_cfg, const bool wait_for_32k_ready)
     Defines which clock is used as Low Frequency (LF) clock. More...
     
    lr1110_status_t lr1110_system_set_tcxo_mode (const void *context, const lr1110_system_tcxo_supply_voltage_t tune, const uint32_t timeout)
     Enable and configure TCXO supply voltage and detection timeout. More...
     
    lr1110_status_t lr1110_system_reboot (const void *context, const bool stay_in_bootloader)
     Software reset of the chip. More...
     
    lr1110_status_t lr1110_system_get_vbat (const void *context, uint8_t *vbat)
     Returns the value of Vbat. More...
     
    lr1110_status_t lr1110_system_get_temp (const void *context, uint16_t *temp)
     Returns the value of Temp. More...
     
    lr1110_status_t lr1110_system_set_sleep (const void *context, const lr1110_system_sleep_cfg_t sleep_cfg, const uint32_t sleep_time)
     Set the device into Sleep or Deep Sleep Mode. More...
     
    lr1110_status_t lr1110_system_set_standby (const void *context, const lr1110_system_standby_cfg_t standby_cfg)
     Set the device into the requested Standby mode. More...
     
    lr1110_status_t lr1110_system_set_fs (const void *context)
     Set the device into Frequency Synthesis (FS) mode. More...
     
    lr1110_status_t lr1110_system_erase_infopage (const void *context, const lr1110_system_infopage_id_t info_page_id)
     Erase an info page. More...
     
    lr1110_status_t lr1110_system_write_infopage (const void *context, const lr1110_system_infopage_id_t info_page_id, const uint16_t address, const uint32_t *data, const uint8_t length)
     Write data in an info page. More...
     
    lr1110_status_t lr1110_system_read_infopage (const void *context, const lr1110_system_infopage_id_t info_page_id, const uint16_t address, uint32_t *data, const uint8_t length)
     Read data from an info page. More...
     
    lr1110_status_t lr1110_system_read_uid (const void *context, lr1110_system_uid_t unique_identifier)
     Read and return the Unique Identifier of the LR1110. More...
     
    lr1110_status_t lr1110_system_read_join_eui (const void *context, lr1110_system_join_eui_t join_eui)
     Read and return the Join EUI of the LR1110. More...
     
    lr1110_status_t lr1110_system_read_pin (const void *context, lr1110_system_pin_t pin)
     Compute and return the PIN of the LR1110 based on factory default EUIs. More...
     
    lr1110_status_t lr1110_system_read_pin_custom_eui (const void *context, lr1110_system_uid_t device_eui, lr1110_system_join_eui_t join_eui, uint8_t rfu, lr1110_system_pin_t pin)
     Compute and return the PIN of the LR1110 based on EUIs provided as parameters. More...
     
    lr1110_status_t lr1110_system_get_random_number (const void *context, uint32_t *random_number)
     Read and return a 32-bit random number. More...
     
    lr1110_status_t lr1110_system_enable_spi_crc (const void *context, bool enable_crc)
     Enable the CRC on SPI transactions. More...
     
    lr1110_status_t lr1110_system_drive_dio_in_sleep_mode (const void *context, bool enable_drive)
     Configure the GPIO drive in sleep mode. More...
     
    lr11xx_status_t lr11xx_system_reset (const void *context)
     Reset the radio. More...
     
    lr11xx_status_t lr11xx_system_wakeup (const void *context)
     Wake the radio up from sleep mode. More...
     
    lr11xx_status_t lr11xx_system_get_status (const void *context, lr11xx_system_stat1_t *stat1, lr11xx_system_stat2_t *stat2, lr11xx_system_irq_mask_t *irq_status)
     Return stat1, stat2, and irq_status. More...
     
    lr11xx_status_t lr11xx_system_clear_reset_status_info (const void *context)
     Clear the reset status information stored in stat2. More...
     
    static lr11xx_status_t lr11xx_system_get_irq_status (const void *context, lr11xx_system_irq_mask_t *irq_status)
     Return irq_status. More...
     
    lr11xx_status_t lr11xx_system_get_version (const void *context, lr11xx_system_version_t *version)
     Return the version of the system (hardware and software) More...
     
    lr11xx_status_t lr11xx_system_get_errors (const void *context, uint16_t *errors)
     Return the system errors. More...
     
    lr11xx_status_t lr11xx_system_clear_errors (const void *context)
     Clear all error flags pending. More...
     
    lr11xx_status_t lr11xx_system_calibrate (const void *context, const uint8_t calib_param)
     lr11xx_system_calibrate the requested blocks More...
     
    lr11xx_status_t lr11xx_system_set_reg_mode (const void *context, const lr11xx_system_reg_mode_t reg_mode)
     Configure the regulator mode to be used in specific modes. More...
     
    lr11xx_status_t lr11xx_system_calibrate_image (const void *context, const uint8_t freq1, const uint8_t freq2)
     Launch an image calibration valid for all frequencies inside an interval, in steps. More...
     
    lr11xx_status_t lr11xx_system_calibrate_image_in_mhz (const void *context, const uint16_t freq1_in_mhz, const uint16_t freq2_in_mhz)
     Launch an image calibration valid for all frequencies inside an interval, in MHz. More...
     
    lr11xx_status_t lr11xx_system_set_dio_as_rf_switch (const void *context, const lr11xx_system_rfswitch_cfg_t *rf_switch_cfg)
     Set the RF switch configurations for each RF setup. More...
     
    lr11xx_status_t lr11xx_system_set_dio_irq_params (const void *context, const lr11xx_system_irq_mask_t irqs_to_enable_dio1, const lr11xx_system_irq_mask_t irqs_to_enable_dio2)
     Set which interrupt signals are redirected to the dedicated DIO pin. More...
     
    lr11xx_status_t lr11xx_system_clear_irq_status (const void *context, const lr11xx_system_irq_mask_t irqs_to_clear)
     Clear requested bits in the internal pending interrupt register. More...
     
    lr11xx_status_t lr11xx_system_get_and_clear_irq_status (const void *context, lr11xx_system_irq_mask_t *irq)
     This helper function clears any radio irq status flags that are set and returns the flags that were cleared. More...
     
    lr11xx_status_t lr11xx_system_cfg_lfclk (const void *context, const lr11xx_system_lfclk_cfg_t lfclock_cfg, const bool wait_for_32k_ready)
     Defines which clock is used as Low Frequency (LF) clock. More...
     
    lr11xx_status_t lr11xx_system_set_tcxo_mode (const void *context, const lr11xx_system_tcxo_supply_voltage_t tune, const uint32_t timeout)
     Enable and configure TCXO supply voltage and detection timeout. More...
     
    lr11xx_status_t lr11xx_system_reboot (const void *context, const bool stay_in_bootloader)
     Software reset of the chip. More...
     
    lr11xx_status_t lr11xx_system_get_vbat (const void *context, uint8_t *vbat)
     Returns the value of Vbat. More...
     
    lr11xx_status_t lr11xx_system_get_temp (const void *context, uint16_t *temp)
     Returns the value of Temp. More...
     
    lr11xx_status_t lr11xx_system_set_sleep (const void *context, const lr11xx_system_sleep_cfg_t sleep_cfg, const uint32_t sleep_time)
     Set the device into Sleep or Deep Sleep Mode. More...
     
    lr11xx_status_t lr11xx_system_set_standby (const void *context, const lr11xx_system_standby_cfg_t standby_cfg)
     Set the device into the requested Standby mode. More...
     
    lr11xx_status_t lr11xx_system_set_fs (const void *context)
     Set the device into Frequency Synthesis (FS) mode. More...
     
    lr11xx_status_t lr11xx_system_erase_infopage (const void *context, const lr11xx_system_infopage_id_t info_page_id)
     Erase an info page. More...
     
    lr11xx_status_t lr11xx_system_write_infopage (const void *context, const lr11xx_system_infopage_id_t info_page_id, const uint16_t address, const uint32_t *data, const uint8_t length)
     Write data in an info page. More...
     
    lr11xx_status_t lr11xx_system_read_infopage (const void *context, const lr11xx_system_infopage_id_t info_page_id, const uint16_t address, uint32_t *data, const uint8_t length)
     Read data from an info page. More...
     
    lr11xx_status_t lr11xx_system_read_uid (const void *context, lr11xx_system_uid_t unique_identifier)
     Read and return the Unique Identifier of the LR11XX. More...
     
    lr11xx_status_t lr11xx_system_read_join_eui (const void *context, lr11xx_system_join_eui_t join_eui)
     Read and return the Join EUI of the LR11XX. More...
     
    lr11xx_status_t lr11xx_system_read_pin (const void *context, lr11xx_system_pin_t pin)
     Compute and return the PIN of the LR11XX based on factory default EUIs. More...
     
    lr11xx_status_t lr11xx_system_read_pin_custom_eui (const void *context, lr11xx_system_uid_t device_eui, lr11xx_system_join_eui_t join_eui, uint8_t rfu, lr11xx_system_pin_t pin)
     Compute and return the PIN of the LR11XX based on EUIs provided as parameters. More...
     
    lr11xx_status_t lr11xx_system_get_random_number (const void *context, uint32_t *random_number)
     Read and return a 32-bit random number. More...
     
    lr11xx_status_t lr11xx_system_enable_spi_crc (const void *context, bool enable_crc)
     Enable the CRC on SPI transactions. More...
     
    lr11xx_status_t lr11xx_system_drive_dio_in_sleep_mode (const void *context, bool enable_drive)
     Configure the GPIO drive in sleep mode. More...
     

    Detailed Description

    -

    System driver definition for LR1110.

    +

    System driver definition for LR11XX.

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • @@ -222,32 +222,32 @@

    NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    Macro Definition Documentation

    - -

    ◆ LR1110_SYSTEM_IMAGE_CALIBRATION_STEP_IN_MHZ

    + +

    ◆ LR11XX_SYSTEM_IMAGE_CALIBRATION_STEP_IN_MHZ

    - +
    #define LR1110_SYSTEM_IMAGE_CALIBRATION_STEP_IN_MHZ   4#define LR11XX_SYSTEM_IMAGE_CALIBRATION_STEP_IN_MHZ   4

    Frequency step in MHz used to compute the image calibration parameter.

    -
    See also
    lr1110_system_calibrate_image_in_mhz
    +
    See also
    lr11xx_system_calibrate_image_in_mhz

    Function Documentation

    - -

    ◆ lr1110_system_reset()

    + +

    ◆ lr11xx_system_reset()

    - + @@ -267,14 +267,14 @@

    -

    ◆ lr1110_system_wakeup()

    + +

    ◆ lr11xx_system_wakeup()

    lr1110_status_t lr1110_system_reset lr11xx_status_t lr11xx_system_reset ( const void *  context)
    - + @@ -294,14 +294,14 @@

    -

    ◆ lr1110_system_get_status()

    + +

    ◆ lr11xx_system_get_status()

    lr1110_status_t lr1110_system_wakeup lr11xx_status_t lr11xx_system_wakeup ( const void *  context)
    - + @@ -309,19 +309,19 @@

    - + - + - + @@ -343,18 +343,18 @@

    Returns
    Operation status
    -
    Remarks
    To simplify system integration, this function does not actually execute the GetStatus command, which would require bidirectional SPI communication. It obtains the stat1, stat2, and irq_status values by performing an ordinary SPI read (which is required to send null/NOP bytes on the MOSI line). This is possible since the LR1110 returns these values automatically whenever a read that does not directly follow a response-carrying command is performed. Unlike with the GetStatus command, however, the reset status information is NOT cleared by this command. The function lr1110_system_clear_reset_status_info may be used for this purpose when necessary.
    +
    Remarks
    To simplify system integration, this function does not actually execute the GetStatus command, which would require bidirectional SPI communication. It obtains the stat1, stat2, and irq_status values by performing an ordinary SPI read (which is required to send null/NOP bytes on the MOSI line). This is possible since the LR11XX returns these values automatically whenever a read that does not directly follow a response-carrying command is performed. Unlike with the GetStatus command, however, the reset status information is NOT cleared by this command. The function lr11xx_system_clear_reset_status_info may be used for this purpose when necessary.
    - -

    ◆ lr1110_system_clear_reset_status_info()

    + +

    ◆ lr11xx_system_clear_reset_status_info()

    lr1110_status_t lr1110_system_get_status lr11xx_status_t lr11xx_system_get_status ( const void *  context, lr1110_system_stat1_tlr11xx_system_stat1_t stat1,
    lr1110_system_stat2_tlr11xx_system_stat2_t stat2,
    lr1110_system_irq_mask_tlr11xx_system_irq_mask_t irq_status 
    - + @@ -374,8 +374,8 @@

    -

    ◆ lr1110_system_get_irq_status()

    + +

    ◆ lr11xx_system_get_irq_status()

    @@ -384,7 +384,7 @@

    lr1110_status_t lr1110_system_clear_reset_status_info lr11xx_status_t lr11xx_system_clear_reset_status_info ( const void *  context)
    - + @@ -392,7 +392,7 @@

    - + @@ -420,14 +420,14 @@

    -

    ◆ lr1110_system_get_version()

    + +

    ◆ lr11xx_system_get_version()

    static lr1110_status_t lr1110_system_get_irq_status static lr11xx_status_t lr11xx_system_get_irq_status ( const void *  context, lr1110_system_irq_mask_tlr11xx_system_irq_mask_t irq_status 
    - + @@ -435,7 +435,7 @@

    - + @@ -458,14 +458,14 @@

    -

    ◆ lr1110_system_get_errors()

    + +

    ◆ lr11xx_system_get_errors()

    lr1110_status_t lr1110_system_get_version lr11xx_status_t lr11xx_system_get_version ( const void *  context, lr1110_system_version_tlr11xx_system_version_t version 
    - + @@ -498,18 +498,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_calibrate, lr1110_system_calibrate_image, lr1110_system_clear_errors
    +
    See also
    lr11xx_system_calibrate, lr11xx_system_calibrate_image, lr11xx_system_clear_errors
    - -

    ◆ lr1110_system_clear_errors()

    + +

    ◆ lr11xx_system_clear_errors()

    lr1110_status_t lr1110_system_get_errors lr11xx_status_t lr11xx_system_get_errors ( const void *  context,
    - + @@ -527,18 +527,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_get_errors
    +
    See also
    lr11xx_system_get_errors
    - -

    ◆ lr1110_system_calibrate()

    + +

    ◆ lr11xx_system_calibrate()

    lr1110_status_t lr1110_system_clear_errors lr11xx_status_t lr11xx_system_clear_errors ( const void *  context)
    - + @@ -557,9 +557,9 @@

    -

    lr1110_system_calibrate the requested blocks

    +

    lr11xx_system_calibrate the requested blocks

    This function can be called in any mode of the chip.

    -

    The chip will return to standby RC mode on exit. Potential calibration issues can be read out with lr1110_system_get_errors command.

    +

    The chip will return to standby RC mode on exit. Potential calibration issues can be read out with lr11xx_system_get_errors command.

    Parameters

    lr1110_status_t lr1110_system_calibrate lr11xx_status_t lr11xx_system_calibrate ( const void *  context,
    @@ -568,18 +568,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_get_errors
    +
    See also
    lr11xx_system_get_errors
    - -

    ◆ lr1110_system_set_reg_mode()

    + +

    ◆ lr11xx_system_set_reg_mode()

    [in]contextChip implementation context
    - + @@ -587,7 +587,7 @@

    - + @@ -612,14 +612,14 @@

    -

    ◆ lr1110_system_calibrate_image()

    + +

    ◆ lr11xx_system_calibrate_image()

    lr1110_status_t lr1110_system_set_reg_mode lr11xx_status_t lr11xx_system_set_reg_mode ( const void *  context, const lr1110_system_reg_mode_t const lr11xx_system_reg_mode_t  reg_mode 
    - + @@ -646,7 +646,7 @@

    Parameters

    lr1110_status_t lr1110_system_calibrate_image lr11xx_status_t lr11xx_system_calibrate_image ( const void *  context,
    @@ -658,18 +658,18 @@

    Remarks
    freq1 must be less than or equal to freq2
    Returns
    Operation status
    -
    See also
    lr1110_system_get_errors
    +
    See also
    lr11xx_system_get_errors
    - -

    ◆ lr1110_system_calibrate_image_in_mhz()

    + +

    ◆ lr11xx_system_calibrate_image_in_mhz()

    - + @@ -695,7 +695,7 @@

    Launch an image calibration valid for all frequencies inside an interval, in MHz.

    -
    Remarks
    This function relies on lr1110_system_calibrate_image
    +
    Remarks
    This function relies on lr11xx_system_calibrate_image
    Parameters

    lr1110_status_t lr1110_system_calibrate_image_in_mhz lr11xx_status_t lr11xx_system_calibrate_image_in_mhz ( const void *  context,
    @@ -706,18 +706,18 @@

    Remarks
    freq1 must be less than or equal to freq2
    Returns
    Operation status
    -
    See also
    lr1110_system_calibrate_image
    +
    See also
    lr11xx_system_calibrate_image
    - -

    ◆ lr1110_system_set_dio_as_rf_switch()

    + +

    ◆ lr11xx_system_set_dio_as_rf_switch()

    [in]contextChip implementation context
    - + @@ -725,7 +725,7 @@

    - + @@ -750,14 +750,14 @@

    -

    ◆ lr1110_system_set_dio_irq_params()

    + +

    ◆ lr11xx_system_set_dio_irq_params()

    lr1110_status_t lr1110_system_set_dio_as_rf_switch lr11xx_status_t lr11xx_system_set_dio_as_rf_switch ( const void *  context, const lr1110_system_rfswitch_cfg_tconst lr11xx_system_rfswitch_cfg_t rf_switch_cfg 
    - + @@ -765,13 +765,13 @@

    - + - + @@ -784,7 +784,7 @@

    Parameters

    lr1110_status_t lr1110_system_set_dio_irq_params lr11xx_status_t lr11xx_system_set_dio_irq_params ( const void *  context, const lr1110_system_irq_mask_t const lr11xx_system_irq_mask_t  irqs_to_enable_dio1,
    const lr1110_system_irq_mask_t const lr11xx_system_irq_mask_t  irqs_to_enable_dio2 
    @@ -794,18 +794,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_clear_irq_status
    +
    See also
    lr11xx_system_clear_irq_status
    - -

    ◆ lr1110_system_clear_irq_status()

    + +

    ◆ lr11xx_system_clear_irq_status()

    [in]contextChip implementation context
    - + @@ -813,7 +813,7 @@

    - + @@ -836,14 +836,14 @@

    -

    ◆ lr1110_system_get_and_clear_irq_status()

    + +

    ◆ lr11xx_system_get_and_clear_irq_status()

    lr1110_status_t lr1110_system_clear_irq_status lr11xx_status_t lr11xx_system_clear_irq_status ( const void *  context, const lr1110_system_irq_mask_t const lr11xx_system_irq_mask_t  irqs_to_clear 
    - + @@ -851,7 +851,7 @@

    - + @@ -871,18 +871,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_get_irq_status, lr1110_system_clear_irq_status
    +
    See also
    lr11xx_system_get_irq_status, lr11xx_system_clear_irq_status
    - -

    ◆ lr1110_system_cfg_lfclk()

    + +

    ◆ lr11xx_system_cfg_lfclk()

    lr1110_status_t lr1110_system_get_and_clear_irq_status lr11xx_status_t lr11xx_system_get_and_clear_irq_status ( const void *  context, lr1110_system_irq_mask_tlr11xx_system_irq_mask_t irq 
    - + @@ -890,7 +890,7 @@

    - + @@ -917,18 +917,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_calibrate, lr1110_system_calibrate_image
    +
    See also
    lr11xx_system_calibrate, lr11xx_system_calibrate_image
    - -

    ◆ lr1110_system_set_tcxo_mode()

    + +

    ◆ lr11xx_system_set_tcxo_mode()

    lr1110_status_t lr1110_system_cfg_lfclk lr11xx_status_t lr11xx_system_cfg_lfclk ( const void *  context, const lr1110_system_lfclk_cfg_t const lr11xx_system_lfclk_cfg_t  lfclock_cfg,
    - + @@ -936,7 +936,7 @@

    - + @@ -966,18 +966,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_calibrate, lr1110_system_calibrate_image
    +
    See also
    lr11xx_system_calibrate, lr11xx_system_calibrate_image
    - -

    ◆ lr1110_system_reboot()

    + +

    ◆ lr11xx_system_reboot()

    lr1110_status_t lr1110_system_set_tcxo_mode lr11xx_status_t lr11xx_system_set_tcxo_mode ( const void *  context, const lr1110_system_tcxo_supply_voltage_t const lr11xx_system_tcxo_supply_voltage_t  tune,
    - + @@ -1009,14 +1009,14 @@

    -

    ◆ lr1110_system_get_vbat()

    + +

    ◆ lr11xx_system_get_vbat()

    lr1110_status_t lr1110_system_reboot lr11xx_status_t lr11xx_system_reboot ( const void *  context,
    - + @@ -1048,14 +1048,14 @@

    -

    ◆ lr1110_system_get_temp()

    + +

    ◆ lr11xx_system_get_temp()

    lr1110_status_t lr1110_system_get_vbat lr11xx_status_t lr11xx_system_get_vbat ( const void *  context,
    - + @@ -1076,7 +1076,7 @@

    -
    Remarks
    If a TCXO is used, make sure to configure it with lr1110_system_set_tcxo_mode before calling this function
    +
    Remarks
    If a TCXO is used, make sure to configure it with lr11xx_system_set_tcxo_mode before calling this function
    Parameters

    lr1110_status_t lr1110_system_get_temp lr11xx_status_t lr11xx_system_get_temp ( const void *  context,
    @@ -1088,14 +1088,14 @@

    -

    ◆ lr1110_system_set_sleep()

    + +

    ◆ lr11xx_system_set_sleep()

    [in]contextChip implementation context
    - + @@ -1103,7 +1103,7 @@

    - + @@ -1132,18 +1132,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_set_standby, lr1110_system_set_fs
    +
    See also
    lr11xx_system_set_standby, lr11xx_system_set_fs
    - -

    ◆ lr1110_system_set_standby()

    + +

    ◆ lr11xx_system_set_standby()

    lr1110_status_t lr1110_system_set_sleep lr11xx_status_t lr11xx_system_set_sleep ( const void *  context, const lr1110_system_sleep_cfg_t const lr11xx_system_sleep_cfg_t  sleep_cfg,
    - + @@ -1151,7 +1151,7 @@

    - + @@ -1171,18 +1171,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_set_sleep, lr1110_system_set_fs
    +
    See also
    lr11xx_system_set_sleep, lr11xx_system_set_fs
    - -

    ◆ lr1110_system_set_fs()

    + +

    ◆ lr11xx_system_set_fs()

    lr1110_status_t lr1110_system_set_standby lr11xx_status_t lr11xx_system_set_standby ( const void *  context, const lr1110_system_standby_cfg_t const lr11xx_system_standby_cfg_t  standby_cfg 
    - + @@ -1199,18 +1199,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_set_standby, lr1110_system_set_sleep
    +
    See also
    lr11xx_system_set_standby, lr11xx_system_set_sleep
    - -

    ◆ lr1110_system_erase_infopage()

    + +

    ◆ lr11xx_system_erase_infopage()

    lr1110_status_t lr1110_system_set_fs lr11xx_status_t lr11xx_system_set_fs ( const void *  context)
    - + @@ -1218,7 +1218,7 @@

    - + @@ -1233,23 +1233,23 @@

    Parameters

    lr1110_status_t lr1110_system_erase_infopage lr11xx_status_t lr11xx_system_erase_infopage ( const void *  context, const lr1110_system_infopage_id_t const lr11xx_system_infopage_id_t  info_page_id 
    - +
    [in]contextChip implementation context
    [in]info_page_idInfo page to be erased. Only LR1110_SYSTEM_INFOPAGE_1 is allowed.
    [in]info_page_idInfo page to be erased. Only LR11XX_SYSTEM_INFOPAGE_1 is allowed.
    Returns
    Operation status
    -
    See also
    lr1110_system_write_infopage, lr1110_system_read_infopage
    +
    See also
    lr11xx_system_write_infopage, lr11xx_system_read_infopage
    - -

    ◆ lr1110_system_write_infopage()

    + +

    ◆ lr11xx_system_write_infopage()

    - + @@ -1257,7 +1257,7 @@

    - + @@ -1290,7 +1290,7 @@

    Parameters

    lr1110_status_t lr1110_system_write_infopage lr11xx_status_t lr11xx_system_write_infopage ( const void *  context, const lr1110_system_infopage_id_t const lr11xx_system_infopage_id_t  info_page_id,
    - + @@ -1298,18 +1298,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_erase_infopage, lr1110_system_read_infopage
    +
    See also
    lr11xx_system_erase_infopage, lr11xx_system_read_infopage
    - -

    ◆ lr1110_system_read_infopage()

    + +

    ◆ lr11xx_system_read_infopage()

    [in]contextChip implementation context
    [in]info_page_idInfo page where data are written. Only LR1110_SYSTEM_INFOPAGE_1 is allowed.
    [in]info_page_idInfo page where data are written. Only LR11XX_SYSTEM_INFOPAGE_1 is allowed.
    [in]addressAddress within the info page (aligned on 32-bit data)
    [in]dataPointer to the data to write (data buffer shall be - at least - length words long)
    [in]lengthNumber of 32-bit data to write (maximum value is 64)
    - + @@ -1317,7 +1317,7 @@

    - + @@ -1359,18 +1359,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_system_erase_infopage, lr1110_system_write_infopage
    +
    See also
    lr11xx_system_erase_infopage, lr11xx_system_write_infopage
    - -

    ◆ lr1110_system_read_uid()

    + +

    ◆ lr11xx_system_read_uid()

    lr1110_status_t lr1110_system_read_infopage lr11xx_status_t lr11xx_system_read_infopage ( const void *  context, const lr1110_system_infopage_id_t const lr11xx_system_infopage_id_t  info_page_id,
    - + @@ -1378,7 +1378,7 @@

    - + @@ -1389,27 +1389,27 @@

    -

    Read and return the Unique Identifier of the LR1110.

    +

    Read and return the Unique Identifier of the LR11XX.

    Parameters

    lr1110_status_t lr1110_system_read_uid lr11xx_status_t lr11xx_system_read_uid ( const void *  context, lr1110_system_uid_t lr11xx_system_uid_t  unique_identifier 
    - +
    [in]contextChip implementation context
    [out]unique_identifierThe buffer to be filled with the Unique Identifier of the LR1110. It is up to the application to ensure unique_identifier is long enough to hold the unique identifier
    [out]unique_identifierThe buffer to be filled with the Unique Identifier of the LR11XX. It is up to the application to ensure unique_identifier is long enough to hold the unique identifier
    Returns
    Operation status
    -
    See also
    LR1110_SYSTEM_UID_LENGTH
    +
    See also
    LR11XX_SYSTEM_UID_LENGTH
    - -

    ◆ lr1110_system_read_join_eui()

    + +

    ◆ lr11xx_system_read_join_eui()

    - + @@ -1417,7 +1417,7 @@

    - + @@ -1428,27 +1428,27 @@

    -

    Read and return the Join EUI of the LR1110.

    +

    Read and return the Join EUI of the LR11XX.

    Parameters

    lr1110_status_t lr1110_system_read_join_eui lr11xx_status_t lr11xx_system_read_join_eui ( const void *  context, lr1110_system_join_eui_t lr11xx_system_join_eui_t  join_eui 
    - +
    [in]contextChip implementation context
    [out]join_euiThe buffer to be filled with Join EUI of the LR1110. It is up to the application to ensure join_eui is long enough to hold the join EUI
    [out]join_euiThe buffer to be filled with Join EUI of the LR11XX. It is up to the application to ensure join_eui is long enough to hold the join EUI
    Returns
    Operation status
    -
    See also
    LR1110_SYSTEM_JOIN_EUI_LENGTH
    +
    See also
    LR11XX_SYSTEM_JOIN_EUI_LENGTH
    - -

    ◆ lr1110_system_read_pin()

    + +

    ◆ lr11xx_system_read_pin()

    - -

    ◆ lr1110_system_read_pin_custom_eui()

    + +

    ◆ lr11xx_system_read_pin_custom_eui()

    - -

    ◆ lr1110_system_get_random_number()

    + +

    ◆ lr11xx_system_get_random_number()

    - + @@ -1581,14 +1581,14 @@

    -

    ◆ lr1110_system_enable_spi_crc()

    + +

    ◆ lr11xx_system_enable_spi_crc()

    lr1110_status_t lr1110_system_get_random_number lr11xx_status_t lr11xx_system_get_random_number ( const void *  context,
    - + @@ -1620,14 +1620,14 @@

    -

    ◆ lr1110_system_drive_dio_in_sleep_mode()

    + +

    ◆ lr11xx_system_drive_dio_in_sleep_mode()

    lr1110_status_t lr1110_system_enable_spi_crc lr11xx_status_t lr11xx_system_enable_spi_crc ( const void *  context,
    - + diff --git a/doc/lr11xx/html/lr11xx__system_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__system_8h__dep__incl.map new file mode 100644 index 0000000..bb8dce3 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/doc/lr11xx/html/lr11xx__system_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__system_8h__dep__incl.md5 new file mode 100644 index 0000000..d3c3dec --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system_8h__dep__incl.md5 @@ -0,0 +1 @@ +23900b91a4a96b3f9178910b257e132a \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__system_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__system_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..b4d84416b24190bec38760c79dc82e54dba204a8 GIT binary patch literal 5323 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 literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/lr11xx__system_8h__incl.map b/doc/lr11xx/html/lr11xx__system_8h__incl.map new file mode 100644 index 0000000..1c8be7d --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system_8h__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__system_8h__incl.md5 b/doc/lr11xx/html/lr11xx__system_8h__incl.md5 new file mode 100644 index 0000000..09eb81b --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system_8h__incl.md5 @@ -0,0 +1 @@ +62f443eb8ae36b73d4b3029370a92052 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__system_8h__incl.png b/doc/lr11xx/html/lr11xx__system_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..2fc8edb85ce6a61d1de2f3f76f3817e9e0803124 GIT binary patch literal 9592 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 literal 0 HcmV?d00001 diff --git a/doc/lr11xx/html/lr11xx__system_8h_source.html b/doc/lr11xx/html/lr11xx__system_8h_source.html new file mode 100644 index 0000000..b8fac60 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system_8h_source.html @@ -0,0 +1,257 @@ + + + + + + + +lr11xx_driver: lr11xx_driver/src/lr11xx_system.h Source File + + + + + + + + + +
    +
    +
    lr1110_status_t lr1110_system_drive_dio_in_sleep_mode lr11xx_status_t lr11xx_system_drive_dio_in_sleep_mode ( const void *  context,
    + + + + + +
    +
    lr11xx_driver +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    lr11xx_system.h
    +
    +
    +Go to the documentation of this file.
    1 
    +
    35 #ifndef LR11XX_SYSTEM_H
    +
    36 #define LR11XX_SYSTEM_H
    +
    37 
    +
    38 #ifdef __cplusplus
    +
    39 extern "C" {
    +
    40 #endif
    +
    41 
    +
    42 /*
    +
    43  * -----------------------------------------------------------------------------
    +
    44  * --- DEPENDENCIES ------------------------------------------------------------
    +
    45  */
    +
    46 
    +
    47 #include "lr11xx_system_types.h"
    +
    48 #include "lr11xx_types.h"
    +
    49 
    +
    50 /*
    +
    51  * -----------------------------------------------------------------------------
    +
    52  * --- PUBLIC MACROS -----------------------------------------------------------
    +
    53  */
    +
    54 
    +
    55 /*
    +
    56  * -----------------------------------------------------------------------------
    +
    57  * --- PUBLIC CONSTANTS --------------------------------------------------------
    +
    58  */
    +
    59 
    +
    65 #define LR11XX_SYSTEM_IMAGE_CALIBRATION_STEP_IN_MHZ 4
    +
    66 
    +
    67 /*
    +
    68  * -----------------------------------------------------------------------------
    +
    69  * --- PUBLIC TYPES ------------------------------------------------------------
    +
    70  */
    +
    71 
    +
    72 /*
    +
    73  * -----------------------------------------------------------------------------
    +
    74  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
    +
    75  */
    +
    76 
    +
    84 lr11xx_status_t lr11xx_system_reset( const void* context );
    +
    85 
    +
    93 lr11xx_status_t lr11xx_system_wakeup( const void* context );
    +
    94 
    + +
    113  lr11xx_system_stat2_t* stat2, lr11xx_system_irq_mask_t* irq_status );
    +
    114 
    + +
    123 
    +
    132 static inline lr11xx_status_t lr11xx_system_get_irq_status( const void* context, lr11xx_system_irq_mask_t* irq_status )
    +
    133 {
    +
    134  return lr11xx_system_get_status( context, 0, 0, irq_status );
    +
    135 }
    +
    136 
    +
    145 lr11xx_status_t lr11xx_system_get_version( const void* context, lr11xx_system_version_t* version );
    +
    146 
    +
    163 lr11xx_status_t lr11xx_system_get_errors( const void* context, uint16_t* errors );
    +
    164 
    +
    176 lr11xx_status_t lr11xx_system_clear_errors( const void* context );
    +
    177 
    +
    193 lr11xx_status_t lr11xx_system_calibrate( const void* context, const uint8_t calib_param );
    +
    194 
    +
    208 lr11xx_status_t lr11xx_system_set_reg_mode( const void* context, const lr11xx_system_reg_mode_t reg_mode );
    +
    209 
    +
    231 lr11xx_status_t lr11xx_system_calibrate_image( const void* context, const uint8_t freq1, const uint8_t freq2 );
    +
    232 
    +
    248 lr11xx_status_t lr11xx_system_calibrate_image_in_mhz( const void* context, const uint16_t freq1_in_mhz,
    +
    249  const uint16_t freq2_in_mhz );
    +
    250 
    + +
    264  const lr11xx_system_rfswitch_cfg_t* rf_switch_cfg );
    +
    265 
    + +
    283  const lr11xx_system_irq_mask_t irqs_to_enable_dio1,
    +
    284  const lr11xx_system_irq_mask_t irqs_to_enable_dio2 );
    +
    285 
    +
    294 lr11xx_status_t lr11xx_system_clear_irq_status( const void* context, const lr11xx_system_irq_mask_t irqs_to_clear );
    +
    295 
    + +
    307 
    +
    319 lr11xx_status_t lr11xx_system_cfg_lfclk( const void* context, const lr11xx_system_lfclk_cfg_t lfclock_cfg,
    +
    320  const bool wait_for_32k_ready );
    +
    321 
    + +
    341  const uint32_t timeout );
    +
    342 
    +
    356 lr11xx_status_t lr11xx_system_reboot( const void* context, const bool stay_in_bootloader );
    +
    357 
    +
    369 lr11xx_status_t lr11xx_system_get_vbat( const void* context, uint8_t* vbat );
    +
    370 
    +
    386 lr11xx_status_t lr11xx_system_get_temp( const void* context, uint16_t* temp );
    +
    387 
    +
    405 lr11xx_status_t lr11xx_system_set_sleep( const void* context, const lr11xx_system_sleep_cfg_t sleep_cfg,
    +
    406  const uint32_t sleep_time );
    +
    407 
    +
    418 lr11xx_status_t lr11xx_system_set_standby( const void* context, const lr11xx_system_standby_cfg_t standby_cfg );
    +
    419 
    +
    429 lr11xx_status_t lr11xx_system_set_fs( const void* context );
    +
    430 
    +
    441 lr11xx_status_t lr11xx_system_erase_infopage( const void* context, const lr11xx_system_infopage_id_t info_page_id );
    +
    442 
    +
    456 lr11xx_status_t lr11xx_system_write_infopage( const void* context, const lr11xx_system_infopage_id_t info_page_id,
    +
    457  const uint16_t address, const uint32_t* data, const uint8_t length );
    +
    458 
    +
    474 lr11xx_status_t lr11xx_system_read_infopage( const void* context, const lr11xx_system_infopage_id_t info_page_id,
    +
    475  const uint16_t address, uint32_t* data, const uint8_t length );
    +
    476 
    +
    488 lr11xx_status_t lr11xx_system_read_uid( const void* context, lr11xx_system_uid_t unique_identifier );
    +
    489 
    + +
    502 
    + +
    518 
    + +
    537  lr11xx_system_join_eui_t join_eui, uint8_t rfu,
    +
    538  lr11xx_system_pin_t pin );
    +
    539 
    +
    550 lr11xx_status_t lr11xx_system_get_random_number( const void* context, uint32_t* random_number );
    +
    551 
    +
    563 lr11xx_status_t lr11xx_system_enable_spi_crc( const void* context, bool enable_crc );
    +
    564 
    +
    577 lr11xx_status_t lr11xx_system_drive_dio_in_sleep_mode( const void* context, bool enable_drive );
    +
    578 
    +
    579 #ifdef __cplusplus
    +
    580 }
    +
    581 #endif
    +
    582 
    +
    583 #endif // LR11XX_SYSTEM_H
    +
    584 
    +
    585 /* --- EOF ------------------------------------------------------------------ */
    +
    +
    lr11xx_status_t lr11xx_system_read_infopage(const void *context, const lr11xx_system_infopage_id_t info_page_id, const uint16_t address, uint32_t *data, const uint8_t length)
    Read data from an info page.
    Definition: lr11xx_system.c:509
    +
    lr11xx_status_t lr11xx_system_get_version(const void *context, lr11xx_system_version_t *version)
    Return the version of the system (hardware and software)
    Definition: lr11xx_system.c:193
    +
    lr11xx_status_t lr11xx_system_set_sleep(const void *context, const lr11xx_system_sleep_cfg_t sleep_cfg, const uint32_t sleep_time)
    Set the device into Sleep or Deep Sleep Mode.
    Definition: lr11xx_system.c:430
    +
    lr11xx_status_t lr11xx_system_read_pin_custom_eui(const void *context, lr11xx_system_uid_t device_eui, lr11xx_system_join_eui_t join_eui, uint8_t rfu, lr11xx_system_pin_t pin)
    Compute and return the PIN of the LR11XX based on EUIs provided as parameters.
    Definition: lr11xx_system.c:571
    +
    uint8_t lr11xx_system_uid_t[LR11XX_SYSTEM_UID_LENGTH]
    Fixed-length array to store a UID.
    Definition: lr11xx_system_types.h:82
    +
    lr11xx_status_t lr11xx_system_get_random_number(const void *context, uint32_t *random_number)
    Read and return a 32-bit random number.
    Definition: lr11xx_system.c:601
    +
    System driver types for LR11XX.
    +
    lr11xx_system_infopage_id_t
    Info page ID.
    Definition: lr11xx_system_types.h:225
    +
    lr11xx_system_reg_mode_t
    Regulator modes.
    Definition: lr11xx_system_types.h:216
    +
    lr11xx_status_t lr11xx_system_set_tcxo_mode(const void *context, const lr11xx_system_tcxo_supply_voltage_t tune, const uint32_t timeout)
    Enable and configure TCXO supply voltage and detection timeout.
    Definition: lr11xx_system.c:374
    +
    lr11xx_status_t lr11xx_system_clear_errors(const void *context)
    Clear all error flags pending.
    Definition: lr11xx_system.c:233
    +
    lr11xx_status_t lr11xx_system_get_errors(const void *context, uint16_t *errors)
    Return the system errors.
    Definition: lr11xx_system.c:214
    +
    lr11xx_system_lfclk_cfg_t
    Low-frequency clock modes.
    Definition: lr11xx_system_types.h:206
    +
    Type definitions for LR11XX.
    +
    uint32_t lr11xx_system_irq_mask_t
    Type to store system interrupt flags.
    Definition: lr11xx_system_types.h:97
    +
    lr11xx_status_t lr11xx_system_get_and_clear_irq_status(const void *context, lr11xx_system_irq_mask_t *irq)
    This helper function clears any radio irq status flags that are set and returns the flags that were c...
    Definition: lr11xx_system.c:344
    +
    uint8_t lr11xx_system_pin_t[LR11XX_SYSTEM_PIN_LENGTH]
    Fixed-length array to store a PIN.
    Definition: lr11xx_system_types.h:92
    +
    lr11xx_status_t lr11xx_system_erase_infopage(const void *context, const lr11xx_system_infopage_id_t info_page_id)
    Erase an info page.
    Definition: lr11xx_system.c:472
    +
    lr11xx_status_t lr11xx_system_clear_reset_status_info(const void *context)
    Clear the reset status information stored in stat2.
    Definition: lr11xx_system.c:183
    +
    lr11xx_status_t lr11xx_system_reset(const void *context)
    Reset the radio.
    Definition: lr11xx_system.c:155
    +
    lr11xx_status_t lr11xx_system_set_dio_irq_params(const void *context, const lr11xx_system_irq_mask_t irqs_to_enable_dio1, const lr11xx_system_irq_mask_t irqs_to_enable_dio2)
    Set which interrupt signals are redirected to the dedicated DIO pin.
    Definition: lr11xx_system.c:310
    +
    lr11xx_status_t lr11xx_system_set_dio_as_rf_switch(const void *context, const lr11xx_system_rfswitch_cfg_t *rf_switch_cfg)
    Set the RF switch configurations for each RF setup.
    Definition: lr11xx_system.c:290
    +
    lr11xx_status_t lr11xx_system_set_reg_mode(const void *context, const lr11xx_system_reg_mode_t reg_mode)
    Configure the regulator mode to be used in specific modes.
    Definition: lr11xx_system.c:254
    +
    lr11xx_status_t lr11xx_system_wakeup(const void *context)
    Wake the radio up from sleep mode.
    Definition: lr11xx_system.c:457
    +
    lr11xx_status_t lr11xx_system_set_fs(const void *context)
    Set the device into Frequency Synthesis (FS) mode.
    Definition: lr11xx_system.c:462
    +
    Status register 2 structure definition.
    Definition: lr11xx_system_types.h:294
    +
    Sleep configuration structure definition.
    Definition: lr11xx_system_types.h:314
    +
    lr11xx_system_tcxo_supply_voltage_t
    TCXO supply voltage values.
    Definition: lr11xx_system_types.h:270
    +
    lr11xx_status_t lr11xx_system_enable_spi_crc(const void *context, bool enable_crc)
    Enable the CRC on SPI transactions.
    Definition: lr11xx_system.c:612
    +
    lr11xx_status_t lr11xx_system_cfg_lfclk(const void *context, const lr11xx_system_lfclk_cfg_t lfclock_cfg, const bool wait_for_32k_ready)
    Defines which clock is used as Low Frequency (LF) clock.
    Definition: lr11xx_system.c:362
    +
    Status register 1 structure definition.
    Definition: lr11xx_system_types.h:285
    +
    lr11xx_status_t lr11xx_system_drive_dio_in_sleep_mode(const void *context, bool enable_drive)
    Configure the GPIO drive in sleep mode.
    Definition: lr11xx_system.c:623
    +
    lr11xx_status_t lr11xx_system_get_status(const void *context, lr11xx_system_stat1_t *stat1, lr11xx_system_stat2_t *stat2, lr11xx_system_irq_mask_t *irq_status)
    Return stat1, stat2, and irq_status.
    Definition: lr11xx_system.c:160
    +
    lr11xx_system_standby_cfg_t
    Stand by configuration values.
    Definition: lr11xx_system_types.h:261
    +
    lr11xx_status_t lr11xx_system_clear_irq_status(const void *context, const lr11xx_system_irq_mask_t irqs_to_clear)
    Clear requested bits in the internal pending interrupt register.
    Definition: lr11xx_system.c:330
    +
    lr11xx_status_t lr11xx_system_get_temp(const void *context, uint16_t *temp)
    Returns the value of Temp.
    Definition: lr11xx_system.c:411
    +
    lr11xx_status_t lr11xx_system_read_join_eui(const void *context, lr11xx_system_join_eui_t join_eui)
    Read and return the Join EUI of the LR11XX.
    Definition: lr11xx_system.c:549
    +
    lr11xx_status_t lr11xx_system_set_standby(const void *context, const lr11xx_system_standby_cfg_t standby_cfg)
    Set the device into the requested Standby mode.
    Definition: lr11xx_system.c:446
    +
    lr11xx_status_t lr11xx_system_calibrate(const void *context, const uint8_t calib_param)
    lr11xx_system_calibrate the requested blocks
    Definition: lr11xx_system.c:243
    +
    lr11xx_status_t lr11xx_system_write_infopage(const void *context, const lr11xx_system_infopage_id_t info_page_id, const uint16_t address, const uint32_t *data, const uint8_t length)
    Write data in an info page.
    Definition: lr11xx_system.c:483
    +
    RF switch configuration structure definition.
    Definition: lr11xx_system_types.h:246
    +
    lr11xx_status_t lr11xx_system_reboot(const void *context, const bool stay_in_bootloader)
    Software reset of the chip.
    Definition: lr11xx_system.c:389
    +
    lr11xx_status_t lr11xx_system_read_pin(const void *context, lr11xx_system_pin_t pin)
    Compute and return the PIN of the LR11XX based on factory default EUIs.
    Definition: lr11xx_system.c:560
    +
    lr11xx_status_t lr11xx_system_calibrate_image(const void *context, const uint8_t freq1, const uint8_t freq2)
    Launch an image calibration valid for all frequencies inside an interval, in steps.
    Definition: lr11xx_system.c:265
    +
    lr11xx_status_t lr11xx_system_calibrate_image_in_mhz(const void *context, const uint16_t freq1_in_mhz, const uint16_t freq2_in_mhz)
    Launch an image calibration valid for all frequencies inside an interval, in MHz.
    Definition: lr11xx_system.c:277
    +
    enum lr11xx_status_e lr11xx_status_t
    LR11XX status.
    +
    uint8_t lr11xx_system_join_eui_t[LR11XX_SYSTEM_JOIN_EUI_LENGTH]
    Fixed-length array to store a joinEUI.
    Definition: lr11xx_system_types.h:87
    +
    lr11xx_status_t lr11xx_system_get_vbat(const void *context, uint8_t *vbat)
    Returns the value of Vbat.
    Definition: lr11xx_system.c:400
    +
    static lr11xx_status_t lr11xx_system_get_irq_status(const void *context, lr11xx_system_irq_mask_t *irq_status)
    Return irq_status.
    Definition: lr11xx_system.h:132
    +
    Version structure definition.
    Definition: lr11xx_system_types.h:304
    +
    lr11xx_status_t lr11xx_system_read_uid(const void *context, lr11xx_system_uid_t unique_identifier)
    Read and return the Unique Identifier of the LR11XX.
    Definition: lr11xx_system.c:538
    + + + + diff --git a/doc/lr11xx/html/lr11xx__system__types_8h.html b/doc/lr11xx/html/lr11xx__system__types_8h.html new file mode 100644 index 0000000..726c86c --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system__types_8h.html @@ -0,0 +1,454 @@ + + + + + + + +lr11xx_driver: lr11xx_driver/src/lr11xx_system_types.h File Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    lr11xx_driver +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    lr11xx_system_types.h File Reference
    +
    +
    + +

    System driver types for LR11XX. +More...

    +
    #include <stdint.h>
    +#include <stdbool.h>
    +
    +Include dependency graph for lr11xx_system_types.h:
    +
    +
    + + + + + +
    +
    +This graph shows which files directly or indirectly include this file:
    +
    +
    + + + + + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + + + + + + + + + + + + + + +

    +Data Structures

    struct  lr11xx_system_rfswitch_cfg_s
     RF switch configuration structure definition. More...
     
    struct  lr11xx_system_stat1_s
     Status register 1 structure definition. More...
     
    struct  lr11xx_system_stat2_s
     Status register 2 structure definition. More...
     
    struct  lr11xx_system_version_s
     Version structure definition. More...
     
    struct  lr11xx_system_sleep_cfg_s
     Sleep configuration structure definition. More...
     
    + + + + + + + + + + + +

    +Macros

    +#define LR11XX_SYSTEM_VERSION_LENGTH   ( 4 )
     Length in byte of the LR11XX version blob.
     
    #define LR11XX_SYSTEM_UID_LENGTH   ( 8 )
     Length of the LR11XX Unique Identifier in bytes. More...
     
    +#define LR11XX_SYSTEM_JOIN_EUI_LENGTH   ( 8 )
     
    +#define LR11XX_SYSTEM_PIN_LENGTH   ( 4 )
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    +typedef uint8_t lr11xx_system_uid_t[LR11XX_SYSTEM_UID_LENGTH]
     Fixed-length array to store a UID.
     
    +typedef uint8_t lr11xx_system_join_eui_t[LR11XX_SYSTEM_JOIN_EUI_LENGTH]
     Fixed-length array to store a joinEUI.
     
    +typedef uint8_t lr11xx_system_pin_t[LR11XX_SYSTEM_PIN_LENGTH]
     Fixed-length array to store a PIN.
     
    +typedef uint32_t lr11xx_system_irq_mask_t
     Type to store system interrupt flags.
     
    +typedef uint8_t lr11xx_system_cal_mask_t
     
    +typedef uint16_t lr11xx_system_errors_t
     
    +typedef struct lr11xx_system_rfswitch_cfg_s lr11xx_system_rfswitch_cfg_t
     RF switch configuration structure definition.
     
    +typedef struct lr11xx_system_stat1_s lr11xx_system_stat1_t
     Status register 1 structure definition.
     
    +typedef struct lr11xx_system_stat2_s lr11xx_system_stat2_t
     Status register 2 structure definition.
     
    +typedef struct lr11xx_system_version_s lr11xx_system_version_t
     Version structure definition.
     
    +typedef struct lr11xx_system_sleep_cfg_s lr11xx_system_sleep_cfg_t
     Sleep configuration structure definition.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Enumerations

    enum  lr11xx_system_irq_e {
    +  LR11XX_SYSTEM_IRQ_NONE = ( 0 << 0 ), +LR11XX_SYSTEM_IRQ_TX_DONE = ( 1 << 2 ), +LR11XX_SYSTEM_IRQ_RX_DONE = ( 1 << 3 ), +LR11XX_SYSTEM_IRQ_PREAMBLE_DETECTED = ( 1 << 4 ), +
    +  LR11XX_SYSTEM_IRQ_SYNC_WORD_HEADER_VALID = ( 1 << 5 ), +LR11XX_SYSTEM_IRQ_HEADER_ERROR = ( 1 << 6 ), +LR11XX_SYSTEM_IRQ_CRC_ERROR = ( 1 << 7 ), +LR11XX_SYSTEM_IRQ_CAD_DONE = ( 1 << 8 ), +
    +  LR11XX_SYSTEM_IRQ_CAD_DETECTED = ( 1 << 9 ), +LR11XX_SYSTEM_IRQ_TIMEOUT = ( 1 << 10 ), +LR11XX_SYSTEM_IRQ_LR_FHSS_INTRA_PKT_HOP = ( 1 << 11 ), +LR11XX_SYSTEM_IRQ_GNSS_SCAN_DONE = ( 1 << 19 ), +
    +  LR11XX_SYSTEM_IRQ_WIFI_SCAN_DONE = ( 1 << 20 ), +LR11XX_SYSTEM_IRQ_EOL = ( 1 << 21 ), +LR11XX_SYSTEM_IRQ_CMD_ERROR = ( 1 << 22 ), +LR11XX_SYSTEM_IRQ_ERROR = ( 1 << 23 ), +
    +  LR11XX_SYSTEM_IRQ_FSK_LEN_ERROR = ( 1 << 24 ), +LR11XX_SYSTEM_IRQ_FSK_ADDR_ERROR = ( 1 << 25 ), +LR11XX_SYSTEM_IRQ_ALL_MASK +
    + }
     Interrupt flags.
     
    enum  lr11xx_system_calibration_e {
    +  LR11XX_SYSTEM_CALIB_LF_RC_MASK = ( 1 << 0 ), +LR11XX_SYSTEM_CALIB_HF_RC_MASK = ( 1 << 1 ), +LR11XX_SYSTEM_CALIB_PLL_MASK = ( 1 << 2 ), +LR11XX_SYSTEM_CALIB_ADC_MASK = ( 1 << 3 ), +
    +  LR11XX_SYSTEM_CALIB_IMG_MASK = ( 1 << 4 ), +LR11XX_SYSTEM_CALIB_PLL_TX_MASK = ( 1 << 5 ) +
    + }
     Calibration flags.
     
    enum  lr11xx_system_errors_e {
    +  LR11XX_SYSTEM_ERRORS_LF_RC_CALIB_MASK = ( 1 << 0 ), +LR11XX_SYSTEM_ERRORS_HF_RC_CALIB_MASK = ( 1 << 1 ), +LR11XX_SYSTEM_ERRORS_ADC_CALIB_MASK = ( 1 << 2 ), +LR11XX_SYSTEM_ERRORS_PLL_CALIB_MASK = ( 1 << 3 ), +
    +  LR11XX_SYSTEM_ERRORS_IMG_CALIB_MASK = ( 1 << 4 ), +LR11XX_SYSTEM_ERRORS_HF_XOSC_START_MASK = ( 1 << 5 ), +LR11XX_SYSTEM_ERRORS_LF_XOSC_START_MASK = ( 1 << 6 ), +LR11XX_SYSTEM_ERRORS_PLL_LOCK_MASK = ( 1 << 7 ) +
    + }
     Error flags.
     
    enum  lr11xx_system_chip_modes_t {
    +  LR11XX_SYSTEM_CHIP_MODE_SLEEP = 0x00, +LR11XX_SYSTEM_CHIP_MODE_STBY_RC = 0x01, +LR11XX_SYSTEM_CHIP_MODE_STBY_XOSC = 0x02, +LR11XX_SYSTEM_CHIP_MODE_FS = 0x03, +
    +  LR11XX_SYSTEM_CHIP_MODE_RX = 0x04, +LR11XX_SYSTEM_CHIP_MODE_TX = 0x05, +LR11XX_SYSTEM_CHIP_MODE_LOC = 0x06 +
    + }
     Chip modes.
     
    enum  lr11xx_system_reset_status_t {
    +  LR11XX_SYSTEM_RESET_STATUS_CLEARED = 0x00, +LR11XX_SYSTEM_RESET_STATUS_ANALOG = 0x01, +LR11XX_SYSTEM_RESET_STATUS_EXTERNAL = 0x02, +LR11XX_SYSTEM_RESET_STATUS_SYSTEM = 0x03, +
    +  LR11XX_SYSTEM_RESET_STATUS_WATCHDOG = 0x04, +LR11XX_SYSTEM_RESET_STATUS_IOCD_RESTART = 0x05, +LR11XX_SYSTEM_RESET_STATUS_RTC_RESTART = 0x06 +
    + }
     Reset status.
     
    enum  lr11xx_system_command_status_t { LR11XX_SYSTEM_CMD_STATUS_FAIL = 0x00, +LR11XX_SYSTEM_CMD_STATUS_PERR = 0x01, +LR11XX_SYSTEM_CMD_STATUS_OK = 0x02, +LR11XX_SYSTEM_CMD_STATUS_DATA = 0x03 + }
     Command status.
     
    enum  lr11xx_system_lfclk_cfg_t { LR11XX_SYSTEM_LFCLK_RC = 0x00, +LR11XX_SYSTEM_LFCLK_XTAL = 0x01, +LR11XX_SYSTEM_LFCLK_EXT = 0x02 + }
     Low-frequency clock modes. More...
     
    enum  lr11xx_system_reg_mode_t { LR11XX_SYSTEM_REG_MODE_LDO = 0x00, +LR11XX_SYSTEM_REG_MODE_DCDC = 0x01 + }
     Regulator modes. More...
     
    enum  lr11xx_system_infopage_id_t { LR11XX_SYSTEM_INFOPAGE_0 = 0x00, +LR11XX_SYSTEM_INFOPAGE_1 = 0x01 + }
     Info page ID. More...
     
    enum  lr11xx_system_rfswitch_cfg_pin_e {
    +  LR11XX_SYSTEM_RFSW0_HIGH = ( 1 << 0 ), +LR11XX_SYSTEM_RFSW1_HIGH = ( 1 << 1 ), +LR11XX_SYSTEM_RFSW2_HIGH = ( 1 << 2 ), +LR11XX_SYSTEM_RFSW3_HIGH = ( 1 << 3 ), +
    +  LR11XX_SYSTEM_RFSW4_HIGH = ( 1 << 4 ) +
    + }
     RF switch configuration pin.
     
    enum  lr11xx_system_standby_cfg_t { LR11XX_SYSTEM_STANDBY_CFG_RC = 0x00, +LR11XX_SYSTEM_STANDBY_CFG_XOSC = 0x01 + }
     Stand by configuration values.
     
    enum  lr11xx_system_tcxo_supply_voltage_t {
    +  LR11XX_SYSTEM_TCXO_CTRL_1_6V = 0x00, +LR11XX_SYSTEM_TCXO_CTRL_1_7V = 0x01, +LR11XX_SYSTEM_TCXO_CTRL_1_8V = 0x02, +LR11XX_SYSTEM_TCXO_CTRL_2_2V = 0x03, +
    +  LR11XX_SYSTEM_TCXO_CTRL_2_4V = 0x04, +LR11XX_SYSTEM_TCXO_CTRL_2_7V = 0x05, +LR11XX_SYSTEM_TCXO_CTRL_3_0V = 0x06, +LR11XX_SYSTEM_TCXO_CTRL_3_3V = 0x07 +
    + }
     TCXO supply voltage values. More...
     
    +

    Detailed Description

    +

    System driver types for LR11XX.

    +

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    +

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

      +
    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • +
    • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    • +
    • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    • +
    +

    NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    +

    Macro Definition Documentation

    + +

    ◆ LR11XX_SYSTEM_UID_LENGTH

    + +
    +
    + + + + +
    #define LR11XX_SYSTEM_UID_LENGTH   ( 8 )
    +
    + +

    Length of the LR11XX Unique Identifier in bytes.

    +

    The LR11XX Unique Identifiers is an 8 byte long buffer

    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ lr11xx_system_lfclk_cfg_t

    + +
    +
    + + + + +
    enum lr11xx_system_lfclk_cfg_t
    +
    + +

    Low-frequency clock modes.

    + + +
    Enumerator
    LR11XX_SYSTEM_LFCLK_RC 

    (Default)

    +
    + +
    +
    + +

    ◆ lr11xx_system_reg_mode_t

    + +
    +
    + + + + +
    enum lr11xx_system_reg_mode_t
    +
    + +

    Regulator modes.

    + + +
    Enumerator
    LR11XX_SYSTEM_REG_MODE_LDO 

    (Default)

    +
    + +
    +
    + +

    ◆ lr11xx_system_infopage_id_t

    + +
    +
    + + + + +
    enum lr11xx_system_infopage_id_t
    +
    + +

    Info page ID.

    + + + +
    Enumerator
    LR11XX_SYSTEM_INFOPAGE_0 

    Info page #0.

    +
    LR11XX_SYSTEM_INFOPAGE_1 

    Info page #1.

    +
    + +
    +
    + +

    ◆ lr11xx_system_tcxo_supply_voltage_t

    + +
    +
    + +

    TCXO supply voltage values.

    + + + + + + + + + +
    Enumerator
    LR11XX_SYSTEM_TCXO_CTRL_1_6V 

    Supply voltage = 1.6v.

    +
    LR11XX_SYSTEM_TCXO_CTRL_1_7V 

    Supply voltage = 1.7v.

    +
    LR11XX_SYSTEM_TCXO_CTRL_1_8V 

    Supply voltage = 1.8v.

    +
    LR11XX_SYSTEM_TCXO_CTRL_2_2V 

    Supply voltage = 2.2v.

    +
    LR11XX_SYSTEM_TCXO_CTRL_2_4V 

    Supply voltage = 2.4v.

    +
    LR11XX_SYSTEM_TCXO_CTRL_2_7V 

    Supply voltage = 2.7v.

    +
    LR11XX_SYSTEM_TCXO_CTRL_3_0V 

    Supply voltage = 3.0v.

    +
    LR11XX_SYSTEM_TCXO_CTRL_3_3V 

    Supply voltage = 3.3v.

    +
    + +
    +
    +
    + + + + diff --git a/doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.map new file mode 100644 index 0000000..076e5be --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.md5 new file mode 100644 index 0000000..752f85f --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.md5 @@ -0,0 +1 @@ +42eeeb7afb1b89660225c3b6b97908a3 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__system__types_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..671071dfe8c78017226e17559e8556ae4eec0b98 GIT binary patch literal 23905 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�-COC0dZNc_)mmg?VmxDG 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 - + + diff --git a/doc/lr11xx/html/lr11xx__system__types_8h__incl.md5 b/doc/lr11xx/html/lr11xx__system__types_8h__incl.md5 new file mode 100644 index 0000000..f06b5b0 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__system__types_8h__incl.md5 @@ -0,0 +1 @@ +ea581aaff60f2b923864aab599cfacd7 \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__system__types_8h__incl.png b/doc/lr11xx/html/lr11xx__system__types_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..3cfee1c4339c820554ae1043cef864f5c1c47c22 GIT binary patch literal 6207 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 a7K + + + + + + +lr11xx_driver: lr11xx_driver/src/lr11xx_system_types.h Source File + + + + + + + + + + +
    +
    +
    lr11xx_system_types.h
    +
    +
    +Go to the documentation of this file.
    1 
    +
    35 #ifndef LR11XX_SYSTEM_TYPES_H
    +
    36 #define LR11XX_SYSTEM_TYPES_H
    +
    37 
    +
    38 #ifdef __cplusplus
    +
    39 extern "C" {
    +
    40 #endif
    +
    41 
    +
    42 /*
    +
    43  * -----------------------------------------------------------------------------
    +
    44  * --- DEPENDENCIES ------------------------------------------------------------
    +
    45  */
    +
    46 
    +
    47 #include <stdint.h>
    +
    48 #include <stdbool.h>
    +
    49 
    +
    50 /*
    +
    51  * -----------------------------------------------------------------------------
    +
    52  * --- PUBLIC MACROS -----------------------------------------------------------
    +
    53  */
    +
    54 
    +
    55 /*
    +
    56  * -----------------------------------------------------------------------------
    +
    57  * --- PUBLIC CONSTANTS --------------------------------------------------------
    +
    58  */
    +
    59 
    +
    63 #define LR11XX_SYSTEM_VERSION_LENGTH ( 4 )
    +
    64 
    +
    70 #define LR11XX_SYSTEM_UID_LENGTH ( 8 )
    +
    71 #define LR11XX_SYSTEM_JOIN_EUI_LENGTH ( 8 )
    +
    72 #define LR11XX_SYSTEM_PIN_LENGTH ( 4 )
    +
    73 
    +
    74 /*
    +
    75  * -----------------------------------------------------------------------------
    +
    76  * --- PUBLIC TYPES ------------------------------------------------------------
    +
    77  */
    +
    78 
    + +
    83 
    +
    87 typedef uint8_t lr11xx_system_join_eui_t[LR11XX_SYSTEM_JOIN_EUI_LENGTH];
    +
    88 
    +
    92 typedef uint8_t lr11xx_system_pin_t[LR11XX_SYSTEM_PIN_LENGTH];
    +
    93 
    +
    97 typedef uint32_t lr11xx_system_irq_mask_t;
    +
    98 
    + +
    103 {
    +
    104  LR11XX_SYSTEM_IRQ_NONE = ( 0 << 0 ),
    +
    105  LR11XX_SYSTEM_IRQ_TX_DONE = ( 1 << 2 ),
    +
    106  LR11XX_SYSTEM_IRQ_RX_DONE = ( 1 << 3 ),
    +
    107  LR11XX_SYSTEM_IRQ_PREAMBLE_DETECTED = ( 1 << 4 ),
    +
    108  LR11XX_SYSTEM_IRQ_SYNC_WORD_HEADER_VALID = ( 1 << 5 ),
    +
    109  LR11XX_SYSTEM_IRQ_HEADER_ERROR = ( 1 << 6 ),
    +
    110  LR11XX_SYSTEM_IRQ_CRC_ERROR = ( 1 << 7 ),
    +
    111  LR11XX_SYSTEM_IRQ_CAD_DONE = ( 1 << 8 ),
    +
    112  LR11XX_SYSTEM_IRQ_CAD_DETECTED = ( 1 << 9 ),
    +
    113  LR11XX_SYSTEM_IRQ_TIMEOUT = ( 1 << 10 ),
    +
    114  LR11XX_SYSTEM_IRQ_LR_FHSS_INTRA_PKT_HOP = ( 1 << 11 ),
    +
    115  LR11XX_SYSTEM_IRQ_GNSS_SCAN_DONE = ( 1 << 19 ),
    +
    116  LR11XX_SYSTEM_IRQ_WIFI_SCAN_DONE = ( 1 << 20 ),
    +
    117  LR11XX_SYSTEM_IRQ_EOL = ( 1 << 21 ),
    +
    118  LR11XX_SYSTEM_IRQ_CMD_ERROR = ( 1 << 22 ),
    +
    119  LR11XX_SYSTEM_IRQ_ERROR = ( 1 << 23 ),
    +
    120  LR11XX_SYSTEM_IRQ_FSK_LEN_ERROR = ( 1 << 24 ),
    +
    121  LR11XX_SYSTEM_IRQ_FSK_ADDR_ERROR = ( 1 << 25 ),
    +
    122  LR11XX_SYSTEM_IRQ_ALL_MASK =
    +
    123  LR11XX_SYSTEM_IRQ_TX_DONE | LR11XX_SYSTEM_IRQ_RX_DONE | LR11XX_SYSTEM_IRQ_PREAMBLE_DETECTED |
    +
    124  LR11XX_SYSTEM_IRQ_SYNC_WORD_HEADER_VALID | LR11XX_SYSTEM_IRQ_HEADER_ERROR | LR11XX_SYSTEM_IRQ_CRC_ERROR |
    +
    125  LR11XX_SYSTEM_IRQ_CAD_DONE | LR11XX_SYSTEM_IRQ_CAD_DETECTED | LR11XX_SYSTEM_IRQ_TIMEOUT |
    +
    126  LR11XX_SYSTEM_IRQ_LR_FHSS_INTRA_PKT_HOP | LR11XX_SYSTEM_IRQ_GNSS_SCAN_DONE | LR11XX_SYSTEM_IRQ_WIFI_SCAN_DONE |
    +
    127  LR11XX_SYSTEM_IRQ_EOL | LR11XX_SYSTEM_IRQ_CMD_ERROR | LR11XX_SYSTEM_IRQ_ERROR |
    +
    128  LR11XX_SYSTEM_IRQ_FSK_LEN_ERROR | LR11XX_SYSTEM_IRQ_FSK_ADDR_ERROR,
    +
    129 };
    +
    130 
    + +
    135 {
    +
    136  LR11XX_SYSTEM_CALIB_LF_RC_MASK = ( 1 << 0 ),
    +
    137  LR11XX_SYSTEM_CALIB_HF_RC_MASK = ( 1 << 1 ),
    +
    138  LR11XX_SYSTEM_CALIB_PLL_MASK = ( 1 << 2 ),
    +
    139  LR11XX_SYSTEM_CALIB_ADC_MASK = ( 1 << 3 ),
    +
    140  LR11XX_SYSTEM_CALIB_IMG_MASK = ( 1 << 4 ),
    +
    141  LR11XX_SYSTEM_CALIB_PLL_TX_MASK = ( 1 << 5 ),
    +
    142 };
    +
    143 
    +
    144 typedef uint8_t lr11xx_system_cal_mask_t;
    +
    145 
    + +
    150 {
    +
    151  LR11XX_SYSTEM_ERRORS_LF_RC_CALIB_MASK = ( 1 << 0 ),
    +
    152  LR11XX_SYSTEM_ERRORS_HF_RC_CALIB_MASK = ( 1 << 1 ),
    +
    153  LR11XX_SYSTEM_ERRORS_ADC_CALIB_MASK = ( 1 << 2 ),
    +
    154  LR11XX_SYSTEM_ERRORS_PLL_CALIB_MASK = ( 1 << 3 ),
    +
    155  LR11XX_SYSTEM_ERRORS_IMG_CALIB_MASK = ( 1 << 4 ),
    +
    156  LR11XX_SYSTEM_ERRORS_HF_XOSC_START_MASK = ( 1 << 5 ),
    +
    157  LR11XX_SYSTEM_ERRORS_LF_XOSC_START_MASK = ( 1 << 6 ),
    +
    158  LR11XX_SYSTEM_ERRORS_PLL_LOCK_MASK = ( 1 << 7 ),
    +
    159 };
    +
    160 
    +
    161 typedef uint16_t lr11xx_system_errors_t;
    +
    162 
    +
    166 typedef enum
    +
    167 {
    +
    168  LR11XX_SYSTEM_CHIP_MODE_SLEEP = 0x00,
    +
    169  LR11XX_SYSTEM_CHIP_MODE_STBY_RC = 0x01,
    +
    170  LR11XX_SYSTEM_CHIP_MODE_STBY_XOSC = 0x02,
    +
    171  LR11XX_SYSTEM_CHIP_MODE_FS = 0x03,
    +
    172  LR11XX_SYSTEM_CHIP_MODE_RX = 0x04,
    +
    173  LR11XX_SYSTEM_CHIP_MODE_TX = 0x05,
    +
    174  LR11XX_SYSTEM_CHIP_MODE_LOC = 0x06,
    + +
    176 
    +
    180 typedef enum
    +
    181 {
    +
    182  LR11XX_SYSTEM_RESET_STATUS_CLEARED = 0x00,
    +
    183  LR11XX_SYSTEM_RESET_STATUS_ANALOG = 0x01,
    +
    184  LR11XX_SYSTEM_RESET_STATUS_EXTERNAL = 0x02,
    +
    185  LR11XX_SYSTEM_RESET_STATUS_SYSTEM = 0x03,
    +
    186  LR11XX_SYSTEM_RESET_STATUS_WATCHDOG = 0x04,
    +
    187  LR11XX_SYSTEM_RESET_STATUS_IOCD_RESTART = 0x05,
    +
    188  LR11XX_SYSTEM_RESET_STATUS_RTC_RESTART = 0x06,
    + +
    190 
    +
    194 typedef enum
    +
    195 {
    +
    196  LR11XX_SYSTEM_CMD_STATUS_FAIL = 0x00,
    +
    197  LR11XX_SYSTEM_CMD_STATUS_PERR = 0x01,
    +
    198  LR11XX_SYSTEM_CMD_STATUS_OK = 0x02,
    +
    199  LR11XX_SYSTEM_CMD_STATUS_DATA = 0x03,
    + +
    201 
    +
    205 typedef enum
    +
    206 {
    + +
    208  LR11XX_SYSTEM_LFCLK_XTAL = 0x01,
    +
    209  LR11XX_SYSTEM_LFCLK_EXT = 0x02
    + +
    211 
    +
    215 typedef enum
    +
    216 {
    + +
    218  LR11XX_SYSTEM_REG_MODE_DCDC = 0x01,
    + +
    220 
    +
    224 typedef enum
    +
    225 {
    + + + +
    229 
    + +
    234 {
    +
    235  LR11XX_SYSTEM_RFSW0_HIGH = ( 1 << 0 ),
    +
    236  LR11XX_SYSTEM_RFSW1_HIGH = ( 1 << 1 ),
    +
    237  LR11XX_SYSTEM_RFSW2_HIGH = ( 1 << 2 ),
    +
    238  LR11XX_SYSTEM_RFSW3_HIGH = ( 1 << 3 ),
    +
    239  LR11XX_SYSTEM_RFSW4_HIGH = ( 1 << 4 ),
    +
    240 };
    +
    241 
    + +
    246 {
    +
    247  uint8_t enable;
    +
    248  uint8_t standby;
    +
    249  uint8_t rx;
    +
    250  uint8_t tx;
    +
    251  uint8_t tx_hp;
    +
    252  uint8_t tx_hf;
    +
    253  uint8_t gnss;
    +
    254  uint8_t wifi;
    + +
    256 
    +
    260 typedef enum
    +
    261 {
    +
    262  LR11XX_SYSTEM_STANDBY_CFG_RC = 0x00,
    +
    263  LR11XX_SYSTEM_STANDBY_CFG_XOSC = 0x01
    + +
    265 
    +
    269 typedef enum
    +
    270 {
    + + + + + + + + + +
    280 
    +
    284 typedef struct lr11xx_system_stat1_s
    +
    285 {
    +
    286  lr11xx_system_command_status_t command_status;
    +
    287  bool is_interrupt_active;
    + +
    289 
    +
    293 typedef struct lr11xx_system_stat2_s
    +
    294 {
    +
    295  lr11xx_system_reset_status_t reset_status;
    +
    296  lr11xx_system_chip_modes_t chip_mode;
    +
    297  bool is_running_from_flash;
    + +
    299 
    + +
    304 {
    +
    305  uint8_t hw;
    +
    306  uint8_t type;
    +
    307  uint16_t fw;
    + +
    309 
    + +
    314 {
    +
    315  bool is_warm_start;
    +
    316  bool is_rtc_timeout;
    + +
    318 
    +
    319 /*
    +
    320  * -----------------------------------------------------------------------------
    +
    321  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
    +
    322  */
    +
    323 
    +
    324 #ifdef __cplusplus
    +
    325 }
    +
    326 #endif
    +
    327 
    +
    328 #endif // LR11XX_SYSTEM_TYPES_H
    +
    329 
    +
    330 /* --- EOF ------------------------------------------------------------------ */
    +
    +
    @ LR11XX_SYSTEM_INFOPAGE_0
    Info page #0.
    Definition: lr11xx_system_types.h:226
    +
    uint8_t lr11xx_system_uid_t[LR11XX_SYSTEM_UID_LENGTH]
    Fixed-length array to store a UID.
    Definition: lr11xx_system_types.h:82
    +
    lr11xx_system_reset_status_t
    Reset status.
    Definition: lr11xx_system_types.h:181
    +
    #define LR11XX_SYSTEM_UID_LENGTH
    Length of the LR11XX Unique Identifier in bytes.
    Definition: lr11xx_system_types.h:70
    +
    lr11xx_system_infopage_id_t
    Info page ID.
    Definition: lr11xx_system_types.h:225
    +
    lr11xx_system_reg_mode_t
    Regulator modes.
    Definition: lr11xx_system_types.h:216
    +
    struct lr11xx_system_stat2_s lr11xx_system_stat2_t
    Status register 2 structure definition.
    +
    struct lr11xx_system_sleep_cfg_s lr11xx_system_sleep_cfg_t
    Sleep configuration structure definition.
    +
    lr11xx_system_calibration_e
    Calibration flags.
    Definition: lr11xx_system_types.h:135
    +
    lr11xx_system_lfclk_cfg_t
    Low-frequency clock modes.
    Definition: lr11xx_system_types.h:206
    +
    @ LR11XX_SYSTEM_TCXO_CTRL_1_7V
    Supply voltage = 1.7v.
    Definition: lr11xx_system_types.h:272
    +
    uint32_t lr11xx_system_irq_mask_t
    Type to store system interrupt flags.
    Definition: lr11xx_system_types.h:97
    +
    uint8_t lr11xx_system_pin_t[LR11XX_SYSTEM_PIN_LENGTH]
    Fixed-length array to store a PIN.
    Definition: lr11xx_system_types.h:92
    +
    @ LR11XX_SYSTEM_TCXO_CTRL_2_7V
    Supply voltage = 2.7v.
    Definition: lr11xx_system_types.h:276
    +
    @ LR11XX_SYSTEM_TCXO_CTRL_3_3V
    Supply voltage = 3.3v.
    Definition: lr11xx_system_types.h:278
    +
    struct lr11xx_system_version_s lr11xx_system_version_t
    Version structure definition.
    +
    @ LR11XX_SYSTEM_REG_MODE_LDO
    (Default)
    Definition: lr11xx_system_types.h:217
    +
    Status register 2 structure definition.
    Definition: lr11xx_system_types.h:294
    +
    Sleep configuration structure definition.
    Definition: lr11xx_system_types.h:314
    +
    lr11xx_system_tcxo_supply_voltage_t
    TCXO supply voltage values.
    Definition: lr11xx_system_types.h:270
    +
    lr11xx_system_errors_e
    Error flags.
    Definition: lr11xx_system_types.h:150
    +
    Status register 1 structure definition.
    Definition: lr11xx_system_types.h:285
    +
    @ LR11XX_SYSTEM_LFCLK_RC
    (Default)
    Definition: lr11xx_system_types.h:207
    +
    lr11xx_system_standby_cfg_t
    Stand by configuration values.
    Definition: lr11xx_system_types.h:261
    +
    @ LR11XX_SYSTEM_TCXO_CTRL_3_0V
    Supply voltage = 3.0v.
    Definition: lr11xx_system_types.h:277
    +
    lr11xx_system_chip_modes_t
    Chip modes.
    Definition: lr11xx_system_types.h:167
    +
    lr11xx_system_rfswitch_cfg_pin_e
    RF switch configuration pin.
    Definition: lr11xx_system_types.h:234
    +
    struct lr11xx_system_rfswitch_cfg_s lr11xx_system_rfswitch_cfg_t
    RF switch configuration structure definition.
    +
    @ LR11XX_SYSTEM_TCXO_CTRL_1_6V
    Supply voltage = 1.6v.
    Definition: lr11xx_system_types.h:271
    +
    RF switch configuration structure definition.
    Definition: lr11xx_system_types.h:246
    +
    uint8_t lr11xx_system_join_eui_t[LR11XX_SYSTEM_JOIN_EUI_LENGTH]
    Fixed-length array to store a joinEUI.
    Definition: lr11xx_system_types.h:87
    +
    struct lr11xx_system_stat1_s lr11xx_system_stat1_t
    Status register 1 structure definition.
    +
    @ LR11XX_SYSTEM_TCXO_CTRL_1_8V
    Supply voltage = 1.8v.
    Definition: lr11xx_system_types.h:273
    +
    @ LR11XX_SYSTEM_TCXO_CTRL_2_2V
    Supply voltage = 2.2v.
    Definition: lr11xx_system_types.h:274
    +
    lr11xx_system_command_status_t
    Command status.
    Definition: lr11xx_system_types.h:195
    +
    @ LR11XX_SYSTEM_INFOPAGE_1
    Info page #1.
    Definition: lr11xx_system_types.h:227
    +
    Version structure definition.
    Definition: lr11xx_system_types.h:304
    +
    lr11xx_system_irq_e
    Interrupt flags.
    Definition: lr11xx_system_types.h:103
    +
    @ LR11XX_SYSTEM_TCXO_CTRL_2_4V
    Supply voltage = 2.4v.
    Definition: lr11xx_system_types.h:275
    + + + + diff --git a/doc/lr1110/html/lr1110__types_8h.html b/doc/lr11xx/html/lr11xx__types_8h.html similarity index 56% rename from doc/lr1110/html/lr1110__types_8h.html rename to doc/lr11xx/html/lr11xx__types_8h.html index fd5506f..0612185 100644 --- a/doc/lr1110/html/lr1110__types_8h.html +++ b/doc/lr11xx/html/lr11xx__types_8h.html @@ -5,7 +5,7 @@ -lr1110_driver: lr1110_driver/src/lr1110_types.h File Reference +lr11xx_driver: lr11xx_driver/src/lr11xx_types.h File Reference @@ -21,7 +21,7 @@ -
    lr1110_driver +
    lr11xx_driver
    @@ -61,7 +61,7 @@
    @@ -70,63 +70,63 @@ Typedefs | Enumerations
    -
    lr1110_types.h File Reference
    +
    lr11xx_types.h File Reference
    -

    Type definitions for LR1110. +

    Type definitions for LR11XX. More...

    This graph shows which files directly or indirectly include this file:
    -
    - - - - - - - - - - - - - - - - - - - +
    + + + + + + + + + + + + + + + + + + +
    -

    Go to the source code of this file.

    +

    Go to the source code of this file.

    - - + +

    Macros

    -#define LR1110_CMD_LENGTH_MAX   ( 512 )
     
    +#define LR11XX_CMD_LENGTH_MAX   ( 512 )
     
    - - - + + +

    Typedefs

    -typedef enum lr1110_status_e lr1110_status_t
     LR1110 status.
     
    +typedef enum lr11xx_status_e lr11xx_status_t
     LR11XX status.
     
    - - - + +

    Enumerations

    enum  lr1110_status_e { LR1110_STATUS_OK = 0, -LR1110_STATUS_ERROR = 3 +
    enum  lr11xx_status_e { LR11XX_STATUS_OK = 0, +LR11XX_STATUS_ERROR = 3 }
     LR1110 status.
     
     LR11XX status.
     

    Detailed Description

    -

    Type definitions for LR1110.

    +

    Type definitions for LR11XX.

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • diff --git a/doc/lr11xx/html/lr11xx__types_8h__dep__incl.map b/doc/lr11xx/html/lr11xx__types_8h__dep__incl.map new file mode 100644 index 0000000..9981d67 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__types_8h__dep__incl.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/doc/lr11xx/html/lr11xx__types_8h__dep__incl.md5 b/doc/lr11xx/html/lr11xx__types_8h__dep__incl.md5 new file mode 100644 index 0000000..281ea67 --- /dev/null +++ b/doc/lr11xx/html/lr11xx__types_8h__dep__incl.md5 @@ -0,0 +1 @@ +62e13f42c09a4aee8a504d7d779a20cb \ No newline at end of file diff --git a/doc/lr11xx/html/lr11xx__types_8h__dep__incl.png b/doc/lr11xx/html/lr11xx__types_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..98b6462eb0d5e52b7df17bdf8cf21da2e551a23b GIT binary patch literal 46079 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 -lr1110_driver: lr1110_driver/src/lr1110_types.h Source File +lr11xx_driver: lr11xx_driver/src/lr11xx_types.h Source File @@ -21,7 +21,7 @@ -
      lr1110_driver +
      lr11xx_driver
      @@ -61,17 +61,17 @@
    -
    lr1110_types.h
    +
    lr11xx_types.h
    -Go to the documentation of this file.
    1 
    -
    35 #ifndef LR1110_TYPES_H
    -
    36 #define LR1110_TYPES_H
    +Go to the documentation of this file.
    1 
    +
    35 #ifndef LR11XX_TYPES_H
    +
    36 #define LR11XX_TYPES_H
    37 
    38 /*
    39  * -----------------------------------------------------------------------------
    @@ -88,30 +88,30 @@
    50  * --- PUBLIC CONSTANTS --------------------------------------------------------
    51  */
    52 
    -
    53 #define LR1110_CMD_LENGTH_MAX ( 512 )
    +
    53 #define LR11XX_CMD_LENGTH_MAX ( 512 )
    54 
    55 /*
    56  * -----------------------------------------------------------------------------
    57  * --- PUBLIC TYPES ------------------------------------------------------------
    58  */
    59 
    -
    63 typedef enum lr1110_status_e
    +
    63 typedef enum lr11xx_status_e
    64 {
    -
    65  LR1110_STATUS_OK = 0,
    -
    66  LR1110_STATUS_ERROR = 3,
    - +
    65  LR11XX_STATUS_OK = 0,
    +
    66  LR11XX_STATUS_ERROR = 3,
    +
    68 
    69 /*
    70  * -----------------------------------------------------------------------------
    71  * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
    72  */
    73 
    -
    74 #endif // LR1110_TYPES_H
    +
    74 #endif // LR11XX_TYPES_H
    75 
    76 /* --- EOF ------------------------------------------------------------------ */
    -
    enum lr1110_status_e lr1110_status_t
    LR1110 status.
    -
    lr1110_status_e
    LR1110 status.
    Definition: lr1110_types.h:64
    +
    lr11xx_status_e
    LR11XX status.
    Definition: lr11xx_types.h:64
    +
    enum lr11xx_status_e lr11xx_status_t
    LR11XX status.
    -

    Wi-Fi passive scan driver implementation for LR1110. +

    Wi-Fi passive scan driver implementation for LR11XX. More...

    -
    #include "lr1110_wifi.h"
    -#include "lr1110_hal.h"
    +
    #include "lr11xx_wifi.h"
    +#include "lr11xx_system_types.h"
    +#include "lr11xx_hal.h"
    -Include dependency graph for lr1110_wifi.c:
    +Include dependency graph for lr11xx_wifi.c:
    -
    - - - - - - - - - +
    + + + + + + + + + +
    - - + +

    Data Structures

    union  lr1110_wifi_result_interface_t
     Wi-Fi scan results interface. More...
    union  lr11xx_wifi_result_interface_t
     Wi-Fi scan results interface. More...
     
    +#define  +#define  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    @@ -107,350 +109,366 @@ #define 

    MIN(a, b)   ( ( a > b ) ? b : a )
     
    -#define IS_BETWEEN(value, min, max)   ( ( min <= value ) && ( value <= max ) )
    IS_BETWEEN(value, min, max)   ( ( min <= value ) && ( value <= max ) )
     Check if a value is in between min and max - included.
     
    -#define IS_BETWEEN_0x80_AND_0xBF(value)   IS_BETWEEN( value, 0x80, 0xBF )
    IS_BETWEEN_0x80_AND_0xBF(value)   IS_BETWEEN( value, 0x80, 0xBF )
     Check if a value is in between 0x80 and 0xBF - included.
     
    -#define LR1110_WIFI_BASIC_COMPLETE_RESULT_SIZE   ( 22 )
     
    -#define LR1110_WIFI_BASIC_MAC_TYPE_CHANNEL_RESULT_SIZE   ( 9 )
     
    -#define LR1110_WIFI_MAX_SIZE_PER_SPI(single_size)    ( single_size * ( LR1110_WIFI_MAX_RESULT_PER_TRANSACTION( single_size ) ) )
     
    -#define LR1110_WIFI_MAX_RESULT_PER_TRANSACTION(single_size)    ( MIN( ( LR1110_WIFI_READ_RESULT_LIMIT ) / ( single_size ), LR1110_WIFI_N_RESULTS_MAX_PER_CHUNK ) )
     
    -#define LR1110_WIFI_ALL_CUMULATIVE_TIMING_SIZE   ( 16 )
     
    -#define LR1110_WIFI_VERSION_SIZE   ( 2 )
     
    -#define LR1110_WIFI_READ_RESULT_LIMIT   ( 1020 )
     
    -#define LR1110_WIFI_COUNTRY_RESULT_LENGTH_SIZE   ( 1 )
     
    -#define LR1110_WIFI_EXTENDED_COMPLETE_RESULT_SIZE   ( 79 )
     
    -#define LR1110_WIFI_SCAN_SINGLE_COUNTRY_CODE_RESULT_SIZE   ( 10 )
     
    -#define LR1110_WIFI_MAX_COUNTRY_CODE_RESULT_SIZE    ( LR1110_WIFI_MAX_COUNTRY_CODE * LR1110_WIFI_SCAN_SINGLE_COUNTRY_CODE_RESULT_SIZE )
     
    -#define LR1110_WIFI_SCAN_CMD_LENGTH   ( 2 + 9 )
     
    -#define LR1110_WIFI_SEARCH_COUNTRY_CODE_CMD_LENGTH   ( 2 + 7 )
     
    -#define LR1110_WIFI_SCAN_TIME_LIMIT_CMD_LENGTH   ( 2 + 9 )
     
    -#define LR1110_WIFI_COUNTRY_CODE_TIME_LIMIT_CMD_LENGTH   ( 2 + 7 )
     
    -#define LR1110_WIFI_GET_RESULT_SIZE_CMD_LENGTH   ( 2 )
     
    -#define LR1110_WIFI_READ_RESULT_CMD_LENGTH   ( 2 + 3 )
     
    -#define LR1110_WIFI_RESET_CUMUL_TIMING_CMD_LENGTH   ( 2 )
     
    -#define LR1110_WIFI_READ_CUMUL_TIMING_CMD_LENGTH   ( 2 )
     
    -#define LR1110_WIFI_GET_SIZE_COUNTRY_RESULT_CMD_LENGTH   ( 2 )
     
    -#define LR1110_WIFI_READ_COUNTRY_CODE_CMD_LENGTH   ( 2 + 2 )
     
    -#define LR1110_WIFI_CFG_TIMESTAMP_AP_PHONE_CMD_LENGTH   ( 2 + 4 )
     
    -#define LR1110_WIFI_GET_VERSION_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_WIFI_BASIC_COMPLETE_RESULT_SIZE   ( 22 )
     
    +#define LR11XX_WIFI_BASIC_MAC_TYPE_CHANNEL_RESULT_SIZE   ( 9 )
     
    +#define LR11XX_WIFI_MAX_SIZE_PER_SPI(single_size)    ( single_size * ( LR11XX_WIFI_MAX_RESULT_PER_TRANSACTION( single_size ) ) )
     
    +#define LR11XX_WIFI_MAX_RESULT_PER_TRANSACTION(single_size)    ( MIN( ( LR11XX_WIFI_READ_RESULT_LIMIT ) / ( single_size ), LR11XX_WIFI_N_RESULTS_MAX_PER_CHUNK ) )
     
    +#define LR11XX_WIFI_ALL_CUMULATIVE_TIMING_SIZE   ( 16 )
     
    +#define LR11XX_WIFI_VERSION_SIZE   ( 2 )
     
    +#define LR11XX_WIFI_READ_RESULT_LIMIT   ( 1020 )
     
    +#define LR11XX_WIFI_COUNTRY_RESULT_LENGTH_SIZE   ( 1 )
     
    +#define LR11XX_WIFI_EXTENDED_COMPLETE_RESULT_SIZE   ( 79 )
     
    +#define LR11XX_WIFI_SCAN_SINGLE_COUNTRY_CODE_RESULT_SIZE   ( 10 )
     
    +#define LR11XX_WIFI_MAX_COUNTRY_CODE_RESULT_SIZE    ( LR11XX_WIFI_MAX_COUNTRY_CODE * LR11XX_WIFI_SCAN_SINGLE_COUNTRY_CODE_RESULT_SIZE )
     
    +#define LR11XX_WIFI_SCAN_CMD_LENGTH   ( 2 + 9 )
     
    +#define LR11XX_WIFI_SEARCH_COUNTRY_CODE_CMD_LENGTH   ( 2 + 7 )
     
    +#define LR11XX_WIFI_SCAN_TIME_LIMIT_CMD_LENGTH   ( 2 + 9 )
     
    +#define LR11XX_WIFI_COUNTRY_CODE_TIME_LIMIT_CMD_LENGTH   ( 2 + 7 )
     
    +#define LR11XX_WIFI_GET_RESULT_SIZE_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_WIFI_READ_RESULT_CMD_LENGTH   ( 2 + 3 )
     
    +#define LR11XX_WIFI_RESET_CUMUL_TIMING_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_WIFI_READ_CUMUL_TIMING_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_WIFI_GET_SIZE_COUNTRY_RESULT_CMD_LENGTH   ( 2 )
     
    +#define LR11XX_WIFI_READ_COUNTRY_CODE_CMD_LENGTH   ( 2 + 2 )
     
    +#define LR11XX_WIFI_CFG_TIMESTAMP_AP_PHONE_CMD_LENGTH   ( 2 + 4 )
     
    +#define LR11XX_WIFI_GET_VERSION_CMD_LENGTH   ( 2 )
     
    #define LR11XX_WIFI_CORRELATION_UA   ( 12000 )
     Wi-Fi scan power consumption. More...
     
    +#define LR11XX_WIFI_CAPTURE_UA   ( 12000 )
     
    +#define LR11XX_WIFI_DEMODULATION_UA   ( 4000 )
     
    - +

    Enumerations

    enum  {
    -  LR1110_BL_GET_STATUS_OC = 0x0100, -LR1110_BL_GET_VERSION_OC = 0x0101, -LR1110_BL_ERASE_FLASH_OC = 0x8000, -LR1110_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003, +  LR11XX_BL_GET_STATUS_OC = 0x0100, +LR11XX_BL_GET_VERSION_OC = 0x0101, +LR11XX_BL_ERASE_FLASH_OC = 0x8000, +LR11XX_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003,
    -  LR1110_BL_REBOOT_OC = 0x8005, -LR1110_BL_GET_PIN_OC = 0x800B, -LR1110_BL_READ_CHIP_EUI_OC = 0x800C, -LR1110_BL_READ_JOIN_EUI_OC = 0x800D, +  LR11XX_BL_REBOOT_OC = 0x8005, +LR11XX_BL_GET_PIN_OC = 0x800B, +LR11XX_BL_READ_CHIP_EUI_OC = 0x800C, +LR11XX_BL_READ_JOIN_EUI_OC = 0x800D,
    -  LR1110_CRYPTO_SELECT_OC = 0x0500, -LR1110_CRYPTO_SET_KEY_OC = 0x0502, -LR1110_CRYPTO_DERIVE_KEY_OC = 0x0503, -LR1110_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504, +  LR11XX_CRYPTO_SELECT_OC = 0x0500, +LR11XX_CRYPTO_SET_KEY_OC = 0x0502, +LR11XX_CRYPTO_DERIVE_KEY_OC = 0x0503, +LR11XX_CRYPTO_PROCESS_JOIN_ACCEPT_OC = 0x0504,
    -  LR1110_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, -LR1110_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, -LR1110_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, -LR1110_CRYPTO_ENCRYPT_AES_OC = 0x0508, +  LR11XX_CRYPTO_COMPUTE_AES_CMAC_OC = 0x0505, +LR11XX_CRYPTO_VERIFY_AES_CMAC_OC = 0x0506, +LR11XX_CRYPTO_ENCRYPT_AES_01_OC = 0x0507, +LR11XX_CRYPTO_ENCRYPT_AES_OC = 0x0508,
    -  LR1110_CRYPTO_DECRYPT_AES_OC = 0x0509, -LR1110_CRYPTO_STORE_TO_FLASH_OC = 0x050A, -LR1110_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, -LR1110_CRYPTO_SET_PARAMETER_OC = 0x050D, +  LR11XX_CRYPTO_DECRYPT_AES_OC = 0x0509, +LR11XX_CRYPTO_STORE_TO_FLASH_OC = 0x050A, +LR11XX_CRYPTO_RESTORE_FROM_FLASH_OC = 0x050B, +LR11XX_CRYPTO_SET_PARAMETER_OC = 0x050D,
    -  LR1110_CRYPTO_GET_PARAMETER_OC = 0x050E, -LR1110_GNSS_SET_CONSTELLATION_OC = 0x0400, -LR1110_GNSS_READ_CONSTELLATION_OC = 0x0401, -LR1110_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402, +  LR11XX_CRYPTO_GET_PARAMETER_OC = 0x050E, +LR11XX_GNSS_SET_CONSTELLATION_OC = 0x0400, +LR11XX_GNSS_READ_CONSTELLATION_OC = 0x0401, +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC = 0x0402,
    -  LR1110_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, -LR1110_GNSS_READ_FW_VERSION_OC = 0x0406, -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, -LR1110_GNSS_SET_SCAN_MODE_OC = 0x0408, +  LR11XX_GNSS_READ_ALMANAC_UPDATE_OC = 0x0403, +LR11XX_GNSS_READ_FW_VERSION_OC = 0x0406, +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC = 0x0407, +LR11XX_GNSS_SET_SCAN_MODE_OC = 0x0408,
    -  LR1110_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, -LR1110_GNSS_SCAN_ASSISTED_OC = 0x040A, -LR1110_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, -LR1110_GNSS_SCAN_READ_RES_OC = 0x040D, +  LR11XX_GNSS_SCAN_AUTONOMOUS_OC = 0x0409, +LR11XX_GNSS_SCAN_ASSISTED_OC = 0x040A, +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC = 0x040C, +LR11XX_GNSS_SCAN_READ_RES_OC = 0x040D,
    -  LR1110_GNSS_ALMANAC_UPDATE_OC = 0x040E, -LR1110_GNSS_ALMANAC_READ_OC = 0x040F, -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411, +  LR11XX_GNSS_ALMANAC_UPDATE_OC = 0x040E, +LR11XX_GNSS_ALMANAC_READ_OC = 0x040F, +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC = 0x0410, +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC = 0x0411,
    -  LR1110_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, -LR1110_GNSS_PUSH_DM_MSG_OC = 0x0415, -LR1110_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, -LR1110_GNSS_GET_NB_SATELLITES_OC = 0x0417, +  LR11XX_GNSS_PUSH_SOLVER_MSG_OC = 0x0414, +LR11XX_GNSS_PUSH_DM_MSG_OC = 0x0415, +LR11XX_GNSS_GET_CONTEXT_STATUS_OC = 0x0416, +LR11XX_GNSS_GET_NB_SATELLITES_OC = 0x0417,
    -  LR1110_GNSS_GET_SATELLITES_OC = 0x0418, -LR1110_GNSS_GET_TIMINGS_OC = 0x0419, -LR1110_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, -LR1110_LR_FHSS_BUILD_FRAME_OC = 0x022C, +  LR11XX_GNSS_GET_SATELLITES_OC = 0x0418, +LR11XX_GNSS_GET_TIMINGS_OC = 0x0419, +LR11XX_LR_FHSS_SET_MODULATION_PARAM_OC = 0x020F, +LR11XX_LR_FHSS_BUILD_FRAME_OC = 0x022C,
    -  LR1110_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, -LR1110_RADIO_RESET_STATS_OC = 0x0200, -LR1110_RADIO_GET_STATS_OC = 0x0201, -LR1110_RADIO_GET_PKT_TYPE_OC = 0x0202, +  LR11XX_LR_FHSS_SET_SYNC_WORD_OC = 0x022D, +LR11XX_RADIO_RESET_STATS_OC = 0x0200, +LR11XX_RADIO_GET_STATS_OC = 0x0201, +LR11XX_RADIO_GET_PKT_TYPE_OC = 0x0202,
    -  LR1110_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, -LR1110_RADIO_GET_PKT_STATUS_OC = 0x0204, -LR1110_RADIO_GET_RSSI_INST_OC = 0x0205, -LR1110_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206, +  LR11XX_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203, +LR11XX_RADIO_GET_PKT_STATUS_OC = 0x0204, +LR11XX_RADIO_GET_RSSI_INST_OC = 0x0205, +LR11XX_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206,
    -  LR1110_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, -LR1110_RADIO_SET_RX_OC = 0x0209, -LR1110_RADIO_SET_TX_OC = 0x020A, -LR1110_RADIO_SET_RF_FREQUENCY_OC = 0x020B, +  LR11XX_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208, +LR11XX_RADIO_SET_RX_OC = 0x0209, +LR11XX_RADIO_SET_TX_OC = 0x020A, +LR11XX_RADIO_SET_RF_FREQUENCY_OC = 0x020B,
    -  LR1110_RADIO_AUTOTXRX_OC = 0x020C, -LR1110_RADIO_SET_CAD_PARAMS_OC = 0x020D, -LR1110_RADIO_SET_PKT_TYPE_OC = 0x020E, -LR1110_RADIO_SET_MODULATION_PARAM_OC = 0x020F, +  LR11XX_RADIO_AUTOTXRX_OC = 0x020C, +LR11XX_RADIO_SET_CAD_PARAMS_OC = 0x020D, +LR11XX_RADIO_SET_PKT_TYPE_OC = 0x020E, +LR11XX_RADIO_SET_MODULATION_PARAM_OC = 0x020F,
    -  LR1110_RADIO_SET_PKT_PARAM_OC = 0x0210, -LR1110_RADIO_SET_TX_PARAMS_OC = 0x0211, -LR1110_RADIO_SET_PKT_ADRS_OC = 0x0212, -LR1110_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213, +  LR11XX_RADIO_SET_PKT_PARAM_OC = 0x0210, +LR11XX_RADIO_SET_TX_PARAMS_OC = 0x0211, +LR11XX_RADIO_SET_PKT_ADRS_OC = 0x0212, +LR11XX_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213,
    -  LR1110_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, -LR1110_RADIO_SET_PA_CFG_OC = 0x0215, -LR1110_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, -LR1110_RADIO_SET_CAD_OC = 0x0218, +  LR11XX_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214, +LR11XX_RADIO_SET_PA_CFG_OC = 0x0215, +LR11XX_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217, +LR11XX_RADIO_SET_CAD_OC = 0x0218,
    -  LR1110_RADIO_SET_TX_CW_OC = 0x0219, -LR1110_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, -LR1110_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, -LR1110_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224, +  LR11XX_RADIO_SET_TX_CW_OC = 0x0219, +LR11XX_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A, +LR11XX_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B, +LR11XX_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224,
    -  LR1110_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, -LR1110_RADIO_SET_RX_BOOSTED_OC = 0x0227, -LR1110_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B, -LR1110_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +  LR11XX_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225, +LR11XX_RADIO_SET_RX_BOOSTED_OC = 0x0227, +LR11XX_RADIO_SET_RSSI_CALIBRATION_OC = 0x0229, +LR11XX_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B,
    -  LR1110_REGMEM_WRITE_REGMEM32_OC = 0x0105, -LR1110_REGMEM_READ_REGMEM32_OC = 0x0106, -LR1110_REGMEM_WRITE_MEM8_OC = 0x0107, -LR1110_REGMEM_READ_MEM8_OC = 0x0108, +  LR11XX_RADIO_GET_LORA_RX_INFO_OC = 0x0230, +LR11XX_REGMEM_WRITE_REGMEM32_OC = 0x0105, +LR11XX_REGMEM_READ_REGMEM32_OC = 0x0106, +LR11XX_REGMEM_WRITE_MEM8_OC = 0x0107,
    -  LR1110_REGMEM_WRITE_BUFFER8_OC = 0x0109, -LR1110_REGMEM_READ_BUFFER8_OC = 0x010A, -LR1110_REGMEM_CLEAR_RXBUFFER_OC = 0x010B, -LR1110_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +  LR11XX_REGMEM_READ_MEM8_OC = 0x0108, +LR11XX_REGMEM_WRITE_BUFFER8_OC = 0x0109, +LR11XX_REGMEM_READ_BUFFER8_OC = 0x010A, +LR11XX_REGMEM_CLEAR_RXBUFFER_OC = 0x010B,
    -  LR1110_SYSTEM_GET_STATUS_OC = 0x0100, -LR1110_SYSTEM_GET_VERSION_OC = 0x0101, -LR1110_SYSTEM_GET_ERRORS_OC = 0x010D, -LR1110_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +  LR11XX_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C, +LR11XX_SYSTEM_GET_STATUS_OC = 0x0100, +LR11XX_SYSTEM_GET_VERSION_OC = 0x0101, +LR11XX_SYSTEM_GET_ERRORS_OC = 0x010D,
    -  LR1110_SYSTEM_CALIBRATE_OC = 0x010F, -LR1110_SYSTEM_SET_REGMODE_OC = 0x0110, -LR1110_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111, -LR1110_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +  LR11XX_SYSTEM_CLEAR_ERRORS_OC = 0x010E, +LR11XX_SYSTEM_CALIBRATE_OC = 0x010F, +LR11XX_SYSTEM_SET_REGMODE_OC = 0x0110, +LR11XX_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111,
    -  LR1110_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, -LR1110_SYSTEM_CLEAR_IRQ_OC = 0x0114, -LR1110_SYSTEM_CFG_LFCLK_OC = 0x0116, -LR1110_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +  LR11XX_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112, +LR11XX_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113, +LR11XX_SYSTEM_CLEAR_IRQ_OC = 0x0114, +LR11XX_SYSTEM_CFG_LFCLK_OC = 0x0116,
    -  LR1110_SYSTEM_REBOOT_OC = 0x0118, -LR1110_SYSTEM_GET_VBAT_OC = 0x0119, -LR1110_SYSTEM_GET_TEMP_OC = 0x011A, -LR1110_SYSTEM_SET_SLEEP_OC = 0x011B, +  LR11XX_SYSTEM_SET_TCXO_MODE_OC = 0x0117, +LR11XX_SYSTEM_REBOOT_OC = 0x0118, +LR11XX_SYSTEM_GET_VBAT_OC = 0x0119, +LR11XX_SYSTEM_GET_TEMP_OC = 0x011A,
    -  LR1110_SYSTEM_SET_STANDBY_OC = 0x011C, -LR1110_SYSTEM_SET_FS_OC = 0x011D, -LR1110_SYSTEM_GET_RANDOM_OC = 0x0120, -LR1110_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +  LR11XX_SYSTEM_SET_SLEEP_OC = 0x011B, +LR11XX_SYSTEM_SET_STANDBY_OC = 0x011C, +LR11XX_SYSTEM_SET_FS_OC = 0x011D, +LR11XX_SYSTEM_GET_RANDOM_OC = 0x0120,
    -  LR1110_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, -LR1110_SYSTEM_READ_INFOPAGE_OC = 0x0123, -LR1110_SYSTEM_READ_UID_OC = 0x0125, -LR1110_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +  LR11XX_SYSTEM_ERASE_INFOPAGE_OC = 0x0121, +LR11XX_SYSTEM_WRITE_INFOPAGE_OC = 0x0122, +LR11XX_SYSTEM_READ_INFOPAGE_OC = 0x0123, +LR11XX_SYSTEM_READ_UID_OC = 0x0125,
    -  LR1110_SYSTEM_READ_PIN_OC = 0x0127, -LR1110_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, -LR1110_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A, -LR1110_WIFI_SCAN_OC = 0x0300, +  LR11XX_SYSTEM_READ_JOIN_EUI_OC = 0x0126, +LR11XX_SYSTEM_READ_PIN_OC = 0x0127, +LR11XX_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128, +LR11XX_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A,
    -  LR1110_WIFI_SCAN_TIME_LIMIT = 0x0301, -LR1110_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, -LR1110_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303, -LR1110_WIFI_GET_RESULT_SIZE_OC = 0x0305, +  LR11XX_WIFI_SCAN_OC = 0x0300, +LR11XX_WIFI_SCAN_TIME_LIMIT = 0x0301, +LR11XX_WIFI_SEARCH_COUNTRY_CODE_OC = 0x0302, +LR11XX_WIFI_COUNTRY_CODE_TIME_LIMIT_OC = 0x0303,
    -  LR1110_WIFI_READ_RESULT_OC = 0x0306, -LR1110_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, -LR1110_WIFI_READ_CUMUL_TIMING_OC = 0x0308, -LR1110_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +  LR11XX_WIFI_GET_RESULT_SIZE_OC = 0x0305, +LR11XX_WIFI_READ_RESULT_OC = 0x0306, +LR11XX_WIFI_RESET_CUMUL_TIMING_OC = 0x0307, +LR11XX_WIFI_READ_CUMUL_TIMING_OC = 0x0308,
    -  LR1110_WIFI_READ_COUNTRY_CODE_OC = 0x030A, -LR1110_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, -LR1110_WIFI_GET_VERSION_OC = 0x0320 +  LR11XX_WIFI_GET_SIZE_COUNTRY_RESULT_OC = 0x0309, +LR11XX_WIFI_READ_COUNTRY_CODE_OC = 0x030A, +LR11XX_WIFI_CONFIGURE_TIMESTAMP_AP_PHONE_OC = 0x030B, +LR11XX_WIFI_GET_VERSION_OC = 0x0320
    }
     Operating codes for Wi-Fi-related operations. More...
     Operating codes for Wi-Fi-related operations. More...
     
    - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    static uint16_t uint16_from_array (const uint8_t *array, const uint16_t index)
     Return a uint16 value by reading a buffer of uint8 from index. More...
    static uint16_t uint16_from_array (const uint8_t *array, const uint16_t index)
     Return a uint16 value by reading a buffer of uint8 from index. More...
     
    static uint64_t uint64_from_array (const uint8_t *array, const uint16_t index)
     Return a uint64 value by reading a buffer of uint8 from index. More...
    static uint64_t uint64_from_array (const uint8_t *array, const uint16_t index)
     Return a uint64 value by reading a buffer of uint8 from index. More...
     
    static void generic_results_interpreter (const uint8_t n_result_to_parse, const uint8_t index_result_start_writing, const uint8_t *buffer, lr1110_wifi_result_interface_t result_interface, const lr1110_wifi_result_format_t format_code)
     Return a uint64 value by reading a buffer of uint8 from index. More...
     
    -static void interpret_basic_complete_result_from_buffer (const uint8_t nb_results, const uint8_t index_result_start_writing, const uint8_t *buffer, lr1110_wifi_basic_complete_result_t *result)
     Parse basic complete result.
     
    -static void interpret_basic_mac_type_channel_result_from_buffer (const uint8_t nb_results, const uint8_t index_result_start_writing, const uint8_t *buffer, lr1110_wifi_basic_mac_type_channel_result_t *result)
     Parse basic MAC - type - channel result.
     
    -static void interpret_extended_full_result_from_buffer (const uint8_t nb_results, const uint8_t index_result_start_writing, const uint8_t *buffer, lr1110_wifi_extended_full_result_t *result)
     Parse extended full result.
     
    -static lr1110_status_t fetch_and_aggregate_all_results (const void *context, const uint8_t index_result_start, const uint8_t nb_results, const uint8_t nb_results_per_chunk_max, const lr1110_wifi_result_format_t result_format_code, uint8_t *result_buffer, lr1110_wifi_result_interface_t result_structures)
     Parse basic MAC - type - channel result.
     
    static uint8_t lr1110_wifi_get_result_size_from_format (const lr1110_wifi_result_format_t format)
     Share the size of a result format. More...
     
    static lr1110_hal_status_t lr1110_wifi_read_results_helper (const void *context, const uint8_t start_index, const uint8_t n_elem, uint8_t *buffer, const lr1110_wifi_result_format_t result_format)
     Fetch results from the radio after a successful Wi-Fi passive scan. More...
     
    -static void lr1110_wifi_read_mac_address_from_buffer (const uint8_t *buffer, const uint16_t index_in_buffer, lr1110_wifi_mac_address_t mac_address)
     Extract Wi-Fi MAC address from a buffer.
     
    static uint8_t lr1110_wifi_get_format_code (const lr1110_wifi_result_format_t format)
     Share the format code corresponding to a result format. More...
     
    lr1110_status_t lr1110_wifi_scan (const void *context, const lr1110_wifi_signal_type_scan_t signal_type, const lr1110_wifi_channel_mask_t channels, const lr1110_wifi_mode_t scan_mode, const uint8_t max_results, const uint8_t nb_scan_per_channel, const uint16_t timeout_in_ms, const bool abort_on_timeout)
     Start a Wi-Fi passive scan operation. More...
     
    lr1110_status_t lr1110_wifi_search_country_code (const void *context, const lr1110_wifi_channel_mask_t channels_mask, const uint8_t nb_max_results, const uint8_t nb_scan_per_channel, const uint16_t timeout_in_ms, const bool abort_on_timeout)
     Start a Wi-Fi passive scan for country codes extraction. More...
     
    lr1110_status_t lr1110_wifi_scan_time_limit (const void *radio, const lr1110_wifi_signal_type_scan_t signal_type, const lr1110_wifi_channel_mask_t channels, const lr1110_wifi_mode_t scan_mode, const uint8_t max_results, const uint16_t timeout_per_channel_ms, const uint16_t timeout_per_scan_ms)
     Start a Wi-Fi passive scan operation with duration stop conditions. More...
     
    lr1110_status_t lr1110_wifi_search_country_code_time_limit (const void *radio, const lr1110_wifi_channel_mask_t channels, const uint8_t max_results, const uint16_t timeout_per_channel_ms, const uint16_t timeout_per_scan_ms)
     Start a Wi-Fi passive scan for country codes extraction with duration stop conditions. More...
     
    lr1110_status_t lr1110_wifi_get_nb_results (const void *context, uint8_t *nb_results)
     Returns the number of results currently available in LR1110. More...
     
    lr1110_status_t lr1110_wifi_read_basic_complete_results (const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_basic_complete_result_t *results)
     Read basic complete results. More...
     
    lr1110_status_t lr1110_wifi_read_basic_mac_type_channel_results (const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_basic_mac_type_channel_result_t *results)
     Read basic MAC, Wi-Fi type and channel results. More...
     
    lr1110_status_t lr1110_wifi_read_extended_full_results (const void *radio, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_extended_full_result_t *results)
     Read extended complete results. More...
     
    lr1110_status_t lr1110_wifi_reset_cumulative_timing (const void *context)
     Reset the internal counters of cumulative timing. More...
     
    lr1110_status_t lr1110_wifi_read_cumulative_timing (const void *context, lr1110_wifi_cumulative_timings_t *timing)
     Read the internal counters of cumulative timing. More...
     
    lr1110_status_t lr1110_wifi_get_nb_country_code_results (const void *context, uint8_t *country_result_size)
     Get size of country code search results. More...
     
    lr1110_status_t lr1110_wifi_read_country_code_results (const void *context, const uint8_t start_result_index, const uint8_t nb_country_results, lr1110_wifi_country_code_t *country_code_results)
     Read country code results. More...
     
    lr1110_status_t lr1110_wifi_cfg_timestamp_ap_phone (const void *context, uint32_t timestamp_in_s)
     Configure the timestamp used to discriminate mobile access points from gateways. More...
     
    lr1110_status_t lr1110_wifi_read_version (const void *context, lr1110_wifi_version_t *wifi_version)
     Get the internal wifi firmware version. More...
     
    uint8_t lr1110_wifi_get_nb_results_max_per_chunk (void)
     Return the maximal number of results to read per SPI communication. More...
     
    void lr1110_wifi_parse_channel_info (const lr1110_wifi_channel_info_byte_t channel_info, lr1110_wifi_channel_t *channel, bool *rssi_validity, lr1110_wifi_mac_origin_t *mac_origin_estimation)
     Retreive channel information from channel info byte. More...
     
    lr1110_wifi_channel_t lr1110_wifi_extract_channel_from_info_byte (const lr1110_wifi_channel_info_byte_t channel_info)
     Helper method to retrieve channel from channel info byte. More...
     
    void lr1110_wifi_parse_frame_type_info (const lr1110_wifi_frame_type_info_byte_t frame_type_info, lr1110_wifi_frame_type_t *frame_type, lr1110_wifi_frame_sub_type_t *frame_sub_type, bool *to_ds, bool *from_ds)
     Retrieve the Frame Type, Frame Subtype, To/From DS fields from a frame info byte. More...
     
    void lr1110_wifi_parse_data_rate_info (const lr1110_wifi_datarate_info_byte_t data_rate_info, lr1110_wifi_signal_type_result_t *wifi_signal_type, lr1110_wifi_datarate_t *wifi_data_rate)
     Retrieve the data rate information from data rate info byte. More...
     
    lr1110_wifi_signal_type_result_t lr1110_wifi_extract_signal_type_from_data_rate_info (const lr1110_wifi_datarate_info_byte_t data_rate_info)
     Helper method to retrieve the signal type from data rate info byte. More...
     
    bool lr1110_wifi_is_well_formed_utf8_byte_sequence (const uint8_t *buffer, const uint8_t length)
     Helper function to check if a buffer is a well-formed UTF-8 byte sequence. More...
     
    static void generic_results_interpreter (const uint8_t n_result_to_parse, const uint8_t index_result_start_writing, const uint8_t *buffer, lr11xx_wifi_result_interface_t result_interface, const lr11xx_wifi_result_format_t format_code)
     Propagate the result buffer interpretation depending on the format_code selected. More...
     
    +static void interpret_basic_complete_result_from_buffer (const uint8_t nb_results, const uint8_t index_result_start_writing, const uint8_t *buffer, lr11xx_wifi_basic_complete_result_t *result)
     Parse basic complete result.
     
    +static void interpret_basic_mac_type_channel_result_from_buffer (const uint8_t nb_results, const uint8_t index_result_start_writing, const uint8_t *buffer, lr11xx_wifi_basic_mac_type_channel_result_t *result)
     Parse basic MAC - type - channel result.
     
    +static void interpret_extended_full_result_from_buffer (const uint8_t nb_results, const uint8_t index_result_start_writing, const uint8_t *buffer, lr11xx_wifi_extended_full_result_t *result)
     Parse extended full result.
     
    +static lr11xx_status_t fetch_and_aggregate_all_results (const void *context, const uint8_t index_result_start, const uint8_t nb_results, const uint8_t nb_results_per_chunk_max, const lr11xx_wifi_result_format_t result_format_code, uint8_t *result_buffer, lr11xx_wifi_result_interface_t result_structures)
     Parse basic MAC - type - channel result.
     
    static uint8_t lr11xx_wifi_get_result_size_from_format (const lr11xx_wifi_result_format_t format)
     Share the size of a result format. More...
     
    static lr11xx_hal_status_t lr11xx_wifi_read_results_helper (const void *context, const uint8_t start_index, const uint8_t n_elem, uint8_t *buffer, const lr11xx_wifi_result_format_t result_format)
     Fetch results from the radio after a successful Wi-Fi passive scan. More...
     
    +static void lr11xx_wifi_read_mac_address_from_buffer (const uint8_t *buffer, const uint16_t index_in_buffer, lr11xx_wifi_mac_address_t mac_address)
     Extract Wi-Fi MAC address from a buffer.
     
    static uint8_t lr11xx_wifi_get_format_code (const lr11xx_wifi_result_format_t format)
     Share the format code corresponding to a result format. More...
     
    lr11xx_status_t lr11xx_wifi_scan (const void *context, const lr11xx_wifi_signal_type_scan_t signal_type, const lr11xx_wifi_channel_mask_t channels, const lr11xx_wifi_mode_t scan_mode, const uint8_t max_results, const uint8_t nb_scan_per_channel, const uint16_t timeout_in_ms, const bool abort_on_timeout)
     Start a Wi-Fi passive scan operation. More...
     
    lr11xx_status_t lr11xx_wifi_search_country_code (const void *context, const lr11xx_wifi_channel_mask_t channels_mask, const uint8_t nb_max_results, const uint8_t nb_scan_per_channel, const uint16_t timeout_in_ms, const bool abort_on_timeout)
     Start a Wi-Fi passive scan for country codes extraction. More...
     
    lr11xx_status_t lr11xx_wifi_scan_time_limit (const void *radio, const lr11xx_wifi_signal_type_scan_t signal_type, const lr11xx_wifi_channel_mask_t channels, const lr11xx_wifi_mode_t scan_mode, const uint8_t max_results, const uint16_t timeout_per_channel_ms, const uint16_t timeout_per_scan_ms)
     Start a Wi-Fi passive scan operation with duration stop conditions. More...
     
    lr11xx_status_t lr11xx_wifi_search_country_code_time_limit (const void *radio, const lr11xx_wifi_channel_mask_t channels, const uint8_t max_results, const uint16_t timeout_per_channel_ms, const uint16_t timeout_per_scan_ms)
     Start a Wi-Fi passive scan for country codes extraction with duration stop conditions. More...
     
    lr11xx_status_t lr11xx_wifi_get_nb_results (const void *context, uint8_t *nb_results)
     Returns the number of results currently available in LR11XX. More...
     
    lr11xx_status_t lr11xx_wifi_read_basic_complete_results (const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_basic_complete_result_t *results)
     Read basic complete results. More...
     
    lr11xx_status_t lr11xx_wifi_read_basic_mac_type_channel_results (const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_basic_mac_type_channel_result_t *results)
     Read basic MAC, Wi-Fi type and channel results. More...
     
    lr11xx_status_t lr11xx_wifi_read_extended_full_results (const void *radio, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_extended_full_result_t *results)
     Read extended complete results. More...
     
    lr11xx_status_t lr11xx_wifi_reset_cumulative_timing (const void *context)
     Reset the internal counters of cumulative timing. More...
     
    lr11xx_status_t lr11xx_wifi_read_cumulative_timing (const void *context, lr11xx_wifi_cumulative_timings_t *timing)
     Read the internal counters of cumulative timing. More...
     
    lr11xx_status_t lr11xx_wifi_get_nb_country_code_results (const void *context, uint8_t *country_result_size)
     Get size of country code search results. More...
     
    lr11xx_status_t lr11xx_wifi_read_country_code_results (const void *context, const uint8_t start_result_index, const uint8_t nb_country_results, lr11xx_wifi_country_code_t *country_code_results)
     Read country code results. More...
     
    lr11xx_status_t lr11xx_wifi_cfg_timestamp_ap_phone (const void *context, uint32_t timestamp_in_s)
     Configure the timestamp used to discriminate mobile access points from gateways. More...
     
    lr11xx_status_t lr11xx_wifi_read_version (const void *context, lr11xx_wifi_version_t *wifi_version)
     Get the internal wifi firmware version. More...
     
    uint8_t lr11xx_wifi_get_nb_results_max_per_chunk (void)
     Return the maximal number of results to read per SPI communication. More...
     
    void lr11xx_wifi_parse_channel_info (const lr11xx_wifi_channel_info_byte_t channel_info, lr11xx_wifi_channel_t *channel, bool *rssi_validity, lr11xx_wifi_mac_origin_t *mac_origin_estimation)
     Retreive channel information from channel info byte. More...
     
    lr11xx_wifi_channel_t lr11xx_wifi_extract_channel_from_info_byte (const lr11xx_wifi_channel_info_byte_t channel_info)
     Helper method to retrieve channel from channel info byte. More...
     
    void lr11xx_wifi_parse_frame_type_info (const lr11xx_wifi_frame_type_info_byte_t frame_type_info, lr11xx_wifi_frame_type_t *frame_type, lr11xx_wifi_frame_sub_type_t *frame_sub_type, bool *to_ds, bool *from_ds)
     Retrieve the Frame Type, Frame Subtype, To/From DS fields from a frame info byte. More...
     
    void lr11xx_wifi_parse_data_rate_info (const lr11xx_wifi_datarate_info_byte_t data_rate_info, lr11xx_wifi_signal_type_result_t *wifi_signal_type, lr11xx_wifi_datarate_t *wifi_data_rate)
     Retrieve the data rate information from data rate info byte. More...
     
    lr11xx_wifi_signal_type_result_t lr11xx_wifi_extract_signal_type_from_data_rate_info (const lr11xx_wifi_datarate_info_byte_t data_rate_info)
     Helper method to retrieve the signal type from data rate info byte. More...
     
    uint64_t lr11xx_wifi_get_consumption (lr11xx_system_reg_mode_t regulator, lr11xx_wifi_cumulative_timings_t timing)
     Compute the power consumption in uAh based on the cumulative timing. More...
     
    bool lr11xx_wifi_is_well_formed_utf8_byte_sequence (const uint8_t *buffer, const uint8_t length)
     Helper function to check if a buffer is a well-formed UTF-8 byte sequence. More...
     
    bool lr11xx_wifi_are_scan_mode_result_format_compatible (lr11xx_wifi_mode_t scan_mode, lr11xx_wifi_result_format_t result_format)
     Check that Wi-Fi scan mode and result format are compatible. More...
     

    Detailed Description

    -

    Wi-Fi passive scan driver implementation for LR1110.

    +

    Wi-Fi passive scan driver implementation for LR11XX.

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • @@ -458,7 +476,25 @@
    • Neither the name of the Semtech corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

    NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    -

    Enumeration Type Documentation

    +

    Macro Definition Documentation

    + +

    ◆ LR11XX_WIFI_CORRELATION_UA

    + +
    +
    + + + + +
    #define LR11XX_WIFI_CORRELATION_UA   ( 12000 )
    +
    + +

    Wi-Fi scan power consumption.

    +
    Note
    these numbers are given for information, it should be modified according to the used hardware.
    + +
    +
    +

    Enumeration Type Documentation

    ◆ anonymous enum

    @@ -473,47 +509,47 @@

    -EnumeratorLR1110_GNSS_SET_CONSTELLATION_OC 

    Set the constellation to use.

    +EnumeratorLR11XX_GNSS_SET_CONSTELLATION_OC 

    Set the constellation to use.

    -LR1110_GNSS_READ_CONSTELLATION_OC 

    Read the used constellations.

    +LR11XX_GNSS_READ_CONSTELLATION_OC 

    Read the used constellations.

    -LR1110_GNSS_SET_ALMANAC_UPDATE_OC 

    Set almanac update configuration.

    +LR11XX_GNSS_SET_ALMANAC_UPDATE_OC 

    Set almanac update configuration.

    -LR1110_GNSS_READ_ALMANAC_UPDATE_OC 

    Read the almanac update configuration.

    +LR11XX_GNSS_READ_ALMANAC_UPDATE_OC 

    Read the almanac update configuration.

    -LR1110_GNSS_READ_FW_VERSION_OC 

    Read the firmware version.

    +LR11XX_GNSS_READ_FW_VERSION_OC 

    Read the firmware version.

    -LR1110_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

    Read the supported constellations.

    +LR11XX_GNSS_READ_SUPPORTED_CONSTELLATION_OC 

    Read the supported constellations.

    -LR1110_GNSS_SET_SCAN_MODE_OC 

    Define single or double capture.

    +LR11XX_GNSS_SET_SCAN_MODE_OC 

    Define single or double capture.

    -LR1110_GNSS_SCAN_AUTONOMOUS_OC 

    Launch an autonomous scan.

    +LR11XX_GNSS_SCAN_AUTONOMOUS_OC 

    Launch an autonomous scan.

    -LR1110_GNSS_SCAN_ASSISTED_OC 

    Launch an assisted scan.

    +LR11XX_GNSS_SCAN_ASSISTED_OC 

    Launch an assisted scan.

    -LR1110_GNSS_SCAN_GET_RES_SIZE_OC 

    Get the size of the output payload.

    +LR11XX_GNSS_SCAN_GET_RES_SIZE_OC 

    Get the size of the output payload.

    -LR1110_GNSS_SCAN_READ_RES_OC 

    Read the byte stream.

    +LR11XX_GNSS_SCAN_READ_RES_OC 

    Read the byte stream.

    -LR1110_GNSS_ALMANAC_UPDATE_OC 

    Update the almanac.

    +LR11XX_GNSS_ALMANAC_UPDATE_OC 

    Update the almanac.

    -LR1110_GNSS_ALMANAC_READ_OC 

    Read all almanacs.

    +LR11XX_GNSS_ALMANAC_READ_OC 

    Read all almanacs.

    -LR1110_GNSS_SET_ASSISTANCE_POSITION_OC 

    Set the assistance position.

    +LR11XX_GNSS_SET_ASSISTANCE_POSITION_OC 

    Set the assistance position.

    -LR1110_GNSS_READ_ASSISTANCE_POSITION_OC 

    Read the assistance position.

    +LR11XX_GNSS_READ_ASSISTANCE_POSITION_OC 

    Read the assistance position.

    -LR1110_GNSS_PUSH_SOLVER_MSG_OC 

    Push messages coming from the solver.

    +LR11XX_GNSS_PUSH_SOLVER_MSG_OC 

    Push messages coming from the solver.

    -LR1110_GNSS_PUSH_DM_MSG_OC 

    Push messages coming from the device management.

    +LR11XX_GNSS_PUSH_DM_MSG_OC 

    Push messages coming from the device management.

    -LR1110_GNSS_GET_CONTEXT_STATUS_OC 

    Read the context.

    +LR11XX_GNSS_GET_CONTEXT_STATUS_OC 

    Read the context.

    -LR1110_GNSS_GET_NB_SATELLITES_OC 

    Get the number of satellites detected during a scan.

    +LR11XX_GNSS_GET_NB_SATELLITES_OC 

    Get the number of satellites detected during a scan.

    -LR1110_GNSS_GET_SATELLITES_OC 

    Get the list of satellites detected during a scan.

    +LR11XX_GNSS_GET_SATELLITES_OC 

    Get the list of satellites detected during a scan.

    -LR1110_GNSS_GET_TIMINGS_OC 

    Get the time spent in signal acquisition and analysis.

    +LR11XX_GNSS_GET_TIMINGS_OC 

    Get the time spent in signal acquisition and analysis.

    @@ -600,8 +636,8 @@

    -

    ◆ generic_results_interpreter()

    + +

    ◆ generic_results_interpreter()

    - -

    ◆ lr1110_wifi_get_result_size_from_format()

    + +

    ◆ lr11xx_wifi_get_result_size_from_format()

    @@ -668,9 +703,9 @@

    - + - + @@ -687,8 +722,8 @@

    -

    ◆ lr1110_wifi_read_results_helper()

    + +

    ◆ lr11xx_wifi_read_results_helper()

    @@ -697,7 +732,7 @@

    static uint8_t lr1110_wifi_get_result_size_from_format static uint8_t lr11xx_wifi_get_result_size_from_format (const lr1110_wifi_result_format_t const lr11xx_wifi_result_format_t  format)
    - + @@ -723,7 +758,7 @@

    - + @@ -744,8 +779,8 @@

    -

    ◆ lr1110_wifi_get_format_code()

    + +

    ◆ lr11xx_wifi_get_format_code()

    @@ -754,9 +789,9 @@

    static lr1110_hal_status_t lr1110_wifi_read_results_helper static lr11xx_hal_status_t lr11xx_wifi_read_results_helper ( const void *  context, const lr1110_wifi_result_format_t const lr11xx_wifi_result_format_t  result_format 
    - + - + @@ -773,14 +808,14 @@

    -

    ◆ lr1110_wifi_scan()

    + +

    ◆ lr11xx_wifi_scan()

    static uint8_t lr1110_wifi_get_format_code static uint8_t lr11xx_wifi_get_format_code (const lr1110_wifi_result_format_t const lr11xx_wifi_result_format_t  format)
    - + @@ -788,19 +823,19 @@

    - + - + - + @@ -836,12 +871,12 @@

    Start a Wi-Fi passive scan operation.

    -

    During the complete passive scan operation, the LR1110 remains busy and cannot receive any commands. Using this command DOES reset the results already obtained by previous passive scan operations.

    -

    The result can be read at the end of the passive scan issuing the command lr1110_wifi_get_nb_results (to get the number of results to read) and lr1110_wifi_read_basic_complete_results or lr1110_wifi_read_basic_mac_type_channel_results to actually get the result bytes.

    +

    During the complete passive scan operation, the LR11XX remains busy and cannot receive any commands. Using this command DOES reset the results already obtained by previous passive scan operations.

    +

    The result can be read at the end of the passive scan issuing the command lr11xx_wifi_get_nb_results (to get the number of results to read) and lr11xx_wifi_read_basic_complete_results or lr11xx_wifi_read_basic_mac_type_channel_results to actually get the result bytes.

    Parameters

    lr1110_status_t lr1110_wifi_scan lr11xx_status_t lr11xx_wifi_scan ( const void *  context, const lr1110_wifi_signal_type_scan_t const lr11xx_wifi_signal_type_scan_t  signal_type,
    const lr1110_wifi_channel_mask_t const lr11xx_wifi_channel_mask_t  channels,
    const lr1110_wifi_mode_t const lr11xx_wifi_mode_t  scan_mode,
    - + @@ -852,18 +887,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_wifi_read_basic_complete_results, lr1110_wifi_read_basic_mac_type_channel_results
    +
    See also
    lr11xx_wifi_read_basic_complete_results, lr11xx_wifi_read_basic_mac_type_channel_results
    - -

    ◆ lr1110_wifi_search_country_code()

    + +

    ◆ lr11xx_wifi_search_country_code()

    [in]contextChip implementation context
    [in]signal_typeThe type of Wi-Fi Signals to scan for. If LR1110_WIFI_TYPE_SCAN_B_G_N is selected, the LR1110 already starts by scanning all selected channels for Wi-Fi signals B. Then the LR1110 scans all selected channels for Wi-Fi signals G/N.
    [in]signal_typeThe type of Wi-Fi Signals to scan for. If LR11XX_WIFI_TYPE_SCAN_B_G_N is selected, the LR11XX already starts by scanning all selected channels for Wi-Fi signals B. Then the LR11XX scans all selected channels for Wi-Fi signals G/N.
    [in]channelsMask of the Wi-Fi channels to scan
    [in]scan_modeScan mode to execute
    [in]max_resultsThe maximal number of results to gather. When this limit is reached, the passive scan automatically stop. Range of allowed values is [1:32]. Note that value 0 is forbidden.
    - + @@ -871,7 +906,7 @@

    - + @@ -924,14 +959,14 @@

    -

    ◆ lr1110_wifi_scan_time_limit()

    + +

    ◆ lr11xx_wifi_scan_time_limit()

    lr1110_status_t lr1110_wifi_search_country_code lr11xx_status_t lr11xx_wifi_search_country_code ( const void *  context, const lr1110_wifi_channel_mask_t const lr11xx_wifi_channel_mask_t  channels_mask,
    - + @@ -939,19 +974,19 @@

    - + - + - + @@ -983,56 +1018,56 @@

    $ Xtal_{precision} $ depends on the crystal used as clock source. If the clock source is configured with 32kHz internal RC, then $ Xtal_{precision} = 1/100 $

    $ T_{offset} $ depends on the $ signal\_type $ and the $scan\_mode$ selected:

      -
    • LR1110_WIFI_TYPE_SCAN_B:
        -
      • if $scan\_mode != LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 2.31 ms
      • -
      • if $scan\_mode == LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 9.59 ms
      • +
      • LR11XX_WIFI_TYPE_SCAN_B:
          +
        • if $scan\_mode != LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 2.31 ms
        • +
        • if $scan\_mode == LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 9.59 ms
      • -
      • LR1110_WIFI_TYPE_SCAN_G:
          -
        • if $scan\_mode != LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 52.55 ms
        • -
        • if $scan\_mode == LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: N/A
        • +
        • LR11XX_WIFI_TYPE_SCAN_G:
            +
          • if $scan\_mode != LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 52.55 ms
          • +
          • if $scan\_mode == LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: N/A
        -

        For signal type being LR1110_WIFI_TYPE_SCAN_B_G_N:

        +

        For signal type being LR11XX_WIFI_TYPE_SCAN_B_G_N:

        $ T_{max} = 2 \times N_{channel} \times (1 + Xtal_{precision})timeout\_per\_channel + T_{offset} $

        $ T_{offset} $ depends on the $scan\_mode$ selected:

          -
        • $scan\_mode != LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 54.86 ms
        • -
        • $scan\_mode == LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 9.59 ms.
        • +
        • $scan\_mode != LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 54.86 ms
        • +
        • $scan\_mode == LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 9.59 ms.
        -
        Note
        With $scan\_mode != LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$ the T_offset is actually the worst case of Wi-Fi type B and Wi-Fi type G/N. Moreover, the Wi-Fi types G and N are scanned within the same steps (it is not two different scans). So the T_offset is the addition of 2.31 + 52.55 = 54.86.
        +
        Note
        With $scan\_mode != LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$ the T_offset is actually the worst case of Wi-Fi type B and Wi-Fi type G/N. Moreover, the Wi-Fi types G and N are scanned within the same steps (it is not two different scans). So the T_offset is the addition of 2.31 + 52.55 = 54.86.
        -With $scan\_mode == LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$, only Wi-Fi types B can be scanned. So scans for Wi-Fi types G/N are silently discarded. Therefore the T_offset is the same as for scan with Wi-Fi type B.
        +With $scan\_mode == LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$, only Wi-Fi types B can be scanned. So scans for Wi-Fi types G/N are silently discarded. Therefore the T_offset is the same as for scan with Wi-Fi type B.
        Parameters

    lr1110_status_t lr1110_wifi_scan_time_limit lr11xx_status_t lr11xx_wifi_scan_time_limit ( const void *  context, const lr1110_wifi_signal_type_scan_t const lr11xx_wifi_signal_type_scan_t  signal_type,
    const lr1110_wifi_channel_mask_t const lr11xx_wifi_channel_mask_t  channels,
    const lr1110_wifi_mode_t const lr11xx_wifi_mode_t  scan_mode,
    - + - +
    [in]contextChip implementation context
    [in]signal_typeThe type of Wi-Fi Signals to scan for. If LR1110_WIFI_TYPE_SCAN_B_G_N is selected, the LR1110 already starts by scanning all selected channels for Wi-Fi signals B. Then the LR1110 scans all selected channels for Wi-Fi signals G/N.
    [in]signal_typeThe type of Wi-Fi Signals to scan for. If LR11XX_WIFI_TYPE_SCAN_B_G_N is selected, the LR11XX already starts by scanning all selected channels for Wi-Fi signals B. Then the LR11XX scans all selected channels for Wi-Fi signals G/N.
    [in]channelsMask of the Wi-Fi channels to scan
    [in]scan_modeScan mode to execute
    [in]max_resultsThe maximal number of results to gather. When this limit is reached, the passive scan automatically stop. Maximal value is 32
    [in]timeout_per_channel_msThe time to spend scanning one channel. Expressed in ms. Value 0 is forbidden and will result in the raise of WIFI_SCAN_DONE interrupt, with stat1.command_status being set to LR1110_SYSTEM_CMD_STATUS_PERR
    [in]timeout_per_channel_msThe time to spend scanning one channel. Expressed in ms. Value 0 is forbidden and will result in the raise of WIFI_SCAN_DONE interrupt, with stat1.command_status being set to LR11XX_SYSTEM_CMD_STATUS_PERR
    [in]timeout_per_scan_msThe maximal time to spend in preamble detection for each single scan. The time spent on preamble search is reset at each new preamble search. If the time spent on preamble search reach this timeout, the scan on the current channel stops and start on next channel. If set to 0, the command will keep listening until exhaustion of timeout_per_channel_ms or until nb_max_results is reached. Expressed in ms. Range of allowed values is [0:65535].
    Returns
    Operation status
    -
    See also
    lr1110_wifi_read_basic_results, lr1110_wifi_read_extended_results
    +
    See also
    lr11xx_wifi_read_basic_results, lr11xx_wifi_read_extended_results

    - -

    ◆ lr1110_wifi_search_country_code_time_limit()

    + +

    ◆ lr11xx_wifi_search_country_code_time_limit()

    - + @@ -1040,7 +1075,7 @@

    - + @@ -1080,7 +1115,7 @@

    [in]

    - +
    lr1110_status_t lr1110_wifi_search_country_code_time_limit lr11xx_status_t lr11xx_wifi_search_country_code_time_limit ( const void *  context, const lr1110_wifi_channel_mask_t const lr11xx_wifi_channel_mask_t  channels_mask,
    contextChip implementation context
    [in]channels_maskMask of the Wi-Fi channels to scan
    [in]nb_max_resultsThe maximum number of country code to gather. When this limit is reached, the passive scan automatically stops. Maximal value is 32
    [in]timeout_per_channel_msThe time to spend scanning one channel. Expressed in ms. Value 0 is forbidden and will result in the raise of WIFI_SCAN_DONE interrupt, with stat1.command_status being set to LR1110_SYSTEM_CMD_STATUS_PERR
    [in]timeout_per_channel_msThe time to spend scanning one channel. Expressed in ms. Value 0 is forbidden and will result in the raise of WIFI_SCAN_DONE interrupt, with stat1.command_status being set to LR11XX_SYSTEM_CMD_STATUS_PERR
    [in]timeout_per_scan_msThe maximal time to spend in preamble detection for each single scan. The time spent on preamble search is reset at each new preamble search. If the time spent on preamble search reach this timeout, the scan on the current channel stops and start on next channel. If set to 0, the command will keep listening until exhaustion of timeout_per_channel_ms or until nb_max_results is reached. Expressed in ms. Range of allowed values is [0:65535].
    @@ -1089,14 +1124,14 @@

    -

    ◆ lr1110_wifi_get_nb_results()

    + +

    ◆ lr11xx_wifi_get_nb_results()

    - -

    ◆ lr1110_wifi_read_basic_complete_results()

    + +

    ◆ lr11xx_wifi_read_basic_complete_results()

    - + @@ -1156,7 +1191,7 @@

    - + @@ -1168,19 +1203,19 @@

    Read basic complete results.

    -

    This function can be used to fetch all results in a row, or one after the other.

    +

    This function can be used to fetch all results in a row, or one after the other. It corresponds to result format LR11XX_WIFI_RESULT_FORMAT_BASIC_COMPLETE.

    An example of usage to fetch all results in a row is:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    -
    lr1110_wifi_basic_complete_result_t all_results[LR1110_WIFI_MAX_RESULTS] = {0};
    -
    lr1110_wifi_read_basic_complete_results(&radio, 0, nb_results, all_results);
    +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    lr11xx_wifi_basic_complete_result_t all_results[LR11XX_WIFI_MAX_RESULTS] = {0};
    +
    lr11xx_wifi_read_basic_complete_results(&radio, 0, nb_results, all_results);

    On the other hand, fetching result one after the other:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    - +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    for(uint8_t index_result = 0; index_result < nb_results; index_result++){
    -
    lr1110_wifi_read_basic_complete_results(&radio, index_result, 1, &single_results);
    +
    lr11xx_wifi_read_basic_complete_results(&radio, index_result, 1, &single_results);
    // Do something with single_results
    }
    -
    Remarks
    : This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR1110_WIFI_SCAN_MODE_BEACON or LR1110_WIFI_SCAN_MODE_BEACON_AND_PKT.
    +
    Remarks
    This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR11XX_WIFI_SCAN_MODE_BEACON or LR11XX_WIFI_SCAN_MODE_BEACON_AND_PKT. Refer to lr11xx_wifi_are_scan_mode_result_format_compatible to know which scan mode and result format are compatible.
    Parameters

    lr1110_status_t lr1110_wifi_read_basic_complete_results lr11xx_status_t lr11xx_wifi_read_basic_complete_results ( const void *  context, lr1110_wifi_basic_complete_result_tlr11xx_wifi_basic_complete_result_t results 
    @@ -1191,18 +1226,18 @@

    Returns
    Operation status
    -

    /see lr1110_wifi_read_basic_mac_type_channel_results, lr1110_wifi_read_extended_full_results

    +
    See also
    lr11xx_wifi_are_scan_mode_result_format_compatible, lr11xx_wifi_read_basic_mac_type_channel_results, lr11xx_wifi_read_extended_full_results
    - -

    ◆ lr1110_wifi_read_basic_mac_type_channel_results()

    + +

    ◆ lr11xx_wifi_read_basic_mac_type_channel_results()

    [in]radioRadio abstraction
    - + @@ -1222,7 +1257,7 @@

    - + @@ -1234,19 +1269,19 @@

    Read basic MAC, Wi-Fi type and channel results.

    -

    This function can be used to fetch all results in a row, or one after the other.

    +

    This function can be used to fetch all results in a row, or one after the other. It corresponds to result format LR11XX_WIFI_RESULT_FORMAT_BASIC_MAC_TYPE_CHANNEL.

    An example of usage to fetch all results in a row is:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    -
    lr1110_wifi_basic_mac_type_channel_result_t all_results[LR1110_WIFI_MAX_RESULTS] = {0};
    -
    lr1110_wifi_read_basic_mac_type_channel_results(&radio, 0, nb_results, all_results);
    +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    lr11xx_wifi_basic_mac_type_channel_result_t all_results[LR11XX_WIFI_MAX_RESULTS] = {0};
    +
    lr11xx_wifi_read_basic_mac_type_channel_results(&radio, 0, nb_results, all_results);

    On the other hand, fetching result one after the other:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    - +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    for(uint8_t index_result = 0; index_result < nb_results; index_result++){
    -
    lr1110_wifi_read_basic_mac_type_channel_results(&radio, index_result, 1, &single_results);
    +
    lr11xx_wifi_read_basic_mac_type_channel_results(&radio, index_result, 1, &single_results);
    // Do something with single_results
    }
    -
    Remarks
    : This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR1110_WIFI_SCAN_MODE_BEACON or LR1110_WIFI_SCAN_MODE_BEACON_AND_PKT.
    +
    Remarks
    This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR11XX_WIFI_SCAN_MODE_BEACON or LR11XX_WIFI_SCAN_MODE_BEACON_AND_PKT. Refer to lr11xx_wifi_are_scan_mode_result_format_compatible to know which scan mode and result format are compatible.
    Parameters

    lr1110_status_t lr1110_wifi_read_basic_mac_type_channel_results lr11xx_status_t lr11xx_wifi_read_basic_mac_type_channel_results ( const void *  context, lr1110_wifi_basic_mac_type_channel_result_tlr11xx_wifi_basic_mac_type_channel_result_t results 
    @@ -1257,18 +1292,18 @@

    Returns
    Operation status
    -

    /see lr1110_wifi_read_basic_complete_results, lr1110_wifi_read_extended_full_results

    +
    See also
    lr11xx_wifi_are_scan_mode_result_format_compatible, lr11xx_wifi_read_basic_complete_results, lr11xx_wifi_read_extended_full_results
    - -

    ◆ lr1110_wifi_read_extended_full_results()

    + +

    ◆ lr11xx_wifi_read_extended_full_results()

    [in]radioRadio abstraction
    - + @@ -1288,7 +1323,7 @@

    - + @@ -1300,19 +1335,19 @@

    Read extended complete results.

    -

    This function can be used to fetch all results in a row, or one after the other.

    +

    This function can be used to fetch all results in a row, or one after the other. It corresponds to result format LR11XX_WIFI_RESULT_FORMAT_EXTENDED_FULL.

    An example of usage to fetch all results in a row is:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    -
    lr1110_wifi_extended_full_result_t all_results[LR1110_WIFI_MAX_RESULTS] = {0};
    -
    lr1110_wifi_read_extended_full_results(&radio, 0, nb_results, all_results);
    +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    lr11xx_wifi_extended_full_result_t all_results[LR11XX_WIFI_MAX_RESULTS] = {0};
    +
    lr11xx_wifi_read_extended_full_results(&radio, 0, nb_results, all_results);

    On the other hand, fetching result one after the other:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    - +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    for(uint8_t index_result = 0; index_result < nb_results; index_result++){
    -
    lr1110_wifi_read_extended_full_results(&radio, index_result, 1, &single_results);
    +
    lr11xx_wifi_read_extended_full_results(&radio, index_result, 1, &single_results);
    // Do something with single_results
    }
    -
    Remarks
    : This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR1110_WIFI_SCAN_MODE_FULL_BEACON.
    +
    Remarks
    This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR11XX_WIFI_SCAN_MODE_FULL_BEACON. Refer to lr11xx_wifi_are_scan_mode_result_format_compatible to know which scan mode and result format are compatible.
    Parameters

    lr1110_status_t lr1110_wifi_read_extended_full_results lr11xx_status_t lr11xx_wifi_read_extended_full_results ( const void *  radio, lr1110_wifi_extended_full_result_tlr11xx_wifi_extended_full_result_t results 
    @@ -1323,18 +1358,18 @@

    Returns
    Operation status
    -

    /see lr1110_wifi_read_basic_complete_results, lr1110_wifi_read_basic_mac_type_channel_results

    +
    See also
    lr11xx_wifi_are_scan_mode_result_format_compatible, lr11xx_wifi_read_basic_complete_results, lr11xx_wifi_read_basic_mac_type_channel_results
    - -

    ◆ lr1110_wifi_reset_cumulative_timing()

    + +

    ◆ lr11xx_wifi_reset_cumulative_timing()

    [in]radioRadio abstraction
    - + @@ -1354,14 +1389,14 @@

    -

    ◆ lr1110_wifi_read_cumulative_timing()

    + +

    ◆ lr11xx_wifi_read_cumulative_timing()

    lr1110_status_t lr1110_wifi_reset_cumulative_timing lr11xx_status_t lr11xx_wifi_reset_cumulative_timing ( const void *  context)
    - + @@ -1369,7 +1404,7 @@

    - + @@ -1392,14 +1427,14 @@

    -

    ◆ lr1110_wifi_get_nb_country_code_results()

    + +

    ◆ lr11xx_wifi_get_nb_country_code_results()

    lr1110_status_t lr1110_wifi_read_cumulative_timing lr11xx_status_t lr11xx_wifi_read_cumulative_timing ( const void *  context, lr1110_wifi_cumulative_timings_tlr11xx_wifi_cumulative_timings_t timing 
    - + @@ -1430,14 +1465,14 @@

    -

    ◆ lr1110_wifi_read_country_code_results()

    + +

    ◆ lr11xx_wifi_read_country_code_results()

    lr1110_status_t lr1110_wifi_get_nb_country_code_results lr11xx_status_t lr11xx_wifi_get_nb_country_code_results ( const void *  context,
    - + @@ -1457,7 +1492,7 @@

    - + @@ -1469,29 +1504,29 @@

    Read country code results.

    -

    The total number of country code results to read is obtained from a previous call to lr1110_wifi_get_nb_country_code_results

    +

    The total number of country code results to read is obtained from a previous call to lr11xx_wifi_get_nb_country_code_results

    Parameters

    lr1110_status_t lr1110_wifi_read_country_code_results lr11xx_status_t lr11xx_wifi_read_country_code_results ( const void *  context, lr1110_wifi_country_code_tlr11xx_wifi_country_code_t country_code_results 
    - +
    [in]contextChip implementation context
    [in]start_result_indexThe result index to start reading results from
    [in]nb_country_resultsNumber of country code results to read
    [out]country_code_resultsAn array of lr1110_wifi_country_code_t to be filled. It is up to the application to ensure this array is big enough to hold nb_country_results elements
    [out]country_code_resultsAn array of lr11xx_wifi_country_code_t to be filled. It is up to the application to ensure this array is big enough to hold nb_country_results elements
    Returns
    Operation status
    -
    See also
    lr1110_wifi_get_nb_country_code_results, lr1110_wifi_search_country_code
    +
    See also
    lr11xx_wifi_get_nb_country_code_results, lr11xx_wifi_search_country_code
    - -

    ◆ lr1110_wifi_cfg_timestamp_ap_phone()

    + +

    ◆ lr11xx_wifi_cfg_timestamp_ap_phone()

    - + @@ -1523,14 +1558,14 @@

    -

    ◆ lr1110_wifi_read_version()

    + +

    ◆ lr11xx_wifi_read_version()

    lr1110_status_t lr1110_wifi_cfg_timestamp_ap_phone lr11xx_status_t lr11xx_wifi_cfg_timestamp_ap_phone ( const void *  context,
    - + @@ -1538,7 +1573,7 @@

    - + @@ -1561,14 +1596,14 @@

    -

    ◆ lr1110_wifi_get_nb_results_max_per_chunk()

    + +

    ◆ lr11xx_wifi_get_nb_results_max_per_chunk()

    lr1110_status_t lr1110_wifi_read_version lr11xx_status_t lr11xx_wifi_read_version ( const void *  context, lr1110_wifi_version_tlr11xx_wifi_version_t wifi_version 
    - + @@ -1578,29 +1613,29 @@

    Return the maximal number of results to read per SPI communication.

    -

    This function DOES NOT communicates with the LR1110. It returns the driver maximal number of Wi-Fi results it can retrieve per SPI communication.

    -
    Remarks
    It is a driver limitation, not a LR1110 limitation, that avoid allocating temporary buffers of size too big when reading Wi-Fi passive scan results.
    -
    See also
    LR1110_WIFI_N_RESULTS_MAX_PER_CHUNK
    +

    This function DOES NOT communicates with the LR11XX. It returns the driver maximal number of Wi-Fi results it can retrieve per SPI communication.

    +
    Remarks
    It is a driver limitation, not a LR11XX limitation, that avoid allocating temporary buffers of size too big when reading Wi-Fi passive scan results.
    +
    See also
    LR11XX_WIFI_N_RESULTS_MAX_PER_CHUNK
    Returns
    The maximal number of results to fetch per SPI calls
    - -

    ◆ lr1110_wifi_parse_channel_info()

    + +

    ◆ lr11xx_wifi_parse_channel_info()

    uint8_t lr1110_wifi_get_nb_results_max_per_chunk uint8_t lr11xx_wifi_get_nb_results_max_per_chunk ( void  )
    - + - + - + @@ -1612,7 +1647,7 @@

    - + @@ -1625,31 +1660,31 @@

    Parameters

    void lr1110_wifi_parse_channel_info void lr11xx_wifi_parse_channel_info (const lr1110_wifi_channel_info_byte_t const lr11xx_wifi_channel_info_byte_t  channel_info,
    lr1110_wifi_channel_tlr11xx_wifi_channel_t channel,
    lr1110_wifi_mac_origin_tlr11xx_wifi_mac_origin_t mac_origin_estimation 
    - +
    [in]channel_infoThe channel info byte to retrieve channel information from. It is obtained from WiFi passive scan result
    [out]channelThe channel of the scanned mac address
    [out]rssi_validityThe validity of the scanned MAC address
    [out]mac_origin_estimationIndicates the estimation of MAC address origin by LR1110
    [out]mac_origin_estimationIndicates the estimation of MAC address origin by LR11XX
    -
    See also
    lr1110_wifi_read_basic_complete_results, lr1110_wifi_read_basic_mac_type_channel_results, lr1110_wifi_cfg_timestamp_ap_phone
    +
    See also
    lr11xx_wifi_read_basic_complete_results, lr11xx_wifi_read_basic_mac_type_channel_results, lr11xx_wifi_cfg_timestamp_ap_phone
    - -

    ◆ lr1110_wifi_extract_channel_from_info_byte()

    + +

    ◆ lr11xx_wifi_extract_channel_from_info_byte()

    - + - + @@ -1664,32 +1699,32 @@

    Returns
    The channel of scanned MAC address
    -
    See also
    lr1110_wifi_parse_channel_info
    +
    See also
    lr11xx_wifi_parse_channel_info
    - -

    ◆ lr1110_wifi_parse_frame_type_info()

    + +

    ◆ lr11xx_wifi_parse_frame_type_info()

    lr1110_wifi_channel_t lr1110_wifi_extract_channel_from_info_byte lr11xx_wifi_channel_t lr11xx_wifi_extract_channel_from_info_byte (const lr1110_wifi_channel_info_byte_t const lr11xx_wifi_channel_info_byte_t  channel_info)
    - + - + - + - + @@ -1740,28 +1775,28 @@

    -

    ◆ lr1110_wifi_parse_data_rate_info()

    + +

    ◆ lr11xx_wifi_parse_data_rate_info()

    void lr1110_wifi_parse_frame_type_info void lr11xx_wifi_parse_frame_type_info (const lr1110_wifi_frame_type_info_byte_t const lr11xx_wifi_frame_type_info_byte_t  frame_type_info,
    lr1110_wifi_frame_type_tlr11xx_wifi_frame_type_t frame_type,
    lr1110_wifi_frame_sub_type_tlr11xx_wifi_frame_sub_type_t frame_sub_type,
    - + - + - + - + @@ -1785,16 +1820,16 @@

    -

    ◆ lr1110_wifi_extract_signal_type_from_data_rate_info()

    + +

    ◆ lr11xx_wifi_extract_signal_type_from_data_rate_info()

    void lr1110_wifi_parse_data_rate_info void lr11xx_wifi_parse_data_rate_info (const lr1110_wifi_datarate_info_byte_t const lr11xx_wifi_datarate_info_byte_t  data_rate_info,
    lr1110_wifi_signal_type_result_tlr11xx_wifi_signal_type_result_t wifi_signal_type,
    lr1110_wifi_datarate_tlr11xx_wifi_datarate_t wifi_data_rate 
    - + - + @@ -1812,14 +1847,52 @@

    -

    ◆ lr1110_wifi_is_well_formed_utf8_byte_sequence()

    + +

    ◆ lr11xx_wifi_get_consumption()

    + +
    +
    +

    lr1110_wifi_signal_type_result_t lr1110_wifi_extract_signal_type_from_data_rate_info lr11xx_wifi_signal_type_result_t lr11xx_wifi_extract_signal_type_from_data_rate_info (const lr1110_wifi_datarate_info_byte_t const lr11xx_wifi_datarate_info_byte_t  data_rate_info)
    + + + + + + + + + + + + + + + + + +
    uint64_t lr11xx_wifi_get_consumption (lr11xx_system_reg_mode_t regulator,
    lr11xx_wifi_cumulative_timings_t timing 
    )
    +
    + +

    Compute the power consumption in uAh based on the cumulative timing.

    +
    Parameters
    + + + +
    [in]regulatorThe regulator used during last Wi-Fi passive scan
    [in]timingCumulative timing structure to use for computation
    +
    +
    +
    Returns
    Current consumption in uAh
    + +
    +
    + +

    ◆ lr11xx_wifi_is_well_formed_utf8_byte_sequence()

    - + @@ -1848,16 +1921,73 @@

    Returns
    The result of the check
    + + +
    +

    ◆ lr11xx_wifi_are_scan_mode_result_format_compatible()

    + +
    +
    +

    bool lr1110_wifi_is_well_formed_utf8_byte_sequence bool lr11xx_wifi_is_well_formed_utf8_byte_sequence ( const uint8_t *  buffer,
    + + + + + + + + + + + + + + + + + +
    bool lr11xx_wifi_are_scan_mode_result_format_compatible (lr11xx_wifi_mode_t scan_mode,
    lr11xx_wifi_result_format_t result_format 
    )
    +
    + +

    Check that Wi-Fi scan mode and result format are compatible.

    +

    The possible combination of Wi-Fi scan modes and result format are the following:

    + + + + + + + + + + + +
    Scan Mode Type/Sub-type selected Corresponding read result function
    LR11XX_WIFI_SCAN_MODE_BEACON Management/Beacon and Management/Probe Response lr11xx_wifi_read_basic_complete_results, lr11xx_wifi_read_basic_mac_type_channel_results
    LR11XX_WIFI_SCAN_MODE_BEACON_AND_PKT Some from Management, Control and Data Types
    LR11XX_WIFI_SCAN_MODE_FULL_BEACON Management/Beacon and Management/Probe Response lr11xx_wifi_read_extended_full_results
    LR11XX_WIFI_SCAN_MODE_UNTIL_SSID Management/Beacon and Management/Probe Response - until SSID field
    +
    Parameters
    + + + +
    scan_modeThe scan mode used when calling the scan API
    result_formatThe result format used when calling the read result API
    +
    +
    +
    Return values
    + + + +
    trueThe scan mode and result format are compatible
    falseThe scan mode and result format are not compatible.
    +
    +
    +
    -
    Basic MAC, type, channel result structure.
    Definition: lr1110_wifi_types.h:320
    -
    Extended full result structure.
    Definition: lr1110_wifi_types.h:339
    -
    lr1110_status_t lr1110_wifi_read_extended_full_results(const void *radio, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_extended_full_result_t *results)
    Read extended complete results.
    Definition: lr1110_wifi.c:366
    -
    Basic complete result structure.
    Definition: lr1110_wifi_types.h:305
    -
    lr1110_status_t lr1110_wifi_read_basic_mac_type_channel_results(const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_basic_mac_type_channel_result_t *results)
    Read basic MAC, Wi-Fi type and channel results.
    Definition: lr1110_wifi.c:350
    -
    lr1110_status_t lr1110_wifi_get_nb_results(const void *context, uint8_t *nb_results)
    Returns the number of results currently available in LR1110.
    Definition: lr1110_wifi.c:324
    -
    lr1110_status_t lr1110_wifi_read_basic_complete_results(const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_basic_complete_result_t *results)
    Read basic complete results.
    Definition: lr1110_wifi.c:335
    +
    lr11xx_status_t lr11xx_wifi_read_basic_complete_results(const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_basic_complete_result_t *results)
    Read basic complete results.
    Definition: lr11xx_wifi.c:344
    +
    Basic complete result structure.
    Definition: lr11xx_wifi_types.h:303
    +
    lr11xx_status_t lr11xx_wifi_read_basic_mac_type_channel_results(const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_basic_mac_type_channel_result_t *results)
    Read basic MAC, Wi-Fi type and channel results.
    Definition: lr11xx_wifi.c:359
    +
    Extended full result structure.
    Definition: lr11xx_wifi_types.h:337
    +
    lr11xx_status_t lr11xx_wifi_read_extended_full_results(const void *radio, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_extended_full_result_t *results)
    Read extended complete results.
    Definition: lr11xx_wifi.c:375
    +
    Basic MAC, type, channel result structure.
    Definition: lr11xx_wifi_types.h:318
    +
    lr11xx_status_t lr11xx_wifi_get_nb_results(const void *context, uint8_t *nb_results)
    Returns the number of results currently available in LR11XX.
    Definition: lr11xx_wifi.c:333

    -

    Wi-Fi passive scan driver definition for LR1110. +

    Wi-Fi passive scan driver definition for LR11XX. More...

    -
    #include "lr1110_regmem.h"
    -#include "lr1110_wifi_types.h"
    -#include "lr1110_types.h"
    +
    #include "lr11xx_regmem.h"
    +#include "lr11xx_wifi_types.h"
    +#include "lr11xx_types.h"
    +#include "lr11xx_system_types.h"
    -Include dependency graph for lr1110_wifi.h:
    +Include dependency graph for lr11xx_wifi.h:
    -
    - - - - - - - +
    + + + + + + + +
    This graph shows which files directly or indirectly include this file:
    -
    - - - +
    + + +
    -

    Go to the source code of this file.

    +

    Go to the source code of this file.

    - - - + + +

    Macros

    #define LR1110_WIFI_N_RESULTS_MAX_PER_CHUNK   LR1110_WIFI_MAX_RESULTS
     The number of results max to fetch per SPI communication with the chip. More...
     
    #define LR11XX_WIFI_N_RESULTS_MAX_PER_CHUNK   LR11XX_WIFI_MAX_RESULTS
     The number of results max to fetch per SPI communication with the chip. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    lr1110_status_t lr1110_wifi_scan (const void *context, const lr1110_wifi_signal_type_scan_t signal_type, const lr1110_wifi_channel_mask_t channels, const lr1110_wifi_mode_t scan_mode, const uint8_t max_results, const uint8_t nb_scan_per_channel, const uint16_t timeout_in_ms, const bool abort_on_timeout)
     Start a Wi-Fi passive scan operation. More...
     
    lr1110_status_t lr1110_wifi_search_country_code (const void *context, const lr1110_wifi_channel_mask_t channels_mask, const uint8_t nb_max_results, const uint8_t nb_scan_per_channel, const uint16_t timeout_in_ms, const bool abort_on_timeout)
     Start a Wi-Fi passive scan for country codes extraction. More...
     
    lr1110_status_t lr1110_wifi_scan_time_limit (const void *context, const lr1110_wifi_signal_type_scan_t signal_type, const lr1110_wifi_channel_mask_t channels, const lr1110_wifi_mode_t scan_mode, const uint8_t max_results, const uint16_t timeout_per_channel_ms, const uint16_t timeout_per_scan_ms)
     Start a Wi-Fi passive scan operation with duration stop conditions. More...
     
    lr1110_status_t lr1110_wifi_search_country_code_time_limit (const void *context, const lr1110_wifi_channel_mask_t channels_mask, const uint8_t nb_max_results, const uint16_t timeout_per_channel_ms, const uint16_t timeout_per_scan_ms)
     Start a Wi-Fi passive scan for country codes extraction with duration stop conditions. More...
     
    lr1110_status_t lr1110_wifi_get_nb_results (const void *context, uint8_t *nb_results)
     Returns the number of results currently available in LR1110. More...
     
    lr1110_status_t lr1110_wifi_read_basic_complete_results (const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_basic_complete_result_t *results)
     Read basic complete results. More...
     
    lr1110_status_t lr1110_wifi_read_basic_mac_type_channel_results (const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_basic_mac_type_channel_result_t *results)
     Read basic MAC, Wi-Fi type and channel results. More...
     
    lr1110_status_t lr1110_wifi_read_extended_full_results (const void *radio, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_extended_full_result_t *results)
     Read extended complete results. More...
     
    lr1110_status_t lr1110_wifi_reset_cumulative_timing (const void *context)
     Reset the internal counters of cumulative timing. More...
     
    lr1110_status_t lr1110_wifi_read_cumulative_timing (const void *context, lr1110_wifi_cumulative_timings_t *timing)
     Read the internal counters of cumulative timing. More...
     
    lr1110_status_t lr1110_wifi_get_nb_country_code_results (const void *context, uint8_t *nb_country_code_results)
     Get size of country code search results. More...
     
    lr1110_status_t lr1110_wifi_read_country_code_results (const void *context, const uint8_t start_result_index, const uint8_t nb_country_results, lr1110_wifi_country_code_t *country_code_results)
     Read country code results. More...
     
    lr1110_status_t lr1110_wifi_cfg_timestamp_ap_phone (const void *context, uint32_t timestamp_in_s)
     Configure the timestamp used to discriminate mobile access points from gateways. More...
     
    lr1110_status_t lr1110_wifi_read_version (const void *context, lr1110_wifi_version_t *wifi_version)
     Get the internal wifi firmware version. More...
     
    void lr1110_wifi_parse_channel_info (const lr1110_wifi_channel_info_byte_t channel_info, lr1110_wifi_channel_t *channel, bool *rssi_validity, lr1110_wifi_mac_origin_t *mac_origin_estimation)
     Retreive channel information from channel info byte. More...
     
    lr1110_wifi_channel_t lr1110_wifi_extract_channel_from_info_byte (const lr1110_wifi_channel_info_byte_t channel_info)
     Helper method to retrieve channel from channel info byte. More...
     
    void lr1110_wifi_parse_frame_type_info (const lr1110_wifi_frame_type_info_byte_t frame_type_info, lr1110_wifi_frame_type_t *frame_type, lr1110_wifi_frame_sub_type_t *frame_sub_type, bool *to_ds, bool *from_ds)
     Retrieve the Frame Type, Frame Subtype, To/From DS fields from a frame info byte. More...
     
    void lr1110_wifi_parse_data_rate_info (const lr1110_wifi_datarate_info_byte_t data_rate_info, lr1110_wifi_signal_type_result_t *wifi_signal_type, lr1110_wifi_datarate_t *wifi_data_rate)
     Retrieve the data rate information from data rate info byte. More...
     
    uint8_t lr1110_wifi_get_nb_results_max_per_chunk (void)
     Return the maximal number of results to read per SPI communication. More...
     
    lr1110_wifi_signal_type_result_t lr1110_wifi_extract_signal_type_from_data_rate_info (const lr1110_wifi_datarate_info_byte_t data_rate_info)
     Helper method to retrieve the signal type from data rate info byte. More...
     
    bool lr1110_wifi_is_well_formed_utf8_byte_sequence (const uint8_t *buffer, const uint8_t length)
     Helper function to check if a buffer is a well-formed UTF-8 byte sequence. More...
     
    lr11xx_status_t lr11xx_wifi_scan (const void *context, const lr11xx_wifi_signal_type_scan_t signal_type, const lr11xx_wifi_channel_mask_t channels, const lr11xx_wifi_mode_t scan_mode, const uint8_t max_results, const uint8_t nb_scan_per_channel, const uint16_t timeout_in_ms, const bool abort_on_timeout)
     Start a Wi-Fi passive scan operation. More...
     
    lr11xx_status_t lr11xx_wifi_search_country_code (const void *context, const lr11xx_wifi_channel_mask_t channels_mask, const uint8_t nb_max_results, const uint8_t nb_scan_per_channel, const uint16_t timeout_in_ms, const bool abort_on_timeout)
     Start a Wi-Fi passive scan for country codes extraction. More...
     
    lr11xx_status_t lr11xx_wifi_scan_time_limit (const void *context, const lr11xx_wifi_signal_type_scan_t signal_type, const lr11xx_wifi_channel_mask_t channels, const lr11xx_wifi_mode_t scan_mode, const uint8_t max_results, const uint16_t timeout_per_channel_ms, const uint16_t timeout_per_scan_ms)
     Start a Wi-Fi passive scan operation with duration stop conditions. More...
     
    lr11xx_status_t lr11xx_wifi_search_country_code_time_limit (const void *context, const lr11xx_wifi_channel_mask_t channels_mask, const uint8_t nb_max_results, const uint16_t timeout_per_channel_ms, const uint16_t timeout_per_scan_ms)
     Start a Wi-Fi passive scan for country codes extraction with duration stop conditions. More...
     
    lr11xx_status_t lr11xx_wifi_get_nb_results (const void *context, uint8_t *nb_results)
     Returns the number of results currently available in LR11XX. More...
     
    lr11xx_status_t lr11xx_wifi_read_basic_complete_results (const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_basic_complete_result_t *results)
     Read basic complete results. More...
     
    lr11xx_status_t lr11xx_wifi_read_basic_mac_type_channel_results (const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_basic_mac_type_channel_result_t *results)
     Read basic MAC, Wi-Fi type and channel results. More...
     
    lr11xx_status_t lr11xx_wifi_read_extended_full_results (const void *radio, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_extended_full_result_t *results)
     Read extended complete results. More...
     
    lr11xx_status_t lr11xx_wifi_reset_cumulative_timing (const void *context)
     Reset the internal counters of cumulative timing. More...
     
    lr11xx_status_t lr11xx_wifi_read_cumulative_timing (const void *context, lr11xx_wifi_cumulative_timings_t *timing)
     Read the internal counters of cumulative timing. More...
     
    lr11xx_status_t lr11xx_wifi_get_nb_country_code_results (const void *context, uint8_t *nb_country_code_results)
     Get size of country code search results. More...
     
    lr11xx_status_t lr11xx_wifi_read_country_code_results (const void *context, const uint8_t start_result_index, const uint8_t nb_country_results, lr11xx_wifi_country_code_t *country_code_results)
     Read country code results. More...
     
    lr11xx_status_t lr11xx_wifi_cfg_timestamp_ap_phone (const void *context, uint32_t timestamp_in_s)
     Configure the timestamp used to discriminate mobile access points from gateways. More...
     
    lr11xx_status_t lr11xx_wifi_read_version (const void *context, lr11xx_wifi_version_t *wifi_version)
     Get the internal wifi firmware version. More...
     
    void lr11xx_wifi_parse_channel_info (const lr11xx_wifi_channel_info_byte_t channel_info, lr11xx_wifi_channel_t *channel, bool *rssi_validity, lr11xx_wifi_mac_origin_t *mac_origin_estimation)
     Retreive channel information from channel info byte. More...
     
    lr11xx_wifi_channel_t lr11xx_wifi_extract_channel_from_info_byte (const lr11xx_wifi_channel_info_byte_t channel_info)
     Helper method to retrieve channel from channel info byte. More...
     
    void lr11xx_wifi_parse_frame_type_info (const lr11xx_wifi_frame_type_info_byte_t frame_type_info, lr11xx_wifi_frame_type_t *frame_type, lr11xx_wifi_frame_sub_type_t *frame_sub_type, bool *to_ds, bool *from_ds)
     Retrieve the Frame Type, Frame Subtype, To/From DS fields from a frame info byte. More...
     
    void lr11xx_wifi_parse_data_rate_info (const lr11xx_wifi_datarate_info_byte_t data_rate_info, lr11xx_wifi_signal_type_result_t *wifi_signal_type, lr11xx_wifi_datarate_t *wifi_data_rate)
     Retrieve the data rate information from data rate info byte. More...
     
    uint8_t lr11xx_wifi_get_nb_results_max_per_chunk (void)
     Return the maximal number of results to read per SPI communication. More...
     
    lr11xx_wifi_signal_type_result_t lr11xx_wifi_extract_signal_type_from_data_rate_info (const lr11xx_wifi_datarate_info_byte_t data_rate_info)
     Helper method to retrieve the signal type from data rate info byte. More...
     
    bool lr11xx_wifi_is_well_formed_utf8_byte_sequence (const uint8_t *buffer, const uint8_t length)
     Helper function to check if a buffer is a well-formed UTF-8 byte sequence. More...
     
    bool lr11xx_wifi_are_scan_mode_result_format_compatible (lr11xx_wifi_mode_t scan_mode, lr11xx_wifi_result_format_t result_format)
     Check that Wi-Fi scan mode and result format are compatible. More...
     
    uint64_t lr11xx_wifi_get_consumption (lr11xx_system_reg_mode_t regulator, lr11xx_wifi_cumulative_timings_t timing)
     Compute the power consumption in uAh based on the cumulative timing. More...
     

    Detailed Description

    -

    Wi-Fi passive scan driver definition for LR1110.

    +

    Wi-Fi passive scan driver definition for LR11XX.

    The Clear BSD License Copyright Semtech Corporation 2021. All rights reserved.

    Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

    • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    • @@ -185,14 +193,14 @@

    NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    Macro Definition Documentation

    - -

    ◆ LR1110_WIFI_N_RESULTS_MAX_PER_CHUNK

    + +

    ◆ LR11XX_WIFI_N_RESULTS_MAX_PER_CHUNK

    - +
    #define LR1110_WIFI_N_RESULTS_MAX_PER_CHUNK   LR1110_WIFI_MAX_RESULTS#define LR11XX_WIFI_N_RESULTS_MAX_PER_CHUNK   LR11XX_WIFI_MAX_RESULTS
    @@ -200,21 +208,21 @@

    lr1110_wifi_get_nb_results_max_per_chunk() function.

    -

    Its default value is set to the maximum number of results saved by LR1110 chip.

    +

    Its value can be programmatically obtained at runtime by calling lr11xx_wifi_get_nb_results_max_per_chunk() function.

    +

    Its default value is set to the maximum number of results saved by LR11XX chip.

    Warning
    Its value must be in the range [1,32] (inclusive). Defining out of this range leads to undefined behavior.

    Function Documentation

    - -

    ◆ lr1110_wifi_scan()

    + +

    ◆ lr11xx_wifi_scan()

    - + @@ -222,19 +230,19 @@

    - + - + - + @@ -270,12 +278,12 @@

    Start a Wi-Fi passive scan operation.

    -

    During the complete passive scan operation, the LR1110 remains busy and cannot receive any commands. Using this command DOES reset the results already obtained by previous passive scan operations.

    -

    The result can be read at the end of the passive scan issuing the command lr1110_wifi_get_nb_results (to get the number of results to read) and lr1110_wifi_read_basic_complete_results or lr1110_wifi_read_basic_mac_type_channel_results to actually get the result bytes.

    +

    During the complete passive scan operation, the LR11XX remains busy and cannot receive any commands. Using this command DOES reset the results already obtained by previous passive scan operations.

    +

    The result can be read at the end of the passive scan issuing the command lr11xx_wifi_get_nb_results (to get the number of results to read) and lr11xx_wifi_read_basic_complete_results or lr11xx_wifi_read_basic_mac_type_channel_results to actually get the result bytes.

    Parameters

    lr1110_status_t lr1110_wifi_scan lr11xx_status_t lr11xx_wifi_scan ( const void *  context, const lr1110_wifi_signal_type_scan_t const lr11xx_wifi_signal_type_scan_t  signal_type,
    const lr1110_wifi_channel_mask_t const lr11xx_wifi_channel_mask_t  channels,
    const lr1110_wifi_mode_t const lr11xx_wifi_mode_t  scan_mode,
    - + @@ -286,18 +294,18 @@

    Returns
    Operation status
    -
    See also
    lr1110_wifi_read_basic_complete_results, lr1110_wifi_read_basic_mac_type_channel_results
    +
    See also
    lr11xx_wifi_read_basic_complete_results, lr11xx_wifi_read_basic_mac_type_channel_results
    - -

    ◆ lr1110_wifi_search_country_code()

    + +

    ◆ lr11xx_wifi_search_country_code()

    [in]contextChip implementation context
    [in]signal_typeThe type of Wi-Fi Signals to scan for. If LR1110_WIFI_TYPE_SCAN_B_G_N is selected, the LR1110 already starts by scanning all selected channels for Wi-Fi signals B. Then the LR1110 scans all selected channels for Wi-Fi signals G/N.
    [in]signal_typeThe type of Wi-Fi Signals to scan for. If LR11XX_WIFI_TYPE_SCAN_B_G_N is selected, the LR11XX already starts by scanning all selected channels for Wi-Fi signals B. Then the LR11XX scans all selected channels for Wi-Fi signals G/N.
    [in]channelsMask of the Wi-Fi channels to scan
    [in]scan_modeScan mode to execute
    [in]max_resultsThe maximal number of results to gather. When this limit is reached, the passive scan automatically stop. Range of allowed values is [1:32]. Note that value 0 is forbidden.
    - + @@ -305,7 +313,7 @@

    - + @@ -358,14 +366,14 @@

    -

    ◆ lr1110_wifi_scan_time_limit()

    + +

    ◆ lr11xx_wifi_scan_time_limit()

    lr1110_status_t lr1110_wifi_search_country_code lr11xx_status_t lr11xx_wifi_search_country_code ( const void *  context, const lr1110_wifi_channel_mask_t const lr11xx_wifi_channel_mask_t  channels_mask,
    - + @@ -373,19 +381,19 @@

    - + - + - + @@ -417,56 +425,56 @@

    $ Xtal_{precision} $ depends on the crystal used as clock source. If the clock source is configured with 32kHz internal RC, then $ Xtal_{precision} = 1/100 $

    $ T_{offset} $ depends on the $ signal\_type $ and the $scan\_mode$ selected:

      -
    • LR1110_WIFI_TYPE_SCAN_B:
        -
      • if $scan\_mode != LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 2.31 ms
      • -
      • if $scan\_mode == LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 9.59 ms
      • +
      • LR11XX_WIFI_TYPE_SCAN_B:
          +
        • if $scan\_mode != LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 2.31 ms
        • +
        • if $scan\_mode == LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 9.59 ms
      • -
      • LR1110_WIFI_TYPE_SCAN_G:
          -
        • if $scan\_mode != LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 52.55 ms
        • -
        • if $scan\_mode == LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: N/A
        • +
        • LR11XX_WIFI_TYPE_SCAN_G:
            +
          • if $scan\_mode != LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 52.55 ms
          • +
          • if $scan\_mode == LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: N/A
        -

        For signal type being LR1110_WIFI_TYPE_SCAN_B_G_N:

        +

        For signal type being LR11XX_WIFI_TYPE_SCAN_B_G_N:

        $ T_{max} = 2 \times N_{channel} \times (1 + Xtal_{precision})timeout\_per\_channel + T_{offset} $

        $ T_{offset} $ depends on the $scan\_mode$ selected:

          -
        • $scan\_mode != LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 54.86 ms
        • -
        • $scan\_mode == LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 9.59 ms.
        • +
        • $scan\_mode != LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 54.86 ms
        • +
        • $scan\_mode == LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$: 9.59 ms.
        -
        Note
        With $scan\_mode != LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$ the T_offset is actually the worst case of Wi-Fi type B and Wi-Fi type G/N. Moreover, the Wi-Fi types G and N are scanned within the same steps (it is not two different scans). So the T_offset is the addition of 2.31 + 52.55 = 54.86.
        +
        Note
        With $scan\_mode != LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$ the T_offset is actually the worst case of Wi-Fi type B and Wi-Fi type G/N. Moreover, the Wi-Fi types G and N are scanned within the same steps (it is not two different scans). So the T_offset is the addition of 2.31 + 52.55 = 54.86.
        -With $scan\_mode == LR1110\_WIFI\_SCAN\_MODE\_FULL\_BEACON$, only Wi-Fi types B can be scanned. So scans for Wi-Fi types G/N are silently discarded. Therefore the T_offset is the same as for scan with Wi-Fi type B.
        +With $scan\_mode == LR11XX\_WIFI\_SCAN\_MODE\_FULL\_BEACON$, only Wi-Fi types B can be scanned. So scans for Wi-Fi types G/N are silently discarded. Therefore the T_offset is the same as for scan with Wi-Fi type B.
        Parameters

    lr1110_status_t lr1110_wifi_scan_time_limit lr11xx_status_t lr11xx_wifi_scan_time_limit ( const void *  context, const lr1110_wifi_signal_type_scan_t const lr11xx_wifi_signal_type_scan_t  signal_type,
    const lr1110_wifi_channel_mask_t const lr11xx_wifi_channel_mask_t  channels,
    const lr1110_wifi_mode_t const lr11xx_wifi_mode_t  scan_mode,
    - + - +
    [in]contextChip implementation context
    [in]signal_typeThe type of Wi-Fi Signals to scan for. If LR1110_WIFI_TYPE_SCAN_B_G_N is selected, the LR1110 already starts by scanning all selected channels for Wi-Fi signals B. Then the LR1110 scans all selected channels for Wi-Fi signals G/N.
    [in]signal_typeThe type of Wi-Fi Signals to scan for. If LR11XX_WIFI_TYPE_SCAN_B_G_N is selected, the LR11XX already starts by scanning all selected channels for Wi-Fi signals B. Then the LR11XX scans all selected channels for Wi-Fi signals G/N.
    [in]channelsMask of the Wi-Fi channels to scan
    [in]scan_modeScan mode to execute
    [in]max_resultsThe maximal number of results to gather. When this limit is reached, the passive scan automatically stop. Maximal value is 32
    [in]timeout_per_channel_msThe time to spend scanning one channel. Expressed in ms. Value 0 is forbidden and will result in the raise of WIFI_SCAN_DONE interrupt, with stat1.command_status being set to LR1110_SYSTEM_CMD_STATUS_PERR
    [in]timeout_per_channel_msThe time to spend scanning one channel. Expressed in ms. Value 0 is forbidden and will result in the raise of WIFI_SCAN_DONE interrupt, with stat1.command_status being set to LR11XX_SYSTEM_CMD_STATUS_PERR
    [in]timeout_per_scan_msThe maximal time to spend in preamble detection for each single scan. The time spent on preamble search is reset at each new preamble search. If the time spent on preamble search reach this timeout, the scan on the current channel stops and start on next channel. If set to 0, the command will keep listening until exhaustion of timeout_per_channel_ms or until nb_max_results is reached. Expressed in ms. Range of allowed values is [0:65535].
    Returns
    Operation status
    -
    See also
    lr1110_wifi_read_basic_results, lr1110_wifi_read_extended_results
    +
    See also
    lr11xx_wifi_read_basic_results, lr11xx_wifi_read_extended_results
    - -

    ◆ lr1110_wifi_search_country_code_time_limit()

    + +

    ◆ lr11xx_wifi_search_country_code_time_limit()

    - + @@ -474,7 +482,7 @@

    - + @@ -514,7 +522,7 @@

    [in]

    - +
    lr1110_status_t lr1110_wifi_search_country_code_time_limit lr11xx_status_t lr11xx_wifi_search_country_code_time_limit ( const void *  context, const lr1110_wifi_channel_mask_t const lr11xx_wifi_channel_mask_t  channels_mask,
    contextChip implementation context
    [in]channels_maskMask of the Wi-Fi channels to scan
    [in]nb_max_resultsThe maximum number of country code to gather. When this limit is reached, the passive scan automatically stops. Maximal value is 32
    [in]timeout_per_channel_msThe time to spend scanning one channel. Expressed in ms. Value 0 is forbidden and will result in the raise of WIFI_SCAN_DONE interrupt, with stat1.command_status being set to LR1110_SYSTEM_CMD_STATUS_PERR
    [in]timeout_per_channel_msThe time to spend scanning one channel. Expressed in ms. Value 0 is forbidden and will result in the raise of WIFI_SCAN_DONE interrupt, with stat1.command_status being set to LR11XX_SYSTEM_CMD_STATUS_PERR
    [in]timeout_per_scan_msThe maximal time to spend in preamble detection for each single scan. The time spent on preamble search is reset at each new preamble search. If the time spent on preamble search reach this timeout, the scan on the current channel stops and start on next channel. If set to 0, the command will keep listening until exhaustion of timeout_per_channel_ms or until nb_max_results is reached. Expressed in ms. Range of allowed values is [0:65535].
    @@ -523,14 +531,14 @@

    -

    ◆ lr1110_wifi_get_nb_results()

    + +

    ◆ lr11xx_wifi_get_nb_results()

    - -

    ◆ lr1110_wifi_read_basic_complete_results()

    + +

    ◆ lr11xx_wifi_read_basic_complete_results()

    - + @@ -590,7 +598,7 @@

    - + @@ -602,19 +610,19 @@

    Read basic complete results.

    -

    This function can be used to fetch all results in a row, or one after the other.

    +

    This function can be used to fetch all results in a row, or one after the other. It corresponds to result format LR11XX_WIFI_RESULT_FORMAT_BASIC_COMPLETE.

    An example of usage to fetch all results in a row is:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    -
    lr1110_wifi_basic_complete_result_t all_results[LR1110_WIFI_MAX_RESULTS] = {0};
    -
    lr1110_wifi_read_basic_complete_results(&radio, 0, nb_results, all_results);
    +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    lr11xx_wifi_basic_complete_result_t all_results[LR11XX_WIFI_MAX_RESULTS] = {0};
    +
    lr11xx_wifi_read_basic_complete_results(&radio, 0, nb_results, all_results);

    On the other hand, fetching result one after the other:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    - +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    for(uint8_t index_result = 0; index_result < nb_results; index_result++){
    -
    lr1110_wifi_read_basic_complete_results(&radio, index_result, 1, &single_results);
    +
    lr11xx_wifi_read_basic_complete_results(&radio, index_result, 1, &single_results);
    // Do something with single_results
    }
    -
    Remarks
    : This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR1110_WIFI_SCAN_MODE_BEACON or LR1110_WIFI_SCAN_MODE_BEACON_AND_PKT.
    +
    Remarks
    This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR11XX_WIFI_SCAN_MODE_BEACON or LR11XX_WIFI_SCAN_MODE_BEACON_AND_PKT. Refer to lr11xx_wifi_are_scan_mode_result_format_compatible to know which scan mode and result format are compatible.
    Parameters

    lr1110_status_t lr1110_wifi_read_basic_complete_results lr11xx_status_t lr11xx_wifi_read_basic_complete_results ( const void *  context, lr1110_wifi_basic_complete_result_tlr11xx_wifi_basic_complete_result_t results 
    @@ -625,18 +633,18 @@

    Returns
    Operation status
    -

    /see lr1110_wifi_read_basic_mac_type_channel_results, lr1110_wifi_read_extended_full_results

    +
    See also
    lr11xx_wifi_are_scan_mode_result_format_compatible, lr11xx_wifi_read_basic_mac_type_channel_results, lr11xx_wifi_read_extended_full_results
    - -

    ◆ lr1110_wifi_read_basic_mac_type_channel_results()

    + +

    ◆ lr11xx_wifi_read_basic_mac_type_channel_results()

    [in]radioRadio abstraction
    - + @@ -656,7 +664,7 @@

    - + @@ -668,19 +676,19 @@

    Read basic MAC, Wi-Fi type and channel results.

    -

    This function can be used to fetch all results in a row, or one after the other.

    +

    This function can be used to fetch all results in a row, or one after the other. It corresponds to result format LR11XX_WIFI_RESULT_FORMAT_BASIC_MAC_TYPE_CHANNEL.

    An example of usage to fetch all results in a row is:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    -
    lr1110_wifi_basic_mac_type_channel_result_t all_results[LR1110_WIFI_MAX_RESULTS] = {0};
    -
    lr1110_wifi_read_basic_mac_type_channel_results(&radio, 0, nb_results, all_results);
    +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    lr11xx_wifi_basic_mac_type_channel_result_t all_results[LR11XX_WIFI_MAX_RESULTS] = {0};
    +
    lr11xx_wifi_read_basic_mac_type_channel_results(&radio, 0, nb_results, all_results);

    On the other hand, fetching result one after the other:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    - +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    for(uint8_t index_result = 0; index_result < nb_results; index_result++){
    -
    lr1110_wifi_read_basic_mac_type_channel_results(&radio, index_result, 1, &single_results);
    +
    lr11xx_wifi_read_basic_mac_type_channel_results(&radio, index_result, 1, &single_results);
    // Do something with single_results
    }
    -
    Remarks
    : This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR1110_WIFI_SCAN_MODE_BEACON or LR1110_WIFI_SCAN_MODE_BEACON_AND_PKT.
    +
    Remarks
    This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR11XX_WIFI_SCAN_MODE_BEACON or LR11XX_WIFI_SCAN_MODE_BEACON_AND_PKT. Refer to lr11xx_wifi_are_scan_mode_result_format_compatible to know which scan mode and result format are compatible.
    Parameters

    lr1110_status_t lr1110_wifi_read_basic_mac_type_channel_results lr11xx_status_t lr11xx_wifi_read_basic_mac_type_channel_results ( const void *  context, lr1110_wifi_basic_mac_type_channel_result_tlr11xx_wifi_basic_mac_type_channel_result_t results 
    @@ -691,18 +699,18 @@

    Returns
    Operation status
    -

    /see lr1110_wifi_read_basic_complete_results, lr1110_wifi_read_extended_full_results

    +
    See also
    lr11xx_wifi_are_scan_mode_result_format_compatible, lr11xx_wifi_read_basic_complete_results, lr11xx_wifi_read_extended_full_results
    - -

    ◆ lr1110_wifi_read_extended_full_results()

    + +

    ◆ lr11xx_wifi_read_extended_full_results()

    [in]radioRadio abstraction
    - + @@ -722,7 +730,7 @@

    - + @@ -734,19 +742,19 @@

    Read extended complete results.

    -

    This function can be used to fetch all results in a row, or one after the other.

    +

    This function can be used to fetch all results in a row, or one after the other. It corresponds to result format LR11XX_WIFI_RESULT_FORMAT_EXTENDED_FULL.

    An example of usage to fetch all results in a row is:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    -
    lr1110_wifi_extended_full_result_t all_results[LR1110_WIFI_MAX_RESULTS] = {0};
    -
    lr1110_wifi_read_extended_full_results(&radio, 0, nb_results, all_results);
    +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    lr11xx_wifi_extended_full_result_t all_results[LR11XX_WIFI_MAX_RESULTS] = {0};
    +
    lr11xx_wifi_read_extended_full_results(&radio, 0, nb_results, all_results);

    On the other hand, fetching result one after the other:

    uint8_t nb_results = 0;
    -
    lr1110_wifi_get_nb_results(&radio, &nb_results);
    - +
    lr11xx_wifi_get_nb_results(&radio, &nb_results);
    +
    for(uint8_t index_result = 0; index_result < nb_results; index_result++){
    -
    lr1110_wifi_read_extended_full_results(&radio, index_result, 1, &single_results);
    +
    lr11xx_wifi_read_extended_full_results(&radio, index_result, 1, &single_results);
    // Do something with single_results
    }
    -
    Remarks
    : This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR1110_WIFI_SCAN_MODE_FULL_BEACON.
    +
    Remarks
    This result fetching function MUST be used only if the scan function call was made with Scan Mode set to LR11XX_WIFI_SCAN_MODE_FULL_BEACON. Refer to lr11xx_wifi_are_scan_mode_result_format_compatible to know which scan mode and result format are compatible.
    Parameters

    lr1110_status_t lr1110_wifi_read_extended_full_results lr11xx_status_t lr11xx_wifi_read_extended_full_results ( const void *  radio, lr1110_wifi_extended_full_result_tlr11xx_wifi_extended_full_result_t results 
    @@ -757,18 +765,18 @@

    Returns
    Operation status
    -

    /see lr1110_wifi_read_basic_complete_results, lr1110_wifi_read_basic_mac_type_channel_results

    +
    See also
    lr11xx_wifi_are_scan_mode_result_format_compatible, lr11xx_wifi_read_basic_complete_results, lr11xx_wifi_read_basic_mac_type_channel_results
    - -

    ◆ lr1110_wifi_reset_cumulative_timing()

    + +

    ◆ lr11xx_wifi_reset_cumulative_timing()

    [in]radioRadio abstraction
    - + @@ -788,14 +796,14 @@

    -

    ◆ lr1110_wifi_read_cumulative_timing()

    + +

    ◆ lr11xx_wifi_read_cumulative_timing()

    lr1110_status_t lr1110_wifi_reset_cumulative_timing lr11xx_status_t lr11xx_wifi_reset_cumulative_timing ( const void *  context)
    - + @@ -803,7 +811,7 @@

    - + @@ -826,14 +834,14 @@

    -

    ◆ lr1110_wifi_get_nb_country_code_results()

    + +

    ◆ lr11xx_wifi_get_nb_country_code_results()

    lr1110_status_t lr1110_wifi_read_cumulative_timing lr11xx_status_t lr11xx_wifi_read_cumulative_timing ( const void *  context, lr1110_wifi_cumulative_timings_tlr11xx_wifi_cumulative_timings_t timing 
    - + @@ -864,14 +872,14 @@

    -

    ◆ lr1110_wifi_read_country_code_results()

    + +

    ◆ lr11xx_wifi_read_country_code_results()

    lr1110_status_t lr1110_wifi_get_nb_country_code_results lr11xx_status_t lr11xx_wifi_get_nb_country_code_results ( const void *  context,
    - + @@ -891,7 +899,7 @@

    - + @@ -903,29 +911,29 @@

    Read country code results.

    -

    The total number of country code results to read is obtained from a previous call to lr1110_wifi_get_nb_country_code_results

    +

    The total number of country code results to read is obtained from a previous call to lr11xx_wifi_get_nb_country_code_results

    Parameters

    lr1110_status_t lr1110_wifi_read_country_code_results lr11xx_status_t lr11xx_wifi_read_country_code_results ( const void *  context, lr1110_wifi_country_code_tlr11xx_wifi_country_code_t country_code_results 
    - +
    [in]contextChip implementation context
    [in]start_result_indexThe result index to start reading results from
    [in]nb_country_resultsNumber of country code results to read
    [out]country_code_resultsAn array of lr1110_wifi_country_code_t to be filled. It is up to the application to ensure this array is big enough to hold nb_country_results elements
    [out]country_code_resultsAn array of lr11xx_wifi_country_code_t to be filled. It is up to the application to ensure this array is big enough to hold nb_country_results elements
    Returns
    Operation status
    -
    See also
    lr1110_wifi_get_nb_country_code_results, lr1110_wifi_search_country_code
    +
    See also
    lr11xx_wifi_get_nb_country_code_results, lr11xx_wifi_search_country_code
    - -

    ◆ lr1110_wifi_cfg_timestamp_ap_phone()

    + +

    ◆ lr11xx_wifi_cfg_timestamp_ap_phone()

    - + @@ -957,14 +965,14 @@

    -

    ◆ lr1110_wifi_read_version()

    + +

    ◆ lr11xx_wifi_read_version()

    lr1110_status_t lr1110_wifi_cfg_timestamp_ap_phone lr11xx_status_t lr11xx_wifi_cfg_timestamp_ap_phone ( const void *  context,
    - + @@ -972,7 +980,7 @@

    - + @@ -995,22 +1003,22 @@

    -

    ◆ lr1110_wifi_parse_channel_info()

    + +

    ◆ lr11xx_wifi_parse_channel_info()

    lr1110_status_t lr1110_wifi_read_version lr11xx_status_t lr11xx_wifi_read_version ( const void *  context, lr1110_wifi_version_tlr11xx_wifi_version_t wifi_version 
    - + - + - + @@ -1022,7 +1030,7 @@

    - + @@ -1035,31 +1043,31 @@

    Parameters

    void lr1110_wifi_parse_channel_info void lr11xx_wifi_parse_channel_info (const lr1110_wifi_channel_info_byte_t const lr11xx_wifi_channel_info_byte_t  channel_info,
    lr1110_wifi_channel_tlr11xx_wifi_channel_t channel,
    lr1110_wifi_mac_origin_tlr11xx_wifi_mac_origin_t mac_origin_estimation 
    - +
    [in]channel_infoThe channel info byte to retrieve channel information from. It is obtained from WiFi passive scan result
    [out]channelThe channel of the scanned mac address
    [out]rssi_validityThe validity of the scanned MAC address
    [out]mac_origin_estimationIndicates the estimation of MAC address origin by LR1110
    [out]mac_origin_estimationIndicates the estimation of MAC address origin by LR11XX
    -
    See also
    lr1110_wifi_read_basic_complete_results, lr1110_wifi_read_basic_mac_type_channel_results, lr1110_wifi_cfg_timestamp_ap_phone
    +
    See also
    lr11xx_wifi_read_basic_complete_results, lr11xx_wifi_read_basic_mac_type_channel_results, lr11xx_wifi_cfg_timestamp_ap_phone
    - -

    ◆ lr1110_wifi_extract_channel_from_info_byte()

    + +

    ◆ lr11xx_wifi_extract_channel_from_info_byte()

    - + - + @@ -1074,32 +1082,32 @@

    Returns
    The channel of scanned MAC address
    -
    See also
    lr1110_wifi_parse_channel_info
    +
    See also
    lr11xx_wifi_parse_channel_info
    - -

    ◆ lr1110_wifi_parse_frame_type_info()

    + +

    ◆ lr11xx_wifi_parse_frame_type_info()

    lr1110_wifi_channel_t lr1110_wifi_extract_channel_from_info_byte lr11xx_wifi_channel_t lr11xx_wifi_extract_channel_from_info_byte (const lr1110_wifi_channel_info_byte_t const lr11xx_wifi_channel_info_byte_t  channel_info)
    - + - + - + - + @@ -1150,28 +1158,28 @@

    -

    ◆ lr1110_wifi_parse_data_rate_info()

    + +

    ◆ lr11xx_wifi_parse_data_rate_info()

    void lr1110_wifi_parse_frame_type_info void lr11xx_wifi_parse_frame_type_info (const lr1110_wifi_frame_type_info_byte_t const lr11xx_wifi_frame_type_info_byte_t  frame_type_info,
    lr1110_wifi_frame_type_tlr11xx_wifi_frame_type_t frame_type,
    lr1110_wifi_frame_sub_type_tlr11xx_wifi_frame_sub_type_t frame_sub_type,
    - + - + - + - + @@ -1195,14 +1203,14 @@

    -

    ◆ lr1110_wifi_get_nb_results_max_per_chunk()

    + +

    ◆ lr11xx_wifi_get_nb_results_max_per_chunk()

    void lr1110_wifi_parse_data_rate_info void lr11xx_wifi_parse_data_rate_info (const lr1110_wifi_datarate_info_byte_t const lr11xx_wifi_datarate_info_byte_t  data_rate_info,
    lr1110_wifi_signal_type_result_tlr11xx_wifi_signal_type_result_t wifi_signal_type,
    lr1110_wifi_datarate_tlr11xx_wifi_datarate_t wifi_data_rate 
    - + @@ -1212,23 +1220,23 @@

    Return the maximal number of results to read per SPI communication.

    -

    This function DOES NOT communicates with the LR1110. It returns the driver maximal number of Wi-Fi results it can retrieve per SPI communication.

    -
    Remarks
    It is a driver limitation, not a LR1110 limitation, that avoid allocating temporary buffers of size too big when reading Wi-Fi passive scan results.
    -
    See also
    LR1110_WIFI_N_RESULTS_MAX_PER_CHUNK
    +

    This function DOES NOT communicates with the LR11XX. It returns the driver maximal number of Wi-Fi results it can retrieve per SPI communication.

    +
    Remarks
    It is a driver limitation, not a LR11XX limitation, that avoid allocating temporary buffers of size too big when reading Wi-Fi passive scan results.
    +
    See also
    LR11XX_WIFI_N_RESULTS_MAX_PER_CHUNK
    Returns
    The maximal number of results to fetch per SPI calls
    - -

    ◆ lr1110_wifi_extract_signal_type_from_data_rate_info()

    + +

    ◆ lr11xx_wifi_extract_signal_type_from_data_rate_info()

    uint8_t lr1110_wifi_get_nb_results_max_per_chunk uint8_t lr11xx_wifi_get_nb_results_max_per_chunk ( void  )
    - + - + @@ -1246,14 +1254,14 @@

    -

    ◆ lr1110_wifi_is_well_formed_utf8_byte_sequence()

    + +

    ◆ lr11xx_wifi_is_well_formed_utf8_byte_sequence()

    lr1110_wifi_signal_type_result_t lr1110_wifi_extract_signal_type_from_data_rate_info lr11xx_wifi_signal_type_result_t lr11xx_wifi_extract_signal_type_from_data_rate_info (const lr1110_wifi_datarate_info_byte_t const lr11xx_wifi_datarate_info_byte_t  data_rate_info)
    - + @@ -1282,16 +1290,111 @@

    Returns
    The result of the check
    + + +
    +

    ◆ lr11xx_wifi_are_scan_mode_result_format_compatible()

    + +
    +
    +

    bool lr1110_wifi_is_well_formed_utf8_byte_sequence bool lr11xx_wifi_is_well_formed_utf8_byte_sequence ( const uint8_t *  buffer,
    + + + + + + + + + + + + + + + + + +
    bool lr11xx_wifi_are_scan_mode_result_format_compatible (lr11xx_wifi_mode_t scan_mode,
    lr11xx_wifi_result_format_t result_format 
    )
    +
    + +

    Check that Wi-Fi scan mode and result format are compatible.

    +

    The possible combination of Wi-Fi scan modes and result format are the following:

    + + + + + + + + + + + +
    Scan Mode Type/Sub-type selected Corresponding read result function
    LR11XX_WIFI_SCAN_MODE_BEACON Management/Beacon and Management/Probe Response lr11xx_wifi_read_basic_complete_results, lr11xx_wifi_read_basic_mac_type_channel_results
    LR11XX_WIFI_SCAN_MODE_BEACON_AND_PKT Some from Management, Control and Data Types
    LR11XX_WIFI_SCAN_MODE_FULL_BEACON Management/Beacon and Management/Probe Response lr11xx_wifi_read_extended_full_results
    LR11XX_WIFI_SCAN_MODE_UNTIL_SSID Management/Beacon and Management/Probe Response - until SSID field
    +
    Parameters
    + + + +
    scan_modeThe scan mode used when calling the scan API
    result_formatThe result format used when calling the read result API
    +
    +
    +
    Return values
    + + + +
    trueThe scan mode and result format are compatible
    falseThe scan mode and result format are not compatible.
    +
    +
    + +
    +
    + +

    ◆ lr11xx_wifi_get_consumption()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    uint64_t lr11xx_wifi_get_consumption (lr11xx_system_reg_mode_t regulator,
    lr11xx_wifi_cumulative_timings_t timing 
    )
    +
    + +

    Compute the power consumption in uAh based on the cumulative timing.

    +
    Parameters
    + + + +
    [in]regulatorThe regulator used during last Wi-Fi passive scan
    [in]timingCumulative timing structure to use for computation
    +
    +
    +
    Returns
    Current consumption in uAh
    +
    -
    Basic MAC, type, channel result structure.
    Definition: lr1110_wifi_types.h:320
    -
    Extended full result structure.
    Definition: lr1110_wifi_types.h:339
    -
    lr1110_status_t lr1110_wifi_read_extended_full_results(const void *radio, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_extended_full_result_t *results)
    Read extended complete results.
    Definition: lr1110_wifi.c:366
    -
    Basic complete result structure.
    Definition: lr1110_wifi_types.h:305
    -
    lr1110_status_t lr1110_wifi_read_basic_mac_type_channel_results(const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_basic_mac_type_channel_result_t *results)
    Read basic MAC, Wi-Fi type and channel results.
    Definition: lr1110_wifi.c:350
    -
    lr1110_status_t lr1110_wifi_get_nb_results(const void *context, uint8_t *nb_results)
    Returns the number of results currently available in LR1110.
    Definition: lr1110_wifi.c:324
    -
    lr1110_status_t lr1110_wifi_read_basic_complete_results(const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr1110_wifi_basic_complete_result_t *results)
    Read basic complete results.
    Definition: lr1110_wifi.c:335
    +
    lr11xx_status_t lr11xx_wifi_read_basic_complete_results(const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_basic_complete_result_t *results)
    Read basic complete results.
    Definition: lr11xx_wifi.c:344
    +
    Basic complete result structure.
    Definition: lr11xx_wifi_types.h:303
    +
    lr11xx_status_t lr11xx_wifi_read_basic_mac_type_channel_results(const void *context, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_basic_mac_type_channel_result_t *results)
    Read basic MAC, Wi-Fi type and channel results.
    Definition: lr11xx_wifi.c:359
    +
    Extended full result structure.
    Definition: lr11xx_wifi_types.h:337
    +
    lr11xx_status_t lr11xx_wifi_read_extended_full_results(const void *radio, const uint8_t start_result_index, const uint8_t nb_results, lr11xx_wifi_extended_full_result_t *results)
    Read extended complete results.
    Definition: lr11xx_wifi.c:375
    +
    Basic MAC, type, channel result structure.
    Definition: lr11xx_wifi_types.h:318
    +
    lr11xx_status_t lr11xx_wifi_get_nb_results(const void *context, uint8_t *nb_results)
    Returns the number of results currently available in LR11XX.
    Definition: lr11xx_wifi.c:333