534 changed files with 179258 additions and 0 deletions
@ -0,0 +1,178 @@ |
|||
<?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.2058874880"> |
|||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.2058874880" 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.2058874880" 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.2058874880." name="/" resourcePath=""> |
|||
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug.370809022" 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.958359907" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32G431CBUx" valueType="string"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.37453374" 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.639828177" 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.1500894733" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv4-sp-d16" valueType="enumerated"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.347346441" 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.1120020505" 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.440816797" 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 || STM32G431CBUx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Include | ../Drivers/CMSIS/Device/ST/STM32G4xx/Include | ../Core/Inc | ../Drivers/STM32G4xx_HAL_Driver/Inc || || || STM32G431xx | USE_HAL_DRIVER || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32G431CBUX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || " valueType="string"/> |
|||
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1961792720" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="160" valueType="string"/> |
|||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.568195547" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> |
|||
<builder buildPath="${workspace_loc:/G431guoyafangdian}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1184176115" 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.1481718938" 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.1371114386" 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.1003891109" 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.641878659" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/> |
|||
</tool> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1225273068" 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.670525589" 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.1892496899" 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.1956110615" 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="STM32G431xx"/> |
|||
</option> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.1545659239" 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/STM32G4xx_HAL_Driver/Inc"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32G4xx/Include"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/> |
|||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Core/Protobuf/PSource}""/> |
|||
</option> |
|||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1975401070" 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.1467238709" 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.820218496" 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.1810842030" 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.363979037" 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.736030414" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32G431CBUX_FLASH.ld}" valueType="string"/> |
|||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.520037540" 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.611590508" 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.1803747386" 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.1919447033" 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.227998204" 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.861682025" 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.306736993" 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.1722863060" 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.2088672543" 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.1540554938" 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="Drivers"/> |
|||
</sourceEntries> |
|||
</configuration> |
|||
</storageModule> |
|||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> |
|||
</cconfiguration> |
|||
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.886707628"> |
|||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.886707628" 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.886707628" 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.886707628." name="/" resourcePath=""> |
|||
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.1361235003" 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.631297356" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32G431CBUx" valueType="string"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1929349193" 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.44487912" 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.383731320" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv4-sp-d16" valueType="enumerated"/> |
|||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.1815113458" 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.2128882734" 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.1003806875" 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 || STM32G431CBUx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Include | ../Drivers/CMSIS/Device/ST/STM32G4xx/Include | ../Core/Inc | ../Drivers/STM32G4xx_HAL_Driver/Inc || || || STM32G431xx | USE_HAL_DRIVER || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32G431CBUX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || " valueType="string"/> |
|||
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1693925377" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="160" valueType="string"/> |
|||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1953040561" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/> |
|||
<builder buildPath="${workspace_loc:/G431guoyafangdian}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.194278093" managedBuildOn="true" name="Gnu Make Builder.Release" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.927803651" 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.60727807" 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.2106447284" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/> |
|||
</tool> |
|||
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.553955207" 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.1507005044" 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.1640210108" 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.1756857945" 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="STM32G431xx"/> |
|||
</option> |
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.2005163504" 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/STM32G4xx_HAL_Driver/Inc"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32G4xx/Include"/> |
|||
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/> |
|||
</option> |
|||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1036252776" 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.2076776187" 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.2057021309" 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.1143939688" 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.988597479" 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.334765554" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32G431CBUX_FLASH.ld}" valueType="string"/> |
|||
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.596521189" 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.2041747446" 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.301901981" 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.2064517400" 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.179864426" 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.2005628021" 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.99578976" 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.1973177336" 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.199050472" 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.1919249177" 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="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="G431guoyafangdian.null.1609334132" name="G431guoyafangdian"/> |
|||
</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.debug.2058874880;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.2058874880.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1225273068;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1975401070"> |
|||
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/> |
|||
</scannerConfigBuildInfo> |
|||
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.886707628;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.886707628.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.553955207;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1036252776"> |
|||
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/> |
|||
</scannerConfigBuildInfo> |
|||
</storageModule> |
|||
<storageModule moduleId="refreshScope"/> |
|||
</cproject> |
|||
@ -0,0 +1,33 @@ |
|||
[PreviousLibFiles] |
|||
LibFiles=Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_def.h;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ramfunc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_tim.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_tim_ex.h;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim_ex.c;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_uart_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_def.h;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_rcc_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_flash_ramfunc.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_gpio_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_exti.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_dma_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_pwr_ex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_cortex.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_tim.h;Drivers\STM32G4xx_HAL_Driver\Inc\stm32g4xx_hal_tim_ex.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g431xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Include\system_stm32g4xx.h;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_armclang_ltm.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv81mml.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm35p.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; |
|||
|
|||
[PreviousUsedCubeIDEFiles] |
|||
SourceFiles=Core\Src\main.c;Core\Src\gpio.c;Core\Src\dma.c;Core\Src\usart.c;Core\Src\tim.c;Core\Src\stm32g4xx_it.c;Core\Src\stm32g4xx_hal_msp.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim_ex.c;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Core\Src\system_stm32g4xx.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_uart_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_rcc_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_flash_ramfunc.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_gpio.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_exti.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_dma_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_pwr_ex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_cortex.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim.c;Drivers\STM32G4xx_HAL_Driver\Src\stm32g4xx_hal_tim_ex.c;Drivers\CMSIS\Device\ST\STM32G4xx\Source\Templates\system_stm32g4xx.c;Core\Src\system_stm32g4xx.c;;; |
|||
HeaderPath=Drivers\STM32G4xx_HAL_Driver\Inc;Drivers\STM32G4xx_HAL_Driver\Inc\Legacy;Drivers\CMSIS\Device\ST\STM32G4xx\Include;Drivers\CMSIS\Include;Core\Inc; |
|||
CDefines=USE_HAL_DRIVER;STM32G431xx;USE_HAL_DRIVER;USE_HAL_DRIVER; |
|||
|
|||
[PreviousGenFiles] |
|||
AdvancedFolderStructure=true |
|||
HeaderFileListSize=7 |
|||
HeaderFiles#0=..\Core\Inc\gpio.h |
|||
HeaderFiles#1=..\Core\Inc\dma.h |
|||
HeaderFiles#2=..\Core\Inc\usart.h |
|||
HeaderFiles#3=..\Core\Inc\tim.h |
|||
HeaderFiles#4=..\Core\Inc\stm32g4xx_it.h |
|||
HeaderFiles#5=..\Core\Inc\stm32g4xx_hal_conf.h |
|||
HeaderFiles#6=..\Core\Inc\main.h |
|||
HeaderFolderListSize=1 |
|||
HeaderPath#0=..\Core\Inc |
|||
HeaderFiles=; |
|||
SourceFileListSize=7 |
|||
SourceFiles#0=..\Core\Src\gpio.c |
|||
SourceFiles#1=..\Core\Src\dma.c |
|||
SourceFiles#2=..\Core\Src\usart.c |
|||
SourceFiles#3=..\Core\Src\tim.c |
|||
SourceFiles#4=..\Core\Src\stm32g4xx_it.c |
|||
SourceFiles#5=..\Core\Src\stm32g4xx_hal_msp.c |
|||
SourceFiles#6=..\Core\Src\main.c |
|||
SourceFolderListSize=1 |
|||
SourcePath#0=..\Core\Src |
|||
SourceFiles=; |
|||
|
|||
@ -0,0 +1,32 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<projectDescription> |
|||
<name>G431wuhanligong</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,26 @@ |
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
|||
<project> |
|||
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.2058874880" 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="1181501815482018194" 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.886707628" 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 copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/> |
|||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1181501815482018194" 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,4 @@ |
|||
66BE74F758C12D739921AEA421D593D3=1 |
|||
8DF89ED150041C4CBC7CB9A9CAA90856=625192BC9E8B4026FD01365E221F2874 |
|||
DC22A860405A8BF2F2C095E5B6529F12=625192BC9E8B4026FD01365E221F2874 |
|||
eclipse.preferences.version=1 |
|||
@ -0,0 +1,170 @@ |
|||
/*
|
|||
* BHBF_ROBOT.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_BHBF_ROBOT_H_ |
|||
#define INC_BHBF_ROBOT_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
|
|||
#include "bsp_PV.pb.h" |
|||
#include "bsp_MB_host.h" |
|||
#include "bsp_UART.h" |
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
#include <stdlib.h> |
|||
#include <assert.h> |
|||
|
|||
#include "BHBF_ROBOT.h" |
|||
|
|||
#include "pb.h" |
|||
#include "pb_decode.h" |
|||
#include "pb_encode.h" |
|||
|
|||
#include "bsp_pb_decode_encode.h" |
|||
|
|||
#include "msp_Steering_Engine.h" |
|||
|
|||
#include "msp_fashion_star_uart_servo.h" |
|||
|
|||
#include <stdio.h> |
|||
#include <stdbool.h> |
|||
#include <stdlib.h> |
|||
|
|||
#include "msp_MK32_1.h" |
|||
|
|||
#include "bsp_include.h" |
|||
|
|||
#include "bsp_IV.pb.h" |
|||
|
|||
#include"bsp_com_helper.h" |
|||
|
|||
//#include "robot_state.h"
|
|||
//FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 896K
|
|||
//#define VECT_TAB_OFFSET 0x00020000U
|
|||
|
|||
//关键全局变量定义:GV、CV、PV
|
|||
//其他变量定义:X1_X2_X3_X4
|
|||
//X1:变量类型
|
|||
//X2:所属层级 GL、MSP、BSP
|
|||
//X3:所属模块
|
|||
//X4:名称
|
|||
|
|||
//全局变量定义 X1=V
|
|||
//宏定义 X1=DF
|
|||
//结构体类型声明 X1=SP
|
|||
//结构体定义 X1=ST
|
|||
//指针类型定义 X1=P
|
|||
//全局函数定义 X1=GF
|
|||
//内部函数定义 X1为空,不要下划线,X2开头
|
|||
//函数参数定义、函数局部变量定义 X1为空,下划线开头
|
|||
|
|||
|
|||
#define DLTViewer 1 |
|||
|
|||
|
|||
bool CompareTimer_Delay(int32_t Delay); |
|||
|
|||
|
|||
|
|||
|
|||
extern GV_struct_define GV; |
|||
//extern PV_struct_define PV;
|
|||
extern IV_struct_define IV; |
|||
extern CV_struct_define CV; |
|||
|
|||
|
|||
|
|||
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
|
|||
bool CompareTimer(int32_t DelayMiliSeconds,Sys_timer_handler * timer_handler); |
|||
void SystemTimer_Intialize(); |
|||
void GF_Timer_Count(); |
|||
void GF_Robot_Init(void); |
|||
void GF_Robot_MainLoop(void); |
|||
void GF_WatchDog_Loop(void); |
|||
|
|||
|
|||
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 MotorParameters *Motor[7]; |
|||
extern int32_t *Motor_ID_Errors[7]; |
|||
extern int32_t* SystemErrorCode; |
|||
extern ErrorData* SystemErrorData; |
|||
//Error Bit Define
|
|||
|
|||
#define AngleEncoderErrorBitFlag 0 |
|||
#define DAM_Relay_ErrorBitFlag 1 |
|||
#define DH_CAN_Remote_Controller_1E4 2 |
|||
#define DH_CAN_Remote_Controller_2E4 3 |
|||
#define DH_Remote 4 |
|||
#define force_sensor 5 |
|||
#define LeiSai_ISV2CAN 6 |
|||
#define mk32_sbus 7 |
|||
#define steering_engine 8 |
|||
#define Weld_seam_Tracking 9 |
|||
|
|||
#define Ti5_1 11 |
|||
#define Ti5_2 12 |
|||
#define Ti5_3 13 |
|||
#define Ti5_4 14 |
|||
#define Ti5_5 15 |
|||
#define Ti5_6 16 |
|||
|
|||
#define TL720D 17 |
|||
|
|||
|
|||
#define ZQ_CAN_ID1_LeftMotor 18 |
|||
#define ZQ_CAN_ID2_RightMotor 19 |
|||
#define ZQ_CAN_ID3_SwingMotor 20 |
|||
#define wire_sensor 21 |
|||
|
|||
#define DHRougheningController 22 |
|||
#define DAM040D_Relay_ErrorBitFlag 23 |
|||
|
|||
#define DMAKE_1 24 |
|||
#define DMAKE_2 25 |
|||
#define DMAKE_3 26 |
|||
|
|||
#define KeLaiFen485 27 |
|||
#define KeLaiFenCAN 28 |
|||
|
|||
#define LD150 29 |
|||
|
|||
#define mfog40_gyroscope 30 |
|||
|
|||
#define uwb_linkpg 30 |
|||
|
|||
#define KS206_sensor 31 |
|||
|
|||
#define Cmcu_Sensor 32 |
|||
|
|||
|
|||
extern TT_MotorParameters* TT_Motor[4]; |
|||
|
|||
|
|||
|
|||
|
|||
#endif /* INC_BHBF_ROBOT_H_ */ |
|||
@ -0,0 +1,62 @@ |
|||
/*
|
|||
* fsm.h |
|||
* |
|||
* Created on: Oct 18, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_FSM_H_ |
|||
#define INC_FSM_H_ |
|||
#include "stdint.h" |
|||
|
|||
#define AUTO_MODE -1000 |
|||
#define MANUAL_MODE 0 |
|||
#define HOME_MODE 1000 |
|||
#define AUTO_SWIGN 1000 |
|||
#define AUTO_TILT -1000 |
|||
|
|||
typedef enum _MoveSTATE_t |
|||
{ |
|||
Move_HALT=0, |
|||
Manual_State, |
|||
Auto_Back_State, |
|||
} MoveSTATE_t; |
|||
|
|||
//设置 换道距离和设置后退距离
|
|||
typedef enum _SetSTATE_t |
|||
{ |
|||
OtherMode=0, |
|||
SetLaneChangeDistance, |
|||
SetBackwardsDistance, |
|||
} SetSTATE_t; |
|||
|
|||
typedef enum _SwingSTATE_t |
|||
{ |
|||
SwingHALT = 0, |
|||
SwingAuto, |
|||
SwingManual, |
|||
SwingHome, |
|||
} SwingSTATE_t; |
|||
|
|||
typedef enum _TiltSTATE_t |
|||
{ |
|||
TiltHALT = 0, |
|||
TiltAuto, |
|||
TiltManual, |
|||
TiltHome |
|||
} TiltSTATE_t; |
|||
|
|||
|
|||
|
|||
typedef struct _transition_t |
|||
{ |
|||
int State; //状态
|
|||
void (*robotRun)(void); //执行相关动作
|
|||
} transition_t; |
|||
|
|||
|
|||
extern int32_t* RobotSpeed; |
|||
extern int32_t *JontSwingSpeed; |
|||
extern int32_t *JontTiltSpeed; |
|||
void Fsm_Init(); |
|||
#endif /* INC_FSM_H_ */ |
|||
@ -0,0 +1,50 @@ |
|||
#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 //输入寄存器
|
|||
#include "bsp_include.h" |
|||
#include "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,21 @@ |
|||
/*
|
|||
* bsp_TIMER.h |
|||
* |
|||
* Created on: Oct 26, 2023 |
|||
* Author: shiya |
|||
*/ |
|||
|
|||
#ifndef INC_BSP_TIMER_H_ |
|||
#define INC_BSP_TIMER_H_ |
|||
|
|||
#include "bsp_include.h" |
|||
|
|||
extern double Rot_current_time; |
|||
extern double Pit_current_time; |
|||
extern uint64_t cnt_2ms; |
|||
|
|||
uint8_t GF_BSP_TIMER_Init(void); |
|||
void GF_BSP_TIMER_DelayUS(uint32_t n); |
|||
|
|||
|
|||
#endif /* INC_BSP_TIMER_H_ */ |
|||
@ -0,0 +1,121 @@ |
|||
|
|||
|
|||
#ifndef INC_BSP_UART_H_ |
|||
#define INC_BSP_UART_H_ |
|||
|
|||
#include "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; |
|||
|
|||
//#define InterCall_DEBUG_UART huart4
|
|||
#define E28_SBUS_UART hlpuart1 |
|||
//#define RS485_4_UART huart7
|
|||
#define RS485_1_UART huart1 |
|||
#define RS485_2_UART huart2 |
|||
#define RS485_3_UART huart3 |
|||
|
|||
#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 send 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 Wait_Time_Count; |
|||
uint32_t SendList_time_Count; |
|||
|
|||
uint32_t SendList_Period; |
|||
uint8_t SendListExists; |
|||
|
|||
UART_HandleTypeDef* uart; //UART to use
|
|||
|
|||
UARTSendHandler *pCurrentUARTSendHadler; //这个结构体指针是用来干什么的?
|
|||
|
|||
|
|||
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; |
|||
|
|||
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
|
|||
|
|||
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,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,81 @@ |
|||
/*
|
|||
* 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; |
|||
uint16_t DispacherCallTime; |
|||
uint16_t Dispacher_Counter; |
|||
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,48 @@ |
|||
/*
|
|||
* 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 "tim.h" |
|||
#include "usart.h" |
|||
#include "gpio.h" |
|||
|
|||
#include "bsp_TIMER.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,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_Trace.pb.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,52 @@ |
|||
/* USER CODE BEGIN Header */ |
|||
/**
|
|||
****************************************************************************** |
|||
* @file dma.h |
|||
* @brief This file contains all the function prototypes for |
|||
* the dma.c file |
|||
****************************************************************************** |
|||
* @attention |
|||
* |
|||
* Copyright (c) 2025 STMicroelectronics. |
|||
* All rights reserved. |
|||
* |
|||
* This software is licensed under terms that can be found in the LICENSE file |
|||
* in the root directory of this software component. |
|||
* If no LICENSE file comes with this software, it is provided AS-IS. |
|||
* |
|||
****************************************************************************** |
|||
*/ |
|||
/* USER CODE END Header */ |
|||
/* Define to prevent recursive inclusion -------------------------------------*/ |
|||
#ifndef __DMA_H__ |
|||
#define __DMA_H__ |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Includes ------------------------------------------------------------------*/ |
|||
#include "main.h" |
|||
|
|||
/* DMA memory to memory transfer handles -------------------------------------*/ |
|||
|
|||
/* USER CODE BEGIN Includes */ |
|||
|
|||
/* USER CODE END Includes */ |
|||
|
|||
/* USER CODE BEGIN Private defines */ |
|||
|
|||
/* USER CODE END Private defines */ |
|||
|
|||
void MX_DMA_Init(void); |
|||
|
|||
/* USER CODE BEGIN Prototypes */ |
|||
|
|||
/* USER CODE END Prototypes */ |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
#endif /* __DMA_H__ */ |
|||
|
|||
@ -0,0 +1,52 @@ |
|||
/* USER CODE BEGIN Header */ |
|||
/**
|
|||
****************************************************************************** |
|||
* @file fdcan.h |
|||
* @brief This file contains all the function prototypes for |
|||
* the fdcan.c file |
|||
****************************************************************************** |
|||
* @attention |
|||
* |
|||
* Copyright (c) 2025 STMicroelectronics. |
|||
* All rights reserved. |
|||
* |
|||
* This software is licensed under terms that can be found in the LICENSE file |
|||
* in the root directory of this software component. |
|||
* If no LICENSE file comes with this software, it is provided AS-IS. |
|||
* |
|||
****************************************************************************** |
|||
*/ |
|||
/* USER CODE END Header */ |
|||
/* Define to prevent recursive inclusion -------------------------------------*/ |
|||
#ifndef __FDCAN_H__ |
|||
#define __FDCAN_H__ |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Includes ------------------------------------------------------------------*/ |
|||
#include "main.h" |
|||
|
|||
/* USER CODE BEGIN Includes */ |
|||
|
|||
/* USER CODE END Includes */ |
|||
|
|||
//extern FDCAN_HandleTypeDef hfdcan1;
|
|||
|
|||
/* USER CODE BEGIN Private defines */ |
|||
|
|||
/* USER CODE END Private defines */ |
|||
|
|||
void MX_FDCAN1_Init(void); |
|||
|
|||
/* USER CODE BEGIN Prototypes */ |
|||
|
|||
/* USER CODE END Prototypes */ |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
#endif /* __FDCAN_H__ */ |
|||
|
|||
@ -0,0 +1,49 @@ |
|||
/* USER CODE BEGIN Header */ |
|||
/**
|
|||
****************************************************************************** |
|||
* @file gpio.h |
|||
* @brief This file contains all the function prototypes for |
|||
* the gpio.c file |
|||
****************************************************************************** |
|||
* @attention |
|||
* |
|||
* Copyright (c) 2025 STMicroelectronics. |
|||
* All rights reserved. |
|||
* |
|||
* This software is licensed under terms that can be found in the LICENSE file |
|||
* in the root directory of this software component. |
|||
* If no LICENSE file comes with this software, it is provided AS-IS. |
|||
* |
|||
****************************************************************************** |
|||
*/ |
|||
/* USER CODE END Header */ |
|||
/* Define to prevent recursive inclusion -------------------------------------*/ |
|||
#ifndef __GPIO_H__ |
|||
#define __GPIO_H__ |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Includes ------------------------------------------------------------------*/ |
|||
#include "main.h" |
|||
|
|||
/* USER CODE BEGIN Includes */ |
|||
|
|||
/* USER CODE END Includes */ |
|||
|
|||
/* USER CODE BEGIN Private defines */ |
|||
|
|||
/* USER CODE END Private defines */ |
|||
|
|||
void MX_GPIO_Init(void); |
|||
|
|||
/* USER CODE BEGIN Prototypes */ |
|||
|
|||
/* USER CODE END Prototypes */ |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
#endif /*__ GPIO_H__ */ |
|||
|
|||
@ -0,0 +1,135 @@ |
|||
/* USER CODE BEGIN Header */ |
|||
/**
|
|||
****************************************************************************** |
|||
* @file : main.h |
|||
* @brief : Header for main.c file. |
|||
* This file contains the common defines of the application. |
|||
****************************************************************************** |
|||
* @attention |
|||
* |
|||
* Copyright (c) 2025 STMicroelectronics. |
|||
* All rights reserved. |
|||
* |
|||
* This software is licensed under terms that can be found in the LICENSE file |
|||
* in the root directory of this software component. |
|||
* If no LICENSE file comes with this software, it is provided AS-IS. |
|||
* |
|||
****************************************************************************** |
|||
*/ |
|||
/* USER CODE END Header */ |
|||
|
|||
/* Define to prevent recursive inclusion -------------------------------------*/ |
|||
#ifndef __MAIN_H |
|||
#define __MAIN_H |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Includes ------------------------------------------------------------------*/ |
|||
#include "stm32g4xx_hal.h" |
|||
|
|||
/* Private includes ----------------------------------------------------------*/ |
|||
/* USER CODE BEGIN Includes */ |
|||
|
|||
/* USER CODE END Includes */ |
|||
|
|||
/* Exported types ------------------------------------------------------------*/ |
|||
/* USER CODE BEGIN ET */ |
|||
|
|||
/* USER CODE END ET */ |
|||
|
|||
/* Exported constants --------------------------------------------------------*/ |
|||
/* USER CODE BEGIN EC */ |
|||
|
|||
/* USER CODE END EC */ |
|||
|
|||
/* Exported macro ------------------------------------------------------------*/ |
|||
/* USER CODE BEGIN EM */ |
|||
|
|||
/* USER CODE END EM */ |
|||
|
|||
/* Exported functions prototypes ---------------------------------------------*/ |
|||
void Error_Handler(void); |
|||
|
|||
/* USER CODE BEGIN EFP */ |
|||
|
|||
/* USER CODE END EFP */ |
|||
|
|||
/* Private defines -----------------------------------------------------------*/ |
|||
#define LED_Pin GPIO_PIN_5 |
|||
#define LED_GPIO_Port GPIOA |
|||
/* USER CODE BEGIN Private defines */ |
|||
#define IN_0_Pin GPIO_PIN_2 |
|||
#define IN_0_GPIO_Port GPIOE |
|||
#define IN_1_Pin GPIO_PIN_3 |
|||
#define IN_1_GPIO_Port GPIOE |
|||
#define IN_2_Pin GPIO_PIN_4 |
|||
#define IN_2_GPIO_Port GPIOE |
|||
#define IN_3_Pin GPIO_PIN_5 |
|||
#define IN_3_GPIO_Port GPIOE |
|||
#define IN_4_Pin GPIO_PIN_6 |
|||
#define IN_4_GPIO_Port GPIOE |
|||
#define IN_5_Pin GPIO_PIN_13 |
|||
#define IN_5_GPIO_Port GPIOC |
|||
#define S0_RESET_Pin GPIO_PIN_0 |
|||
#define S0_RESET_GPIO_Port GPIOC |
|||
#define OUT_0_Pin GPIO_PIN_2 |
|||
#define OUT_0_GPIO_Port GPIOC |
|||
#define OUT_1_Pin GPIO_PIN_3 |
|||
#define OUT_1_GPIO_Port GPIOC |
|||
#define OUT_2_Pin GPIO_PIN_0 |
|||
#define OUT_2_GPIO_Port GPIOA |
|||
#define OUT_3_Pin GPIO_PIN_3 |
|||
#define OUT_3_GPIO_Port GPIOA |
|||
#define OUT_4_Pin GPIO_PIN_4 |
|||
#define OUT_4_GPIO_Port GPIOA |
|||
#define OUT_5_Pin GPIO_PIN_5 |
|||
#define OUT_5_GPIO_Port GPIOA |
|||
#define ETH_RST_Pin GPIO_PIN_6 |
|||
#define ETH_RST_GPIO_Port GPIOA |
|||
#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 RS485_1_DIR_Pin GPIO_PIN_10 |
|||
#define RS485_1_DIR_GPIO_Port GPIOD |
|||
#define RS485_2_DIR_Pin GPIO_PIN_11 |
|||
#define RS485_2_DIR_GPIO_Port GPIOD |
|||
#define RS485_3_DIR_Pin GPIO_PIN_8 |
|||
#define RS485_3_DIR_GPIO_Port GPIOC |
|||
#define RS485_4_DIR_Pin GPIO_PIN_9 |
|||
#define RS485_4_DIR_GPIO_Port GPIOC |
|||
#define E22_RST_Pin GPIO_PIN_10 |
|||
#define E22_RST_GPIO_Port GPIOC |
|||
#define E28_M0_Pin GPIO_PIN_0 |
|||
#define E28_M0_GPIO_Port GPIOD |
|||
#define E28_M1_Pin GPIO_PIN_1 |
|||
#define E28_M1_GPIO_Port GPIOD |
|||
#define E28_M2_Pin GPIO_PIN_3 |
|||
#define E28_M2_GPIO_Port GPIOD |
|||
#define E28_AUX_Pin GPIO_PIN_4 |
|||
#define E28_AUX_GPIO_Port GPIOD |
|||
#define S0_NET_Pin GPIO_PIN_3 |
|||
#define S0_NET_GPIO_Port GPIOB |
|||
#define S0_LINKA_Pin GPIO_PIN_4 |
|||
#define S0_LINKA_GPIO_Port GPIOB |
|||
#define E22_M1_Pin GPIO_PIN_7 |
|||
#define E22_M1_GPIO_Port GPIOB |
|||
#define E22_M0_Pin GPIO_PIN_0 |
|||
#define E22_M0_GPIO_Port GPIOE |
|||
#define E22_AUX_Pin GPIO_PIN_1 |
|||
#define E22_AUX_GPIO_Port GPIOE |
|||
#define hlpuart1Exit 1 |
|||
|
|||
#define NewCANSendVersion 1 |
|||
|
|||
/* USER CODE END Private defines */ |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
#endif /* __MAIN_H */ |
|||
@ -0,0 +1,21 @@ |
|||
/*
|
|||
* msp_MK32_1.h |
|||
* |
|||
* Created on: Oct 8, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
|
|||
|
|||
#ifndef INC_MSP_MSP_MK32_1_H_ |
|||
#define INC_MSP_MSP_MK32_1_H_ |
|||
#include "bsp_UART.h" |
|||
#include "msp_MK32.pb.h" |
|||
|
|||
extern SP_MSP_MK32_Button *P_MK32; |
|||
|
|||
void Sbus_Data_Count(uint8_t *buf, int32_t *But_Value); |
|||
extern SP_MSP_MK32_Button *P_MK32; |
|||
//
|
|||
void MK32_Sbus_UART_Handler_intialize(struct UARTHandler* Handler); |
|||
#endif /* INC_MSP_MSP_MK32_1_H_ */ |
|||
@ -0,0 +1,49 @@ |
|||
/*
|
|||
* bsp_steering_engine.h |
|||
* |
|||
* Created on: Jul 29, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_STEERING_ENGINE_H_ |
|||
#define INC_MSP_MSP_STEERING_ENGINE_H_ |
|||
|
|||
#include <stdio.h> |
|||
#include <string.h> |
|||
#include "stdio.h" |
|||
#include "bsp_UART.h" |
|||
#include "usart.h" |
|||
#include "gpio.h" |
|||
|
|||
|
|||
extern int32_t* Desulfurizer_Steering_Set_Speed_1; |
|||
extern int32_t* Desulfurizer_Steering_Set_Speed_2; |
|||
extern int32_t* Desulfurizer_Steering_Set_Speed_3; |
|||
extern int32_t* Desulfurizer_Steering_Set_Speed_4; |
|||
extern int32_t* Desulfurizer_Steering_Angle_3; |
|||
extern int32_t* Desulfurizer_Steering_Angle_4; |
|||
extern int32_t* Desulfurizer_Steering_Current; |
|||
extern int32_t* Desulfurizer_Steering_Real_Angle; |
|||
extern int32_t* Desulfurizer_Steering_Real_Angle_3; |
|||
extern int32_t* Desulfurizer_Steering_Real_Angle_4; |
|||
|
|||
extern int32_t* Steering_damping_power_1; |
|||
extern int32_t* Steering_damping_power_2; |
|||
extern int32_t* Steering_damping_power_3; |
|||
extern int32_t* Steering_damping_power_4; |
|||
|
|||
void setSteeringRobotProtectionMode(); |
|||
void Clear_current_laps(); |
|||
void update_steering_state(); |
|||
void steering_engine_intialize(struct UARTHandler *Handler); |
|||
void steering_engine_intialize_12(struct UARTHandler *Handler); |
|||
|
|||
void read_steering_Angle(); |
|||
void steering_homing_control(); |
|||
void SteeringDampingPowerControl(uint8_t steering_id1, |
|||
int32_t Steering_damping_power); |
|||
|
|||
//FSUS_STATUS FSUS_ReadData(uint8_t servo_id, uint8_t address, uint8_t *sendbytes, uint8_t *length);
|
|||
void read_steering_current(); |
|||
void decode_steering_angle_03(uint8_t *buffer, uint16_t length); |
|||
#endif /* INC_MSP_MSP_STEERING_ENGINE_H_ */ |
|||
@ -0,0 +1,309 @@ |
|||
/*
|
|||
* msp_fashion_star_uart_servo.h |
|||
* |
|||
* Created on: Jul 29, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef SRC_MSP_MSP_FASHION_STAR_UART_SERVO_H_ |
|||
#define SRC_MSP_MSP_FASHION_STAR_UART_SERVO_H_ |
|||
|
|||
#include "usart.h" |
|||
|
|||
#include "msp_ring_buffer.h" |
|||
|
|||
void FSUS_QueryServoAngle(uint8_t servo_id, uint8_t *sendbytes, uint8_t *length); |
|||
|
|||
// FSUS通信协议
|
|||
// 注: FSUS是Fashion Star Uart Servo的缩写
|
|||
|
|||
// 串口通讯超时设置
|
|||
#define FSUS_TIMEOUT_MS 100 |
|||
// 舵机用户自定义数据块的大小 单位Byte
|
|||
#define FSUS_SERVO_BATCH_DATA_SIZE 32 |
|||
// 返回的响应数据包最长的长度
|
|||
#define FSUS_PACK_RESPONSE_MAX_SIZE 50 |
|||
// 在串口舵机的通信系统设计里, 使用的字节序为Little Endian(低字节序/小端格式)
|
|||
// STM32系统的数值存储模式就是Little Endian
|
|||
// 所以0x4c12 这个数值, 在实际发送的时候低位会在前面 0x12, 0x4c
|
|||
#define FSUS_PACK_REQUEST_HEADER 0x4c12 |
|||
#define FSUS_PACK_RESPONSE_HEADER 0x1c05 |
|||
|
|||
// FSUS控制指令数据
|
|||
// 注: 一下所有的指令都是针对单个舵机的
|
|||
#define FSUS_CMD_NUM 17 |
|||
#define FSUS_CMD_PING 1 // 舵机通讯检测
|
|||
#define FSUS_CMD_RESET_USER_DATA 2 // 重置用户数据
|
|||
#define FSUS_CMD_READ_DATA 3 // 单个舵机 读取数据库
|
|||
#define FSUS_CMD_WRITE_DATA 4 // 单个舵机 写入数据块
|
|||
#define FSUS_CMD_READ_BATCH_DATA 5 // 单个舵机 批次读取(读取一个舵机所有的数据)
|
|||
#define FSUS_CMD_WRITE_BATCH_DATA 6 // 单个舵机 批次写入(写入一个舵机所有的数据)
|
|||
#define FSUS_CMD_SPIN 7 // 单个舵机 设置轮式模式
|
|||
#define FSUS_CMD_ROTATE 8 // 角度控制模式(设置舵机的角度))
|
|||
#define FSUS_CMD_DAMPING 9 // 阻尼模式
|
|||
#define FSUS_CMD_READ_ANGLE 10 // 舵机角度读取
|
|||
#define FSUS_CMD_SET_SERVO_ANGLE_BY_INTERVAL 11 // 角度设置(指定周期)
|
|||
#define FSUS_CMD_SET_SERVO_ANGLE_BY_VELOCITY 12 // 角度设置(指定转速)
|
|||
#define FSUS_CMD_SET_SERVO_ANGLE_MTURN 13 // 多圈角度设置
|
|||
#define FSUS_CMD_SET_SERVO_ANGLE_MTURN_BY_INTERVAL 14 // 多圈角度设置(指定周期)
|
|||
#define FSUS_CMD_SET_SERVO_ANGLE_MTURN_BY_VELOCITY 15 // 多圈角度设置(指定转速)
|
|||
#define FSUS_CMD_QUERY_SERVO_ANGLE_MTURN 16 // 查询舵机角度(多圈)
|
|||
|
|||
// FSUS状态码
|
|||
#define FSUS_STATUS uint8_t |
|||
#define FSUS_STATUS_SUCCESS 0 // 设置/读取成功
|
|||
#define FSUS_STATUS_FAIL 1 // 设置/读取失败
|
|||
#define FSUS_STATUS_TIMEOUT 2 // 等待超时
|
|||
#define FSUS_STATUS_WRONG_RESPONSE_HEADER 3 // 响应头不对
|
|||
#define FSUS_STATUS_UNKOWN_CMD_ID 4 // 未知的控制指令
|
|||
#define FSUS_STATUS_SIZE_TOO_BIG 5 // 参数的size大于FSUS_PACK_RESPONSE_MAX_SIZE里面的限制
|
|||
#define FSUS_STATUS_CHECKSUM_ERROR 6 // 校验和错误
|
|||
#define FSUS_STATUS_ID_NOT_MATCH 7 // 请求的舵机ID跟反馈回来的舵机ID不匹配
|
|||
|
|||
// 静止状态判断条件
|
|||
#define FSUS_ANGLE_DEADAREA 1.0f // 电机角度死区
|
|||
#define FSUS_WAIT_COUNT_MAX 10000 // 等待重复查询角度的最大次数
|
|||
|
|||
/* 舵机用户自定义参数的数据ID及使用说明 (可度也可写)*/ |
|||
|
|||
/* 此项设置同时具备两个功能
|
|||
* 在轮式模式与角度控制模式下 |
|||
* 1. 舵机指令是否可以中断 interruptable? |
|||
* 2. 是否产生反馈数据? |
|||
* 0x00(默认) |
|||
* 舵机控制指令执行可以被中断, 新的指令覆盖旧的指令 |
|||
* 无反馈数据 |
|||
* 0x01 |
|||
* 舵机控制指令不可以被中断, 新的指令添加到等候队列里面 |
|||
* 等候队列的长度是1, 需要自己在程序里面维护一个队列 |
|||
* 当新的控制指令超出了缓冲区的大小之后, 新添加的指令被忽略 |
|||
* 指令执行结束之后发送反馈数据 |
|||
*/ |
|||
#define FSUS_PARAM_RESPONSE_SWITCH 33 |
|||
/*
|
|||
* 舵机的ID号, (字节长度 1) |
|||
* 取值范围是 0-254 |
|||
* 255号为广播地址,不能赋值给舵机 广播地址在PING指令中使用。 |
|||
*/ |
|||
#define FSUS_PARAM_SERVO_ID 34 |
|||
/*
|
|||
* 串口通讯的波特率ID (字节长度 1) |
|||
* 取值范围 [0x01,0x07] , 默认值0x05 |
|||
* 0x01-9600, |
|||
* 0x02-19200, |
|||
* 0x03-38400, |
|||
* 0x04-57600, |
|||
* 0x05-115200 (默认波特率), |
|||
* 0x06-250000, |
|||
* 0x07-500000, |
|||
* 波特率设置时即生效 |
|||
*/ |
|||
#define FSUS_PARAM_BAUDRATE 36 |
|||
|
|||
/* 舵机保护值相关设置, 超过阈值舵机就进入保护模式 */ |
|||
/*
|
|||
* 舵机堵转保护模式 (字节长度 1) |
|||
* 0x00-模式1 降功率到堵轉功率上限 |
|||
* 0x01-模式2 释放舵机锁力 |
|||
*/ |
|||
#define FSUS_PARAM_STALL_PROTECT 37 |
|||
/* 舵机堵转功率上限, (单位mW) (字节长度 2) */ |
|||
#define FSUS_PARAM_STALL_POWER_LIMIT 38 |
|||
/* 舵机电压下限 (单位mV) (字节长度 2) */ |
|||
#define FSUS_PARAM_OVER_VOLT_LOW 39 |
|||
/* 舵机电压上限 (单位mV) (字节长度 2) */ |
|||
#define FSUS_PARAM_OVER_VOLT_HIGH 40 |
|||
/* 舵机温度上限 (单位 摄氏度) (字节长度 2) */ |
|||
#define FSUS_PARAM_OVER_TEMPERATURE 41 |
|||
/* 舵机功率上限 (单位mW) (字节长度 2) */ |
|||
#define FSUS_PARAM_OVER_POWER 42 |
|||
/* 舵机电流上限 (单位mA) (字节长度 2) */ |
|||
#define FSUS_PARAM_OVER_CURRENT 43 |
|||
/*
|
|||
* 舵机启动加速度处理开关 (字节长度 1) |
|||
* 0x00 不启动加速度处理 (无效设置) |
|||
* 0x01 启用加速度处理(默认值) |
|||
* 舵机梯形速度控制,根据时间t推算加速度a |
|||
* 行程前1/4 加速 |
|||
* 行程中间1/2保持匀速 |
|||
* 行程后1/4 |
|||
*/ |
|||
#define FSUS_PARAM_ACCEL_SWITCH 44 |
|||
/*
|
|||
* 舵机上电锁力开关 (字节长度 1) |
|||
* 0x00 上电舵机释放锁力(默认值) |
|||
* 0x11 上电时刹车 |
|||
*/ |
|||
#define FSUS_PARAM_POWER_ON_LOCK_SWITCH 46 |
|||
/*
|
|||
* [轮式模式] 轮式模式刹车开关 (字节长度 1) |
|||
* 0x00 停止时舵机释放锁力(默认) |
|||
* 0x01 停止时刹车 |
|||
*/ |
|||
#define FSUS_PARAM_WHEEL_MODE_BRAKE_SWITCH 47 |
|||
/*
|
|||
* [角度模式] 角度限制开关 (字节长度 1) |
|||
* 0x00 关闭角度限制 |
|||
* 0x01 开启角度限制 |
|||
* 注: 只有角度限制模式开启之后, 角度上限下限才有效 |
|||
*/ |
|||
#define FSUS_PARAM_ANGLE_LIMIT_SWITCH 48 |
|||
/*
|
|||
* [角度模式] 舵机上电首次角度设置缓慢执行 (字节长度 1) |
|||
* 0x00 关闭 |
|||
* 0x01 开启 |
|||
* 开启后更安全 |
|||
* 缓慢旋转的时间周期即为下方的”舵机上电启动时间“ |
|||
*/ |
|||
#define FSUS_PARAM_SOFT_START_SWITCH 49 |
|||
/*
|
|||
* [角度模式] 舵机上电启动时间 (单位ms)(字节长度 2) |
|||
* 默认值: 0x0bb8 |
|||
*/ |
|||
#define FSUS_PARAM_SOFT_START_TIME 50 |
|||
/*
|
|||
* [角度模式] 舵机角度上限 (单位0.1度)(字节长度 2) |
|||
*/ |
|||
#define FSUS_PARAM_ANGLE_LIMIT_HIGH 51 |
|||
/*
|
|||
* [角度模式] 舵机角度下限 (单位0.1度)(字节长度 2) |
|||
*/ |
|||
#define FSUS_PARAM_ANGLE_LIMIT_LOW 52 |
|||
/*
|
|||
* [角度模式] 舵机中位角度偏移 (单位0.1度)(字节长度 2) |
|||
*/ |
|||
#define FSUS_PARAM_ANGLE_MID_OFFSET 53 |
|||
|
|||
// 帧头接收完成的标志位
|
|||
#define FSUS_RECV_FLAG_HEADER 0x01 |
|||
// 控制指令接收完成的标志位
|
|||
#define FSUS_RECV_FLAG_CMD_ID 0x02 |
|||
// 内容长度接收完成的标志位
|
|||
#define FSUS_RECV_FLAG_SIZE 0x04 |
|||
// 内容接收完成的标志位
|
|||
#define FSUS_RECV_FLAG_CONTENT 0x08 |
|||
// 校验和接收的标志位
|
|||
#define FSUS_RECV_FLAG_CHECKSUM 0x10 |
|||
|
|||
// 轮式模式参数定义
|
|||
// Bit 0 是否运行
|
|||
#define FSUS_SPIN_METHOD_STOP 0x00 // 轮子停止旋转
|
|||
#define FSUS_SPIN_METHOD_START 0x01 // 轮子旋转
|
|||
#define FSUS_SPIN_METHOD_CIRCLE 0x02 // 轮子定圈
|
|||
#define FSUS_SPIN_METHOD_TIME 0x03 // 轮子定时
|
|||
#define FSUS_SPIN_METHOD_CCW 0x00 // 轮子逆时针旋转
|
|||
#define FSUS_SPIN_METHOD_CW 0x80 // 轮子顺时针旋转
|
|||
|
|||
// 串口舵机用户自定义设置
|
|||
// 是否开启响应模式
|
|||
#define FSUS_IS_RESPONSE_ON 0 |
|||
|
|||
// 请求数据帧的结构体
|
|||
typedef struct |
|||
{ |
|||
uint16_t header; // 请求头
|
|||
uint8_t cmdId; // 指令ID号
|
|||
uint8_t size; // 包的长度
|
|||
uint8_t content[FSUS_PACK_RESPONSE_MAX_SIZE]; // 包的内容
|
|||
uint8_t checksum; // 校验和
|
|||
// 用于帧的接收
|
|||
// 数据帧的接收状态 flag标志位
|
|||
uint8_t status; |
|||
} PackageTypeDef; |
|||
|
|||
// 数据帧转换为字节数组
|
|||
void FSUS_Package2RingBuffer(PackageTypeDef *pkg, RingBufferTypeDef *ringBuf); |
|||
|
|||
// 销毁数据帧 (释放数据帧申请的内存)
|
|||
void FSUS_DestroyPackage(PackageTypeDef *pkg); |
|||
|
|||
// 计算校验和
|
|||
uint8_t FSUS_CalcChecksum(PackageTypeDef *pkg); |
|||
|
|||
// 判断是否为有效的请求头的
|
|||
FSUS_STATUS FSUS_IsValidResponsePackage(PackageTypeDef *pkg); |
|||
|
|||
// 字节数组转换为数据帧
|
|||
FSUS_STATUS FSUS_RingBuffer2Package(RingBufferTypeDef *ringBuf, |
|||
PackageTypeDef *pkg); |
|||
|
|||
// 构造发送数据帧
|
|||
//void FSUS_SendPackage(Usart_DataTypeDef *usart, uint8_t cmdId, uint8_t size, uint8_t *content);
|
|||
|
|||
// 接收数据帧 (在接收的时候动态的申请内存)
|
|||
//FSUS_STATUS FSUS_RecvPackage(Usart_DataTypeDef *usart, PackageTypeDef *pkg);
|
|||
|
|||
// 舵机通讯检测
|
|||
// 注: 如果没有舵机响应这个Ping指令的话, 就会超时
|
|||
//FSUS_STATUS FSUS_Ping(Usart_DataTypeDef *usart, uint8_t servo_id);
|
|||
|
|||
// 重置舵机的用户资料
|
|||
//FSUS_STATUS FSUS_ResetUserData(Usart_DataTypeDef *usart, uint8_t servo_id);
|
|||
|
|||
// 读取数据
|
|||
//FSUS_STATUS FSUS_ReadData(Usart_DataTypeDef *usart, uint8_t servo_id, uint8_t address, uint8_t *value, uint8_t *size);
|
|||
|
|||
// 写入数据
|
|||
//FSUS_STATUS FSUS_WriteData(Usart_DataTypeDef *usart, uint8_t servo_id, uint8_t address, uint8_t *value, uint8_t size);
|
|||
|
|||
// 读取单个舵机所有的资料信息(注: 未实现)
|
|||
// 写入单个舵机所有的资料信息(注: 未实现)
|
|||
// 批次写入过于麻烦, 用户手动配置单个舵机就得写至少32行参数设置代码
|
|||
// 而且不同的控制模式, 有些是不需要设置的.
|
|||
// 推荐单项设置
|
|||
|
|||
/*
|
|||
* 轮式控制模式 |
|||
* speed单位 °/s |
|||
*/ |
|||
//FSUS_STATUS FSUS_WheelMove(Usart_DataTypeDef *usart, uint8_t servo_id, uint8_t method, uint16_t speed, uint16_t value);
|
|||
// 轮式模式, 舵机停止转动
|
|||
FSUS_STATUS FSUS_WheelStop(uint8_t servo_id, uint8_t *sendbytes, |
|||
uint8_t *length); |
|||
|
|||
// 轮式模式
|
|||
FSUS_STATUS FSUS_WheelKeepMove(uint8_t servo_id, uint8_t is_cw, uint16_t speed, |
|||
uint8_t *sendbytes, uint8_t *length); |
|||
|
|||
// 轮式模式 按照特定的速度旋转特定的时间
|
|||
//FSUS_STATUS FSUS_WheelMoveTime(Usart_DataTypeDef *usart, uint8_t servo_id, uint8_t is_cw, uint16_t speed, uint16_t nTime);
|
|||
|
|||
// 轮式模式 旋转特定的圈数
|
|||
//FSUS_STATUS FSUS_WheelMoveNCircle(Usart_DataTypeDef *usart, uint8_t servo_id, uint8_t is_cw, uint16_t speed, uint16_t nCircle);
|
|||
|
|||
// 设置舵机的角度
|
|||
// @angle 单位度
|
|||
// @interval 单位ms
|
|||
// @power 舵机执行功率 单位mW
|
|||
// 若power=0或者大于保护值
|
|||
//FSUS_STATUS FSUS_SetServoAngle(Usart_DataTypeDef *usart, uint8_t servo_id, float angle, uint16_t interval, uint16_t power, uint8_t wait);
|
|||
|
|||
/* 设置舵机的角度(指定周期) */ |
|||
//FSUS_STATUS FSUS_SetServoAngleByInterval(Usart_DataTypeDef *usart, uint8_t servo_id, \ |
|||
float angle, uint16_t interval, uint16_t t_acc, \ |
|||
uint16_t t_dec, uint16_t power, uint8_t wait); |
|||
/* 设置舵机的角度(指定转速) */ |
|||
//FSUS_STATUS FSUS_SetServoAngleByVelocity(Usart_DataTypeDef *usart, uint8_t servo_id, \ |
|||
float angle, float velocity, uint16_t t_acc, \ |
|||
uint16_t t_dec, uint16_t power, uint8_t wait); |
|||
/* 查询单个舵机的角度信息 angle 单位度 */ |
|||
//FSUS_STATUS FSUS_QueryServoAngle(Usart_DataTypeDef *usart, uint8_t servo_id, float *angle);
|
|||
/* 设置舵机的角度(多圈模式) */ |
|||
//FSUS_STATUS FSUS_SetServoAngleMTurn(Usart_DataTypeDef *usart, uint8_t servo_id, float angle, \ |
|||
uint32_t interval, uint16_t power, uint8_t wait); |
|||
/* 设置舵机的角度(多圈模式, 指定周期) */ |
|||
//FSUS_STATUS FSUS_SetServoAngleMTurnByInterval(Usart_DataTypeDef *usart, uint8_t servo_id, float angle, \ |
|||
uint32_t interval, uint16_t t_acc, uint16_t t_dec, uint16_t power, uint8_t wait); |
|||
/* 设置舵机的角度(多圈模式, 指定转速) */ |
|||
//FSUS_STATUS FSUS_SetServoAngleMTurnByVelocity(Usart_DataTypeDef *usart, uint8_t servo_id, float angle, \ |
|||
float velocity, uint16_t t_acc, uint16_t t_dec, uint16_t power, uint8_t wait); |
|||
/* 查询舵机的角度(多圈模式) */ |
|||
//FSUS_STATUS FSUS_QueryServoAngleMTurn(Usart_DataTypeDef *usart, uint8_t servo_id, float *angle);
|
|||
/* 舵机阻尼模式 */ |
|||
//FSUS_STATUS FSUS_DampingMode(Usart_DataTypeDef *usart, uint8_t servo_id, uint16_t power);
|
|||
/* 等待电机旋转到特定的位置 */ |
|||
//FSUS_STATUS FSUS_Wait(Usart_DataTypeDef *usart, uint8_t servo_id, float target_angle, uint8_t is_mturn);
|
|||
FSUS_STATUS FSUS_SetServoAngle(uint8_t servo_id, float angle, uint16_t interval, |
|||
uint16_t power, uint8_t wait, uint8_t *sendbytes, uint8_t *length); |
|||
|
|||
#endif /* SRC_MSP_MSP_FASHION_STAR_UART_SERVO_H_ */ |
|||
@ -0,0 +1,82 @@ |
|||
/*
|
|||
* msp_ring_buffer.h |
|||
* |
|||
* Created on: Jul 29, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_MSP_MSP_RING_BUFFER_H_ |
|||
#define INC_MSP_MSP_RING_BUFFER_H_ |
|||
//#include "sys.h"
|
|||
#include "stdint.h" |
|||
|
|||
#include<stdio.h> |
|||
#include <string.h> |
|||
#include <stdlib.h> |
|||
|
|||
// 环形队列结构体
|
|||
typedef struct |
|||
{ |
|||
uint8_t *buffer; // 缓冲区
|
|||
uint16_t head; // 队首指针
|
|||
uint16_t tail; // 队尾指针
|
|||
uint16_t size; // 环形队列的尺寸
|
|||
} RingBufferTypeDef; |
|||
|
|||
// 创建队列
|
|||
void RingBuffer_Init(RingBufferTypeDef *ringBuf, uint16_t capacity, |
|||
uint8_t *buffer); |
|||
// 队列重置
|
|||
void RingBuffer_Reset(RingBufferTypeDef *ringBuf); |
|||
// 销毁队列
|
|||
void RingBuffer_Destory(RingBufferTypeDef *ringBuf); |
|||
// 获取队列的容量
|
|||
uint16_t RingBuffer_GetCapacity(RingBufferTypeDef *ringBuf); |
|||
// 获取环形队列已经存好的字节数
|
|||
uint16_t RingBuffer_GetByteUsed(RingBufferTypeDef *ringBuf); |
|||
// 获取队列的剩余的空闲字节
|
|||
uint16_t RingBuffer_GetByteFree(RingBufferTypeDef *ringBuf); |
|||
// 队列是否为空
|
|||
uint8_t RingBuffer_IsEmpty(RingBufferTypeDef *ringBuf); |
|||
// 队列是否已满
|
|||
uint8_t RingBuffer_IsFull(RingBufferTypeDef *ringBuf); |
|||
// 根据索引号读取第i个元素
|
|||
uint8_t RingBuffer_GetValueByIndex(RingBufferTypeDef *ringBuf, uint16_t index); |
|||
// 弹出队首元素
|
|||
uint8_t RingBuffer_Pop(RingBufferTypeDef *ringBuf); |
|||
// 读取单个字节
|
|||
uint8_t RingBuffer_ReadByte(RingBufferTypeDef *ringBuf); |
|||
// 读取字节数组
|
|||
void RingBuffer_ReadByteArray(RingBufferTypeDef *ringBuf, uint8_t *dest, |
|||
uint16_t size); |
|||
// 读取有符号Short整数(两个字节)
|
|||
int16_t RingBuffer_ReadShort(RingBufferTypeDef *ringBuf); |
|||
// 读取无符号Short整数(两个字节)
|
|||
uint16_t RingBuffer_ReadUShort(RingBufferTypeDef *ringBuf); |
|||
// 读取有符号Long类型的整数(四个字节)
|
|||
int32_t RingBuffer_ReadLong(RingBufferTypeDef *ringBuf); |
|||
// 读取无符号Long类型的整数(四个字节)
|
|||
uint32_t RingBuffer_ReadULong(RingBufferTypeDef *ringBuf); |
|||
// 读取浮点数(四个字节)
|
|||
float RingBuffer_ReadFloat(RingBufferTypeDef *ringBuf); |
|||
// 写入队尾元素
|
|||
void RingBuffer_Push(RingBufferTypeDef *ringBuf, uint8_t value); |
|||
// 写入单个字节
|
|||
void RingBuffer_WriteByte(RingBufferTypeDef *ringBuf, uint8_t value); |
|||
// 写入字节数组
|
|||
void RingBuffer_WriteByteArray(RingBufferTypeDef *ringBuf, uint8_t *src, |
|||
uint16_t size); |
|||
// 写入有符号Short整数(两个字节)
|
|||
void RingBuffer_WriteShort(RingBufferTypeDef *ringBuf, int16_t value); |
|||
// 写入无符号Short整数(两个字节)
|
|||
void RingBuffer_WriteUShort(RingBufferTypeDef *ringBuf, uint16_t value); |
|||
// 写入有符号Long类型的整数(四个字节)
|
|||
void RingBuffer_WriteLong(RingBufferTypeDef *ringBuf, int32_t value); |
|||
// 写入无符号Long类型的整数(四个字节)
|
|||
void RingBuffer_WriteULong(RingBufferTypeDef *ringBuf, uint32_t value); |
|||
// 写入浮点数(四个字节)
|
|||
void RingBuffer_WriteFloat(RingBufferTypeDef *ringBuf, float value); |
|||
// 计算缓冲区所有自己的校验和()
|
|||
uint8_t RingBuffer_GetChecksum(RingBufferTypeDef *ringBuf); |
|||
|
|||
#endif /* INC_MSP_MSP_RING_BUFFER_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,68 @@ |
|||
/*
|
|||
* robot_state.h |
|||
* |
|||
* Created on: Aug 2, 2024 |
|||
* Author: akeguo |
|||
*/ |
|||
|
|||
#ifndef INC_ROBOT_STATE_H_ |
|||
#define INC_ROBOT_STATE_H_ |
|||
|
|||
#include "BHBF_ROBOT.h" |
|||
#include "bsp_include.h" |
|||
|
|||
extern uint8_t Pit_flag; |
|||
extern int32_t Pit_Position_fir; |
|||
extern int32_t Pit_Position_sec; |
|||
extern int32_t Rot_Position_fir; |
|||
extern int32_t Rot_Position_sec; |
|||
extern uint8_t Rot_dir_flag; |
|||
extern uint8_t Pitch_dir_flag; |
|||
extern double Act_Speed; |
|||
extern double RP_speed_act; |
|||
extern double Pit_time; |
|||
extern double Rot_time; |
|||
|
|||
void Manual_State_Entry(void); |
|||
void Manual_State_Do(void); |
|||
void Auto_Back_State_Do(void); |
|||
|
|||
void LaneChangeDistance_Setting_State_Do(void); |
|||
void BackWardsDistance_Setting_State_Do(void); |
|||
void Auto_State_Do(void); |
|||
void Abnormal_State_Do(void); |
|||
//前进、后退、左转、右转
|
|||
void Forwards_State_Do(void); |
|||
void Backwards_State_Do(void); |
|||
void TurnLeft_State_Do(void); |
|||
void TurnRight_State_Do(void); |
|||
|
|||
void HALT_State_Do(void);//停止
|
|||
|
|||
|
|||
void SwingHALT_State_Do(void); |
|||
void SwingLeft_State_Do(void); |
|||
void SwingRight_State_Do(void); |
|||
void SwingAuto_Do(void); |
|||
void SwingManual_Do(void); |
|||
void SwingHome_Do(void); |
|||
|
|||
|
|||
void SetLaneChangeDistance_State_Do(void); |
|||
void SetBackwardsDistance_State_Do(void); |
|||
void OtherMode_State_Do(void); |
|||
|
|||
|
|||
|
|||
void TiltUp_Do(); |
|||
void TiltDown_Do(); |
|||
void TiltHalt_Do(); |
|||
void TiltAuto_Do(void); |
|||
void TiltManual_Do(void); |
|||
void TiltHome_Do(); |
|||
|
|||
|
|||
void TiltCurrentModeDown_Do(); |
|||
|
|||
|
|||
#endif /* INC_ROBOT_STATE_H_ */ |
|||
@ -0,0 +1,380 @@ |
|||
/* USER CODE BEGIN Header */ |
|||
/**
|
|||
****************************************************************************** |
|||
* @file stm32g4xx_hal_conf.h |
|||
* @author MCD Application Team |
|||
* @brief HAL configuration file |
|||
****************************************************************************** |
|||
* @attention |
|||
* |
|||
* Copyright (c) 2019 STMicroelectronics. |
|||
* All rights reserved. |
|||
* |
|||
* This software is licensed under terms that can be found in the LICENSE file |
|||
* in the root directory of this software component. |
|||
* If no LICENSE file comes with this software, it is provided AS-IS. |
|||
* |
|||
****************************************************************************** |
|||
*/ |
|||
/* USER CODE END Header */ |
|||
|
|||
/* Define to prevent recursive inclusion -------------------------------------*/ |
|||
#ifndef STM32G4xx_HAL_CONF_H |
|||
#define STM32G4xx_HAL_CONF_H |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Exported types ------------------------------------------------------------*/ |
|||
/* Exported constants --------------------------------------------------------*/ |
|||
|
|||
/* ########################## Module Selection ############################## */ |
|||
/**
|
|||
* @brief This is the list of modules to be used in the HAL driver |
|||
*/ |
|||
|
|||
#define HAL_MODULE_ENABLED |
|||
|
|||
/*#define HAL_ADC_MODULE_ENABLED */ |
|||
/*#define HAL_COMP_MODULE_ENABLED */ |
|||
/*#define HAL_CORDIC_MODULE_ENABLED */ |
|||
/*#define HAL_CRC_MODULE_ENABLED */ |
|||
/*#define HAL_CRYP_MODULE_ENABLED */ |
|||
/*#define HAL_DAC_MODULE_ENABLED */ |
|||
/*#define HAL_FDCAN_MODULE_ENABLED */ |
|||
/*#define HAL_FMAC_MODULE_ENABLED */ |
|||
/*#define HAL_HRTIM_MODULE_ENABLED */ |
|||
/*#define HAL_IRDA_MODULE_ENABLED */ |
|||
/*#define HAL_IWDG_MODULE_ENABLED */ |
|||
/*#define HAL_I2C_MODULE_ENABLED */ |
|||
/*#define HAL_I2S_MODULE_ENABLED */ |
|||
/*#define HAL_LPTIM_MODULE_ENABLED */ |
|||
/*#define HAL_NAND_MODULE_ENABLED */ |
|||
/*#define HAL_NOR_MODULE_ENABLED */ |
|||
/*#define HAL_OPAMP_MODULE_ENABLED */ |
|||
/*#define HAL_PCD_MODULE_ENABLED */ |
|||
/*#define HAL_QSPI_MODULE_ENABLED */ |
|||
/*#define HAL_RNG_MODULE_ENABLED */ |
|||
/*#define HAL_RTC_MODULE_ENABLED */ |
|||
/*#define HAL_SAI_MODULE_ENABLED */ |
|||
/*#define HAL_SMARTCARD_MODULE_ENABLED */ |
|||
/*#define HAL_SMBUS_MODULE_ENABLED */ |
|||
/*#define HAL_SPI_MODULE_ENABLED */ |
|||
/*#define HAL_SRAM_MODULE_ENABLED */ |
|||
#define HAL_TIM_MODULE_ENABLED |
|||
#define HAL_UART_MODULE_ENABLED |
|||
/*#define HAL_USART_MODULE_ENABLED */ |
|||
/*#define HAL_WWDG_MODULE_ENABLED */ |
|||
#define HAL_GPIO_MODULE_ENABLED |
|||
#define HAL_EXTI_MODULE_ENABLED |
|||
#define HAL_DMA_MODULE_ENABLED |
|||
#define HAL_RCC_MODULE_ENABLED |
|||
#define HAL_FLASH_MODULE_ENABLED |
|||
#define HAL_PWR_MODULE_ENABLED |
|||
#define HAL_CORTEX_MODULE_ENABLED |
|||
|
|||
/* ########################## Register Callbacks selection ############################## */ |
|||
/**
|
|||
* @brief This is the list of modules where register callback can be used |
|||
*/ |
|||
#define USE_HAL_ADC_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_COMP_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_CORDIC_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_DAC_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_EXTI_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_FDCAN_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_FMAC_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_HRTIM_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_I2C_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_I2S_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_NAND_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_NOR_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_OPAMP_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_PCD_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_RNG_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_RTC_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_SAI_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_SPI_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_TIM_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_UART_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_USART_REGISTER_CALLBACKS 0U |
|||
#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U |
|||
|
|||
/* ########################## Oscillator Values adaptation ####################*/ |
|||
/**
|
|||
* @brief Adjust the value of External High Speed oscillator (HSE) used in your application. |
|||
* This value is used by the RCC HAL module to compute the system frequency |
|||
* (when HSE is used as system clock source, directly or through the PLL). |
|||
*/ |
|||
#if !defined (HSE_VALUE) |
|||
#define HSE_VALUE (12000000UL) /*!< Value of the External oscillator in Hz */ |
|||
#endif /* HSE_VALUE */ |
|||
|
|||
#if !defined (HSE_STARTUP_TIMEOUT) |
|||
#define HSE_STARTUP_TIMEOUT (100UL) /*!< Time out for HSE start up, in ms */ |
|||
#endif /* HSE_STARTUP_TIMEOUT */ |
|||
|
|||
/**
|
|||
* @brief Internal High Speed oscillator (HSI) value. |
|||
* This value is used by the RCC HAL module to compute the system frequency |
|||
* (when HSI is used as system clock source, directly or through the PLL). |
|||
*/ |
|||
#if !defined (HSI_VALUE) |
|||
#define HSI_VALUE (16000000UL) /*!< Value of the Internal oscillator in Hz*/ |
|||
#endif /* HSI_VALUE */ |
|||
|
|||
/**
|
|||
* @brief Internal High Speed oscillator (HSI48) value for USB FS and RNG. |
|||
* This internal oscillator is mainly dedicated to provide a high precision clock to |
|||
* the USB peripheral by means of a special Clock Recovery System (CRS) circuitry. |
|||
* When the CRS is not used, the HSI48 RC oscillator runs on it default frequency |
|||
* which is subject to manufacturing process variations. |
|||
*/ |
|||
#if !defined (HSI48_VALUE) |
|||
#define HSI48_VALUE (48000000UL) /*!< Value of the Internal High Speed oscillator for USB FS/RNG in Hz. |
|||
The real value my vary depending on manufacturing process variations.*/ |
|||
#endif /* HSI48_VALUE */ |
|||
|
|||
/**
|
|||
* @brief Internal Low Speed oscillator (LSI) value. |
|||
*/ |
|||
#if !defined (LSI_VALUE) |
|||
/*!< Value of the Internal Low Speed oscillator in Hz
|
|||
The real value may vary depending on the variations in voltage and temperature.*/ |
|||
#define LSI_VALUE (32000UL) /*!< LSI Typical Value in Hz*/ |
|||
#endif /* LSI_VALUE */ |
|||
/**
|
|||
* @brief External Low Speed oscillator (LSE) value. |
|||
* This value is used by the UART, RTC HAL module to compute the system frequency |
|||
*/ |
|||
#if !defined (LSE_VALUE) |
|||
#define LSE_VALUE (32768UL) /*!< Value of the External Low Speed oscillator in Hz */ |
|||
#endif /* LSE_VALUE */ |
|||
|
|||
#if !defined (LSE_STARTUP_TIMEOUT) |
|||
#define LSE_STARTUP_TIMEOUT (5000UL) /*!< Time out for LSE start up, in ms */ |
|||
#endif /* LSE_STARTUP_TIMEOUT */ |
|||
|
|||
/**
|
|||
* @brief External clock source for I2S and SAI peripherals |
|||
* This value is used by the I2S and SAI HAL modules to compute the I2S and SAI clock source |
|||
* frequency, this source is inserted directly through I2S_CKIN pad. |
|||
*/ |
|||
#if !defined (EXTERNAL_CLOCK_VALUE) |
|||
#define EXTERNAL_CLOCK_VALUE (12288000UL) /*!< Value of the External oscillator in Hz*/ |
|||
#endif /* EXTERNAL_CLOCK_VALUE */ |
|||
|
|||
/* Tip: To avoid modifying this file each time you need to use different HSE,
|
|||
=== you can define the HSE value in your toolchain compiler preprocessor. */ |
|||
|
|||
/* ########################### System Configuration ######################### */ |
|||
/**
|
|||
* @brief This is the HAL system configuration section |
|||
*/ |
|||
|
|||
#define VDD_VALUE (3300UL) /*!< Value of VDD in mv */ |
|||
#define TICK_INT_PRIORITY (15UL) /*!< tick interrupt priority (lowest by default) */ |
|||
#define USE_RTOS 0U |
|||
#define PREFETCH_ENABLE 0U |
|||
#define INSTRUCTION_CACHE_ENABLE 1U |
|||
#define DATA_CACHE_ENABLE 1U |
|||
|
|||
/* ########################## Assert Selection ############################## */ |
|||
/**
|
|||
* @brief Uncomment the line below to expanse the "assert_param" macro in the |
|||
* HAL drivers code |
|||
*/ |
|||
/* #define USE_FULL_ASSERT 1U */ |
|||
|
|||
/* ################## SPI peripheral configuration ########################## */ |
|||
|
|||
/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
|
|||
* Activated: CRC code is present inside driver |
|||
* Deactivated: CRC code cleaned from driver |
|||
*/ |
|||
|
|||
#define USE_SPI_CRC 0U |
|||
|
|||
/* Includes ------------------------------------------------------------------*/ |
|||
/**
|
|||
* @brief Include module's header file |
|||
*/ |
|||
|
|||
#ifdef HAL_RCC_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_rcc.h" |
|||
#endif /* HAL_RCC_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_GPIO_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_gpio.h" |
|||
#endif /* HAL_GPIO_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_DMA_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_dma.h" |
|||
#endif /* HAL_DMA_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_CORTEX_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_cortex.h" |
|||
#endif /* HAL_CORTEX_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_ADC_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_adc.h" |
|||
#endif /* HAL_ADC_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_COMP_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_comp.h" |
|||
#endif /* HAL_COMP_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_CORDIC_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_cordic.h" |
|||
#endif /* HAL_CORDIC_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_CRC_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_crc.h" |
|||
#endif /* HAL_CRC_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_CRYP_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_cryp.h" |
|||
#endif /* HAL_CRYP_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_DAC_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_dac.h" |
|||
#endif /* HAL_DAC_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_EXTI_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_exti.h" |
|||
#endif /* HAL_EXTI_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_FDCAN_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_fdcan.h" |
|||
#endif /* HAL_FDCAN_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_FLASH_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_flash.h" |
|||
#endif /* HAL_FLASH_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_FMAC_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_fmac.h" |
|||
#endif /* HAL_FMAC_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_HRTIM_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_hrtim.h" |
|||
#endif /* HAL_HRTIM_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_IRDA_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_irda.h" |
|||
#endif /* HAL_IRDA_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_IWDG_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_iwdg.h" |
|||
#endif /* HAL_IWDG_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_I2C_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_i2c.h" |
|||
#endif /* HAL_I2C_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_I2S_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_i2s.h" |
|||
#endif /* HAL_I2S_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_LPTIM_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_lptim.h" |
|||
#endif /* HAL_LPTIM_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_NAND_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_nand.h" |
|||
#endif /* HAL_NAND_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_NOR_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_nor.h" |
|||
#endif /* HAL_NOR_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_OPAMP_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_opamp.h" |
|||
#endif /* HAL_OPAMP_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_PCD_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_pcd.h" |
|||
#endif /* HAL_PCD_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_PWR_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_pwr.h" |
|||
#endif /* HAL_PWR_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_QSPI_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_qspi.h" |
|||
#endif /* HAL_QSPI_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_RNG_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_rng.h" |
|||
#endif /* HAL_RNG_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_RTC_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_rtc.h" |
|||
#endif /* HAL_RTC_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_SAI_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_sai.h" |
|||
#endif /* HAL_SAI_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_SMARTCARD_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_smartcard.h" |
|||
#endif /* HAL_SMARTCARD_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_SMBUS_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_smbus.h" |
|||
#endif /* HAL_SMBUS_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_SPI_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_spi.h" |
|||
#endif /* HAL_SPI_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_SRAM_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_sram.h" |
|||
#endif /* HAL_SRAM_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_TIM_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_tim.h" |
|||
#endif /* HAL_TIM_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_UART_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_uart.h" |
|||
#endif /* HAL_UART_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_USART_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_usart.h" |
|||
#endif /* HAL_USART_MODULE_ENABLED */ |
|||
|
|||
#ifdef HAL_WWDG_MODULE_ENABLED |
|||
#include "stm32g4xx_hal_wwdg.h" |
|||
#endif /* HAL_WWDG_MODULE_ENABLED */ |
|||
|
|||
/* Exported macro ------------------------------------------------------------*/ |
|||
#ifdef USE_FULL_ASSERT |
|||
/**
|
|||
* @brief The assert_param macro is used for function's parameters check. |
|||
* @param expr: If expr is false, it calls assert_failed function |
|||
* which reports the name of the source file and the source |
|||
* line number of the call that failed. |
|||
* If expr is true, it returns no value. |
|||
* @retval None |
|||
*/ |
|||
#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) |
|||
/* Exported functions ------------------------------------------------------- */ |
|||
void assert_failed(uint8_t *file, uint32_t line); |
|||
#else |
|||
#define assert_param(expr) ((void)0U) |
|||
#endif /* USE_FULL_ASSERT */ |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
#endif /* STM32G4xx_HAL_CONF_H */ |
|||
@ -0,0 +1,75 @@ |
|||
/* USER CODE BEGIN Header */ |
|||
/**
|
|||
****************************************************************************** |
|||
* @file stm32g4xx_it.h |
|||
* @brief This file contains the headers of the interrupt handlers. |
|||
****************************************************************************** |
|||
* @attention |
|||
* |
|||
* Copyright (c) 2025 STMicroelectronics. |
|||
* All rights reserved. |
|||
* |
|||
* This software is licensed under terms that can be found in the LICENSE file |
|||
* in the root directory of this software component. |
|||
* If no LICENSE file comes with this software, it is provided AS-IS. |
|||
* |
|||
****************************************************************************** |
|||
*/ |
|||
/* USER CODE END Header */ |
|||
|
|||
/* Define to prevent recursive inclusion -------------------------------------*/ |
|||
#ifndef __STM32G4xx_IT_H |
|||
#define __STM32G4xx_IT_H |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Private includes ----------------------------------------------------------*/ |
|||
/* USER CODE BEGIN Includes */ |
|||
|
|||
/* USER CODE END Includes */ |
|||
|
|||
/* Exported types ------------------------------------------------------------*/ |
|||
/* USER CODE BEGIN ET */ |
|||
|
|||
/* USER CODE END ET */ |
|||
|
|||
/* Exported constants --------------------------------------------------------*/ |
|||
/* USER CODE BEGIN EC */ |
|||
|
|||
/* USER CODE END EC */ |
|||
|
|||
/* Exported macro ------------------------------------------------------------*/ |
|||
/* USER CODE BEGIN EM */ |
|||
|
|||
/* USER CODE END EM */ |
|||
|
|||
/* Exported functions prototypes ---------------------------------------------*/ |
|||
void NMI_Handler(void); |
|||
void HardFault_Handler(void); |
|||
void MemManage_Handler(void); |
|||
void BusFault_Handler(void); |
|||
void UsageFault_Handler(void); |
|||
void SVC_Handler(void); |
|||
void DebugMon_Handler(void); |
|||
void PendSV_Handler(void); |
|||
void SysTick_Handler(void); |
|||
void DMA1_Channel1_IRQHandler(void); |
|||
void DMA1_Channel2_IRQHandler(void); |
|||
void DMA1_Channel3_IRQHandler(void); |
|||
void TIM1_UP_TIM16_IRQHandler(void); |
|||
void USART1_IRQHandler(void); |
|||
void USART2_IRQHandler(void); |
|||
void USART3_IRQHandler(void); |
|||
void TIM8_UP_IRQHandler(void); |
|||
void LPUART1_IRQHandler(void); |
|||
/* USER CODE BEGIN EFP */ |
|||
|
|||
/* USER CODE END EFP */ |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
#endif /* __STM32G4xx_IT_H */ |
|||
@ -0,0 +1,55 @@ |
|||
/* USER CODE BEGIN Header */ |
|||
/**
|
|||
****************************************************************************** |
|||
* @file tim.h |
|||
* @brief This file contains all the function prototypes for |
|||
* the tim.c file |
|||
****************************************************************************** |
|||
* @attention |
|||
* |
|||
* Copyright (c) 2025 STMicroelectronics. |
|||
* All rights reserved. |
|||
* |
|||
* This software is licensed under terms that can be found in the LICENSE file |
|||
* in the root directory of this software component. |
|||
* If no LICENSE file comes with this software, it is provided AS-IS. |
|||
* |
|||
****************************************************************************** |
|||
*/ |
|||
/* USER CODE END Header */ |
|||
/* Define to prevent recursive inclusion -------------------------------------*/ |
|||
#ifndef __TIM_H__ |
|||
#define __TIM_H__ |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Includes ------------------------------------------------------------------*/ |
|||
#include "main.h" |
|||
|
|||
/* USER CODE BEGIN Includes */ |
|||
|
|||
/* USER CODE END Includes */ |
|||
|
|||
extern TIM_HandleTypeDef htim1; |
|||
|
|||
extern TIM_HandleTypeDef htim8; |
|||
|
|||
/* USER CODE BEGIN Private defines */ |
|||
|
|||
/* USER CODE END Private defines */ |
|||
|
|||
void MX_TIM1_Init(void); |
|||
void MX_TIM8_Init(void); |
|||
|
|||
/* USER CODE BEGIN Prototypes */ |
|||
|
|||
/* USER CODE END Prototypes */ |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
#endif /* __TIM_H__ */ |
|||
|
|||
@ -0,0 +1,61 @@ |
|||
/* USER CODE BEGIN Header */ |
|||
/**
|
|||
****************************************************************************** |
|||
* @file usart.h |
|||
* @brief This file contains all the function prototypes for |
|||
* the usart.c file |
|||
****************************************************************************** |
|||
* @attention |
|||
* |
|||
* Copyright (c) 2025 STMicroelectronics. |
|||
* All rights reserved. |
|||
* |
|||
* This software is licensed under terms that can be found in the LICENSE file |
|||
* in the root directory of this software component. |
|||
* If no LICENSE file comes with this software, it is provided AS-IS. |
|||
* |
|||
****************************************************************************** |
|||
*/ |
|||
/* USER CODE END Header */ |
|||
/* Define to prevent recursive inclusion -------------------------------------*/ |
|||
#ifndef __USART_H__ |
|||
#define __USART_H__ |
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Includes ------------------------------------------------------------------*/ |
|||
#include "main.h" |
|||
|
|||
/* USER CODE BEGIN Includes */ |
|||
|
|||
/* USER CODE END Includes */ |
|||
|
|||
extern UART_HandleTypeDef hlpuart1; |
|||
|
|||
extern UART_HandleTypeDef huart1; |
|||
|
|||
extern UART_HandleTypeDef huart2; |
|||
|
|||
extern UART_HandleTypeDef huart3; |
|||
|
|||
/* USER CODE BEGIN Private defines */ |
|||
|
|||
/* USER CODE END Private defines */ |
|||
|
|||
void MX_LPUART1_UART_Init(void); |
|||
void MX_USART1_UART_Init(void); |
|||
void MX_USART2_UART_Init(void); |
|||
void MX_USART3_UART_Init(void); |
|||
|
|||
/* USER CODE BEGIN Prototypes */ |
|||
|
|||
/* USER CODE END Prototypes */ |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
|
|||
#endif /* __USART_H__ */ |
|||
|
|||
@ -0,0 +1,12 @@ |
|||
/* 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) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,71 @@ |
|||
/* 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 "msp_SavedMotorParameters.pb.h" |
|||
#include "bsp_PV.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 { /* 摆臂项目 */ |
|||
/* 洗舱项目 */ |
|||
bool has_PV; |
|||
PV_struct_define PV; /* 用户配置数据 */ |
|||
int32_t RobotMoveSpeedBase; |
|||
int32_t SwingMoveSpeedBase; |
|||
int32_t TiltMoveSpeedBase; |
|||
int32_t TiltMoveTargetSpeed; |
|||
int32_t SwingMoveTargetSpeed; |
|||
int32_t TurnLeftRightSpeed; |
|||
} CV_struct_define; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define CV_struct_define_init_default {false, PV_struct_define_init_default, 0, 0, 0, 0, 0, 0} |
|||
#define CV_struct_define_init_zero {false, PV_struct_define_init_zero, 0, 0, 0, 0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define CV_struct_define_PV_tag 1 |
|||
#define CV_struct_define_RobotMoveSpeedBase_tag 2 |
|||
#define CV_struct_define_SwingMoveSpeedBase_tag 3 |
|||
#define CV_struct_define_TiltMoveSpeedBase_tag 4 |
|||
#define CV_struct_define_TiltMoveTargetSpeed_tag 5 |
|||
#define CV_struct_define_SwingMoveTargetSpeed_tag 6 |
|||
#define CV_struct_define_TurnLeftRightSpeed_tag 7 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define CV_struct_define_FIELDLIST(X, a) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, PV, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, RobotMoveSpeedBase, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, SwingMoveSpeedBase, 3) \ |
|||
X(a, STATIC, SINGULAR, INT32, TiltMoveSpeedBase, 4) \ |
|||
X(a, STATIC, SINGULAR, INT32, TiltMoveTargetSpeed, 5) \ |
|||
X(a, STATIC, SINGULAR, INT32, SwingMoveTargetSpeed, 6) \ |
|||
X(a, STATIC, SINGULAR, INT32, TurnLeftRightSpeed, 7) |
|||
#define CV_struct_define_CALLBACK NULL |
|||
#define CV_struct_define_DEFAULT NULL |
|||
#define CV_struct_define_PV_MSGTYPE PV_struct_define |
|||
|
|||
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 79 |
|||
|
|||
#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,12 @@ |
|||
/* Automatically generated nanopb constant definitions */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#include "bsp_DAM.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(DAM_Data, DAM_Data, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,57 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_BSP_DAM_PB_H_INCLUDED |
|||
#define PB_BSP_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 _DAM_Data { |
|||
int32_t DO0; |
|||
int32_t DO1; |
|||
int32_t DO2; |
|||
int32_t DO3; |
|||
} DAM_Data; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define DAM_Data_init_default {0, 0, 0, 0} |
|||
#define DAM_Data_init_zero {0, 0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define DAM_Data_DO0_tag 1 |
|||
#define DAM_Data_DO1_tag 2 |
|||
#define DAM_Data_DO2_tag 3 |
|||
#define DAM_Data_DO3_tag 4 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define DAM_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) |
|||
#define DAM_Data_CALLBACK NULL |
|||
#define DAM_Data_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t DAM_Data_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define DAM_Data_fields &DAM_Data_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define BSP_DAM_PB_H_MAX_SIZE DAM_Data_size |
|||
#define DAM_Data_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_DMKE.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(DMKE_struct_define, DMKE_struct_define, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,57 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_BSP_DMKE_PB_H_INCLUDED |
|||
#define PB_BSP_DMKE_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 _DMKE_struct_define { |
|||
int32_t Slave_ID; |
|||
int32_t TargetSpeedRpm; |
|||
int32_t Command; /* 正转,反转,停止 0 停止 -1 反转 1 正转 */ |
|||
int32_t CurrentState; /* 当前状态,从正转到反转的过程中需要发送停止指令; */ |
|||
} DMKE_struct_define; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define DMKE_struct_define_init_default {0, 0, 0, 0} |
|||
#define DMKE_struct_define_init_zero {0, 0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define DMKE_struct_define_Slave_ID_tag 1 |
|||
#define DMKE_struct_define_TargetSpeedRpm_tag 2 |
|||
#define DMKE_struct_define_Command_tag 3 |
|||
#define DMKE_struct_define_CurrentState_tag 4 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define DMKE_struct_define_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, Slave_ID, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, TargetSpeedRpm, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, Command, 3) \ |
|||
X(a, STATIC, SINGULAR, INT32, CurrentState, 4) |
|||
#define DMKE_struct_define_CALLBACK NULL |
|||
#define DMKE_struct_define_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t DMKE_struct_define_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define DMKE_struct_define_fields &DMKE_struct_define_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define BSP_DMKE_PB_H_MAX_SIZE DMKE_struct_define_size |
|||
#define DMKE_struct_define_size 44 |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,20 @@ |
|||
/* Automatically generated nanopb constant definitions */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#include "bsp_Desulfurizer.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(DesulfurizerMessage, DesulfurizerMessage, 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_DESULFURIZER_PB_H_INCLUDED |
|||
#define PB_BSP_DESULFURIZER_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 _DesulfurizerMessage { |
|||
double Angle; |
|||
double WireLength; |
|||
double Thickness; |
|||
int32_t IsFittingPoint; |
|||
} DesulfurizerMessage; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define DesulfurizerMessage_init_default {0, 0, 0, 0} |
|||
#define DesulfurizerMessage_init_zero {0, 0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define DesulfurizerMessage_Angle_tag 1 |
|||
#define DesulfurizerMessage_WireLength_tag 2 |
|||
#define DesulfurizerMessage_Thickness_tag 3 |
|||
#define DesulfurizerMessage_IsFittingPoint_tag 4 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define DesulfurizerMessage_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, DOUBLE, Angle, 1) \ |
|||
X(a, STATIC, SINGULAR, DOUBLE, WireLength, 2) \ |
|||
X(a, STATIC, SINGULAR, DOUBLE, Thickness, 3) \ |
|||
X(a, STATIC, SINGULAR, INT32, IsFittingPoint, 4) |
|||
#define DesulfurizerMessage_CALLBACK NULL |
|||
#define DesulfurizerMessage_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t DesulfurizerMessage_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define DesulfurizerMessage_fields &DesulfurizerMessage_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define BSP_DESULFURIZER_PB_H_MAX_SIZE DesulfurizerMessage_size |
|||
#define DesulfurizerMessage_size 38 |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,15 @@ |
|||
/* 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(ErrorDataInfo, ErrorDataInfo, AUTO) |
|||
|
|||
|
|||
PB_BIND(ErrorData, ErrorData, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,107 @@ |
|||
/* 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 |
|||
|
|||
/* Struct definitions */ |
|||
typedef struct _ErrorDataInfo { |
|||
int32_t Error_Value; |
|||
pb_byte_t Error_Name[50]; |
|||
} ErrorDataInfo; |
|||
|
|||
typedef struct _ErrorData { |
|||
/* ErrorDataInfo Error1=1;
|
|||
ErrorDataInfo Error2=2; |
|||
ErrorDataInfo Error3=3; |
|||
ErrorDataInfo Error4=4; |
|||
ErrorDataInfo Error5=5; |
|||
ErrorDataInfo Error6=6; |
|||
ErrorDataInfo Error7=7; |
|||
ErrorDataInfo Error8=8; |
|||
ErrorDataInfo Error9=9; |
|||
ErrorDataInfo Error10=10; |
|||
ErrorDataInfo Error11=11; |
|||
ErrorDataInfo Error12=12; |
|||
ErrorDataInfo Error13=13; |
|||
ErrorDataInfo Error14=14; |
|||
ErrorDataInfo Error15=15; |
|||
ErrorDataInfo Error16=16; |
|||
ErrorDataInfo Error17=17; |
|||
ErrorDataInfo Error18=18; |
|||
ErrorDataInfo Error19=19; |
|||
ErrorDataInfo Error20=20; */ |
|||
int32_t ErrorCode; |
|||
int32_t Motor_1_Error; |
|||
int32_t Motor_2_Error; |
|||
int32_t Motor_3_Error; |
|||
int32_t Motor_4_Error; |
|||
int32_t Motor_5_Error; |
|||
int32_t Motor_6_Error; |
|||
int32_t Motor_7_Error; |
|||
} ErrorData; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define ErrorDataInfo_init_default {0, {0}} |
|||
#define ErrorData_init_default {0, 0, 0, 0, 0, 0, 0, 0} |
|||
#define ErrorDataInfo_init_zero {0, {0}} |
|||
#define ErrorData_init_zero {0, 0, 0, 0, 0, 0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define ErrorDataInfo_Error_Value_tag 1 |
|||
#define ErrorDataInfo_Error_Name_tag 4 |
|||
#define ErrorData_ErrorCode_tag 1 |
|||
#define ErrorData_Motor_1_Error_tag 21 |
|||
#define ErrorData_Motor_2_Error_tag 22 |
|||
#define ErrorData_Motor_3_Error_tag 23 |
|||
#define ErrorData_Motor_4_Error_tag 24 |
|||
#define ErrorData_Motor_5_Error_tag 25 |
|||
#define ErrorData_Motor_6_Error_tag 26 |
|||
#define ErrorData_Motor_7_Error_tag 27 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define ErrorDataInfo_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, Error_Value, 1) \ |
|||
X(a, STATIC, SINGULAR, FIXED_LENGTH_BYTES, Error_Name, 4) |
|||
#define ErrorDataInfo_CALLBACK NULL |
|||
#define ErrorDataInfo_DEFAULT NULL |
|||
|
|||
#define ErrorData_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, ErrorCode, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, Motor_1_Error, 21) \ |
|||
X(a, STATIC, SINGULAR, INT32, Motor_2_Error, 22) \ |
|||
X(a, STATIC, SINGULAR, INT32, Motor_3_Error, 23) \ |
|||
X(a, STATIC, SINGULAR, INT32, Motor_4_Error, 24) \ |
|||
X(a, STATIC, SINGULAR, INT32, Motor_5_Error, 25) \ |
|||
X(a, STATIC, SINGULAR, INT32, Motor_6_Error, 26) \ |
|||
X(a, STATIC, SINGULAR, INT32, Motor_7_Error, 27) |
|||
#define ErrorData_CALLBACK NULL |
|||
#define ErrorData_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t ErrorDataInfo_msg; |
|||
extern const pb_msgdesc_t ErrorData_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define ErrorDataInfo_fields &ErrorDataInfo_msg |
|||
#define ErrorData_fields &ErrorData_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define BSP_ERROR_PB_H_MAX_SIZE ErrorData_size |
|||
#define ErrorDataInfo_size 63 |
|||
#define ErrorData_size 95 |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,12 @@ |
|||
/* 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) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,157 @@ |
|||
/* 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_MK32.pb.h" |
|||
#include "msp_Motor.pb.h" |
|||
#include "msp_DH_CAN_Remote.pb.h" |
|||
#include "msp_MPU6050.pb.h" |
|||
#include "msp_ZQ_MotorParameters.pb.h" |
|||
#include "msp_TL720D.pb.h" |
|||
#include "bsp_Error.pb.h" |
|||
#include "bsp_LazorData.pb.h" |
|||
#include "bsp_DAM.pb.h" |
|||
#include "bsp_IO.pb.h" |
|||
#include "msp_LD150_I.pb.h" |
|||
#include "msp_MFOG40_Gyroscope.pb.h" |
|||
#include "bsp_PV.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 { /* 洗舱项目 */ |
|||
bool has_LeftFrontMotor; |
|||
MotorParameters LeftFrontMotor; |
|||
bool has_LeftBackMotor; |
|||
MotorParameters LeftBackMotor; |
|||
bool has_RightBackMotor; |
|||
MotorParameters RightBackMotor; |
|||
bool has_RightFrontMotor; |
|||
MotorParameters RightFrontMotor; |
|||
bool has_SwingMotor; |
|||
MotorParameters SwingMotor; |
|||
bool has_TiltMotor; |
|||
MotorParameters TiltMotor; |
|||
bool has_MK32_Key; |
|||
SP_MSP_MK32_Button MK32_Key; |
|||
int32_t Move_Speed; |
|||
bool has_SystemErrorData; |
|||
ErrorData SystemErrorData; |
|||
bool has_TL720DParameters; |
|||
MSP_TL720DParameters TL720DParameters; |
|||
bool has_LD150Parameters; |
|||
LD150_struct_define LD150Parameters; |
|||
bool has_Mfog40_gyro; |
|||
MFOG40_Gyro_struct_define Mfog40_gyro; |
|||
int32_t Servo_Speed_1; |
|||
int32_t Servo_Speed_2; |
|||
int32_t Servo_Speed_3; |
|||
int32_t Servo_Speed_4; |
|||
int32_t Servo_Power_1; |
|||
int32_t Servo_Power_2; |
|||
int32_t Servo_Power_3; |
|||
int32_t Servo_Power_4; |
|||
int32_t Steering_Angle_3; |
|||
int32_t Steering_Angle_4; |
|||
int32_t Steering_Real_Angle_3; |
|||
int32_t Steering_Real_Angle_4; |
|||
bool has_PV; |
|||
PV_struct_define PV; /* 用户配置数据 */ |
|||
} GV_struct_define; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define GV_struct_define_init_default {false, MotorParameters_init_default, false, MotorParameters_init_default, false, MotorParameters_init_default, false, MotorParameters_init_default, false, MotorParameters_init_default, false, MotorParameters_init_default, false, SP_MSP_MK32_Button_init_default, 0, false, ErrorData_init_default, false, MSP_TL720DParameters_init_default, false, LD150_struct_define_init_default, false, MFOG40_Gyro_struct_define_init_default, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, PV_struct_define_init_default} |
|||
#define GV_struct_define_init_zero {false, MotorParameters_init_zero, false, MotorParameters_init_zero, false, MotorParameters_init_zero, false, MotorParameters_init_zero, false, MotorParameters_init_zero, false, MotorParameters_init_zero, false, SP_MSP_MK32_Button_init_zero, 0, false, ErrorData_init_zero, false, MSP_TL720DParameters_init_zero, false, LD150_struct_define_init_zero, false, MFOG40_Gyro_struct_define_init_zero, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, PV_struct_define_init_zero} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define GV_struct_define_LeftFrontMotor_tag 1 |
|||
#define GV_struct_define_LeftBackMotor_tag 2 |
|||
#define GV_struct_define_RightBackMotor_tag 3 |
|||
#define GV_struct_define_RightFrontMotor_tag 4 |
|||
#define GV_struct_define_SwingMotor_tag 5 |
|||
#define GV_struct_define_TiltMotor_tag 6 |
|||
#define GV_struct_define_MK32_Key_tag 7 |
|||
#define GV_struct_define_Move_Speed_tag 8 |
|||
#define GV_struct_define_SystemErrorData_tag 10 |
|||
#define GV_struct_define_TL720DParameters_tag 11 |
|||
#define GV_struct_define_LD150Parameters_tag 12 |
|||
#define GV_struct_define_Mfog40_gyro_tag 13 |
|||
#define GV_struct_define_Servo_Speed_1_tag 14 |
|||
#define GV_struct_define_Servo_Speed_2_tag 15 |
|||
#define GV_struct_define_Servo_Speed_3_tag 16 |
|||
#define GV_struct_define_Servo_Speed_4_tag 17 |
|||
#define GV_struct_define_Servo_Power_1_tag 18 |
|||
#define GV_struct_define_Servo_Power_2_tag 19 |
|||
#define GV_struct_define_Servo_Power_3_tag 20 |
|||
#define GV_struct_define_Servo_Power_4_tag 21 |
|||
#define GV_struct_define_Steering_Angle_3_tag 22 |
|||
#define GV_struct_define_Steering_Angle_4_tag 23 |
|||
#define GV_struct_define_Steering_Real_Angle_3_tag 24 |
|||
#define GV_struct_define_Steering_Real_Angle_4_tag 25 |
|||
#define GV_struct_define_PV_tag 26 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define GV_struct_define_FIELDLIST(X, a) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, LeftFrontMotor, 1) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, LeftBackMotor, 2) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, RightBackMotor, 3) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, RightFrontMotor, 4) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, SwingMotor, 5) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, TiltMotor, 6) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, MK32_Key, 7) \ |
|||
X(a, STATIC, SINGULAR, INT32, Move_Speed, 8) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, SystemErrorData, 10) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, TL720DParameters, 11) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, LD150Parameters, 12) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, Mfog40_gyro, 13) \ |
|||
X(a, STATIC, SINGULAR, INT32, Servo_Speed_1, 14) \ |
|||
X(a, STATIC, SINGULAR, INT32, Servo_Speed_2, 15) \ |
|||
X(a, STATIC, SINGULAR, INT32, Servo_Speed_3, 16) \ |
|||
X(a, STATIC, SINGULAR, INT32, Servo_Speed_4, 17) \ |
|||
X(a, STATIC, SINGULAR, INT32, Servo_Power_1, 18) \ |
|||
X(a, STATIC, SINGULAR, INT32, Servo_Power_2, 19) \ |
|||
X(a, STATIC, SINGULAR, INT32, Servo_Power_3, 20) \ |
|||
X(a, STATIC, SINGULAR, INT32, Servo_Power_4, 21) \ |
|||
X(a, STATIC, SINGULAR, INT32, Steering_Angle_3, 22) \ |
|||
X(a, STATIC, SINGULAR, INT32, Steering_Angle_4, 23) \ |
|||
X(a, STATIC, SINGULAR, INT32, Steering_Real_Angle_3, 24) \ |
|||
X(a, STATIC, SINGULAR, INT32, Steering_Real_Angle_4, 25) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, PV, 26) |
|||
#define GV_struct_define_CALLBACK NULL |
|||
#define GV_struct_define_DEFAULT NULL |
|||
#define GV_struct_define_LeftFrontMotor_MSGTYPE MotorParameters |
|||
#define GV_struct_define_LeftBackMotor_MSGTYPE MotorParameters |
|||
#define GV_struct_define_RightBackMotor_MSGTYPE MotorParameters |
|||
#define GV_struct_define_RightFrontMotor_MSGTYPE MotorParameters |
|||
#define GV_struct_define_SwingMotor_MSGTYPE MotorParameters |
|||
#define GV_struct_define_TiltMotor_MSGTYPE MotorParameters |
|||
#define GV_struct_define_MK32_Key_MSGTYPE SP_MSP_MK32_Button |
|||
#define GV_struct_define_SystemErrorData_MSGTYPE ErrorData |
|||
#define GV_struct_define_TL720DParameters_MSGTYPE MSP_TL720DParameters |
|||
#define GV_struct_define_LD150Parameters_MSGTYPE LD150_struct_define |
|||
#define GV_struct_define_Mfog40_gyro_MSGTYPE MFOG40_Gyro_struct_define |
|||
#define GV_struct_define_PV_MSGTYPE PV_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 1685 |
|||
|
|||
#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,20 @@ |
|||
/* 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) |
|||
|
|||
|
|||
|
|||
#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,54 @@ |
|||
/* 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 { |
|||
double Robot_Move_Speed; |
|||
int32_t Steer_Angle; |
|||
int32_t Steer_Angle_back; |
|||
} IV_struct_define; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define IV_struct_define_init_default {0, 0, 0} |
|||
#define IV_struct_define_init_zero {0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define IV_struct_define_Robot_Move_Speed_tag 1 |
|||
#define IV_struct_define_Steer_Angle_tag 2 |
|||
#define IV_struct_define_Steer_Angle_back_tag 3 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define IV_struct_define_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, DOUBLE, Robot_Move_Speed, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, Steer_Angle, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, Steer_Angle_back, 3) |
|||
#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 31 |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,12 @@ |
|||
/* Automatically generated nanopb constant definitions */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#include "bsp_LazorData.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(LazorData, LazorData, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,64 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_BSP_LAZORDATA_PB_H_INCLUDED |
|||
#define PB_BSP_LAZORDATA_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 _LazorData { |
|||
float Feature_X; /* 特征点X */ |
|||
float Feature_Y; /* 特征点Y */ |
|||
float Feature_Z; /* 特征点Z */ |
|||
float Gap; /* 间隙 */ |
|||
float WrongEdgeQuantity; /* 错边量 */ |
|||
float Area; /* 面积 */ |
|||
} LazorData; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define LazorData_init_default {0, 0, 0, 0, 0, 0} |
|||
#define LazorData_init_zero {0, 0, 0, 0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define LazorData_Feature_X_tag 1 |
|||
#define LazorData_Feature_Y_tag 2 |
|||
#define LazorData_Feature_Z_tag 3 |
|||
#define LazorData_Gap_tag 4 |
|||
#define LazorData_WrongEdgeQuantity_tag 5 |
|||
#define LazorData_Area_tag 6 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define LazorData_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, FLOAT, Feature_X, 1) \ |
|||
X(a, STATIC, SINGULAR, FLOAT, Feature_Y, 2) \ |
|||
X(a, STATIC, SINGULAR, FLOAT, Feature_Z, 3) \ |
|||
X(a, STATIC, SINGULAR, FLOAT, Gap, 4) \ |
|||
X(a, STATIC, SINGULAR, FLOAT, WrongEdgeQuantity, 5) \ |
|||
X(a, STATIC, SINGULAR, FLOAT, Area, 6) |
|||
#define LazorData_CALLBACK NULL |
|||
#define LazorData_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t LazorData_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define LazorData_fields &LazorData_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define BSP_LAZORDATA_PB_H_MAX_SIZE LazorData_size |
|||
#define LazorData_size 30 |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,12 @@ |
|||
/* 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) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,48 @@ |
|||
/* 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 Robot_Tilt_TargetCurrent; |
|||
} PV_struct_define; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define PV_struct_define_init_default {0} |
|||
#define PV_struct_define_init_zero {0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define PV_struct_define_Robot_Tilt_TargetCurrent_tag 1 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define PV_struct_define_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, Robot_Tilt_TargetCurrent, 1) |
|||
#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 11 |
|||
|
|||
#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[500]; |
|||
} 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 580 |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,12 @@ |
|||
/* Automatically generated nanopb constant definitions */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#include "bsp_Trace.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(TraceMessage, TraceMessage, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,53 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_BSP_TRACE_PB_H_INCLUDED |
|||
#define PB_BSP_TRACE_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 _TraceMessage { |
|||
pb_callback_t Level; |
|||
pb_callback_t Logger; |
|||
pb_callback_t Message; |
|||
} TraceMessage; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define TraceMessage_init_default {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}} |
|||
#define TraceMessage_init_zero {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define TraceMessage_Level_tag 1 |
|||
#define TraceMessage_Logger_tag 2 |
|||
#define TraceMessage_Message_tag 4 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define TraceMessage_FIELDLIST(X, a) \ |
|||
X(a, CALLBACK, SINGULAR, STRING, Level, 1) \ |
|||
X(a, CALLBACK, SINGULAR, STRING, Logger, 2) \ |
|||
X(a, CALLBACK, SINGULAR, STRING, Message, 4) |
|||
#define TraceMessage_CALLBACK pb_default_field_callback |
|||
#define TraceMessage_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t TraceMessage_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define TraceMessage_fields &TraceMessage_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
/* TraceMessage_size depends on runtime parameters */ |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,12 @@ |
|||
/* Automatically generated nanopb constant definitions */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#include "msp_CMCU.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(CMCU_struct_define, CMCU_struct_define, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,48 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_CMCU_PB_H_INCLUDED |
|||
#define PB_MSP_CMCU_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 _CMCU_struct_define { |
|||
int32_t CMCU_Measuring_value; |
|||
} CMCU_struct_define; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define CMCU_struct_define_init_default {0} |
|||
#define CMCU_struct_define_init_zero {0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define CMCU_struct_define_CMCU_Measuring_value_tag 1 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define CMCU_struct_define_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, CMCU_Measuring_value, 1) |
|||
#define CMCU_struct_define_CALLBACK NULL |
|||
#define CMCU_struct_define_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t CMCU_struct_define_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define CMCU_struct_define_fields &CMCU_struct_define_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define CMCU_struct_define_size 11 |
|||
#define MSP_CMCU_PB_H_MAX_SIZE CMCU_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_DH_CAN_Remote.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(DH_CAN_Remote, DH_CAN_Remote, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,111 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_DH_CAN_REMOTE_PB_H_INCLUDED |
|||
#define PB_MSP_DH_CAN_REMOTE_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 _DH_CAN_Remote { |
|||
int32_t Front_Back_Move_Value; |
|||
int32_t Left_Right_Turn_Value; |
|||
int32_t Swing_Speed_Value; /* 摆臂速度 */ |
|||
int32_t Swing_Angle_Value; /* 摆臂角度 */ |
|||
int32_t Left_Compensation_Value; /* 左补偿 */ |
|||
int32_t Right_Compensation_Value; /* 右补偿 */ |
|||
int32_t Emergency_Stop; /* 急停 */ |
|||
int32_t Move_Forward; /* 前进 */ |
|||
int32_t Move_Backward; /* 后退 */ |
|||
int32_t Move_Turn_Left; /* 左转 */ |
|||
int32_t Move_Turn_Right; /* 右转 */ |
|||
int32_t Vehicle_Speed; /* 车体速度 */ |
|||
int32_t Mode_Selection; /* 模式选择 */ |
|||
int32_t UpWards; /* 上升 */ |
|||
int32_t DownWards; /* 下降 */ |
|||
int32_t Increase; /* 增加后退距离的增加减少 */ |
|||
int32_t Decrease; /* 增加后退距离的增加减少 */ |
|||
int32_t Work_Start; /* 作业开启 */ |
|||
int32_t Lane_Change; /* 换道 */ |
|||
int32_t WireLessState; /* 无线状态 */ |
|||
int32_t Swing_Left; /* 左摆 */ |
|||
int32_t Swing_Right; /* 右摆 */ |
|||
} DH_CAN_Remote; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define DH_CAN_Remote_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
|||
#define DH_CAN_Remote_init_zero {0, 0, 0, 0, 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 DH_CAN_Remote_Front_Back_Move_Value_tag 1 |
|||
#define DH_CAN_Remote_Left_Right_Turn_Value_tag 2 |
|||
#define DH_CAN_Remote_Swing_Speed_Value_tag 3 |
|||
#define DH_CAN_Remote_Swing_Angle_Value_tag 4 |
|||
#define DH_CAN_Remote_Left_Compensation_Value_tag 5 |
|||
#define DH_CAN_Remote_Right_Compensation_Value_tag 6 |
|||
#define DH_CAN_Remote_Emergency_Stop_tag 7 |
|||
#define DH_CAN_Remote_Move_Forward_tag 8 |
|||
#define DH_CAN_Remote_Move_Backward_tag 9 |
|||
#define DH_CAN_Remote_Move_Turn_Left_tag 10 |
|||
#define DH_CAN_Remote_Move_Turn_Right_tag 11 |
|||
#define DH_CAN_Remote_Vehicle_Speed_tag 12 |
|||
#define DH_CAN_Remote_Mode_Selection_tag 13 |
|||
#define DH_CAN_Remote_UpWards_tag 14 |
|||
#define DH_CAN_Remote_DownWards_tag 15 |
|||
#define DH_CAN_Remote_Increase_tag 16 |
|||
#define DH_CAN_Remote_Decrease_tag 17 |
|||
#define DH_CAN_Remote_Work_Start_tag 18 |
|||
#define DH_CAN_Remote_Lane_Change_tag 19 |
|||
#define DH_CAN_Remote_WireLessState_tag 20 |
|||
#define DH_CAN_Remote_Swing_Left_tag 21 |
|||
#define DH_CAN_Remote_Swing_Right_tag 22 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define DH_CAN_Remote_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, Front_Back_Move_Value, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, Left_Right_Turn_Value, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, Swing_Speed_Value, 3) \ |
|||
X(a, STATIC, SINGULAR, INT32, Swing_Angle_Value, 4) \ |
|||
X(a, STATIC, SINGULAR, INT32, Left_Compensation_Value, 5) \ |
|||
X(a, STATIC, SINGULAR, INT32, Right_Compensation_Value, 6) \ |
|||
X(a, STATIC, SINGULAR, INT32, Emergency_Stop, 7) \ |
|||
X(a, STATIC, SINGULAR, INT32, Move_Forward, 8) \ |
|||
X(a, STATIC, SINGULAR, INT32, Move_Backward, 9) \ |
|||
X(a, STATIC, SINGULAR, INT32, Move_Turn_Left, 10) \ |
|||
X(a, STATIC, SINGULAR, INT32, Move_Turn_Right, 11) \ |
|||
X(a, STATIC, SINGULAR, INT32, Vehicle_Speed, 12) \ |
|||
X(a, STATIC, SINGULAR, INT32, Mode_Selection, 13) \ |
|||
X(a, STATIC, SINGULAR, INT32, UpWards, 14) \ |
|||
X(a, STATIC, SINGULAR, INT32, DownWards, 15) \ |
|||
X(a, STATIC, SINGULAR, INT32, Increase, 16) \ |
|||
X(a, STATIC, SINGULAR, INT32, Decrease, 17) \ |
|||
X(a, STATIC, SINGULAR, INT32, Work_Start, 18) \ |
|||
X(a, STATIC, SINGULAR, INT32, Lane_Change, 19) \ |
|||
X(a, STATIC, SINGULAR, INT32, WireLessState, 20) \ |
|||
X(a, STATIC, SINGULAR, INT32, Swing_Left, 21) \ |
|||
X(a, STATIC, SINGULAR, INT32, Swing_Right, 22) |
|||
#define DH_CAN_Remote_CALLBACK NULL |
|||
#define DH_CAN_Remote_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t DH_CAN_Remote_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define DH_CAN_Remote_fields &DH_CAN_Remote_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define DH_CAN_Remote_size 249 |
|||
#define MSP_DH_CAN_REMOTE_PB_H_MAX_SIZE DH_CAN_Remote_size |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,12 @@ |
|||
/* Automatically generated nanopb constant definitions */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#include "msp_DH_W_H.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(SP_MSP_DH_Handset_Parameters, SP_MSP_DH_Handset_Parameters, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,102 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_DH_W_H_PB_H_INCLUDED |
|||
#define PB_MSP_DH_W_H_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_DH_Handset_Parameters { |
|||
int32_t For_Back_Value_X; |
|||
int32_t Left_Right_Value_Y; |
|||
int32_t for_flag; |
|||
int32_t back_flag; |
|||
int32_t left_flag; |
|||
int32_t right_flag; |
|||
int32_t Rise_down_X; |
|||
int32_t Turn_Left_Right_Y; |
|||
int32_t EMERGENCY_STOP; |
|||
int32_t working_start; |
|||
int32_t working_stop; |
|||
int32_t Vertical_change_road_up; |
|||
int32_t Vertical_change_road_down; |
|||
int32_t Vertical_change_road_finish_flag; |
|||
int32_t test_start; |
|||
int32_t test_stop; |
|||
int32_t open; |
|||
int32_t close; |
|||
int32_t motor_speed_level; |
|||
} SP_MSP_DH_Handset_Parameters; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define SP_MSP_DH_Handset_Parameters_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
|||
#define SP_MSP_DH_Handset_Parameters_init_zero {0, 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_DH_Handset_Parameters_For_Back_Value_X_tag 1 |
|||
#define SP_MSP_DH_Handset_Parameters_Left_Right_Value_Y_tag 2 |
|||
#define SP_MSP_DH_Handset_Parameters_for_flag_tag 3 |
|||
#define SP_MSP_DH_Handset_Parameters_back_flag_tag 4 |
|||
#define SP_MSP_DH_Handset_Parameters_left_flag_tag 5 |
|||
#define SP_MSP_DH_Handset_Parameters_right_flag_tag 6 |
|||
#define SP_MSP_DH_Handset_Parameters_Rise_down_X_tag 7 |
|||
#define SP_MSP_DH_Handset_Parameters_Turn_Left_Right_Y_tag 8 |
|||
#define SP_MSP_DH_Handset_Parameters_EMERGENCY_STOP_tag 9 |
|||
#define SP_MSP_DH_Handset_Parameters_working_start_tag 10 |
|||
#define SP_MSP_DH_Handset_Parameters_working_stop_tag 11 |
|||
#define SP_MSP_DH_Handset_Parameters_Vertical_change_road_up_tag 12 |
|||
#define SP_MSP_DH_Handset_Parameters_Vertical_change_road_down_tag 13 |
|||
#define SP_MSP_DH_Handset_Parameters_Vertical_change_road_finish_flag_tag 14 |
|||
#define SP_MSP_DH_Handset_Parameters_test_start_tag 15 |
|||
#define SP_MSP_DH_Handset_Parameters_test_stop_tag 16 |
|||
#define SP_MSP_DH_Handset_Parameters_open_tag 17 |
|||
#define SP_MSP_DH_Handset_Parameters_close_tag 18 |
|||
#define SP_MSP_DH_Handset_Parameters_motor_speed_level_tag 19 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define SP_MSP_DH_Handset_Parameters_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, For_Back_Value_X, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, Left_Right_Value_Y, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, for_flag, 3) \ |
|||
X(a, STATIC, SINGULAR, INT32, back_flag, 4) \ |
|||
X(a, STATIC, SINGULAR, INT32, left_flag, 5) \ |
|||
X(a, STATIC, SINGULAR, INT32, right_flag, 6) \ |
|||
X(a, STATIC, SINGULAR, INT32, Rise_down_X, 7) \ |
|||
X(a, STATIC, SINGULAR, INT32, Turn_Left_Right_Y, 8) \ |
|||
X(a, STATIC, SINGULAR, INT32, EMERGENCY_STOP, 9) \ |
|||
X(a, STATIC, SINGULAR, INT32, working_start, 10) \ |
|||
X(a, STATIC, SINGULAR, INT32, working_stop, 11) \ |
|||
X(a, STATIC, SINGULAR, INT32, Vertical_change_road_up, 12) \ |
|||
X(a, STATIC, SINGULAR, INT32, Vertical_change_road_down, 13) \ |
|||
X(a, STATIC, SINGULAR, INT32, Vertical_change_road_finish_flag, 14) \ |
|||
X(a, STATIC, SINGULAR, INT32, test_start, 15) \ |
|||
X(a, STATIC, SINGULAR, INT32, test_stop, 16) \ |
|||
X(a, STATIC, SINGULAR, INT32, open, 17) \ |
|||
X(a, STATIC, SINGULAR, INT32, close, 18) \ |
|||
X(a, STATIC, SINGULAR, INT32, motor_speed_level, 19) |
|||
#define SP_MSP_DH_Handset_Parameters_CALLBACK NULL |
|||
#define SP_MSP_DH_Handset_Parameters_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t SP_MSP_DH_Handset_Parameters_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define SP_MSP_DH_Handset_Parameters_fields &SP_MSP_DH_Handset_Parameters_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define MSP_DH_W_H_PB_H_MAX_SIZE SP_MSP_DH_Handset_Parameters_size |
|||
#define SP_MSP_DH_Handset_Parameters_size 213 |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,12 @@ |
|||
/* Automatically generated nanopb constant definitions */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#include "msp_KS206.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(KS206_struct_define, KS206_struct_define, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,51 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_KS206_PB_H_INCLUDED |
|||
#define PB_MSP_KS206_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 _KS206_struct_define { |
|||
int32_t KS206_1_Measuring_Distance; |
|||
int32_t KS206_2_Measuring_Distance; |
|||
} KS206_struct_define; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define KS206_struct_define_init_default {0, 0} |
|||
#define KS206_struct_define_init_zero {0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define KS206_struct_define_KS206_1_Measuring_Distance_tag 1 |
|||
#define KS206_struct_define_KS206_2_Measuring_Distance_tag 2 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define KS206_struct_define_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, KS206_1_Measuring_Distance, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, KS206_2_Measuring_Distance, 2) |
|||
#define KS206_struct_define_CALLBACK NULL |
|||
#define KS206_struct_define_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t KS206_struct_define_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define KS206_struct_define_fields &KS206_struct_define_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define KS206_struct_define_size 22 |
|||
#define MSP_KS206_PB_H_MAX_SIZE KS206_struct_define_size |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,23 @@ |
|||
/* Automatically generated nanopb constant definitions */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#include "msp_LD150_I.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(location, location, AUTO) |
|||
|
|||
|
|||
PB_BIND(LD150_struct_define, LD150_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,82 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_LD150_I_PB_H_INCLUDED |
|||
#define PB_MSP_LD150_I_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 _location { |
|||
double x; |
|||
double y; |
|||
} location; |
|||
|
|||
typedef struct _LD150_struct_define { |
|||
int32_t TagToAnc0; |
|||
int32_t TagToAnc1; |
|||
int32_t TagToAnc2; |
|||
bool has_location_anc; |
|||
location location_anc; |
|||
bool has_location_tag; |
|||
location location_tag; |
|||
} LD150_struct_define; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define location_init_default {0, 0} |
|||
#define LD150_struct_define_init_default {0, 0, 0, false, location_init_default, false, location_init_default} |
|||
#define location_init_zero {0, 0} |
|||
#define LD150_struct_define_init_zero {0, 0, 0, false, location_init_zero, false, location_init_zero} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define location_x_tag 1 |
|||
#define location_y_tag 2 |
|||
#define LD150_struct_define_TagToAnc0_tag 1 |
|||
#define LD150_struct_define_TagToAnc1_tag 2 |
|||
#define LD150_struct_define_TagToAnc2_tag 3 |
|||
#define LD150_struct_define_location_anc_tag 4 |
|||
#define LD150_struct_define_location_tag_tag 5 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define location_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, DOUBLE, x, 1) \ |
|||
X(a, STATIC, SINGULAR, DOUBLE, y, 2) |
|||
#define location_CALLBACK NULL |
|||
#define location_DEFAULT NULL |
|||
|
|||
#define LD150_struct_define_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, TagToAnc0, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, TagToAnc1, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, TagToAnc2, 3) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, location_anc, 4) \ |
|||
X(a, STATIC, OPTIONAL, MESSAGE, location_tag, 5) |
|||
#define LD150_struct_define_CALLBACK NULL |
|||
#define LD150_struct_define_DEFAULT NULL |
|||
#define LD150_struct_define_location_anc_MSGTYPE location |
|||
#define LD150_struct_define_location_tag_MSGTYPE location |
|||
|
|||
extern const pb_msgdesc_t location_msg; |
|||
extern const pb_msgdesc_t LD150_struct_define_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define location_fields &location_msg |
|||
#define LD150_struct_define_fields &LD150_struct_define_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define LD150_struct_define_size 73 |
|||
#define MSP_LD150_I_PB_H_MAX_SIZE LD150_struct_define_size |
|||
#define location_size 18 |
|||
|
|||
#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_LeiSai_ISV2CAN.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(ISV_MotorParameters, ISV_MotorParameters, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,75 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_LEISAI_ISV2CAN_PB_H_INCLUDED |
|||
#define PB_MSP_LEISAI_ISV2CAN_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 _ISV_MotorParameters { |
|||
int32_t MotorID; |
|||
int32_t Real_Current; |
|||
int32_t Target_Current; |
|||
int32_t Real_Velcity; |
|||
int32_t Target_Velcity; |
|||
int32_t Target_Position; |
|||
int32_t Real_Position; |
|||
int32_t TT_Motor_Fault; |
|||
int32_t AccTime; |
|||
int32_t DecTime; |
|||
} ISV_MotorParameters; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define ISV_MotorParameters_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
|||
#define ISV_MotorParameters_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define ISV_MotorParameters_MotorID_tag 1 |
|||
#define ISV_MotorParameters_Real_Current_tag 2 |
|||
#define ISV_MotorParameters_Target_Current_tag 3 |
|||
#define ISV_MotorParameters_Real_Velcity_tag 4 |
|||
#define ISV_MotorParameters_Target_Velcity_tag 5 |
|||
#define ISV_MotorParameters_Target_Position_tag 6 |
|||
#define ISV_MotorParameters_Real_Position_tag 7 |
|||
#define ISV_MotorParameters_TT_Motor_Fault_tag 8 |
|||
#define ISV_MotorParameters_AccTime_tag 37 |
|||
#define ISV_MotorParameters_DecTime_tag 38 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define ISV_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, TT_Motor_Fault, 8) \ |
|||
X(a, STATIC, SINGULAR, INT32, AccTime, 37) \ |
|||
X(a, STATIC, SINGULAR, INT32, DecTime, 38) |
|||
#define ISV_MotorParameters_CALLBACK NULL |
|||
#define ISV_MotorParameters_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t ISV_MotorParameters_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define ISV_MotorParameters_fields &ISV_MotorParameters_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define ISV_MotorParameters_size 112 |
|||
#define MSP_LEISAI_ISV2CAN_PB_H_MAX_SIZE ISV_MotorParameters_size |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,20 @@ |
|||
/* Automatically generated nanopb constant definitions */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#include "msp_MFOG40_Gyroscope.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(MFOG40_Gyro_struct_define, MFOG40_Gyro_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,54 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_MFOG40_GYROSCOPE_PB_H_INCLUDED |
|||
#define PB_MSP_MFOG40_GYROSCOPE_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 _MFOG40_Gyro_struct_define { |
|||
int32_t gyro_angularvel; |
|||
double gyro_angular; |
|||
int32_t gyro_temper; |
|||
} MFOG40_Gyro_struct_define; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define MFOG40_Gyro_struct_define_init_default {0, 0, 0} |
|||
#define MFOG40_Gyro_struct_define_init_zero {0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define MFOG40_Gyro_struct_define_gyro_angularvel_tag 1 |
|||
#define MFOG40_Gyro_struct_define_gyro_angular_tag 2 |
|||
#define MFOG40_Gyro_struct_define_gyro_temper_tag 3 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define MFOG40_Gyro_struct_define_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, gyro_angularvel, 1) \ |
|||
X(a, STATIC, SINGULAR, DOUBLE, gyro_angular, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, gyro_temper, 3) |
|||
#define MFOG40_Gyro_struct_define_CALLBACK NULL |
|||
#define MFOG40_Gyro_struct_define_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t MFOG40_Gyro_struct_define_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define MFOG40_Gyro_struct_define_fields &MFOG40_Gyro_struct_define_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define MFOG40_Gyro_struct_define_size 31 |
|||
#define MSP_MFOG40_GYROSCOPE_PB_H_MAX_SIZE MFOG40_Gyro_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_MK32.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(SP_MSP_MK32_Button, SP_MSP_MK32_Button, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,99 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_MK32_PB_H_INCLUDED |
|||
#define PB_MSP_MK32_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_MK32_Button { |
|||
int32_t RxIndex; |
|||
int32_t CH0_RY_H; |
|||
int32_t CH1_RY_V; |
|||
int32_t CH2_LY_V; |
|||
int32_t CH3_LY_H; |
|||
int32_t CH4_SA; |
|||
int32_t CH5_SB; |
|||
int32_t CH6_SC; |
|||
int32_t CH7_SD; |
|||
int32_t CH8_SE; |
|||
int32_t CH9_SF; |
|||
int32_t CH10_LD1; |
|||
int32_t CH11_RD1; |
|||
int32_t CH12_S1; |
|||
int32_t CH13_S2; |
|||
int32_t CH14_LT; |
|||
int32_t CH15_RT; |
|||
int32_t IsOnline; |
|||
} SP_MSP_MK32_Button; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define SP_MSP_MK32_Button_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
|||
#define SP_MSP_MK32_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_MK32_Button_RxIndex_tag 1 |
|||
#define SP_MSP_MK32_Button_CH0_RY_H_tag 2 |
|||
#define SP_MSP_MK32_Button_CH1_RY_V_tag 3 |
|||
#define SP_MSP_MK32_Button_CH2_LY_V_tag 4 |
|||
#define SP_MSP_MK32_Button_CH3_LY_H_tag 5 |
|||
#define SP_MSP_MK32_Button_CH4_SA_tag 6 |
|||
#define SP_MSP_MK32_Button_CH5_SB_tag 7 |
|||
#define SP_MSP_MK32_Button_CH6_SC_tag 8 |
|||
#define SP_MSP_MK32_Button_CH7_SD_tag 9 |
|||
#define SP_MSP_MK32_Button_CH8_SE_tag 10 |
|||
#define SP_MSP_MK32_Button_CH9_SF_tag 11 |
|||
#define SP_MSP_MK32_Button_CH10_LD1_tag 12 |
|||
#define SP_MSP_MK32_Button_CH11_RD1_tag 13 |
|||
#define SP_MSP_MK32_Button_CH12_S1_tag 14 |
|||
#define SP_MSP_MK32_Button_CH13_S2_tag 15 |
|||
#define SP_MSP_MK32_Button_CH14_LT_tag 16 |
|||
#define SP_MSP_MK32_Button_CH15_RT_tag 17 |
|||
#define SP_MSP_MK32_Button_IsOnline_tag 18 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define SP_MSP_MK32_Button_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, RxIndex, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH0_RY_H, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH1_RY_V, 3) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH2_LY_V, 4) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH3_LY_H, 5) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH4_SA, 6) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH5_SB, 7) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH6_SC, 8) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH7_SD, 9) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH8_SE, 10) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH9_SF, 11) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH10_LD1, 12) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH11_RD1, 13) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH12_S1, 14) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH13_S2, 15) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH14_LT, 16) \ |
|||
X(a, STATIC, SINGULAR, INT32, CH15_RT, 17) \ |
|||
X(a, STATIC, SINGULAR, INT32, IsOnline, 18) |
|||
#define SP_MSP_MK32_Button_CALLBACK NULL |
|||
#define SP_MSP_MK32_Button_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t SP_MSP_MK32_Button_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define SP_MSP_MK32_Button_fields &SP_MSP_MK32_Button_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define MSP_MK32_PB_H_MAX_SIZE SP_MSP_MK32_Button_size |
|||
#define SP_MSP_MK32_Button_size 201 |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
@ -0,0 +1,12 @@ |
|||
/* Automatically generated nanopb constant definitions */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#include "msp_MPU6050.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(SP_BSP_MPU6050, SP_BSP_MPU6050, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,69 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_MPU6050_PB_H_INCLUDED |
|||
#define PB_MSP_MPU6050_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_BSP_MPU6050 { |
|||
int32_t MPU_Pitch; /* 10 */ |
|||
int32_t MPU_Roll; |
|||
int32_t MPU_Gro_X; |
|||
int32_t MPU_Gro_Y; |
|||
int32_t MPU_Gro_Z; |
|||
int32_t MPU_Acc_X; |
|||
int32_t MPU_Acc_Y; |
|||
int32_t MPU_Acc_Z; |
|||
} SP_BSP_MPU6050; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define SP_BSP_MPU6050_init_default {0, 0, 0, 0, 0, 0, 0, 0} |
|||
#define SP_BSP_MPU6050_init_zero {0, 0, 0, 0, 0, 0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define SP_BSP_MPU6050_MPU_Pitch_tag 1 |
|||
#define SP_BSP_MPU6050_MPU_Roll_tag 2 |
|||
#define SP_BSP_MPU6050_MPU_Gro_X_tag 3 |
|||
#define SP_BSP_MPU6050_MPU_Gro_Y_tag 4 |
|||
#define SP_BSP_MPU6050_MPU_Gro_Z_tag 5 |
|||
#define SP_BSP_MPU6050_MPU_Acc_X_tag 6 |
|||
#define SP_BSP_MPU6050_MPU_Acc_Y_tag 7 |
|||
#define SP_BSP_MPU6050_MPU_Acc_Z_tag 8 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define SP_BSP_MPU6050_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, MPU_Pitch, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, MPU_Roll, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, MPU_Gro_X, 3) \ |
|||
X(a, STATIC, SINGULAR, INT32, MPU_Gro_Y, 4) \ |
|||
X(a, STATIC, SINGULAR, INT32, MPU_Gro_Z, 5) \ |
|||
X(a, STATIC, SINGULAR, INT32, MPU_Acc_X, 6) \ |
|||
X(a, STATIC, SINGULAR, INT32, MPU_Acc_Y, 7) \ |
|||
X(a, STATIC, SINGULAR, INT32, MPU_Acc_Z, 8) |
|||
#define SP_BSP_MPU6050_CALLBACK NULL |
|||
#define SP_BSP_MPU6050_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t SP_BSP_MPU6050_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define SP_BSP_MPU6050_fields &SP_BSP_MPU6050_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define MSP_MPU6050_PB_H_MAX_SIZE SP_BSP_MPU6050_size |
|||
#define SP_BSP_MPU6050_size 88 |
|||
|
|||
#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_SavedMotorParameters.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(SavedMotorParameters, SavedMotorParameters, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,62 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_SAVEDMOTORPARAMETERS_PB_H_INCLUDED |
|||
#define PB_MSP_SAVEDMOTORPARAMETERS_PB_H_INCLUDED |
|||
#include "pb.h" |
|||
#include "msp_MK32.pb.h" |
|||
#include "msp_Motor.pb.h" |
|||
#include "msp_DH_CAN_Remote.pb.h" |
|||
#include "msp_MPU6050.pb.h" |
|||
#include "msp_ZQ_MotorParameters.pb.h" |
|||
|
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
/* Struct definitions */ |
|||
typedef struct _SavedMotorParameters { |
|||
int32_t AccTime; |
|||
int32_t DecTime; |
|||
int32_t TargetSpeed; |
|||
int32_t MotorID; |
|||
} SavedMotorParameters; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define SavedMotorParameters_init_default {0, 0, 0, 0} |
|||
#define SavedMotorParameters_init_zero {0, 0, 0, 0} |
|||
|
|||
/* Field tags (for use in manual encoding/decoding) */ |
|||
#define SavedMotorParameters_AccTime_tag 1 |
|||
#define SavedMotorParameters_DecTime_tag 2 |
|||
#define SavedMotorParameters_TargetSpeed_tag 3 |
|||
#define SavedMotorParameters_MotorID_tag 4 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define SavedMotorParameters_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, AccTime, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, DecTime, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, TargetSpeed, 3) \ |
|||
X(a, STATIC, SINGULAR, INT32, MotorID, 4) |
|||
#define SavedMotorParameters_CALLBACK NULL |
|||
#define SavedMotorParameters_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t SavedMotorParameters_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define SavedMotorParameters_fields &SavedMotorParameters_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define MSP_SAVEDMOTORPARAMETERS_PB_H_MAX_SIZE SavedMotorParameters_size |
|||
#define SavedMotorParameters_size 44 |
|||
|
|||
#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_UWB_LinkPG.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(UWB_LinkPG_struct_define, UWB_LinkPG_struct_define, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,90 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_UWB_LINKPG_PB_H_INCLUDED |
|||
#define PB_MSP_UWB_LINKPG_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 _UWB_LinkPG_struct_define { |
|||
int32_t loc_cal_success; |
|||
int32_t tag0_x; |
|||
int32_t tag0_y; |
|||
int32_t anchorA_to_tag0; |
|||
int32_t anchorB_to_tag0; |
|||
int32_t anchorC_to_tag0; |
|||
int32_t anchorD_to_tag0; |
|||
int32_t anchorA_to_anchorB; |
|||
int32_t anchorA_to_anchorC; |
|||
int32_t anchorA_to_anchorD; |
|||
int32_t anchorB_to_anchorC; |
|||
int32_t anchorB_to_anchorD; |
|||
int32_t anchorC_to_anchorD; |
|||
int32_t tag1_x; |
|||
int32_t tag1_y; |
|||
} UWB_LinkPG_struct_define; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define UWB_LinkPG_struct_define_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
|||
#define UWB_LinkPG_struct_define_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 UWB_LinkPG_struct_define_loc_cal_success_tag 1 |
|||
#define UWB_LinkPG_struct_define_tag0_x_tag 2 |
|||
#define UWB_LinkPG_struct_define_tag0_y_tag 3 |
|||
#define UWB_LinkPG_struct_define_anchorA_to_tag0_tag 4 |
|||
#define UWB_LinkPG_struct_define_anchorB_to_tag0_tag 5 |
|||
#define UWB_LinkPG_struct_define_anchorC_to_tag0_tag 6 |
|||
#define UWB_LinkPG_struct_define_anchorD_to_tag0_tag 7 |
|||
#define UWB_LinkPG_struct_define_anchorA_to_anchorB_tag 8 |
|||
#define UWB_LinkPG_struct_define_anchorA_to_anchorC_tag 9 |
|||
#define UWB_LinkPG_struct_define_anchorA_to_anchorD_tag 10 |
|||
#define UWB_LinkPG_struct_define_anchorB_to_anchorC_tag 11 |
|||
#define UWB_LinkPG_struct_define_anchorB_to_anchorD_tag 12 |
|||
#define UWB_LinkPG_struct_define_anchorC_to_anchorD_tag 13 |
|||
#define UWB_LinkPG_struct_define_tag1_x_tag 14 |
|||
#define UWB_LinkPG_struct_define_tag1_y_tag 15 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define UWB_LinkPG_struct_define_FIELDLIST(X, a) \ |
|||
X(a, STATIC, SINGULAR, INT32, loc_cal_success, 1) \ |
|||
X(a, STATIC, SINGULAR, INT32, tag0_x, 2) \ |
|||
X(a, STATIC, SINGULAR, INT32, tag0_y, 3) \ |
|||
X(a, STATIC, SINGULAR, INT32, anchorA_to_tag0, 4) \ |
|||
X(a, STATIC, SINGULAR, INT32, anchorB_to_tag0, 5) \ |
|||
X(a, STATIC, SINGULAR, INT32, anchorC_to_tag0, 6) \ |
|||
X(a, STATIC, SINGULAR, INT32, anchorD_to_tag0, 7) \ |
|||
X(a, STATIC, SINGULAR, INT32, anchorA_to_anchorB, 8) \ |
|||
X(a, STATIC, SINGULAR, INT32, anchorA_to_anchorC, 9) \ |
|||
X(a, STATIC, SINGULAR, INT32, anchorA_to_anchorD, 10) \ |
|||
X(a, STATIC, SINGULAR, INT32, anchorB_to_anchorC, 11) \ |
|||
X(a, STATIC, SINGULAR, INT32, anchorB_to_anchorD, 12) \ |
|||
X(a, STATIC, SINGULAR, INT32, anchorC_to_anchorD, 13) \ |
|||
X(a, STATIC, SINGULAR, INT32, tag1_x, 14) \ |
|||
X(a, STATIC, SINGULAR, INT32, tag1_y, 15) |
|||
#define UWB_LinkPG_struct_define_CALLBACK NULL |
|||
#define UWB_LinkPG_struct_define_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t UWB_LinkPG_struct_define_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define UWB_LinkPG_struct_define_fields &UWB_LinkPG_struct_define_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define MSP_UWB_LINKPG_PB_H_MAX_SIZE UWB_LinkPG_struct_define_size |
|||
#define UWB_LinkPG_struct_define_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_ZQ_MotorParameters.pb.h" |
|||
#if PB_PROTO_HEADER_VERSION != 40 |
|||
#error Regenerate this file with the current version of nanopb generator. |
|||
#endif |
|||
|
|||
PB_BIND(TT_MotorParameters, TT_MotorParameters, AUTO) |
|||
|
|||
|
|||
|
|||
@ -0,0 +1,159 @@ |
|||
/* Automatically generated nanopb header */ |
|||
/* Generated by nanopb-0.4.8 */ |
|||
|
|||
#ifndef PB_MSP_ZQ_MOTORPARAMETERS_PB_H_INCLUDED |
|||
#define PB_MSP_ZQ_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 _TT_MotorParameters { |
|||
int32_t MotorID; |
|||
int32_t RxIndex; |
|||
int32_t Run_Mode; |
|||
int32_t Real_Current; |
|||
int32_t Target_Current; |
|||
int32_t Real_Velcity; |
|||
int32_t Target_Velcity; |
|||
int32_t Target_Position; |
|||
int32_t ERROR_Flag; |
|||
int32_t Temperature_Motor; |
|||
int32_t Temperature_PCB; |
|||
int32_t CRC_Error; |
|||
int32_t Dri_Inter_Error; |
|||
int32_t Short_circuit_error; |
|||
int32_t Drive_overheating; |
|||
int32_t Motor_overheating; |
|||
int32_t Overvoltage; |
|||
int32_t Undervoltage; |
|||
int32_t Feedback_error; |
|||
int32_t Phase_error; |
|||
int32_t Follow_error; |
|||
int32_t Overcurrent; |
|||
int32_t FPGA_error; |
|||
int32_t Input_command_error; |
|||
int32_t Act_Suc; |
|||
int32_t Cont_Posi_Suc; |
|||
int32_t Acc_Suc; |
|||
int32_t Dec_Suc; |
|||
int32_t Target_Posi_Suc; |
|||
int32_t Run_Speed_Suc; |
|||
int32_t Clear_Suc; |
|||
int32_t Real_Position; |
|||
int32_t Acc_Suc_Speed; |
|||
int32_t Dec_Suc_Speed; |
|||
int32_t Suc_Speed_S; |
|||
int32_t TT_Motor_Fault; |
|||
int32_t AccTime; |
|||
int32_t DecTime; |
|||
} TT_MotorParameters; |
|||
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif |
|||
|
|||
/* Initializer values for message structs */ |
|||
#define TT_MotorParameters_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
|||
#define TT_MotorParameters_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 TT_MotorParameters_MotorID_tag 1 |
|||
#define TT_MotorParameters_RxIndex_tag 2 |
|||
#define TT_MotorParameters_Run_Mode_tag 3 |
|||
#define TT_MotorParameters_Real_Current_tag 4 |
|||
#define TT_MotorParameters_Target_Current_tag 5 |
|||
#define TT_MotorParameters_Real_Velcity_tag 6 |
|||
#define TT_MotorParameters_Target_Velcity_tag 7 |
|||
#define TT_MotorParameters_Target_Position_tag 8 |
|||
#define TT_MotorParameters_ERROR_Flag_tag 9 |
|||
#define TT_MotorParameters_Temperature_Motor_tag 10 |
|||
#define TT_MotorParameters_Temperature_PCB_tag 11 |
|||
#define TT_MotorParameters_CRC_Error_tag 12 |
|||
#define TT_MotorParameters_Dri_Inter_Error_tag 13 |
|||
#define TT_MotorParameters_Short_circuit_error_tag 14 |
|||
#define TT_MotorParameters_Drive_overheating_tag 15 |
|||
#define TT_MotorParameters_Motor_overheating_tag 16 |
|||
#define TT_MotorParameters_Overvoltage_tag 17 |
|||
#define TT_MotorParameters_Undervoltage_tag 18 |
|||
#define TT_MotorParameters_Feedback_error_tag 19 |
|||
#define TT_MotorParameters_Phase_error_tag 20 |
|||
#define TT_MotorParameters_Follow_error_tag 21 |
|||
#define TT_MotorParameters_Overcurrent_tag 22 |
|||
#define TT_MotorParameters_FPGA_error_tag 23 |
|||
#define TT_MotorParameters_Input_command_error_tag 24 |
|||
#define TT_MotorParameters_Act_Suc_tag 25 |
|||
#define TT_MotorParameters_Cont_Posi_Suc_tag 26 |
|||
#define TT_MotorParameters_Acc_Suc_tag 27 |
|||
#define TT_MotorParameters_Dec_Suc_tag 28 |
|||
#define TT_MotorParameters_Target_Posi_Suc_tag 29 |
|||
#define TT_MotorParameters_Run_Speed_Suc_tag 30 |
|||
#define TT_MotorParameters_Clear_Suc_tag 31 |
|||
#define TT_MotorParameters_Real_Position_tag 32 |
|||
#define TT_MotorParameters_Acc_Suc_Speed_tag 33 |
|||
#define TT_MotorParameters_Dec_Suc_Speed_tag 34 |
|||
#define TT_MotorParameters_Suc_Speed_S_tag 35 |
|||
#define TT_MotorParameters_TT_Motor_Fault_tag 36 |
|||
#define TT_MotorParameters_AccTime_tag 37 |
|||
#define TT_MotorParameters_DecTime_tag 38 |
|||
|
|||
/* Struct field encoding specification for nanopb */ |
|||
#define TT_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, Real_Current, 4) \ |
|||
X(a, STATIC, SINGULAR, INT32, Target_Current, 5) \ |
|||
X(a, STATIC, SINGULAR, INT32, Real_Velcity, 6) \ |
|||
X(a, STATIC, SINGULAR, INT32, Target_Velcity, 7) \ |
|||
X(a, STATIC, SINGULAR, INT32, Target_Position, 8) \ |
|||
X(a, STATIC, SINGULAR, INT32, ERROR_Flag, 9) \ |
|||
X(a, STATIC, SINGULAR, INT32, Temperature_Motor, 10) \ |
|||
X(a, STATIC, SINGULAR, INT32, Temperature_PCB, 11) \ |
|||
X(a, STATIC, SINGULAR, INT32, CRC_Error, 12) \ |
|||
X(a, STATIC, SINGULAR, INT32, Dri_Inter_Error, 13) \ |
|||
X(a, STATIC, SINGULAR, INT32, Short_circuit_error, 14) \ |
|||
X(a, STATIC, SINGULAR, INT32, Drive_overheating, 15) \ |
|||
X(a, STATIC, SINGULAR, INT32, Motor_overheating, 16) \ |
|||
X(a, STATIC, SINGULAR, INT32, Overvoltage, 17) \ |
|||
X(a, STATIC, SINGULAR, INT32, Undervoltage, 18) \ |
|||
X(a, STATIC, SINGULAR, INT32, Feedback_error, 19) \ |
|||
X(a, STATIC, SINGULAR, INT32, Phase_error, 20) \ |
|||
X(a, STATIC, SINGULAR, INT32, Follow_error, 21) \ |
|||
X(a, STATIC, SINGULAR, INT32, Overcurrent, 22) \ |
|||
X(a, STATIC, SINGULAR, INT32, FPGA_error, 23) \ |
|||
X(a, STATIC, SINGULAR, INT32, Input_command_error, 24) \ |
|||
X(a, STATIC, SINGULAR, INT32, Act_Suc, 25) \ |
|||
X(a, STATIC, SINGULAR, INT32, Cont_Posi_Suc, 26) \ |
|||
X(a, STATIC, SINGULAR, INT32, Acc_Suc, 27) \ |
|||
X(a, STATIC, SINGULAR, INT32, Dec_Suc, 28) \ |
|||
X(a, STATIC, SINGULAR, INT32, Target_Posi_Suc, 29) \ |
|||
X(a, STATIC, SINGULAR, INT32, Run_Speed_Suc, 30) \ |
|||
X(a, STATIC, SINGULAR, INT32, Clear_Suc, 31) \ |
|||
X(a, STATIC, SINGULAR, INT32, Real_Position, 32) \ |
|||
X(a, STATIC, SINGULAR, INT32, Acc_Suc_Speed, 33) \ |
|||
X(a, STATIC, SINGULAR, INT32, Dec_Suc_Speed, 34) \ |
|||
X(a, STATIC, SINGULAR, INT32, Suc_Speed_S, 35) \ |
|||
X(a, STATIC, SINGULAR, INT32, TT_Motor_Fault, 36) \ |
|||
X(a, STATIC, SINGULAR, INT32, AccTime, 37) \ |
|||
X(a, STATIC, SINGULAR, INT32, DecTime, 38) |
|||
#define TT_MotorParameters_CALLBACK NULL |
|||
#define TT_MotorParameters_DEFAULT NULL |
|||
|
|||
extern const pb_msgdesc_t TT_MotorParameters_msg; |
|||
|
|||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ |
|||
#define TT_MotorParameters_fields &TT_MotorParameters_msg |
|||
|
|||
/* Maximum encoded size of messages (where known) */ |
|||
#define MSP_ZQ_MOTORPARAMETERS_PB_H_MAX_SIZE TT_MotorParameters_size |
|||
#define TT_MotorParameters_size 441 |
|||
|
|||
#ifdef __cplusplus |
|||
} /* extern "C" */ |
|||
#endif |
|||
|
|||
#endif |
|||
Binary file not shown.
@ -0,0 +1,45 @@ |
|||
syntax = "proto3"; |
|||
//import "nanopb.proto"; |
|||
import "msp_SavedMotorParameters.proto"; |
|||
import "bsp_PV.proto"; |
|||
message CV_struct_define{ |
|||
//摆臂项目 |
|||
/* |
|||
int32 Speed_1 = 1; |
|||
int32 Speed_2 = 2; |
|||
int32 Speed_3 = 3; |
|||
int32 Speed_4 = 4; |
|||
int32 Speed_5 = 5; |
|||
int32 Speed_6 = 6; |
|||
int32 Speed_7 = 7; |
|||
int32 Speed_8 = 8; |
|||
int32 Speed_9 = 9; |
|||
int32 Speed_10 = 10; |
|||
SavedMotorParameters LeftMotor=11; |
|||
SavedMotorParameters RightMotor=12; |
|||
SavedMotorParameters SwingMotor=13; |
|||
int32 LaneChangeDistance=14; |
|||
int32 BackWardsDistance=15; |
|||
int32 LeftCompensationRange=16; |
|||
int32 RightCompensationRange=17; |
|||
int32 SwingSpeedRange=18; |
|||
int32 SwingAngleRange=19; |
|||
int32 RobotMoveSpeedBase = 20; |
|||
int32 TurnLeftRightSpeed = 21; |
|||
*/ |
|||
|
|||
//洗舱项目 |
|||
PV_struct_define PV =1;//用户配置数据 |
|||
int32 RobotMoveSpeedBase = 2; |
|||
int32 SwingMoveSpeedBase =3; |
|||
int32 TiltMoveSpeedBase = 4; |
|||
int32 TiltMoveTargetSpeed = 5; |
|||
int32 SwingMoveTargetSpeed = 6; |
|||
int32 TurnLeftRightSpeed = 7; |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
}; |
|||
|
|||
@ -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,11 @@ |
|||
syntax = "proto3"; |
|||
|
|||
message DAM_Data |
|||
{ |
|||
int32 DO0=1; |
|||
int32 DO1=2; |
|||
int32 DO2=3; |
|||
int32 DO3=4; |
|||
}; |
|||
|
|||
//protoc --nanopb_out=. *.proto |
|||
@ -0,0 +1,10 @@ |
|||
syntax = "proto3"; |
|||
message DMKE_struct_define{ |
|||
|
|||
int32 Slave_ID= 1; |
|||
int32 TargetSpeedRpm= 2; |
|||
int32 Command= 3;//正转,反转,停止 0 停止 -1 反转 1 正转 |
|||
int32 CurrentState= 4;//当前状态,从正转到反转的过程中需要发送停止指令; |
|||
|
|||
|
|||
}; |
|||
@ -0,0 +1,8 @@ |
|||
syntax = "proto3"; |
|||
|
|||
message DesulfurizerMessage{ |
|||
double Angle = 1; |
|||
double WireLength = 2; |
|||
double Thickness = 3; |
|||
int32 IsFittingPoint=4; |
|||
}; |
|||
@ -0,0 +1,3 @@ |
|||
# lock.options |
|||
ErrorDataInfo.Error_Name max_size:50 fixed_length:true |
|||
ErrorData.Errors max_size:6 fixed_length:true |
|||
@ -0,0 +1,69 @@ |
|||
syntax = "proto3"; |
|||
|
|||
message ErrorDataInfo |
|||
{ |
|||
int32 Error_Value = 1; |
|||
bytes Error_Name=4; |
|||
} |
|||
|
|||
|
|||
message ErrorData |
|||
{ |
|||
|
|||
/* |
|||
ErrorDataInfo Error1=1; |
|||
ErrorDataInfo Error2=2; |
|||
ErrorDataInfo Error3=3; |
|||
ErrorDataInfo Error4=4; |
|||
ErrorDataInfo Error5=5; |
|||
ErrorDataInfo Error6=6; |
|||
ErrorDataInfo Error7=7; |
|||
ErrorDataInfo Error8=8; |
|||
ErrorDataInfo Error9=9; |
|||
ErrorDataInfo Error10=10; |
|||
ErrorDataInfo Error11=11; |
|||
ErrorDataInfo Error12=12; |
|||
ErrorDataInfo Error13=13; |
|||
ErrorDataInfo Error14=14; |
|||
ErrorDataInfo Error15=15; |
|||
ErrorDataInfo Error16=16; |
|||
ErrorDataInfo Error17=17; |
|||
ErrorDataInfo Error18=18; |
|||
ErrorDataInfo Error19=19; |
|||
ErrorDataInfo Error20=20; |
|||
*/ |
|||
int32 ErrorCode=1; |
|||
int32 Motor_1_Error=21; |
|||
int32 Motor_2_Error=22; |
|||
int32 Motor_3_Error=23; |
|||
int32 Motor_4_Error=24; |
|||
int32 Motor_5_Error=25; |
|||
int32 Motor_6_Error=26; |
|||
int32 Motor_7_Error=27; |
|||
|
|||
/* |
|||
int32 ErrorData_485_1=1; |
|||
int32 ErrorData_485_2=2; |
|||
int32 ErrorData_485_3=3; |
|||
int32 ErrorData_485_4=4; |
|||
|
|||
int32 ErrorData_E22_Serial=5; |
|||
int32 ErrorData_InterCall_DEBUG=6; |
|||
int32 ErrorData_E28_SBUS=7; |
|||
int32 ErrorData_CAN_1=8; |
|||
int32 ErrorData_CAN_2=9; |
|||
|
|||
|
|||
int32 Motor_1_Error=10; |
|||
int32 Motor_2_Error=11; |
|||
int32 Motor_3_Error=12; |
|||
int32 Motor_4_Error=13; |
|||
int32 Motor_5_Error=14; |
|||
int32 Motor_6_Error=15; |
|||
int32 Motor_7_Error=16; |
|||
*/ |
|||
|
|||
|
|||
} |
|||
|
|||
//protoc --nanopb_out=. *.proto |
|||
@ -0,0 +1,2 @@ |
|||
# lock.options |
|||
GV_struct_define.Motor_P max_size:50 fixed_length:true |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue