643 changed files with 361164 additions and 0 deletions
@ -0,0 +1,230 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
||||
|
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> |
||||
|
<storageModule moduleId="org.eclipse.cdt.core.settings"> |
||||
|
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271"> |
||||
|
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271" moduleId="org.eclipse.cdt.core.settings" name="Debug"> |
||||
|
<externalSettings/> |
||||
|
<extensions> |
||||
|
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> |
||||
|
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||
|
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||
|
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||
|
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> |
||||
|
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||
|
</extensions> |
||||
|
</storageModule> |
||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
||||
|
<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.debug" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271" name="Debug" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug"> |
||||
|
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271." name="/" resourcePath=""> |
||||
|
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug.1327866484" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug"> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.12567538" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32H743VGTx" valueType="string"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1103832752" 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.66893780" 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.1814597120" 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.fpv5-d16" valueType="enumerated"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.760030423" 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.1776441999" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.540792779" 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.5 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32H743VGTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Middlewares/Third_Party/LwIP/src/include/netif/ppp | ../Middlewares/Third_Party/LwIP/src/include/lwip/priv | ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy | ../Middlewares/Third_Party/LwIP/src/include/compat/stdc | ../Middlewares/Third_Party/LwIP/src/include/lwip/prot | ../Middlewares/Third_Party/LwIP/src/include/lwip/apps | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys | ../Middlewares/Third_Party/LwIP/system/arch | ../Middlewares/Third_Party/LwIP/src/include | ../LWIP/App | ../Middlewares/Third_Party/LwIP/src/include/compat/posix | ../Drivers/CMSIS/Include | ../Core/Inc | ../Drivers/CMSIS/Device/ST/STM32H7xx/Include | ../LWIP/Target | ../Middlewares/Third_Party/LwIP/src/include/lwip | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/net | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa | ../Drivers/STM32H7xx_HAL_Driver/Inc | ../Middlewares/Third_Party/LwIP/system | ../Drivers/BSP/Components/lan8742 | ../Middlewares/Third_Party/LwIP/src/include/netif || || || USE_HAL_DRIVER | STM32H743xx || || LWIP | Drivers | Core/Startup | Middlewares | Core || || || ${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || " valueType="string"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1890401847" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="200" valueType="string"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.1457102879" name="Convert to Intel Hex file (-O ihex)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex" useByScannerDiscovery="false" value="false" valueType="boolean"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.convertbinary.923004711" name="Convert to binary file (-O binary)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.convertbinary" useByScannerDiscovery="false" value="true" valueType="boolean"/> |
||||
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1630436882" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> |
||||
|
<builder buildPath="${workspace_loc:/Roughening}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.523991804" 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.570363994" 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.1966465709" 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.g3" valueType="enumerated"/> |
||||
|
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.1287773107" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" valueType="definedSymbols"> |
||||
|
<listOptionValue builtIn="false" value="DEBUG"/> |
||||
|
</option> |
||||
|
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1342208578" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/> |
||||
|
</tool> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.2089750823" 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.885024729" 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.g3" valueType="enumerated"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.1582736370" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false"/> |
||||
|
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1920466894" 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="DEBUG"/> |
||||
|
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/> |
||||
|
<listOptionValue builtIn="false" value="STM32H743xx"/> |
||||
|
</option> |
||||
|
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.353872548" 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/STM32H7xx_HAL_Driver/Inc"/> |
||||
|
<listOptionValue builtIn="false" value="../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy"/> |
||||
|
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32H7xx/Include"/> |
||||
|
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/> |
||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/BASE/Inc}""/> |
||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/BASE/Protobuf/PSource}""/> |
||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/BASE/Inc/BSP/DLT}""/> |
||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/BASE/Inc/MSP}""/> |
||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/BASE/Inc/BSP}""/> |
||||
|
<listOptionValue builtIn="false" value="../LWIP/App"/> |
||||
|
<listOptionValue builtIn="false" value="../LWIP/Target"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/system"/> |
||||
|
<listOptionValue builtIn="false" value="../Drivers/BSP/Components/lan8742"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/netif/ppp"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/apps"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/priv"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/prot"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/netif"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/net"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/stdc"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/system/arch"/> |
||||
|
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/FSM/Inc}""/> |
||||
|
</option> |
||||
|
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1369158121" 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.1602419013" 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.2048195825" 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.g3" valueType="enumerated"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.834535438" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false"/> |
||||
|
</tool> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.1879730817" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker"> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.779857613" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld}" valueType="string"/> |
||||
|
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1058332669" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input"> |
||||
|
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> |
||||
|
<additionalInput kind="additionalinput" paths="$(LIBS)"/> |
||||
|
</inputType> |
||||
|
</tool> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.1918481982" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.1262067552" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.731912685" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.1127183404" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.253242068" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.1405444376" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.375076122" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.621733773" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.1164717156" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/> |
||||
|
</toolChain> |
||||
|
</folderInfo> |
||||
|
<sourceEntries> |
||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/> |
||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="LWIP"/> |
||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> |
||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/> |
||||
|
</sourceEntries> |
||||
|
</configuration> |
||||
|
</storageModule> |
||||
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> |
||||
|
</cconfiguration> |
||||
|
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184"> |
||||
|
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184" moduleId="org.eclipse.cdt.core.settings" name="Release"> |
||||
|
<externalSettings/> |
||||
|
<extensions> |
||||
|
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> |
||||
|
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||
|
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||
|
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||
|
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> |
||||
|
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||
|
</extensions> |
||||
|
</storageModule> |
||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
||||
|
<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.1820227184" 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.1820227184." name="/" resourcePath=""> |
||||
|
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.1005534466" 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.843839952" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32H743VGTx" valueType="string"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1796037984" 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.2082546020" 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.1052856810" 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.fpv5-d16" valueType="enumerated"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.598377965" 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.1704817836" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1253890525" 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.5 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32H743VGTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Middlewares/Third_Party/LwIP/src/include/netif/ppp | ../Middlewares/Third_Party/LwIP/src/include/lwip/priv | ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy | ../Middlewares/Third_Party/LwIP/src/include/compat/stdc | ../Middlewares/Third_Party/LwIP/src/include/lwip/prot | ../Middlewares/Third_Party/LwIP/src/include/lwip/apps | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys | ../Middlewares/Third_Party/LwIP/system/arch | ../Middlewares/Third_Party/LwIP/src/include | ../LWIP/App | ../Middlewares/Third_Party/LwIP/src/include/compat/posix | ../Drivers/CMSIS/Include | ../Core/Inc | ../Drivers/CMSIS/Device/ST/STM32H7xx/Include | ../LWIP/Target | ../Middlewares/Third_Party/LwIP/src/include/lwip | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/net | ../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa | ../Drivers/STM32H7xx_HAL_Driver/Inc | ../Middlewares/Third_Party/LwIP/system | ../Drivers/BSP/Components/lan8742 | ../Middlewares/Third_Party/LwIP/src/include/netif || || || USE_HAL_DRIVER | STM32H743xx || || LWIP | Drivers | Core/Startup | Middlewares | Core || || || ${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || " valueType="string"/> |
||||
|
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1214587954" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="200" valueType="string"/> |
||||
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.219245982" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> |
||||
|
<builder buildPath="${workspace_loc:/Roughening}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.214658313" 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.16882753" 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.2011129191" 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.825992476" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/> |
||||
|
</tool> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.498810405" 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.547400931" 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.863454684" 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.1771860025" 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="STM32H743xx"/> |
||||
|
</option> |
||||
|
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.296813317" 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/STM32H7xx_HAL_Driver/Inc"/> |
||||
|
<listOptionValue builtIn="false" value="../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy"/> |
||||
|
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32H7xx/Include"/> |
||||
|
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/> |
||||
|
<listOptionValue builtIn="false" value="../LWIP/App"/> |
||||
|
<listOptionValue builtIn="false" value="../LWIP/Target"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/system"/> |
||||
|
<listOptionValue builtIn="false" value="../Drivers/BSP/Components/lan8742"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/netif/ppp"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/apps"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/priv"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/lwip/prot"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/netif"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/net"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/src/include/compat/stdc"/> |
||||
|
<listOptionValue builtIn="false" value="../Middlewares/Third_Party/LwIP/system/arch"/> |
||||
|
</option> |
||||
|
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.166988384" 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.81625048" 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.444421330" 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.406825060" 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"/> |
||||
|
</tool> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.396124999" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker"> |
||||
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.1296682720" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld}" valueType="string"/> |
||||
|
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1544334102" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input"> |
||||
|
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> |
||||
|
<additionalInput kind="additionalinput" paths="$(LIBS)"/> |
||||
|
</inputType> |
||||
|
</tool> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.632112878" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.154035402" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.1526108968" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.410298381" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.57742864" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.1333351797" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.1609373878" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.146876246" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/> |
||||
|
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.411545612" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/> |
||||
|
</toolChain> |
||||
|
</folderInfo> |
||||
|
<sourceEntries> |
||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/> |
||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="LWIP"/> |
||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Middlewares"/> |
||||
|
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/> |
||||
|
</sourceEntries> |
||||
|
</configuration> |
||||
|
</storageModule> |
||||
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> |
||||
|
</cconfiguration> |
||||
|
</storageModule> |
||||
|
<storageModule moduleId="org.eclipse.cdt.core.pathentry"/> |
||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
||||
|
<project id="Roughening.null.1127706067" name="Roughening"/> |
||||
|
</storageModule> |
||||
|
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> |
||||
|
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> |
||||
|
<storageModule moduleId="scannerConfiguration"> |
||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> |
||||
|
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.498810405;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.166988384"> |
||||
|
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/> |
||||
|
</scannerConfigBuildInfo> |
||||
|
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.2089750823;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1369158121"> |
||||
|
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/> |
||||
|
</scannerConfigBuildInfo> |
||||
|
</storageModule> |
||||
|
<storageModule moduleId="refreshScope" versionNumber="2"> |
||||
|
<configuration configurationName="Debug"> |
||||
|
<resource resourceType="PROJECT" workspacePath="/Roughening"/> |
||||
|
</configuration> |
||||
|
<configuration configurationName="Release"> |
||||
|
<resource resourceType="PROJECT" workspacePath="/Roughening"/> |
||||
|
</configuration> |
||||
|
</storageModule> |
||||
|
</cproject> |
||||
@ -0,0 +1 @@ |
|||||
|
/Debug/ |
||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,32 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<projectDescription> |
||||
|
<name>Insulator_Inspection</name> |
||||
|
<comment></comment> |
||||
|
<projects> |
||||
|
</projects> |
||||
|
<buildSpec> |
||||
|
<buildCommand> |
||||
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> |
||||
|
<triggers>clean,full,incremental,</triggers> |
||||
|
<arguments> |
||||
|
</arguments> |
||||
|
</buildCommand> |
||||
|
<buildCommand> |
||||
|
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> |
||||
|
<triggers>full,incremental,</triggers> |
||||
|
<arguments> |
||||
|
</arguments> |
||||
|
</buildCommand> |
||||
|
</buildSpec> |
||||
|
<natures> |
||||
|
<nature>com.st.stm32cube.ide.mcu.MCUProjectNature</nature> |
||||
|
<nature>com.st.stm32cube.ide.mcu.MCUCubeProjectNature</nature> |
||||
|
<nature>org.eclipse.cdt.core.cnature</nature> |
||||
|
<nature>com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature</nature> |
||||
|
<nature>com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature</nature> |
||||
|
<nature>com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature</nature> |
||||
|
<nature>com.st.stm32cube.ide.mcu.MCURootProjectNature</nature> |
||||
|
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> |
||||
|
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> |
||||
|
</natures> |
||||
|
</projectDescription> |
||||
@ -0,0 +1,2 @@ |
|||||
|
eclipse.preferences.version=1 |
||||
|
sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}} |
||||
@ -0,0 +1,25 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
||||
|
<project> |
||||
|
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271" name="Debug"> |
||||
|
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> |
||||
|
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> |
||||
|
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> |
||||
|
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> |
||||
|
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-288714553323475631" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> |
||||
|
<language-scope id="org.eclipse.cdt.core.gcc"/> |
||||
|
<language-scope id="org.eclipse.cdt.core.g++"/> |
||||
|
</provider> |
||||
|
</extension> |
||||
|
</configuration> |
||||
|
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184" name="Release"> |
||||
|
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> |
||||
|
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> |
||||
|
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> |
||||
|
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> |
||||
|
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-288714553323475631" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> |
||||
|
<language-scope id="org.eclipse.cdt.core.gcc"/> |
||||
|
<language-scope id="org.eclipse.cdt.core.g++"/> |
||||
|
</provider> |
||||
|
</extension> |
||||
|
</configuration> |
||||
|
</project> |
||||
@ -0,0 +1,194 @@ |
|||||
|
doxygen/doxygen_new_line_after_brief=true |
||||
|
doxygen/doxygen_use_brief_tag=false |
||||
|
doxygen/doxygen_use_javadoc_tags=true |
||||
|
doxygen/doxygen_use_pre_tag=false |
||||
|
doxygen/doxygen_use_structural_commands=false |
||||
|
eclipse.preferences.version=1 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_assignment=16 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration=80 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_binary_expression=16 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_compact_if=16 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_conditional_expression=34 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain=18 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list=0 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_declarator_list=16 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_enumerator_list=48 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_expression_list=0 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer=16 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_lambda_expression=20 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_member_access=0 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain=16 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration=16 |
||||
|
org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 |
||||
|
org.eclipse.cdt.core.formatter.brace_position_for_array_initializer=next_line |
||||
|
org.eclipse.cdt.core.formatter.brace_position_for_block=next_line |
||||
|
org.eclipse.cdt.core.formatter.brace_position_for_block_in_case=next_line |
||||
|
org.eclipse.cdt.core.formatter.brace_position_for_linkage_declaration=next_line |
||||
|
org.eclipse.cdt.core.formatter.brace_position_for_method_declaration=next_line |
||||
|
org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration=next_line |
||||
|
org.eclipse.cdt.core.formatter.brace_position_for_switch=next_line |
||||
|
org.eclipse.cdt.core.formatter.brace_position_for_type_declaration=next_line |
||||
|
org.eclipse.cdt.core.formatter.comment.line_up_line_comment_in_blocks_on_first_column=false |
||||
|
org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment=1 |
||||
|
org.eclipse.cdt.core.formatter.comment.never_indent_line_comments_on_first_column=true |
||||
|
org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=true |
||||
|
org.eclipse.cdt.core.formatter.comment_formatter_off_tag=@formatter\:off |
||||
|
org.eclipse.cdt.core.formatter.comment_formatter_on_tag=@formatter\:on |
||||
|
org.eclipse.cdt.core.formatter.compact_else_if=true |
||||
|
org.eclipse.cdt.core.formatter.continuation_indentation=2 |
||||
|
org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer=2 |
||||
|
org.eclipse.cdt.core.formatter.format_block_comment=true |
||||
|
org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line=false |
||||
|
org.eclipse.cdt.core.formatter.format_header_comment=true |
||||
|
org.eclipse.cdt.core.formatter.format_line_comment=true |
||||
|
org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header=true |
||||
|
org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces=0 |
||||
|
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier=true |
||||
|
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_linkage=true |
||||
|
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header=true |
||||
|
org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases=true |
||||
|
org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header=false |
||||
|
org.eclipse.cdt.core.formatter.indent_empty_lines=false |
||||
|
org.eclipse.cdt.core.formatter.indent_label_compare_to_statements=true |
||||
|
org.eclipse.cdt.core.formatter.indent_statements_compare_to_block=true |
||||
|
org.eclipse.cdt.core.formatter.indent_statements_compare_to_body=true |
||||
|
org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases=true |
||||
|
org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch=true |
||||
|
org.eclipse.cdt.core.formatter.indentation.size=4 |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_after_colon_in_constructor_initializer_list=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_after_label=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_binary_operator=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_structured_binding_name_list=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_lambda_return=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_structured_binding_name_list=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_pointer_in_declarator_list=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_pointer_in_method_declaration=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_after_unary_operator=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_binary_operator=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_structured_binding_name_list=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_structured_binding_name_list=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_lambda_return=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_linkage_declaration=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_structured_binding_name_list=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_pointer_in_declarator_list=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_pointer_in_method_declaration=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional=insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_ref_qualifier_in_structured_binding=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_semicolon=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_before_unary_operator=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert |
||||
|
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert |
||||
|
org.eclipse.cdt.core.formatter.join_wrapped_lines=true |
||||
|
org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line=false |
||||
|
org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line=false |
||||
|
org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line=false |
||||
|
org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line=true |
||||
|
org.eclipse.cdt.core.formatter.lineSplit=80 |
||||
|
org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve=1 |
||||
|
org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line=true |
||||
|
org.eclipse.cdt.core.formatter.tabulation.char=tab |
||||
|
org.eclipse.cdt.core.formatter.tabulation.size=4 |
||||
|
org.eclipse.cdt.core.formatter.use_comment_formatter_tag=true |
||||
|
org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations=true |
||||
@ -0,0 +1,3 @@ |
|||||
|
eclipse.preferences.version=1 |
||||
|
formatter_profile=_333333 |
||||
|
formatter_settings_version=1 |
||||
@ -0,0 +1,6 @@ |
|||||
|
2F62501ED4689FB349E356AB974DBE57=C1FAD6334016FA4DBFEEBFD567ADCF8D |
||||
|
635E684B79701B039C64EA45C3F84D30=0A24CDD2C9C910977CCC6D7CA9CB0612 |
||||
|
66BE74F758C12D739921AEA421D593D3=0 |
||||
|
8DF89ED150041C4CBC7CB9A9CAA90856=C1FAD6334016FA4DBFEEBFD567ADCF8D |
||||
|
DC22A860405A8BF2F2C095E5B6529F12=68A7121F69F6593E9817CACB2B0CB8AF |
||||
|
eclipse.preferences.version=1 |
||||
@ -0,0 +1,125 @@ |
|||||
|
/*
|
||||
|
* BHBF_ROBOT.h |
||||
|
* |
||||
|
* Created on: Oct 26, 2023 |
||||
|
* Author: shiya |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BHBF_ROBOT_H_ |
||||
|
#define INC_BHBF_ROBOT_H_ |
||||
|
|
||||
|
#include <stdio.h> |
||||
|
#include <string.h> |
||||
|
#include <stdlib.h> |
||||
|
#include <assert.h> |
||||
|
#include <motors.h> |
||||
|
#include <msp_INS_Motors_CAN.h> |
||||
|
#include <stdbool.h> |
||||
|
|
||||
|
|
||||
|
|
||||
|
#include "BHBF_ROBOT.h" |
||||
|
#include "bsp_PV.pb.h" |
||||
|
#include "bsp_IV.pb.h" |
||||
|
|
||||
|
#include "BSP/pb.h" |
||||
|
#include "BSP/pb_decode.h" |
||||
|
#include "BSP/pb_encode.h" |
||||
|
#include "BSP/bsp_EEPROM.h" |
||||
|
#include "BSP/bsp_pb_decode_encode.h" |
||||
|
#include "bsp_MB_host.h" |
||||
|
#include "BSP/bsp_include.h" |
||||
|
#include "BSP/bsp_UART.h" |
||||
|
#include "BSP/DLTuc.h" |
||||
|
#include "BSP/bsp_DLT_Log.h" |
||||
|
#include "BSP/bsp_UDP.h" |
||||
|
#include "BSP/tcp_server.h" |
||||
|
#include "BSP/bsp_cpu_flash.h" |
||||
|
#include "BSP/bsp_qspi_w25q128.h" |
||||
|
#include "BSP/bsp_UpperComputer_Handler.h" |
||||
|
#include "BSP/bsp_Error_Detect.h" |
||||
|
#include "BSP/bsp_MB_host.h" |
||||
|
|
||||
|
#include "MSP/msp_JTBATTERY.h" |
||||
|
#include "MSP/msp_Force_Sensor.h" |
||||
|
#include "MSP/msp_TL720D.h" |
||||
|
#include "MSP/msp_U7.h" |
||||
|
#include "MSP/msp_Force_Sensor.h" |
||||
|
#include "MSP/msp_WH_LTE_7S0.h" |
||||
|
|
||||
|
|
||||
|
|
||||
|
#include "fsm_state_control.h" |
||||
|
|
||||
|
#include "fsm_state.h" |
||||
|
#include "robot_move_actions.h" |
||||
|
|
||||
|
//#include "robot_state.h"
|
||||
|
//FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 896K
|
||||
|
//#define VECT_TAB_OFFSET 0x00020000U
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
#define DLTViewer 1 |
||||
|
|
||||
|
|
||||
|
extern bool CompareTimer_Delay(int32_t Delay); |
||||
|
|
||||
|
extern GV_struct_define GV; |
||||
|
extern IV_struct_define IV; |
||||
|
extern CV_struct_define CV; |
||||
|
extern PV_struct_define decoded_PV; |
||||
|
extern PV_struct_define decoded_PV_variable; |
||||
|
|
||||
|
typedef struct sys_timer_handler |
||||
|
{ |
||||
|
int start_timer; |
||||
|
int sys_current_timer_count; |
||||
|
int sys_timer_flag; |
||||
|
|
||||
|
}Sys_timer_handler; |
||||
|
|
||||
|
extern Sys_timer_handler timer_handler_1; |
||||
|
extern Sys_timer_handler timer_handler_2; |
||||
|
extern Sys_timer_handler timer_handler_3; |
||||
|
extern Sys_timer_handler timer_handler_4; |
||||
|
|
||||
|
//first start Timer, then WaitTimer
|
||||
|
extern bool CompareTimer(int32_t DelayMiliSeconds,Sys_timer_handler * timer_handler); |
||||
|
extern void SystemTimer_Intialize(); |
||||
|
extern void GF_Timer_Count(); |
||||
|
extern void GF_Robot_Init(void); |
||||
|
extern void GF_Robot_MainLoop(void); |
||||
|
extern void GF_WatchDog_Loop(void); |
||||
|
extern int32_t speed_M_min_toE01_M_min(int32_t speedm_min); |
||||
|
|
||||
|
extern void SET_BIT_1(int32_t* num,int32_t k); |
||||
|
|
||||
|
extern void SET_BIT_0(int32_t* num,int32_t k); |
||||
|
extern int32_t Get_BIT(int32_t* num,int32_t k); |
||||
|
|
||||
|
//A &= ~(1 << bit)
|
||||
|
|
||||
|
|
||||
|
|
||||
|
extern int32_t* SystemErrorCode; |
||||
|
extern ErrorData* SystemErrorData; |
||||
|
|
||||
|
#define IV_Run_Mode_Maunal 0 |
||||
|
#define IV_Run_Mode_Automation 1 |
||||
|
#define IV_Run_Mode_EmergencyStop 2 |
||||
|
#define IV_Run_Mode_Vertical_LaneChange 3 |
||||
|
#define IV_Run_Mode_Horizontal_LaneChange 4 |
||||
|
#define IV_Run_Mode_Forward 5 |
||||
|
#define IV_Run_Mode_BackWard 6 |
||||
|
#define IV_Run_Mode_TurnLeft 7 |
||||
|
#define IV_Run_Mode_TurnRight 8 |
||||
|
#define IV_Run_Mode_HALT 9 |
||||
|
|
||||
|
extern INS_MotorParameters* Frames_Motor[4]; |
||||
|
|
||||
|
|
||||
|
extern int32_t SystemTimeMiliCount; //2ms加一
|
||||
|
|
||||
|
#endif /* INC_BHBF_ROBOT_H_ */ |
||||
@ -0,0 +1,248 @@ |
|||||
|
/**
|
||||
|
* @file DLTuc.h |
||||
|
* @author teodor |
||||
|
* @date 1 Jul 2022 |
||||
|
* @brief This file is a part of DLTuc library |
||||
|
* |
||||
|
* In this header, you can find types, Api functions, which are provided by DLTuc library |
||||
|
* Usefull macros, for convience usage of DLTuc library in logging purposes |
||||
|
* |
||||
|
* Requirments: |
||||
|
* Around ~2kB of RAM |
||||
|
* Check Configuration file and defines: |
||||
|
* DLT_TRANSMIT_RING_BUFFER_SIZE, DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE |
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_DLT_LOGS_MCU_H_ |
||||
|
#define INC_DLT_LOGS_MCU_H_ |
||||
|
|
||||
|
/*
|
||||
|
* ******************************************************************************************* |
||||
|
* Includes |
||||
|
* ******************************************************************************************* |
||||
|
* */ |
||||
|
|
||||
|
#include "stdint.h" |
||||
|
#include <stdarg.h> |
||||
|
#include <string.h> |
||||
|
|
||||
|
#include "DLTucConfig.h" |
||||
|
|
||||
|
/*
|
||||
|
* ******************************************************************************************* |
||||
|
* Exported defines |
||||
|
* ******************************************************************************************* |
||||
|
* */ |
||||
|
|
||||
|
/*@brief
|
||||
|
* |
||||
|
* - convert the To strings to uint32_t |
||||
|
*/ |
||||
|
#define DLT_LOG_ECUID_VALUE ((uint32_t)((((uint32_t) ((uint8_t)DLT_LOG_ECUID[0])) << 24UL) | \ |
||||
|
(((uint32_t) ((uint8_t)DLT_LOG_ECUID[1])) << 16UL) | \ |
||||
|
(((uint32_t) ((uint8_t)DLT_LOG_ECUID[2])) << 8UL) | \ |
||||
|
((uint32_t)((uint8_t)DLT_LOG_ECUID[3])))) |
||||
|
|
||||
|
|
||||
|
#define DLT_LOG_APPID_VALUE ((uint32_t)((((uint32_t) ((uint8_t)DLT_LOG_APPID[0])) << 24UL) | \ |
||||
|
(((uint32_t) ((uint8_t)DLT_LOG_APPID[1])) << 16UL) | \ |
||||
|
(((uint32_t) ((uint8_t)DLT_LOG_APPID[2])) << 8UL) | \ |
||||
|
((uint32_t)((uint8_t)DLT_LOG_APPID[3])))) |
||||
|
|
||||
|
|
||||
|
#define DLT_LOG_CONTEX_VALUE ((uint32_t)((((uint32_t) ((uint8_t)DLT_LOG_CONTEX[0])) << 24UL) | \ |
||||
|
(((uint32_t) ((uint8_t)DLT_LOG_CONTEX[1])) << 16UL) | \ |
||||
|
(((uint32_t) ((uint8_t)DLT_LOG_CONTEX[2])) << 8UL) | \ |
||||
|
((uint32_t)((uint8_t)DLT_LOG_CONTEX[3])))) |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
/*
|
||||
|
* Definitions of DLT services. |
||||
|
*/ |
||||
|
#define DLT_SERVICE_ID_SET_LOG_LEVEL 0x01 /**< Service ID: Set log level */ |
||||
|
#define DLT_SERVICE_ID_SETRACE_STATUS 0x02 /**< Service ID: Set trace status */ |
||||
|
#define DLT_SERVICE_ID_GET_LOG_INFO 0x03 /**< Service ID: Get log info */ |
||||
|
#define DLT_SERVICE_ID_GET_DEFAULT_LOG_LEVEL 0x04 /**< Service ID: Get dafault log level */ |
||||
|
#define DLT_SERVICE_ID_STORE_CONFIG 0x05 /**< Service ID: Store configuration */ |
||||
|
#define DLT_SERVICE_ID_RESETO_FACTORY_DEFAULT 0x06 /**< Service ID: Reset to factory defaults */ |
||||
|
#define DLT_SERVICE_ID_SET_COM_INTERFACE_STATUS 0x07 /**< Service ID: Set communication interface status */ |
||||
|
#define DLT_SERVICE_ID_SET_COM_INTERFACE_MAX_BANDWIDTH 0x08 /**< Service ID: Set communication interface maximum bandwidth */ |
||||
|
#define DLT_SERVICE_ID_SET_VERBOSE_MODE 0x09 /**< Service ID: Set verbose mode */ |
||||
|
#define DLT_SERVICE_ID_SET_MESSAGE_FILTERING 0x0A /**< Service ID: Set message filtering */ |
||||
|
#define DLT_SERVICE_ID_SETIMING_PACKETS 0x0B /**< Service ID: Set timing packets */ |
||||
|
#define DLT_SERVICE_ID_GET_LOCALIME 0x0C /**< Service ID: Get local time */ |
||||
|
#define DLT_SERVICE_ID_USE_ECU_ID 0x0D /**< Service ID: Use ECU id */ |
||||
|
#define DLT_SERVICE_ID_USE_SESSION_ID 0x0E /**< Service ID: Use session id */ |
||||
|
#define DLT_SERVICE_ID_USEIMESTAMP 0x0F /**< Service ID: Use timestamp */ |
||||
|
#define DLT_SERVICE_ID_USE_EXTENDED_HEADER 0x10 /**< Service ID: Use extended header */ |
||||
|
#define DLT_SERVICE_ID_SET_DEFAULT_LOG_LEVEL 0x11 /**< Service ID: Set default log level */ |
||||
|
#define DLT_SERVICE_ID_SET_DEFAULTRACE_STATUS 0x12 /**< Service ID: Set default trace status */ |
||||
|
#define DLT_SERVICE_ID_GET_SOFTWARE_VERSION 0x13 /**< Service ID: Get software version */ |
||||
|
#define DLT_SERVICE_ID_MESSAGE_BUFFER_OVERFLOW 0x14 /**< Service ID: Message buffer overflow */ |
||||
|
#define DLT_SERVICE_ID_CALLSW_CINJECTION 0xFFF /**< Service ID: Message Injection (minimal ID) */ |
||||
|
|
||||
|
/*
|
||||
|
* ******************************************************************************************* |
||||
|
* Exported types |
||||
|
* ******************************************************************************************* |
||||
|
* */ |
||||
|
|
||||
|
/**!
|
||||
|
* \brief DltLogLevel_t |
||||
|
* \details Typdef used to identify the DLT log level |
||||
|
* */ |
||||
|
typedef enum |
||||
|
{ |
||||
|
DL_FATAL =1, |
||||
|
DL_ERROR =2, |
||||
|
DL_WARN =3, |
||||
|
DL_INFO =4, |
||||
|
DL_DEBUG =5, |
||||
|
DL_VERBOSE =6, |
||||
|
}DltLogLevel_t; |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
/*
|
||||
|
* ******************************************************************************************* |
||||
|
* Exported function - API |
||||
|
* ******************************************************************************************* |
||||
|
* */ |
||||
|
|
||||
|
/*!
|
||||
|
************************************************************************************************ |
||||
|
* \brief DLTuc_RawDataReceiveDone |
||||
|
* \details OPTIONAL - Use only if you need handle data receive, like Injection messages |
||||
|
* Call the function to inform DLTuc that Raw data packet has been received |
||||
|
************************************************************************************************/ |
||||
|
void DLTuc_RawDataReceiveDone(uint16_t Size); |
||||
|
|
||||
|
/*!
|
||||
|
************************************************************************************************ |
||||
|
* \brief DLTuc_RegisterReceiveSerialDataFunction |
||||
|
* \details OPTIONAL - Use only if you need handle data receive, like Injection messages. |
||||
|
* - Register callback function which will be used by DLTuc to start data receive process. |
||||
|
* The Callback function is basicly called only after registration and if data packet has been received, |
||||
|
* to start again receive data packet |
||||
|
* \param in LLSerialRecDataFunctionC ... |
||||
|
************************************************************************************************/ |
||||
|
void DLTuc_RegisterReceiveSerialDataFunction(void LLSerialRecDataFunctionC(uint8_t *DltLogData, uint16_t Size)); |
||||
|
|
||||
|
/*!
|
||||
|
************************************************************************************************ |
||||
|
* \brief DLTuc_RegisterInjectionDataReceivedCb |
||||
|
* \details OPTIONAL - Use only if you need handle data receive, like Injection messages |
||||
|
* Register injection data received call back |
||||
|
* Use the function if you want register call back function to handle the Injection messages in your application |
||||
|
* \param in InjectionDataRcvd ... |
||||
|
************************************************************************************************/ |
||||
|
void DLTuc_RegisterInjectionDataReceivedCb |
||||
|
(void InjectionDataRcvd(uint32_t AppId, uint32_t ConId,uint32_t ServId,uint8_t *Data, uint16_t Size)); |
||||
|
|
||||
|
/*!
|
||||
|
************************************************************************************************ |
||||
|
* \brief DLTuc_RegisterTransmitSerialDataFunction |
||||
|
* \details This simple stack/library must be initialized by "DLTuc_RegisterTransmitSerialDataFunction" |
||||
|
* As a parameter must be passed function which will transmit serial data |
||||
|
* \param in LLSerialTrDataFunctionC transmit function pointer |
||||
|
************************************************************************************************/ |
||||
|
void DLTuc_RegisterTransmitSerialDataFunction(void LLSerialTrDataFunctionC(uint8_t *DltLogData, uint8_t Size)); |
||||
|
|
||||
|
/*!
|
||||
|
************************************************************************************************ |
||||
|
* \brief DLTuc_RegisterGetTimeStampMsCallback |
||||
|
* \details function to update time stamp in library |
||||
|
* \param in GetSysTime - pointer to function which allow to read system time in msec |
||||
|
*************************************************************************************************/ |
||||
|
void DLTuc_RegisterGetTimeStampMsCallback(uint32_t GetSysTime(void)); |
||||
|
|
||||
|
|
||||
|
/*!
|
||||
|
************************************************************************************************ |
||||
|
* \brief DLTuc_MessageTransmitDone |
||||
|
* \details IMPORTANT!!!!! |
||||
|
* Call this function when the transsmision is end |
||||
|
* For example in "DMA transmission end callback" to inform the lib that the message is transmitted |
||||
|
************************************************************************************************ |
||||
|
* */ |
||||
|
void DLTuc_MessageTransmitDone(void); |
||||
|
|
||||
|
/*!
|
||||
|
************************************************************************************************ |
||||
|
* \brief DLTuc_LogOutVarArgs |
||||
|
* \details default function to create DLT Log |
||||
|
* \param DltLogLevel_t Level - of Dlt log |
||||
|
* \param in AppId - size of the "DltLogData" (return value) |
||||
|
* \param in ContextId - pointer to the message stored in RingBuffer (return value) |
||||
|
* \param in Payload String to send as dlt log |
||||
|
* \param in ... parameters same as in printf function |
||||
|
*************************************************************************************************/ |
||||
|
void DLTuc_LogOutVarArgs(DltLogLevel_t Level, uint32_t AppId, uint32_t ContextId, uint8_t *Payload, ...); |
||||
|
|
||||
|
|
||||
|
/*
|
||||
|
* ******************************************************************************************* |
||||
|
* Additional macros to facilitate the use of the library |
||||
|
* ******************************************************************************************* |
||||
|
* */ |
||||
|
|
||||
|
#ifdef LOGS_ENABLE |
||||
|
|
||||
|
/**!
|
||||
|
* \brief LOGL(level, str, ...) |
||||
|
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add |
||||
|
* log_level, DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE |
||||
|
* |
||||
|
* */ |
||||
|
#define LOG(str, ...)\ |
||||
|
if(DL_INFO <= DLT_LOG_ENABLE_LEVEL){\ |
||||
|
DLTuc_LogOutVarArgs(DL_INFO, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *) str, ##__VA_ARGS__);\ |
||||
|
} |
||||
|
|
||||
|
/**!
|
||||
|
* \brief LOGL(level, str, ...) |
||||
|
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE |
||||
|
* |
||||
|
* */ |
||||
|
#define LOGL(log_level, str, ...)\ |
||||
|
if(log_level <= DLT_LOG_ENABLE_LEVEL){\ |
||||
|
DLTuc_LogOutVarArgs(log_level, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *) str, ##__VA_ARGS__);\ |
||||
|
} |
||||
|
|
||||
|
/**!
|
||||
|
* @brief LOGF(log_level, str, ...) |
||||
|
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE |
||||
|
* Additionally add the name of the calling function |
||||
|
* |
||||
|
* |
||||
|
* */ |
||||
|
#define LOGF(log_level, str, ...)\ |
||||
|
if(log_level <= DLT_LOG_ENABLE_LEVEL){\ |
||||
|
DLTuc_LogOutVarArgs(log_level, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *) "FUN:%s LOG: "str, __FUNCTION__,##__VA_ARGS__);\ |
||||
|
} |
||||
|
|
||||
|
/**!
|
||||
|
* \brief LOGFF(log_level, str, ...) |
||||
|
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE |
||||
|
* Additionally add the name of the calling function and file name |
||||
|
* |
||||
|
* |
||||
|
* */ |
||||
|
#define LOGFF(log_level, str, ...)\ |
||||
|
if(log_level <= DLT_LOG_ENABLE_LEVEL){\ |
||||
|
DLTuc_LogOutVarArgs(log_level, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *)"FILE:%s LINE: %d FUN:%s LOG: "str,__FILE__,__LINE__,__FUNCTION__,##__VA_ARGS__);\ |
||||
|
} |
||||
|
|
||||
|
#else |
||||
|
LOG(str, ...) |
||||
|
LOGL(log_level, str, ...) |
||||
|
LOGF(log_level, str, ...) |
||||
|
LOGFF(log_level, str, ...) |
||||
|
#endif |
||||
|
|
||||
|
#endif /* INC_DLT_LOGS_MCU_H_ */ |
||||
@ -0,0 +1,74 @@ |
|||||
|
/**
|
||||
|
* @file DLTuc.c |
||||
|
* @author teodor |
||||
|
* @date 1 Jul 2022 |
||||
|
* @brief This file is a part of DLTuc library |
||||
|
* |
||||
|
* In this header file is placed DLTuc configuration template |
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
#if 1 /*Set it to "1" to enable content*/ |
||||
|
|
||||
|
#ifndef __DLT_CONFIG__ |
||||
|
|
||||
|
/*Comment this line to turn off all logs..*/ |
||||
|
#define LOGS_ENABLE |
||||
|
|
||||
|
/*Pass here the entry critical entry function for your RTOS or
|
||||
|
Interrupt block functions if you want use the library from diffrent context*/ |
||||
|
#define DLTuc_OS_CRITICAL_START() |
||||
|
#define DLTuc_OS_CRITICAL_END() |
||||
|
|
||||
|
|
||||
|
/*Default minimum log level to transmit the log*/ |
||||
|
//#ifndef DLT_LOG_ENABLE_LEVEL
|
||||
|
////#define DLT_LOG_ENABLE_LEVEL DL_VERBOSE
|
||||
|
// #define DLT_LOG_ENABLE_LEVEL 0
|
||||
|
//#endif
|
||||
|
|
||||
|
extern char DLT_LOG_ENABLE_LEVEL; |
||||
|
|
||||
|
|
||||
|
/**!
|
||||
|
* \brief DLT_LOG_CONTEX |
||||
|
* \details to define the minimum level log which will printed using the debug macros |
||||
|
* |
||||
|
*/ |
||||
|
#ifndef DLT_LOG_CONTEX |
||||
|
#define DLT_LOG_CONTEX "DFLT" |
||||
|
#endif |
||||
|
|
||||
|
/**!
|
||||
|
* \brief DLT_LOG_APPID |
||||
|
* \details to define the minimum level log which will printed using the debug macros |
||||
|
* |
||||
|
*/ |
||||
|
#ifndef DLT_LOG_APPID |
||||
|
#define DLT_LOG_APPID "0000" |
||||
|
#endif |
||||
|
|
||||
|
/**!
|
||||
|
* \brief DLT_LOG_ECUID |
||||
|
* \details you can define here you ECUID .. |
||||
|
* |
||||
|
*/ |
||||
|
#define DLT_LOG_ECUID "uCID" /*Electronic Controller Unit ID*/ |
||||
|
|
||||
|
#define DLT_ECU_SW_VER 0001 |
||||
|
|
||||
|
/*
|
||||
|
*@brief DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE & DLT_TRANSMIT_RING_BUFFER_SIZE |
||||
|
* these values define the size of the circular buffer and the maximum size of a single DLT message |
||||
|
* Size of out Circular DLT messages buffer is equal: DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE*DLT_TRANSMIT_RING_BUFFER_SIZE |
||||
|
*/ |
||||
|
#define DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE 255 |
||||
|
#define DLT_TRANSMIT_RING_BUFFER_SIZE 15 |
||||
|
|
||||
|
|
||||
|
#define DLT_REC_SINGLE_MESSAGE_MAX_SIZE 255 |
||||
|
#define DLT_RECEIVE_RING_BUFFER_SIZE 2 |
||||
|
|
||||
|
#endif //__DLT_CONFIG__
|
||||
|
|
||||
|
#endif //Content enable
|
||||
@ -0,0 +1,16 @@ |
|||||
|
/*
|
||||
|
* bsp_DLT_Log.h |
||||
|
* |
||||
|
* Created on: Aug 8, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_DLT_LOG_H_ |
||||
|
#define INC_BSP_BSP_DLT_LOG_H_ |
||||
|
|
||||
|
#include "BHBF_ROBOT.h" |
||||
|
|
||||
|
|
||||
|
extern void dLT_Log_intialize(struct UARTHandler *Handler); |
||||
|
extern void dLT_Log_intialize_udp_tcp(); |
||||
|
#endif /* INC_BSP_BSP_DLT_LOG_H_ */ |
||||
@ -0,0 +1,73 @@ |
|||||
|
/*
|
||||
|
* bsp_EEPROM.h |
||||
|
* |
||||
|
* Created on: Oct 26, 2023 |
||||
|
* Author: shiya |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_EEPROM_H_ |
||||
|
#define INC_BSP_EEPROM_H_ |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
#include "bsp_include.h" |
||||
|
#include "bsp_CV.pb.h" |
||||
|
#include "bsp_IAP.pb.h" |
||||
|
|
||||
|
|
||||
|
#define EEPROM_WP_Pin GPIO_PIN_11 |
||||
|
#define EEPROM_WP_GPIO_Port GPIOE |
||||
|
#define EEPROM_SCL_Pin GPIO_PIN_12 |
||||
|
#define EEPROM_SCL_GPIO_Port GPIOE |
||||
|
#define EEPROM_SDA_Pin GPIO_PIN_13 |
||||
|
#define EEPROM_SDA_GPIO_Port GPIOE |
||||
|
|
||||
|
#define AT24C512 |
||||
|
#ifdef AT24C512 |
||||
|
#define EE_MODEL_NAME "AT24C512" |
||||
|
#define EE_DEV_ADDR 0xA0 /* 设备地址 */ |
||||
|
#define EE_PAGE_SIZE 128 /* 页面大小(字节) */ |
||||
|
#define EE_SIZE (512*128) /* 总容量(字节) */ // not used in this progrm
|
||||
|
#define EE_ADDR_BYTES 2 /* 地址字节个数 */ |
||||
|
#endif |
||||
|
|
||||
|
#define I2C_WR 0 /* 写控制bit */ |
||||
|
#define I2C_RD 1 /* 读控制bit */ |
||||
|
|
||||
|
//////////////////////////////////////////////////////////////////
|
||||
|
//there are 12M eeprom in total, and the code download Address is App_Download_EEPROM_Addr
|
||||
|
//512 Pages x 128 Bytes = 65536 Bytes = 512 kbits
|
||||
|
|
||||
|
|
||||
|
#define GF_BSP_EEPROM_CV_struct_define_Start_Address 0 |
||||
|
#define IAP_struct_define_Start_Address 512 |
||||
|
|
||||
|
extern uint16_t App_Download_EEPROM_Addr; |
||||
|
|
||||
|
//返回值::1-正常;0-错误
|
||||
|
uint8_t GF_BSP_EEPROM_Init(void); |
||||
|
|
||||
|
uint8_t GF_BSP_EEPROM_CheckOK(void); |
||||
|
uint8_t GF_BSP_EEPROM_ReadBytes(uint8_t *_pReadBuf, uint16_t _usAddress, |
||||
|
uint16_t _usSize); |
||||
|
uint8_t GF_BSP_EEPROM_WriteBytes(uint8_t *_pWriteBuf, uint16_t _usAddress, |
||||
|
uint16_t _usSize); |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
CV_struct_define GF_BSP_EEPROM_Get_CV(void); |
||||
|
uint8_t GF_BSP_EEPROM_Set_CV(CV_struct_define cv); |
||||
|
|
||||
|
IAP_struct_define GF_BSP_EEPROM_Get_IAP(void); |
||||
|
uint8_t GF_BSP_EEPROM_Set_IAP(IAP_struct_define iap); |
||||
|
|
||||
|
|
||||
|
|
||||
|
PV_struct_define GF_BSP_EEPROM_Get_PV(void); |
||||
|
|
||||
|
uint8_t GF_BSP_EEPROM_Set_PV(PV_struct_define pv); |
||||
|
|
||||
|
|
||||
|
#endif /* INC_BSP_EEPROM_H_ */ |
||||
@ -0,0 +1,25 @@ |
|||||
|
/*
|
||||
|
* bsp_Error_Detect.h |
||||
|
* |
||||
|
* Created on: Oct 23, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_ERROR_DETECT_H_ |
||||
|
#define INC_BSP_BSP_ERROR_DETECT_H_ |
||||
|
|
||||
|
|
||||
|
/* Includes ------------------------------------------------------------------*/ |
||||
|
#include "BHBF_ROBOT.h" |
||||
|
#include "bsp_com_helper.h" |
||||
|
#include "BSP/bsp_include.h" |
||||
|
/* Exported types ------------------------------------------------------------*/ |
||||
|
/* Exported constants --------------------------------------------------------*/ |
||||
|
/* Exported macro ------------------------------------------------------------*/ |
||||
|
extern HardWareController *HardWareErrorController; |
||||
|
/* Exported functions ------------------------------------------------------- */ |
||||
|
extern char Error_Detect_Enable; |
||||
|
extern void Error_Detect_Intialzie(uint16_t DispacherPeriod); |
||||
|
|
||||
|
|
||||
|
#endif /* INC_BSP_BSP_ERROR_DETECT_H_ */ |
||||
@ -0,0 +1,84 @@ |
|||||
|
/*
|
||||
|
* bsp_FDCAN.h |
||||
|
* |
||||
|
* Created on: Oct 26, 2023 |
||||
|
* Author: shiya |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_FDCAN_H_ |
||||
|
#define INC_BSP_FDCAN_H_ |
||||
|
#include "bsp_Error.pb.h" |
||||
|
#include "bsp_com_helper.h" |
||||
|
uint8_t GF_BSP_FDCAN_Init(void); |
||||
|
|
||||
|
void GF_BSP_FDCAN_Senddata(uint8_t FDCAN_CH, uint32_t FrameID, |
||||
|
uint8_t DataLength, uint8_t *Txdata); |
||||
|
|
||||
|
extern uint8_t CAN_Buf[8]; |
||||
|
|
||||
|
extern uint8_t CAN_Buf[8]; |
||||
|
extern uint8_t CAN_Buf_2[8]; |
||||
|
typedef struct _CANSendHandler |
||||
|
{ |
||||
|
uint32_t CAN_ID; |
||||
|
uint32_t SendListTimePeriod; |
||||
|
uint8_t SendLength; |
||||
|
uint8_t Tx_Buf[8]; |
||||
|
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t); |
||||
|
struct _CANSendHandler *pNext; |
||||
|
} CANSendHandler; |
||||
|
|
||||
|
typedef struct _FDCANHandler |
||||
|
{ |
||||
|
|
||||
|
FDCAN_HandleTypeDef *canfd; //CAN to use
|
||||
|
struct _DispacherController *dispacherController; |
||||
|
|
||||
|
|
||||
|
uint8_t timeSpan; |
||||
|
|
||||
|
uint8_t SendListExists; |
||||
|
uint32_t SendList_Period; //时间ms
|
||||
|
uint32_t SendList_time_Count; |
||||
|
|
||||
|
CANSendHandler *pCurrentCANSendHadler; //
|
||||
|
void (*AddCANSendList)(struct _FDCANHandler*, uint32_t, uint8_t, uint8_t*,uint32_t,//这里是修改等待时间
|
||||
|
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t)); |
||||
|
//void CANHandlerAddTxList(FDCANHandler *handler, uint32_t CAN_ID,uint8_t SendLength, uint8_t *Tx_Buf,uint32_t sendListTimePeriod,void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t)) //参数其实就是一组can数据 在FDHandler添加东西
|
||||
|
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t); // decode can frame, received from other devices
|
||||
|
|
||||
|
void (*CAN_Send)(struct _FDCANHandler*, uint32_t, uint8_t, uint8_t*); |
||||
|
void (*CAN_Send_Data)(struct _FDCANHandler*); |
||||
|
//(uint8_t FDCAN_CH, uint32_t FrameID,uint8_t DataLength, uint8_t *Txdata)
|
||||
|
uint8_t Rx_Buf[128]; //接收缓冲
|
||||
|
uint8_t Tx_Buf[128]; //发送缓冲
|
||||
|
uint32_t ReceivedLength;//接收长度
|
||||
|
uint32_t SendLength; //发送长度
|
||||
|
uint32_t ReceivedFrameID; //接收帧ID
|
||||
|
uint32_t SendFrameID; //发送帧ID
|
||||
|
|
||||
|
} FDCANHandler; |
||||
|
|
||||
|
extern FDCANHandler FD_CAN_1_Handler; |
||||
|
extern FDCANHandler FD_CAN_2_Handler; |
||||
|
void GF_BSP_CAN_Timer(); |
||||
|
void CAN_Send_t(struct _FDCANHandler *fd, uint32_t FrameID, uint8_t DataLength, |
||||
|
uint8_t *Txdata); |
||||
|
void CAN_Send_Data_t(struct _FDCANHandler *fd); |
||||
|
|
||||
|
void GF_CAN_Send_List_Send(FDCANHandler *handler); |
||||
|
void CANHandlerAddTxList(FDCANHandler *handler, uint32_t CAN_ID, |
||||
|
uint8_t SendLength, uint8_t *Tx_Buf,uint32_t sendListTimePeriod, |
||||
|
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t)); |
||||
|
void GF_BSP_CANHandler_Init(int can1_sendListPeriod, int can1_DispacherPeriod, |
||||
|
int can2_sendListPeriod, int can2_DispacherPeriod); |
||||
|
void GF_BSP_CANHandler_Init_CAN(FDCANHandler *handler, |
||||
|
FDCAN_HandleTypeDef *canfd, int sendListPeriod, int DispacherPeriod); |
||||
|
|
||||
|
void DecodeMotorCAN(uint32_t canID, uint8_t *buffer, uint32_t length); |
||||
|
|
||||
|
extern FDCANHandler FD_CAN_1_Handler; |
||||
|
extern FDCANHandler FD_CAN_2_Handler; |
||||
|
extern int32_t CAN_ID; |
||||
|
extern int32_t CAN_ID_2; |
||||
|
#endif /* INC_BSP_FDCAN_H_ */ |
||||
@ -0,0 +1,18 @@ |
|||||
|
/*
|
||||
|
* bsp_GPIO.h |
||||
|
* |
||||
|
* Created on: Oct 26, 2023 |
||||
|
* Author: shiya |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_GPIO_H_ |
||||
|
#define INC_BSP_GPIO_H_ |
||||
|
|
||||
|
#include "bsp_include.h" |
||||
|
|
||||
|
uint8_t GF_BSP_GPIO_Init(void); |
||||
|
void GF_BSP_GPIO_SetIO(uint8_t IO_Index,uint8_t Level); |
||||
|
uint8_t GF_BSP_GPIO_ReadIO(uint8_t IO_Index); |
||||
|
uint8_t GF_BSP_GPIO_ToggleIO(uint8_t IO_Index); |
||||
|
|
||||
|
#endif /* INC_BSP_GPIO_H_ */ |
||||
@ -0,0 +1,51 @@ |
|||||
|
#ifndef __BSP_MB_HOST_H__ |
||||
|
#define __BSP_MB_HOST_H__ |
||||
|
|
||||
|
/* 包含头文件 ----------------------------------------------------------------*/ |
||||
|
|
||||
|
/* 类型定义 ------------------------------------------------------------------*/ |
||||
|
|
||||
|
/* 宏定义 --------------------------------------------------------------------*/ |
||||
|
#define MB_SLAVEADDR 0x0001 //从机地址
|
||||
|
#define MB_REG_ADDR 0 //寄存器地址(离散、线圈)
|
||||
|
#define HoldingReg 0 //保持寄存器
|
||||
|
#define InputRegReg 0x0020 //输入寄存器
|
||||
|
#define OneLineWaitTime 50 |
||||
|
#include "bsp_include.h" |
||||
|
#include "BSP/bsp_UART.h" |
||||
|
|
||||
|
/* 扩展变量 ------------------------------------------------------------------*/ |
||||
|
typedef struct |
||||
|
{ |
||||
|
|
||||
|
uint16_t DATA_01H; |
||||
|
uint16_t DATA_02H; |
||||
|
uint16_t DATA_03H; |
||||
|
|
||||
|
uint16_t DATA_04H; |
||||
|
uint16_t DATA_05H; |
||||
|
uint16_t DATA_06H; |
||||
|
uint8_t DATA_10H[64]; |
||||
|
|
||||
|
}MB_REG_DATA; |
||||
|
|
||||
|
//;
|
||||
|
extern uint8_t MB_rx_flag; |
||||
|
extern uint16_t Read_Reg_Num; |
||||
|
|
||||
|
/* 函数声明 ------------------------------------------------------------------*/ |
||||
|
uint16_t MB_CRC16(uint8_t *pushMsg, uint16_t usDataLen); |
||||
|
void MB_ReadCoil(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num); |
||||
|
void MB_WriteCoil(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _sta); |
||||
|
void MB_ReadInput(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num); |
||||
|
void MB_ReadHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num); |
||||
|
void MB_ReadInputReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num); |
||||
|
void MB_WriteHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _data); |
||||
|
//void MB_WriteNumHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num,uint8_t *_databuf)
|
||||
|
void MB_WriteNumHoldingReg(uint8_t* Tx_Buf,uint8_t* TxCount_t,uint8_t _addr, uint16_t _reg, uint16_t _num,uint8_t *_databuf); |
||||
|
void MB_WriteNumCoil(uint8_t *Tx_Buf, uint8_t *TxCount_t, uint8_t _addr, |
||||
|
uint16_t _reg, uint16_t _num, uint8_t *_databuf); |
||||
|
|
||||
|
#endif /* __BSP_MB_HOST_H__ */ |
||||
|
|
||||
|
/******************* (C) COPYRIGHT 2015-2020 硬石嵌入式开发团队 *****END OF FILE****/ |
||||
@ -0,0 +1,17 @@ |
|||||
|
/*
|
||||
|
* bsp_TIMER.h |
||||
|
* |
||||
|
* Created on: Oct 26, 2023 |
||||
|
* Author: shiya |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_TIMER_H_ |
||||
|
#define INC_BSP_TIMER_H_ |
||||
|
|
||||
|
#include "bsp_include.h" |
||||
|
|
||||
|
uint8_t GF_BSP_TIMER_Init(void); |
||||
|
void GF_BSP_TIMER_DelayUS(uint32_t n); |
||||
|
|
||||
|
|
||||
|
#endif /* INC_BSP_TIMER_H_ */ |
||||
@ -0,0 +1,108 @@ |
|||||
|
|
||||
|
|
||||
|
#ifndef INC_BSP_UART_H_ |
||||
|
#define INC_BSP_UART_H_ |
||||
|
|
||||
|
#include "BSP/bsp_include.h" |
||||
|
#include "main.h" |
||||
|
#include "bsp_Error.pb.h" |
||||
|
#define UART_Transmit_MAX_NUM 1024 |
||||
|
#define UART_Receive_MAX_NUM 100 |
||||
|
|
||||
|
extern struct UARTHandler RS_485_1_UART_Handler; |
||||
|
extern struct UARTHandler RS_485_2_UART_Handler; |
||||
|
extern struct UARTHandler RS_485_3_UART_Handler; |
||||
|
extern struct UARTHandler RS_485_4_UART_Handler; |
||||
|
extern struct UARTHandler InterCall_DEBUG_UART_Handler; |
||||
|
extern struct UARTHandler E28_SBUS_UART_Handler; |
||||
|
extern struct UARTHandler LTE_7S0_Serial_UART_Handler; |
||||
|
|
||||
|
|
||||
|
|
||||
|
#if defined (hlpuart1Exit) |
||||
|
extern struct UARTHandler LPUART1_UART_Handler; |
||||
|
|
||||
|
#endif |
||||
|
|
||||
|
uint8_t GF_BSP_UART_Init(void); |
||||
|
|
||||
|
void GF_BSP_UARTHandlers_Intialize( |
||||
|
int32_t RS485_1_WaitTime, |
||||
|
int32_t RS485_2_WaitTime, |
||||
|
int32_t RS485_3_WaitTime, |
||||
|
int32_t RS485_4_WaitTime, |
||||
|
int32_t LTE_7S0_Serial_WaitTime, |
||||
|
int32_t InterCall_DEBUG_WaitTime, |
||||
|
int32_t E28_SBUS_WaitTime, |
||||
|
int32_t LPUART1_UART_WaitTime, |
||||
|
int32_t RS485_1_Dispacher_Time, |
||||
|
int32_t RS485_2_Dispacher_Time, |
||||
|
int32_t RS485_3_Dispacher_Time, |
||||
|
int32_t RS485_4_Dispacher_Time, |
||||
|
int32_t LTE_7S0_Serial_Dispacher_Time, |
||||
|
int32_t InterCall_DEBUG_Dispacher_Time, |
||||
|
int32_t E28_SBUS_Dispacher_Time, |
||||
|
int32_t LPUART1_UART_Dispacher_Time |
||||
|
); |
||||
|
|
||||
|
//串行发送完成后才能发送第二帧数据,没有做缓冲,如未发送完成,第二次发送无效,丢弃发送数据
|
||||
|
void GF_BSP_UART_Transmit(const uint8_t RS485_Index,const uint8_t *pData, uint16_t Size); |
||||
|
|
||||
|
|
||||
|
|
||||
|
// 链表节点结构体
|
||||
|
typedef struct UARTSendHandler |
||||
|
{ |
||||
|
uint16_t SendLength; |
||||
|
uint16_t SendListTimePeriod; |
||||
|
uint8_t Tx_Buf[502]; |
||||
|
void (*UART_Decode)(uint8_t*, uint16_t); // 发送缓存
|
||||
|
struct UARTSendHandler* pNext; |
||||
|
}UARTSendHandler; |
||||
|
|
||||
|
|
||||
|
struct UARTHandler |
||||
|
{ |
||||
|
char startCountFlag; //indicate that to start counting
|
||||
|
char send_finished;//indicate decode finished or not
|
||||
|
char decode_finished;//indicate decode finished or not
|
||||
|
uint8_t tmp_Rx_Buf[2]; // temporary data to store received data
|
||||
|
|
||||
|
uint32_t Wait_time; // the time to wait
|
||||
|
//uint32_t Send_time;
|
||||
|
//uint32_t count;
|
||||
|
uint32_t Wait_Time_Count; |
||||
|
uint32_t SendList_time_Count; |
||||
|
|
||||
|
uint32_t SendList_Period; |
||||
|
uint8_t SendListExists; |
||||
|
|
||||
|
UART_HandleTypeDef* uart; //UART to use
|
||||
|
unsigned char timeSpan; // timer elapsed time
|
||||
|
uint8_t Rx_Buf[2048]; // 接收缓存,最大256字节
|
||||
|
uint8_t Tx_Buf[2048]; //发送缓存 157,864
|
||||
|
uint16_t TxCount; |
||||
|
|
||||
|
uint16_t RxCount; |
||||
|
|
||||
|
//(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size)
|
||||
|
void (*UART_Tx)(struct UARTHandler*); //void UART_Tx(uint8_t *Tx_Buf,uint16_t TxCount);
|
||||
|
void (*UART_Rx)(struct UARTHandler*); |
||||
|
void (*UART_Decode)(uint8_t*, uint16_t); //Decode Rx_Buf
|
||||
|
UARTSendHandler *pCurrentUARTSendHadler; //
|
||||
|
void (*AddSendList)(struct UARTHandler*, uint8_t*, uint16_t,uint32_t,//这里是修改等待时间
|
||||
|
void (*UART_Decode)(uint8_t*, uint16_t)); |
||||
|
struct _DispacherController *dispacherController; |
||||
|
}; |
||||
|
|
||||
|
void UARTHandlerTx(struct UARTHandler *uartHandler); |
||||
|
void UARTHandlerRX(struct UARTHandler *uartHandler); |
||||
|
//void IntializeUARTHandler(struct UARTHandler *uartHandler, UART_HandleTypeDef uart,int32_t WaitTime,unsigned char timeSpan);
|
||||
|
void Counting(struct UARTHandler *uartHandler); |
||||
|
|
||||
|
|
||||
|
void IntializeUARTHandler(struct UARTHandler *uartHandler, |
||||
|
UART_HandleTypeDef *uart, int32_t WaitTime, unsigned char timeSpan,int32_t Dispacher_Time); |
||||
|
void GF_BSP_UART_Timer(); |
||||
|
|
||||
|
#endif /* INC_BSP_UART_H_ */ |
||||
@ -0,0 +1,23 @@ |
|||||
|
/*
|
||||
|
* bsp_UDP.h |
||||
|
* |
||||
|
* Created on: Aug 13, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_UDP_H_ |
||||
|
#define INC_BSP_BSP_UDP_H_ |
||||
|
|
||||
|
void udp_client_init(void); |
||||
|
|
||||
|
|
||||
|
void udp_dlt_send_back(char *pData,uint16_t Size); |
||||
|
void udp_cmd_send_back(char *pData, uint16_t Size); |
||||
|
|
||||
|
typedef void (*DLT_DecodeFuncPtr)(uint8_t*, uint16_t); |
||||
|
void udp_send_by_pcb(struct udp_pcb * upcb,char *pData, uint16_t Size); |
||||
|
// 再用该类型声明变量
|
||||
|
extern DLT_DecodeFuncPtr UDP_DLT_ReceivedCallback; |
||||
|
extern int8_t is_udp_GV_update_loop_enalbed; |
||||
|
|
||||
|
#endif /* INC_BSP_BSP_UDP_H_ */ |
||||
@ -0,0 +1,27 @@ |
|||||
|
/*
|
||||
|
* bsp_desulfurizer_handler.h |
||||
|
* |
||||
|
* Created on: Jul 29, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_UPPERCOMPUTER_HANDLER_H_ |
||||
|
#define INC_BSP_BSP_UPPERCOMPUTER_HANDLER_H_ |
||||
|
#include <stdio.h> |
||||
|
#include <string.h> |
||||
|
#include "bsp_MB_host.h" |
||||
|
#include "stdio.h" |
||||
|
#include "BSP/bsp_UART.h" |
||||
|
#include "usart.h" |
||||
|
#include "gpio.h" |
||||
|
|
||||
|
|
||||
|
extern struct UARTHandler *desulfurizer_message_UART_Handler; |
||||
|
void upper_Computer_UART_Handler_intialize(struct UARTHandler *Handler); |
||||
|
|
||||
|
void decode_command_from_computer(uint8_t *buffer, uint16_t length); |
||||
|
|
||||
|
|
||||
|
void send_data_to_upper_computer(double Angle, double WireLength, |
||||
|
double Thickness, char IsFittingPoint,char isMqtt,struct UARTHandler *send_UART_Handler); |
||||
|
#endif /* INC_BSP_BSP_UPPERCOMPUTER_HANDLER_H_ */ |
||||
@ -0,0 +1,13 @@ |
|||||
|
/*
|
||||
|
* bsp_pv_setting.h |
||||
|
* |
||||
|
* Created on: Jan 8, 2025 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_CLIENT_SETTING_H_ |
||||
|
#define INC_BSP_BSP_CLIENT_SETTING_H_ |
||||
|
#include "BHBF_ROBOT.h" |
||||
|
|
||||
|
void client_setting_intialize(struct UARTHandler *Handler); |
||||
|
#endif /* INC_BSP_BSP_CLIENT_SETTING_H_ */ |
||||
@ -0,0 +1,78 @@ |
|||||
|
/*
|
||||
|
* bsp_com_helper.h |
||||
|
* |
||||
|
* Created on: Oct 9, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_COM_HELPER_H_ |
||||
|
#define INC_BSP_BSP_COM_HELPER_H_ |
||||
|
#include "bsp_include.h" |
||||
|
|
||||
|
// 链表节点结构体
|
||||
|
typedef struct _Dispatcher |
||||
|
{ |
||||
|
//uint8_t IsDeleted;
|
||||
|
void (*dispache)(void); |
||||
|
|
||||
|
//struct _Dispatcher* pBefore;
|
||||
|
struct _Dispatcher* pNext; |
||||
|
}Dispatcher; |
||||
|
|
||||
|
|
||||
|
//通讯链表节点结构体
|
||||
|
typedef struct _ComHardWare |
||||
|
{ |
||||
|
//void (*dispache)(void);
|
||||
|
char Name[50]; |
||||
|
char IsOnline; |
||||
|
uint32_t BitFlag; |
||||
|
struct _ComHardWare* pNext; |
||||
|
}ComHardWare; |
||||
|
|
||||
|
typedef struct _DispacherController |
||||
|
{ |
||||
|
Dispatcher *pHead; // = NULL; //环形链表中的数据头指针
|
||||
|
Dispatcher *pTail; // = NULL; //环形链表中的数据尾指针
|
||||
|
uint16_t DispacherNumber; // = 0;
|
||||
|
uint16_t DispacherCallTime; //
|
||||
|
uint16_t Dispacher_Counter; // = 0;
|
||||
|
uint16_t Dispacher_Enable; // = 0 disable 1 enable
|
||||
|
void (*Add_Dispatcher_List)(struct _DispacherController* , |
||||
|
void (*dispacher)(void)); |
||||
|
void (*Dispatcher_Run)(struct _DispacherController* ); |
||||
|
|
||||
|
}DispacherController; |
||||
|
|
||||
|
typedef struct _HardWareController |
||||
|
{ |
||||
|
struct _ComHardWare *pComHWHead; |
||||
|
struct _ComHardWare *pComHWTail; |
||||
|
uint16_t HardWare_Check_Counter; |
||||
|
uint16_t DispacherCallTime; //= 100; //2ms 一次,
|
||||
|
void (*Add_PCOMHardWare)(struct _HardWareController *, char* , char ,uint32_t); |
||||
|
void (*PCOMHardWare_Check)(struct _HardWareController *); |
||||
|
int (*Set_PCOMHardWare)(struct _HardWareController *, char* , char ); |
||||
|
|
||||
|
|
||||
|
} HardWareController; |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
void Dispatch_t(DispacherController *uartHandler); |
||||
|
|
||||
|
void Dispatcher_List_Add_t(DispacherController *uartHandler,void (*dispache)(void)); |
||||
|
// void Dispatcher_List_Add_t(DispacherController *uartHandler,
|
||||
|
// void (*dispache)(void),void (*Decode)(uint8_t*, uint16_t));
|
||||
|
// void ComHardWare_List_Add_t(HardWareController *uartHandler, char *name,char value);
|
||||
|
|
||||
|
void PCOMHardWare_Check_t(HardWareController *uartHandler); |
||||
|
|
||||
|
int Set_PCOMHardWare_t(HardWareController *uartHandler, char *name, char value); |
||||
|
|
||||
|
void ComHardWare_List_Add_t(HardWareController *uartHandler, char *name, |
||||
|
char value,uint32_t bitFlag); |
||||
|
|
||||
|
|
||||
|
#endif /* INC_BSP_BSP_COM_HELPER_H_ */ |
||||
@ -0,0 +1,66 @@ |
|||||
|
/*
|
||||
|
* bsp_cpu_flash.h |
||||
|
* |
||||
|
* Created on: Aug 28, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef SRC_BSP_BSP_CPU_FLASH_H_ |
||||
|
#define SRC_BSP_BSP_CPU_FLASH_H_ |
||||
|
|
||||
|
#include "main.h" |
||||
|
|
||||
|
#include <bsp_qspi_w25q128.h> |
||||
|
#include "quadspi.h" |
||||
|
|
||||
|
#define ENABLE_INT() __set_PRIMASK(0) /* 使能全局中断 */ |
||||
|
#define DISABLE_INT() __set_PRIMASK(1) /* 禁止全局中断 */ |
||||
|
|
||||
|
|
||||
|
#define CPU_FLASH_BASE_ADDR (uint32_t)(FLASH_BASE) /* 0x08000000 */ |
||||
|
#define CPU_FLASH_END_ADDR (uint32_t)(0x081FFFFF) |
||||
|
|
||||
|
#define CPU_FLASH_SIZE (2 * 1024 * 1024) /* FLASH总容量 */ |
||||
|
#define CPU_FLASH_SECTOR_SIZE (128 * 1024) /* 扇区大小,字节 */ |
||||
|
|
||||
|
/* Base address of the Flash sectors Bank 1 */ |
||||
|
#define ADDR_FLASH_SECTOR_0_BANK1 ((uint32_t)0x08000000) /* Base @ of Sector 0, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_1_BANK1 ((uint32_t)0x08020000) /* Base @ of Sector 1, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_2_BANK1 ((uint32_t)0x08040000) /* Base @ of Sector 2, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_3_BANK1 ((uint32_t)0x08060000) /* Base @ of Sector 3, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_4_BANK1 ((uint32_t)0x08080000) /* Base @ of Sector 4, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_5_BANK1 ((uint32_t)0x080A0000) /* Base @ of Sector 5, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_6_BANK1 ((uint32_t)0x080C0000) /* Base @ of Sector 6, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_7_BANK1 ((uint32_t)0x080E0000) /* Base @ of Sector 7, 128 Kbytes */ |
||||
|
|
||||
|
/* Base address of the Flash sectors Bank 2 */ |
||||
|
#define ADDR_FLASH_SECTOR_0_BANK2 ((uint32_t)0x08100000) /* Base @ of Sector 0, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_1_BANK2 ((uint32_t)0x08120000) /* Base @ of Sector 1, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_2_BANK2 ((uint32_t)0x08140000) /* Base @ of Sector 2, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_3_BANK2 ((uint32_t)0x08160000) /* Base @ of Sector 3, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_4_BANK2 ((uint32_t)0x08180000) /* Base @ of Sector 4, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_5_BANK2 ((uint32_t)0x081A0000) /* Base @ of Sector 5, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_6_BANK2 ((uint32_t)0x081C0000) /* Base @ of Sector 6, 128 Kbytes */ |
||||
|
#define ADDR_FLASH_SECTOR_7_BANK2 ((uint32_t)0x081E0000) /* Base @ of Sector 7, 128 Kbytes */ |
||||
|
|
||||
|
#define FLASH_IS_EQU 0 /* Flash内容和待写入的数据相等,不需要擦除和写操作 */ |
||||
|
#define FLASH_REQ_WRITE 1 /* Flash不需要擦除,直接写 */ |
||||
|
#define FLASH_REQ_ERASE 2 /* Flash需要先擦除,再写 */ |
||||
|
#define FLASH_PARAM_ERR 3 /* 函数参数错误 */ |
||||
|
|
||||
|
|
||||
|
#define App_Start_Addr 0x08000000 |
||||
|
#define App_Run_Addr 0x08020000 |
||||
|
#define App_Download_Addr 0x08080000 // ADDR_FLASH_SECTOR_4_BANK1
|
||||
|
|
||||
|
|
||||
|
|
||||
|
uint8_t bsp_ReadCpuFlash(uint32_t _ulFlashAddr, uint8_t *_ucpDst, uint32_t _ulSize); |
||||
|
uint8_t bsp_WriteCpuFlash(uint32_t _ulFlashAddr, uint8_t *_ucpSrc, uint32_t _ulSize); |
||||
|
uint8_t bsp_CmpCpuFlash(uint32_t _ulFlashAddr, uint8_t *_ucpBuf, uint32_t _ulSize); |
||||
|
void JumpToApp(void); |
||||
|
void Copy_Peripheral_Download_Flash_to_App_Start(uint32_t totalBytes); |
||||
|
uint8_t bsp_EraseCpuFlash(uint32_t _ulFlashAddr); |
||||
|
void Erase_App_Download_Flash_Addr(); |
||||
|
void Copy_Download_Flash_to_Start(); |
||||
|
#endif /* SRC_BSP_BSP_CPU_FLASH_H_ */ |
||||
@ -0,0 +1,39 @@ |
|||||
|
/*
|
||||
|
* bsp_decode_command.h |
||||
|
* |
||||
|
* Created on: Sep 24, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_DECODE_COMMAND_H_ |
||||
|
#define INC_BSP_BSP_DECODE_COMMAND_H_ |
||||
|
#include "main.h" |
||||
|
#include "msp_WH_LTE_7S0.h" |
||||
|
|
||||
|
#include "pb_decode.h" |
||||
|
#include "pb_encode.h" |
||||
|
#include "bsp_include.h" |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#include "bsp_Cmd.pb.h" |
||||
|
#include <stdio.h> |
||||
|
#include <stdbool.h> |
||||
|
#include <stdlib.h> |
||||
|
|
||||
|
#include "BHBF_ROBOT.h" |
||||
|
#include "bsp_cpu_flash.h" |
||||
|
#include <bsp_qspi_w25q128.h> |
||||
|
#include <bsp_UpperComputer_Handler.h> |
||||
|
#include "bsp_ReCmd.pb.h" |
||||
|
#include "bsp_IV.pb.h" |
||||
|
|
||||
|
void send_received_data_to_upper_computer(uint8_t *buffer, uint16_t length); |
||||
|
void decode_command_and_feedback(uint8_t *buffer, uint16_t length, char sendWay, |
||||
|
struct UARTHandler *send_Handler); |
||||
|
|
||||
|
extern void WrapInCmdAndSend(ReCmd send_Cmd, uint8_t *buf, int8_t sendWay,struct UARTHandler *send_Handler); |
||||
|
|
||||
|
|
||||
|
extern void WrapInCmdAndSendMessage(ReCmd send_Cmd,int8_t functionNum,int8_t isSuccess, uint8_t *buf, int8_t sendWay, |
||||
|
struct UARTHandler *send_Handler); |
||||
|
#endif /* INC_BSP_BSP_DECODE_COMMAND_H_ */ |
||||
@ -0,0 +1,57 @@ |
|||||
|
/*
|
||||
|
* bsp_include.h |
||||
|
* |
||||
|
* Created on: Oct 26, 2023 |
||||
|
* Author: shiya |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_INCLUDE_H_ |
||||
|
#define INC_BSP_INCLUDE_H_ |
||||
|
|
||||
|
#include "main.h" |
||||
|
#include "dma.h" |
||||
|
#include "fdcan.h" |
||||
|
#include "i2c.h" |
||||
|
#include "tim.h" |
||||
|
#include "usart.h" |
||||
|
#include "gpio.h" |
||||
|
|
||||
|
#include "bsp_EEPROM.h" |
||||
|
#include "bsp_GPIO.h" |
||||
|
#include "bsp_FDCAN.h" |
||||
|
|
||||
|
#include "bsp_TIMER.h" |
||||
|
#include "bsp_PV.pb.h" |
||||
|
|
||||
|
#include "bsp_GV.pb.h" |
||||
|
#include "bsp_CV.pb.h" |
||||
|
#include "pb.h" |
||||
|
#include "pb_decode.h" |
||||
|
#include "pb_common.h" |
||||
|
#include "DLTuc.h" |
||||
|
//一个中断回调函数支持多少个回调函数链接
|
||||
|
#define DF_BSP_InterCall_Num 20 |
||||
|
|
||||
|
//一共支持多少种中断函数
|
||||
|
#define DF_BSP_InterCall_Type_Num 11 |
||||
|
|
||||
|
enum DF_BSP_InterCall_Type |
||||
|
{ |
||||
|
DF_BSP_InterCall_FDCAN1_RxFifo0Callback = 0, |
||||
|
DF_BSP_InterCall_FDCAN2_RxFifo0Callback, |
||||
|
DF_BSP_InterCall_RS485_1_RxCpltCallback, |
||||
|
DF_BSP_InterCall_RS485_2_RxCpltCallback, |
||||
|
DF_BSP_InterCall_RS485_3_RxCpltCallback, |
||||
|
DF_BSP_InterCall_RS485_4_RxCpltCallback, |
||||
|
DF_BSP_InterCall_DEBUG_RxCpltCallback, |
||||
|
DF_BSP_InterCall_E22_Serial_RxCpltCallback, |
||||
|
DF_BSP_InterCall_E28_SBUS_RxFifo0Callback, |
||||
|
DF_BSP_InterCall_TIM1_100ms_PeriodElapsedCallback, |
||||
|
DF_BSP_InterCall_TIM8_2ms_PeriodElapsedCallback |
||||
|
}; |
||||
|
|
||||
|
uint8_t GF_BSP_Interrupt_Add_CallBack(enum DF_BSP_InterCall_Type _type, |
||||
|
void (*_fn)(void)); |
||||
|
void GF_BSP_Interrupt_Run_CallBack(enum DF_BSP_InterCall_Type _type); |
||||
|
|
||||
|
#endif /* INC_BSP_INCLUDE_H_ */ |
||||
@ -0,0 +1,36 @@ |
|||||
|
|
||||
|
#ifndef __BSP_MQTT_H |
||||
|
#define __BSP_MQTT_H |
||||
|
|
||||
|
/*-----------------------------------------------------------
|
||||
|
* Includes files |
||||
|
*----------------------------------------------------------*/ |
||||
|
|
||||
|
/*-----------------------------------------------------------
|
||||
|
* Exported constants |
||||
|
*----------------------------------------------------------*/ |
||||
|
|
||||
|
|
||||
|
/*-----------------------------------------------------------
|
||||
|
* Exported macro |
||||
|
*----------------------------------------------------------*/ |
||||
|
|
||||
|
/*-----------------------------------------------------------
|
||||
|
* Exported function |
||||
|
*----------------------------------------------------------*/ |
||||
|
/*!
|
||||
|
* @brief 封装 MQTT 初始化接口 |
||||
|
* 执行条件:无 |
||||
|
* |
||||
|
* @retval: 无 |
||||
|
*/ |
||||
|
void bsp_mqtt_init(void); |
||||
|
void bsp_mqtt_test(void); |
||||
|
|
||||
|
|
||||
|
extern void bsp_mqtt_pub_send(char topic[],char buf[],size_t len); |
||||
|
|
||||
|
|
||||
|
#include "bsp_pb_decode_encode.h" |
||||
|
|
||||
|
#endif /* __BSP_WOLFSSL_H */ |
||||
@ -0,0 +1,26 @@ |
|||||
|
/*
|
||||
|
* bsp_mqtt_pub.h |
||||
|
* |
||||
|
* Created on: Jul 9, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_MQTT_PUB_H_ |
||||
|
#define INC_BSP_BSP_MQTT_PUB_H_ |
||||
|
|
||||
|
#include "bsp_pb_decode_encode.h" |
||||
|
#include "pb_decode.h" |
||||
|
#include "pb_encode.h" |
||||
|
#include "bsp_CV.pb.h" |
||||
|
#include "bsp_pb_decode_encode.h" |
||||
|
#include "BSP/bsp_EEPROM.h" |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
extern void log_info(char logger[], char message[]); |
||||
|
extern void log_debug(char logger[], char message[]); |
||||
|
extern void log_err(char logger[], char message[]); |
||||
|
|
||||
|
#endif /* INC_BSP_BSP_MQTT_PUB_H_ */ |
||||
@ -0,0 +1,51 @@ |
|||||
|
/*
|
||||
|
* bsp_pb_decode_encode.h |
||||
|
* |
||||
|
* Created on: Jul 5, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_PB_DECODE_ENCODE_H_ |
||||
|
#define INC_BSP_BSP_PB_DECODE_ENCODE_H_ |
||||
|
|
||||
|
#include <stdio.h> |
||||
|
#include <string.h> |
||||
|
#include <stdlib.h> |
||||
|
#include <stdbool.h> |
||||
|
|
||||
|
#include "pb_decode.h" |
||||
|
#include "pb_encode.h" |
||||
|
#include "pb.h" |
||||
|
#include "bsp_CV.pb.h" |
||||
|
#include "bsp_GV.pb.h" |
||||
|
//#include "msp_MK32.pb.h"
|
||||
|
#include "msp_Motor.pb.h" |
||||
|
#include "bsp_PV.pb.h" |
||||
|
#include "bsp_CV.pb.h" |
||||
|
#include "bsp_CV.pb.h" |
||||
|
#include "pb_common.h" |
||||
|
|
||||
|
#include "bsp_IAP.pb.h" |
||||
|
IAP_struct_define pb_decode_IAP(uint8_t *buf, size_t length); |
||||
|
|
||||
|
typedef struct pb_buffer_arg |
||||
|
{ |
||||
|
/* Buffer to be written, or reference to read buffer */ |
||||
|
void const *buf; |
||||
|
/* Length of buf */ |
||||
|
size_t buf_len; |
||||
|
} pb_buffer_arg; |
||||
|
|
||||
|
|
||||
|
bool pb_encode_string_cb(pb_ostream_t *stream, const pb_field_t *field, void *const *arg); |
||||
|
bool pb_decode_string_cb(pb_istream_t *stream, const pb_field_t *field, void **arg); |
||||
|
|
||||
|
|
||||
|
extern CV_struct_define pb_decode_CV(char *buf, size_t length); |
||||
|
extern void Test_CV(); |
||||
|
|
||||
|
//extern void pb_encode_TraceMessage(char buf[], size_t buf_len,size_t* len,TraceLevel traceLevel, char logger[], char message[] );
|
||||
|
void pb_encode_TraceMessage(char buf[],size_t buf_len, size_t* len, |
||||
|
char traceLevel[], char logger[], char message[] ); |
||||
|
|
||||
|
#endif /* INC_BSP_BSP_PB_DECODE_ENCODE_H_ */ |
||||
@ -0,0 +1,107 @@ |
|||||
|
/*
|
||||
|
* bsp_quadspi_W25Q128.h |
||||
|
* |
||||
|
* Created on: Apr 21, 2021 |
||||
|
* Author: Administrator |
||||
|
* |
||||
|
* 该bsp用于华邦的w25q128JV,跟华邦的w25q128JV不一样 |
||||
|
* 坑爹的 |
||||
|
*/ |
||||
|
|
||||
|
#ifndef BSP_QSPI_W25Q128_H_ |
||||
|
#define BSP_QSPI_W25Q128_H_ |
||||
|
|
||||
|
|
||||
|
#include "quadspi.h" |
||||
|
#include "stdio.h" |
||||
|
|
||||
|
/* 宏定义 --------------------------------------------------------------------*/ |
||||
|
#define FLASH_BEGIN_ADDRESS 0x00000 |
||||
|
|
||||
|
#define CODE_DOWNLOAD_FLASH_BEGIN_ADDRESS 0x00000 |
||||
|
#define CODE_FLASH_STORAGE_SIZE 1024*1024 // 留下1M的空间存储数据
|
||||
|
|
||||
|
#define W25Q128FV_FLASH_SIZE 0x1000000 /* 128 MBits => 16MBytes */ |
||||
|
#define W25Q128FV_BLOCK_SIZE 0x10000 /* 256 Blocks of 64KBytes */ |
||||
|
#define W25Q128FV_HALF_BLOCK_SIZE 0x8000 /* 128 Blocks of 32KBytes */ |
||||
|
#define W25Q128FV_SECTOR_SIZE 0x1000 /* 4096 sectors of 4kBytes */ |
||||
|
#define W25Q128FV_PAGE_SIZE 0x100 /* 65536 pages of 256 bytes */ |
||||
|
|
||||
|
#define W25Q128FV_DUMMY_CYCLES_READ 4 |
||||
|
#define W25Q128FV_DUMMY_CYCLES_READ_QUAD 10 |
||||
|
|
||||
|
#define W25Q128FV_BULK_ERASE_MAX_TIME 250000//ms
|
||||
|
#define W25Q128FV_SECTOR_ERASE_MAX_TIME 3000 |
||||
|
#define W25Q128FV_SUBSECTOR_ERASE_MAX_TIME 800 |
||||
|
|
||||
|
#define W25Q128FV_FLASH_ID 0XEF4018 |
||||
|
/* W25Q128FV 指令 */ |
||||
|
/* 复位操作 */ |
||||
|
#define RESET_ENABLE_CMD 0x66 |
||||
|
#define RESET_MEMORY_CMD 0x99 |
||||
|
|
||||
|
#define ENTER_QPI_MODE_CMD 0x38 |
||||
|
#define EXIT_QPI_MODE_CMD 0xFF |
||||
|
|
||||
|
/* 读取ID指令 */ |
||||
|
#define READ_ID_CMD 0x90 |
||||
|
#define DUAL_READ_ID_CMD 0x92 |
||||
|
#define QUAD_READ_ID_CMD 0x94 |
||||
|
#define READ_JEDEC_ID_CMD 0x9F |
||||
|
|
||||
|
/* 读操作指令 */ |
||||
|
#define READ_CMD 0x03 |
||||
|
#define FAST_READ_CMD 0x0B |
||||
|
#define DUAL_OUT_FAST_READ_CMD 0x3B |
||||
|
#define DUAL_INOUT_FAST_READ_CMD 0xBB |
||||
|
#define QUAD_OUT_FAST_READ_CMD 0x6B |
||||
|
#define QUAD_INOUT_FAST_READ_CMD 0xEB |
||||
|
|
||||
|
/* 写使能操作指令 */ |
||||
|
#define WRITE_ENABLE_CMD 0x06 |
||||
|
#define WRITE_DISABLE_CMD 0x04 |
||||
|
|
||||
|
/* 读写状态寄存器操作指令 */ |
||||
|
#define READ_STATUS_REG1_CMD 0x05 |
||||
|
#define READ_STATUS_REG2_CMD 0x35 |
||||
|
#define READ_STATUS_REG3_CMD 0x15 |
||||
|
|
||||
|
#define WRITE_STATUS_REG1_CMD 0x01 |
||||
|
#define WRITE_STATUS_REG2_CMD 0x31 |
||||
|
#define WRITE_STATUS_REG3_CMD 0x11 |
||||
|
|
||||
|
/* 编程指令 */ |
||||
|
#define PAGE_PROG_CMD 0x02 |
||||
|
#define QUAD_INPUT_PAGE_PROG_CMD 0x32 |
||||
|
|
||||
|
/* 擦除Flash指令 */ |
||||
|
#define SECTOR_ERASE_CMD 0x20 |
||||
|
#define BLOCK_32KB_ERASE_CMD 0x52 |
||||
|
#define BLOCK_64KB_ERASE_CMD 0xD8 |
||||
|
#define CHIP_ERASE_CMD 0xC7 |
||||
|
|
||||
|
#define PROG_ERASE_RESUME_CMD 0x7A |
||||
|
#define PROG_ERASE_SUSPEND_CMD 0x75 |
||||
|
|
||||
|
/* 状态寄存器标志位 */ |
||||
|
#define W25Q128FV_FSR_BUSY ((uint8_t)0x01) /* busy */ |
||||
|
#define W25Q128FV_FSR_WREN ((uint8_t)0x02) /* write enable */ |
||||
|
#define W25Q128FV_FSR_QE ((uint8_t)0x02) /* quad enable */ |
||||
|
|
||||
|
/* Flash 状态码*/ |
||||
|
#define FLASH_OK ((uint8_t)0x00) |
||||
|
#define FLASH_ERROR ((uint8_t)0x01) |
||||
|
#define FLASH_BUSY ((uint8_t)0x02) |
||||
|
#define FLASH_NOT_SUPPORTED ((uint8_t)0x04) |
||||
|
#define FLASH_SUSPENDED ((uint8_t)0x08) |
||||
|
|
||||
|
|
||||
|
|
||||
|
uint32_t QSPI_W25Qx_ReadID(void); |
||||
|
void QSPI_W25Qx_Reset_Memory(); |
||||
|
void QSPI_W25Qx_EraseSector(uint32_t _SectorAddr); |
||||
|
uint8_t QSPI_W25Qx_Write_Buffer(uint8_t *_pBuf,uint32_t _write_Addr,uint16_t _write_Size); |
||||
|
void QSPI_W25Qx_Read_Buffer(uint8_t *_pBuf,uint32_t _read_Addr,uint32_t _read_Size); |
||||
|
void QSPI_W25Qx_EraseDownLoadFlash(); |
||||
|
void user_Assert(char *file,uint32_t line); |
||||
|
#endif /* BSP_QSPI_W25Q128_H_ */ |
||||
@ -0,0 +1,19 @@ |
|||||
|
/*
|
||||
|
* bsp_adc.h |
||||
|
* |
||||
|
* Created on: Feb 21, 2025 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_TEMPATURE_H_ |
||||
|
#define INC_BSP_BSP_TEMPATURE_H_ |
||||
|
|
||||
|
|
||||
|
#include "main.h" |
||||
|
#include "DLTuc.h" |
||||
|
|
||||
|
int32_t read_temperature(); |
||||
|
void ADC_Intialize(); |
||||
|
|
||||
|
extern int32_t * tempature; |
||||
|
#endif /* INC_BSP_BSP_TEMPATURE_H_ */ |
||||
@ -0,0 +1,917 @@ |
|||||
|
/* Common parts of the nanopb library. Most of these are quite low-level
|
||||
|
* stuff. For the high-level interface, see pb_encode.h and pb_decode.h. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef PB_H_INCLUDED |
||||
|
#define PB_H_INCLUDED |
||||
|
|
||||
|
/*****************************************************************
|
||||
|
* Nanopb compilation time options. You can change these here by * |
||||
|
* uncommenting the lines, or on the compiler command line. * |
||||
|
*****************************************************************/ |
||||
|
|
||||
|
/* Enable support for dynamically allocated fields */ |
||||
|
/* #define PB_ENABLE_MALLOC 1 */ |
||||
|
|
||||
|
/* Define this if your CPU / compiler combination does not support
|
||||
|
* unaligned memory access to packed structures. Note that packed |
||||
|
* structures are only used when requested in .proto options. */ |
||||
|
/* #define PB_NO_PACKED_STRUCTS 1 */ |
||||
|
|
||||
|
/* Increase the number of required fields that are tracked.
|
||||
|
* A compiler warning will tell if you need this. */ |
||||
|
/* #define PB_MAX_REQUIRED_FIELDS 256 */ |
||||
|
|
||||
|
/* Add support for tag numbers > 65536 and fields larger than 65536 bytes. */ |
||||
|
/* #define PB_FIELD_32BIT 1 */ |
||||
|
|
||||
|
/* Disable support for error messages in order to save some code space. */ |
||||
|
/* #define PB_NO_ERRMSG 1 */ |
||||
|
|
||||
|
/* Disable support for custom streams (support only memory buffers). */ |
||||
|
/* #define PB_BUFFER_ONLY 1 */ |
||||
|
|
||||
|
/* Disable support for 64-bit datatypes, for compilers without int64_t
|
||||
|
or to save some code space. */ |
||||
|
/* #define PB_WITHOUT_64BIT 1 */ |
||||
|
|
||||
|
/* Don't encode scalar arrays as packed. This is only to be used when
|
||||
|
* the decoder on the receiving side cannot process packed scalar arrays. |
||||
|
* Such example is older protobuf.js. */ |
||||
|
/* #define PB_ENCODE_ARRAYS_UNPACKED 1 */ |
||||
|
|
||||
|
/* Enable conversion of doubles to floats for platforms that do not
|
||||
|
* support 64-bit doubles. Most commonly AVR. */ |
||||
|
/* #define PB_CONVERT_DOUBLE_FLOAT 1 */ |
||||
|
|
||||
|
/* Check whether incoming strings are valid UTF-8 sequences. Slows down
|
||||
|
* the string processing slightly and slightly increases code size. */ |
||||
|
/* #define PB_VALIDATE_UTF8 1 */ |
||||
|
|
||||
|
/* This can be defined if the platform is little-endian and has 8-bit bytes.
|
||||
|
* Normally it is automatically detected based on __BYTE_ORDER__ macro. */ |
||||
|
/* #define PB_LITTLE_ENDIAN_8BIT 1 */ |
||||
|
|
||||
|
/* Configure static assert mechanism. Instead of changing these, set your
|
||||
|
* compiler to C11 standard mode if possible. */ |
||||
|
/* #define PB_C99_STATIC_ASSERT 1 */ |
||||
|
/* #define PB_NO_STATIC_ASSERT 1 */ |
||||
|
|
||||
|
/******************************************************************
|
||||
|
* You usually don't need to change anything below this line. * |
||||
|
* Feel free to look around and use the defined macros, though. * |
||||
|
******************************************************************/ |
||||
|
|
||||
|
|
||||
|
/* Version of the nanopb library. Just in case you want to check it in
|
||||
|
* your own program. */ |
||||
|
#define NANOPB_VERSION "nanopb-0.4.8-dev" |
||||
|
|
||||
|
/* Include all the system headers needed by nanopb. You will need the
|
||||
|
* definitions of the following: |
||||
|
* - strlen, memcpy, memset functions |
||||
|
* - [u]int_least8_t, uint_fast8_t, [u]int_least16_t, [u]int32_t, [u]int64_t |
||||
|
* - size_t |
||||
|
* - bool |
||||
|
* |
||||
|
* If you don't have the standard header files, you can instead provide |
||||
|
* a custom header that defines or includes all this. In that case, |
||||
|
* define PB_SYSTEM_HEADER to the path of this file. |
||||
|
*/ |
||||
|
#ifdef PB_SYSTEM_HEADER |
||||
|
#include PB_SYSTEM_HEADER |
||||
|
#else |
||||
|
#include <stdint.h> |
||||
|
#include <stddef.h> |
||||
|
#include <stdbool.h> |
||||
|
#include <string.h> |
||||
|
#include <limits.h> |
||||
|
|
||||
|
#ifdef PB_ENABLE_MALLOC |
||||
|
#include <stdlib.h> |
||||
|
#endif |
||||
|
#endif |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Macro for defining packed structures (compiler dependent).
|
||||
|
* This just reduces memory requirements, but is not required. |
||||
|
*/ |
||||
|
#if defined(PB_NO_PACKED_STRUCTS) |
||||
|
/* Disable struct packing */ |
||||
|
# define PB_PACKED_STRUCT_START |
||||
|
# define PB_PACKED_STRUCT_END |
||||
|
# define pb_packed |
||||
|
#elif defined(__GNUC__) || defined(__clang__) |
||||
|
/* For GCC and clang */ |
||||
|
# define PB_PACKED_STRUCT_START |
||||
|
# define PB_PACKED_STRUCT_END |
||||
|
# define pb_packed __attribute__((packed)) |
||||
|
#elif defined(__ICCARM__) || defined(__CC_ARM) |
||||
|
/* For IAR ARM and Keil MDK-ARM compilers */ |
||||
|
# define PB_PACKED_STRUCT_START _Pragma("pack(push, 1)") |
||||
|
# define PB_PACKED_STRUCT_END _Pragma("pack(pop)") |
||||
|
# define pb_packed |
||||
|
#elif defined(_MSC_VER) && (_MSC_VER >= 1500) |
||||
|
/* For Microsoft Visual C++ */ |
||||
|
# define PB_PACKED_STRUCT_START __pragma(pack(push, 1)) |
||||
|
# define PB_PACKED_STRUCT_END __pragma(pack(pop)) |
||||
|
# define pb_packed |
||||
|
#else |
||||
|
/* Unknown compiler */ |
||||
|
# define PB_PACKED_STRUCT_START |
||||
|
# define PB_PACKED_STRUCT_END |
||||
|
# define pb_packed |
||||
|
#endif |
||||
|
|
||||
|
/* Detect endianness */ |
||||
|
#ifndef PB_LITTLE_ENDIAN_8BIT |
||||
|
#if ((defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN) || \ |
||||
|
(defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || \ |
||||
|
defined(__LITTLE_ENDIAN__) || defined(__ARMEL__) || \ |
||||
|
defined(__THUMBEL__) || defined(__AARCH64EL__) || defined(_MIPSEL) || \ |
||||
|
defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM)) \ |
||||
|
&& CHAR_BIT == 8 |
||||
|
#define PB_LITTLE_ENDIAN_8BIT 1 |
||||
|
#endif |
||||
|
#endif |
||||
|
|
||||
|
/* Handly macro for suppressing unreferenced-parameter compiler warnings. */ |
||||
|
#ifndef PB_UNUSED |
||||
|
#define PB_UNUSED(x) (void)(x) |
||||
|
#endif |
||||
|
|
||||
|
/* Harvard-architecture processors may need special attributes for storing
|
||||
|
* field information in program memory. */ |
||||
|
#ifndef PB_PROGMEM |
||||
|
#ifdef __AVR__ |
||||
|
#include <avr/pgmspace.h> |
||||
|
#define PB_PROGMEM PROGMEM |
||||
|
#define PB_PROGMEM_READU32(x) pgm_read_dword(&x) |
||||
|
#else |
||||
|
#define PB_PROGMEM |
||||
|
#define PB_PROGMEM_READU32(x) (x) |
||||
|
#endif |
||||
|
#endif |
||||
|
|
||||
|
/* Compile-time assertion, used for checking compatible compilation options.
|
||||
|
* If this does not work properly on your compiler, use |
||||
|
* #define PB_NO_STATIC_ASSERT to disable it. |
||||
|
* |
||||
|
* But before doing that, check carefully the error message / place where it |
||||
|
* comes from to see if the error has a real cause. Unfortunately the error |
||||
|
* message is not always very clear to read, but you can see the reason better |
||||
|
* in the place where the PB_STATIC_ASSERT macro was called. |
||||
|
*/ |
||||
|
#ifndef PB_NO_STATIC_ASSERT |
||||
|
# ifndef PB_STATIC_ASSERT |
||||
|
# if defined(__ICCARM__) |
||||
|
/* IAR has static_assert keyword but no _Static_assert */ |
||||
|
# define PB_STATIC_ASSERT(COND,MSG) static_assert(COND,#MSG); |
||||
|
# elif defined(_MSC_VER) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112) |
||||
|
/* MSVC in C89 mode supports static_assert() keyword anyway */ |
||||
|
# define PB_STATIC_ASSERT(COND,MSG) static_assert(COND,#MSG); |
||||
|
# elif defined(PB_C99_STATIC_ASSERT) |
||||
|
/* Classic negative-size-array static assert mechanism */ |
||||
|
# define PB_STATIC_ASSERT(COND,MSG) typedef char PB_STATIC_ASSERT_MSG(MSG, __LINE__, __COUNTER__)[(COND)?1:-1]; |
||||
|
# define PB_STATIC_ASSERT_MSG(MSG, LINE, COUNTER) PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) |
||||
|
# define PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) pb_static_assertion_##MSG##_##LINE##_##COUNTER |
||||
|
# elif defined(__cplusplus) |
||||
|
/* C++11 standard static_assert mechanism */ |
||||
|
# define PB_STATIC_ASSERT(COND,MSG) static_assert(COND,#MSG); |
||||
|
# else |
||||
|
/* C11 standard _Static_assert mechanism */ |
||||
|
# define PB_STATIC_ASSERT(COND,MSG) _Static_assert(COND,#MSG); |
||||
|
# endif |
||||
|
# endif |
||||
|
#else |
||||
|
/* Static asserts disabled by PB_NO_STATIC_ASSERT */ |
||||
|
# define PB_STATIC_ASSERT(COND,MSG) |
||||
|
#endif |
||||
|
|
||||
|
/* Test that PB_STATIC_ASSERT works
|
||||
|
* If you get errors here, you may need to do one of these: |
||||
|
* - Enable C11 standard support in your compiler |
||||
|
* - Define PB_C99_STATIC_ASSERT to enable C99 standard support |
||||
|
* - Define PB_NO_STATIC_ASSERT to disable static asserts altogether |
||||
|
*/ |
||||
|
PB_STATIC_ASSERT(1, STATIC_ASSERT_IS_NOT_WORKING) |
||||
|
|
||||
|
/* Number of required fields to keep track of. */ |
||||
|
#ifndef PB_MAX_REQUIRED_FIELDS |
||||
|
#define PB_MAX_REQUIRED_FIELDS 64 |
||||
|
#endif |
||||
|
|
||||
|
#if PB_MAX_REQUIRED_FIELDS < 64 |
||||
|
#error You should not lower PB_MAX_REQUIRED_FIELDS from the default value (64). |
||||
|
#endif |
||||
|
|
||||
|
#ifdef PB_WITHOUT_64BIT |
||||
|
#ifdef PB_CONVERT_DOUBLE_FLOAT |
||||
|
/* Cannot use doubles without 64-bit types */ |
||||
|
#undef PB_CONVERT_DOUBLE_FLOAT |
||||
|
#endif |
||||
|
#endif |
||||
|
|
||||
|
/* List of possible field types. These are used in the autogenerated code.
|
||||
|
* Least-significant 4 bits tell the scalar type |
||||
|
* Most-significant 4 bits specify repeated/required/packed etc. |
||||
|
*/ |
||||
|
|
||||
|
typedef uint_least8_t pb_type_t; |
||||
|
|
||||
|
/**** Field data types ****/ |
||||
|
|
||||
|
/* Numeric types */ |
||||
|
#define PB_LTYPE_BOOL 0x00U /* bool */ |
||||
|
#define PB_LTYPE_VARINT 0x01U /* int32, int64, enum, bool */ |
||||
|
#define PB_LTYPE_UVARINT 0x02U /* uint32, uint64 */ |
||||
|
#define PB_LTYPE_SVARINT 0x03U /* sint32, sint64 */ |
||||
|
#define PB_LTYPE_FIXED32 0x04U /* fixed32, sfixed32, float */ |
||||
|
#define PB_LTYPE_FIXED64 0x05U /* fixed64, sfixed64, double */ |
||||
|
|
||||
|
/* Marker for last packable field type. */ |
||||
|
#define PB_LTYPE_LAST_PACKABLE 0x05U |
||||
|
|
||||
|
/* Byte array with pre-allocated buffer.
|
||||
|
* data_size is the length of the allocated PB_BYTES_ARRAY structure. */ |
||||
|
#define PB_LTYPE_BYTES 0x06U |
||||
|
|
||||
|
/* String with pre-allocated buffer.
|
||||
|
* data_size is the maximum length. */ |
||||
|
#define PB_LTYPE_STRING 0x07U |
||||
|
|
||||
|
/* Submessage
|
||||
|
* submsg_fields is pointer to field descriptions */ |
||||
|
#define PB_LTYPE_SUBMESSAGE 0x08U |
||||
|
|
||||
|
/* Submessage with pre-decoding callback
|
||||
|
* The pre-decoding callback is stored as pb_callback_t right before pSize. |
||||
|
* submsg_fields is pointer to field descriptions */ |
||||
|
#define PB_LTYPE_SUBMSG_W_CB 0x09U |
||||
|
|
||||
|
/* Extension pseudo-field
|
||||
|
* The field contains a pointer to pb_extension_t */ |
||||
|
#define PB_LTYPE_EXTENSION 0x0AU |
||||
|
|
||||
|
/* Byte array with inline, pre-allocated byffer.
|
||||
|
* data_size is the length of the inline, allocated buffer. |
||||
|
* This differs from PB_LTYPE_BYTES by defining the element as |
||||
|
* pb_byte_t[data_size] rather than pb_bytes_array_t. */ |
||||
|
#define PB_LTYPE_FIXED_LENGTH_BYTES 0x0BU |
||||
|
|
||||
|
/* Number of declared LTYPES */ |
||||
|
#define PB_LTYPES_COUNT 0x0CU |
||||
|
#define PB_LTYPE_MASK 0x0FU |
||||
|
|
||||
|
/**** Field repetition rules ****/ |
||||
|
|
||||
|
#define PB_HTYPE_REQUIRED 0x00U |
||||
|
#define PB_HTYPE_OPTIONAL 0x10U |
||||
|
#define PB_HTYPE_SINGULAR 0x10U |
||||
|
#define PB_HTYPE_REPEATED 0x20U |
||||
|
#define PB_HTYPE_FIXARRAY 0x20U |
||||
|
#define PB_HTYPE_ONEOF 0x30U |
||||
|
#define PB_HTYPE_MASK 0x30U |
||||
|
|
||||
|
/**** Field allocation types ****/ |
||||
|
|
||||
|
#define PB_ATYPE_STATIC 0x00U |
||||
|
#define PB_ATYPE_POINTER 0x80U |
||||
|
#define PB_ATYPE_CALLBACK 0x40U |
||||
|
#define PB_ATYPE_MASK 0xC0U |
||||
|
|
||||
|
#define PB_ATYPE(x) ((x) & PB_ATYPE_MASK) |
||||
|
#define PB_HTYPE(x) ((x) & PB_HTYPE_MASK) |
||||
|
#define PB_LTYPE(x) ((x) & PB_LTYPE_MASK) |
||||
|
#define PB_LTYPE_IS_SUBMSG(x) (PB_LTYPE(x) == PB_LTYPE_SUBMESSAGE || \ |
||||
|
PB_LTYPE(x) == PB_LTYPE_SUBMSG_W_CB) |
||||
|
|
||||
|
/* Data type used for storing sizes of struct fields
|
||||
|
* and array counts. |
||||
|
*/ |
||||
|
#if defined(PB_FIELD_32BIT) |
||||
|
typedef uint32_t pb_size_t; |
||||
|
typedef int32_t pb_ssize_t; |
||||
|
#else |
||||
|
typedef uint_least16_t pb_size_t; |
||||
|
typedef int_least16_t pb_ssize_t; |
||||
|
#endif |
||||
|
#define PB_SIZE_MAX ((pb_size_t)-1) |
||||
|
|
||||
|
/* Data type for storing encoded data and other byte streams.
|
||||
|
* This typedef exists to support platforms where uint8_t does not exist. |
||||
|
* You can regard it as equivalent on uint8_t on other platforms. |
||||
|
*/ |
||||
|
typedef uint_least8_t pb_byte_t; |
||||
|
|
||||
|
/* Forward declaration of struct types */ |
||||
|
typedef struct pb_istream_s pb_istream_t; |
||||
|
typedef struct pb_ostream_s pb_ostream_t; |
||||
|
typedef struct pb_field_iter_s pb_field_iter_t; |
||||
|
|
||||
|
/* This structure is used in auto-generated constants
|
||||
|
* to specify struct fields. |
||||
|
*/ |
||||
|
typedef struct pb_msgdesc_s pb_msgdesc_t; |
||||
|
struct pb_msgdesc_s { |
||||
|
const uint32_t *field_info; |
||||
|
const pb_msgdesc_t * const * submsg_info; |
||||
|
const pb_byte_t *default_value; |
||||
|
|
||||
|
bool (*field_callback)(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_iter_t *field); |
||||
|
|
||||
|
pb_size_t field_count; |
||||
|
pb_size_t required_field_count; |
||||
|
pb_size_t largest_tag; |
||||
|
}; |
||||
|
|
||||
|
/* Iterator for message descriptor */ |
||||
|
struct pb_field_iter_s { |
||||
|
const pb_msgdesc_t *descriptor; /* Pointer to message descriptor constant */ |
||||
|
void *message; /* Pointer to start of the structure */ |
||||
|
|
||||
|
pb_size_t index; /* Index of the field */ |
||||
|
pb_size_t field_info_index; /* Index to descriptor->field_info array */ |
||||
|
pb_size_t required_field_index; /* Index that counts only the required fields */ |
||||
|
pb_size_t submessage_index; /* Index that counts only submessages */ |
||||
|
|
||||
|
pb_size_t tag; /* Tag of current field */ |
||||
|
pb_size_t data_size; /* sizeof() of a single item */ |
||||
|
pb_size_t array_size; /* Number of array entries */ |
||||
|
pb_type_t type; /* Type of current field */ |
||||
|
|
||||
|
void *pField; /* Pointer to current field in struct */ |
||||
|
void *pData; /* Pointer to current data contents. Different than pField for arrays and pointers. */ |
||||
|
void *pSize; /* Pointer to count/has field */ |
||||
|
|
||||
|
const pb_msgdesc_t *submsg_desc; /* For submessage fields, pointer to field descriptor for the submessage. */ |
||||
|
}; |
||||
|
|
||||
|
/* For compatibility with legacy code */ |
||||
|
typedef pb_field_iter_t pb_field_t; |
||||
|
|
||||
|
/* Make sure that the standard integer types are of the expected sizes.
|
||||
|
* Otherwise fixed32/fixed64 fields can break. |
||||
|
* |
||||
|
* If you get errors here, it probably means that your stdint.h is not |
||||
|
* correct for your platform. |
||||
|
*/ |
||||
|
#ifndef PB_WITHOUT_64BIT |
||||
|
PB_STATIC_ASSERT(sizeof(int64_t) == 2 * sizeof(int32_t), INT64_T_WRONG_SIZE) |
||||
|
PB_STATIC_ASSERT(sizeof(uint64_t) == 2 * sizeof(uint32_t), UINT64_T_WRONG_SIZE) |
||||
|
#endif |
||||
|
|
||||
|
/* This structure is used for 'bytes' arrays.
|
||||
|
* It has the number of bytes in the beginning, and after that an array. |
||||
|
* Note that actual structs used will have a different length of bytes array. |
||||
|
*/ |
||||
|
#define PB_BYTES_ARRAY_T(n) struct { pb_size_t size; pb_byte_t bytes[n]; } |
||||
|
#define PB_BYTES_ARRAY_T_ALLOCSIZE(n) ((size_t)n + offsetof(pb_bytes_array_t, bytes)) |
||||
|
|
||||
|
struct pb_bytes_array_s { |
||||
|
pb_size_t size; |
||||
|
pb_byte_t bytes[1]; |
||||
|
}; |
||||
|
typedef struct pb_bytes_array_s pb_bytes_array_t; |
||||
|
|
||||
|
/* This structure is used for giving the callback function.
|
||||
|
* It is stored in the message structure and filled in by the method that |
||||
|
* calls pb_decode. |
||||
|
* |
||||
|
* The decoding callback will be given a limited-length stream |
||||
|
* If the wire type was string, the length is the length of the string. |
||||
|
* If the wire type was a varint/fixed32/fixed64, the length is the length |
||||
|
* of the actual value. |
||||
|
* The function may be called multiple times (especially for repeated types, |
||||
|
* but also otherwise if the message happens to contain the field multiple |
||||
|
* times.) |
||||
|
* |
||||
|
* The encoding callback will receive the actual output stream. |
||||
|
* It should write all the data in one call, including the field tag and |
||||
|
* wire type. It can write multiple fields. |
||||
|
* |
||||
|
* The callback can be null if you want to skip a field. |
||||
|
*/ |
||||
|
typedef struct pb_callback_s pb_callback_t; |
||||
|
struct pb_callback_s { |
||||
|
/* Callback functions receive a pointer to the arg field.
|
||||
|
* You can access the value of the field as *arg, and modify it if needed. |
||||
|
*/ |
||||
|
union { |
||||
|
bool (*decode)(pb_istream_t *stream, const pb_field_t *field, void **arg); |
||||
|
bool (*encode)(pb_ostream_t *stream, const pb_field_t *field, void * const *arg); |
||||
|
} funcs; |
||||
|
|
||||
|
/* Free arg for use by callback */ |
||||
|
void *arg; |
||||
|
}; |
||||
|
|
||||
|
extern bool pb_default_field_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_t *field); |
||||
|
|
||||
|
/* Wire types. Library user needs these only in encoder callbacks. */ |
||||
|
typedef enum { |
||||
|
PB_WT_VARINT = 0, |
||||
|
PB_WT_64BIT = 1, |
||||
|
PB_WT_STRING = 2, |
||||
|
PB_WT_32BIT = 5, |
||||
|
PB_WT_PACKED = 255 /* PB_WT_PACKED is internal marker for packed arrays. */ |
||||
|
} pb_wire_type_t; |
||||
|
|
||||
|
/* Structure for defining the handling of unknown/extension fields.
|
||||
|
* Usually the pb_extension_type_t structure is automatically generated, |
||||
|
* while the pb_extension_t structure is created by the user. However, |
||||
|
* if you want to catch all unknown fields, you can also create a custom |
||||
|
* pb_extension_type_t with your own callback. |
||||
|
*/ |
||||
|
typedef struct pb_extension_type_s pb_extension_type_t; |
||||
|
typedef struct pb_extension_s pb_extension_t; |
||||
|
struct pb_extension_type_s { |
||||
|
/* Called for each unknown field in the message.
|
||||
|
* If you handle the field, read off all of its data and return true. |
||||
|
* If you do not handle the field, do not read anything and return true. |
||||
|
* If you run into an error, return false. |
||||
|
* Set to NULL for default handler. |
||||
|
*/ |
||||
|
bool (*decode)(pb_istream_t *stream, pb_extension_t *extension, |
||||
|
uint32_t tag, pb_wire_type_t wire_type); |
||||
|
|
||||
|
/* Called once after all regular fields have been encoded.
|
||||
|
* If you have something to write, do so and return true. |
||||
|
* If you do not have anything to write, just return true. |
||||
|
* If you run into an error, return false. |
||||
|
* Set to NULL for default handler. |
||||
|
*/ |
||||
|
bool (*encode)(pb_ostream_t *stream, const pb_extension_t *extension); |
||||
|
|
||||
|
/* Free field for use by the callback. */ |
||||
|
const void *arg; |
||||
|
}; |
||||
|
|
||||
|
struct pb_extension_s { |
||||
|
/* Type describing the extension field. Usually you'll initialize
|
||||
|
* this to a pointer to the automatically generated structure. */ |
||||
|
const pb_extension_type_t *type; |
||||
|
|
||||
|
/* Destination for the decoded data. This must match the datatype
|
||||
|
* of the extension field. */ |
||||
|
void *dest; |
||||
|
|
||||
|
/* Pointer to the next extension handler, or NULL.
|
||||
|
* If this extension does not match a field, the next handler is |
||||
|
* automatically called. */ |
||||
|
pb_extension_t *next; |
||||
|
|
||||
|
/* The decoder sets this to true if the extension was found.
|
||||
|
* Ignored for encoding. */ |
||||
|
bool found; |
||||
|
}; |
||||
|
|
||||
|
#define pb_extension_init_zero {NULL,NULL,NULL,false} |
||||
|
|
||||
|
/* Memory allocation functions to use. You can define pb_realloc and
|
||||
|
* pb_free to custom functions if you want. */ |
||||
|
#ifdef PB_ENABLE_MALLOC |
||||
|
# ifndef pb_realloc |
||||
|
# define pb_realloc(ptr, size) realloc(ptr, size) |
||||
|
# endif |
||||
|
# ifndef pb_free |
||||
|
# define pb_free(ptr) free(ptr) |
||||
|
# endif |
||||
|
#endif |
||||
|
|
||||
|
/* This is used to inform about need to regenerate .pb.h/.pb.c files. */ |
||||
|
#define PB_PROTO_HEADER_VERSION 40 |
||||
|
|
||||
|
/* These macros are used to declare pb_field_t's in the constant array. */ |
||||
|
/* Size of a structure member, in bytes. */ |
||||
|
#define pb_membersize(st, m) (sizeof ((st*)0)->m) |
||||
|
/* Number of entries in an array. */ |
||||
|
#define pb_arraysize(st, m) (pb_membersize(st, m) / pb_membersize(st, m[0])) |
||||
|
/* Delta from start of one member to the start of another member. */ |
||||
|
#define pb_delta(st, m1, m2) ((int)offsetof(st, m1) - (int)offsetof(st, m2)) |
||||
|
|
||||
|
/* Force expansion of macro value */ |
||||
|
#define PB_EXPAND(x) x |
||||
|
|
||||
|
/* Binding of a message field set into a specific structure */ |
||||
|
#define PB_BIND(msgname, structname, width) \ |
||||
|
const uint32_t structname ## _field_info[] PB_PROGMEM = \ |
||||
|
{ \ |
||||
|
msgname ## _FIELDLIST(PB_GEN_FIELD_INFO_ ## width, structname) \ |
||||
|
0 \ |
||||
|
}; \ |
||||
|
const pb_msgdesc_t* const structname ## _submsg_info[] = \ |
||||
|
{ \ |
||||
|
msgname ## _FIELDLIST(PB_GEN_SUBMSG_INFO, structname) \ |
||||
|
NULL \ |
||||
|
}; \ |
||||
|
const pb_msgdesc_t structname ## _msg = \ |
||||
|
{ \ |
||||
|
structname ## _field_info, \ |
||||
|
structname ## _submsg_info, \ |
||||
|
msgname ## _DEFAULT, \ |
||||
|
msgname ## _CALLBACK, \ |
||||
|
0 msgname ## _FIELDLIST(PB_GEN_FIELD_COUNT, structname), \ |
||||
|
0 msgname ## _FIELDLIST(PB_GEN_REQ_FIELD_COUNT, structname), \ |
||||
|
0 msgname ## _FIELDLIST(PB_GEN_LARGEST_TAG, structname), \ |
||||
|
}; \ |
||||
|
msgname ## _FIELDLIST(PB_GEN_FIELD_INFO_ASSERT_ ## width, structname) |
||||
|
|
||||
|
#define PB_GEN_FIELD_COUNT(structname, atype, htype, ltype, fieldname, tag) +1 |
||||
|
#define PB_GEN_REQ_FIELD_COUNT(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
+ (PB_HTYPE_ ## htype == PB_HTYPE_REQUIRED) |
||||
|
#define PB_GEN_LARGEST_TAG(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
* 0 + tag |
||||
|
|
||||
|
/* X-macro for generating the entries in struct_field_info[] array. */ |
||||
|
#define PB_GEN_FIELD_INFO_1(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_FIELDINFO_1(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
||||
|
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
||||
|
|
||||
|
#define PB_GEN_FIELD_INFO_2(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_FIELDINFO_2(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
||||
|
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
||||
|
|
||||
|
#define PB_GEN_FIELD_INFO_4(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_FIELDINFO_4(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
||||
|
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
||||
|
|
||||
|
#define PB_GEN_FIELD_INFO_8(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_FIELDINFO_8(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
||||
|
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
||||
|
|
||||
|
#define PB_GEN_FIELD_INFO_AUTO(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_FIELDINFO_AUTO2(PB_FIELDINFO_WIDTH_AUTO(_PB_ATYPE_ ## atype, _PB_HTYPE_ ## htype, _PB_LTYPE_ ## ltype), \ |
||||
|
tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
||||
|
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
||||
|
|
||||
|
#define PB_FIELDINFO_AUTO2(width, tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
PB_FIELDINFO_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) |
||||
|
|
||||
|
#define PB_FIELDINFO_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
PB_FIELDINFO_ ## width(tag, type, data_offset, data_size, size_offset, array_size) |
||||
|
|
||||
|
/* X-macro for generating asserts that entries fit in struct_field_info[] array.
|
||||
|
* The structure of macros here must match the structure above in PB_GEN_FIELD_INFO_x(), |
||||
|
* but it is not easily reused because of how macro substitutions work. */ |
||||
|
#define PB_GEN_FIELD_INFO_ASSERT_1(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_FIELDINFO_ASSERT_1(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
||||
|
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
||||
|
|
||||
|
#define PB_GEN_FIELD_INFO_ASSERT_2(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_FIELDINFO_ASSERT_2(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
||||
|
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
||||
|
|
||||
|
#define PB_GEN_FIELD_INFO_ASSERT_4(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_FIELDINFO_ASSERT_4(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
||||
|
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
||||
|
|
||||
|
#define PB_GEN_FIELD_INFO_ASSERT_8(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_FIELDINFO_ASSERT_8(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
||||
|
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
||||
|
|
||||
|
#define PB_GEN_FIELD_INFO_ASSERT_AUTO(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_FIELDINFO_ASSERT_AUTO2(PB_FIELDINFO_WIDTH_AUTO(_PB_ATYPE_ ## atype, _PB_HTYPE_ ## htype, _PB_LTYPE_ ## ltype), \ |
||||
|
tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ |
||||
|
PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ |
||||
|
PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) |
||||
|
|
||||
|
#define PB_FIELDINFO_ASSERT_AUTO2(width, tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
PB_FIELDINFO_ASSERT_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) |
||||
|
|
||||
|
#define PB_FIELDINFO_ASSERT_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
PB_FIELDINFO_ASSERT_ ## width(tag, type, data_offset, data_size, size_offset, array_size) |
||||
|
|
||||
|
#define PB_DATA_OFFSET_STATIC(htype, structname, fieldname) PB_DO ## htype(structname, fieldname) |
||||
|
#define PB_DATA_OFFSET_POINTER(htype, structname, fieldname) PB_DO ## htype(structname, fieldname) |
||||
|
#define PB_DATA_OFFSET_CALLBACK(htype, structname, fieldname) PB_DO ## htype(structname, fieldname) |
||||
|
#define PB_DO_PB_HTYPE_REQUIRED(structname, fieldname) offsetof(structname, fieldname) |
||||
|
#define PB_DO_PB_HTYPE_SINGULAR(structname, fieldname) offsetof(structname, fieldname) |
||||
|
#define PB_DO_PB_HTYPE_ONEOF(structname, fieldname) offsetof(structname, PB_ONEOF_NAME(FULL, fieldname)) |
||||
|
#define PB_DO_PB_HTYPE_OPTIONAL(structname, fieldname) offsetof(structname, fieldname) |
||||
|
#define PB_DO_PB_HTYPE_REPEATED(structname, fieldname) offsetof(structname, fieldname) |
||||
|
#define PB_DO_PB_HTYPE_FIXARRAY(structname, fieldname) offsetof(structname, fieldname) |
||||
|
|
||||
|
#define PB_SIZE_OFFSET_STATIC(htype, structname, fieldname) PB_SO ## htype(structname, fieldname) |
||||
|
#define PB_SIZE_OFFSET_POINTER(htype, structname, fieldname) PB_SO_PTR ## htype(structname, fieldname) |
||||
|
#define PB_SIZE_OFFSET_CALLBACK(htype, structname, fieldname) PB_SO_CB ## htype(structname, fieldname) |
||||
|
#define PB_SO_PB_HTYPE_REQUIRED(structname, fieldname) 0 |
||||
|
#define PB_SO_PB_HTYPE_SINGULAR(structname, fieldname) 0 |
||||
|
#define PB_SO_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF2(structname, PB_ONEOF_NAME(FULL, fieldname), PB_ONEOF_NAME(UNION, fieldname)) |
||||
|
#define PB_SO_PB_HTYPE_ONEOF2(structname, fullname, unionname) PB_SO_PB_HTYPE_ONEOF3(structname, fullname, unionname) |
||||
|
#define PB_SO_PB_HTYPE_ONEOF3(structname, fullname, unionname) pb_delta(structname, fullname, which_ ## unionname) |
||||
|
#define PB_SO_PB_HTYPE_OPTIONAL(structname, fieldname) pb_delta(structname, fieldname, has_ ## fieldname) |
||||
|
#define PB_SO_PB_HTYPE_REPEATED(structname, fieldname) pb_delta(structname, fieldname, fieldname ## _count) |
||||
|
#define PB_SO_PB_HTYPE_FIXARRAY(structname, fieldname) 0 |
||||
|
#define PB_SO_PTR_PB_HTYPE_REQUIRED(structname, fieldname) 0 |
||||
|
#define PB_SO_PTR_PB_HTYPE_SINGULAR(structname, fieldname) 0 |
||||
|
#define PB_SO_PTR_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF(structname, fieldname) |
||||
|
#define PB_SO_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) 0 |
||||
|
#define PB_SO_PTR_PB_HTYPE_REPEATED(structname, fieldname) PB_SO_PB_HTYPE_REPEATED(structname, fieldname) |
||||
|
#define PB_SO_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) 0 |
||||
|
#define PB_SO_CB_PB_HTYPE_REQUIRED(structname, fieldname) 0 |
||||
|
#define PB_SO_CB_PB_HTYPE_SINGULAR(structname, fieldname) 0 |
||||
|
#define PB_SO_CB_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF(structname, fieldname) |
||||
|
#define PB_SO_CB_PB_HTYPE_OPTIONAL(structname, fieldname) 0 |
||||
|
#define PB_SO_CB_PB_HTYPE_REPEATED(structname, fieldname) 0 |
||||
|
#define PB_SO_CB_PB_HTYPE_FIXARRAY(structname, fieldname) 0 |
||||
|
|
||||
|
#define PB_ARRAY_SIZE_STATIC(htype, structname, fieldname) PB_AS ## htype(structname, fieldname) |
||||
|
#define PB_ARRAY_SIZE_POINTER(htype, structname, fieldname) PB_AS_PTR ## htype(structname, fieldname) |
||||
|
#define PB_ARRAY_SIZE_CALLBACK(htype, structname, fieldname) 1 |
||||
|
#define PB_AS_PB_HTYPE_REQUIRED(structname, fieldname) 1 |
||||
|
#define PB_AS_PB_HTYPE_SINGULAR(structname, fieldname) 1 |
||||
|
#define PB_AS_PB_HTYPE_OPTIONAL(structname, fieldname) 1 |
||||
|
#define PB_AS_PB_HTYPE_ONEOF(structname, fieldname) 1 |
||||
|
#define PB_AS_PB_HTYPE_REPEATED(structname, fieldname) pb_arraysize(structname, fieldname) |
||||
|
#define PB_AS_PB_HTYPE_FIXARRAY(structname, fieldname) pb_arraysize(structname, fieldname) |
||||
|
#define PB_AS_PTR_PB_HTYPE_REQUIRED(structname, fieldname) 1 |
||||
|
#define PB_AS_PTR_PB_HTYPE_SINGULAR(structname, fieldname) 1 |
||||
|
#define PB_AS_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) 1 |
||||
|
#define PB_AS_PTR_PB_HTYPE_ONEOF(structname, fieldname) 1 |
||||
|
#define PB_AS_PTR_PB_HTYPE_REPEATED(structname, fieldname) 1 |
||||
|
#define PB_AS_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) pb_arraysize(structname, fieldname[0]) |
||||
|
|
||||
|
#define PB_DATA_SIZE_STATIC(htype, structname, fieldname) PB_DS ## htype(structname, fieldname) |
||||
|
#define PB_DATA_SIZE_POINTER(htype, structname, fieldname) PB_DS_PTR ## htype(structname, fieldname) |
||||
|
#define PB_DATA_SIZE_CALLBACK(htype, structname, fieldname) PB_DS_CB ## htype(structname, fieldname) |
||||
|
#define PB_DS_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname) |
||||
|
#define PB_DS_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname) |
||||
|
#define PB_DS_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname) |
||||
|
#define PB_DS_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)) |
||||
|
#define PB_DS_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname[0]) |
||||
|
#define PB_DS_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname[0]) |
||||
|
#define PB_DS_PTR_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname[0]) |
||||
|
#define PB_DS_PTR_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname[0]) |
||||
|
#define PB_DS_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname[0]) |
||||
|
#define PB_DS_PTR_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)[0]) |
||||
|
#define PB_DS_PTR_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname[0]) |
||||
|
#define PB_DS_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname[0][0]) |
||||
|
#define PB_DS_CB_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname) |
||||
|
#define PB_DS_CB_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname) |
||||
|
#define PB_DS_CB_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname) |
||||
|
#define PB_DS_CB_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)) |
||||
|
#define PB_DS_CB_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname) |
||||
|
#define PB_DS_CB_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname) |
||||
|
|
||||
|
#define PB_ONEOF_NAME(type, tuple) PB_EXPAND(PB_ONEOF_NAME_ ## type tuple) |
||||
|
#define PB_ONEOF_NAME_UNION(unionname,membername,fullname) unionname |
||||
|
#define PB_ONEOF_NAME_MEMBER(unionname,membername,fullname) membername |
||||
|
#define PB_ONEOF_NAME_FULL(unionname,membername,fullname) fullname |
||||
|
|
||||
|
#define PB_GEN_SUBMSG_INFO(structname, atype, htype, ltype, fieldname, tag) \ |
||||
|
PB_SUBMSG_INFO_ ## htype(_PB_LTYPE_ ## ltype, structname, fieldname) |
||||
|
|
||||
|
#define PB_SUBMSG_INFO_REQUIRED(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) |
||||
|
#define PB_SUBMSG_INFO_SINGULAR(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) |
||||
|
#define PB_SUBMSG_INFO_OPTIONAL(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) |
||||
|
#define PB_SUBMSG_INFO_ONEOF(ltype, structname, fieldname) PB_SUBMSG_INFO_ONEOF2(ltype, structname, PB_ONEOF_NAME(UNION, fieldname), PB_ONEOF_NAME(MEMBER, fieldname)) |
||||
|
#define PB_SUBMSG_INFO_ONEOF2(ltype, structname, unionname, membername) PB_SUBMSG_INFO_ONEOF3(ltype, structname, unionname, membername) |
||||
|
#define PB_SUBMSG_INFO_ONEOF3(ltype, structname, unionname, membername) PB_SI ## ltype(structname ## _ ## unionname ## _ ## membername ## _MSGTYPE) |
||||
|
#define PB_SUBMSG_INFO_REPEATED(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) |
||||
|
#define PB_SUBMSG_INFO_FIXARRAY(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) |
||||
|
#define PB_SI_PB_LTYPE_BOOL(t) |
||||
|
#define PB_SI_PB_LTYPE_BYTES(t) |
||||
|
#define PB_SI_PB_LTYPE_DOUBLE(t) |
||||
|
#define PB_SI_PB_LTYPE_ENUM(t) |
||||
|
#define PB_SI_PB_LTYPE_UENUM(t) |
||||
|
#define PB_SI_PB_LTYPE_FIXED32(t) |
||||
|
#define PB_SI_PB_LTYPE_FIXED64(t) |
||||
|
#define PB_SI_PB_LTYPE_FLOAT(t) |
||||
|
#define PB_SI_PB_LTYPE_INT32(t) |
||||
|
#define PB_SI_PB_LTYPE_INT64(t) |
||||
|
#define PB_SI_PB_LTYPE_MESSAGE(t) PB_SUBMSG_DESCRIPTOR(t) |
||||
|
#define PB_SI_PB_LTYPE_MSG_W_CB(t) PB_SUBMSG_DESCRIPTOR(t) |
||||
|
#define PB_SI_PB_LTYPE_SFIXED32(t) |
||||
|
#define PB_SI_PB_LTYPE_SFIXED64(t) |
||||
|
#define PB_SI_PB_LTYPE_SINT32(t) |
||||
|
#define PB_SI_PB_LTYPE_SINT64(t) |
||||
|
#define PB_SI_PB_LTYPE_STRING(t) |
||||
|
#define PB_SI_PB_LTYPE_UINT32(t) |
||||
|
#define PB_SI_PB_LTYPE_UINT64(t) |
||||
|
#define PB_SI_PB_LTYPE_EXTENSION(t) |
||||
|
#define PB_SI_PB_LTYPE_FIXED_LENGTH_BYTES(t) |
||||
|
#define PB_SUBMSG_DESCRIPTOR(t) &(t ## _msg), |
||||
|
|
||||
|
/* The field descriptors use a variable width format, with width of either
|
||||
|
* 1, 2, 4 or 8 of 32-bit words. The two lowest bytes of the first byte always |
||||
|
* encode the descriptor size, 6 lowest bits of field tag number, and 8 bits |
||||
|
* of the field type. |
||||
|
* |
||||
|
* Descriptor size is encoded as 0 = 1 word, 1 = 2 words, 2 = 4 words, 3 = 8 words. |
||||
|
* |
||||
|
* Formats, listed starting with the least significant bit of the first word. |
||||
|
* 1 word: [2-bit len] [6-bit tag] [8-bit type] [8-bit data_offset] [4-bit size_offset] [4-bit data_size] |
||||
|
* |
||||
|
* 2 words: [2-bit len] [6-bit tag] [8-bit type] [12-bit array_size] [4-bit size_offset] |
||||
|
* [16-bit data_offset] [12-bit data_size] [4-bit tag>>6] |
||||
|
* |
||||
|
* 4 words: [2-bit len] [6-bit tag] [8-bit type] [16-bit array_size] |
||||
|
* [8-bit size_offset] [24-bit tag>>6] |
||||
|
* [32-bit data_offset] |
||||
|
* [32-bit data_size] |
||||
|
* |
||||
|
* 8 words: [2-bit len] [6-bit tag] [8-bit type] [16-bit reserved] |
||||
|
* [8-bit size_offset] [24-bit tag>>6] |
||||
|
* [32-bit data_offset] |
||||
|
* [32-bit data_size] |
||||
|
* [32-bit array_size] |
||||
|
* [32-bit reserved] |
||||
|
* [32-bit reserved] |
||||
|
* [32-bit reserved] |
||||
|
*/ |
||||
|
|
||||
|
#define PB_FIELDINFO_1(tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
(0 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(data_offset) & 0xFF) << 16) | \ |
||||
|
(((uint32_t)(size_offset) & 0x0F) << 24) | (((uint32_t)(data_size) & 0x0F) << 28)), |
||||
|
|
||||
|
#define PB_FIELDINFO_2(tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
(1 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(array_size) & 0xFFF) << 16) | (((uint32_t)(size_offset) & 0x0F) << 28)), \ |
||||
|
(((uint32_t)(data_offset) & 0xFFFF) | (((uint32_t)(data_size) & 0xFFF) << 16) | (((uint32_t)(tag) & 0x3c0) << 22)), |
||||
|
|
||||
|
#define PB_FIELDINFO_4(tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
(2 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(array_size) & 0xFFFF) << 16)), \ |
||||
|
((uint32_t)(int_least8_t)(size_offset) | (((uint32_t)(tag) << 2) & 0xFFFFFF00)), \ |
||||
|
(data_offset), (data_size), |
||||
|
|
||||
|
#define PB_FIELDINFO_8(tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
(3 | (((tag) << 2) & 0xFF) | ((type) << 8)), \ |
||||
|
((uint32_t)(int_least8_t)(size_offset) | (((uint32_t)(tag) << 2) & 0xFFFFFF00)), \ |
||||
|
(data_offset), (data_size), (array_size), 0, 0, 0, |
||||
|
|
||||
|
/* These assertions verify that the field information fits in the allocated space.
|
||||
|
* The generator tries to automatically determine the correct width that can fit all |
||||
|
* data associated with a message. These asserts will fail only if there has been a |
||||
|
* problem in the automatic logic - this may be worth reporting as a bug. As a workaround, |
||||
|
* you can increase the descriptor width by defining PB_FIELDINFO_WIDTH or by setting |
||||
|
* descriptorsize option in .options file. |
||||
|
*/ |
||||
|
#define PB_FITS(value,bits) ((uint32_t)(value) < ((uint32_t)1<<bits)) |
||||
|
#define PB_FIELDINFO_ASSERT_1(tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
PB_STATIC_ASSERT(PB_FITS(tag,6) && PB_FITS(data_offset,8) && PB_FITS(size_offset,4) && PB_FITS(data_size,4) && PB_FITS(array_size,1), FIELDINFO_DOES_NOT_FIT_width1_field ## tag) |
||||
|
|
||||
|
#define PB_FIELDINFO_ASSERT_2(tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
PB_STATIC_ASSERT(PB_FITS(tag,10) && PB_FITS(data_offset,16) && PB_FITS(size_offset,4) && PB_FITS(data_size,12) && PB_FITS(array_size,12), FIELDINFO_DOES_NOT_FIT_width2_field ## tag) |
||||
|
|
||||
|
#ifndef PB_FIELD_32BIT |
||||
|
/* Maximum field sizes are still 16-bit if pb_size_t is 16-bit */ |
||||
|
#define PB_FIELDINFO_ASSERT_4(tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
PB_STATIC_ASSERT(PB_FITS(tag,16) && PB_FITS(data_offset,16) && PB_FITS((int_least8_t)size_offset,8) && PB_FITS(data_size,16) && PB_FITS(array_size,16), FIELDINFO_DOES_NOT_FIT_width4_field ## tag) |
||||
|
|
||||
|
#define PB_FIELDINFO_ASSERT_8(tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
PB_STATIC_ASSERT(PB_FITS(tag,16) && PB_FITS(data_offset,16) && PB_FITS((int_least8_t)size_offset,8) && PB_FITS(data_size,16) && PB_FITS(array_size,16), FIELDINFO_DOES_NOT_FIT_width8_field ## tag) |
||||
|
#else |
||||
|
/* Up to 32-bit fields supported.
|
||||
|
* Note that the checks are against 31 bits to avoid compiler warnings about shift wider than type in the test. |
||||
|
* I expect that there is no reasonable use for >2GB messages with nanopb anyway. |
||||
|
*/ |
||||
|
#define PB_FIELDINFO_ASSERT_4(tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
PB_STATIC_ASSERT(PB_FITS(tag,30) && PB_FITS(data_offset,31) && PB_FITS(size_offset,8) && PB_FITS(data_size,31) && PB_FITS(array_size,16), FIELDINFO_DOES_NOT_FIT_width4_field ## tag) |
||||
|
|
||||
|
#define PB_FIELDINFO_ASSERT_8(tag, type, data_offset, data_size, size_offset, array_size) \ |
||||
|
PB_STATIC_ASSERT(PB_FITS(tag,30) && PB_FITS(data_offset,31) && PB_FITS(size_offset,8) && PB_FITS(data_size,31) && PB_FITS(array_size,31), FIELDINFO_DOES_NOT_FIT_width8_field ## tag) |
||||
|
#endif |
||||
|
|
||||
|
|
||||
|
/* Automatic picking of FIELDINFO width:
|
||||
|
* Uses width 1 when possible, otherwise resorts to width 2. |
||||
|
* This is used when PB_BIND() is called with "AUTO" as the argument. |
||||
|
* The generator will give explicit size argument when it knows that a message |
||||
|
* structure grows beyond 1-word format limits. |
||||
|
*/ |
||||
|
#define PB_FIELDINFO_WIDTH_AUTO(atype, htype, ltype) PB_FI_WIDTH ## atype(htype, ltype) |
||||
|
#define PB_FI_WIDTH_PB_ATYPE_STATIC(htype, ltype) PB_FI_WIDTH ## htype(ltype) |
||||
|
#define PB_FI_WIDTH_PB_ATYPE_POINTER(htype, ltype) PB_FI_WIDTH ## htype(ltype) |
||||
|
#define PB_FI_WIDTH_PB_ATYPE_CALLBACK(htype, ltype) 2 |
||||
|
#define PB_FI_WIDTH_PB_HTYPE_REQUIRED(ltype) PB_FI_WIDTH ## ltype |
||||
|
#define PB_FI_WIDTH_PB_HTYPE_SINGULAR(ltype) PB_FI_WIDTH ## ltype |
||||
|
#define PB_FI_WIDTH_PB_HTYPE_OPTIONAL(ltype) PB_FI_WIDTH ## ltype |
||||
|
#define PB_FI_WIDTH_PB_HTYPE_ONEOF(ltype) PB_FI_WIDTH ## ltype |
||||
|
#define PB_FI_WIDTH_PB_HTYPE_REPEATED(ltype) 2 |
||||
|
#define PB_FI_WIDTH_PB_HTYPE_FIXARRAY(ltype) 2 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_BOOL 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_BYTES 2 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_DOUBLE 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_ENUM 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_UENUM 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_FIXED32 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_FIXED64 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_FLOAT 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_INT32 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_INT64 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_MESSAGE 2 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_MSG_W_CB 2 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_SFIXED32 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_SFIXED64 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_SINT32 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_SINT64 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_STRING 2 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_UINT32 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_UINT64 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_EXTENSION 1 |
||||
|
#define PB_FI_WIDTH_PB_LTYPE_FIXED_LENGTH_BYTES 2 |
||||
|
|
||||
|
/* The mapping from protobuf types to LTYPEs is done using these macros. */ |
||||
|
#define PB_LTYPE_MAP_BOOL PB_LTYPE_BOOL |
||||
|
#define PB_LTYPE_MAP_BYTES PB_LTYPE_BYTES |
||||
|
#define PB_LTYPE_MAP_DOUBLE PB_LTYPE_FIXED64 |
||||
|
#define PB_LTYPE_MAP_ENUM PB_LTYPE_VARINT |
||||
|
#define PB_LTYPE_MAP_UENUM PB_LTYPE_UVARINT |
||||
|
#define PB_LTYPE_MAP_FIXED32 PB_LTYPE_FIXED32 |
||||
|
#define PB_LTYPE_MAP_FIXED64 PB_LTYPE_FIXED64 |
||||
|
#define PB_LTYPE_MAP_FLOAT PB_LTYPE_FIXED32 |
||||
|
#define PB_LTYPE_MAP_INT32 PB_LTYPE_VARINT |
||||
|
#define PB_LTYPE_MAP_INT64 PB_LTYPE_VARINT |
||||
|
#define PB_LTYPE_MAP_MESSAGE PB_LTYPE_SUBMESSAGE |
||||
|
#define PB_LTYPE_MAP_MSG_W_CB PB_LTYPE_SUBMSG_W_CB |
||||
|
#define PB_LTYPE_MAP_SFIXED32 PB_LTYPE_FIXED32 |
||||
|
#define PB_LTYPE_MAP_SFIXED64 PB_LTYPE_FIXED64 |
||||
|
#define PB_LTYPE_MAP_SINT32 PB_LTYPE_SVARINT |
||||
|
#define PB_LTYPE_MAP_SINT64 PB_LTYPE_SVARINT |
||||
|
#define PB_LTYPE_MAP_STRING PB_LTYPE_STRING |
||||
|
#define PB_LTYPE_MAP_UINT32 PB_LTYPE_UVARINT |
||||
|
#define PB_LTYPE_MAP_UINT64 PB_LTYPE_UVARINT |
||||
|
#define PB_LTYPE_MAP_EXTENSION PB_LTYPE_EXTENSION |
||||
|
#define PB_LTYPE_MAP_FIXED_LENGTH_BYTES PB_LTYPE_FIXED_LENGTH_BYTES |
||||
|
|
||||
|
/* These macros are used for giving out error messages.
|
||||
|
* They are mostly a debugging aid; the main error information |
||||
|
* is the true/false return value from functions. |
||||
|
* Some code space can be saved by disabling the error |
||||
|
* messages if not used. |
||||
|
* |
||||
|
* PB_SET_ERROR() sets the error message if none has been set yet. |
||||
|
* msg must be a constant string literal. |
||||
|
* PB_GET_ERROR() always returns a pointer to a string. |
||||
|
* PB_RETURN_ERROR() sets the error and returns false from current |
||||
|
* function. |
||||
|
*/ |
||||
|
#ifdef PB_NO_ERRMSG |
||||
|
#define PB_SET_ERROR(stream, msg) PB_UNUSED(stream) |
||||
|
#define PB_GET_ERROR(stream) "(errmsg disabled)" |
||||
|
#else |
||||
|
#define PB_SET_ERROR(stream, msg) (stream->errmsg = (stream)->errmsg ? (stream)->errmsg : (msg)) |
||||
|
#define PB_GET_ERROR(stream) ((stream)->errmsg ? (stream)->errmsg : "(none)") |
||||
|
#endif |
||||
|
|
||||
|
#define PB_RETURN_ERROR(stream, msg) return PB_SET_ERROR(stream, msg), false |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
#if __cplusplus >= 201103L |
||||
|
#define PB_CONSTEXPR constexpr |
||||
|
#else // __cplusplus >= 201103L
|
||||
|
#define PB_CONSTEXPR |
||||
|
#endif // __cplusplus >= 201103L
|
||||
|
|
||||
|
#if __cplusplus >= 201703L |
||||
|
#define PB_INLINE_CONSTEXPR inline constexpr |
||||
|
#else // __cplusplus >= 201703L
|
||||
|
#define PB_INLINE_CONSTEXPR PB_CONSTEXPR |
||||
|
#endif // __cplusplus >= 201703L
|
||||
|
|
||||
|
extern "C++" |
||||
|
{ |
||||
|
namespace nanopb { |
||||
|
// Each type will be partially specialized by the generator.
|
||||
|
template <typename GenMessageT> struct MessageDescriptor; |
||||
|
} // namespace nanopb
|
||||
|
} |
||||
|
#endif /* __cplusplus */ |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,49 @@ |
|||||
|
/* pb_common.h: Common support functions for pb_encode.c and pb_decode.c.
|
||||
|
* These functions are rarely needed by applications directly. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef PB_COMMON_H_INCLUDED |
||||
|
#define PB_COMMON_H_INCLUDED |
||||
|
|
||||
|
#include "pb.h" |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initialize the field iterator structure to beginning.
|
||||
|
* Returns false if the message type is empty. */ |
||||
|
bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_msgdesc_t *desc, void *message); |
||||
|
|
||||
|
/* Get a field iterator for extension field. */ |
||||
|
bool pb_field_iter_begin_extension(pb_field_iter_t *iter, pb_extension_t *extension); |
||||
|
|
||||
|
/* Same as pb_field_iter_begin(), but for const message pointer.
|
||||
|
* Note that the pointers in pb_field_iter_t will be non-const but shouldn't |
||||
|
* be written to when using these functions. */ |
||||
|
bool pb_field_iter_begin_const(pb_field_iter_t *iter, const pb_msgdesc_t *desc, const void *message); |
||||
|
bool pb_field_iter_begin_extension_const(pb_field_iter_t *iter, const pb_extension_t *extension); |
||||
|
|
||||
|
/* Advance the iterator to the next field.
|
||||
|
* Returns false when the iterator wraps back to the first field. */ |
||||
|
bool pb_field_iter_next(pb_field_iter_t *iter); |
||||
|
|
||||
|
/* Advance the iterator until it points at a field with the given tag.
|
||||
|
* Returns false if no such field exists. */ |
||||
|
bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag); |
||||
|
|
||||
|
/* Find a field with type PB_LTYPE_EXTENSION, or return false if not found.
|
||||
|
* There can be only one extension range field per message. */ |
||||
|
bool pb_field_iter_find_extension(pb_field_iter_t *iter); |
||||
|
|
||||
|
#ifdef PB_VALIDATE_UTF8 |
||||
|
/* Validate UTF-8 text string */ |
||||
|
bool pb_validate_utf8(const char *s); |
||||
|
#endif |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
|
||||
@ -0,0 +1,193 @@ |
|||||
|
/* pb_decode.h: Functions to decode protocol buffers. Depends on pb_decode.c.
|
||||
|
* The main function is pb_decode. You also need an input stream, and the |
||||
|
* field descriptions created by nanopb_generator.py. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef PB_DECODE_H_INCLUDED |
||||
|
#define PB_DECODE_H_INCLUDED |
||||
|
|
||||
|
#include "pb.h" |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Structure for defining custom input streams. You will need to provide
|
||||
|
* a callback function to read the bytes from your storage, which can be |
||||
|
* for example a file or a network socket. |
||||
|
* |
||||
|
* The callback must conform to these rules: |
||||
|
* |
||||
|
* 1) Return false on IO errors. This will cause decoding to abort. |
||||
|
* 2) You can use state to store your own data (e.g. buffer pointer), |
||||
|
* and rely on pb_read to verify that no-body reads past bytes_left. |
||||
|
* 3) Your callback may be used with substreams, in which case bytes_left |
||||
|
* is different than from the main stream. Don't use bytes_left to compute |
||||
|
* any pointers. |
||||
|
*/ |
||||
|
struct pb_istream_s |
||||
|
{ |
||||
|
#ifdef PB_BUFFER_ONLY |
||||
|
/* Callback pointer is not used in buffer-only configuration.
|
||||
|
* Having an int pointer here allows binary compatibility but |
||||
|
* gives an error if someone tries to assign callback function. |
||||
|
*/ |
||||
|
int *callback; |
||||
|
#else |
||||
|
bool (*callback)(pb_istream_t *stream, pb_byte_t *buf, size_t count); |
||||
|
#endif |
||||
|
|
||||
|
void *state; /* Free field for use by callback implementation */ |
||||
|
size_t bytes_left; |
||||
|
|
||||
|
#ifndef PB_NO_ERRMSG |
||||
|
const char *errmsg; |
||||
|
#endif |
||||
|
}; |
||||
|
|
||||
|
#ifndef PB_NO_ERRMSG |
||||
|
#define PB_ISTREAM_EMPTY {0,0,0,0} |
||||
|
#else |
||||
|
#define PB_ISTREAM_EMPTY {0,0,0} |
||||
|
#endif |
||||
|
|
||||
|
/***************************
|
||||
|
* Main decoding functions * |
||||
|
***************************/ |
||||
|
|
||||
|
/* Decode a single protocol buffers message from input stream into a C structure.
|
||||
|
* Returns true on success, false on any failure. |
||||
|
* The actual struct pointed to by dest must match the description in fields. |
||||
|
* Callback fields of the destination structure must be initialized by caller. |
||||
|
* All other fields will be initialized by this function. |
||||
|
* |
||||
|
* Example usage: |
||||
|
* MyMessage msg = {}; |
||||
|
* uint8_t buffer[64]; |
||||
|
* pb_istream_t stream; |
||||
|
* |
||||
|
* // ... read some data into buffer ...
|
||||
|
* |
||||
|
* stream = pb_istream_from_buffer(buffer, count); |
||||
|
* pb_decode(&stream, MyMessage_fields, &msg); |
||||
|
*/ |
||||
|
bool pb_decode(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct); |
||||
|
|
||||
|
/* Extended version of pb_decode, with several options to control
|
||||
|
* the decoding process: |
||||
|
* |
||||
|
* PB_DECODE_NOINIT: Do not initialize the fields to default values. |
||||
|
* This is slightly faster if you do not need the default |
||||
|
* values and instead initialize the structure to 0 using |
||||
|
* e.g. memset(). This can also be used for merging two |
||||
|
* messages, i.e. combine already existing data with new |
||||
|
* values. |
||||
|
* |
||||
|
* PB_DECODE_DELIMITED: Input message starts with the message size as varint. |
||||
|
* Corresponds to parseDelimitedFrom() in Google's |
||||
|
* protobuf API. |
||||
|
* |
||||
|
* PB_DECODE_NULLTERMINATED: Stop reading when field tag is read as 0. This allows |
||||
|
* reading null terminated messages. |
||||
|
* NOTE: Until nanopb-0.4.0, pb_decode() also allows |
||||
|
* null-termination. This behaviour is not supported in |
||||
|
* most other protobuf implementations, so PB_DECODE_DELIMITED |
||||
|
* is a better option for compatibility. |
||||
|
* |
||||
|
* Multiple flags can be combined with bitwise or (| operator) |
||||
|
*/ |
||||
|
#define PB_DECODE_NOINIT 0x01U |
||||
|
#define PB_DECODE_DELIMITED 0x02U |
||||
|
#define PB_DECODE_NULLTERMINATED 0x04U |
||||
|
bool pb_decode_ex(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct, unsigned int flags); |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define pb_decode_noinit(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_NOINIT) |
||||
|
#define pb_decode_delimited(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_DELIMITED) |
||||
|
#define pb_decode_delimited_noinit(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_DELIMITED | PB_DECODE_NOINIT) |
||||
|
#define pb_decode_nullterminated(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_NULLTERMINATED) |
||||
|
|
||||
|
/* Release any allocated pointer fields. If you use dynamic allocation, you should
|
||||
|
* call this for any successfully decoded message when you are done with it. If |
||||
|
* pb_decode() returns with an error, the message is already released. |
||||
|
*/ |
||||
|
void pb_release(const pb_msgdesc_t *fields, void *dest_struct); |
||||
|
|
||||
|
/**************************************
|
||||
|
* Functions for manipulating streams * |
||||
|
**************************************/ |
||||
|
|
||||
|
/* Create an input stream for reading from a memory buffer.
|
||||
|
* |
||||
|
* msglen should be the actual length of the message, not the full size of |
||||
|
* allocated buffer. |
||||
|
* |
||||
|
* Alternatively, you can use a custom stream that reads directly from e.g. |
||||
|
* a file or a network socket. |
||||
|
*/ |
||||
|
pb_istream_t pb_istream_from_buffer(const pb_byte_t *buf, size_t msglen); |
||||
|
|
||||
|
/* Function to read from a pb_istream_t. You can use this if you need to
|
||||
|
* read some custom header data, or to read data in field callbacks. |
||||
|
*/ |
||||
|
bool pb_read(pb_istream_t *stream, pb_byte_t *buf, size_t count); |
||||
|
|
||||
|
|
||||
|
/************************************************
|
||||
|
* Helper functions for writing field callbacks * |
||||
|
************************************************/ |
||||
|
|
||||
|
/* Decode the tag for the next field in the stream. Gives the wire type and
|
||||
|
* field tag. At end of the message, returns false and sets eof to true. */ |
||||
|
bool pb_decode_tag(pb_istream_t *stream, pb_wire_type_t *wire_type, uint32_t *tag, bool *eof); |
||||
|
|
||||
|
/* Skip the field payload data, given the wire type. */ |
||||
|
bool pb_skip_field(pb_istream_t *stream, pb_wire_type_t wire_type); |
||||
|
|
||||
|
/* Decode an integer in the varint format. This works for enum, int32,
|
||||
|
* int64, uint32 and uint64 field types. */ |
||||
|
#ifndef PB_WITHOUT_64BIT |
||||
|
bool pb_decode_varint(pb_istream_t *stream, uint64_t *dest); |
||||
|
#else |
||||
|
#define pb_decode_varint pb_decode_varint32 |
||||
|
#endif |
||||
|
|
||||
|
/* Decode an integer in the varint format. This works for enum, int32,
|
||||
|
* and uint32 field types. */ |
||||
|
bool pb_decode_varint32(pb_istream_t *stream, uint32_t *dest); |
||||
|
|
||||
|
/* Decode a bool value in varint format. */ |
||||
|
bool pb_decode_bool(pb_istream_t *stream, bool *dest); |
||||
|
|
||||
|
/* Decode an integer in the zig-zagged svarint format. This works for sint32
|
||||
|
* and sint64. */ |
||||
|
#ifndef PB_WITHOUT_64BIT |
||||
|
bool pb_decode_svarint(pb_istream_t *stream, int64_t *dest); |
||||
|
#else |
||||
|
bool pb_decode_svarint(pb_istream_t *stream, int32_t *dest); |
||||
|
#endif |
||||
|
|
||||
|
/* Decode a fixed32, sfixed32 or float value. You need to pass a pointer to
|
||||
|
* a 4-byte wide C variable. */ |
||||
|
bool pb_decode_fixed32(pb_istream_t *stream, void *dest); |
||||
|
|
||||
|
#ifndef PB_WITHOUT_64BIT |
||||
|
/* Decode a fixed64, sfixed64 or double value. You need to pass a pointer to
|
||||
|
* a 8-byte wide C variable. */ |
||||
|
bool pb_decode_fixed64(pb_istream_t *stream, void *dest); |
||||
|
#endif |
||||
|
|
||||
|
#ifdef PB_CONVERT_DOUBLE_FLOAT |
||||
|
/* Decode a double value into float variable. */ |
||||
|
bool pb_decode_double_as_float(pb_istream_t *stream, float *dest); |
||||
|
#endif |
||||
|
|
||||
|
/* Make a limited-length substream for reading a PB_WT_STRING field. */ |
||||
|
bool pb_make_string_substream(pb_istream_t *stream, pb_istream_t *substream); |
||||
|
bool pb_close_string_substream(pb_istream_t *stream, pb_istream_t *substream); |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,185 @@ |
|||||
|
/* pb_encode.h: Functions to encode protocol buffers. Depends on pb_encode.c.
|
||||
|
* The main function is pb_encode. You also need an output stream, and the |
||||
|
* field descriptions created by nanopb_generator.py. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef PB_ENCODE_H_INCLUDED |
||||
|
#define PB_ENCODE_H_INCLUDED |
||||
|
|
||||
|
#include "pb.h" |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Structure for defining custom output streams. You will need to provide
|
||||
|
* a callback function to write the bytes to your storage, which can be |
||||
|
* for example a file or a network socket. |
||||
|
* |
||||
|
* The callback must conform to these rules: |
||||
|
* |
||||
|
* 1) Return false on IO errors. This will cause encoding to abort. |
||||
|
* 2) You can use state to store your own data (e.g. buffer pointer). |
||||
|
* 3) pb_write will update bytes_written after your callback runs. |
||||
|
* 4) Substreams will modify max_size and bytes_written. Don't use them |
||||
|
* to calculate any pointers. |
||||
|
*/ |
||||
|
struct pb_ostream_s |
||||
|
{ |
||||
|
#ifdef PB_BUFFER_ONLY |
||||
|
/* Callback pointer is not used in buffer-only configuration.
|
||||
|
* Having an int pointer here allows binary compatibility but |
||||
|
* gives an error if someone tries to assign callback function. |
||||
|
* Also, NULL pointer marks a 'sizing stream' that does not |
||||
|
* write anything. |
||||
|
*/ |
||||
|
const int *callback; |
||||
|
#else |
||||
|
bool (*callback)(pb_ostream_t *stream, const pb_byte_t *buf, size_t count); |
||||
|
#endif |
||||
|
void *state; /* Free field for use by callback implementation. */ |
||||
|
size_t max_size; /* Limit number of output bytes written (or use SIZE_MAX). */ |
||||
|
size_t bytes_written; /* Number of bytes written so far. */ |
||||
|
|
||||
|
#ifndef PB_NO_ERRMSG |
||||
|
const char *errmsg; |
||||
|
#endif |
||||
|
}; |
||||
|
|
||||
|
/***************************
|
||||
|
* Main encoding functions * |
||||
|
***************************/ |
||||
|
|
||||
|
/* Encode a single protocol buffers message from C structure into a stream.
|
||||
|
* Returns true on success, false on any failure. |
||||
|
* The actual struct pointed to by src_struct must match the description in fields. |
||||
|
* All required fields in the struct are assumed to have been filled in. |
||||
|
* |
||||
|
* Example usage: |
||||
|
* MyMessage msg = {}; |
||||
|
* uint8_t buffer[64]; |
||||
|
* pb_ostream_t stream; |
||||
|
* |
||||
|
* msg.field1 = 42; |
||||
|
* stream = pb_ostream_from_buffer(buffer, sizeof(buffer)); |
||||
|
* pb_encode(&stream, MyMessage_fields, &msg); |
||||
|
*/ |
||||
|
bool pb_encode(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct); |
||||
|
|
||||
|
/* Extended version of pb_encode, with several options to control the
|
||||
|
* encoding process: |
||||
|
* |
||||
|
* PB_ENCODE_DELIMITED: Prepend the length of message as a varint. |
||||
|
* Corresponds to writeDelimitedTo() in Google's |
||||
|
* protobuf API. |
||||
|
* |
||||
|
* PB_ENCODE_NULLTERMINATED: Append a null byte to the message for termination. |
||||
|
* NOTE: This behaviour is not supported in most other |
||||
|
* protobuf implementations, so PB_ENCODE_DELIMITED |
||||
|
* is a better option for compatibility. |
||||
|
*/ |
||||
|
#define PB_ENCODE_DELIMITED 0x02U |
||||
|
#define PB_ENCODE_NULLTERMINATED 0x04U |
||||
|
bool pb_encode_ex(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct, unsigned int flags); |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define pb_encode_delimited(s,f,d) pb_encode_ex(s,f,d, PB_ENCODE_DELIMITED) |
||||
|
#define pb_encode_nullterminated(s,f,d) pb_encode_ex(s,f,d, PB_ENCODE_NULLTERMINATED) |
||||
|
|
||||
|
/* Encode the message to get the size of the encoded data, but do not store
|
||||
|
* the data. */ |
||||
|
bool pb_get_encoded_size(size_t *size, const pb_msgdesc_t *fields, const void *src_struct); |
||||
|
|
||||
|
/**************************************
|
||||
|
* Functions for manipulating streams * |
||||
|
**************************************/ |
||||
|
|
||||
|
/* Create an output stream for writing into a memory buffer.
|
||||
|
* The number of bytes written can be found in stream.bytes_written after |
||||
|
* encoding the message. |
||||
|
* |
||||
|
* Alternatively, you can use a custom stream that writes directly to e.g. |
||||
|
* a file or a network socket. |
||||
|
*/ |
||||
|
pb_ostream_t pb_ostream_from_buffer(pb_byte_t *buf, size_t bufsize); |
||||
|
|
||||
|
/* Pseudo-stream for measuring the size of a message without actually storing
|
||||
|
* the encoded data. |
||||
|
* |
||||
|
* Example usage: |
||||
|
* MyMessage msg = {}; |
||||
|
* pb_ostream_t stream = PB_OSTREAM_SIZING; |
||||
|
* pb_encode(&stream, MyMessage_fields, &msg); |
||||
|
* printf("Message size is %d\n", stream.bytes_written); |
||||
|
*/ |
||||
|
#ifndef PB_NO_ERRMSG |
||||
|
#define PB_OSTREAM_SIZING {0,0,0,0,0} |
||||
|
#else |
||||
|
#define PB_OSTREAM_SIZING {0,0,0,0} |
||||
|
#endif |
||||
|
|
||||
|
/* Function to write into a pb_ostream_t stream. You can use this if you need
|
||||
|
* to append or prepend some custom headers to the message. |
||||
|
*/ |
||||
|
bool pb_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count); |
||||
|
|
||||
|
|
||||
|
/************************************************
|
||||
|
* Helper functions for writing field callbacks * |
||||
|
************************************************/ |
||||
|
|
||||
|
/* Encode field header based on type and field number defined in the field
|
||||
|
* structure. Call this from the callback before writing out field contents. */ |
||||
|
bool pb_encode_tag_for_field(pb_ostream_t *stream, const pb_field_iter_t *field); |
||||
|
|
||||
|
/* Encode field header by manually specifying wire type. You need to use this
|
||||
|
* if you want to write out packed arrays from a callback field. */ |
||||
|
bool pb_encode_tag(pb_ostream_t *stream, pb_wire_type_t wiretype, uint32_t field_number); |
||||
|
|
||||
|
/* Encode an integer in the varint format.
|
||||
|
* This works for bool, enum, int32, int64, uint32 and uint64 field types. */ |
||||
|
#ifndef PB_WITHOUT_64BIT |
||||
|
bool pb_encode_varint(pb_ostream_t *stream, uint64_t value); |
||||
|
#else |
||||
|
bool pb_encode_varint(pb_ostream_t *stream, uint32_t value); |
||||
|
#endif |
||||
|
|
||||
|
/* Encode an integer in the zig-zagged svarint format.
|
||||
|
* This works for sint32 and sint64. */ |
||||
|
#ifndef PB_WITHOUT_64BIT |
||||
|
bool pb_encode_svarint(pb_ostream_t *stream, int64_t value); |
||||
|
#else |
||||
|
bool pb_encode_svarint(pb_ostream_t *stream, int32_t value); |
||||
|
#endif |
||||
|
|
||||
|
/* Encode a string or bytes type field. For strings, pass strlen(s) as size. */ |
||||
|
bool pb_encode_string(pb_ostream_t *stream, const pb_byte_t *buffer, size_t size); |
||||
|
|
||||
|
/* Encode a fixed32, sfixed32 or float value.
|
||||
|
* You need to pass a pointer to a 4-byte wide C variable. */ |
||||
|
bool pb_encode_fixed32(pb_ostream_t *stream, const void *value); |
||||
|
|
||||
|
#ifndef PB_WITHOUT_64BIT |
||||
|
/* Encode a fixed64, sfixed64 or double value.
|
||||
|
* You need to pass a pointer to a 8-byte wide C variable. */ |
||||
|
bool pb_encode_fixed64(pb_ostream_t *stream, const void *value); |
||||
|
#endif |
||||
|
|
||||
|
#ifdef PB_CONVERT_DOUBLE_FLOAT |
||||
|
/* Encode a float value so that it appears like a double in the encoded
|
||||
|
* message. */ |
||||
|
bool pb_encode_float_as_double(pb_ostream_t *stream, float value); |
||||
|
#endif |
||||
|
|
||||
|
/* Encode a submessage field.
|
||||
|
* You need to pass the pb_field_t array and pointer to struct, just like |
||||
|
* with pb_encode(). This internally encodes the submessage twice, first to |
||||
|
* calculate message size and then to actually write it out. |
||||
|
*/ |
||||
|
bool pb_encode_submessage(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct); |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,38 @@ |
|||||
|
|
||||
|
|
||||
|
/*
|
||||
|
* readme.h |
||||
|
* |
||||
|
* Created on: 2023年10月31日 |
||||
|
* Author: shiya |
||||
|
* |
||||
|
* CAN_H7_Bootloader程序存放位置 |
||||
|
* FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K |
||||
|
* 要求APP的存放位置为: |
||||
|
* FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 896K |
||||
|
* APP的中断向量表设置为: |
||||
|
* define VECT_TAB_OFFSET 0x00020000U |
||||
|
* |
||||
|
* Boot顺序(关联CAN总线2): |
||||
|
* Boot程序总线返回报文ID:0x1FF 类型:标准帧 |
||||
|
* 1. Boot启动,返回报文长度1的报文; |
||||
|
* 2. 延时100ms,期间等待报文0x110标准帧,首字节0x55,如果接收到 进入BootLoader程序 A; |
||||
|
* 3. 如果没有收到进入bootloader请求,返回报文长度3的报文,跳转到APP; |
||||
|
* |
||||
|
* A. 如果进入bootloader程序,返回报文长度2的报文,等待刷写; |
||||
|
* 刷写ID为0x222,逻辑参见“canbootloader.lua” |
||||
|
* B. 如果刷写过程存在失败,返回报文长度4的报文,可以重新尝试运行“canbootloader.lua”进行刷写; |
||||
|
* |
||||
|
* C. 刷写成功,返回报文长度3的报文,进入APP; |
||||
|
* PV 用户可修改数据 |
||||
|
* CV 管理员配置权限,CV中有PV |
||||
|
* GV 机器人数据 |
||||
|
* IV 机器人返回上位机的表征数据 |
||||
|
* |
||||
|
*/ |
||||
|
#ifndef INC_BSP_README_H_ |
||||
|
#define INC_BSP_README_H_ |
||||
|
|
||||
|
|
||||
|
|
||||
|
#endif /* INC_BSP_README_H_ */ |
||||
@ -0,0 +1,49 @@ |
|||||
|
/*
|
||||
|
* bsp_TCPServer.h |
||||
|
* |
||||
|
* Created on: 2025年8月4日 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef BASE_INC_BSP_TCP_SERVER_H_ |
||||
|
#define BASE_INC_BSP_TCP_SERVER_H_ |
||||
|
|
||||
|
//#ifndef TCP_SERVER_H
|
||||
|
//#define TCP_SERVER_H
|
||||
|
|
||||
|
#include "lwip/tcp.h" |
||||
|
#include <stdint.h> |
||||
|
|
||||
|
// 最大客户端连接数
|
||||
|
#define MAX_CLIENTS 8 |
||||
|
|
||||
|
// 客户端连接结构
|
||||
|
typedef struct { |
||||
|
struct tcp_pcb *pcb; // LwIP PCB指针
|
||||
|
uint8_t active; // 连接是否活跃
|
||||
|
} client_conn_t; |
||||
|
|
||||
|
// 服务器初始化
|
||||
|
void tcp_server_init(uint16_t port); |
||||
|
|
||||
|
// 发送数据给所有客户端
|
||||
|
void tcp_send_to_all_clients(const char *data, uint16_t len); |
||||
|
|
||||
|
// 定时器回调声明
|
||||
|
void tcp_server_timer_callback(void); |
||||
|
|
||||
|
typedef struct SendDataNode |
||||
|
{ |
||||
|
uint8_t Tx_Buf[255]; /*发送数据*/ |
||||
|
uint8_t Tx_Count; /*学号*/ |
||||
|
struct SendDataNode * next; /*指向下一个节点的指针*/ |
||||
|
}SendDataNode; |
||||
|
extern void tcp_add_sendList(uint8_t *tx_Buf, uint8_t tx_count); |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
//#endif /* TCP_SERVER_H */
|
||||
|
|
||||
|
|
||||
|
#endif /* BASE_INC_BSP_TCP_SERVER_H_ */ |
||||
@ -0,0 +1,39 @@ |
|||||
|
/*
|
||||
|
* msp_DAM_Relay.h |
||||
|
* |
||||
|
* Created on: Nov 5, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_MSP_MSP_DAM_RELAY_H_ |
||||
|
#define INC_MSP_MSP_DAM_RELAY_H_ |
||||
|
|
||||
|
#include "BHBF_ROBOT.h" |
||||
|
#include "msp_DAM.pb.h" |
||||
|
extern int32_t DMA_DO_Value_[4]; |
||||
|
|
||||
|
/* Enum definitions */ |
||||
|
typedef enum _ChannelStatus { |
||||
|
Triggered = 0, |
||||
|
Not_triggered = 1, |
||||
|
} ChannelStatus; |
||||
|
|
||||
|
|
||||
|
//typedef struct _DAMChannelStatus
|
||||
|
//{
|
||||
|
// uint8_t ch1;
|
||||
|
// uint8_t ch2;
|
||||
|
// uint8_t ch3;
|
||||
|
// uint8_t ch4;
|
||||
|
// uint8_t ch5;
|
||||
|
// uint8_t ch6;
|
||||
|
// uint8_t ch7;
|
||||
|
// uint8_t ch8;
|
||||
|
//}__attribute__((packed)) DAMChannelStatus_t;// 强制紧凑打包,避免内存空洞
|
||||
|
|
||||
|
extern DAMChannelStatus_t DAMChannelStatus; |
||||
|
//extern DAMChannelStatus_t* DAMChannelStatus_p;
|
||||
|
|
||||
|
extern void DAM_Relay_intialize(struct UARTHandler *Handler); |
||||
|
|
||||
|
#endif /* INC_MSP_MSP_DAM_RELAY_H_ */ |
||||
@ -0,0 +1,20 @@ |
|||||
|
/*
|
||||
|
* msp_DAM_Relay_1.h |
||||
|
* |
||||
|
* Created on: 2026年1月5日 |
||||
|
* Author: 13752 |
||||
|
*/ |
||||
|
|
||||
|
#ifndef BASE_INC_MSP_MSP_DAM_RELAY_1_H_ |
||||
|
#define BASE_INC_MSP_MSP_DAM_RELAY_1_H_ |
||||
|
|
||||
|
#include "BHBF_ROBOT.h" |
||||
|
//#include "../../BASE/Inc/MSP/msp_DAM_Relay.h"
|
||||
|
#include "msp_DAM.pb.h" |
||||
|
|
||||
|
extern void DAM_Relay_1_intialize(struct UARTHandler *Handler); |
||||
|
|
||||
|
extern DAMChannelStatus_t DAMChannelStatus_1; |
||||
|
extern int32_t DMA_DO_Value_1[8]; |
||||
|
|
||||
|
#endif /* BASE_INC_MSP_MSP_DAM_RELAY_1_H_ */ |
||||
@ -0,0 +1,13 @@ |
|||||
|
/*
|
||||
|
* msp_Force_Sensor.h |
||||
|
* |
||||
|
* Created on: Oct 8, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_MSP_MSP_FORCE_SENSOR_H_ |
||||
|
#define INC_MSP_MSP_FORCE_SENSOR_H_ |
||||
|
#include "bsp_MB_host.h" |
||||
|
extern void force_sensor_intialize(struct UARTHandler *Handler); |
||||
|
extern int32_t* ForceValue; |
||||
|
#endif /* INC_MSP_MSP_FORCE_SENSOR_H_ */ |
||||
@ -0,0 +1,25 @@ |
|||||
|
/*
|
||||
|
* msp_LeiSai_ISV2_CAN.h |
||||
|
* |
||||
|
* Created on: Oct 22, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_MSP_MSP_LEISAI_ISV2_CAN_H_ |
||||
|
#define INC_MSP_MSP_LEISAI_ISV2_CAN_H_ |
||||
|
|
||||
|
#include "BHBF_ROBOT.h" |
||||
|
#include "bsp_FDCAN.h" |
||||
|
#include "msp_INS_MotorParameters.pb.h" |
||||
|
|
||||
|
extern INS_MotorParameters* INS_Motor[7]; |
||||
|
extern double wheel_diameter_m; //1m 260mm
|
||||
|
extern double motor_pulses_rer_rotation; //1 pulse
|
||||
|
extern double wheel_reduction_ratio; |
||||
|
extern double wheel_001m_per_min_to_plus_per_s_ratio; |
||||
|
extern double wheel_plus_per_s_to_m_per_min_ratio; |
||||
|
|
||||
|
void INS_Set_TargetSpeed_Direction(int32_t MotorID,int32_t LeftMotor_Direction,int32_t RightMotor_Direction, |
||||
|
FDCANHandler *Motor_Controller, int32_t WaitTime, int32_t TargetSpeed,uint8_t _lightctrl); |
||||
|
|
||||
|
#endif /* INC_MSP_MSP_LEISAI_ISV2_CAN_H_ */ |
||||
@ -0,0 +1,15 @@ |
|||||
|
/*
|
||||
|
* msp_JTBATTERY.h |
||||
|
* |
||||
|
* Created on: Oct 26, 2023 |
||||
|
* Author: shiya |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_MSP_MSP_JTBATTERY_H_ |
||||
|
#define INC_MSP_MSP_JTBATTERY_H_ |
||||
|
|
||||
|
#include "BSP/bsp_include.h" |
||||
|
|
||||
|
|
||||
|
|
||||
|
#endif /* INC_MSP_MSP_JTBATTERY_H_ */ |
||||
@ -0,0 +1,20 @@ |
|||||
|
/*
|
||||
|
* msp_LGUB500.h |
||||
|
* |
||||
|
* Created on: Jul 15, 2025 |
||||
|
* Author: 13752 |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_MSP_MSP_LGUB500_H_ |
||||
|
#define INC_MSP_MSP_LGUB500_H_ |
||||
|
|
||||
|
#include "BSP/bsp_UART.h" |
||||
|
#include "msp_LGUB500.pb.h" |
||||
|
#include "bsp_Error.pb.h" |
||||
|
#include "BHBF_ROBOT.h" |
||||
|
#include "../../BASE/Inc/BSP/bsp_MB_host.h" |
||||
|
|
||||
|
void LGUB500_sensor_intialize(struct UARTHandler *Handler); |
||||
|
extern LGUB500_struct_define *lgub500; |
||||
|
|
||||
|
#endif /* INC_MSP_MSP_LGUB500_H_ */ |
||||
@ -0,0 +1,29 @@ |
|||||
|
/*
|
||||
|
* msp_LeiSai_485.h |
||||
|
* |
||||
|
* Created on: 2025年12月19日 |
||||
|
* Author: xsq |
||||
|
*/ |
||||
|
|
||||
|
#ifndef BASE_INC_MSP_MSP_LEISAI_485_H_ |
||||
|
#define BASE_INC_MSP_MSP_LEISAI_485_H_ |
||||
|
#include "BHBF_ROBOT.h" |
||||
|
|
||||
|
|
||||
|
// 滑轨状态枚举
|
||||
|
typedef enum { |
||||
|
POS_ZERO, // 零位
|
||||
|
POS_LEFT, // 零位左侧(需逆时针回归)
|
||||
|
POS_RIGHT, // 零位右侧(需顺时针回归)
|
||||
|
POS_UNKNOWN // 未知位置(需先寻边)
|
||||
|
} SlidePosition; |
||||
|
|
||||
|
extern uint8_t slide_flag; |
||||
|
extern uint32_t moving_time; |
||||
|
extern uint8_t SlidePositionStatus; |
||||
|
extern SlidePosition pos; |
||||
|
|
||||
|
extern int16_t LS_485Motors_Speed; |
||||
|
extern bool slide_go_to_zero(uint8_t timeout); |
||||
|
|
||||
|
#endif /* BASE_INC_MSP_MSP_LEISAI_485_H_ */ |
||||
@ -0,0 +1,27 @@ |
|||||
|
/*
|
||||
|
* msp_LeiSai_Position_485.h |
||||
|
* |
||||
|
* Created on: 2025年12月23日 |
||||
|
* Author: 13752 |
||||
|
*/ |
||||
|
|
||||
|
#ifndef BASE_INC_MSP_MSP_LEISAI_POSITION_485_H_ |
||||
|
#define BASE_INC_MSP_MSP_LEISAI_POSITION_485_H_ |
||||
|
#include "BHBF_ROBOT.h" |
||||
|
|
||||
|
|
||||
|
extern transition_t ls_485_position_current_rotate_state; |
||||
|
extern int16_t LS_485_Motors_Speed; |
||||
|
extern int32_t LS_485Motors_Position; |
||||
|
extern transition_state_t ls_485_position_halt_rotate_state; |
||||
|
extern transition_state_t ls_485_position_positive_rotate_state; |
||||
|
extern transition_state_t ls_485_position_state; |
||||
|
extern transition_state_t ls_485_position_negative_rotate_state; |
||||
|
|
||||
|
extern bool LS_Motor_Homing(); |
||||
|
extern void ls_485_Rotate_Do(transition_t *p_this); |
||||
|
void ls_485_Rotate_Do_1(transition_t *p_this); |
||||
|
extern void ls_485_position_Halt_Rotate(transition_t *p_this); |
||||
|
extern void ls_485_position_Set(transition_t *p_this); |
||||
|
extern void SetZeroPoint(); |
||||
|
#endif /* BASE_INC_MSP_MSP_LEISAI_POSITION_485_H_ */ |
||||
@ -0,0 +1,21 @@ |
|||||
|
/*
|
||||
|
* msp_PID.h |
||||
|
* |
||||
|
* Created on: 2024年1月22日 |
||||
|
* Author: Administrator |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_MSP_MSP_PID_H_ |
||||
|
#define INC_MSP_MSP_PID_H_ |
||||
|
|
||||
|
#include "BSP/bsp_include.h" |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
extern double Angle_Tune_PID(double CurrentAngle, double TargetAngle, double Position_KP, |
||||
|
double Position_KI, double Position_KD, double MaxValue); |
||||
|
|
||||
|
double PositionalPID_1(double pidTargetValue, double pidCurrentValue); |
||||
|
|
||||
|
#endif /* INC_MSP_MSP_PID_H_ */ |
||||
@ -0,0 +1,24 @@ |
|||||
|
/*
|
||||
|
* msp_TL720D.h |
||||
|
* |
||||
|
* Created on: Jul 19, 2024 |
||||
|
* Author: bihon |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_MSP_MSP_TL720D_H_ |
||||
|
#define INC_MSP_MSP_TL720D_H_ |
||||
|
|
||||
|
#include <stdio.h> |
||||
|
#include <string.h> |
||||
|
#include "bsp_MB_host.h" |
||||
|
#include "stdio.h" |
||||
|
#include "BSP/bsp_UART.h" |
||||
|
#include "usart.h" |
||||
|
#include "gpio.h" |
||||
|
|
||||
|
void TL720D_intialize(struct UARTHandler *Handler); |
||||
|
|
||||
|
extern MSP_TL720DParameters* SP_MSP_RF_TL720D_Parameters_In; |
||||
|
extern int32_t *RobotAngle;//机器人角度
|
||||
|
|
||||
|
#endif /* INC_MSP_MSP_TL720D_H_ */ |
||||
@ -0,0 +1,19 @@ |
|||||
|
/*
|
||||
|
* msp_U7.h |
||||
|
* |
||||
|
* Created on: Oct 8, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_MSP_MSP_U7_H_ |
||||
|
#define INC_MSP_MSP_U7_H_ |
||||
|
#include "../../BASE/Inc/BSP/bsp_UART.h" |
||||
|
#include "msp_U7.pb.h" |
||||
|
void Sbus_Data_Count_U7(uint8_t *buf, int32_t *But_Value); |
||||
|
extern SP_MSP_U7_Button *P_U7; |
||||
|
void Robot_ResetCheck_Loop(void); |
||||
|
extern char Is_All_Button_Reset; |
||||
|
//
|
||||
|
extern void U7_Sbus_UART_Handler_intialize(struct UARTHandler* Handler); |
||||
|
|
||||
|
#endif /* INC_MSP_MSP_U7_H_ */ |
||||
@ -0,0 +1,21 @@ |
|||||
|
/*
|
||||
|
* bsp_WH_LTE_7S0.h |
||||
|
* |
||||
|
* Created on: Sep 14, 2024 |
||||
|
* Author: akeguo |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INC_BSP_BSP_WH_LTE_7S0_H_ |
||||
|
#define INC_BSP_BSP_WH_LTE_7S0_H_ |
||||
|
#include "stdint.h" |
||||
|
extern struct UARTHandler *wh_LTE_7S0_Handler; |
||||
|
//void WH_LTE_7S0_intialize(struct UARTHandler *Handler);
|
||||
|
void Send_WH_LTE_7S0_Data(uint8_t* data,int length); |
||||
|
|
||||
|
void WH_LTE_7S0_intialize(struct UARTHandler *Handler); |
||||
|
void decode_received_data_from_computer(uint8_t *buffer, uint16_t length); |
||||
|
void decode_command_from_wh_LTE_7S0(uint8_t *buffer, uint16_t length); |
||||
|
void UpdateGV(); |
||||
|
|
||||
|
extern char NeedToFeedBackToComputer; |
||||
|
#endif /* INC_BSP_BSP_WH_LTE_7S0_H_ */ |
||||
@ -0,0 +1,20 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "bsp_CV.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(CV_struct_define, CV_struct_define, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
|
#ifndef PB_CONVERT_DOUBLE_FLOAT |
||||
|
/* On some platforms (such as AVR), double is really float.
|
||||
|
* To be able to encode/decode double on these platforms, you need. |
||||
|
* to define PB_CONVERT_DOUBLE_FLOAT in pb.h or compiler command line. |
||||
|
*/ |
||||
|
PB_STATIC_ASSERT(sizeof(double) == 8, DOUBLE_MUST_BE_8_BYTES) |
||||
|
#endif |
||||
|
|
||||
@ -0,0 +1,125 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_BSP_CV_PB_H_INCLUDED |
||||
|
#define PB_BSP_CV_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
#include "bsp_PV.pb.h" |
||||
|
#include "bsp_PID.pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _CV_struct_define { |
||||
|
int32_t Speed_m_per_min; /* MPMin = 1m/min 1米每分钟 m/min */ |
||||
|
int32_t LeftTurnSpeed; |
||||
|
int32_t RightTurnSpeed; |
||||
|
int32_t RobotLeftAngleValue; /* 水平左方向 单位0.01° */ |
||||
|
int32_t RobotRightAngleValue; /* 水平右方向角度值 单位0.01° */ |
||||
|
int32_t RobotUpAngleValue; /* 竖直方向角度值 单位0.01° */ |
||||
|
int32_t RobotDownAngleValue; /* 竖直向下角度值 单位0.01° */ |
||||
|
int32_t Robot_Permitted_Angler_Error_Value_E_2D; /* 作业时需用的最大角度偏差值 0.01°,超出将停止作业 */ |
||||
|
int32_t Robot_Angle_Start_BaseE_2D; /* 角度值 0.01° */ |
||||
|
int32_t Lane_Change_Speed_m_per_min; |
||||
|
int32_t Is_Automation_Authorized; |
||||
|
int32_t Is_Function_Authorized; |
||||
|
int32_t Joy_Sticker_Angle_Allowance; /* 例如在90度的±30° */ |
||||
|
int32_t Joy_Sticker_Value_Allowance; /* 例如 joysticker的值超过600 */ |
||||
|
int32_t Allowable_Error_For_Angle_Tracking; /* 纠偏角度跟踪的允许误差1 度 */ |
||||
|
int32_t Paint_Gun_Shutdown_Distance; /* 喷枪关闭距离,喷枪关闭后多上厘米停止运行 */ |
||||
|
int32_t Horizontal_ChangeLane_Compensation; /* 水平换道补偿距离 */ |
||||
|
int32_t Vertical_ChangeLane_Compensation; /* 竖直换道补偿距离 */ |
||||
|
int32_t pulse_Per_Circle; /* 每转多少脉冲 */ |
||||
|
int32_t wheel_Reduction_Ratio; /* 减速比 */ |
||||
|
double wheel_Diameter_m; /* 车轮直径 m */ |
||||
|
bool has_PID_high; |
||||
|
PID_Parameters PID_high; |
||||
|
bool has_PID_mid; |
||||
|
PID_Parameters PID_mid; |
||||
|
bool has_PID_low; |
||||
|
PID_Parameters PID_low; |
||||
|
} CV_struct_define; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define CV_struct_define_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, PID_Parameters_init_default, false, PID_Parameters_init_default, false, PID_Parameters_init_default} |
||||
|
#define CV_struct_define_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, PID_Parameters_init_zero, false, PID_Parameters_init_zero, false, PID_Parameters_init_zero} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define CV_struct_define_Speed_m_per_min_tag 1 |
||||
|
#define CV_struct_define_LeftTurnSpeed_tag 2 |
||||
|
#define CV_struct_define_RightTurnSpeed_tag 3 |
||||
|
#define CV_struct_define_RobotLeftAngleValue_tag 4 |
||||
|
#define CV_struct_define_RobotRightAngleValue_tag 5 |
||||
|
#define CV_struct_define_RobotUpAngleValue_tag 6 |
||||
|
#define CV_struct_define_RobotDownAngleValue_tag 7 |
||||
|
#define CV_struct_define_Robot_Permitted_Angler_Error_Value_E_2D_tag 8 |
||||
|
#define CV_struct_define_Robot_Angle_Start_BaseE_2D_tag 9 |
||||
|
#define CV_struct_define_Lane_Change_Speed_m_per_min_tag 10 |
||||
|
#define CV_struct_define_Is_Automation_Authorized_tag 11 |
||||
|
#define CV_struct_define_Is_Function_Authorized_tag 12 |
||||
|
#define CV_struct_define_Joy_Sticker_Angle_Allowance_tag 13 |
||||
|
#define CV_struct_define_Joy_Sticker_Value_Allowance_tag 14 |
||||
|
#define CV_struct_define_Allowable_Error_For_Angle_Tracking_tag 15 |
||||
|
#define CV_struct_define_Paint_Gun_Shutdown_Distance_tag 16 |
||||
|
#define CV_struct_define_Horizontal_ChangeLane_Compensation_tag 17 |
||||
|
#define CV_struct_define_Vertical_ChangeLane_Compensation_tag 18 |
||||
|
#define CV_struct_define_pulse_Per_Circle_tag 19 |
||||
|
#define CV_struct_define_wheel_Reduction_Ratio_tag 20 |
||||
|
#define CV_struct_define_wheel_Diameter_m_tag 21 |
||||
|
#define CV_struct_define_PID_high_tag 22 |
||||
|
#define CV_struct_define_PID_mid_tag 23 |
||||
|
#define CV_struct_define_PID_low_tag 24 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define CV_struct_define_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Speed_m_per_min, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, LeftTurnSpeed, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RightTurnSpeed, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RobotLeftAngleValue, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RobotRightAngleValue, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RobotUpAngleValue, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RobotDownAngleValue, 7) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Robot_Permitted_Angler_Error_Value_E_2D, 8) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Robot_Angle_Start_BaseE_2D, 9) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Lane_Change_Speed_m_per_min, 10) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Is_Automation_Authorized, 11) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Is_Function_Authorized, 12) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Joy_Sticker_Angle_Allowance, 13) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Joy_Sticker_Value_Allowance, 14) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Allowable_Error_For_Angle_Tracking, 15) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Paint_Gun_Shutdown_Distance, 16) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Horizontal_ChangeLane_Compensation, 17) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Vertical_ChangeLane_Compensation, 18) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, pulse_Per_Circle, 19) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, wheel_Reduction_Ratio, 20) \ |
||||
|
X(a, STATIC, SINGULAR, DOUBLE, wheel_Diameter_m, 21) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, PID_high, 22) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, PID_mid, 23) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, PID_low, 24) |
||||
|
#define CV_struct_define_CALLBACK NULL |
||||
|
#define CV_struct_define_DEFAULT NULL |
||||
|
#define CV_struct_define_PID_high_MSGTYPE PID_Parameters |
||||
|
#define CV_struct_define_PID_mid_MSGTYPE PID_Parameters |
||||
|
#define CV_struct_define_PID_low_MSGTYPE PID_Parameters |
||||
|
|
||||
|
extern const pb_msgdesc_t CV_struct_define_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define CV_struct_define_fields &CV_struct_define_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define BSP_CV_PB_H_MAX_SIZE CV_struct_define_size |
||||
|
#define CV_struct_define_size 358 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,12 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "bsp_Cmd.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(Cmd, Cmd, 2) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,80 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_BSP_CMD_PB_H_INCLUDED |
||||
|
#define PB_BSP_CMD_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
/* this message is used for the computer to send command */ |
||||
|
typedef struct _Cmd { |
||||
|
int32_t CommadNum; |
||||
|
/* 定义 1 上位机获取默认CV值
|
||||
|
定义 2 下位机返回CV值 |
||||
|
定义 3 上位机设定CV值 |
||||
|
定义 4 上位机设定Trace等级值,无返回 |
||||
|
定义 5 下位机上传位置点数据 |
||||
|
定义 6 上位机设定编码器角度值为0 |
||||
|
定义 7 上位机获取拟合点 |
||||
|
定义 8 上位机获取位置点 |
||||
|
定义 9 上位机向下位机下发程序 此时,Parameter0 下发的程序起始位,Parameter0 是校验位 |
||||
|
Buff_Data_Length 是下发的字节数, */ |
||||
|
int32_t Parameter0; |
||||
|
int32_t Parameter1; |
||||
|
int32_t Parameter2; |
||||
|
int32_t Parameter3; |
||||
|
int32_t Parameter4; |
||||
|
int32_t Buff_Data_Length; |
||||
|
pb_byte_t Buff_Data[512]; |
||||
|
} Cmd; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define Cmd_init_default {0, 0, 0, 0, 0, 0, 0, {0}} |
||||
|
#define Cmd_init_zero {0, 0, 0, 0, 0, 0, 0, {0}} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define Cmd_CommadNum_tag 1 |
||||
|
#define Cmd_Parameter0_tag 2 |
||||
|
#define Cmd_Parameter1_tag 3 |
||||
|
#define Cmd_Parameter2_tag 4 |
||||
|
#define Cmd_Parameter3_tag 5 |
||||
|
#define Cmd_Parameter4_tag 6 |
||||
|
#define Cmd_Buff_Data_Length_tag 7 |
||||
|
#define Cmd_Buff_Data_tag 8 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define Cmd_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CommadNum, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Parameter0, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Parameter1, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Parameter2, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Parameter3, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Parameter4, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Buff_Data_Length, 7) \ |
||||
|
X(a, STATIC, SINGULAR, FIXED_LENGTH_BYTES, Buff_Data, 8) |
||||
|
#define Cmd_CALLBACK NULL |
||||
|
#define Cmd_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t Cmd_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define Cmd_fields &Cmd_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define BSP_CMD_PB_H_MAX_SIZE Cmd_size |
||||
|
#define Cmd_size 592 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,13 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "bsp_Error.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(ErrorData, ErrorData, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,72 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_BSP_ERROR_PB_H_INCLUDED |
||||
|
#define PB_BSP_ERROR_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Enum definitions */ |
||||
|
typedef enum _ComError { |
||||
|
ComError_U7_SBus = 0, |
||||
|
ComError_TL720D = 1, |
||||
|
ComError_Remote_Button_Reset_State = 2, |
||||
|
ComError_LS_485Motors3 = 3, |
||||
|
ComError_DAM_Relay_ErrorBitFlag = 4, |
||||
|
ComError_DAM_Relay_1_ErrorBitFlag = 5, |
||||
|
ComError_LGUB500_sensor = 6 |
||||
|
} ComError; |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _ErrorData { |
||||
|
int32_t Com_Error_Code; |
||||
|
int32_t Left_Motor_Error_Code; |
||||
|
int32_t Right_Motor_Error_Code; |
||||
|
} ErrorData; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Helper constants for enums */ |
||||
|
#define _ComError_MIN ComError_U7_SBus |
||||
|
#define _ComError_MAX ComError_LGUB500_sensor |
||||
|
#define _ComError_ARRAYSIZE ((ComError)(ComError_LGUB500_sensor+1)) |
||||
|
|
||||
|
|
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define ErrorData_init_default {0, 0, 0} |
||||
|
#define ErrorData_init_zero {0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define ErrorData_Com_Error_Code_tag 1 |
||||
|
#define ErrorData_Left_Motor_Error_Code_tag 2 |
||||
|
#define ErrorData_Right_Motor_Error_Code_tag 3 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define ErrorData_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Com_Error_Code, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Left_Motor_Error_Code, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Right_Motor_Error_Code, 3) |
||||
|
#define ErrorData_CALLBACK NULL |
||||
|
#define ErrorData_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t ErrorData_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define ErrorData_fields &ErrorData_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define BSP_ERROR_PB_H_MAX_SIZE ErrorData_size |
||||
|
#define ErrorData_size 33 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,20 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "bsp_GV.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(GV_struct_define, GV_struct_define, 2) |
||||
|
|
||||
|
|
||||
|
|
||||
|
#ifndef PB_CONVERT_DOUBLE_FLOAT |
||||
|
/* On some platforms (such as AVR), double is really float.
|
||||
|
* To be able to encode/decode double on these platforms, you need. |
||||
|
* to define PB_CONVERT_DOUBLE_FLOAT in pb.h or compiler command line. |
||||
|
*/ |
||||
|
PB_STATIC_ASSERT(sizeof(double) == 8, DOUBLE_MUST_BE_8_BYTES) |
||||
|
#endif |
||||
|
|
||||
@ -0,0 +1,130 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_BSP_GV_PB_H_INCLUDED |
||||
|
#define PB_BSP_GV_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
#include "msp_U7.pb.h" |
||||
|
#include "msp_Motor.pb.h" |
||||
|
#include "msp_INS_MotorParameters.pb.h" |
||||
|
#include "msp_TL720D.pb.h" |
||||
|
#include "bsp_Error.pb.h" |
||||
|
#include "bsp_PV.pb.h" |
||||
|
#include "bsp_IO.pb.h" |
||||
|
#include "msp_DAM.pb.h" |
||||
|
#include "msp_LGUB500.pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _GV_struct_define { |
||||
|
int32_t TempatureE_2C; /* E_2C=0.01 Celsius 0.01摄氏度 */ |
||||
|
int32_t Left_Compensation; /* E_2D =0.01 Degree 0.01度 */ |
||||
|
int32_t Right_Compensation; /* 0.01度 */ |
||||
|
int32_t Robot_Angle; /* 机器人角度 //0.01度 */ |
||||
|
double Robot_Move_Speed; /* 0.1rpm */ |
||||
|
int32_t ForceValue; |
||||
|
int32_t LaneChangeDistance; |
||||
|
bool has_U7_Key; |
||||
|
SP_MSP_U7_Button U7_Key; |
||||
|
bool has_ALLMotor; |
||||
|
INS_MotorParameters ALLMotor; /* 左电机 ID2 */ |
||||
|
bool has_TL720DParameters; |
||||
|
MSP_TL720DParameters TL720DParameters; |
||||
|
bool has_IO; |
||||
|
IO_Data IO; |
||||
|
bool has_SystemErrorData; |
||||
|
ErrorData SystemErrorData; |
||||
|
bool has_PV; |
||||
|
PV_struct_define PV; /* 用户配置数据 */ |
||||
|
int32_t Lighting_Control; /* 灯光控制 */ |
||||
|
bool has_DAM_CH; |
||||
|
DAMChannelStatus_t DAM_CH; /* DAM通道 */ |
||||
|
int32_t slideTableSpeed; /* 滑台速度 */ |
||||
|
int32_t pushRobSpeed; /* 推杆速度 */ |
||||
|
bool has_safety_distance; |
||||
|
LGUB500_struct_define safety_distance; /* 超声波探测距离 */ |
||||
|
int32_t isProbeAllowMoveCheck; |
||||
|
int32_t isRobotAllowMoveCheck; |
||||
|
} GV_struct_define; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define GV_struct_define_init_default {0, 0, 0, 0, 0, 0, 0, false, SP_MSP_U7_Button_init_default, false, INS_MotorParameters_init_default, false, MSP_TL720DParameters_init_default, false, IO_Data_init_default, false, ErrorData_init_default, false, PV_struct_define_init_default, 0, false, DAMChannelStatus_t_init_default, 0, 0, false, LGUB500_struct_define_init_default, 0, 0} |
||||
|
#define GV_struct_define_init_zero {0, 0, 0, 0, 0, 0, 0, false, SP_MSP_U7_Button_init_zero, false, INS_MotorParameters_init_zero, false, MSP_TL720DParameters_init_zero, false, IO_Data_init_zero, false, ErrorData_init_zero, false, PV_struct_define_init_zero, 0, false, DAMChannelStatus_t_init_zero, 0, 0, false, LGUB500_struct_define_init_zero, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define GV_struct_define_TempatureE_2C_tag 1 |
||||
|
#define GV_struct_define_Left_Compensation_tag 2 |
||||
|
#define GV_struct_define_Right_Compensation_tag 3 |
||||
|
#define GV_struct_define_Robot_Angle_tag 4 |
||||
|
#define GV_struct_define_Robot_Move_Speed_tag 5 |
||||
|
#define GV_struct_define_ForceValue_tag 6 |
||||
|
#define GV_struct_define_LaneChangeDistance_tag 7 |
||||
|
#define GV_struct_define_U7_Key_tag 9 |
||||
|
#define GV_struct_define_ALLMotor_tag 10 |
||||
|
#define GV_struct_define_TL720DParameters_tag 12 |
||||
|
#define GV_struct_define_IO_tag 13 |
||||
|
#define GV_struct_define_SystemErrorData_tag 14 |
||||
|
#define GV_struct_define_PV_tag 15 |
||||
|
#define GV_struct_define_Lighting_Control_tag 16 |
||||
|
#define GV_struct_define_DAM_CH_tag 17 |
||||
|
#define GV_struct_define_slideTableSpeed_tag 18 |
||||
|
#define GV_struct_define_pushRobSpeed_tag 19 |
||||
|
#define GV_struct_define_safety_distance_tag 20 |
||||
|
#define GV_struct_define_isProbeAllowMoveCheck_tag 21 |
||||
|
#define GV_struct_define_isRobotAllowMoveCheck_tag 22 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define GV_struct_define_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, TempatureE_2C, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Left_Compensation, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Right_Compensation, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Robot_Angle, 4) \ |
||||
|
X(a, STATIC, SINGULAR, DOUBLE, Robot_Move_Speed, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, ForceValue, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, LaneChangeDistance, 7) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, U7_Key, 9) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, ALLMotor, 10) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, TL720DParameters, 12) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, IO, 13) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, SystemErrorData, 14) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, PV, 15) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Lighting_Control, 16) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, DAM_CH, 17) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, slideTableSpeed, 18) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, pushRobSpeed, 19) \ |
||||
|
X(a, STATIC, OPTIONAL, MESSAGE, safety_distance, 20) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, isProbeAllowMoveCheck, 21) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, isRobotAllowMoveCheck, 22) |
||||
|
#define GV_struct_define_CALLBACK NULL |
||||
|
#define GV_struct_define_DEFAULT NULL |
||||
|
#define GV_struct_define_U7_Key_MSGTYPE SP_MSP_U7_Button |
||||
|
#define GV_struct_define_ALLMotor_MSGTYPE INS_MotorParameters |
||||
|
#define GV_struct_define_TL720DParameters_MSGTYPE MSP_TL720DParameters |
||||
|
#define GV_struct_define_IO_MSGTYPE IO_Data |
||||
|
#define GV_struct_define_SystemErrorData_MSGTYPE ErrorData |
||||
|
#define GV_struct_define_PV_MSGTYPE PV_struct_define |
||||
|
#define GV_struct_define_DAM_CH_MSGTYPE DAMChannelStatus_t |
||||
|
#define GV_struct_define_safety_distance_MSGTYPE LGUB500_struct_define |
||||
|
|
||||
|
extern const pb_msgdesc_t GV_struct_define_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define GV_struct_define_fields &GV_struct_define_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define BSP_GV_PB_H_MAX_SIZE GV_struct_define_size |
||||
|
#define GV_struct_define_size 969 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,12 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "bsp_IAP.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(IAP_struct_define, IAP_struct_define, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,58 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_BSP_IAP_PB_H_INCLUDED |
||||
|
#define PB_BSP_IAP_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
/* IAP,即In Application Programming,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写。 */ |
||||
|
typedef struct _IAP_struct_define { |
||||
|
int32_t Total_Bytes; /* all the received data; */ |
||||
|
int32_t NextCodeVrsion; /* the New upgrade Version of the Project */ |
||||
|
int32_t UtcTime; /* Udgrade Time */ |
||||
|
int32_t UpgradeSucceeded; /* */ |
||||
|
} IAP_struct_define; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define IAP_struct_define_init_default {0, 0, 0, 0} |
||||
|
#define IAP_struct_define_init_zero {0, 0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define IAP_struct_define_Total_Bytes_tag 1 |
||||
|
#define IAP_struct_define_NextCodeVrsion_tag 2 |
||||
|
#define IAP_struct_define_UtcTime_tag 3 |
||||
|
#define IAP_struct_define_UpgradeSucceeded_tag 4 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define IAP_struct_define_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Total_Bytes, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, NextCodeVrsion, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, UtcTime, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, UpgradeSucceeded, 4) |
||||
|
#define IAP_struct_define_CALLBACK NULL |
||||
|
#define IAP_struct_define_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t IAP_struct_define_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define IAP_struct_define_fields &IAP_struct_define_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define BSP_IAP_PB_H_MAX_SIZE IAP_struct_define_size |
||||
|
#define IAP_struct_define_size 44 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,12 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "bsp_IO.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(IO_Data, IO_Data, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,81 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_BSP_IO_PB_H_INCLUDED |
||||
|
#define PB_BSP_IO_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _IO_Data { |
||||
|
int32_t DO0; |
||||
|
int32_t DO1; |
||||
|
int32_t DO2; |
||||
|
int32_t DO3; |
||||
|
int32_t DO4; |
||||
|
int32_t DO5; |
||||
|
int32_t DI0; |
||||
|
int32_t DI1; |
||||
|
int32_t DI2; |
||||
|
int32_t DI3; |
||||
|
int32_t DI4; |
||||
|
int32_t DI5; |
||||
|
} IO_Data; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define IO_Data_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
#define IO_Data_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define IO_Data_DO0_tag 1 |
||||
|
#define IO_Data_DO1_tag 2 |
||||
|
#define IO_Data_DO2_tag 3 |
||||
|
#define IO_Data_DO3_tag 4 |
||||
|
#define IO_Data_DO4_tag 5 |
||||
|
#define IO_Data_DO5_tag 6 |
||||
|
#define IO_Data_DI0_tag 7 |
||||
|
#define IO_Data_DI1_tag 8 |
||||
|
#define IO_Data_DI2_tag 9 |
||||
|
#define IO_Data_DI3_tag 10 |
||||
|
#define IO_Data_DI4_tag 11 |
||||
|
#define IO_Data_DI5_tag 12 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define IO_Data_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DO0, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DO1, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DO2, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DO3, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DO4, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DO5, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DI0, 7) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DI1, 8) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DI2, 9) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DI3, 10) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DI4, 11) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DI5, 12) |
||||
|
#define IO_Data_CALLBACK NULL |
||||
|
#define IO_Data_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t IO_Data_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define IO_Data_fields &IO_Data_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define BSP_IO_PB_H_MAX_SIZE IO_Data_size |
||||
|
#define IO_Data_size 132 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,12 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "bsp_IV.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(IV_struct_define, IV_struct_define, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,87 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_BSP_IV_PB_H_INCLUDED |
||||
|
#define PB_BSP_IV_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _IV_struct_define { |
||||
|
int32_t CurrentAngle; /* 单位0.01° */ |
||||
|
int32_t RobotMoveSpeed; /* 单位m/min 机器人移动速度 */ |
||||
|
int32_t SBUS_State; /* 0断开 1连接 */ |
||||
|
int32_t SystemError; /* 硬件通讯错误及按键未初始化错误 */ |
||||
|
int32_t DAM_CH1; /* DAM通道状态 */ |
||||
|
int32_t DAM_CH2; |
||||
|
int32_t DAM_CH3; |
||||
|
int32_t DAM_CH4; |
||||
|
int32_t DAM_CH5; |
||||
|
int32_t DAM_CH6; |
||||
|
int32_t DAM_CH7; |
||||
|
int32_t DAM_CH8; |
||||
|
int32_t probeAllowMoveCheck; /* 升降杆允许运动查询 */ |
||||
|
int32_t robotAllowMoveCheck; /* 机器人允许运动查询 */ |
||||
|
} IV_struct_define; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define IV_struct_define_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
#define IV_struct_define_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define IV_struct_define_CurrentAngle_tag 1 |
||||
|
#define IV_struct_define_RobotMoveSpeed_tag 2 |
||||
|
#define IV_struct_define_SBUS_State_tag 3 |
||||
|
#define IV_struct_define_SystemError_tag 4 |
||||
|
#define IV_struct_define_DAM_CH1_tag 5 |
||||
|
#define IV_struct_define_DAM_CH2_tag 6 |
||||
|
#define IV_struct_define_DAM_CH3_tag 7 |
||||
|
#define IV_struct_define_DAM_CH4_tag 8 |
||||
|
#define IV_struct_define_DAM_CH5_tag 9 |
||||
|
#define IV_struct_define_DAM_CH6_tag 10 |
||||
|
#define IV_struct_define_DAM_CH7_tag 11 |
||||
|
#define IV_struct_define_DAM_CH8_tag 12 |
||||
|
#define IV_struct_define_probeAllowMoveCheck_tag 13 |
||||
|
#define IV_struct_define_robotAllowMoveCheck_tag 14 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define IV_struct_define_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CurrentAngle, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RobotMoveSpeed, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, SBUS_State, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, SystemError, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DAM_CH1, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DAM_CH2, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DAM_CH3, 7) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DAM_CH4, 8) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DAM_CH5, 9) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DAM_CH6, 10) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DAM_CH7, 11) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DAM_CH8, 12) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, probeAllowMoveCheck, 13) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, robotAllowMoveCheck, 14) |
||||
|
#define IV_struct_define_CALLBACK NULL |
||||
|
#define IV_struct_define_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t IV_struct_define_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define IV_struct_define_fields &IV_struct_define_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define BSP_IV_PB_H_MAX_SIZE IV_struct_define_size |
||||
|
#define IV_struct_define_size 154 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,20 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "bsp_PID.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(PID_Parameters, PID_Parameters, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
|
#ifndef PB_CONVERT_DOUBLE_FLOAT |
||||
|
/* On some platforms (such as AVR), double is really float.
|
||||
|
* To be able to encode/decode double on these platforms, you need. |
||||
|
* to define PB_CONVERT_DOUBLE_FLOAT in pb.h or compiler command line. |
||||
|
*/ |
||||
|
PB_STATIC_ASSERT(sizeof(double) == 8, DOUBLE_MUST_BE_8_BYTES) |
||||
|
#endif |
||||
|
|
||||
@ -0,0 +1,57 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_BSP_PID_PB_H_INCLUDED |
||||
|
#define PB_BSP_PID_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _PID_Parameters { |
||||
|
int32_t PID_Angle; /* 调整 单位0.01° 配置时需要*100 */ |
||||
|
double Kp; /* PID参数 */ |
||||
|
double Ki; |
||||
|
double Kd; |
||||
|
} PID_Parameters; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define PID_Parameters_init_default {0, 0, 0, 0} |
||||
|
#define PID_Parameters_init_zero {0, 0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define PID_Parameters_PID_Angle_tag 1 |
||||
|
#define PID_Parameters_Kp_tag 2 |
||||
|
#define PID_Parameters_Ki_tag 3 |
||||
|
#define PID_Parameters_Kd_tag 4 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define PID_Parameters_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, PID_Angle, 1) \ |
||||
|
X(a, STATIC, SINGULAR, DOUBLE, Kp, 2) \ |
||||
|
X(a, STATIC, SINGULAR, DOUBLE, Ki, 3) \ |
||||
|
X(a, STATIC, SINGULAR, DOUBLE, Kd, 4) |
||||
|
#define PID_Parameters_CALLBACK NULL |
||||
|
#define PID_Parameters_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t PID_Parameters_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define PID_Parameters_fields &PID_Parameters_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define BSP_PID_PB_H_MAX_SIZE PID_Parameters_size |
||||
|
#define PID_Parameters_size 38 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,20 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "bsp_PV.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(PV_struct_define, PV_struct_define, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
|
#ifndef PB_CONVERT_DOUBLE_FLOAT |
||||
|
/* On some platforms (such as AVR), double is really float.
|
||||
|
* To be able to encode/decode double on these platforms, you need. |
||||
|
* to define PB_CONVERT_DOUBLE_FLOAT in pb.h or compiler command line. |
||||
|
*/ |
||||
|
PB_STATIC_ASSERT(sizeof(double) == 8, DOUBLE_MUST_BE_8_BYTES) |
||||
|
#endif |
||||
|
|
||||
@ -0,0 +1,73 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_BSP_PV_PB_H_INCLUDED |
||||
|
#define PB_BSP_PV_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _PV_struct_define { |
||||
|
/* 绝缘子检测项目 */ |
||||
|
int32_t RunMode; /* 1 手动无校准作业 2 手动校准 */ |
||||
|
double RobotSpeed; /* 车体速度 */ |
||||
|
int32_t pushRodSpeed; /* 推杆速度 */ |
||||
|
int32_t FrontEndRotationSpeed; /* 前端旋转速度 */ |
||||
|
int32_t robotMoveDir; /* 机器人直线运动方向 */ |
||||
|
int32_t obstacle_avoidance; /* 避障开关 */ |
||||
|
int32_t warningLight; /* 警示灯开关 */ |
||||
|
int32_t probeAllowMoveCommend; /* 推杆允许运动命令 */ |
||||
|
int32_t robotAllowMoveCommend; /* 机器人允许运动命令 */ |
||||
|
} PV_struct_define; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define PV_struct_define_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
#define PV_struct_define_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define PV_struct_define_RunMode_tag 1 |
||||
|
#define PV_struct_define_RobotSpeed_tag 2 |
||||
|
#define PV_struct_define_pushRodSpeed_tag 3 |
||||
|
#define PV_struct_define_FrontEndRotationSpeed_tag 4 |
||||
|
#define PV_struct_define_robotMoveDir_tag 5 |
||||
|
#define PV_struct_define_obstacle_avoidance_tag 6 |
||||
|
#define PV_struct_define_warningLight_tag 7 |
||||
|
#define PV_struct_define_probeAllowMoveCommend_tag 8 |
||||
|
#define PV_struct_define_robotAllowMoveCommend_tag 9 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define PV_struct_define_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RunMode, 1) \ |
||||
|
X(a, STATIC, SINGULAR, DOUBLE, RobotSpeed, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, pushRodSpeed, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, FrontEndRotationSpeed, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, robotMoveDir, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, obstacle_avoidance, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, warningLight, 7) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, probeAllowMoveCommend, 8) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, robotAllowMoveCommend, 9) |
||||
|
#define PV_struct_define_CALLBACK NULL |
||||
|
#define PV_struct_define_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t PV_struct_define_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define PV_struct_define_fields &PV_struct_define_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define BSP_PV_PB_H_MAX_SIZE PV_struct_define_size |
||||
|
#define PV_struct_define_size 97 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,12 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "bsp_ReCmd.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(ReCmd, ReCmd, 2) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,80 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_BSP_RECMD_PB_H_INCLUDED |
||||
|
#define PB_BSP_RECMD_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
/* this message is used for the reply the command */ |
||||
|
typedef struct _ReCmd { |
||||
|
int32_t CommadNum; |
||||
|
/* 定义 1 上位机获取默认CV值
|
||||
|
定义 2 下位机返回CV值 |
||||
|
定义 3 上位机设定CV值 |
||||
|
定义 4 上位机设定Trace等级值,无返回 |
||||
|
定义 5 下位机上传位置点数据 |
||||
|
定义 6 上位机设定编码器角度值为0 |
||||
|
定义 7 上位机获取拟合点 |
||||
|
定义 8 上位机获取位置点 |
||||
|
定义 9 上位机向下位机下发程序 此时,Parameter0 下发的程序起始位,Parameter0 是校验位 |
||||
|
Buff_Data_Length 是下发的字节数, */ |
||||
|
int32_t Parameter0; |
||||
|
int32_t Parameter1; |
||||
|
int32_t Parameter2; |
||||
|
int32_t Parameter3; |
||||
|
int32_t Parameter4; |
||||
|
int32_t Buff_Data_Length; |
||||
|
pb_byte_t Buff_Data[512]; |
||||
|
} ReCmd; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define ReCmd_init_default {0, 0, 0, 0, 0, 0, 0, {0}} |
||||
|
#define ReCmd_init_zero {0, 0, 0, 0, 0, 0, 0, {0}} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define ReCmd_CommadNum_tag 1 |
||||
|
#define ReCmd_Parameter0_tag 2 |
||||
|
#define ReCmd_Parameter1_tag 3 |
||||
|
#define ReCmd_Parameter2_tag 4 |
||||
|
#define ReCmd_Parameter3_tag 5 |
||||
|
#define ReCmd_Parameter4_tag 6 |
||||
|
#define ReCmd_Buff_Data_Length_tag 7 |
||||
|
#define ReCmd_Buff_Data_tag 8 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define ReCmd_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CommadNum, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Parameter0, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Parameter1, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Parameter2, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Parameter3, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Parameter4, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Buff_Data_Length, 7) \ |
||||
|
X(a, STATIC, SINGULAR, FIXED_LENGTH_BYTES, Buff_Data, 8) |
||||
|
#define ReCmd_CALLBACK NULL |
||||
|
#define ReCmd_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t ReCmd_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define ReCmd_fields &ReCmd_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define BSP_RECMD_PB_H_MAX_SIZE ReCmd_size |
||||
|
#define ReCmd_size 592 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,12 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "msp_DAM.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(DAMChannelStatus_t, DAMChannelStatus_t, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,69 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_MSP_DAM_PB_H_INCLUDED |
||||
|
#define PB_MSP_DAM_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _DAMChannelStatus_t { |
||||
|
int32_t ch1; |
||||
|
int32_t ch2; |
||||
|
int32_t ch3; |
||||
|
int32_t ch4; |
||||
|
int32_t ch5; |
||||
|
int32_t ch6; |
||||
|
int32_t ch7; |
||||
|
int32_t ch8; |
||||
|
} __attribute__((packed)) DAMChannelStatus_t; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define DAMChannelStatus_t_init_default {0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
#define DAMChannelStatus_t_init_zero {0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define DAMChannelStatus_t_ch1_tag 1 |
||||
|
#define DAMChannelStatus_t_ch2_tag 2 |
||||
|
#define DAMChannelStatus_t_ch3_tag 3 |
||||
|
#define DAMChannelStatus_t_ch4_tag 4 |
||||
|
#define DAMChannelStatus_t_ch5_tag 5 |
||||
|
#define DAMChannelStatus_t_ch6_tag 6 |
||||
|
#define DAMChannelStatus_t_ch7_tag 7 |
||||
|
#define DAMChannelStatus_t_ch8_tag 8 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define DAMChannelStatus_t_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, ch1, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, ch2, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, ch3, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, ch4, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, ch5, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, ch6, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, ch7, 7) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, ch8, 8) |
||||
|
#define DAMChannelStatus_t_CALLBACK NULL |
||||
|
#define DAMChannelStatus_t_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t DAMChannelStatus_t_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define DAMChannelStatus_t_fields &DAMChannelStatus_t_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define DAMChannelStatus_t_size 88 |
||||
|
#define MSP_DAM_PB_H_MAX_SIZE DAMChannelStatus_t_size |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,20 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "msp_INS_MotorParameters.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(INS_MotorParameters, INS_MotorParameters, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
|
#ifndef PB_CONVERT_DOUBLE_FLOAT |
||||
|
/* On some platforms (such as AVR), double is really float.
|
||||
|
* To be able to encode/decode double on these platforms, you need. |
||||
|
* to define PB_CONVERT_DOUBLE_FLOAT in pb.h or compiler command line. |
||||
|
*/ |
||||
|
PB_STATIC_ASSERT(sizeof(double) == 8, DOUBLE_MUST_BE_8_BYTES) |
||||
|
#endif |
||||
|
|
||||
@ -0,0 +1,84 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_MSP_INS_MOTORPARAMETERS_PB_H_INCLUDED |
||||
|
#define PB_MSP_INS_MOTORPARAMETERS_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _INS_MotorParameters { |
||||
|
int32_t MotorID; |
||||
|
int32_t Real_Current; |
||||
|
int32_t Target_Current; /* 0.1rpm */ |
||||
|
int32_t Real_Velcity; /* 0.1rpm */ |
||||
|
int32_t Target_Velcity; /* 0.1rpm */ |
||||
|
int32_t Target_Position; /* 0.1rpm */ |
||||
|
int32_t Real_Position; |
||||
|
int32_t Motor_Fault; |
||||
|
int32_t Number_Of_Rounds; |
||||
|
int32_t Start_Measuring_Position; |
||||
|
int32_t Last_Real_Position; |
||||
|
double Real_Disatnce; |
||||
|
int32_t Start_Measuring; /* 开始测距 */ |
||||
|
} INS_MotorParameters; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define INS_MotorParameters_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
#define INS_MotorParameters_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define INS_MotorParameters_MotorID_tag 1 |
||||
|
#define INS_MotorParameters_Real_Current_tag 2 |
||||
|
#define INS_MotorParameters_Target_Current_tag 3 |
||||
|
#define INS_MotorParameters_Real_Velcity_tag 4 |
||||
|
#define INS_MotorParameters_Target_Velcity_tag 5 |
||||
|
#define INS_MotorParameters_Target_Position_tag 6 |
||||
|
#define INS_MotorParameters_Real_Position_tag 7 |
||||
|
#define INS_MotorParameters_Motor_Fault_tag 8 |
||||
|
#define INS_MotorParameters_Number_Of_Rounds_tag 9 |
||||
|
#define INS_MotorParameters_Start_Measuring_Position_tag 10 |
||||
|
#define INS_MotorParameters_Last_Real_Position_tag 11 |
||||
|
#define INS_MotorParameters_Real_Disatnce_tag 12 |
||||
|
#define INS_MotorParameters_Start_Measuring_tag 13 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define INS_MotorParameters_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, MotorID, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Real_Current, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Target_Current, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Real_Velcity, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Target_Velcity, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Target_Position, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Real_Position, 7) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Motor_Fault, 8) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Number_Of_Rounds, 9) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Start_Measuring_Position, 10) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Last_Real_Position, 11) \ |
||||
|
X(a, STATIC, SINGULAR, DOUBLE, Real_Disatnce, 12) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Start_Measuring, 13) |
||||
|
#define INS_MotorParameters_CALLBACK NULL |
||||
|
#define INS_MotorParameters_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t INS_MotorParameters_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define INS_MotorParameters_fields &INS_MotorParameters_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define INS_MotorParameters_size 141 |
||||
|
#define MSP_INS_MOTORPARAMETERS_PB_H_MAX_SIZE INS_MotorParameters_size |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,12 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "msp_LGUB500.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(LGUB500_struct_define, LGUB500_struct_define, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,51 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_MSP_LGUB500_PB_H_INCLUDED |
||||
|
#define PB_MSP_LGUB500_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _LGUB500_struct_define { |
||||
|
int32_t LGUB500_1_Distance_mm; |
||||
|
int32_t LGUB500_2_Distance_mm; |
||||
|
} LGUB500_struct_define; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define LGUB500_struct_define_init_default {0, 0} |
||||
|
#define LGUB500_struct_define_init_zero {0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define LGUB500_struct_define_LGUB500_1_Distance_mm_tag 1 |
||||
|
#define LGUB500_struct_define_LGUB500_2_Distance_mm_tag 2 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define LGUB500_struct_define_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, LGUB500_1_Distance_mm, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, LGUB500_2_Distance_mm, 2) |
||||
|
#define LGUB500_struct_define_CALLBACK NULL |
||||
|
#define LGUB500_struct_define_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t LGUB500_struct_define_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define LGUB500_struct_define_fields &LGUB500_struct_define_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define LGUB500_struct_define_size 22 |
||||
|
#define MSP_LGUB500_PB_H_MAX_SIZE LGUB500_struct_define_size |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,12 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "msp_Motor.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(MotorParameters, MotorParameters, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,91 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_MSP_MOTOR_PB_H_INCLUDED |
||||
|
#define PB_MSP_MOTOR_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _MotorParameters { |
||||
|
int32_t MotorID; |
||||
|
int32_t RxIndex; |
||||
|
int32_t Run_Mode; |
||||
|
int32_t Current; |
||||
|
int32_t Target_Current; |
||||
|
int32_t Velcity; |
||||
|
int32_t Target_Velcity; |
||||
|
int32_t Position; |
||||
|
int32_t Target_Position; |
||||
|
int32_t ERROR_Flag; |
||||
|
int32_t Temperature_Motor; |
||||
|
int32_t Temperature_PCB; |
||||
|
int32_t AccTime; |
||||
|
int32_t DecTime; |
||||
|
int32_t EncoderOffset; /* 53 83 设置位置偏移 int32_t "设置偏移值和目标位置
|
||||
|
(目标位置=编码器位置 - 偏移值)" */ |
||||
|
} MotorParameters; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define MotorParameters_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
#define MotorParameters_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define MotorParameters_MotorID_tag 1 |
||||
|
#define MotorParameters_RxIndex_tag 2 |
||||
|
#define MotorParameters_Run_Mode_tag 3 |
||||
|
#define MotorParameters_Current_tag 4 |
||||
|
#define MotorParameters_Target_Current_tag 5 |
||||
|
#define MotorParameters_Velcity_tag 6 |
||||
|
#define MotorParameters_Target_Velcity_tag 7 |
||||
|
#define MotorParameters_Position_tag 8 |
||||
|
#define MotorParameters_Target_Position_tag 9 |
||||
|
#define MotorParameters_ERROR_Flag_tag 10 |
||||
|
#define MotorParameters_Temperature_Motor_tag 11 |
||||
|
#define MotorParameters_Temperature_PCB_tag 12 |
||||
|
#define MotorParameters_AccTime_tag 13 |
||||
|
#define MotorParameters_DecTime_tag 14 |
||||
|
#define MotorParameters_EncoderOffset_tag 15 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define MotorParameters_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, MotorID, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RxIndex, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Run_Mode, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Current, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Target_Current, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Velcity, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Target_Velcity, 7) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Position, 8) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Target_Position, 9) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, ERROR_Flag, 10) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Temperature_Motor, 11) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, Temperature_PCB, 12) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, AccTime, 13) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, DecTime, 14) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, EncoderOffset, 15) |
||||
|
#define MotorParameters_CALLBACK NULL |
||||
|
#define MotorParameters_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t MotorParameters_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define MotorParameters_fields &MotorParameters_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define MSP_MOTOR_PB_H_MAX_SIZE MotorParameters_size |
||||
|
#define MotorParameters_size 165 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,12 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "msp_TL720D.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(MSP_TL720DParameters, MSP_TL720DParameters, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,72 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_MSP_TL720D_PB_H_INCLUDED |
||||
|
#define PB_MSP_TL720D_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _MSP_TL720DParameters { |
||||
|
int32_t RF_Angle_Roll; /* 横滚角 */ |
||||
|
int32_t RF_Angle_Pitch; /* 俯仰角 */ |
||||
|
int32_t RF_Angle_Yaw; /* 航向角 */ |
||||
|
int32_t RF_Acc_X; /* X轴加速度 */ |
||||
|
int32_t RF_Acc_Y; /* Y轴加速度 */ |
||||
|
int32_t RF_Acc_Z; /* Z轴加速度 */ |
||||
|
int32_t RF_Gro_X; /* X轴陀螺 */ |
||||
|
int32_t RF_Gro_Y; /* Y轴陀螺 */ |
||||
|
int32_t RF_Gro_Z; /* Z轴陀螺 */ |
||||
|
} MSP_TL720DParameters; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define MSP_TL720DParameters_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
#define MSP_TL720DParameters_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define MSP_TL720DParameters_RF_Angle_Roll_tag 1 |
||||
|
#define MSP_TL720DParameters_RF_Angle_Pitch_tag 2 |
||||
|
#define MSP_TL720DParameters_RF_Angle_Yaw_tag 3 |
||||
|
#define MSP_TL720DParameters_RF_Acc_X_tag 4 |
||||
|
#define MSP_TL720DParameters_RF_Acc_Y_tag 5 |
||||
|
#define MSP_TL720DParameters_RF_Acc_Z_tag 6 |
||||
|
#define MSP_TL720DParameters_RF_Gro_X_tag 7 |
||||
|
#define MSP_TL720DParameters_RF_Gro_Y_tag 8 |
||||
|
#define MSP_TL720DParameters_RF_Gro_Z_tag 9 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define MSP_TL720DParameters_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RF_Angle_Roll, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RF_Angle_Pitch, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RF_Angle_Yaw, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RF_Acc_X, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RF_Acc_Y, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RF_Acc_Z, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RF_Gro_X, 7) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RF_Gro_Y, 8) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RF_Gro_Z, 9) |
||||
|
#define MSP_TL720DParameters_CALLBACK NULL |
||||
|
#define MSP_TL720DParameters_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t MSP_TL720DParameters_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define MSP_TL720DParameters_fields &MSP_TL720DParameters_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define MSP_TL720DParameters_size 99 |
||||
|
#define MSP_TL720D_PB_H_MAX_SIZE MSP_TL720DParameters_size |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,12 @@ |
|||||
|
/* Automatically generated nanopb constant definitions */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#include "msp_U7.pb.h" |
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
PB_BIND(SP_MSP_U7_Button, SP_MSP_U7_Button, AUTO) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,99 @@ |
|||||
|
/* Automatically generated nanopb header */ |
||||
|
/* Generated by nanopb-0.4.8 */ |
||||
|
|
||||
|
#ifndef PB_MSP_U7_PB_H_INCLUDED |
||||
|
#define PB_MSP_U7_PB_H_INCLUDED |
||||
|
#include "pb.h" |
||||
|
|
||||
|
#if PB_PROTO_HEADER_VERSION != 40 |
||||
|
#error Regenerate this file with the current version of nanopb generator. |
||||
|
#endif |
||||
|
|
||||
|
/* Struct definitions */ |
||||
|
typedef struct _SP_MSP_U7_Button { |
||||
|
int32_t RxIndex; |
||||
|
int32_t CH1_LY_V; |
||||
|
int32_t CH2_LY_H; |
||||
|
int32_t CH3_RY_V; /* int32 CH3_LYS_V= 4; */ |
||||
|
int32_t CH4_RY_H; /* int32 CH4_LYS_H= 5; */ |
||||
|
int32_t CH5_SA; |
||||
|
int32_t CH6_SB; |
||||
|
int32_t CH7_M5; |
||||
|
int32_t CH8_R1; |
||||
|
int32_t CH9_M6; |
||||
|
int32_t CH10_R2; |
||||
|
int32_t CH11_L1; |
||||
|
int32_t CH12_L2; |
||||
|
int32_t CH13_M4; |
||||
|
int32_t CH14_M3; |
||||
|
int32_t CH15_M1; |
||||
|
int32_t CH16_M2; |
||||
|
int32_t IsOnline; |
||||
|
} SP_MSP_U7_Button; |
||||
|
|
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
/* Initializer values for message structs */ |
||||
|
#define SP_MSP_U7_Button_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
#define SP_MSP_U7_Button_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
||||
|
|
||||
|
/* Field tags (for use in manual encoding/decoding) */ |
||||
|
#define SP_MSP_U7_Button_RxIndex_tag 1 |
||||
|
#define SP_MSP_U7_Button_CH1_LY_V_tag 2 |
||||
|
#define SP_MSP_U7_Button_CH2_LY_H_tag 3 |
||||
|
#define SP_MSP_U7_Button_CH3_RY_V_tag 4 |
||||
|
#define SP_MSP_U7_Button_CH4_RY_H_tag 5 |
||||
|
#define SP_MSP_U7_Button_CH5_SA_tag 6 |
||||
|
#define SP_MSP_U7_Button_CH6_SB_tag 7 |
||||
|
#define SP_MSP_U7_Button_CH7_M5_tag 8 |
||||
|
#define SP_MSP_U7_Button_CH8_R1_tag 9 |
||||
|
#define SP_MSP_U7_Button_CH9_M6_tag 10 |
||||
|
#define SP_MSP_U7_Button_CH10_R2_tag 11 |
||||
|
#define SP_MSP_U7_Button_CH11_L1_tag 12 |
||||
|
#define SP_MSP_U7_Button_CH12_L2_tag 13 |
||||
|
#define SP_MSP_U7_Button_CH13_M4_tag 14 |
||||
|
#define SP_MSP_U7_Button_CH14_M3_tag 15 |
||||
|
#define SP_MSP_U7_Button_CH15_M1_tag 16 |
||||
|
#define SP_MSP_U7_Button_CH16_M2_tag 17 |
||||
|
#define SP_MSP_U7_Button_IsOnline_tag 18 |
||||
|
|
||||
|
/* Struct field encoding specification for nanopb */ |
||||
|
#define SP_MSP_U7_Button_FIELDLIST(X, a) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, RxIndex, 1) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH1_LY_V, 2) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH2_LY_H, 3) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH3_RY_V, 4) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH4_RY_H, 5) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH5_SA, 6) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH6_SB, 7) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH7_M5, 8) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH8_R1, 9) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH9_M6, 10) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH10_R2, 11) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH11_L1, 12) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH12_L2, 13) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH13_M4, 14) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH14_M3, 15) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH15_M1, 16) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, CH16_M2, 17) \ |
||||
|
X(a, STATIC, SINGULAR, INT32, IsOnline, 18) |
||||
|
#define SP_MSP_U7_Button_CALLBACK NULL |
||||
|
#define SP_MSP_U7_Button_DEFAULT NULL |
||||
|
|
||||
|
extern const pb_msgdesc_t SP_MSP_U7_Button_msg; |
||||
|
|
||||
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
||||
|
#define SP_MSP_U7_Button_fields &SP_MSP_U7_Button_msg |
||||
|
|
||||
|
/* Maximum encoded size of messages (where known) */ |
||||
|
#define MSP_U7_PB_H_MAX_SIZE SP_MSP_U7_Button_size |
||||
|
#define SP_MSP_U7_Button_size 201 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
Binary file not shown.
@ -0,0 +1,42 @@ |
|||||
|
syntax = "proto3"; |
||||
|
//import "nanopb.proto"; |
||||
|
|
||||
|
import "bsp_PV.proto"; |
||||
|
import "bsp_PID.proto"; |
||||
|
message CV_struct_define{ |
||||
|
|
||||
|
//喷漆项目 |
||||
|
|
||||
|
int32 Speed_m_per_min = 1; // MPMin = 1m/min 1米每分钟 m/min |
||||
|
|
||||
|
int32 LeftTurnSpeed = 2; |
||||
|
int32 RightTurnSpeed = 3; |
||||
|
|
||||
|
|
||||
|
|
||||
|
int32 RobotLeftAngleValue=4;// 水平左方向 单位0.01° |
||||
|
int32 RobotRightAngleValue=5;// 水平右方向角度值 单位0.01° |
||||
|
int32 RobotUpAngleValue=6;// 竖直方向角度值 单位0.01° |
||||
|
int32 RobotDownAngleValue=7;// 竖直向下角度值 单位0.01° |
||||
|
|
||||
|
int32 Robot_Permitted_Angler_Error_Value_E_2D = 8;// 作业时需用的最大角度偏差值 0.01°,超出将停止作业 |
||||
|
int32 Robot_Angle_Start_BaseE_2D = 9;//角度值 0.01° |
||||
|
int32 Lane_Change_Speed_m_per_min = 10; |
||||
|
int32 Is_Automation_Authorized = 11; |
||||
|
int32 Is_Function_Authorized = 12; |
||||
|
int32 Joy_Sticker_Angle_Allowance = 13;// 例如在90度的±30° |
||||
|
int32 Joy_Sticker_Value_Allowance = 14;//例如 joysticker的值超过600 |
||||
|
int32 Allowable_Error_For_Angle_Tracking = 15;//纠偏角度跟踪的允许误差1 度 |
||||
|
int32 Paint_Gun_Shutdown_Distance = 16;//喷枪关闭距离,喷枪关闭后多上厘米停止运行 |
||||
|
int32 Horizontal_ChangeLane_Compensation=17; //水平换道补偿距离 |
||||
|
int32 Vertical_ChangeLane_Compensation=18; //竖直换道补偿距离 |
||||
|
int32 pulse_Per_Circle=19; //每转多少脉冲 |
||||
|
int32 wheel_Reduction_Ratio=20; //减速比 |
||||
|
double wheel_Diameter_m=21; //车轮直径 m |
||||
|
PID_Parameters PID_high=22; |
||||
|
PID_Parameters PID_mid=23; |
||||
|
PID_Parameters PID_low=24; |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
@ -0,0 +1,2 @@ |
|||||
|
# lock.options |
||||
|
Cmd.Buff_Data max_size:512 fixed_length:true |
||||
@ -0,0 +1,24 @@ |
|||||
|
syntax = "proto3"; |
||||
|
//this message is used for the computer to send command |
||||
|
message Cmd{ |
||||
|
int32 CommadNum = 1; |
||||
|
//定义 1 上位机获取默认CV值 |
||||
|
//定义 2 下位机返回CV值 |
||||
|
//定义 3 上位机设定CV值 |
||||
|
//定义 4 上位机设定Trace等级值,无返回 |
||||
|
//定义 5 下位机上传位置点数据 |
||||
|
//定义 6 上位机设定编码器角度值为0 |
||||
|
//定义 7 上位机获取拟合点 |
||||
|
//定义 8 上位机获取位置点 |
||||
|
//定义 9 上位机向下位机下发程序 此时,Parameter0 下发的程序起始位,Parameter0 是校验位 |
||||
|
//Buff_Data_Length 是下发的字节数, |
||||
|
int32 Parameter0 = 2; |
||||
|
int32 Parameter1 = 3; |
||||
|
int32 Parameter2 = 4; |
||||
|
int32 Parameter3 = 5; |
||||
|
int32 Parameter4 = 6; |
||||
|
int32 Buff_Data_Length = 7; |
||||
|
bytes Buff_Data=8; |
||||
|
|
||||
|
}; |
||||
|
|
||||
@ -0,0 +1,26 @@ |
|||||
|
syntax = "proto3"; |
||||
|
|
||||
|
option java_multiple_files = false; |
||||
|
option java_package = "com.example.paintapp.models"; |
||||
|
|
||||
|
message ErrorData |
||||
|
{ |
||||
|
int32 Com_Error_Code=1; |
||||
|
int32 Left_Motor_Error_Code=2; |
||||
|
int32 Right_Motor_Error_Code=3; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
enum ComError //枚举消息类型 Error Bit Define |
||||
|
{ |
||||
|
U7_SBus = 0; |
||||
|
TL720D = 1; |
||||
|
Remote_Button_Reset_State = 2; |
||||
|
LS_485Motors3 = 3; |
||||
|
DAM_Relay_ErrorBitFlag = 4; |
||||
|
DAM_Relay_1_ErrorBitFlag = 5; |
||||
|
LGUB500_sensor = 6; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
//protoc --nanopb_out=. *.proto |
||||
@ -0,0 +1,2 @@ |
|||||
|
# lock.options |
||||
|
GV_struct_define.Motor_P max_size:50 fixed_length:true |
||||
@ -0,0 +1,38 @@ |
|||||
|
syntax = "proto3"; |
||||
|
import "msp_U7.proto"; |
||||
|
import "msp_Motor.proto"; |
||||
|
import "msp_INS_MotorParameters.proto"; |
||||
|
import "msp_TL720D.proto"; |
||||
|
import "bsp_Error.proto"; |
||||
|
import "bsp_PV.proto"; |
||||
|
import "bsp_IO.proto"; |
||||
|
import "msp_DAM.proto"; |
||||
|
import "msp_LGUB500.proto"; |
||||
|
|
||||
|
message GV_struct_define |
||||
|
{ |
||||
|
int32 TempatureE_2C= 1; // E_2C=0.01 Celsius 0.01摄氏度 |
||||
|
int32 Left_Compensation= 2; // E_2D =0.01 Degree 0.01度 |
||||
|
int32 Right_Compensation= 3; //0.01度 |
||||
|
int32 Robot_Angle=4; //机器人角度 //0.01度 |
||||
|
double Robot_Move_Speed= 5; // 0.1rpm |
||||
|
int32 ForceValue= 6; |
||||
|
int32 LaneChangeDistance= 7; |
||||
|
SP_MSP_U7_Button U7_Key=9; |
||||
|
INS_MotorParameters ALLMotor=10;//左电机 ID2 |
||||
|
MSP_TL720DParameters TL720DParameters= 12; |
||||
|
IO_Data IO=13; |
||||
|
ErrorData SystemErrorData=14; |
||||
|
PV_struct_define PV =15;//用户配置数据 |
||||
|
int32 Lighting_Control = 16;//灯光控制 |
||||
|
|
||||
|
DAMChannelStatus_t DAM_CH = 17; //DAM通道 |
||||
|
int32 slideTableSpeed = 18; //滑台速度 |
||||
|
int32 pushRobSpeed = 19; //推杆速度 |
||||
|
LGUB500_struct_define safety_distance = 20; //超声波探测距离 |
||||
|
int32 isProbeAllowMoveCheck = 21; |
||||
|
int32 isRobotAllowMoveCheck = 22; |
||||
|
|
||||
|
}; |
||||
|
|
||||
|
//protoc --nanopb_out=. *.proto |
||||
@ -0,0 +1,2 @@ |
|||||
|
# lock.options |
||||
|
# IAP_struct_define.Buff_Data max_size:64 fixed_length:true |
||||
@ -0,0 +1,11 @@ |
|||||
|
syntax = "proto3"; |
||||
|
//IAP,即In Application Programming,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写。 |
||||
|
message IAP_struct_define |
||||
|
{ |
||||
|
int32 Total_Bytes = 1;// all the received data; |
||||
|
int32 NextCodeVrsion = 2;//the New upgrade Version of the Project |
||||
|
int32 UtcTime=3;//Udgrade Time |
||||
|
int32 UpgradeSucceeded=4;// |
||||
|
|
||||
|
}; |
||||
|
|
||||
@ -0,0 +1,19 @@ |
|||||
|
syntax = "proto3"; |
||||
|
|
||||
|
message IO_Data |
||||
|
{ |
||||
|
int32 DO0=1; |
||||
|
int32 DO1=2; |
||||
|
int32 DO2=3; |
||||
|
int32 DO3=4; |
||||
|
int32 DO4=5; |
||||
|
int32 DO5=6; |
||||
|
int32 DI0=7; |
||||
|
int32 DI1=8; |
||||
|
int32 DI2=9; |
||||
|
int32 DI3=10; |
||||
|
int32 DI4=11; |
||||
|
int32 DI5=12; |
||||
|
}; |
||||
|
|
||||
|
//protoc --nanopb_out=. *.proto |
||||
@ -0,0 +1,23 @@ |
|||||
|
syntax = "proto3"; |
||||
|
|
||||
|
option java_multiple_files = false; |
||||
|
option java_package = "com.example.paintapp.models"; |
||||
|
|
||||
|
|
||||
|
message IV_struct_define |
||||
|
{ |
||||
|
int32 CurrentAngle= 1; //单位0.01° |
||||
|
int32 RobotMoveSpeed= 2; //单位m/min 机器人移动速度 |
||||
|
int32 SBUS_State=3; //0断开 1连接 |
||||
|
int32 SystemError=4; //硬件通讯错误及按键未初始化错误 |
||||
|
int32 DAM_CH1 = 5; // DAM通道状态 |
||||
|
int32 DAM_CH2 = 6; |
||||
|
int32 DAM_CH3 = 7; |
||||
|
int32 DAM_CH4 = 8; |
||||
|
int32 DAM_CH5 = 9; |
||||
|
int32 DAM_CH6 = 10; |
||||
|
int32 DAM_CH7 = 11; |
||||
|
int32 DAM_CH8 = 12; |
||||
|
int32 probeAllowMoveCheck = 13; //升降杆允许运动查询 |
||||
|
int32 robotAllowMoveCheck = 14; //机器人允许运动查询 |
||||
|
}; |
||||
@ -0,0 +1,9 @@ |
|||||
|
syntax = "proto3"; |
||||
|
|
||||
|
message PID_Parameters { |
||||
|
int32 PID_Angle=1; //调整 单位0.01° 配置时需要*100 |
||||
|
double Kp=2; //PID参数 |
||||
|
double Ki=3; |
||||
|
double Kd=4; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
syntax = "proto3"; |
||||
|
option java_multiple_files = false; |
||||
|
option java_package = "com.example.paintapp.models"; |
||||
|
message PV_struct_define{ |
||||
|
|
||||
|
// 绝缘子检测项目 |
||||
|
int32 RunMode = 1; //1 手动无校准作业 2 手动校准 |
||||
|
double RobotSpeed = 2; //车体速度 |
||||
|
int32 pushRodSpeed = 3; //推杆速度 |
||||
|
int32 FrontEndRotationSpeed = 4; //前端旋转速度 |
||||
|
int32 robotMoveDir = 5; //机器人直线运动方向 |
||||
|
int32 obstacle_avoidance = 6; //避障开关 |
||||
|
int32 warningLight = 7; //警示灯开关 |
||||
|
int32 probeAllowMoveCommend = 8; //推杆允许运动命令 |
||||
|
int32 robotAllowMoveCommend = 9; //机器人允许运动命令 |
||||
|
|
||||
|
}; |
||||
@ -0,0 +1,2 @@ |
|||||
|
# lock.options |
||||
|
ReCmd.Buff_Data max_size:512 fixed_length:true |
||||
@ -0,0 +1,24 @@ |
|||||
|
syntax = "proto3"; |
||||
|
//this message is used for the reply the command |
||||
|
message ReCmd{ |
||||
|
int32 CommadNum = 1; |
||||
|
//定义 1 上位机获取默认CV值 |
||||
|
//定义 2 下位机返回CV值 |
||||
|
//定义 3 上位机设定CV值 |
||||
|
//定义 4 上位机设定Trace等级值,无返回 |
||||
|
//定义 5 下位机上传位置点数据 |
||||
|
//定义 6 上位机设定编码器角度值为0 |
||||
|
//定义 7 上位机获取拟合点 |
||||
|
//定义 8 上位机获取位置点 |
||||
|
//定义 9 上位机向下位机下发程序 此时,Parameter0 下发的程序起始位,Parameter0 是校验位 |
||||
|
//Buff_Data_Length 是下发的字节数, |
||||
|
int32 Parameter0 = 2; |
||||
|
int32 Parameter1 = 3; |
||||
|
int32 Parameter2 = 4; |
||||
|
int32 Parameter3 = 5; |
||||
|
int32 Parameter4 = 6; |
||||
|
int32 Buff_Data_Length = 7; |
||||
|
bytes Buff_Data=8; |
||||
|
|
||||
|
}; |
||||
|
|
||||
@ -0,0 +1,16 @@ |
|||||
|
syntax = "proto3"; |
||||
|
|
||||
|
option java_multiple_files = false; |
||||
|
option java_package = "com.example.paintapp.models"; |
||||
|
|
||||
|
message DAMChannelStatus_t |
||||
|
{ |
||||
|
int32 ch1 = 1; |
||||
|
int32 ch2 = 2; |
||||
|
int32 ch3 = 3; |
||||
|
int32 ch4 = 4; |
||||
|
int32 ch5 = 5; |
||||
|
int32 ch6 = 6; |
||||
|
int32 ch7 = 7; |
||||
|
int32 ch8 = 8; |
||||
|
}; |
||||
@ -0,0 +1,19 @@ |
|||||
|
syntax = "proto3"; |
||||
|
|
||||
|
message INS_MotorParameters { |
||||
|
int32 MotorID=1; |
||||
|
int32 Real_Current=2; |
||||
|
int32 Target_Current=3; // 0.1rpm |
||||
|
int32 Real_Velcity=4; // 0.1rpm |
||||
|
int32 Target_Velcity=5; // 0.1rpm |
||||
|
int32 Target_Position=6; // 0.1rpm |
||||
|
int32 Real_Position=7; |
||||
|
int32 Motor_Fault=8; |
||||
|
int32 Number_Of_Rounds=9; |
||||
|
int32 Start_Measuring_Position=10; |
||||
|
int32 Last_Real_Position=11; |
||||
|
double Real_Disatnce=12; |
||||
|
int32 Start_Measuring=13;//开始测距 |
||||
|
|
||||
|
} |
||||
|
|
||||
@ -0,0 +1,10 @@ |
|||||
|
syntax = "proto3"; |
||||
|
|
||||
|
|
||||
|
|
||||
|
message LGUB500_struct_define{ |
||||
|
|
||||
|
int32 LGUB500_1_Distance_mm = 1; |
||||
|
int32 LGUB500_2_Distance_mm = 2; |
||||
|
|
||||
|
}; |
||||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue