Add SX1280 Library and EXTI Handler

This commit is contained in:
2024-04-17 21:13:48 -03:00
parent 2c01b509f5
commit d64531618a
42 changed files with 7261 additions and 29 deletions

View File

@@ -24,7 +24,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.1310523484" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1446662578" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="STM32F407G-DISC1" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1590809387" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32F407G-DISC1 || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F4xx/Include | ../Drivers/CMSIS/Include | ../Middlewares/Third_Party/FreeRTOS/Source/include | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F || || || USE_HAL_DRIVER | STM32F407xx || || Drivers | Core/Startup | Middlewares | Core || || || ${workspace_loc:/${ProjName}/STM32F407VGTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.45489508" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="168" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.45489508" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="168" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.2108037219" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/F407-SX1280-FreeRTOS}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1270374400" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.375870604" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
@@ -52,6 +52,7 @@
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2"/>
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F"/>
</option>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.languagestandard.619905072" name="Language standard" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.languagestandard" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.languagestandard.value.gnu17" valueType="enumerated"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.2081727264" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.599097043" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
@@ -72,6 +73,7 @@
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2"/>
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F"/>
</option>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.languagestandard.1552433238" name="Language standard" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.languagestandard" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.languagestandard.value.gnupp17" valueType="enumerated"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.input.cpp.769840919" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.input.cpp"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.365455380" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker"/>
@@ -94,8 +96,8 @@
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>
</sourceEntries>
</configuration>
</storageModule>
@@ -117,28 +119,28 @@
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1354091413" name="Release" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release">
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1354091413." name="/" resourcePath="">
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.203679149" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.603735873" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32F407VGTx" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.785956982" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.798299296" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.1529609330" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv4-sp-d16" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.1358890514" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.661521077" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="STM32F407G-DISC1" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.846236130" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32F407G-DISC1 || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F4xx/Include | ../Drivers/CMSIS/Include | ../Middlewares/Third_Party/FreeRTOS/Source/include | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F || || || USE_HAL_DRIVER | STM32F407xx || || Drivers | Core/Startup | Middlewares | Core || || || ${workspace_loc:/${ProjName}/STM32F407VGTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1742010714" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="168" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.603735873" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32F407VGTx" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.785956982" name="CPU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.798299296" name="Core" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.1529609330" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv4-sp-d16" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.1358890514" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.661521077" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="STM32F407G-DISC1" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.846236130" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32F407G-DISC1 || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F4xx/Include | ../Drivers/CMSIS/Include | ../Middlewares/Third_Party/FreeRTOS/Source/include | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F || || || USE_HAL_DRIVER | STM32F407xx || || Drivers | Core/Startup | Middlewares | Core || || || ${workspace_loc:/${ProjName}/STM32F407VGTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1742010714" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="168" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1070639077" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/F407-SX1280-FreeRTOS}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.618395797" managedBuildOn="true" name="Gnu Make Builder.Release" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<builder buildPath="${workspace_loc:/F407-SX1280-FreeRTOS}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.618395797" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1850918713" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.1395556573" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.1395556573" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g0" valueType="enumerated"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1601313467" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.137812737" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.2089025338" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.829294311" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.os" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.696046404" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.2089025338" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.829294311" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.os" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.696046404" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
<listOptionValue builtIn="false" value="STM32F407xx"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.1819725605" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.1819725605" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy"/>
@@ -151,13 +153,13 @@
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.734723628" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.442026545" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.1311331830" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.1790921717" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.value.os" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.definedsymbols.1946663919" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.1311331830" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.1790921717" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.value.os" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.definedsymbols.1946663919" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
<listOptionValue builtIn="false" value="STM32F407xx"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.includepaths.1296337513" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.includepaths.1296337513" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy"/>
@@ -171,7 +173,7 @@
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.687959541" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.1467581474" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.option.script.1081840162" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.option.script" value="${workspace_loc:/${ProjName}/STM32F407VGTX_FLASH.ld}" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.option.script.1081840162" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.option.script" value="${workspace_loc:/${ProjName}/STM32F407VGTX_FLASH.ld}" valueType="string"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.input.114054377" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
@@ -189,8 +191,8 @@
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/>
</sourceEntries>
</configuration>
</storageModule>

View File

@@ -73,6 +73,7 @@ void Error_Handler(void);
#define PDM_OUT_GPIO_Port GPIOC
#define B1_Pin GPIO_PIN_0
#define B1_GPIO_Port GPIOA
#define B1_EXTI_IRQn EXTI0_IRQn
#define I2S3_WS_Pin GPIO_PIN_4
#define I2S3_WS_GPIO_Port GPIOA
#define SPI1_SCK_Pin GPIO_PIN_5
@@ -91,8 +92,10 @@ void Error_Handler(void);
#define RADIO_NSS_GPIO_Port GPIOB
#define RADIO_BUSY_Pin GPIO_PIN_8
#define RADIO_BUSY_GPIO_Port GPIOD
#define RADIO_BUSY_EXTI_IRQn EXTI9_5_IRQn
#define RADIO_IRQ_Pin GPIO_PIN_9
#define RADIO_IRQ_GPIO_Port GPIOD
#define RADIO_IRQ_EXTI_IRQn EXTI9_5_IRQn
#define RADIO_RST_Pin GPIO_PIN_10
#define RADIO_RST_GPIO_Port GPIOD
#define RADIO_RXEN_Pin GPIO_PIN_11

View File

@@ -52,8 +52,10 @@ void MemManage_Handler(void);
void BusFault_Handler(void);
void UsageFault_Handler(void);
void DebugMon_Handler(void);
void EXTI0_IRQHandler(void);
void DMA1_Stream3_IRQHandler(void);
void DMA1_Stream4_IRQHandler(void);
void EXTI9_5_IRQHandler(void);
void TIM7_IRQHandler(void);
/* USER CODE BEGIN EFP */

View File

@@ -0,0 +1,27 @@
/*
* EXTIHandler.hpp
*
* Created on: Feb 24, 2024
* Author: gabriel
*/
#ifndef SRC_COMPONENTS_EXTIHANDLER_HPP_
#define SRC_COMPONENTS_EXTIHANDLER_HPP_
#include <inttypes.h>
#include "GPIO_Pin.hpp"
#include <functional>
class EXTIHandler {
public:
static EXTIHandler* getInstance(){return singletonPointer;};
virtual int32_t registerCallback(std::function<void(void*)> callbackFunction, void* argument, GPIO_Pin* irqPin) = 0;
virtual int32_t setCallbackEnabled(GPIO_Pin* irqPin, bool enabled) = 0;
protected:
std::function<void(void*)> functionArray[16];
void* argumentArray[16];
bool enabledArray[16];
inline static EXTIHandler* singletonPointer;
};
#endif /* SRC_COMPONENTS_EXTIHANDLER_HPP_ */

View File

@@ -0,0 +1,76 @@
/*
* EXTIHandler_STM32.cpp
*
* Created on: Feb 24, 2024
* Author: gabriel
*/
#include "EXTIHandler_STM32.hpp"
EXTIHandler_STM32 extiHandlerStm32Singleton;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
extiHandlerStm32Singleton.callback(GPIO_Pin);
}
EXTIHandler_STM32::EXTIHandler_STM32(){
singletonPointer = &extiHandlerStm32Singleton;
}
int32_t EXTIHandler_STM32::registerCallback(
std::function<void(void*)> callbackFunction, void* argument, GPIO_Pin* irqPin) {
uint8_t pinNumber = ((GPIO_Pin_STM32*)irqPin)->getPin();
functionArray[pinNumber] = callbackFunction;
argumentArray[pinNumber] = argument;
return 0;
}
int32_t EXTIHandler_STM32::setCallbackEnabled(GPIO_Pin *irqPin, bool enabled) {
uint8_t pinNumber = ((GPIO_Pin_STM32*)irqPin)->getPin();
enabledArray[pinNumber] = enabled;
return 0;
}
void EXTIHandler_STM32::callback(uint16_t GPIO_Pin) {
uint8_t pinNumber = gpioPinToPinNumber(GPIO_Pin);
if(enabledArray[pinNumber]){
functionArray[pinNumber](argumentArray[pinNumber]);
}
}
uint8_t EXTIHandler_STM32::gpioPinToPinNumber(uint16_t GPIO_Pin) {
switch(GPIO_Pin){
case GPIO_PIN_0:
return 0;
case GPIO_PIN_1:
return 1;
case GPIO_PIN_2:
return 2;
case GPIO_PIN_3:
return 3;
case GPIO_PIN_4:
return 4;
case GPIO_PIN_5:
return 5;
case GPIO_PIN_6:
return 6;
case GPIO_PIN_7:
return 7;
case GPIO_PIN_8:
return 8;
case GPIO_PIN_9:
return 9;
case GPIO_PIN_10:
return 10;
case GPIO_PIN_11:
return 11;
case GPIO_PIN_12:
return 12;
case GPIO_PIN_13:
return 13;
case GPIO_PIN_14:
return 14;
case GPIO_PIN_15:
return 15;
}
}

View File

@@ -0,0 +1,24 @@
/*
* EXTIHandler_STM32.hpp
*
* Created on: Feb 24, 2024
* Author: gabriel
*/
#include "EXTIHandler.hpp"
#include "GPIO_Pin_STM32.hpp"
#ifndef SRC_COMPONENTS_EXTIHANDLER_STM32_HPP_
#define SRC_COMPONENTS_EXTIHANDLER_STM32_HPP_
class EXTIHandler_STM32 : public EXTIHandler {
public:
EXTIHandler_STM32();
int32_t registerCallback(std::function<void(void*)> callbackFunction, void* argument, GPIO_Pin* irqPin);
int32_t setCallbackEnabled(GPIO_Pin* irqPin, bool enabled);
void callback(uint16_t GPIO_Pin);
private:
uint8_t gpioPinToPinNumber(uint16_t GPIO_Pin);
};
#endif /* SRC_COMPONENTS_EXTIHANDLER_STM32_HPP_ */

View File

@@ -43,3 +43,11 @@ int32_t GPIO_Pin_STM32::toggle() {
HAL_GPIO_TogglePin(gpio_port, gpio_pin);
return 0;
}
GPIO_TypeDef* GPIO_Pin_STM32::getPort() {
return gpio_port;
}
uint16_t GPIO_Pin_STM32::getPin() {
return gpio_pin;
}

View File

@@ -21,6 +21,8 @@ public:
int32_t set();
int32_t reset();
int32_t toggle();
GPIO_TypeDef* getPort();
uint16_t getPin();
private:
GPIO_TypeDef* gpio_port;
uint16_t gpio_pin;

View File

@@ -0,0 +1,37 @@
/*
* SSL_Radio.cpp
*
* Created on: Feb 24, 2024
* Author: gabriel
*/
#include "SSL_Comms.hpp"
#include "main.h"
#include "EXTIHandler.hpp"
#include "SX1280Lib/sx1280-hal.h"
extern SPI_HandleTypeDef hspi1;
SX1280Hal pRadio(pSpiPeripheral, pNssPin, pBusyPin, pIrqPin, pRstPin, callbacks);
SSL_Comms::SSL_Comms(GPIO_Pin* but) : but(but) {
// TODO Auto-generated constructor stub
}
SSL_Comms::~SSL_Comms() {
// TODO Auto-generated destructor stub
}
void SSL_Comms::irqCallback(void *arg) {
__NOP();
}
int32_t SSL_Comms::init(){
__NOP();
std::function<void(void*)> callbackFunction = [this](void* ptr){irqCallback(ptr);};
EXTIHandler::getInstance()->registerCallback(callbackFunction, nullptr, but);
return 0;
}

View File

@@ -0,0 +1,26 @@
/*
* SSL_Radio.hpp
*
* Created on: Feb 24, 2024
* Author: gabriel
*/
#include <inttypes.h>
#include "main.h"
#include "GPIO_Pin.hpp"
#ifndef SRC_COMPONENTS_SSL_RADIO_HPP_
#define SRC_COMPONENTS_SSL_RADIO_HPP_
class SSL_Comms {
public:
SSL_Comms(GPIO_Pin* but);
virtual ~SSL_Comms();
void irqCallback(void* arg);
int32_t init();
private:
GPIO_Pin* but;
};
#endif /* SRC_COMPONENTS_SSL_RADIO_HPP_ */

View File

@@ -0,0 +1,6 @@
repo: 03ec2f3bde8cbc04660539d28fbdad3088d4cf57
node: c4f110f3fe3e422c364b9351117ad552c8a76cb1
branch: default
latesttag: null
latesttagdistance: 13
changessincelatesttag: 13

View File

@@ -0,0 +1,121 @@
#include "RangingCorrection.h"
#include "rangingCorrection/rangingCorrectionSF5BW0400.h"
#include "rangingCorrection/rangingCorrectionSF6BW0400.h"
#include "rangingCorrection/rangingCorrectionSF7BW0400.h"
#include "rangingCorrection/rangingCorrectionSF8BW0400.h"
#include "rangingCorrection/rangingCorrectionSF9BW0400.h"
#include "rangingCorrection/rangingCorrectionSF10BW0400.h"
#include "rangingCorrection/rangingCorrectionSF5BW0800.h"
#include "rangingCorrection/rangingCorrectionSF6BW0800.h"
#include "rangingCorrection/rangingCorrectionSF7BW0800.h"
#include "rangingCorrection/rangingCorrectionSF8BW0800.h"
#include "rangingCorrection/rangingCorrectionSF9BW0800.h"
#include "rangingCorrection/rangingCorrectionSF10BW0800.h"
#include "rangingCorrection/rangingCorrectionSF5BW1600.h"
#include "rangingCorrection/rangingCorrectionSF6BW1600.h"
#include "rangingCorrection/rangingCorrectionSF7BW1600.h"
#include "rangingCorrection/rangingCorrectionSF8BW1600.h"
#include "rangingCorrection/rangingCorrectionSF9BW1600.h"
#include "rangingCorrection/rangingCorrectionSF10BW1600.h"
const double* RangingCorrectionPerSfBwGain[6][3] = {
{ &RangingCorrectionSF5BW0400[0], &RangingCorrectionSF5BW0800[0], &RangingCorrectionSF5BW1600[0] },
{ &RangingCorrectionSF6BW0400[0], &RangingCorrectionSF6BW0800[0], &RangingCorrectionSF6BW1600[0] },
{ &RangingCorrectionSF7BW0400[0], &RangingCorrectionSF7BW0800[0], &RangingCorrectionSF7BW1600[0] },
{ &RangingCorrectionSF8BW0400[0], &RangingCorrectionSF8BW0800[0], &RangingCorrectionSF8BW1600[0] },
{ &RangingCorrectionSF9BW0400[0], &RangingCorrectionSF9BW0800[0], &RangingCorrectionSF9BW1600[0] },
{ &RangingCorrectionSF10BW0400[0], &RangingCorrectionSF10BW0800[0], &RangingCorrectionSF10BW1600[0] },
};
const RangingCorrectionPolynomes_t* RangingCorrectionPolynomesPerSfBw[6][3] = {
{ &correctionRangingPolynomeSF5BW0400, &correctionRangingPolynomeSF5BW0800, &correctionRangingPolynomeSF5BW1600 },
{ &correctionRangingPolynomeSF6BW0400, &correctionRangingPolynomeSF6BW0800, &correctionRangingPolynomeSF6BW1600 },
{ &correctionRangingPolynomeSF7BW0400, &correctionRangingPolynomeSF7BW0800, &correctionRangingPolynomeSF7BW1600 },
{ &correctionRangingPolynomeSF8BW0400, &correctionRangingPolynomeSF8BW0800, &correctionRangingPolynomeSF8BW1600 },
{ &correctionRangingPolynomeSF9BW0400, &correctionRangingPolynomeSF9BW0800, &correctionRangingPolynomeSF9BW1600 },
{ &correctionRangingPolynomeSF10BW0400, &correctionRangingPolynomeSF10BW0800, &correctionRangingPolynomeSF10BW1600 },
};
double Sx1280RangingCorrection::GetRangingCorrectionPerSfBwGain( const RadioLoRaSpreadingFactors_t sf, const RadioLoRaBandwidths_t bw, const int8_t gain){
uint8_t sf_index, bw_index;
switch(sf){
case LORA_SF5:
sf_index = 0;
break;
case LORA_SF6:
sf_index = 1;
break;
case LORA_SF7:
sf_index = 2;
break;
case LORA_SF8:
sf_index = 3;
break;
case LORA_SF9:
sf_index = 4;
break;
case LORA_SF10:
sf_index = 5;
break;
}
switch(bw){
case LORA_BW_0400:
bw_index = 0;
break;
case LORA_BW_0800:
bw_index = 1;
break;
case LORA_BW_1600:
bw_index = 2;
break;
}
double correction = RangingCorrectionPerSfBwGain[sf_index][bw_index][gain];
return correction;
}
double Sx1280RangingCorrection::ComputeRangingCorrectionPolynome(const RadioLoRaSpreadingFactors_t sf, const RadioLoRaBandwidths_t bw, const double median){
uint8_t sf_index, bw_index;
switch(sf){
case LORA_SF5:
sf_index = 0;
break;
case LORA_SF6:
sf_index = 1;
break;
case LORA_SF7:
sf_index = 2;
break;
case LORA_SF8:
sf_index = 3;
break;
case LORA_SF9:
sf_index = 4;
break;
case LORA_SF10:
sf_index = 5;
break;
}
switch(bw){
case LORA_BW_0400:
bw_index = 0;
break;
case LORA_BW_0800:
bw_index = 1;
break;
case LORA_BW_1600:
bw_index = 2;
break;
}
const RangingCorrectionPolynomes_t *polynome = RangingCorrectionPolynomesPerSfBw[sf_index][bw_index];
double correctedValue = 0.0;
double correctionCoeff = 0;
for(uint8_t order = 0; order < polynome->order; order++){
correctionCoeff = polynome->coefficients[order] * pow(median, polynome->order - order - 1);
correctedValue += correctionCoeff;
}
return correctedValue;
}

View File

@@ -0,0 +1,12 @@
#ifndef __SX1280_RANGING_CORRECTION_H__
#define __SX1280_RANGING_CORRECTION_H__
#include "sx1280.h"
namespace Sx1280RangingCorrection
{
double GetRangingCorrectionPerSfBwGain( const RadioLoRaSpreadingFactors_t sf, const RadioLoRaBandwidths_t bw, const int8_t gain);
double ComputeRangingCorrectionPolynome(const RadioLoRaSpreadingFactors_t sf, const RadioLoRaBandwidths_t bw, const double median);
}
#endif // __SX1280_RANGING_CORRECTION_H__

View File

@@ -0,0 +1,310 @@
/*
______ _
/ _____) _ | |
( (____ _____ ____ _| |_ _____ ____| |__
\____ \| ___ | (_ _) ___ |/ ___) _ \
_____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
(C)2016 Semtech
Description: Handling of the node configuration protocol
License: Revised BSD License, see LICENSE.TXT file include in the project
Maintainer: Miguel Luis, Gregory Cristian and Matthieu Verdy
*/
#ifndef __RADIO_H__
#define __RADIO_H__
#include <inttypes.h>
/*!
* \brief Structure describing the radio status
*/
typedef union
{
/*!
* \brief Structure of the radio status
*/
struct
{
uint8_t CpuBusy : 1; //!< Flag for CPU radio busy
uint8_t DmaBusy : 1; //!< Flag for DMA busy
uint8_t CmdStatus : 3; //!< Command status
uint8_t ChipMode : 3; //!< Chip mode
}Fields;
/*!
* \brief Serialized radio status
*/
uint8_t Value;
}RadioStatus_t;
/*!
* \brief Structure describing the ranging codes for callback functions
*/
typedef enum
{
IRQ_RANGING_SLAVE_ERROR_CODE = 0x00,
IRQ_RANGING_SLAVE_VALID_CODE,
IRQ_RANGING_MASTER_ERROR_CODE,
IRQ_RANGING_MASTER_VALID_CODE,
}IrqRangingCode_t;
/*!
* \brief Structure describing the error codes for callback functions
*/
typedef enum
{
IRQ_HEADER_ERROR_CODE = 0x00,
IRQ_SYNCWORD_ERROR_CODE,
IRQ_CRC_ERROR_CODE,
IRQ_RANGING_ON_LORA_ERROR_CODE,
}IrqErrorCode_t;
/*!
* \brief Structure describing the validity codes for callback function rxValid
*/
typedef enum
{
IRQ_HEADER_VALID_CODE = 0x00,
IRQ_SYNCWORD_VALID_CODE,
}IrqValidCode_t;
/*!
* \brief Represents all possible opcode understood by the radio
*/
typedef enum RadioCommands_u
{
RADIO_GET_STATUS = 0xC0,
RADIO_WRITE_REGISTER = 0x18,
RADIO_READ_REGISTER = 0x19,
RADIO_WRITE_BUFFER = 0x1A,
RADIO_READ_BUFFER = 0x1B,
RADIO_SET_SLEEP = 0x84,
RADIO_SET_STANDBY = 0x80,
RADIO_SET_FS = 0xC1,
RADIO_SET_TX = 0x83,
RADIO_SET_RX = 0x82,
RADIO_SET_RXDUTYCYCLE = 0x94,
RADIO_SET_CAD = 0xC5,
RADIO_SET_TXCONTINUOUSWAVE = 0xD1,
RADIO_SET_TXCONTINUOUSPREAMBLE = 0xD2,
RADIO_SET_PACKETTYPE = 0x8A,
RADIO_GET_PACKETTYPE = 0x03,
RADIO_SET_RFFREQUENCY = 0x86,
RADIO_SET_TXPARAMS = 0x8E,
RADIO_SET_CADPARAMS = 0x88,
RADIO_SET_BUFFERBASEADDRESS = 0x8F,
RADIO_SET_MODULATIONPARAMS = 0x8B,
RADIO_SET_PACKETPARAMS = 0x8C,
RADIO_GET_RXBUFFERSTATUS = 0x17,
RADIO_GET_PACKETSTATUS = 0x1D,
RADIO_GET_RSSIINST = 0x1F,
RADIO_SET_DIOIRQPARAMS = 0x8D,
RADIO_GET_IRQSTATUS = 0x15,
RADIO_CLR_IRQSTATUS = 0x97,
RADIO_CALIBRATE = 0x89,
RADIO_SET_REGULATORMODE = 0x96,
RADIO_SET_SAVECONTEXT = 0xD5,
RADIO_SET_AUTOTX = 0x98,
RADIO_SET_AUTOFS = 0x9E,
RADIO_SET_LONGPREAMBLE = 0x9B,
RADIO_SET_UARTSPEED = 0x9D,
RADIO_SET_RANGING_ROLE = 0xA3,
}RadioCommands_t;
/*!
* \brief The radio callbacks structure
* Holds function pointers to be called on radio interrupts
*/
typedef struct
{
void ( *txDone )( void ); //!< Pointer to a function run on successful transmission
void ( *rxDone )( void ); //!< Pointer to a function run on successful reception
void ( *rxSyncWordDone )( void ); //!< Pointer to a function run on successful SyncWord reception
void ( *rxHeaderDone )( void ); //!< Pointer to a function run on successful Header reception
void ( *txTimeout )( void ); //!< Pointer to a function run on transmission timeout
void ( *rxTimeout )( void ); //!< Pointer to a function run on reception timeout
void ( *rxError )( IrqErrorCode_t errCode ); //!< Pointer to a function run on reception error
void ( *rangingDone )( IrqRangingCode_t val ); //!< Pointer to a function run on ranging terminated
void ( *cadDone )( bool cadFlag ); //!< Pointer to a function run on channel activity detected
}RadioCallbacks_t;
/*!
* \brief Class holding the basic communications with a radio
*
* It sets the functions to read/write registers, send commands and read/write
* payload.
* It also provides functions to run callback functions depending on the
* interrupts generated from the radio.
*/
class Radio
{
protected:
/*!
* \brief Callback on Tx done interrupt
*/
void ( *txDone )( void );
/*!
* \brief Callback on Rx done interrupt
*/
void ( *rxDone )( void );
/*!
* \brief Callback on Rx SyncWord interrupt
*/
void ( *rxSyncWordDone )( void );
/*!
* \brief Callback on Rx header received interrupt
*/
void ( *rxHeaderDone )( void );
/*!
* \brief Callback on Tx timeout interrupt
*/
void ( *txTimeout )( void );
/*!
* \brief Callback on Rx timeout interrupt
*/
void ( *rxTimeout )( void );
/*!
* \brief Callback on Rx error interrupt
*
* \param [out] errCode A code indicating the type of interrupt (SyncWord error or CRC error)
*/
void ( *rxError )( IrqErrorCode_t errCode );
/*!
* \brief Callback on ranging done interrupt
*
* \param [out] val A flag indicating the type of interrupt (Master/Slave and Valid/Error)
*/
void ( *rangingDone )( IrqRangingCode_t val );
/*!
* \brief Callback on Channel Activity Detection done interrupt
*
* \param [out] cadFlag Flag for channel activity detected or not
*/
void ( *cadDone )( bool cadFlag );
public:
/*!
* \brief Constructor for radio class
* Sets the callbacks functions pointers
*
* \param [in] callbacks The structure of callbacks function pointers
* to be called on radio interrupts
*
*/
Radio( RadioCallbacks_t *callbacks )
{
this->txDone = callbacks->txDone;
this->rxDone = callbacks->rxDone;
this->rxSyncWordDone = callbacks->rxSyncWordDone;
this->rxHeaderDone = callbacks->rxHeaderDone;
this->txTimeout = callbacks->txTimeout;
this->rxTimeout = callbacks->rxTimeout;
this->rxError = callbacks->rxError;
this->rangingDone = callbacks->rangingDone;
this->cadDone = callbacks->cadDone;
}
virtual ~Radio( void ){ };
/*!
* \brief Resets the radio
*/
virtual void Reset( void ) = 0;
/*!
* \brief Gets the current radio status
*
* \retval status Radio status
*/
virtual RadioStatus_t GetStatus( void ) = 0;
/*!
* \brief Writes the given command to the radio
*
* \param [in] opcode Command opcode
* \param [in] buffer Command parameters byte array
* \param [in] size Command parameters byte array size
*/
virtual void WriteCommand( RadioCommands_t opcode, uint8_t *buffer, uint16_t size ) = 0;
/*!
* \brief Reads the given command from the radio
*
* \param [in] opcode Command opcode
* \param [in] buffer Command parameters byte array
* \param [in] size Command parameters byte array size
*/
virtual void ReadCommand( RadioCommands_t opcode, uint8_t *buffer, uint16_t size ) = 0;
/*!
* \brief Writes multiple radio registers starting at address
*
* \param [in] address First Radio register address
* \param [in] buffer Buffer containing the new register's values
* \param [in] size Number of registers to be written
*/
virtual void WriteRegister( uint16_t address, uint8_t *buffer, uint16_t size ) = 0;
/*!
* \brief Writes the radio register at the specified address
*
* \param [in] address Register address
* \param [in] value New register value
*/
virtual void WriteRegister( uint16_t address, uint8_t value ) = 0;
/*!
* \brief Reads multiple radio registers starting at address
*
* \param [in] address First Radio register address
* \param [out] buffer Buffer where to copy the registers data
* \param [in] size Number of registers to be read
*/
virtual void ReadRegister( uint16_t address, uint8_t *buffer, uint16_t size ) = 0;
/*!
* \brief Reads the radio register at the specified address
*
* \param [in] address Register address
*
* \retval value The register value
*/
virtual uint8_t ReadRegister( uint16_t address ) = 0;
/*!
* \brief Writes Radio Data Buffer with buffer of size starting at offset.
*
* \param [in] offset Offset where to start writing
* \param [in] buffer Buffer pointer
* \param [in] size Buffer size
*/
virtual void WriteBuffer( uint8_t offset, uint8_t *buffer, uint8_t size ) = 0;
/*!
* \brief Reads Radio Data Buffer at offset to buffer of size
*
* \param [in] offset Offset where to start reading
* \param [out] buffer Buffer pointer
* \param [in] size Buffer size
*/
virtual void ReadBuffer( uint8_t offset, uint8_t *buffer, uint8_t size ) = 0;
/*!
* \brief Return firmware version
*
* \retval firmware The firmware version
*/
virtual uint16_t GetFirmwareVersion( void ) = 0;
};
#endif // __RADIO_H__

View File

@@ -0,0 +1,152 @@
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF10BW0400[NUMBER_OF_FACTORS_PER_SFBW] =
{
-5.8767, // 0
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-2.2375,
-1.6080,
-0.0631,
0.9782,
3.1984,
3.3014,
3.1927,
3.4959,
3.2842,
3.2098,
2.9237,
2.9123,
3.0038,
2.9294,
2.8722,
2.7120,
2.6033,
2.6548,
2.7292,
2.5690,
2.5575,
2.6033,
2.5861,
2.5575,
2.5232,
2.5918,
2.5804,
2.4888,
2.5232,
2.5346,
2.5575,
2.5747,
2.4774,
2.9581,
2.6491,
2.6548,
2.7177,
2.8093,
2.9924,
4.2283,
4.7204,
4.7319,
5.1439,
4.9665,
5.4557,
5.9450,
6.4599,
6.9749,
7.4899,
7.3564,
7.2229,
7.0894,
6.9559,
6.8223,
6.6888,
6.5553,
6.4218,
6.2883,
7.6787,
7.9591,
7.9019,
7.9133,
8.0736,
7.9248,
8.0221,
8.0163,
8.3711,
8.3139,
8.3597,
8.5714,
8.6801,
9.0692,
9.3553,
9.0864,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF10BW0400 = {
.order = 1,
.coefficients = {1}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF10BW0800[NUMBER_OF_FACTORS_PER_SFBW] =
{
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-15.7301,
-6.5519,
0.81806,
-0.18902,
3.4731,
6.4486,
6.0823,
5.2355,
4.3886,
4.1826,
4.0682,
3.3815,
2.8322,
3.1527,
2.6033,
3.1984,
3.0153,
2.878,
2.0998,
1.6649,
2.1913,
2.1913,
2.0998,
1.7336,
1.6878,
1.6878,
1.8709,
2.054,
2.0082,
1.6878,
1.5963,
1.5047,
1.8251,
1.7794,
1.7794,
1.9167,
1.6878,
1.7336,
2.0082,
2.2829,
1.9625,
1.8709,
2.3745,
2.054,
3.5189,
3.4731,
3.1984,
3.8393,
4.3886,
3.8393,
4.1597,
4.3886,
4.6633,
4.8006,
4.5717,
4.4802,
4.709,
4.709,
4.709,
4.6633,
4.8922,
6.0823,
6.4486,
6.4486,
7.2725,
7.1352,
7.2725,
7.2267,
7.2725,
6.9979,
7.181,
7.4556,
7.9134,
7.7761,
7.7761,
8.2338,
7.9134,
8.2338,
8.0965,
8.4169,
8.9205,
8.6916,
8.6458,
9.6071,
9.1494,
8.5085,
8.1423,
8.9205,
8.9663,
9.0578,
9.424,
9.2867,
9.012,
9.6529,
9.9733,
9.6529,
9.6987,
10.0191,
9.5156,
9.2409,
9.836,
9.5156,
9.6529,
10.248,
9.9733,
9.6529,
10.2022,
10.2022,
10.1564,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
7.3183,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF10BW0800 = {
.order = 7,
.coefficients = {
-2.5249e-10,
4.1465e-08,
-2.1035e-07,
-0.00023649,
0.012744,
0.64066,
0.84731,
}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF10BW1600[NUMBER_OF_FACTORS_PER_SFBW] =
{
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
0.60062,
1.4818,
3.2328,
2.6262,
2.054,
2.6262,
1.5619,
1.9281,
2.2943,
1.4132,
1.4589,
1.4475,
1.9625,
1.7565,
1.5505,
1.8709,
1.9167,
1.8709,
1.6191,
1.6649,
1.6878,
1.5963,
1.7794,
1.9052,
1.8251,
1.7336,
1.5734,
1.5047,
1.7336,
1.848,
1.7107,
1.642,
1.7107,
1.7565,
1.5734,
1.5963,
1.5734,
1.7794,
1.7336,
1.6878,
1.6878,
1.7107,
1.8022,
1.7336,
2.4431,
1.7565,
1.7565,
3.4044,
3.6333,
3.8622,
3.5646,
3.6104,
3.5646,
3.6333,
3.5189,
3.6791,
3.7935,
3.7249,
3.7706,
3.9537,
3.8965,
3.6562,
3.7706,
4.4115,
5.4758,
6.2654,
6.5401,
6.563,
6.7003,
6.8376,
6.8148,
6.8148,
6.8148,
7.0436,
7.1352,
7.3641,
7.387,
7.4785,
7.6158,
7.5701,
7.593,
7.5701,
7.7303,
7.9134,
7.9134,
7.9592,
8.1194,
8.3025,
8.3712,
8.5543,
8.8976,
8.8747,
9.012,
9.1036,
9.0578,
9.012,
9.1494,
9.1036,
9.218,
9.218,
9.218,
9.2638,
9.1951,
9.1265,
9.3096,
9.2638,
9.2752,
9.2638,
9.2409,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
8.9777,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF10BW1600 = {
.order = 7,
.coefficients = {
4.9932e-11,
-5.5685e-08,
1.0616e-05,
-0.00070018,
0.017218,
0.70178,
0.65429,
}
};

View File

@@ -0,0 +1,152 @@
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF5BW0400[NUMBER_OF_FACTORS_PER_SFBW] =
{
-5.8767, // 0
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-2.2375,
-1.6080,
-0.0631,
0.9782,
3.1984,
3.3014,
3.1927,
3.4959,
3.2842,
3.2098,
2.9237,
2.9123,
3.0038,
2.9294,
2.8722,
2.7120,
2.6033,
2.6548,
2.7292,
2.5690,
2.5575,
2.6033,
2.5861,
2.5575,
2.5232,
2.5918,
2.5804,
2.4888,
2.5232,
2.5346,
2.5575,
2.5747,
2.4774,
2.9581,
2.6491,
2.6548,
2.7177,
2.8093,
2.9924,
4.2283,
4.7204,
4.7319,
5.1439,
4.9665,
5.4557,
5.9450,
6.4599,
6.9749,
7.4899,
7.3564,
7.2229,
7.0894,
6.9559,
6.8223,
6.6888,
6.5553,
6.4218,
6.2883,
7.6787,
7.9591,
7.9019,
7.9133,
8.0736,
7.9248,
8.0221,
8.0163,
8.3711,
8.3139,
8.3597,
8.5714,
8.6801,
9.0692,
9.3553,
9.0864,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF5BW0400 = {
.order = 1,
.coefficients = {1}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF5BW0800[NUMBER_OF_FACTORS_PER_SFBW] =
{
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
629.5565,
-3.5078,
-7.8566,
-5.2244,
1.7336,
1.7565,
1.7794,
2.2829,
1.7794,
2.0998,
1.5047,
1.5047,
1.6878,
1.7336,
1.1843,
1.7794,
0.95539,
0.68073,
0.40607,
0.58918,
0.31452,
0.36029,
0.22296,
0.22296,
0.22296,
-0.09747,
0.085636,
0.17719,
0.13141,
-0.051693,
-0.14325,
-0.005917,
-0.051693,
0.17719,
0.085636,
-0.09747,
0.085636,
0.039859,
0.039859,
0.86383,
1.1843,
0.90961,
0.40607,
1.8251,
2.5576,
2.3287,
2.878,
2.6949,
2.7407,
3.4731,
4.709,
1.5505,
3.3815,
1.8709,
3.1984,
1.7107,
3.8393,
4.9379,
5.3957,
5.5559,
4.6633,
5.9221,
5.4186,
6.7232,
6.3112,
6.0366,
6.2654,
6.5859,
5.945,
6.1739,
6.1739,
6.6088,
6.9063,
6.1281,
6.7232,
6.0595,
6.4028,
6.8148,
6.7232,
7.3183,
7.3412,
7.4099,
7.5472,
7.9592,
8.5085,
8.4398,
8.5543,
8.7374,
9.3325,
6.7461,
7.3641,
9.9276,
8.1423,
7.6158,
8.2338,
8.0507,
8.1881,
8.1881,
8.0049,
7.9134,
8.9205,
8.5085,
8.394,
8.0278,
8.0965,
7.8218,
7.4327,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
7.1581,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF5BW0800 = {
.order = 7,
.coefficients = {
1.2982e-09,
-4.2047e-07,
4.7657e-05,
-0.002194,
0.033782,
0.94647,
2.0949,
}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF5BW1600[NUMBER_OF_FACTORS_PER_SFBW] =
{
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1406.2441,
1117.441,
183.2598,
7.4327,
3.7821,
2.9238,
2.9467,
3.2671,
3.0611,
2.26,
2.5461,
2.1913,
2.1913,
2.1456,
2.3745,
2.3287,
2.2371,
2.1685,
2.2371,
2.1456,
2.3058,
2.054,
2.157,
2.2142,
2.1685,
2.2371,
2.2371,
2.26,
2.2142,
2.2371,
2.3058,
2.1913,
2.054,
2.0769,
2.2829,
1.9854,
2.0998,
2.1913,
2.3058,
2.8093,
3.1069,
3.9995,
3.8851,
4.6862,
4.6061,
4.2513,
4.3199,
4.8464,
4.6175,
4.7319,
4.8235,
4.7548,
5.0066,
5.4186,
6.151,
6.2197,
6.6088,
7.2039,
7.4327,
7.6158,
7.9134,
7.8218,
7.6387,
7.6845,
7.284,
7.4327,
7.5472,
7.593,
7.4327,
8.0965,
7.9134,
7.4556,
7.7532,
7.8905,
8.2796,
8.4169,
8.4398,
8.6,
8.8289,
8.9663,
9.6529,
9.7902,
10.1793,
9.6758,
9.7902,
9.6987,
9.5842,
9.5156,
9.4927,
9.4469,
9.5842,
9.5156,
9.5385,
9.5156,
9.0349,
9.0349,
9.0349,
9.3554,
9.1951,
9.5385,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
8.7488,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF5BW1600 = {
.order = 7,
.coefficients = {
5.2651e-10,
-2.2875e-07,
3.4135e-05,
-0.00215,
0.056288,
0.307,
0.86706,
}
};

View File

@@ -0,0 +1,152 @@
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF6BW0400[NUMBER_OF_FACTORS_PER_SFBW] =
{
-5.8767, // 0
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-2.2375,
-1.6080,
-0.0631,
0.9782,
3.1984,
3.3014,
3.1927,
3.4959,
3.2842,
3.2098,
2.9237,
2.9123,
3.0038,
2.9294,
2.8722,
2.7120,
2.6033,
2.6548,
2.7292,
2.5690,
2.5575,
2.6033,
2.5861,
2.5575,
2.5232,
2.5918,
2.5804,
2.4888,
2.5232,
2.5346,
2.5575,
2.5747,
2.4774,
2.9581,
2.6491,
2.6548,
2.7177,
2.8093,
2.9924,
4.2283,
4.7204,
4.7319,
5.1439,
4.9665,
5.4557,
5.9450,
6.4599,
6.9749,
7.4899,
7.3564,
7.2229,
7.0894,
6.9559,
6.8223,
6.6888,
6.5553,
6.4218,
6.2883,
7.6787,
7.9591,
7.9019,
7.9133,
8.0736,
7.9248,
8.0221,
8.0163,
8.3711,
8.3139,
8.3597,
8.5714,
8.6801,
9.0692,
9.3553,
9.0864,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF6BW0400 = {
.order = 1,
.coefficients = {1}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF6BW0800[NUMBER_OF_FACTORS_PER_SFBW] =
{
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-26.0984,
-7.8795,
3.9309,
1.8709,
0.085636,
1.7794,
1.8938,
2.0082,
2.6033,
2.3516,
2.5576,
2.6033,
1.6878,
1.5276,
1.7336,
1.5963,
1.8709,
2.054,
1.642,
1.23,
1.0927,
1.0927,
1.23,
1.0012,
0.86383,
0.86383,
0.63495,
0.7265,
1.1614,
1.1385,
0.81806,
0.70362,
0.77228,
1.0469,
0.95539,
1.0927,
1.0469,
1.0012,
0.86383,
1.0012,
0.86383,
1.1385,
1.0012,
1.3216,
2.4202,
2.9695,
3.1984,
3.29,
3.0153,
2.878,
3.1984,
3.0153,
3.0382,
3.1069,
2.878,
2.878,
2.878,
3.0153,
3.8393,
5.4872,
5.8992,
6.0823,
6.0366,
6.0366,
6.0823,
6.0366,
6.4486,
6.4028,
6.2883,
6.4028,
6.357,
6.9521,
7.181,
7.181,
7.0894,
7.2267,
7.0894,
7.181,
7.6158,
7.8676,
7.7303,
8.0049,
7.9592,
8.2796,
8.4169,
8.5085,
8.5543,
8.5543,
9.2409,
9.1494,
8.7831,
8.6458,
8.6,
8.6916,
8.6458,
8.7374,
8.7374,
8.6458,
8.4627,
8.4169,
8.4398,
8.3712,
8.4627,
8.3254,
8.2338,
8.0507,
8.0049,
7.8218,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
5.327,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF6BW0800 = {
.order = 7,
.coefficients = {
7.332e-10,
-2.6601e-07,
3.3492e-05,
-0.0017251,
0.0325,
0.75862,
0.76234,
}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF6BW1600[NUMBER_OF_FACTORS_PER_SFBW] =
{
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
5.1897,
3.4159,
1.642,
3.29,
2.5232,
2.3516,
2.7178,
2.2829,
2.363,
2.4202,
2.6949,
2.5576,
2.5347,
2.3516,
2.1456,
2.0769,
2.0311,
2.3058,
2.0769,
2.054,
2.2142,
2.1227,
2.1913,
2.0769,
2.0998,
2.0998,
2.0998,
2.1227,
2.1227,
2.054,
2.0998,
2.1456,
2.1341,
2.0998,
2.1913,
2.5118,
2.5576,
2.2829,
2.1913,
2.2371,
2.3287,
2.3516,
3.7706,
4.3199,
4.2284,
4.6633,
3.8393,
6.1968,
4.0453,
4.7319,
5.4186,
6.1052,
6.8071,
7.509,
8.2109,
9.7673,
10.4311,
8.4227,
6.4142,
6.1739,
6.7919,
7.0665,
7.2725,
7.4327,
7.2954,
7.4556,
7.387,
7.2954,
7.387,
7.8905,
7.8218,
7.799,
7.9821,
8.0965,
8.5085,
8.7145,
9.4927,
10.2709,
10.3138,
10.3567,
10.3996,
10.4425,
10.4855,
10.5284,
10.5713,
10.6142,
9.0578,
9.424,
9.9047,
9.2752,
9.1951,
9.1722,
9.0578,
9.1036,
9.012,
9.0807,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
8.5772,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF6BW1600 = {
.order = 7,
.coefficients = {
-4.0868e-11,
-3.4304e-08,
8.0824e-06,
-0.00046919,
0.0041892,
1.0182,
0.63995,
}
};

View File

@@ -0,0 +1,152 @@
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF7BW0400[NUMBER_OF_FACTORS_PER_SFBW] =
{
-5.8767, // 0
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-2.2375,
-1.6080,
-0.0631,
0.9782,
3.1984,
3.3014,
3.1927,
3.4959,
3.2842,
3.2098,
2.9237,
2.9123,
3.0038,
2.9294,
2.8722,
2.7120,
2.6033,
2.6548,
2.7292,
2.5690,
2.5575,
2.6033,
2.5861,
2.5575,
2.5232,
2.5918,
2.5804,
2.4888,
2.5232,
2.5346,
2.5575,
2.5747,
2.4774,
2.9581,
2.6491,
2.6548,
2.7177,
2.8093,
2.9924,
4.2283,
4.7204,
4.7319,
5.1439,
4.9665,
5.4557,
5.9450,
6.4599,
6.9749,
7.4899,
7.3564,
7.2229,
7.0894,
6.9559,
6.8223,
6.6888,
6.5553,
6.4218,
6.2883,
7.6787,
7.9591,
7.9019,
7.9133,
8.0736,
7.9248,
8.0221,
8.0163,
8.3711,
8.3139,
8.3597,
8.5714,
8.6801,
9.0692,
9.3553,
9.0864,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF7BW0400 = {
.order = 1,
.coefficients = {1}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF7BW0800[NUMBER_OF_FACTORS_PER_SFBW] =
{
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
0.81806,
-2.2261,
1.8251,
3.2442,
2.5347,
3.8851,
3.4273,
3.0268,
2.6262,
2.5118,
3.4044,
2.6949,
2.7864,
2.5118,
2.7178,
2.8322,
2.8322,
2.7864,
3.5646,
3.0153,
3.1069,
3.1069,
2.9695,
2.6949,
2.7407,
2.6033,
2.5118,
2.6033,
2.1456,
2.0082,
2.3058,
2.054,
1.7336,
1.8709,
1.6878,
1.6878,
2.0082,
2.1456,
2.054,
2.1913,
2.1456,
2.2371,
2.0998,
2.0082,
2.0998,
2.7864,
4.0682,
4.114,
4.0682,
3.9309,
4.0224,
3.702,
3.7477,
3.6562,
3.6562,
3.6104,
3.702,
3.5646,
3.5189,
4.1597,
5.3728,
5.8077,
6.0366,
5.8992,
5.0753,
6.6317,
6.4943,
6.3112,
6.2654,
6.6774,
6.9979,
7.0894,
7.593,
7.8218,
7.6158,
7.7303,
7.2267,
7.8218,
7.4099,
7.7303,
7.9134,
8.4627,
8.7374,
8.7831,
8.6458,
8.6916,
8.8747,
8.7374,
8.6916,
8.8747,
9.2409,
9.4698,
9.6071,
9.3325,
9.218,
9.424,
9.2409,
9.1036,
9.2409,
9.1951,
8.9663,
9.1494,
9.0578,
9.1494,
9.1036,
9.0578,
9.1036,
9.2409,
9.1036,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
10.2938,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF7BW0800 = {
.order = 7,
.coefficients = {
1.1319e-09,
-4.0746e-07,
5.2135e-05,
-0.002826,
0.060466,
0.47938,
1.0562,
}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF7BW1600[NUMBER_OF_FACTORS_PER_SFBW] =
{
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-1.7225,
-0.94433,
0.016971,
0.57773,
1.1385,
1.5047,
1.6649,
1.6535,
1.5963,
1.8022,
1.5963,
1.5161,
1.5963,
1.4818,
1.5963,
1.2529,
1.4132,
1.2987,
1.3903,
1.3788,
1.3674,
1.2987,
1.4818,
1.3903,
1.4589,
1.3903,
1.4818,
1.4475,
1.5505,
1.5505,
1.436,
1.4818,
1.5505,
1.6191,
1.5276,
1.6649,
1.7336,
1.5734,
1.6191,
1.7107,
1.5734,
1.7336,
1.5963,
1.642,
2.2371,
3.702,
3.6791,
3.4731,
3.5418,
3.4502,
3.5189,
3.5875,
3.5646,
3.5418,
3.4273,
3.4273,
3.6562,
3.599,
3.6333,
4.4802,
5.2469,
5.0981,
4.8693,
5.4415,
6.1968,
6.5859,
6.6545,
6.5172,
6.5401,
6.769,
7.4327,
7.0665,
7.0894,
7.2039,
7.0208,
7.3412,
7.4556,
7.387,
7.6387,
7.9592,
8.0164,
8.1423,
7.8447,
8.2796,
8.4398,
8.5543,
8.4398,
8.7145,
8.9891,
8.6458,
8.6916,
8.6687,
8.6229,
8.7603,
8.8747,
8.7374,
8.6687,
8.5772,
8.5543,
8.5543,
8.4856,
8.4627,
8.7145,
8.806,
8.7603,
7.3412,
8.0965,
4.2284,
16.3248,
16.5422,
16.5422,
15.9471,
16.1989,
15.8785,
15.558,
15.558,
15.558,
15.558,
15.558,
15.558,
15.558,
15.558,
15.558,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF7BW1600 = {
.order = 7,
.coefficients = {
2.8727e-10,
-1.3583e-07,
1.9766e-05,
-0.0010869,
0.019294,
0.8705,
0.64863,
}
};

View File

@@ -0,0 +1,152 @@
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF8BW0400[NUMBER_OF_FACTORS_PER_SFBW] =
{
-5.8767, // 0
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-2.2375,
-1.6080,
-0.0631,
0.9782,
3.1984,
3.3014,
3.1927,
3.4959,
3.2842,
3.2098,
2.9237,
2.9123,
3.0038,
2.9294,
2.8722,
2.7120,
2.6033,
2.6548,
2.7292,
2.5690,
2.5575,
2.6033,
2.5861,
2.5575,
2.5232,
2.5918,
2.5804,
2.4888,
2.5232,
2.5346,
2.5575,
2.5747,
2.4774,
2.9581,
2.6491,
2.6548,
2.7177,
2.8093,
2.9924,
4.2283,
4.7204,
4.7319,
5.1439,
4.9665,
5.4557,
5.9450,
6.4599,
6.9749,
7.4899,
7.3564,
7.2229,
7.0894,
6.9559,
6.8223,
6.6888,
6.5553,
6.4218,
6.2883,
7.6787,
7.9591,
7.9019,
7.9133,
8.0736,
7.9248,
8.0221,
8.0163,
8.3711,
8.3139,
8.3597,
8.5714,
8.6801,
9.0692,
9.3553,
9.0864,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF8BW0400 = {
.order = 1,
.coefficients = {1}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF8BW0800[NUMBER_OF_FACTORS_PER_SFBW] =
{
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
6.5401,
9.0578,
8.3254,
8.7145,
7.9134,
5.8535,
2.9238,
3.3586,
3.7935,
4.5946,
3.3358,
3.3815,
2.466,
2.2829,
2.26,
2.6949,
2.5576,
2.6949,
2.7407,
1.9625,
2.6491,
2.6262,
2.466,
2.466,
2.6491,
2.5118,
2.6949,
2.6033,
2.2371,
2.0082,
2.4202,
2.3745,
2.3287,
1.2758,
2.3745,
2.1456,
2.4202,
2.2371,
2.1913,
2.1913,
2.0998,
1.9167,
1.7336,
1.9625,
2.0082,
3.1069,
3.5646,
3.2442,
2.6033,
2.3287,
2.466,
3.0153,
3.1527,
3.5189,
3.6562,
4.0682,
4.3886,
3.9309,
4.1597,
4.5259,
4.0682,
4.2971,
4.4802,
6.1739,
4.9837,
4.8006,
5.1668,
5.6246,
6.5859,
5.5788,
6.357,
6.8605,
5.8077,
5.533,
7.0436,
7.2267,
7.0436,
6.9979,
7.6387,
7.5014,
7.181,
7.2267,
7.2725,
7.0894,
7.5014,
7.4099,
7.181,
7.8676,
7.8676,
7.8218,
8.1423,
8.6458,
8.2796,
6.9063,
8.1881,
8.0049,
7.9134,
8.8289,
9.1951,
9.1951,
8.8289,
8.8289,
8.6916,
9.012,
9.1951,
9.2867,
9.1494,
9.1494,
9.1494,
9.3782,
9.2867,
8.9205,
9.0578,
9.6071,
9.6071,
9.4698,
9.3325,
9.1951,
8.5543,
9.0807,
9.6071,
8.9205,
8.9205,
8.9205,
8.9205,
8.9205,
8.9205,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF8BW0800 = {
.order = 7,
.coefficients = {
1.3734e-09,
-4.8827e-07,
6.2307e-05,
-0.0034244,
0.076932,
0.31329,
0.80983,
}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF8BW1600[NUMBER_OF_FACTORS_PER_SFBW] =
{
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-14.2767,
-8.9895,
-3.7596,
-2.043,
-0.57812,
2.7521,
6.0823,
7.0208,
5.6017,
5.7619,
6.5859,
6.5973,
5.3156,
3.4388,
2.3859,
3.8164,
3.5189,
3.4845,
4.2971,
3.7935,
3.3815,
3.4845,
3.5189,
3.5875,
3.3815,
3.1755,
2.9581,
3.0611,
3.0153,
2.9009,
2.8093,
3.5875,
3.3815,
2.7864,
2.7407,
2.672,
2.7864,
2.6949,
2.7178,
2.6949,
2.7407,
2.7864,
2.7636,
2.7864,
2.8322,
2.878,
3.702,
3.6562,
3.3358,
3.702,
3.3815,
3.6562,
3.9309,
3.8164,
4.0911,
4.4229,
4.6862,
4.6175,
4.7548,
4.9837,
6.5401,
6.0366,
5.4644,
5.9679,
7.4671,
5.6475,
5.121,
5.0295,
5.9221,
7.6845,
7.3183,
6.7003,
7.9363,
6.9979,
6.8834,
8.2338,
8.1423,
8.5085,
8.1194,
7.8676,
8.0278,
7.7761,
8.4398,
8.2567,
8.2338,
8.5543,
8.6,
8.5772,
8.8175,
9.1036,
8.8976,
8.8747,
9.1722,
9.1494,
9.63,
9.6071,
9.836,
10.0763,
9.7673,
9.8818,
9.7788,
9.7673,
9.7444,
9.8818,
9.9504,
9.9962,
10.1107,
10.042,
10.042,
10.2137,
10.0878,
9.9276,
10.1107,
9.5156,
9.0464,
9.3296,
9.6128,
9.8961,
10.1793,
10.1335,
8.2796,
8.169,
8.0584,
7.9477,
7.9477,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF8BW1600 = {
.order = 7,
.coefficients = {
7.2578e-10,
-2.8033e-07,
3.8153e-05,
-0.0022174,
0.053196,
0.45123,
1.0199,
}
};

View File

@@ -0,0 +1,152 @@
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF9BW0400[NUMBER_OF_FACTORS_PER_SFBW] =
{
-5.8767, // 0
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-5.8767,
-2.2375,
-1.6080,
-0.0631,
0.9782,
3.1984,
3.3014,
3.1927,
3.4959,
3.2842,
3.2098,
2.9237,
2.9123,
3.0038,
2.9294,
2.8722,
2.7120,
2.6033,
2.6548,
2.7292,
2.5690,
2.5575,
2.6033,
2.5861,
2.5575,
2.5232,
2.5918,
2.5804,
2.4888,
2.5232,
2.5346,
2.5575,
2.5747,
2.4774,
2.9581,
2.6491,
2.6548,
2.7177,
2.8093,
2.9924,
4.2283,
4.7204,
4.7319,
5.1439,
4.9665,
5.4557,
5.9450,
6.4599,
6.9749,
7.4899,
7.3564,
7.2229,
7.0894,
6.9559,
6.8223,
6.6888,
6.5553,
6.4218,
6.2883,
7.6787,
7.9591,
7.9019,
7.9133,
8.0736,
7.9248,
8.0221,
8.0163,
8.3711,
8.3139,
8.3597,
8.5714,
8.6801,
9.0692,
9.3553,
9.0864,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
8.8174,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF9BW0400 = {
.order = 1,
.coefficients = {1}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF9BW0800[NUMBER_OF_FACTORS_PER_SFBW] =
{
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
39.6364,
-53.2896,
-35.4979,
-17.7061,
0.085636,
26.9106,
18.8654,
10.8202,
2.775,
-5.2702,
-1.6081,
0.5434,
5.9908,
3.0153,
2.6491,
2.4202,
4.3657,
4.1368,
4.2971,
2.8322,
3.8393,
3.7935,
3.4273,
3.3358,
3.2442,
2.9238,
3.1069,
3.0611,
2.8322,
2.7864,
2.878,
2.6949,
2.7864,
2.8322,
2.8322,
2.6033,
2.7407,
2.6949,
2.6491,
2.3287,
2.5576,
2.6949,
2.5576,
2.5576,
3.3358,
4.1597,
3.9309,
3.9309,
4.0224,
4.2513,
4.2513,
4.2513,
4.5259,
4.4344,
4.6633,
4.7548,
4.4344,
4.6633,
4.9379,
4.7548,
4.6175,
5.121,
5.1668,
5.0753,
6.8605,
7.0436,
7.0436,
7.7761,
7.6845,
7.6845,
7.9134,
7.7761,
7.8218,
7.9592,
7.7761,
7.8218,
7.9592,
8.0507,
8.0049,
7.8218,
8.0965,
8.1881,
8.1881,
8.3712,
8.8747,
8.9205,
8.8289,
8.9205,
9.012,
9.1494,
9.3325,
9.2867,
9.5156,
9.3782,
9.2409,
9.2867,
9.424,
9.6987,
9.8818,
9.7444,
9.8818,
10.0191,
9.9276,
9.9733,
10.0649,
10.0649,
10.0649,
9.9276,
10.0649,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
10.1564,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF9BW0800 = {
.order = 7,
.coefficients = {
1.0871e-10,
-6.7614e-08,
1.1233e-05,
-0.00069623,
0.016443,
0.72006,
0.78863,
}
};

View File

@@ -0,0 +1,181 @@
// Generated LUT and Polynomial Values
#include "rangingCorrection_defines.h"
const double RangingCorrectionSF9BW1600[NUMBER_OF_FACTORS_PER_SFBW] =
{
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
-2.8555,
2.6262,
1.0012,
-0.074582,
1.0241,
2.0998,
2.4431,
2.3058,
2.1685,
2.6262,
2.4202,
2.4546,
1.8938,
2.2829,
2.4431,
2.672,
2.5461,
2.8093,
2.6033,
2.2371,
2.26,
2.0998,
2.3287,
2.3516,
2.3058,
2.466,
2.3058,
2.157,
2.2142,
2.3287,
2.26,
2.3287,
2.2715,
2.2371,
2.2371,
2.3745,
2.3287,
2.3287,
2.26,
2.1227,
2.1227,
2.1913,
2.2829,
2.3973,
2.3058,
2.1685,
2.26,
3.4731,
4.1368,
4.5946,
4.3886,
4.0911,
4.2513,
4.0911,
4.1826,
4.3886,
4.0682,
4.3657,
4.3886,
4.3428,
4.6175,
4.4802,
4.4344,
4.7777,
4.915,
5.6475,
5.0981,
7.3412,
7.181,
6.8605,
7.2954,
7.2954,
7.2039,
7.4785,
7.9592,
8.0049,
7.9134,
7.9592,
8.0049,
8.0049,
8.1194,
8.1194,
8.2567,
8.2338,
8.1881,
8.3712,
8.3712,
8.4169,
8.8518,
8.6,
8.806,
8.909,
9.1951,
9.4011,
9.4469,
9.424,
9.527,
9.4469,
9.424,
9.5156,
9.3782,
9.527,
9.424,
9.5156,
9.5156,
9.4011,
9.5156,
9.5156,
9.4927,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
9.424,
};
const RangingCorrectionPolynomes_t correctionRangingPolynomeSF9BW1600 = {
.order = 7,
.coefficients = {
6.2781e-10,
-2.6256e-07,
3.7632e-05,
-0.0022408,
0.05252,
0.47936,
0.46183,
}
};

View File

@@ -0,0 +1,15 @@
#ifndef __RANGING_CORRECTION_DEFINES_H__
#define __RANGING_CORRECTION_DEFINES_H__
#include <stdint.h>
#define NUMBER_OF_FACTORS_PER_SFBW 160
#define MAX_POLYNOME_ORDER 10
typedef struct{
const uint8_t order;
const double coefficients[MAX_POLYNOME_ORDER];
}RangingCorrectionPolynomes_t;
#endif // __RANGING_CORRECTION_DEFINES_H__

View File

@@ -0,0 +1,266 @@
/*
______ _
/ _____) _ | |
( (____ _____ ____ _| |_ _____ ____| |__
\____ \| ___ | (_ _) ___ |/ ___) _ \
_____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
(C)2016 Semtech
Description: Handling of the node configuration protocol
License: Revised BSD License, see LICENSE.TXT file include in the project
Maintainer: Miguel Luis, Gregory Cristian and Matthieu Verdy
*/
#include "sx1280-hal.h"
#include <functional>
#include <FreeRTOS.h>
#include <task.h>
#include <cstring>
/*!
* \brief Used to block execution waiting for low state on radio busy pin.
* Essentially used in SPI communications
*/
#define WaitOnBusy( ) for(uint8_t val=0; val != 1; BUSY->read(&val));
/*!
* \brief Macro used to enable and disable callback without disabling IRQ
*/
#define setDioIrqEnabled( enabled ) EXTIHandler::getInstance()->setCallbackEnabled(DIO1, enabled)
// This code handles cases where assert_param is undefined
#ifndef assert_param
#define assert_param( ... )
#endif
SX1280Hal::SX1280Hal( SPI_Peripheral* pSpiPeripheral, GPIO_Pin* pNssPin,
GPIO_Pin* pBusyPin, GPIO_Pin* pIrqPin, GPIO_Pin* pRstPin,
RadioCallbacks_t *callbacks ) :
SX1280( callbacks ),
RadioSpi(pSpiPeripheral),
RadioNss( pNssPin ),
RadioReset( pRstPin ),
BUSY( pBusyPin ),
DIO1( pIrqPin )
{
}
SX1280Hal::~SX1280Hal( void )
{
};
void SX1280Hal::SpiInit( void )
{
RadioNss->set();
}
void SX1280Hal::IoIrqInit( DioIrqHandler irqHandler )
{
assert_param( RadioSpi != NULL );
SpiInit( );
std::function<void(void*)> callbackFunction = [this, irqHandler](void* ptr){(this->*irqHandler)();};
EXTIHandler::getInstance()->registerCallback(callbackFunction, nullptr, DIO1);
EXTIHandler::getInstance()->setCallbackEnabled(DIO1, true);
}
void SX1280Hal::Reset( void )
{
setDioIrqEnabled( false );
vTaskDelay( 20 );
RadioReset->reset();
vTaskDelay( 50 );
RadioReset->set();
vTaskDelay( 20 );
setDioIrqEnabled( true );
}
void SX1280Hal::Wakeup( void )
{
setDioIrqEnabled( false );
//Don't wait for BUSY here
if( RadioSpi != NULL )
{
RadioSpi->take(100);
RadioNss->reset();
uint8_t txBuffer[2] = {RADIO_GET_STATUS, 0};
RadioSpi->transmit(txBuffer, 2);
RadioNss->set();
RadioSpi->give();
}
// Wait for chip to be ready.
WaitOnBusy( );
setDioIrqEnabled( true );
}
void SX1280Hal::WriteCommand( RadioCommands_t command, uint8_t *buffer, uint16_t size )
{
WaitOnBusy( );
if( RadioSpi != NULL )
{
RadioSpi->take(100);
RadioNss->reset();
uint8_t txBuffer[size+1];
txBuffer[0] = command;
memcpy(txBuffer+1, buffer, size);
RadioSpi->transmit(txBuffer, size+1);
RadioNss->set();
RadioSpi->give();
}
if( command != RADIO_SET_SLEEP )
{
WaitOnBusy( );
}
}
void SX1280Hal::ReadCommand( RadioCommands_t command, uint8_t *buffer, uint16_t size )
{
WaitOnBusy( );
if( RadioSpi != NULL )
{
RadioSpi->take(100);
RadioNss->reset();
if( command == RADIO_GET_STATUS )
{
uint8_t txBuffer[3] = {RADIO_GET_STATUS, 0, 0};
uint8_t rxBuffer[3];
RadioSpi->trx(txBuffer, rxBuffer, 3);
buffer[0] = rxBuffer[0];
}
else
{
uint8_t txBuffer[size+2];
uint8_t rxBuffer[size+2];
memset(txBuffer, 0, size+2);
txBuffer[0] = command;
RadioSpi->trx(txBuffer, rxBuffer, size+2);
memcpy(buffer, rxBuffer+2, size);
}
RadioNss->set();
RadioSpi->give();
}
WaitOnBusy( );
}
void SX1280Hal::WriteRegister( uint16_t address, uint8_t *buffer, uint16_t size )
{
WaitOnBusy( );
if( RadioSpi != NULL )
{
RadioSpi->take(100);
RadioNss->reset();
uint8_t txBuffer[size+3];
txBuffer[0] = RADIO_WRITE_REGISTER;
txBuffer[1] = ( address & 0xFF00 ) >> 8;
txBuffer[2] = address & 0x00FF;
memcpy(txBuffer+3, buffer, size);
RadioSpi->transmit(txBuffer, size+3);
RadioNss->set();
RadioSpi->give();
}
WaitOnBusy( );
}
void SX1280Hal::WriteRegister( uint16_t address, uint8_t value )
{
WriteRegister( address, &value, 1 );
}
void SX1280Hal::ReadRegister( uint16_t address, uint8_t *buffer, uint16_t size )
{
WaitOnBusy( );
if( RadioSpi != NULL )
{
RadioSpi->take(100);
RadioNss->reset();
uint8_t txBuffer[size+4];
uint8_t rxBuffer[size+4];
txBuffer[0] = RADIO_READ_REGISTER;
txBuffer[1] = ( address & 0xFF00 ) >> 8;
txBuffer[2] = address & 0x00FF;
memset(txBuffer+3, 0, size+1);
RadioSpi->trx(txBuffer, rxBuffer, size+4);
memcpy(buffer, rxBuffer+4, size);
RadioNss->set();
RadioSpi->give();
}
WaitOnBusy( );
}
uint8_t SX1280Hal::ReadRegister( uint16_t address )
{
uint8_t data;
ReadRegister( address, &data, 1 );
return data;
}
void SX1280Hal::WriteBuffer( uint8_t offset, uint8_t *buffer, uint8_t size )
{
WaitOnBusy( );
if( RadioSpi != NULL )
{
RadioSpi->take(100);
RadioNss->reset();
uint8_t txBuffer[size+2];
txBuffer[0] = RADIO_WRITE_BUFFER;
txBuffer[1] = offset;
memcpy(txBuffer+2, buffer, size);
RadioSpi->transmit(txBuffer, size+2);
RadioNss->set();
RadioSpi->give();
}
WaitOnBusy( );
}
void SX1280Hal::ReadBuffer( uint8_t offset, uint8_t *buffer, uint8_t size )
{
WaitOnBusy( );
if( RadioSpi != NULL )
{
RadioSpi->take(100);
RadioNss->reset();
uint8_t txBuffer[size+3];
uint8_t rxBuffer[size+3];
txBuffer[0] = RADIO_READ_BUFFER;
txBuffer[1] = offset;
memset(txBuffer+2, 0, size+1);
RadioSpi->trx(txBuffer, rxBuffer, size+3);
memcpy(buffer, rxBuffer+3, size);
RadioNss->set();
RadioSpi->give();
}
WaitOnBusy( );
}
uint8_t SX1280Hal::GetDioStatus( void )
{
uint8_t inter =0;
uint8_t retval = 0;
DIO1->read(&retval);
retval = retval<<1;
BUSY->read(&inter);
retval += inter;
return retval;
}

View File

@@ -0,0 +1,162 @@
/*
______ _
/ _____) _ | |
( (____ _____ ____ _| |_ _____ ____| |__
\____ \| ___ | (_ _) ___ |/ ___) _ \
_____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
(C)2015 Semtech
Description: Handling of the node configuration protocol
License: Revised BSD License, see LICENSE.TXT file include in the project
Maintainer: Miguel Luis and Gregory Cristian
*/
#ifndef __SX1280_HAL_H__
#define __SX1280_HAL_H__
#include "sx1280.h"
#include "../GPIO_Pin.hpp"
#include "../SPI_Peripheral.hpp"
#include "../EXTIHandler.hpp"
/*!
* \brief Actual implementation of a SX1280 radio
*/
class SX1280Hal : public SX1280
{
public:
/*!
* \brief Constructor for SX1280Hal with SPI support
*
* Represents the physical connectivity with the radio and set callback functions on radio interrupts
*/
SX1280Hal( SPI_Peripheral* pSpiPeripheral, GPIO_Pin* pNssPin,
GPIO_Pin* pBusyPin, GPIO_Pin* pIrqPin, GPIO_Pin* pRstPin,
RadioCallbacks_t *callbacks );
/*!
* \brief Destructor for SX1280Hal with UART support
*
* Take care of the correct destruction of the communication objects
*/
virtual ~SX1280Hal( void );
/*!
* \brief Soft resets the radio
*/
virtual void Reset( void );
/*!
* \brief Wakes up the radio
*/
virtual void Wakeup( void );
/*!
* \brief Send a command that write data to the radio
*
* \param [in] opcode Opcode of the command
* \param [in] buffer Buffer to be send to the radio
* \param [in] size Size of the buffer to send
*/
virtual void WriteCommand( RadioCommands_t opcode, uint8_t *buffer, uint16_t size );
/*!
* \brief Send a command that read data from the radio
*
* \param [in] opcode Opcode of the command
* \param [out] buffer Buffer holding data from the radio
* \param [in] size Size of the buffer
*/
virtual void ReadCommand( RadioCommands_t opcode, uint8_t *buffer, uint16_t size );
/*!
* \brief Write data to the radio memory
*
* \param [in] address The address of the first byte to write in the radio
* \param [in] buffer The data to be written in radio's memory
* \param [in] size The number of bytes to write in radio's memory
*/
virtual void WriteRegister( uint16_t address, uint8_t *buffer, uint16_t size );
/*!
* \brief Write a single byte of data to the radio memory
*
* \param [in] address The address of the first byte to write in the radio
* \param [in] value The data to be written in radio's memory
*/
virtual void WriteRegister( uint16_t address, uint8_t value );
/*!
* \brief Read data from the radio memory
*
* \param [in] address The address of the first byte to read from the radio
* \param [out] buffer The buffer that holds data read from radio
* \param [in] size The number of bytes to read from radio's memory
*/
virtual void ReadRegister( uint16_t address, uint8_t *buffer, uint16_t size );
/*!
* \brief Read a single byte of data from the radio memory
*
* \param [in] address The address of the first byte to write in the
* radio
*
* \retval value The value of the byte at the given address in
* radio's memory
*/
virtual uint8_t ReadRegister( uint16_t address );
/*!
* \brief Write data to the buffer holding the payload in the radio
*
* \param [in] offset The offset to start writing the payload
* \param [in] buffer The data to be written (the payload)
* \param [in] size The number of byte to be written
*/
virtual void WriteBuffer( uint8_t offset, uint8_t *buffer, uint8_t size );
/*!
* \brief Read data from the buffer holding the payload in the radio
*
* \param [in] offset The offset to start reading the payload
* \param [out] buffer A pointer to a buffer holding the data from the radio
* \param [in] size The number of byte to be read
*/
virtual void ReadBuffer( uint8_t offset, uint8_t *buffer, uint8_t size );
/*!
* \brief Returns the status of DIOs pins
*
* \retval dioStatus A byte where each bit represents a DIO state:
* [ DIO3 | DIO2 | DIO1 | BUSY ]
*/
virtual uint8_t GetDioStatus( void );
protected:
SPI_Peripheral* RadioSpi; //!< The SPI object used to communicate with the radio
GPIO_Pin* RadioNss; //!< The pin connected to Radio chip select (active low)
GPIO_Pin* RadioReset; //!< The reset pin connected to the radio
GPIO_Pin* RadioCtsn; //!< The Clear To Send radio pin (active low)
GPIO_Pin* BUSY; //!< The pin connected to BUSY
GPIO_Pin* DIO1; //!< The pin connected to DIO1
GPIO_Pin* DIO2; //!< The pin connected to DIO2
GPIO_Pin* DIO3; //!< The pin connected to DIO3
/*!
* \brief Initializes SPI object used to communicate with the radio
*/
virtual void SpiInit( void );
/*!
* \brief Sets the callback functions to be run on DIO1..3 interrupt
*
* \param [in] irqHandler A function pointer of the function to be run on every DIO interrupt
*/
virtual void IoIrqInit( DioIrqHandler irqHandler );
};
#endif // __SX1280_HAL_H__

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -9,6 +9,7 @@
#include "GPIO_Pin_STM32.hpp"
#include "SPI_Peripheral_STM32.hpp"
#include "BinLeds.hpp"
#include "SSL_Comms.hpp"
extern SPI_HandleTypeDef hspi2;
@@ -20,6 +21,10 @@ BinLeds discoveryLeds((GPIO_Pin*[]){&ledOrange, &ledGreen, &ledRed, &ledBlue}, 4
SPI_Peripheral_STM32 spiRadio(&hspi2, 1000);
GPIO_Pin_STM32 blueButton(B1_GPIO_Port, B1_Pin);
SSL_Comms radio0(&blueButton);
void start(){
spiRadio.init();
radio0.init();
}

View File

@@ -95,8 +95,8 @@ void MX_GPIO_Init(void)
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = B1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
@@ -123,7 +123,7 @@ void MX_GPIO_Init(void)
/*Configure GPIO pins : PDPin PDPin */
GPIO_InitStruct.Pin = RADIO_BUSY_Pin|RADIO_IRQ_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pins : PDPin PDPin PDPin PDPin
@@ -161,6 +161,13 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(MEMS_INT2_GPIO_Port, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
}
/* USER CODE BEGIN 2 */

View File

@@ -161,6 +161,20 @@ void DebugMon_Handler(void)
/* please refer to the startup file (startup_stm32f4xx.s). */
/******************************************************************************/
/**
* @brief This function handles EXTI line0 interrupt.
*/
void EXTI0_IRQHandler(void)
{
/* USER CODE BEGIN EXTI0_IRQn 0 */
/* USER CODE END EXTI0_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(B1_Pin);
/* USER CODE BEGIN EXTI0_IRQn 1 */
/* USER CODE END EXTI0_IRQn 1 */
}
/**
* @brief This function handles DMA1 stream3 global interrupt.
*/
@@ -189,6 +203,21 @@ void DMA1_Stream4_IRQHandler(void)
/* USER CODE END DMA1_Stream4_IRQn 1 */
}
/**
* @brief This function handles EXTI line[9:5] interrupts.
*/
void EXTI9_5_IRQHandler(void)
{
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
/* USER CODE END EXTI9_5_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(RADIO_BUSY_Pin);
HAL_GPIO_EXTI_IRQHandler(RADIO_IRQ_Pin);
/* USER CODE BEGIN EXTI9_5_IRQn 1 */
/* USER CODE END EXTI9_5_IRQn 1 */
}
/**
* @brief This function handles TIM7 global interrupt.
*/

View File

@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType">
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.cubeprog_external_loaders" value="[]"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_certif_path" value=""/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_check_enable" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_key_path" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_permission" value="debug_non_secure_L3"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="true"/>
<intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{&quot;fItems&quot;:[{&quot;fIsFromMainTab&quot;:true,&quot;fPath&quot;:&quot;Debug/F407-SX1280-FreeRTOS.elf&quot;,&quot;fProjectName&quot;:&quot;F407-SX1280-FreeRTOS&quot;,&quot;fPerformBuild&quot;:true,&quot;fDownload&quot;:true,&quot;fLoadSymbols&quot;:true}]}"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.divby0" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="168000000"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.vector_table" value=""/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_allow_halt" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_signal_halt" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_logging" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_max_halt_delay" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_shared_stlink" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="/home/gabriel/STM32CubeIDE/workspace_1.14.0/F407-SX1280-FreeRTOS/Debug/st-link_gdbserver_log.txt"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="disable"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_check_serial_number" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.watchdog_config" value="none"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{&quot;fVersion&quot;:1,&quot;fItems&quot;:[{&quot;fDisplayName&quot;:&quot;Reset&quot;,&quot;fIsSuppressible&quot;:false,&quot;fResetAttribute&quot;:&quot;Software system reset&quot;,&quot;fResetStrategies&quot;:[{&quot;fDisplayName&quot;:&quot;Software system reset&quot;,&quot;fLaunchAttribute&quot;:&quot;system_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;Hardware reset&quot;,&quot;fLaunchAttribute&quot;:&quot;hardware_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset hardware\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;Core reset&quot;,&quot;fLaunchAttribute&quot;:&quot;core_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset core\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;None&quot;,&quot;fLaunchAttribute&quot;:&quot;no_reset&quot;,&quot;fGdbCommands&quot;:[],&quot;fCmdOptions&quot;:[&quot;-g&quot;]}],&quot;fGdbCommandGroup&quot;:{&quot;name&quot;:&quot;Additional commands&quot;,&quot;commands&quot;:[]},&quot;fStartApplication&quot;:true}]}"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="freertos"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverAuto" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverPort" value="ARM_CM4F"/>
<intAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyPort" value="60000"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.st.stm32cube.ide.mcu.debug.stlink"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="61234"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/F407-SX1280-FreeRTOS.elf"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="F407-SX1280-FreeRTOS"/>
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1716726688"/>
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/F407-SX1280-FreeRTOS"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;"/>
<stringAttribute key="process_factory_id" value="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/>
</launchConfiguration>

View File

@@ -29,6 +29,7 @@ FREERTOS.IPParameters=Tasks01,configUSE_NEWLIB_REENTRANT
FREERTOS.Tasks01=defaultTask,24,128,StartDefaultTask,Default,NULL,Dynamic,NULL,NULL
FREERTOS.configUSE_NEWLIB_REENTRANT=1
File.Version=6
GPIO.groupedBy=Group By Peripherals
I2S3.AudioFreq-Half_Duplex_Master=I2S_AUDIOFREQ_96K
I2S3.ErrorAudioFreq=-2.34 %
I2S3.ErrorAudioFreq-Half_Duplex_Master=0.8 %
@@ -107,6 +108,8 @@ NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
NVIC.DMA1_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream4_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
NVIC.EXTI0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.EXTI9_5_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
@@ -124,8 +127,8 @@ NVIC.TimeBaseIP=TIM7
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false\:false
PA0-WKUP.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
PA0-WKUP.GPIO_Label=B1 [Blue PushButton]
PA0-WKUP.GPIO_ModeDefaultEXTI=GPIO_MODE_EVT_RISING
PA0-WKUP.GPIO_PuPd=GPIO_NOPULL
PA0-WKUP.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING
PA0-WKUP.GPIO_PuPd=GPIO_PULLDOWN
PA0-WKUP.Locked=true
PA0-WKUP.Signal=GPXTI0
PA10.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label,GPIO_Mode
@@ -342,12 +345,14 @@ PD5.GPIO_Mode=GPIO_MODE_INPUT
PD5.GPIO_PuPd=GPIO_NOPULL
PD5.Locked=true
PD5.Signal=GPIO_Input
PD8.GPIOParameters=GPIO_Label
PD8.GPIOParameters=GPIO_PuPd,GPIO_Label
PD8.GPIO_Label=RADIO_BUSY
PD8.GPIO_PuPd=GPIO_PULLDOWN
PD8.Locked=true
PD8.Signal=GPXTI8
PD9.GPIOParameters=GPIO_Label
PD9.GPIOParameters=GPIO_PuPd,GPIO_Label
PD9.GPIO_Label=RADIO_IRQ
PD9.GPIO_PuPd=GPIO_PULLDOWN
PD9.Locked=true
PD9.Signal=GPXTI9
PE1.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
@@ -464,4 +469,5 @@ VP_SYS_VS_tim7.Mode=TIM7
VP_SYS_VS_tim7.Signal=SYS_VS_tim7
board=STM32F407G-DISC1
boardIOC=true
rtos.0.ip=FREERTOS
isbadioc=false