L1NG\42961 4 weeks ago
parent
commit
7f69a21e0c
  1. 191
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.cproject
  2. 43
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.mxproject
  3. 32
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.project
  4. 2
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs
  5. 25
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.settings/language.settings.xml
  6. 194
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.settings/org.eclipse.cdt.core.prefs
  7. 3
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.settings/org.eclipse.cdt.ui.prefs
  8. 6
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.settings/stm32cubeide.project.prefs
  9. 83
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V4 Debug.launch
  10. 83
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_1 Debug.launch
  11. 83
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast Debug.launch
  12. 873
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast.ioc
  13. 83
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast.launch
  14. 83
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3 Debug.launch
  15. 83
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3.launch
  16. 153
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/BHBF_ROBOT.h
  17. 248
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/DLTuc.h
  18. 74
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/DLTucConfig.h
  19. 15
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_DLT_Log.h
  20. 73
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_EEPROM.h
  21. 25
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_Error_Detect.h
  22. 84
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_FDCAN.h
  23. 18
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_GPIO.h
  24. 50
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_MB_host.h
  25. 17
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_TIMER.h
  26. 128
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_UART.h
  27. 17
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_UDP.h
  28. 27
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_UpperComputer_Handler.h
  29. 13
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_client_setting.h
  30. 82
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_com_helper.h
  31. 66
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_cpu_flash.h
  32. 39
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_decode_command.h
  33. 57
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_include.h
  34. 51
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_pb_decode_encode.h
  35. 107
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_qspi_w25q128.h
  36. 917
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/pb.h
  37. 49
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/pb_common.h
  38. 193
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/pb_decode.h
  39. 185
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/pb_encode.h
  40. 38
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/readme.h
  41. 44
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_Blast_Machine.h
  42. 15
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_CMCUU.h
  43. 15
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_JTBATTERY.h
  44. 18
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_KS206.h
  45. 27
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_MF_Gyroscope.h
  46. 17
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_MK32_1.h
  47. 27
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_PID.h
  48. 62
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_TI5MOTOR.h
  49. 21
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_TL720D.h
  50. 97
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_TTMotor_ZQ.h
  51. 21
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_WH_LTE_7S0.h
  52. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_CV.pb.c
  53. 118
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_CV.pb.h
  54. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_Cmd.pb.c
  55. 80
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_Cmd.pb.h
  56. 16
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_Error.pb.c
  57. 109
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_Error.pb.h
  58. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_GV.pb.c
  59. 125
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_GV.pb.h
  60. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IAP.pb.c
  61. 58
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IAP.pb.h
  62. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IO.pb.c
  63. 81
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IO.pb.h
  64. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IV.pb.c
  65. 85
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IV.pb.h
  66. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_PV.pb.c
  67. 93
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_PV.pb.h
  68. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_ReCmd.pb.c
  69. 80
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_ReCmd.pb.h
  70. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_CMCU.pb.c
  71. 48
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_CMCU.pb.h
  72. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_KS206.pb.c
  73. 51
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_KS206.pb.h
  74. 20
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_MFOG40_Gyroscope.pb.c
  75. 54
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_MFOG40_Gyroscope.pb.h
  76. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_MK32.pb.c
  77. 99
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_MK32.pb.h
  78. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_Motor.pb.c
  79. 91
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_Motor.pb.h
  80. 12
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_TL720D.pb.c
  81. 72
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_TL720D.pb.h
  82. 20
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_ZQ_MotorParameters.pb.c
  83. 129
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_ZQ_MotorParameters.pb.h
  84. BIN
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/Version2.exe
  85. 44
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_CV.proto
  86. 2
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_Cmd.options
  87. 24
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_Cmd.proto
  88. 3
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_Error.options
  89. 45
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_Error.proto
  90. 2
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_GV.options
  91. 37
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_GV.proto
  92. 2
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_IAP.options
  93. 11
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_IAP.proto
  94. 19
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_IO.proto
  95. 2
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_IV.options
  96. 27
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_IV.proto
  97. 24
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_PV.proto
  98. 2
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_ReCmd.options
  99. 24
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_ReCmd.proto
  100. 9
      BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/msp_CMCU.proto

191
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.cproject

@ -0,0 +1,191 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271" moduleId="org.eclipse.cdt.core.settings" name="Debug">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271" name="Debug" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug">
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271." name="/" resourcePath="">
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug.1327866484" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.12567538" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32H743VGTx" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1103832752" name="CPU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.66893780" name="Core" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.1814597120" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv5-d16" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.760030423" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1776441999" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.540792779" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32H743VGTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32H7xx_HAL_Driver/Inc | ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32H7xx/Include | ../Drivers/CMSIS/Include || || || USE_HAL_DRIVER | STM32H743xx || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1890401847" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="200" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.1457102879" name="Convert to Intel Hex file (-O ihex)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.convertbinary.923004711" name="Convert to binary file (-O binary)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.convertbinary" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1630436882" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/Roughening}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.523991804" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.570363994" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.1966465709" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g3" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.1287773107" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="DEBUG"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1342208578" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.2089750823" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.885024729" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g3" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.1582736370" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1920466894" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="DEBUG"/>
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
<listOptionValue builtIn="false" value="STM32H743xx"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.353872548" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32H7xx_HAL_Driver/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32H7xx/Include"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Core/BASE/Inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Core/BASE/Protobuf/PSource}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Core/BASE/Inc/BSP/DLT}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Core/BASE/Inc/MSP}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Core/BASE/Inc/BSP}&quot;"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1369158121" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.1602419013" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.2048195825" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g3" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.834535438" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.1879730817" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.779857613" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" useByScannerDiscovery="false" value="${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld}" valueType="string"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1058332669" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.1918481982" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.1262067552" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.731912685" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.1127183404" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.253242068" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.1405444376" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.375076122" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.621733773" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.1164717156" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184" moduleId="org.eclipse.cdt.core.settings" name="Release">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184" name="Release" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release">
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184." name="/" resourcePath="">
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.1005534466" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.843839952" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32H743VGTx" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1796037984" name="CPU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.2082546020" name="Core" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.1052856810" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv5-d16" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.598377965" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1704817836" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1253890525" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32H743VGTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32H7xx_HAL_Driver/Inc | ../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32H7xx/Include | ../Drivers/CMSIS/Include || || || USE_HAL_DRIVER | STM32H743xx || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1214587954" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="200" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.219245982" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/Roughening}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.214658313" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.16882753" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.2011129191" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g0" valueType="enumerated"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.825992476" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.498810405" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.547400931" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.863454684" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.os" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1771860025" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
<listOptionValue builtIn="false" value="STM32H743xx"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.296813317" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32H7xx_HAL_Driver/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32H7xx_HAL_Driver/Inc/Legacy"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32H7xx/Include"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.166988384" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.81625048" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.444421330" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.406825060" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.value.os" valueType="enumerated"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.396124999" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.1296682720" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32H743VGTX_FLASH.ld}" valueType="string"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1544334102" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.632112878" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.154035402" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.1526108968" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.410298381" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.57742864" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.1333351797" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.1609373878" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.146876246" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.411545612" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="Roughening.null.1127706067" name="Roughening"/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.498810405;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.166988384">
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.2089750823;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1369158121">
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="refreshScope" versionNumber="2">
<configuration configurationName="Debug">
<resource resourceType="PROJECT" workspacePath="/Roughening"/>
</configuration>
<configuration configurationName="Release">
<resource resourceType="PROJECT" workspacePath="/Roughening"/>
</configuration>
</storageModule>
</cproject>

43
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.mxproject

File diff suppressed because one or more lines are too long

32
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.project

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3</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>

2
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs

@ -0,0 +1,2 @@
eclipse.preferences.version=1
sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}}

25
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.settings/language.settings.xml

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.456396271" name="Debug">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1416549233819437322" 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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1820227184" name="Release">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1416549233819437322" 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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
</project>

194
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.settings/org.eclipse.cdt.core.prefs

@ -0,0 +1,194 @@
doxygen/doxygen_new_line_after_brief=true
doxygen/doxygen_use_brief_tag=false
doxygen/doxygen_use_javadoc_tags=true
doxygen/doxygen_use_pre_tag=false
doxygen/doxygen_use_structural_commands=false
eclipse.preferences.version=1
org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16
org.eclipse.cdt.core.formatter.alignment_for_assignment=16
org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration=80
org.eclipse.cdt.core.formatter.alignment_for_binary_expression=16
org.eclipse.cdt.core.formatter.alignment_for_compact_if=16
org.eclipse.cdt.core.formatter.alignment_for_conditional_expression=34
org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain=18
org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list=0
org.eclipse.cdt.core.formatter.alignment_for_declarator_list=16
org.eclipse.cdt.core.formatter.alignment_for_enumerator_list=48
org.eclipse.cdt.core.formatter.alignment_for_expression_list=0
org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer=16
org.eclipse.cdt.core.formatter.alignment_for_lambda_expression=20
org.eclipse.cdt.core.formatter.alignment_for_member_access=0
org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain=16
org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration=16
org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
org.eclipse.cdt.core.formatter.brace_position_for_array_initializer=next_line
org.eclipse.cdt.core.formatter.brace_position_for_block=next_line
org.eclipse.cdt.core.formatter.brace_position_for_block_in_case=next_line
org.eclipse.cdt.core.formatter.brace_position_for_linkage_declaration=next_line
org.eclipse.cdt.core.formatter.brace_position_for_method_declaration=next_line
org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration=next_line
org.eclipse.cdt.core.formatter.brace_position_for_switch=next_line
org.eclipse.cdt.core.formatter.brace_position_for_type_declaration=next_line
org.eclipse.cdt.core.formatter.comment.line_up_line_comment_in_blocks_on_first_column=false
org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment=1
org.eclipse.cdt.core.formatter.comment.never_indent_line_comments_on_first_column=true
org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=true
org.eclipse.cdt.core.formatter.comment_formatter_off_tag=@formatter\:off
org.eclipse.cdt.core.formatter.comment_formatter_on_tag=@formatter\:on
org.eclipse.cdt.core.formatter.compact_else_if=true
org.eclipse.cdt.core.formatter.continuation_indentation=2
org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer=2
org.eclipse.cdt.core.formatter.format_block_comment=true
org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line=false
org.eclipse.cdt.core.formatter.format_header_comment=true
org.eclipse.cdt.core.formatter.format_line_comment=true
org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header=true
org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces=0
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier=true
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_linkage=true
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header=true
org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases=true
org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header=false
org.eclipse.cdt.core.formatter.indent_empty_lines=false
org.eclipse.cdt.core.formatter.indent_label_compare_to_statements=true
org.eclipse.cdt.core.formatter.indent_statements_compare_to_block=true
org.eclipse.cdt.core.formatter.indent_statements_compare_to_body=true
org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases=true
org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch=true
org.eclipse.cdt.core.formatter.indentation.size=4
org.eclipse.cdt.core.formatter.insert_new_line_after_colon_in_constructor_initializer_list=insert
org.eclipse.cdt.core.formatter.insert_new_line_after_label=insert
org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration=do not insert
org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list=do not insert
org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert
org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block=insert
org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator=insert
org.eclipse.cdt.core.formatter.insert_space_after_binary_operator=insert
org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments=insert
org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters=insert
org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block=insert
org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause=insert
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case=insert
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional=insert
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_structured_binding_name_list=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments=insert
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters=insert
org.eclipse.cdt.core.formatter.insert_space_after_lambda_return=insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_opening_structured_binding_name_list=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_pointer_in_declarator_list=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_pointer_in_method_declaration=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator=do not insert
org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional=insert
org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for=insert
org.eclipse.cdt.core.formatter.insert_space_after_unary_operator=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator=insert
org.eclipse.cdt.core.formatter.insert_space_before_binary_operator=insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_closing_structured_binding_name_list=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional=insert
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_structured_binding_name_list=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_lambda_return=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_linkage_declaration=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while=insert
org.eclipse.cdt.core.formatter.insert_space_before_opening_structured_binding_name_list=insert
org.eclipse.cdt.core.formatter.insert_space_before_pointer_in_declarator_list=insert
org.eclipse.cdt.core.formatter.insert_space_before_pointer_in_method_declaration=insert
org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional=insert
org.eclipse.cdt.core.formatter.insert_space_before_ref_qualifier_in_structured_binding=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_semicolon=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
org.eclipse.cdt.core.formatter.insert_space_before_unary_operator=do not insert
org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets=do not insert
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification=do not insert
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
org.eclipse.cdt.core.formatter.join_wrapped_lines=true
org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line=false
org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line=false
org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line=true
org.eclipse.cdt.core.formatter.lineSplit=80
org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve=1
org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line=true
org.eclipse.cdt.core.formatter.tabulation.char=tab
org.eclipse.cdt.core.formatter.tabulation.size=4
org.eclipse.cdt.core.formatter.use_comment_formatter_tag=true
org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations=true

3
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.settings/org.eclipse.cdt.ui.prefs

@ -0,0 +1,3 @@
eclipse.preferences.version=1
formatter_profile=_333333
formatter_settings_version=1

6
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/.settings/stm32cubeide.project.prefs

@ -0,0 +1,6 @@
2F62501ED4689FB349E356AB974DBE57=FF4539B3B98E2B775B68FA589BA9CD43
635E684B79701B039C64EA45C3F84D30=0A24CDD2C9C910977CCC6D7CA9CB0612
66BE74F758C12D739921AEA421D593D3=0
8DF89ED150041C4CBC7CB9A9CAA90856=FF4539B3B98E2B775B68FA589BA9CD43
DC22A860405A8BF2F2C095E5B6529F12=BFAB4159B488818C3ED3C0C9D5058F5A
eclipse.preferences.version=1

83
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V4 Debug.launch

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

83
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_1 Debug.launch

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

83
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast Debug.launch

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

873
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast.ioc

@ -0,0 +1,873 @@
#MicroXplorer Configuration settings - do not modify
ADC2.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_5
ADC2.ContinuousConvMode=ENABLE
ADC2.DiscontinuousConvMode=DISABLE
ADC2.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,OffsetSignedSaturation-0\#ChannelRegularConversion,NbrOfConversionFlag,DiscontinuousConvMode,ContinuousConvMode
ADC2.NbrOfConversionFlag=1
ADC2.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
ADC2.OffsetSignedSaturation-0\#ChannelRegularConversion=DISABLE
ADC2.Rank-0\#ChannelRegularConversion=1
ADC2.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5
CAD.formats=
CAD.pinconfig=
CAD.provider=
CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_FULL_ACCESS
CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_REGION_FULL_ACCESS
CORTEX_M7.AccessPermission-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_REGION_FULL_ACCESS
CORTEX_M7.BaseAddress-Cortex_Memory_Protection_Unit_Region0_Settings=0x30040000
CORTEX_M7.BaseAddress-Cortex_Memory_Protection_Unit_Region1_Settings=0x30040000
CORTEX_M7.BaseAddress-Cortex_Memory_Protection_Unit_Region2_Settings=0x30030000
CORTEX_M7.CPU_DCache=Enabled
CORTEX_M7.CPU_ICache=Enabled
CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_ENABLE
CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_REGION_ENABLE
CORTEX_M7.Enable-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_REGION_ENABLE
CORTEX_M7.IPParameters=MPU_Control,CPU_ICache,CPU_DCache,Enable-Cortex_Memory_Protection_Unit_Region2_Settings,Enable-Cortex_Memory_Protection_Unit_Region0_Settings,BaseAddress-Cortex_Memory_Protection_Unit_Region0_Settings,Size-Cortex_Memory_Protection_Unit_Region0_Settings,IsBufferable-Cortex_Memory_Protection_Unit_Region0_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region0_Settings,Enable-Cortex_Memory_Protection_Unit_Region1_Settings,BaseAddress-Cortex_Memory_Protection_Unit_Region1_Settings,Size-Cortex_Memory_Protection_Unit_Region1_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region1_Settings,IsCacheable-Cortex_Memory_Protection_Unit_Region1_Settings,IsShareable-Cortex_Memory_Protection_Unit_Region1_Settings,TypeExtField-Cortex_Memory_Protection_Unit_Region1_Settings,IsShareable-Cortex_Memory_Protection_Unit_Region0_Settings,SubRegionDisable-Cortex_Memory_Protection_Unit_Region0_Settings,IsBufferable-Cortex_Memory_Protection_Unit_Region1_Settings,TypeExtField-Cortex_Memory_Protection_Unit_Region0_Settings,BaseAddress-Cortex_Memory_Protection_Unit_Region2_Settings,Size-Cortex_Memory_Protection_Unit_Region2_Settings,TypeExtField-Cortex_Memory_Protection_Unit_Region2_Settings,AccessPermission-Cortex_Memory_Protection_Unit_Region2_Settings
CORTEX_M7.IsBufferable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_ACCESS_NOT_BUFFERABLE
CORTEX_M7.IsBufferable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_ACCESS_BUFFERABLE
CORTEX_M7.IsCacheable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_ACCESS_NOT_CACHEABLE
CORTEX_M7.IsShareable-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_ACCESS_NOT_SHAREABLE
CORTEX_M7.IsShareable-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_ACCESS_SHAREABLE
CORTEX_M7.MPU_Control=MPU_PRIVILEGED_DEFAULT
CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_REGION_SIZE_32KB
CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_REGION_SIZE_1KB
CORTEX_M7.Size-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_REGION_SIZE_32KB
CORTEX_M7.SubRegionDisable-Cortex_Memory_Protection_Unit_Region0_Settings=0x0
CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region0_Settings=MPU_TEX_LEVEL1
CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region1_Settings=MPU_TEX_LEVEL0
CORTEX_M7.TypeExtField-Cortex_Memory_Protection_Unit_Region2_Settings=MPU_TEX_LEVEL1
Dma.Request0=UART4_TX
Dma.Request1=USART1_TX
Dma.Request2=UART5_TX
Dma.Request3=USART2_TX
Dma.Request4=USART3_TX
Dma.Request5=USART6_TX
Dma.Request6=UART7_TX
Dma.RequestsNb=7
Dma.UART4_TX.0.Direction=DMA_MEMORY_TO_PERIPH
Dma.UART4_TX.0.EventEnable=DISABLE
Dma.UART4_TX.0.FIFOMode=DMA_FIFOMODE_ENABLE
Dma.UART4_TX.0.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL
Dma.UART4_TX.0.Instance=DMA1_Stream0
Dma.UART4_TX.0.MemBurst=DMA_MBURST_SINGLE
Dma.UART4_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.UART4_TX.0.MemInc=DMA_MINC_ENABLE
Dma.UART4_TX.0.Mode=DMA_NORMAL
Dma.UART4_TX.0.PeriphBurst=DMA_PBURST_SINGLE
Dma.UART4_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.UART4_TX.0.PeriphInc=DMA_PINC_DISABLE
Dma.UART4_TX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.UART4_TX.0.Priority=DMA_PRIORITY_LOW
Dma.UART4_TX.0.RequestNumber=1
Dma.UART4_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.UART4_TX.0.SignalID=NONE
Dma.UART4_TX.0.SyncEnable=DISABLE
Dma.UART4_TX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.UART4_TX.0.SyncRequestNumber=1
Dma.UART4_TX.0.SyncSignalID=NONE
Dma.UART5_TX.2.Direction=DMA_MEMORY_TO_PERIPH
Dma.UART5_TX.2.EventEnable=DISABLE
Dma.UART5_TX.2.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.UART5_TX.2.Instance=DMA1_Stream3
Dma.UART5_TX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.UART5_TX.2.MemInc=DMA_MINC_ENABLE
Dma.UART5_TX.2.Mode=DMA_NORMAL
Dma.UART5_TX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.UART5_TX.2.PeriphInc=DMA_PINC_DISABLE
Dma.UART5_TX.2.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.UART5_TX.2.Priority=DMA_PRIORITY_LOW
Dma.UART5_TX.2.RequestNumber=1
Dma.UART5_TX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.UART5_TX.2.SignalID=NONE
Dma.UART5_TX.2.SyncEnable=DISABLE
Dma.UART5_TX.2.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.UART5_TX.2.SyncRequestNumber=1
Dma.UART5_TX.2.SyncSignalID=NONE
Dma.UART7_TX.6.Direction=DMA_MEMORY_TO_PERIPH
Dma.UART7_TX.6.EventEnable=DISABLE
Dma.UART7_TX.6.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.UART7_TX.6.Instance=DMA1_Stream1
Dma.UART7_TX.6.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.UART7_TX.6.MemInc=DMA_MINC_ENABLE
Dma.UART7_TX.6.Mode=DMA_NORMAL
Dma.UART7_TX.6.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.UART7_TX.6.PeriphInc=DMA_PINC_DISABLE
Dma.UART7_TX.6.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.UART7_TX.6.Priority=DMA_PRIORITY_LOW
Dma.UART7_TX.6.RequestNumber=1
Dma.UART7_TX.6.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.UART7_TX.6.SignalID=NONE
Dma.UART7_TX.6.SyncEnable=DISABLE
Dma.UART7_TX.6.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.UART7_TX.6.SyncRequestNumber=1
Dma.UART7_TX.6.SyncSignalID=NONE
Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART1_TX.1.EventEnable=DISABLE
Dma.USART1_TX.1.FIFOMode=DMA_FIFOMODE_ENABLE
Dma.USART1_TX.1.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL
Dma.USART1_TX.1.Instance=DMA1_Stream2
Dma.USART1_TX.1.MemBurst=DMA_MBURST_SINGLE
Dma.USART1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART1_TX.1.MemInc=DMA_MINC_ENABLE
Dma.USART1_TX.1.Mode=DMA_NORMAL
Dma.USART1_TX.1.PeriphBurst=DMA_PBURST_SINGLE
Dma.USART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE
Dma.USART1_TX.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW
Dma.USART1_TX.1.RequestNumber=1
Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,FIFOThreshold,MemBurst,PeriphBurst,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.USART1_TX.1.SignalID=NONE
Dma.USART1_TX.1.SyncEnable=DISABLE
Dma.USART1_TX.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.USART1_TX.1.SyncRequestNumber=1
Dma.USART1_TX.1.SyncSignalID=NONE
Dma.USART2_TX.3.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART2_TX.3.EventEnable=DISABLE
Dma.USART2_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART2_TX.3.Instance=DMA1_Stream5
Dma.USART2_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART2_TX.3.MemInc=DMA_MINC_ENABLE
Dma.USART2_TX.3.Mode=DMA_NORMAL
Dma.USART2_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART2_TX.3.PeriphInc=DMA_PINC_DISABLE
Dma.USART2_TX.3.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.USART2_TX.3.Priority=DMA_PRIORITY_LOW
Dma.USART2_TX.3.RequestNumber=1
Dma.USART2_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.USART2_TX.3.SignalID=NONE
Dma.USART2_TX.3.SyncEnable=DISABLE
Dma.USART2_TX.3.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.USART2_TX.3.SyncRequestNumber=1
Dma.USART2_TX.3.SyncSignalID=NONE
Dma.USART3_TX.4.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART3_TX.4.EventEnable=DISABLE
Dma.USART3_TX.4.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART3_TX.4.Instance=DMA1_Stream6
Dma.USART3_TX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART3_TX.4.MemInc=DMA_MINC_ENABLE
Dma.USART3_TX.4.Mode=DMA_NORMAL
Dma.USART3_TX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART3_TX.4.PeriphInc=DMA_PINC_DISABLE
Dma.USART3_TX.4.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.USART3_TX.4.Priority=DMA_PRIORITY_LOW
Dma.USART3_TX.4.RequestNumber=1
Dma.USART3_TX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.USART3_TX.4.SignalID=NONE
Dma.USART3_TX.4.SyncEnable=DISABLE
Dma.USART3_TX.4.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.USART3_TX.4.SyncRequestNumber=1
Dma.USART3_TX.4.SyncSignalID=NONE
Dma.USART6_TX.5.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART6_TX.5.EventEnable=DISABLE
Dma.USART6_TX.5.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART6_TX.5.Instance=DMA1_Stream7
Dma.USART6_TX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART6_TX.5.MemInc=DMA_MINC_ENABLE
Dma.USART6_TX.5.Mode=DMA_NORMAL
Dma.USART6_TX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART6_TX.5.PeriphInc=DMA_PINC_DISABLE
Dma.USART6_TX.5.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.USART6_TX.5.Priority=DMA_PRIORITY_LOW
Dma.USART6_TX.5.RequestNumber=1
Dma.USART6_TX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.USART6_TX.5.SignalID=NONE
Dma.USART6_TX.5.SyncEnable=DISABLE
Dma.USART6_TX.5.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.USART6_TX.5.SyncRequestNumber=1
Dma.USART6_TX.5.SyncSignalID=NONE
ETH.IPParameters=MediaInterface,TxDescAddress,RxDescAddress,RxBuffAddress,RxBuffLen
ETH.MediaInterface=HAL_ETH_RMII_MODE
ETH.RxBuffAddress=0x30040400
ETH.RxBuffLen=1528
ETH.RxDescAddress=0x30040000
ETH.TxDescAddress=0x30040200
FDCAN1.CalculateBaudRateNominal=250000
FDCAN1.CalculateTimeBitNominal=4000
FDCAN1.CalculateTimeQuantumNominal=500.0
FDCAN1.IPParameters=NominalPrescaler,NominalTimeSeg1,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal
FDCAN1.NominalPrescaler=20
FDCAN1.NominalTimeSeg1=5
FDCAN1.RxFifo0ElmtsNbr=32
FDCAN1.TxFifoQueueElmtsNbr=32
FDCAN2.CalculateBaudRateNominal=250000
FDCAN2.CalculateTimeBitNominal=4000
FDCAN2.CalculateTimeQuantumNominal=500.0
FDCAN2.IPParameters=NominalPrescaler,NominalTimeSeg1,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal
FDCAN2.NominalPrescaler=20
FDCAN2.NominalTimeSeg1=5
FDCAN2.RxFifo0ElmtsNbr=32
FDCAN2.TxFifoQueueElmtsNbr=32
File.Version=6
GPIO.groupedBy=Group By Peripherals
I2C4.IPParameters=Timing
I2C4.Timing=0x10C0ECFF
KeepUserPlacement=false
LPUART1.BaudRate=57600
LPUART1.DMADisableonRxErrorParam=UART_ADVFEATURE_DMA_DISABLEONRXERROR
LPUART1.IPParameters=BaudRate,OverrunDisableParam,DMADisableonRxErrorParam
LPUART1.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_DISABLE
Mcu.CPN=STM32H743VGT6
Mcu.Family=STM32H7
Mcu.IP0=ADC2
Mcu.IP1=CORTEX_M7
Mcu.IP10=QUADSPI
Mcu.IP11=RCC
Mcu.IP12=SYS
Mcu.IP13=TIM1
Mcu.IP14=TIM8
Mcu.IP15=UART4
Mcu.IP16=UART5
Mcu.IP17=UART7
Mcu.IP18=USART1
Mcu.IP19=USART2
Mcu.IP2=DEBUG
Mcu.IP20=USART3
Mcu.IP21=USART6
Mcu.IP3=DMA
Mcu.IP4=ETH
Mcu.IP5=FDCAN1
Mcu.IP6=FDCAN2
Mcu.IP7=I2C4
Mcu.IP8=LPUART1
Mcu.IP9=NVIC
Mcu.IPNb=22
Mcu.Name=STM32H743VGTx
Mcu.Package=LQFP100
Mcu.Pin0=PE2
Mcu.Pin1=PE3
Mcu.Pin10=PC2_C
Mcu.Pin11=PC3_C
Mcu.Pin12=PA0
Mcu.Pin13=PA1
Mcu.Pin14=PA2
Mcu.Pin15=PA3
Mcu.Pin16=PA4
Mcu.Pin17=PA5
Mcu.Pin18=PA6
Mcu.Pin19=PA7
Mcu.Pin2=PE4
Mcu.Pin20=PC4
Mcu.Pin21=PC5
Mcu.Pin22=PB1
Mcu.Pin23=PB2
Mcu.Pin24=PE7
Mcu.Pin25=PE8
Mcu.Pin26=PE9
Mcu.Pin27=PE10
Mcu.Pin28=PE11
Mcu.Pin29=PE12
Mcu.Pin3=PE5
Mcu.Pin30=PE13
Mcu.Pin31=PB11
Mcu.Pin32=PB12
Mcu.Pin33=PB13
Mcu.Pin34=PB14
Mcu.Pin35=PB15
Mcu.Pin36=PD8
Mcu.Pin37=PD9
Mcu.Pin38=PD10
Mcu.Pin39=PD11
Mcu.Pin4=PE6
Mcu.Pin40=PD12
Mcu.Pin41=PD13
Mcu.Pin42=PD14
Mcu.Pin43=PC6
Mcu.Pin44=PC7
Mcu.Pin45=PC8
Mcu.Pin46=PC9
Mcu.Pin47=PA8
Mcu.Pin48=PA9
Mcu.Pin49=PA10
Mcu.Pin5=PC13
Mcu.Pin50=PA11
Mcu.Pin51=PA12
Mcu.Pin52=PA13 (JTMS/SWDIO)
Mcu.Pin53=PA14 (JTCK/SWCLK)
Mcu.Pin54=PA15 (JTDI)
Mcu.Pin55=PC10
Mcu.Pin56=PC11
Mcu.Pin57=PC12
Mcu.Pin58=PD0
Mcu.Pin59=PD1
Mcu.Pin6=PH0-OSC_IN (PH0)
Mcu.Pin60=PD2
Mcu.Pin61=PD3
Mcu.Pin62=PD4
Mcu.Pin63=PD5
Mcu.Pin64=PD6
Mcu.Pin65=PB3 (JTDO/TRACESWO)
Mcu.Pin66=PB4 (NJTRST)
Mcu.Pin67=PB5
Mcu.Pin68=PB6
Mcu.Pin69=PB7
Mcu.Pin7=PH1-OSC_OUT (PH1)
Mcu.Pin70=PB8
Mcu.Pin71=PB9
Mcu.Pin72=PE0
Mcu.Pin73=PE1
Mcu.Pin74=VP_SYS_VS_Systick
Mcu.Pin75=VP_TIM1_VS_ClockSourceINT
Mcu.Pin76=VP_TIM8_VS_ClockSourceINT
Mcu.Pin8=PC0
Mcu.Pin9=PC1
Mcu.PinsNb=77
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32H743VGTx
MxCube.Version=6.11.1
MxDb.Version=DB.6.0.111
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.DMA1_Stream0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DMA1_Stream1_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DMA1_Stream2_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DMA1_Stream3_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DMA1_Stream5_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DMA1_Stream6_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DMA1_Stream7_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.ETH_IRQn=true\:6\:0\:true\:false\:true\:true\:true\:true
NVIC.ETH_WKUP_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.FDCAN1_IT0_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.FDCAN2_IT0_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.I2C4_ER_IRQn=true\:15\:0\:true\:false\:true\:true\:true\:true
NVIC.I2C4_EV_IRQn=true\:15\:0\:true\:false\:true\:true\:true\:true
NVIC.LPUART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.QUADSPI_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
NVIC.TIM1_UP_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.TIM8_UP_TIM13_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.UART4_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.UART5_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.UART7_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.USART3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.USART6_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
PA0.GPIOParameters=PinState,GPIO_Label,PinAttribute
PA0.GPIO_Label=OUT_2
PA0.Locked=true
PA0.PinAttribute=Free
PA0.PinState=GPIO_PIN_RESET
PA0.Signal=GPIO_Output
PA1.GPIOParameters=GPIO_Speed,PinAttribute
PA1.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PA1.Mode=RMII
PA1.PinAttribute=Free
PA1.Signal=ETH_REF_CLK
PA10.Mode=Asynchronous
PA10.Signal=LPUART1_RX
PA11.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute
PA11.GPIO_PuPd=GPIO_PULLUP
PA11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PA11.Locked=true
PA11.Mode=Asynchronous
PA11.PinAttribute=Free
PA11.Signal=UART4_RX
PA12.GPIOParameters=PinAttribute
PA12.Locked=true
PA12.Mode=Asynchronous
PA12.PinAttribute=Free
PA12.Signal=UART4_TX
PA13\ (JTMS/SWDIO).GPIOParameters=PinAttribute
PA13\ (JTMS/SWDIO).Locked=true
PA13\ (JTMS/SWDIO).Mode=Serial_Wire
PA13\ (JTMS/SWDIO).PinAttribute=Free
PA13\ (JTMS/SWDIO).Signal=DEBUG_JTMS-SWDIO
PA14\ (JTCK/SWCLK).GPIOParameters=PinAttribute
PA14\ (JTCK/SWCLK).Mode=Serial_Wire
PA14\ (JTCK/SWCLK).PinAttribute=Free
PA14\ (JTCK/SWCLK).Signal=DEBUG_JTCK-SWCLK
PA15\ (JTDI).GPIOParameters=PinAttribute
PA15\ (JTDI).Locked=true
PA15\ (JTDI).Mode=Asynchronous
PA15\ (JTDI).PinAttribute=Free
PA15\ (JTDI).Signal=UART7_TX
PA2.GPIOParameters=GPIO_Speed,PinAttribute
PA2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PA2.Mode=RMII
PA2.PinAttribute=Free
PA2.Signal=ETH_MDIO
PA3.GPIOParameters=PinState,GPIO_Label,PinAttribute
PA3.GPIO_Label=OUT_3
PA3.Locked=true
PA3.PinAttribute=Free
PA3.PinState=GPIO_PIN_RESET
PA3.Signal=GPIO_Output
PA4.GPIOParameters=PinState,GPIO_Label,PinAttribute
PA4.GPIO_Label=OUT_4
PA4.Locked=true
PA4.PinAttribute=Free
PA4.PinState=GPIO_PIN_RESET
PA4.Signal=GPIO_Output
PA5.GPIOParameters=PinState,GPIO_Label,PinAttribute
PA5.GPIO_Label=OUT_5
PA5.Locked=true
PA5.PinAttribute=Free
PA5.PinState=GPIO_PIN_RESET
PA5.Signal=GPIO_Output
PA6.GPIOParameters=GPIO_Label,PinAttribute
PA6.GPIO_Label=ETH_RST
PA6.Locked=true
PA6.PinAttribute=Free
PA6.Signal=GPIO_Output
PA7.GPIOParameters=GPIO_Speed,PinAttribute
PA7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PA7.Mode=RMII
PA7.PinAttribute=Free
PA7.Signal=ETH_CRS_DV
PA8.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute
PA8.GPIO_PuPd=GPIO_PULLUP
PA8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PA8.Locked=true
PA8.Mode=Asynchronous
PA8.PinAttribute=Free
PA8.Signal=UART7_RX
PA9.Mode=Asynchronous
PA9.Signal=LPUART1_TX
PB1.Locked=true
PB1.Signal=ADCx_INP5
PB11.GPIOParameters=GPIO_Speed,PinAttribute
PB11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PB11.Mode=RMII
PB11.PinAttribute=Free
PB11.Signal=ETH_TX_EN
PB12.GPIOParameters=GPIO_Speed,PinAttribute
PB12.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PB12.Mode=RMII
PB12.PinAttribute=Free
PB12.Signal=ETH_TXD0
PB13.GPIOParameters=GPIO_Speed,PinAttribute
PB13.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PB13.Mode=RMII
PB13.PinAttribute=Free
PB13.Signal=ETH_TXD1
PB14.GPIOParameters=PinAttribute
PB14.Locked=true
PB14.Mode=Asynchronous
PB14.PinAttribute=Free
PB14.Signal=USART1_TX
PB15.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute
PB15.GPIO_PuPd=GPIO_PULLUP
PB15.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PB15.Mode=Asynchronous
PB15.PinAttribute=Free
PB15.Signal=USART1_RX
PB2.GPIOParameters=GPIO_Speed,PinAttribute
PB2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PB2.Mode=Single Bank 2
PB2.PinAttribute=Free
PB2.Signal=QUADSPI_CLK
PB3\ (JTDO/TRACESWO).GPIOParameters=GPIO_Label
PB3\ (JTDO/TRACESWO).GPIO_Label=S0_NET
PB3\ (JTDO/TRACESWO).Locked=true
PB3\ (JTDO/TRACESWO).Signal=GPIO_Input
PB4\ (NJTRST).GPIOParameters=GPIO_Label
PB4\ (NJTRST).GPIO_Label=S0_LINKA
PB4\ (NJTRST).Locked=true
PB4\ (NJTRST).Signal=GPIO_Input
PB5.Locked=true
PB5.Mode=FDCAN_Activate
PB5.Signal=FDCAN2_RX
PB6.Locked=true
PB6.Mode=FDCAN_Activate
PB6.Signal=FDCAN2_TX
PB7.GPIOParameters=GPIO_Label
PB7.GPIO_Label=E22_M1
PB7.Locked=true
PB7.Signal=GPIO_Output
PB8.Locked=true
PB8.Mode=FDCAN_Activate
PB8.Signal=FDCAN1_RX
PB9.Locked=true
PB9.Mode=FDCAN_Activate
PB9.Signal=FDCAN1_TX
PC0.GPIOParameters=GPIO_Label
PC0.GPIO_Label=S0_RESET
PC0.Locked=true
PC0.Signal=GPIO_Output
PC1.GPIOParameters=GPIO_Speed
PC1.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PC1.Mode=RMII
PC1.Signal=ETH_MDC
PC10.GPIOParameters=GPIO_Label,PinAttribute
PC10.GPIO_Label=E22_RST
PC10.Locked=true
PC10.PinAttribute=Free
PC10.Signal=GPIO_Output
PC11.GPIOParameters=GPIO_Speed
PC11.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PC11.Mode=Single Bank 2
PC11.Signal=QUADSPI_BK2_NCS
PC12.Locked=true
PC12.Mode=Asynchronous
PC12.Signal=UART5_TX
PC13.GPIOParameters=GPIO_Label
PC13.GPIO_Label=IN_5
PC13.Locked=true
PC13.Signal=GPIO_Input
PC2_C.GPIOParameters=GPIO_Label,PinAttribute
PC2_C.GPIO_Label=OUT_0
PC2_C.Locked=true
PC2_C.PinAttribute=Free
PC2_C.Signal=GPIO_Output
PC3_C.GPIOParameters=GPIO_Label,PinAttribute
PC3_C.GPIO_Label=OUT_1
PC3_C.Locked=true
PC3_C.PinAttribute=Free
PC3_C.Signal=GPIO_Output
PC4.GPIOParameters=GPIO_Speed,PinAttribute
PC4.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PC4.Mode=RMII
PC4.PinAttribute=Free
PC4.Signal=ETH_RXD0
PC5.GPIOParameters=GPIO_Speed,PinAttribute
PC5.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PC5.Mode=RMII
PC5.PinAttribute=Free
PC5.Signal=ETH_RXD1
PC6.GPIOParameters=PinAttribute
PC6.Mode=Asynchronous
PC6.PinAttribute=Free
PC6.Signal=USART6_TX
PC7.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute
PC7.GPIO_PuPd=GPIO_PULLUP
PC7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PC7.Mode=Asynchronous
PC7.PinAttribute=Free
PC7.Signal=USART6_RX
PC8.GPIOParameters=GPIO_Label,PinAttribute
PC8.GPIO_Label=RS485_3_DIR
PC8.Locked=true
PC8.PinAttribute=Free
PC8.Signal=GPIO_Output
PC9.GPIOParameters=GPIO_Label,PinAttribute
PC9.GPIO_Label=RS485_4_DIR
PC9.Locked=true
PC9.PinAttribute=Free
PC9.Signal=GPIO_Output
PD0.GPIOParameters=GPIO_Label
PD0.GPIO_Label=E28_M0
PD0.Locked=true
PD0.Signal=GPIO_Output
PD1.GPIOParameters=GPIO_Label
PD1.GPIO_Label=E28_M1
PD1.Locked=true
PD1.Signal=GPIO_Output
PD10.GPIOParameters=GPIO_Label,PinAttribute
PD10.GPIO_Label=RS485_1_DIR
PD10.Locked=true
PD10.PinAttribute=Free
PD10.Signal=GPIO_Output
PD11.GPIOParameters=GPIO_Label,PinAttribute
PD11.GPIO_Label=RS485_2_DIR
PD11.Locked=true
PD11.PinAttribute=Free
PD11.Signal=GPIO_Output
PD12.GPIOParameters=PinAttribute
PD12.Mode=I2C
PD12.PinAttribute=Free
PD12.Signal=I2C4_SCL
PD13.GPIOParameters=PinAttribute
PD13.Mode=I2C
PD13.PinAttribute=Free
PD13.Signal=I2C4_SDA
PD14.GPIOParameters=PinAttribute
PD14.Locked=true
PD14.PinAttribute=Free
PD14.Signal=GPXTI14
PD2.GPIOParameters=GPIO_Speed,GPIO_PuPd
PD2.GPIO_PuPd=GPIO_PULLUP
PD2.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PD2.Locked=true
PD2.Mode=Asynchronous
PD2.Signal=UART5_RX
PD3.GPIOParameters=GPIO_Label
PD3.GPIO_Label=E28_M2
PD3.Locked=true
PD3.Signal=GPIO_Output
PD4.GPIOParameters=GPIO_Label
PD4.GPIO_Label=E28_AUX
PD4.Locked=true
PD4.Signal=GPXTI4
PD5.Locked=true
PD5.Mode=Asynchronous
PD5.Signal=USART2_TX
PD6.GPIOParameters=GPIO_Speed,GPIO_PuPd
PD6.GPIO_PuPd=GPIO_PULLUP
PD6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PD6.Locked=true
PD6.Mode=Asynchronous
PD6.Signal=USART2_RX
PD8.GPIOParameters=PinAttribute
PD8.Locked=true
PD8.Mode=Asynchronous
PD8.PinAttribute=Free
PD8.Signal=USART3_TX
PD9.GPIOParameters=GPIO_Speed,GPIO_PuPd,PinAttribute
PD9.GPIO_PuPd=GPIO_PULLUP
PD9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PD9.Mode=Asynchronous
PD9.PinAttribute=Free
PD9.Signal=USART3_RX
PE0.GPIOParameters=GPIO_Label
PE0.GPIO_Label=E22_M0
PE0.Locked=true
PE0.Signal=GPIO_Output
PE1.GPIOParameters=GPIO_Label
PE1.GPIO_Label=E22_AUX
PE1.Locked=true
PE1.Signal=GPXTI1
PE10.GPIOParameters=GPIO_Speed,PinAttribute
PE10.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PE10.Mode=Single Bank 2
PE10.PinAttribute=Free
PE10.Signal=QUADSPI_BK2_IO3
PE11.GPIOParameters=GPIO_Label,PinAttribute
PE11.GPIO_Label=EEPROM_WP
PE11.Locked=true
PE11.PinAttribute=Free
PE11.Signal=GPIO_Output
PE12.GPIOParameters=GPIO_Label,PinAttribute
PE12.GPIO_Label=EEPROM_SCL
PE12.Locked=true
PE12.PinAttribute=Free
PE12.Signal=GPIO_Output
PE13.GPIOParameters=GPIO_Label,PinAttribute
PE13.GPIO_Label=EEPROM_SDA
PE13.Locked=true
PE13.PinAttribute=Free
PE13.Signal=GPIO_Input
PE2.GPIOParameters=GPIO_Label
PE2.GPIO_Label=IN_0
PE2.Locked=true
PE2.Signal=GPIO_Input
PE3.GPIOParameters=GPIO_Label
PE3.GPIO_Label=IN_1
PE3.Locked=true
PE3.Signal=GPIO_Input
PE4.GPIOParameters=GPIO_Label
PE4.GPIO_Label=IN_2
PE4.Locked=true
PE4.Signal=GPIO_Input
PE5.GPIOParameters=GPIO_Label
PE5.GPIO_Label=IN_3
PE5.Locked=true
PE5.Signal=GPIO_Input
PE6.GPIOParameters=GPIO_Label
PE6.GPIO_Label=IN_4
PE6.Locked=true
PE6.Signal=GPIO_Input
PE7.GPIOParameters=GPIO_Speed,PinAttribute
PE7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PE7.Mode=Single Bank 2
PE7.PinAttribute=Free
PE7.Signal=QUADSPI_BK2_IO0
PE8.GPIOParameters=GPIO_Speed,PinAttribute
PE8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PE8.Mode=Single Bank 2
PE8.PinAttribute=Free
PE8.Signal=QUADSPI_BK2_IO1
PE9.GPIOParameters=GPIO_Speed,PinAttribute
PE9.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PE9.Mode=Single Bank 2
PE9.PinAttribute=Free
PE9.Signal=QUADSPI_BK2_IO2
PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator
PH1-OSC_OUT\ (PH1).Signal=RCC_OSC_OUT
PinOutPanel.RotationAngle=0
ProjectManager.AskForMigrate=true
ProjectManager.BackupPrevious=false
ProjectManager.CompilerOptimize=6
ProjectManager.ComputerToolchain=false
ProjectManager.CoupleFile=true
ProjectManager.CustomerFirmwarePackage=
ProjectManager.DefaultFWLocation=true
ProjectManager.DeletePrevious=true
ProjectManager.DeviceId=STM32H743VGTx
ProjectManager.FirmwarePackage=STM32Cube FW_H7 V1.11.2
ProjectManager.FreePins=false
ProjectManager.HalAssertFull=false
ProjectManager.HeapSize=0x800
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=1
ProjectManager.MainLocation=Core/Src
ProjectManager.NoMain=false
ProjectManager.PreviousToolchain=STM32CubeIDE
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast.ioc
ProjectManager.ProjectName=BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast
ProjectManager.ProjectStructure=
ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x2000
ProjectManager.TargetToolchain=STM32CubeIDE
ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_FDCAN1_Init-FDCAN1-false-HAL-true,5-MX_FDCAN2_Init-FDCAN2-false-HAL-true,6-MX_I2C4_Init-I2C4-false-HAL-true,7-MX_TIM1_Init-TIM1-false-HAL-true,8-MX_UART4_Init-UART4-false-HAL-true,9-MX_UART5_Init-UART5-false-HAL-true,10-MX_UART7_Init-UART7-false-HAL-true,11-MX_USART1_UART_Init-USART1-false-HAL-true,12-MX_USART3_UART_Init-USART3-false-HAL-true,13-MX_USART2_UART_Init-USART2-false-HAL-true,14-MX_USART6_UART_Init-USART6-false-HAL-true,15-MX_TIM8_Init-TIM8-false-HAL-true,16-MX_QUADSPI_Init-QUADSPI-false-HAL-true,17-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,18-MX_ADC2_Init-ADC2-false-HAL-true,19-MX_ETH_Init-ETH-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
QUADSPI.ChipSelectHighTime=QSPI_CS_HIGH_TIME_5_CYCLE
QUADSPI.ClockMode=QSPI_CLOCK_MODE_3
QUADSPI.ClockPrescaler=2-1
QUADSPI.FifoThreshold=32
QUADSPI.FlashSize=23+1
QUADSPI.IPParameters=ClockPrescaler,FifoThreshold,SampleShifting,FlashSize,ChipSelectHighTime,ClockMode
QUADSPI.SampleShifting=QSPI_SAMPLE_SHIFTING_HALFCYCLE
RCC.ADCFreq_Value=72000000
RCC.AHB12Freq_Value=200000000
RCC.AHB4Freq_Value=200000000
RCC.APB1Freq_Value=100000000
RCC.APB2Freq_Value=100000000
RCC.APB3Freq_Value=100000000
RCC.APB4Freq_Value=100000000
RCC.AXIClockFreq_Value=200000000
RCC.CECFreq_Value=32000
RCC.CKPERFreq_Value=64000000
RCC.CortexFreq_Value=400000000
RCC.CpuClockFreq_Value=400000000
RCC.D1CPREFreq_Value=400000000
RCC.D1PPRE=RCC_APB3_DIV2
RCC.D2PPRE1=RCC_APB1_DIV2
RCC.D2PPRE2=RCC_APB2_DIV2
RCC.D3PPRE=RCC_APB4_DIV2
RCC.DFSDMACLkFreq_Value=40000000
RCC.DFSDMFreq_Value=100000000
RCC.DIVM1=2
RCC.DIVM2=25
RCC.DIVN1=64
RCC.DIVN2=288
RCC.DIVP1Freq_Value=400000000
RCC.DIVP2=4
RCC.DIVP2Freq_Value=72000000
RCC.DIVP3Freq_Value=50390625
RCC.DIVQ1=20
RCC.DIVQ1Freq_Value=40000000
RCC.DIVQ2=1
RCC.DIVQ2Freq_Value=288000000
RCC.DIVQ3Freq_Value=50390625
RCC.DIVR1=4
RCC.DIVR1Freq_Value=200000000
RCC.DIVR2Freq_Value=144000000
RCC.DIVR3Freq_Value=50390625
RCC.EnbaleCSS=true
RCC.FDCANFreq_Value=40000000
RCC.FMCFreq_Value=200000000
RCC.FamilyName=M
RCC.HCLK3ClockFreq_Value=200000000
RCC.HCLKFreq_Value=200000000
RCC.HPRE=RCC_HCLK_DIV2
RCC.HRTIMFreq_Value=200000000
RCC.I2C123Freq_Value=100000000
RCC.I2C4Freq_Value=100000000
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,D1PPRE,D2PPRE1,D2PPRE2,D3PPRE,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EnbaleCSS,FDCANFreq_Value,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL1_VCI_Range-AdvancedSettings,PLL2FRACN,PLL2_VCI_Range-AdvancedSettings,PLL3_VCI_Range-AdvancedSettings,PLLFRACN,PLLSourceVirtual,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
RCC.LPTIM1Freq_Value=100000000
RCC.LPTIM2Freq_Value=100000000
RCC.LPTIM345Freq_Value=100000000
RCC.LPUART1Freq_Value=100000000
RCC.LTDCFreq_Value=50390625
RCC.MCO1PinFreq_Value=64000000
RCC.MCO2PinFreq_Value=400000000
RCC.PLL1_VCI_Range-AdvancedSettings=RCC_PLL1VCIRANGE_3
RCC.PLL2FRACN=0
RCC.PLL2_VCI_Range-AdvancedSettings=RCC_PLL2VCIRANGE_0
RCC.PLL3_VCI_Range-AdvancedSettings=RCC_PLL3VCIRANGE_3
RCC.PLLFRACN=0
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
RCC.QSPIFreq_Value=200000000
RCC.RNGFreq_Value=48000000
RCC.RTCFreq_Value=32000
RCC.SAI1Freq_Value=40000000
RCC.SAI23Freq_Value=40000000
RCC.SAI4AFreq_Value=40000000
RCC.SAI4BFreq_Value=40000000
RCC.SDMMCFreq_Value=40000000
RCC.SPDIFRXFreq_Value=40000000
RCC.SPI123Freq_Value=40000000
RCC.SPI45Freq_Value=100000000
RCC.SPI6Freq_Value=100000000
RCC.SWPMI1Freq_Value=100000000
RCC.SYSCLKFreq_VALUE=400000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.Tim1OutputFreq_Value=200000000
RCC.Tim2OutputFreq_Value=200000000
RCC.TraceFreq_Value=200000000
RCC.USART16Freq_Value=100000000
RCC.USART234578Freq_Value=100000000
RCC.USBFreq_Value=40000000
RCC.VCO1OutputFreq_Value=800000000
RCC.VCO2OutputFreq_Value=288000000
RCC.VCO3OutputFreq_Value=100781250
RCC.VCOInput1Freq_Value=12500000
RCC.VCOInput2Freq_Value=1000000
RCC.VCOInput3Freq_Value=781250
SH.ADCx_INP5.0=ADC2_INP5,IN5-Single-Ended
SH.ADCx_INP5.ConfNb=1
SH.GPXTI1.0=GPIO_EXTI1
SH.GPXTI1.ConfNb=1
SH.GPXTI14.0=GPIO_EXTI14
SH.GPXTI14.ConfNb=1
SH.GPXTI4.0=GPIO_EXTI4
SH.GPXTI4.ConfNb=1
TIM1.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE
TIM1.IPParameters=Prescaler,Period,AutoReloadPreload
TIM1.Period=10000-1
TIM1.Prescaler=2000-1
TIM8.IPParameters=Prescaler,Period
TIM8.Period=200-1
TIM8.Prescaler=2000-1
UART4.BaudRate=57600
UART4.IPParameters=OverrunDisableParam,BaudRate
UART4.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_ENABLE
UART5.BaudRate=100000
UART5.DMADisableonRxErrorParam=UART_ADVFEATURE_DMA_DISABLEONRXERROR
UART5.IPParameters=BaudRate,WordLength,Parity,OverrunDisableParam,DMADisableonRxErrorParam
UART5.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_DISABLE
UART5.Parity=PARITY_EVEN
UART5.WordLength=WORDLENGTH_9B
UART7.BaudRate=115200
UART7.DMADisableonRxErrorParam=UART_ADVFEATURE_DMA_DISABLEONRXERROR
UART7.IPParameters=OverrunDisableParam,BaudRate,DMADisableonRxErrorParam
UART7.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_DISABLE
USART1.BaudRate=115200
USART1.DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR
USART1.IPParameters=VirtualMode-Asynchronous,OverrunDisableParam,DMADisableonRxErrorParam,BaudRate
USART1.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE
USART1.VirtualMode-Asynchronous=VM_ASYNC
USART2.DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR
USART2.IPParameters=VirtualMode-Asynchronous,OverrunDisableParam,DMADisableonRxErrorParam
USART2.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE
USART2.VirtualMode-Asynchronous=VM_ASYNC
USART3.BaudRate=921600
USART3.DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR
USART3.FIFOMode=FIFOMODE_ENABLE
USART3.IPParameters=VirtualMode-Asynchronous,DMADisableonRxErrorParam,OverrunDisableParam,FIFOMode,BaudRate,WordLength,Parity
USART3.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE
USART3.Parity=PARITY_EVEN
USART3.VirtualMode-Asynchronous=VM_ASYNC
USART3.WordLength=WORDLENGTH_9B
USART6.BaudRate=9600
USART6.DMADisableonRxErrorParam=ADVFEATURE_DMA_ENABLEONRXERROR
USART6.FIFOMode=FIFOMODE_ENABLE
USART6.IPParameters=VirtualMode,OverrunDisableParam,FIFOMode,DMADisableonRxErrorParam,BaudRate,SwapParam
USART6.OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE
USART6.SwapParam=ADVFEATURE_SWAP_DISABLE
USART6.VirtualMode=VM_ASYNC
VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
VP_TIM1_VS_ClockSourceINT.Mode=Internal
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
VP_TIM8_VS_ClockSourceINT.Mode=Internal
VP_TIM8_VS_ClockSourceINT.Signal=TIM8_VS_ClockSourceINT
board=custom
isbadioc=false

83
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast.launch

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

83
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3 Debug.launch

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

83
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3.launch

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

153
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/BHBF_ROBOT.h

@ -0,0 +1,153 @@
/*
* BHBF_ROBOT.h
*
* Created on: Oct 26, 2023
* Author: shiya
*/
#ifndef INC_BHBF_ROBOT_H_
#define INC_BHBF_ROBOT_H_
#include "BSP/bsp_include.h"
#include "MSP/msp_JTBATTERY.h"
#include "bsp_PV.pb.h"
#include "BSP/bsp_UART.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include "BHBF_ROBOT.h"
#include "BSP/pb.h"
#include "BSP/pb_decode.h"
#include "BSP/pb_encode.h"
#include "BSP/bsp_EEPROM.h"
#include "bsp_pb_decode_encode.h"
#include "bsp_MB_host.h"
#include "MSP/msp_TL720D.h"
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include "DLTuc.h"
#include "MSP/msp_MK32_1.h"
//#include "MSP/msp_MK32.h"
#include <msp_WH_LTE_7S0.h>
#include "BSP/pb.h"
#include "BSP/pb_decode.h"
#include "BSP/pb_encode.h"
#include "BSP/bsp_EEPROM.h"
#include "bsp_pb_decode_encode.h"
#include "bsp_MB_host.h"
#include "bsp_include.h"
#include "bsp_DLT_Log.h"
#include "bsp_UDP.h"
#include <msp_WH_LTE_7S0.h>
#include "BSP/bsp_cpu_flash.h"
#include <bsp_qspi_w25q128.h>
#include <bsp_UpperComputer_Handler.h>
#include "msp_TTMotor_ZQ.h"
#include "bsp_Error_Detect.h"
#include "bsp_IV.pb.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;
extern TT_MotorParameters* TT_Motor[4];
#endif /* INC_BHBF_ROBOT_H_ */

248
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/DLTuc.h

@ -0,0 +1,248 @@
/**
* @file DLTuc.h
* @author teodor
* @date 1 Jul 2022
* @brief This file is a part of DLTuc library
*
* In this header, you can find types, Api functions, which are provided by DLTuc library
* Usefull macros, for convience usage of DLTuc library in logging purposes
*
* Requirments:
* Around ~2kB of RAM
* Check Configuration file and defines:
* DLT_TRANSMIT_RING_BUFFER_SIZE, DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE
*
*/
#ifndef INC_DLT_LOGS_MCU_H_
#define INC_DLT_LOGS_MCU_H_
/*
* *******************************************************************************************
* Includes
* *******************************************************************************************
* */
#include "stdint.h"
#include <stdarg.h>
#include <string.h>
#include "DLTucConfig.h"
/*
* *******************************************************************************************
* Exported defines
* *******************************************************************************************
* */
/*@brief
*
* - convert the To strings to uint32_t
*/
#define DLT_LOG_ECUID_VALUE ((uint32_t)((((uint32_t) ((uint8_t)DLT_LOG_ECUID[0])) << 24UL) | \
(((uint32_t) ((uint8_t)DLT_LOG_ECUID[1])) << 16UL) | \
(((uint32_t) ((uint8_t)DLT_LOG_ECUID[2])) << 8UL) | \
((uint32_t)((uint8_t)DLT_LOG_ECUID[3]))))
#define DLT_LOG_APPID_VALUE ((uint32_t)((((uint32_t) ((uint8_t)DLT_LOG_APPID[0])) << 24UL) | \
(((uint32_t) ((uint8_t)DLT_LOG_APPID[1])) << 16UL) | \
(((uint32_t) ((uint8_t)DLT_LOG_APPID[2])) << 8UL) | \
((uint32_t)((uint8_t)DLT_LOG_APPID[3]))))
#define DLT_LOG_CONTEX_VALUE ((uint32_t)((((uint32_t) ((uint8_t)DLT_LOG_CONTEX[0])) << 24UL) | \
(((uint32_t) ((uint8_t)DLT_LOG_CONTEX[1])) << 16UL) | \
(((uint32_t) ((uint8_t)DLT_LOG_CONTEX[2])) << 8UL) | \
((uint32_t)((uint8_t)DLT_LOG_CONTEX[3]))))
/*
* Definitions of DLT services.
*/
#define DLT_SERVICE_ID_SET_LOG_LEVEL 0x01 /**< Service ID: Set log level */
#define DLT_SERVICE_ID_SETRACE_STATUS 0x02 /**< Service ID: Set trace status */
#define DLT_SERVICE_ID_GET_LOG_INFO 0x03 /**< Service ID: Get log info */
#define DLT_SERVICE_ID_GET_DEFAULT_LOG_LEVEL 0x04 /**< Service ID: Get dafault log level */
#define DLT_SERVICE_ID_STORE_CONFIG 0x05 /**< Service ID: Store configuration */
#define DLT_SERVICE_ID_RESETO_FACTORY_DEFAULT 0x06 /**< Service ID: Reset to factory defaults */
#define DLT_SERVICE_ID_SET_COM_INTERFACE_STATUS 0x07 /**< Service ID: Set communication interface status */
#define DLT_SERVICE_ID_SET_COM_INTERFACE_MAX_BANDWIDTH 0x08 /**< Service ID: Set communication interface maximum bandwidth */
#define DLT_SERVICE_ID_SET_VERBOSE_MODE 0x09 /**< Service ID: Set verbose mode */
#define DLT_SERVICE_ID_SET_MESSAGE_FILTERING 0x0A /**< Service ID: Set message filtering */
#define DLT_SERVICE_ID_SETIMING_PACKETS 0x0B /**< Service ID: Set timing packets */
#define DLT_SERVICE_ID_GET_LOCALIME 0x0C /**< Service ID: Get local time */
#define DLT_SERVICE_ID_USE_ECU_ID 0x0D /**< Service ID: Use ECU id */
#define DLT_SERVICE_ID_USE_SESSION_ID 0x0E /**< Service ID: Use session id */
#define DLT_SERVICE_ID_USEIMESTAMP 0x0F /**< Service ID: Use timestamp */
#define DLT_SERVICE_ID_USE_EXTENDED_HEADER 0x10 /**< Service ID: Use extended header */
#define DLT_SERVICE_ID_SET_DEFAULT_LOG_LEVEL 0x11 /**< Service ID: Set default log level */
#define DLT_SERVICE_ID_SET_DEFAULTRACE_STATUS 0x12 /**< Service ID: Set default trace status */
#define DLT_SERVICE_ID_GET_SOFTWARE_VERSION 0x13 /**< Service ID: Get software version */
#define DLT_SERVICE_ID_MESSAGE_BUFFER_OVERFLOW 0x14 /**< Service ID: Message buffer overflow */
#define DLT_SERVICE_ID_CALLSW_CINJECTION 0xFFF /**< Service ID: Message Injection (minimal ID) */
/*
* *******************************************************************************************
* Exported types
* *******************************************************************************************
* */
/**!
* \brief DltLogLevel_t
* \details Typdef used to identify the DLT log level
* */
typedef enum
{
DL_FATAL =1,
DL_ERROR =2,
DL_WARN =3,
DL_INFO =4,
DL_DEBUG =5,
DL_VERBOSE =6,
}DltLogLevel_t;
/*
* *******************************************************************************************
* Exported function - API
* *******************************************************************************************
* */
/*!
************************************************************************************************
* \brief DLTuc_RawDataReceiveDone
* \details OPTIONAL - Use only if you need handle data receive, like Injection messages
* Call the function to inform DLTuc that Raw data packet has been received
************************************************************************************************/
void DLTuc_RawDataReceiveDone(uint16_t Size);
/*!
************************************************************************************************
* \brief DLTuc_RegisterReceiveSerialDataFunction
* \details OPTIONAL - Use only if you need handle data receive, like Injection messages.
* - Register callback function which will be used by DLTuc to start data receive process.
* The Callback function is basicly called only after registration and if data packet has been received,
* to start again receive data packet
* \param in LLSerialRecDataFunctionC ...
************************************************************************************************/
void DLTuc_RegisterReceiveSerialDataFunction(void LLSerialRecDataFunctionC(uint8_t *DltLogData, uint16_t Size));
/*!
************************************************************************************************
* \brief DLTuc_RegisterInjectionDataReceivedCb
* \details OPTIONAL - Use only if you need handle data receive, like Injection messages
* Register injection data received call back
* Use the function if you want register call back function to handle the Injection messages in your application
* \param in InjectionDataRcvd ...
************************************************************************************************/
void DLTuc_RegisterInjectionDataReceivedCb
(void InjectionDataRcvd(uint32_t AppId, uint32_t ConId,uint32_t ServId,uint8_t *Data, uint16_t Size));
/*!
************************************************************************************************
* \brief DLTuc_RegisterTransmitSerialDataFunction
* \details This simple stack/library must be initialized by "DLTuc_RegisterTransmitSerialDataFunction"
* As a parameter must be passed function which will transmit serial data
* \param in LLSerialTrDataFunctionC transmit function pointer
************************************************************************************************/
void DLTuc_RegisterTransmitSerialDataFunction(void LLSerialTrDataFunctionC(uint8_t *DltLogData, uint8_t Size));
/*!
************************************************************************************************
* \brief DLTuc_RegisterGetTimeStampMsCallback
* \details function to update time stamp in library
* \param in GetSysTime - pointer to function which allow to read system time in msec
*************************************************************************************************/
void DLTuc_RegisterGetTimeStampMsCallback(uint32_t GetSysTime(void));
/*!
************************************************************************************************
* \brief DLTuc_MessageTransmitDone
* \details IMPORTANT!!!!!
* Call this function when the transsmision is end
* For example in "DMA transmission end callback" to inform the lib that the message is transmitted
************************************************************************************************
* */
void DLTuc_MessageTransmitDone(void);
/*!
************************************************************************************************
* \brief DLTuc_LogOutVarArgs
* \details default function to create DLT Log
* \param DltLogLevel_t Level - of Dlt log
* \param in AppId - size of the "DltLogData" (return value)
* \param in ContextId - pointer to the message stored in RingBuffer (return value)
* \param in Payload String to send as dlt log
* \param in ... parameters same as in printf function
*************************************************************************************************/
void DLTuc_LogOutVarArgs(DltLogLevel_t Level, uint32_t AppId, uint32_t ContextId, uint8_t *Payload, ...);
/*
* *******************************************************************************************
* Additional macros to facilitate the use of the library
* *******************************************************************************************
* */
#ifdef LOGS_ENABLE
/**!
* \brief LOGL(level, str, ...)
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add
* log_level, DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE
*
* */
#define LOG(str, ...)\
if(DL_INFO <= DLT_LOG_ENABLE_LEVEL){\
DLTuc_LogOutVarArgs(DL_INFO, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *) str, ##__VA_ARGS__);\
}
/**!
* \brief LOGL(level, str, ...)
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE
*
* */
#define LOGL(log_level, str, ...)\
if(log_level <= DLT_LOG_ENABLE_LEVEL){\
DLTuc_LogOutVarArgs(log_level, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *) str, ##__VA_ARGS__);\
}
/**!
* @brief LOGF(log_level, str, ...)
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE
* Additionally add the name of the calling function
*
*
* */
#define LOGF(log_level, str, ...)\
if(log_level <= DLT_LOG_ENABLE_LEVEL){\
DLTuc_LogOutVarArgs(log_level, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *) "FUN:%s LOG: "str, __FUNCTION__,##__VA_ARGS__);\
}
/**!
* \brief LOGFF(log_level, str, ...)
* \details Transmit DltLog using function DLTuc_LogOutVarArgs but user don't have to add DLT_LOG_APPID_VALUE and DLT_LOG_CONTEX_VALUE
* Additionally add the name of the calling function and file name
*
*
* */
#define LOGFF(log_level, str, ...)\
if(log_level <= DLT_LOG_ENABLE_LEVEL){\
DLTuc_LogOutVarArgs(log_level, DLT_LOG_APPID_VALUE, DLT_LOG_CONTEX_VALUE,(uint8_t *)"FILE:%s LINE: %d FUN:%s LOG: "str,__FILE__,__LINE__,__FUNCTION__,##__VA_ARGS__);\
}
#else
LOG(str, ...)
LOGL(log_level, str, ...)
LOGF(log_level, str, ...)
LOGFF(log_level, str, ...)
#endif
#endif /* INC_DLT_LOGS_MCU_H_ */

74
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/DLTucConfig.h

@ -0,0 +1,74 @@
/**
* @file DLTuc.c
* @author teodor
* @date 1 Jul 2022
* @brief This file is a part of DLTuc library
*
* In this header file is placed DLTuc configuration template
*
*/
#if 1 /*Set it to "1" to enable content*/
#ifndef __DLT_CONFIG__
/*Comment this line to turn off all logs..*/
#define LOGS_ENABLE
/*Pass here the entry critical entry function for your RTOS or
Interrupt block functions if you want use the library from diffrent context*/
#define DLTuc_OS_CRITICAL_START()
#define DLTuc_OS_CRITICAL_END()
/*Default minimum log level to transmit the log*/
//#ifndef DLT_LOG_ENABLE_LEVEL
////#define DLT_LOG_ENABLE_LEVEL DL_VERBOSE
// #define DLT_LOG_ENABLE_LEVEL 0
//#endif
extern char DLT_LOG_ENABLE_LEVEL;
/**!
* \brief DLT_LOG_CONTEX
* \details to define the minimum level log which will printed using the debug macros
*
*/
#ifndef DLT_LOG_CONTEX
#define DLT_LOG_CONTEX "DFLT"
#endif
/**!
* \brief DLT_LOG_APPID
* \details to define the minimum level log which will printed using the debug macros
*
*/
#ifndef DLT_LOG_APPID
#define DLT_LOG_APPID "0000"
#endif
/**!
* \brief DLT_LOG_ECUID
* \details you can define here you ECUID ..
*
*/
#define DLT_LOG_ECUID "uCID" /*Electronic Controller Unit ID*/
#define DLT_ECU_SW_VER 0001
/*
*@brief DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE & DLT_TRANSMIT_RING_BUFFER_SIZE
* these values define the size of the circular buffer and the maximum size of a single DLT message
* Size of out Circular DLT messages buffer is equal: DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE*DLT_TRANSMIT_RING_BUFFER_SIZE
*/
#define DLT_TRANSMIT_MAX_SINGLE_MESSAGE_SIZE 255
#define DLT_TRANSMIT_RING_BUFFER_SIZE 15
#define DLT_REC_SINGLE_MESSAGE_MAX_SIZE 255
#define DLT_RECEIVE_RING_BUFFER_SIZE 2
#endif //__DLT_CONFIG__
#endif //Content enable

15
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_DLT_Log.h

@ -0,0 +1,15 @@
/*
* bsp_DLT_Log.h
*
* Created on: Aug 8, 2024
* Author: akeguo
*/
#ifndef INC_BSP_BSP_DLT_LOG_H_
#define INC_BSP_BSP_DLT_LOG_H_
#include "BHBF_ROBOT.h"
void dLT_Log_intialize(struct UARTHandler *Handler);
#endif /* INC_BSP_BSP_DLT_LOG_H_ */

73
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_EEPROM.h

@ -0,0 +1,73 @@
/*
* bsp_EEPROM.h
*
* Created on: Oct 26, 2023
* Author: shiya
*/
#ifndef INC_BSP_EEPROM_H_
#define INC_BSP_EEPROM_H_
#include "bsp_include.h"
#include "bsp_CV.pb.h"
#include "bsp_IAP.pb.h"
#define EEPROM_WP_Pin GPIO_PIN_11
#define EEPROM_WP_GPIO_Port GPIOE
#define EEPROM_SCL_Pin GPIO_PIN_12
#define EEPROM_SCL_GPIO_Port GPIOE
#define EEPROM_SDA_Pin GPIO_PIN_13
#define EEPROM_SDA_GPIO_Port GPIOE
#define AT24C512
#ifdef AT24C512
#define EE_MODEL_NAME "AT24C512"
#define EE_DEV_ADDR 0xA0 /* 设备地址 */
#define EE_PAGE_SIZE 128 /* 页面大小(字节) */
#define EE_SIZE (512*128) /* 总容量(字节) */ // not used in this progrm
#define EE_ADDR_BYTES 2 /* 地址字节个数 */
#endif
#define I2C_WR 0 /* 写控制bit */
#define I2C_RD 1 /* 读控制bit */
//////////////////////////////////////////////////////////////////
//there are 12M eeprom in total, and the code download Address is App_Download_EEPROM_Addr
//512 Pages x 128 Bytes = 65536 Bytes = 512 kbits
#define GF_BSP_EEPROM_CV_struct_define_Start_Address 0
#define IAP_struct_define_Start_Address 512
extern uint16_t App_Download_EEPROM_Addr;
//返回值::1-正常;0-错误
uint8_t GF_BSP_EEPROM_Init(void);
uint8_t GF_BSP_EEPROM_CheckOK(void);
uint8_t GF_BSP_EEPROM_ReadBytes(uint8_t *_pReadBuf, uint16_t _usAddress,
uint16_t _usSize);
uint8_t GF_BSP_EEPROM_WriteBytes(uint8_t *_pWriteBuf, uint16_t _usAddress,
uint16_t _usSize);
CV_struct_define GF_BSP_EEPROM_Get_CV(void);
uint8_t GF_BSP_EEPROM_Set_CV(CV_struct_define cv);
IAP_struct_define GF_BSP_EEPROM_Get_IAP(void);
uint8_t GF_BSP_EEPROM_Set_IAP(IAP_struct_define iap);
PV_struct_define GF_BSP_EEPROM_Get_PV(void);
uint8_t GF_BSP_EEPROM_Set_PV(PV_struct_define pv);
#endif /* INC_BSP_EEPROM_H_ */

25
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_Error_Detect.h

@ -0,0 +1,25 @@
/*
* bsp_Error_Detect.h
*
* Created on: Oct 23, 2024
* Author: akeguo
*/
#ifndef INC_BSP_BSP_ERROR_DETECT_H_
#define INC_BSP_BSP_ERROR_DETECT_H_
/* Includes ------------------------------------------------------------------*/
#include "BHBF_ROBOT.h"
#include "bsp_com_helper.h"
#include "BSP/bsp_include.h"
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
extern HardWareController *HardWareErrorController;
/* Exported functions ------------------------------------------------------- */
extern void Error_Detect_Intialzie(uint16_t DispacherPeriod);
extern char Error_Detect_Enable;
#endif /* INC_BSP_BSP_ERROR_DETECT_H_ */

84
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_FDCAN.h

@ -0,0 +1,84 @@
/*
* bsp_FDCAN.h
*
* Created on: Oct 26, 2023
* Author: shiya
*/
#ifndef INC_BSP_FDCAN_H_
#define INC_BSP_FDCAN_H_
#include "bsp_Error.pb.h"
#include "bsp_com_helper.h"
uint8_t GF_BSP_FDCAN_Init(void);
void GF_BSP_FDCAN_Senddata(uint8_t FDCAN_CH, uint32_t FrameID,
uint8_t DataLength, uint8_t *Txdata);
extern uint8_t CAN_Buf[8];
extern uint8_t CAN_Buf[8];
extern uint8_t CAN_Buf_2[8];
typedef struct _CANSendHandler
{
uint32_t CAN_ID;
uint32_t SendListTimePeriod;
uint8_t SendLength;
uint8_t Tx_Buf[8];
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t);
struct _CANSendHandler *pNext;
} CANSendHandler;
typedef struct _FDCANHandler
{
FDCAN_HandleTypeDef *canfd; //UART to use
struct _DispacherController *dispacherController;
uint8_t timeSpan;
uint8_t SendListExists;
uint32_t SendList_Period; //时间ms
uint32_t SendList_time_Count;
CANSendHandler *pCurrentCANSendHadler; //
void (*AddCANSendList)(struct _FDCANHandler*, uint32_t, uint8_t, uint8_t*,uint32_t,//这里是修改等待时间
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t));
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t); // decode can frame, received from other devices
void (*CAN_Send)(struct _FDCANHandler*, uint32_t, uint8_t, uint8_t*);
void (*CAN_Send_Data)(struct _FDCANHandler*);
//(uint8_t FDCAN_CH, uint32_t FrameID,uint8_t DataLength, uint8_t *Txdata)
uint8_t Rx_Buf[128];
uint8_t Tx_Buf[128];
uint32_t ReceivedLength;
uint32_t SendLength;
uint32_t ReceivedFrameID;
uint32_t SendFrameID;
} FDCANHandler;
extern FDCANHandler FD_CAN_1_Handler;
extern FDCANHandler FD_CAN_2_Handler;
void GF_BSP_CAN_Timer();
void CAN_Send_t(struct _FDCANHandler *fd, uint32_t FrameID, uint8_t DataLength,
uint8_t *Txdata);
void CAN_Send_Data_t(struct _FDCANHandler *fd);
void GF_CAN_Send_List_Send(FDCANHandler *handler);
void CANHandlerAddTxList(FDCANHandler *handler, uint32_t CAN_ID,
uint8_t SendLength, uint8_t *Tx_Buf,uint32_t sendListTimePeriod,
void (*CAN_Decode)(uint32_t, uint8_t*, uint32_t));
void GF_BSP_CANHandler_Init(int can1_sendListPeriod, int can1_DispacherPeriod,
int can2_sendListPeriod, int can2_DispacherPeriod);
void GF_BSP_CANHandler_Init_CAN(FDCANHandler *handler,
FDCAN_HandleTypeDef *canfd, int sendListPeriod, int DispacherPeriod);
void DecodeMotorCAN(uint32_t canID, uint8_t *buffer, uint32_t length);
extern FDCANHandler FD_CAN_1_Handler;
extern FDCANHandler FD_CAN_2_Handler;
extern int32_t CAN_ID;
extern int32_t CAN_ID_2;
#endif /* INC_BSP_FDCAN_H_ */

18
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_GPIO.h

@ -0,0 +1,18 @@
/*
* bsp_GPIO.h
*
* Created on: Oct 26, 2023
* Author: shiya
*/
#ifndef INC_BSP_GPIO_H_
#define INC_BSP_GPIO_H_
#include "bsp_include.h"
uint8_t GF_BSP_GPIO_Init(void);
void GF_BSP_GPIO_SetIO(uint8_t IO_Index,uint8_t Level);
uint8_t GF_BSP_GPIO_ReadIO(uint8_t IO_Index);
uint8_t GF_BSP_GPIO_ToggleIO(uint8_t IO_Index);
#endif /* INC_BSP_GPIO_H_ */

50
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_MB_host.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/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****/

17
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_TIMER.h

@ -0,0 +1,17 @@
/*
* bsp_TIMER.h
*
* Created on: Oct 26, 2023
* Author: shiya
*/
#ifndef INC_BSP_TIMER_H_
#define INC_BSP_TIMER_H_
#include "bsp_include.h"
uint8_t GF_BSP_TIMER_Init(void);
void GF_BSP_TIMER_DelayUS(uint32_t n);
#endif /* INC_BSP_TIMER_H_ */

128
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_UART.h

@ -0,0 +1,128 @@
#ifndef INC_BSP_UART_H_
#define INC_BSP_UART_H_
#include "BSP/bsp_include.h"
#include "main.h"
#include "bsp_Error.pb.h"
#define UART_Transmit_MAX_NUM 1024
#define UART_Receive_MAX_NUM 100
extern struct UARTHandler RS_485_1_UART_Handler;
extern struct UARTHandler RS_485_2_UART_Handler;
extern struct UARTHandler RS_485_3_UART_Handler;
extern struct UARTHandler RS_485_4_UART_Handler;
extern struct UARTHandler InterCall_DEBUG_UART_Handler;
extern struct UARTHandler E28_SBUS_UART_Handler;
extern struct UARTHandler LTE_7S0_Serial_UART_Handler;
#if defined (hlpuart1Exit)
extern struct UARTHandler LPUART1_UART_Handler;
#endif
uint8_t GF_BSP_UART_Init(void);
void GF_BSP_UARTHandlers_Intialize(
int32_t RS485_1_WaitTime,
int32_t RS485_2_WaitTime,
int32_t RS485_3_WaitTime,
int32_t RS485_4_WaitTime,
int32_t LTE_7S0_Serial_WaitTime,
int32_t InterCall_DEBUG_WaitTime,
int32_t E28_SBUS_WaitTime,
int32_t LPUART1_UART_WaitTime,
int32_t RS485_1_Dispacher_Time,
int32_t RS485_2_Dispacher_Time,
int32_t RS485_3_Dispacher_Time,
int32_t RS485_4_Dispacher_Time,
int32_t LTE_7S0_Serial_Dispacher_Time,
int32_t InterCall_DEBUG_Dispacher_Time,
int32_t E28_SBUS_Dispacher_Time,
int32_t LPUART1_UART_Dispacher_Time
);
//串行发送完成后才能发送第二帧数据,没有做缓冲,如未发送完成,第二次发送无效,丢弃发送数据
void GF_BSP_UART_Transmit(const uint8_t RS485_Index,const uint8_t *pData, uint16_t Size);
typedef struct UARTSendHandler
{
uint16_t SendLength;
uint16_t SendListTimePeriod;
uint8_t Tx_Buf[502];
void (*UART_Decode)(uint8_t*, uint16_t); // 发送缓存
struct UARTSendHandler* pNext;
}UARTSendHandler;
struct UARTHandler
{
char startCountFlag; //indicate that to start counting
char send_finished;//indicate decode finished or not
char decode_finished;//indicate decode finished or not
uint8_t tmp_Rx_Buf[2]; // temporary data to store received data
uint32_t Wait_time; // the time to wait
//uint32_t Send_time;
//uint32_t count;
uint32_t Wait_Time_Count;
uint32_t SendList_time_Count;
uint32_t SendList_Period;
uint8_t SendListExists;
UART_HandleTypeDef* uart; //UART to use
unsigned char timeSpan; // timer elapsed time
uint8_t Rx_Buf[2048]; // 接收缓存,最大256字节
uint8_t Tx_Buf[2048]; //发送缓存 157,864
uint16_t TxCount;
uint16_t RxCount;
//(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size)
void (*UART_Tx)(struct UARTHandler*); //void UART_Tx(uint8_t *Tx_Buf,uint16_t TxCount);
void (*UART_Rx)(struct UARTHandler*);
void (*UART_Decode)(uint8_t*, uint16_t); //Decode Rx_Buf
UARTSendHandler *pCurrentUARTSendHadler; //
void (*AddSendList)(struct UARTHandler*, uint8_t*, uint16_t,uint32_t,//这里是修改等待时间
void (*UART_Decode)(uint8_t*, uint16_t));
struct _DispacherController *dispacherController;
// //got a dispacher alone
// Dispatcher *pHead;// = NULL; //环形链表中的数据头指针
// Dispatcher *pTail;// = NULL; //环形链表中的数据尾指针
// uint16_t DispacherNumber;// = 0;
//
// uint16_t DispacherCallPeriod; //= 100; //2ms 一次,
//
// uint16_t Dispacher_Counter;// = 0;
// uint16_t Dispacher_Enable;// = 0;
// void(*Add_Dispatcher_List)(struct UARTHandler *uartHandler,void (*dispache)(void));//UART的调度程序
// void(*Dispatcher_Run)(struct UARTHandler *uartHandler);//UART的调度程序
};
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_ */

17
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_UDP.h

@ -0,0 +1,17 @@
/*
* bsp_UDP.h
*
* Created on: Aug 13, 2024
* Author: akeguo
*/
#ifndef INC_BSP_BSP_UDP_H_
#define INC_BSP_BSP_UDP_H_
void udp_printf_CmdBack(char *pData);
void udp_client_init(void);
void GF_UDP_Send(uint8_t *pData,uint16_t Size,uint16_t UDP_port);
void GF_UDP_long_Send_Server(void);
void GF_UpdataPos_Send(uint8_t *pData,uint32_t Size);
#endif /* INC_BSP_BSP_UDP_H_ */

27
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_UpperComputer_Handler.h

@ -0,0 +1,27 @@
/*
* bsp_desulfurizer_handler.h
*
* Created on: Jul 29, 2024
* Author: akeguo
*/
#ifndef INC_BSP_BSP_UPPERCOMPUTER_HANDLER_H_
#define INC_BSP_BSP_UPPERCOMPUTER_HANDLER_H_
#include <stdio.h>
#include <string.h>
#include "bsp_MB_host.h"
#include "stdio.h"
#include "BSP/bsp_UART.h"
#include "usart.h"
#include "gpio.h"
extern struct UARTHandler *desulfurizer_message_UART_Handler;
void upper_Computer_UART_Handler_intialize(struct UARTHandler *Handler);
void decode_command_from_computer(uint8_t *buffer, uint16_t length);
void send_data_to_upper_computer(double Angle, double WireLength,
double Thickness, char IsFittingPoint,char isMqtt,struct UARTHandler *send_UART_Handler);
#endif /* INC_BSP_BSP_UPPERCOMPUTER_HANDLER_H_ */

13
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_client_setting.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_ */

82
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_com_helper.h

@ -0,0 +1,82 @@
/*
* bsp_com_helper.h
*
* Created on: Oct 9, 2024
* Author: akeguo
*/
#ifndef INC_BSP_BSP_COM_HELPER_H_
#define INC_BSP_BSP_COM_HELPER_H_
#include "bsp_include.h"
typedef struct _Dispatcher
{
//uint8_t IsDeleted;
void (*dispache)(void);
//struct _Dispatcher* pBefore;
struct _Dispatcher* pNext;
}Dispatcher;
//通讯链表节点结构体
typedef struct _ComHardWare
{
//void (*dispache)(void);
char Name[50];
char IsOnline;
uint32_t BitFlag;
struct _ComHardWare* pNext;
}ComHardWare;
typedef struct _DispacherController
{
Dispatcher *pHead; // = NULL; //环形链表中的数据头指针
Dispatcher *pTail; // = NULL; //环形链表中的数据尾指针
uint16_t DispacherNumber; // = 0;
uint16_t DispacherCallTime; //
uint16_t Dispacher_Counter; // = 0;
uint16_t Dispacher_Enable; // = 0 disable 1 enable
void (*Add_Dispatcher_List)(struct _DispacherController* ,
void (*dispacher)(void)); //UART的调度程序
void (*Dispatcher_Run)(struct _DispacherController* ); //UART的调度程序
}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_ */

66
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_cpu_flash.h

@ -0,0 +1,66 @@
/*
* bsp_cpu_flash.h
*
* Created on: Aug 28, 2024
* Author: akeguo
*/
#ifndef SRC_BSP_BSP_CPU_FLASH_H_
#define SRC_BSP_BSP_CPU_FLASH_H_
#include "main.h"
#include <bsp_qspi_w25q128.h>
#include "quadspi.h"
#define ENABLE_INT() __set_PRIMASK(0) /* 使能全局中断 */
#define DISABLE_INT() __set_PRIMASK(1) /* 禁止全局中断 */
#define CPU_FLASH_BASE_ADDR (uint32_t)(FLASH_BASE) /* 0x08000000 */
#define CPU_FLASH_END_ADDR (uint32_t)(0x081FFFFF)
#define CPU_FLASH_SIZE (2 * 1024 * 1024) /* FLASH总容量 */
#define CPU_FLASH_SECTOR_SIZE (128 * 1024) /* 扇区大小,字节 */
/* Base address of the Flash sectors Bank 1 */
#define ADDR_FLASH_SECTOR_0_BANK1 ((uint32_t)0x08000000) /* Base @ of Sector 0, 128 Kbytes */
#define ADDR_FLASH_SECTOR_1_BANK1 ((uint32_t)0x08020000) /* Base @ of Sector 1, 128 Kbytes */
#define ADDR_FLASH_SECTOR_2_BANK1 ((uint32_t)0x08040000) /* Base @ of Sector 2, 128 Kbytes */
#define ADDR_FLASH_SECTOR_3_BANK1 ((uint32_t)0x08060000) /* Base @ of Sector 3, 128 Kbytes */
#define ADDR_FLASH_SECTOR_4_BANK1 ((uint32_t)0x08080000) /* Base @ of Sector 4, 128 Kbytes */
#define ADDR_FLASH_SECTOR_5_BANK1 ((uint32_t)0x080A0000) /* Base @ of Sector 5, 128 Kbytes */
#define ADDR_FLASH_SECTOR_6_BANK1 ((uint32_t)0x080C0000) /* Base @ of Sector 6, 128 Kbytes */
#define ADDR_FLASH_SECTOR_7_BANK1 ((uint32_t)0x080E0000) /* Base @ of Sector 7, 128 Kbytes */
/* Base address of the Flash sectors Bank 2 */
#define ADDR_FLASH_SECTOR_0_BANK2 ((uint32_t)0x08100000) /* Base @ of Sector 0, 128 Kbytes */
#define ADDR_FLASH_SECTOR_1_BANK2 ((uint32_t)0x08120000) /* Base @ of Sector 1, 128 Kbytes */
#define ADDR_FLASH_SECTOR_2_BANK2 ((uint32_t)0x08140000) /* Base @ of Sector 2, 128 Kbytes */
#define ADDR_FLASH_SECTOR_3_BANK2 ((uint32_t)0x08160000) /* Base @ of Sector 3, 128 Kbytes */
#define ADDR_FLASH_SECTOR_4_BANK2 ((uint32_t)0x08180000) /* Base @ of Sector 4, 128 Kbytes */
#define ADDR_FLASH_SECTOR_5_BANK2 ((uint32_t)0x081A0000) /* Base @ of Sector 5, 128 Kbytes */
#define ADDR_FLASH_SECTOR_6_BANK2 ((uint32_t)0x081C0000) /* Base @ of Sector 6, 128 Kbytes */
#define ADDR_FLASH_SECTOR_7_BANK2 ((uint32_t)0x081E0000) /* Base @ of Sector 7, 128 Kbytes */
#define FLASH_IS_EQU 0 /* Flash内容和待写入的数据相等,不需要擦除和写操作 */
#define FLASH_REQ_WRITE 1 /* Flash不需要擦除,直接写 */
#define FLASH_REQ_ERASE 2 /* Flash需要先擦除,再写 */
#define FLASH_PARAM_ERR 3 /* 函数参数错误 */
#define App_Start_Addr 0x08000000
#define App_Run_Addr 0x08020000
#define App_Download_Addr 0x08080000 // ADDR_FLASH_SECTOR_4_BANK1
uint8_t bsp_ReadCpuFlash(uint32_t _ulFlashAddr, uint8_t *_ucpDst, uint32_t _ulSize);
uint8_t bsp_WriteCpuFlash(uint32_t _ulFlashAddr, uint8_t *_ucpSrc, uint32_t _ulSize);
uint8_t bsp_CmpCpuFlash(uint32_t _ulFlashAddr, uint8_t *_ucpBuf, uint32_t _ulSize);
void JumpToApp(void);
void Copy_Peripheral_Download_Flash_to_App_Start(uint32_t totalBytes);
uint8_t bsp_EraseCpuFlash(uint32_t _ulFlashAddr);
void Erase_App_Download_Flash_Addr();
void Copy_Download_Flash_to_Start();
#endif /* SRC_BSP_BSP_CPU_FLASH_H_ */

39
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_decode_command.h

@ -0,0 +1,39 @@
/*
* bsp_decode_command.h
*
* Created on: Sep 24, 2024
* Author: akeguo
*/
#ifndef INC_BSP_BSP_DECODE_COMMAND_H_
#define INC_BSP_BSP_DECODE_COMMAND_H_
#include "main.h"
#include "msp_WH_LTE_7S0.h"
#include "pb_decode.h"
#include "pb_encode.h"
#include "bsp_include.h"
#include "pb.h"
#include "bsp_Cmd.pb.h"
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include "BHBF_ROBOT.h"
#include "bsp_cpu_flash.h"
#include <bsp_qspi_w25q128.h>
#include <bsp_UpperComputer_Handler.h>
#include "bsp_ReCmd.pb.h"
#include "bsp_IV.pb.h"
void send_received_data_to_upper_computer(uint8_t *buffer, uint16_t length);
void decode_command_and_feedback(uint8_t *buffer, uint16_t length, char isMqtt,
struct UARTHandler *send_Handler);
void WrapInCmdAndSend(ReCmd send_Cmd, uint8_t *buf, char isMqtt,struct UARTHandler *send_Handler);
void WrapInCmdAndSendMessage(ReCmd send_Cmd,int8_t functionNum,char isSuccess, uint8_t *buf, char isMqtt,
struct UARTHandler *send_Handler);
#endif /* INC_BSP_BSP_DECODE_COMMAND_H_ */

57
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_include.h

@ -0,0 +1,57 @@
/*
* bsp_include.h
*
* Created on: Oct 26, 2023
* Author: shiya
*/
#ifndef INC_BSP_INCLUDE_H_
#define INC_BSP_INCLUDE_H_
#include "main.h"
#include "dma.h"
#include "fdcan.h"
#include "i2c.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"
#include "bsp_EEPROM.h"
#include "bsp_GPIO.h"
#include "bsp_FDCAN.h"
#include "bsp_TIMER.h"
#include "bsp_PV.pb.h"
#include "bsp_GV.pb.h"
#include "bsp_CV.pb.h"
#include "pb.h"
#include "pb_decode.h"
#include "pb_common.h"
#include "DLTuc.h"
//一个中断回调函数支持多少个回调函数链接
#define DF_BSP_InterCall_Num 20
//一共支持多少种中断函数
#define DF_BSP_InterCall_Type_Num 11
enum DF_BSP_InterCall_Type
{
DF_BSP_InterCall_FDCAN1_RxFifo0Callback = 0,
DF_BSP_InterCall_FDCAN2_RxFifo0Callback,
DF_BSP_InterCall_RS485_1_RxCpltCallback,
DF_BSP_InterCall_RS485_2_RxCpltCallback,
DF_BSP_InterCall_RS485_3_RxCpltCallback,
DF_BSP_InterCall_RS485_4_RxCpltCallback,
DF_BSP_InterCall_DEBUG_RxCpltCallback,
DF_BSP_InterCall_E22_Serial_RxCpltCallback,
DF_BSP_InterCall_E28_SBUS_RxFifo0Callback,
DF_BSP_InterCall_TIM1_100ms_PeriodElapsedCallback,
DF_BSP_InterCall_TIM8_2ms_PeriodElapsedCallback
};
uint8_t GF_BSP_Interrupt_Add_CallBack(enum DF_BSP_InterCall_Type _type,
void (*_fn)(void));
void GF_BSP_Interrupt_Run_CallBack(enum DF_BSP_InterCall_Type _type);
#endif /* INC_BSP_INCLUDE_H_ */

51
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_pb_decode_encode.h

@ -0,0 +1,51 @@
/*
* bsp_pb_decode_encode.h
*
* Created on: Jul 5, 2024
* Author: akeguo
*/
#ifndef INC_BSP_BSP_PB_DECODE_ENCODE_H_
#define INC_BSP_BSP_PB_DECODE_ENCODE_H_
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include "pb_decode.h"
#include "pb_encode.h"
#include "pb.h"
#include "bsp_CV.pb.h"
#include "bsp_GV.pb.h"
#include "msp_MK32.pb.h"
#include "msp_Motor.pb.h"
#include "bsp_PV.pb.h"
#include "bsp_CV.pb.h"
#include "bsp_CV.pb.h"
#include "pb_common.h"
#include "bsp_IAP.pb.h"
IAP_struct_define pb_decode_IAP(uint8_t *buf, size_t length);
typedef struct pb_buffer_arg
{
/* Buffer to be written, or reference to read buffer */
void const *buf;
/* Length of buf */
size_t buf_len;
} pb_buffer_arg;
bool pb_encode_string_cb(pb_ostream_t *stream, const pb_field_t *field, void *const *arg);
bool pb_decode_string_cb(pb_istream_t *stream, const pb_field_t *field, void **arg);
extern CV_struct_define pb_decode_CV(char *buf, size_t length);
extern void Test_CV();
//extern void pb_encode_TraceMessage(char buf[], size_t buf_len,size_t* len,TraceLevel traceLevel, char logger[], char message[] );
void pb_encode_TraceMessage(char buf[],size_t buf_len, size_t* len,
char traceLevel[], char logger[], char message[] );
#endif /* INC_BSP_BSP_PB_DECODE_ENCODE_H_ */

107
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/bsp_qspi_w25q128.h

@ -0,0 +1,107 @@
/*
* bsp_quadspi_W25Q128.h
*
* Created on: Apr 21, 2021
* Author: Administrator
*
* bsp用于华邦的w25q128JVw25q128JV不一样
*
*/
#ifndef BSP_QSPI_W25Q128_H_
#define BSP_QSPI_W25Q128_H_
#include "quadspi.h"
#include "stdio.h"
/* 宏定义 --------------------------------------------------------------------*/
#define FLASH_BEGIN_ADDRESS 0x00000
#define CODE_DOWNLOAD_FLASH_BEGIN_ADDRESS 0x00000
#define CODE_FLASH_STORAGE_SIZE 1024*1024 // 留下1M的空间存储数据
#define W25Q128FV_FLASH_SIZE 0x1000000 /* 128 MBits => 16MBytes */
#define W25Q128FV_BLOCK_SIZE 0x10000 /* 256 Blocks of 64KBytes */
#define W25Q128FV_HALF_BLOCK_SIZE 0x8000 /* 128 Blocks of 32KBytes */
#define W25Q128FV_SECTOR_SIZE 0x1000 /* 4096 sectors of 4kBytes */
#define W25Q128FV_PAGE_SIZE 0x100 /* 65536 pages of 256 bytes */
#define W25Q128FV_DUMMY_CYCLES_READ 4
#define W25Q128FV_DUMMY_CYCLES_READ_QUAD 10
#define W25Q128FV_BULK_ERASE_MAX_TIME 250000//ms
#define W25Q128FV_SECTOR_ERASE_MAX_TIME 3000
#define W25Q128FV_SUBSECTOR_ERASE_MAX_TIME 800
#define W25Q128FV_FLASH_ID 0XEF4018
/* W25Q128FV 指令 */
/* 复位操作 */
#define RESET_ENABLE_CMD 0x66
#define RESET_MEMORY_CMD 0x99
#define ENTER_QPI_MODE_CMD 0x38
#define EXIT_QPI_MODE_CMD 0xFF
/* 读取ID指令 */
#define READ_ID_CMD 0x90
#define DUAL_READ_ID_CMD 0x92
#define QUAD_READ_ID_CMD 0x94
#define READ_JEDEC_ID_CMD 0x9F
/* 读操作指令 */
#define READ_CMD 0x03
#define FAST_READ_CMD 0x0B
#define DUAL_OUT_FAST_READ_CMD 0x3B
#define DUAL_INOUT_FAST_READ_CMD 0xBB
#define QUAD_OUT_FAST_READ_CMD 0x6B
#define QUAD_INOUT_FAST_READ_CMD 0xEB
/* 写使能操作指令 */
#define WRITE_ENABLE_CMD 0x06
#define WRITE_DISABLE_CMD 0x04
/* 读写状态寄存器操作指令 */
#define READ_STATUS_REG1_CMD 0x05
#define READ_STATUS_REG2_CMD 0x35
#define READ_STATUS_REG3_CMD 0x15
#define WRITE_STATUS_REG1_CMD 0x01
#define WRITE_STATUS_REG2_CMD 0x31
#define WRITE_STATUS_REG3_CMD 0x11
/* 编程指令 */
#define PAGE_PROG_CMD 0x02
#define QUAD_INPUT_PAGE_PROG_CMD 0x32
/* 擦除Flash指令 */
#define SECTOR_ERASE_CMD 0x20
#define BLOCK_32KB_ERASE_CMD 0x52
#define BLOCK_64KB_ERASE_CMD 0xD8
#define CHIP_ERASE_CMD 0xC7
#define PROG_ERASE_RESUME_CMD 0x7A
#define PROG_ERASE_SUSPEND_CMD 0x75
/* 状态寄存器标志位 */
#define W25Q128FV_FSR_BUSY ((uint8_t)0x01) /* busy */
#define W25Q128FV_FSR_WREN ((uint8_t)0x02) /* write enable */
#define W25Q128FV_FSR_QE ((uint8_t)0x02) /* quad enable */
/* Flash 状态码*/
#define FLASH_OK ((uint8_t)0x00)
#define FLASH_ERROR ((uint8_t)0x01)
#define FLASH_BUSY ((uint8_t)0x02)
#define FLASH_NOT_SUPPORTED ((uint8_t)0x04)
#define FLASH_SUSPENDED ((uint8_t)0x08)
uint32_t QSPI_W25Qx_ReadID(void);
void QSPI_W25Qx_Reset_Memory();
void QSPI_W25Qx_EraseSector(uint32_t _SectorAddr);
uint8_t QSPI_W25Qx_Write_Buffer(uint8_t *_pBuf,uint32_t _write_Addr,uint16_t _write_Size);
void QSPI_W25Qx_Read_Buffer(uint8_t *_pBuf,uint32_t _read_Addr,uint32_t _read_Size);
void QSPI_W25Qx_EraseDownLoadFlash();
void user_Assert(char *file,uint32_t line);
#endif /* BSP_QSPI_W25Q128_H_ */

917
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/pb.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

49
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/pb_common.h

@ -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

193
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/pb_decode.h

@ -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

185
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/pb_encode.h

@ -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

38
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/BSP/readme.h

@ -0,0 +1,38 @@
/*
* readme.h
*
* Created on: 20231031
* Author: shiya
*
* CAN_H7_Bootloader程序存放位置
* FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K
* APP的存放位置为
* FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 896K
* APP的中断向量表设置为
* define VECT_TAB_OFFSET 0x00020000U
*
* Boot顺序CAN总线2
* Boot程序总线返回报文ID0x1FF
* 1. Boot启动1
* 2. 100ms0x1100x55 BootLoader程序 A
* 3. bootloader请求3APP
*
* A. bootloader程序2
* ID为0x222canbootloader.lua
* B. 4canbootloader.lua
*
* C. 3APP
* PV
* CV CV中有PV
* GV
* IV
*
*/
#ifndef INC_BSP_README_H_
#define INC_BSP_README_H_
#endif /* INC_BSP_README_H_ */

44
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_Blast_Machine.h

@ -0,0 +1,44 @@
/*
* msp_Blast_Machine.h
*
* Created on: Oct 24, 2025
* Author: Administrator
*/
#ifndef BASE_INC_MSP_MSP_BLAST_MACHINE_H_
#define BASE_INC_MSP_MSP_BLAST_MACHINE_H_
#define base_balst_time 60
#define base_balst_time2 (base_balst_time*2)
#define base_balst_time3 (base_balst_time*3)
#define base_balst_time4 (base_balst_time*4)
#define base_balst_time5 (base_balst_time*5)
#include "BSP/bsp_UART.h"
#include "msp_KS206.pb.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stddef.h>
#include <stdbool.h>
#include <inttypes.h> // 用于uint32_t的格式化宏
// 常量定义
enum {
ARRAY_LENGTH = 8, // 目标数组固定长度
FIXED_PART_LEN = 4, // 数组固定前缀长度
HEX_BUF_LEN = 20, // 16进制字符串缓冲区大小
BIN_BUF_LEN = 40, // 二进制字符串缓冲区大小
HEX_GROUP_LEN = 4, // 16进制转换的4位二进制分组
CODE_STR_LEN = 11 // uint32_t最大10位数字 + 终止符
};
void blast_control_intialize(struct UARTHandler *Handler);
void Blast_Machine_Control_Fun();
void Blast_Machine_Open_Fun();
void Blast_Machine_Close_Fun();
#endif /* BASE_INC_MSP_MSP_BLAST_MACHINE_H_ */

15
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_CMCUU.h

@ -0,0 +1,15 @@
/*
* msp_CMCU.h
*
* Created on: Jun 24, 2025
* Author: 13752
*/
#ifndef INC_MSP_MSP_CMCU_H_
#define INC_MSP_MSP_CMCU_H_
#include "BSP/bsp_UART.h"
void CMCU_sensor_intialize(struct UARTHandler *Handler);
extern CMCU_struct_define *CMCU;
#endif /* INC_MSP_MSP_CMCU_H_ */

15
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_JTBATTERY.h

@ -0,0 +1,15 @@
/*
* msp_JTBATTERY.h
*
* Created on: Oct 26, 2023
* Author: shiya
*/
#ifndef INC_MSP_MSP_JTBATTERY_H_
#define INC_MSP_MSP_JTBATTERY_H_
#include "BSP/bsp_include.h"
#endif /* INC_MSP_MSP_JTBATTERY_H_ */

18
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_KS206.h

@ -0,0 +1,18 @@
/*
* msp_KS206.h
*
* Created on: Jun 23, 2025
* Author: 13752
*/
#ifndef INC_MSP_MSP_KS206_H_
#define INC_MSP_MSP_KS206_H_
#include "BSP/bsp_UART.h"
#include "msp_KS206.pb.h"
void KS206_sensor_intialize(struct UARTHandler *Handler);
extern KS206_struct_define *KS206;
#endif /* INC_MSP_MSP_KS206_H_ */

27
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_MF_Gyroscope.h

@ -0,0 +1,27 @@
/*
* msp_MF_Gyroscope.h
*
* Created on: Dec 6, 2024
* Author: 13752
*/
#ifndef BASE_INC_MSP_MSP_MF_GYROSCOPE_H_
#define BASE_INC_MSP_MSP_MF_GYROSCOPE_H_
#include "BSP/bsp_include.h"
//typedef struct
//{
//
// int16_t Gyro_AngularVel;
// double_t Gyro_Angular;
// int8_t Gyro_Temper;
//
//}SP_MSP_Gyro_parameters;
uint8_t GF_MSP_Gyro_MFOG40_Init(UART_HandleTypeDef* huart,MFOG40_Gyro_struct_define* _gyro_mfog40);
void GF_Gyro_Unscramble_Callback();
#endif /* BASE_INC_MSP_MSP_MF_GYROSCOPE_H_ */

17
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_MK32_1.h

@ -0,0 +1,17 @@
/*
* 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/bsp_UART.h"
#include "msp_MK32.pb.h"
void Sbus_Data_Count(uint8_t *buf, int32_t *But_Value);
extern SP_MSP_MK32_Button *P_MK32;
extern char ReceivedFromMK32;
void MK32_Sbus_UART_Handler_intialize(struct UARTHandler* Handler);
#endif /* INC_MSP_MSP_MK32_1_H_ */

27
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_PID.h

@ -0,0 +1,27 @@
/*
* msp_PID.h
*
* Created on: 2024122
* Author: Administrator
*/
#ifndef INC_MSP_MSP_PID_H_
#define INC_MSP_MSP_PID_H_
#include "BSP/bsp_include.h"
void GF_MSP_Auto_Motion_adj(double Current_Angle, double Auto_Speed, double Auto_Speed_Max, double System_time ,double *W_Speed_1);
void GF_MSP_Auto_adj_Unicycle(double Current_Angle_11,double Desire_Angle_11, double Auto_Speed, double Auto_Speed_Max, double System_time ,double *W_Speed_1);
void GF_MSP_Auto_Motion_adj_Com(double Current_Angle, double Horizontal_Compen_Angle ,double Auto_Speed, double Auto_Speed_Max, double System_time ,double *W_Speed_1);
void GF_MSP_PID_Now_Der_adj_Com(double Current_Angle,double Desire_Angle_Input, double Auto_Speed, double Auto_Speed_Max, double System_time ,double *W_Speed_1);
void GF_MSP_PID_Now_Der_adj_Com_1(double Current_Angle, double Desire_Angle_01,double Auto_Speed, double Auto_Speed_Max, double System_time, double *W_Speed_1);
void GF_MSP_PID_Now_Der_adj_Com_Horizon(double Current_Angle, double Desire_Angle_Input, double Auto_Speed, double Auto_Speed_Max, double System_time, double *W_Speed_1);
int Angle_Tune_PID(float CurrentAngle, float TargetAngle, int Position_KP,
int Position_KI, int Position_KD, int MaxValue);
#endif /* INC_MSP_MSP_PID_H_ */

62
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_TI5MOTOR.h

@ -0,0 +1,62 @@
/*
* msp_TI5MOTOR.h
*
* Created on: Oct 26, 2023
* Author: shiya
*
*/
#ifndef INC_MSP_MSP_TI5MOTOR_H_
#define INC_MSP_MSP_TI5MOTOR_H_
#include "BSP/bsp_include.h"
#include "msp_Motor.pb.h"
#define DF_MSP_Ti5Motor_PositionMode 44
#define DF_MSP_Ti5Motor_SpeedMode 43
#define DF_MSP_Ti5Motor_CurrentMode 42
#define DF_MSP_Ti5Motor_State_Read 41
void DecodeTi5MotorCAN(uint32_t canID, uint8_t *buffer, uint32_t length);
extern int32_t Function_code;
//电机的ID必须是连续的,第一个电机ID需要在此定义
#define DF_MSP_Ti5Motor_StartID 0
//#define DF_MSP_Ti5Motor_StartID 1
//需要将此函数放置到对应的CAN接收中断函数中
void GF_MSP_Ti5Motor_CANRx_Callback();
//需要每间隔2ms执行一次
void GF_MSP_Ti5Motor_Control_Timer();
//void GF_Tis_Control_Single();
void GF_MSP_Ti5Motor_Error_Clean();
//uint8_t Motor_Control_Motor_Index;
//uint8_t Motor_Control_State;
//
void FiveByteCommand(int8_t MotorID, uint8_t command, int32_t content,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
void OneByteCommand(int8_t MotorID, uint8_t command,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
void Motor_Stop(uint8_t id,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
void Motor_ClearFault(uint8_t id,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
void Motor_SetVelocityModeAndTargetVelocity(uint8_t id, int32_t targetSpeed,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
void MotorSpeedSetup();
void Motor_GetFaultState(uint8_t id,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
void GetCSPByCommand(uint8_t id,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
//void Ti5_Motor_Controller_intialize(FDCANHandler *Handler);
void SetMaximumAllowablePositiveVelocity(uint8_t id, int32_t maxSpeed,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
void SetMinimumAllowableNegativeVelocity(uint8_t id, int32_t minmaxSpeed,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
void SetMaximumPositivePosition(uint8_t id, int32_t position,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
/// <summary>
/// 获取最小负向位置 减速机角度为:(返回值/65536/减速比)*360<
/// </summary>
void SetCurrentModeAndTargetCurent(uint8_t id, int32_t targetCurrent,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
void SetMinimumNegativePosition(uint8_t id, int32_t position,FDCANHandler *Ti5_Motor_Controller,int WaitTime);
#endif /* INC_MSP_MSP_TI5MOTOR_H_ */

21
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_TL720D.h

@ -0,0 +1,21 @@
/*
* msp_TL720D.h
*
* Created on: Jul 19, 2024
* Author: bihon
*/
#ifndef INC_MSP_MSP_TL720D_H_
#define INC_MSP_MSP_TL720D_H_
#include <stdio.h>
#include <string.h>
#include "bsp_MB_host.h"
#include "stdio.h"
#include "BSP/bsp_UART.h"
#include "usart.h"
#include "gpio.h"
void TL720D_intialize(struct UARTHandler *Handler);
extern MSP_TL720DParameters* SP_MSP_RF_TL720D_Parameters_In;
extern int32_t *RobotAngle;//机器人角度
#endif /* INC_MSP_MSP_TL720D_H_ */

97
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_TTMotor_ZQ.h

@ -0,0 +1,97 @@
/*
* msp_TTMotor_ZQ.h
*
* Created on: Oct 10, 2024
* Author: akeguo
*/
#ifndef INC_MSP_MSP_TTMOTOR_ZQ_H_
#define INC_MSP_MSP_TTMOTOR_ZQ_H_
#include "bsp_include.h"
#include "bsp_FDCAN.h"
#include "fsm.h"
#define DF_MSP_TT_Motor_PositionMode 01
#define DF_MSP_TT_Motor_SpeedMode 02
#define DF_MSP_TT_Motor_CurrentMode 03
#define DF_MSP_TT_Motor_Posi_Now 04
#define TT_One_Deg_Count 11014///32768*121/360(减速比121)=11014
#define TT_Left_limt 84080 //-775000+75*11014
#define TT_Right_limt -1568020 //-775000-75*11014
//#define Sw_Rust_Mid_Posi -775000 //-775000-75*11014
//double Sw_Rust_Mid_Posi=-775000;//需检测修改
#define DF_MSP_TT_Motor_StartID 2
void SwingMotorSetCheckTargetPositon();
void TT_Analytic_Fun(int32_t ID_A_T_A, char *buffer);
extern int SwingMotorID;
extern int LeftMotorID;
extern int RightMotorID;
extern void ActivateMotor(int32_t MotorID, FDCANHandler *ZQ_Motor_Controller,
int32_t WaitTime) ;
extern void CANSendMessageSDO_ADD_To_SendList(int32_t MotorID, uint8_t Function,
uint16_t ControlWord, uint8_t subWord, int32_t ControlWordValue,
FDCANHandler *ZQ_Motor_Controller, int32_t WaitTime);
//位置速度模式
extern void Postion_Velcocity_Run_SetParameter(int32_t MotorID, int32_t TargetPosition,
int32_t TargetSpeed, int32_t AccTime, int32_t DecTime,
FDCANHandler *ZQ_Motor_Controller, int32_t WaitTime);
extern void Postion_Velcocity_Set_Position(int32_t MotorID, int32_t TargetPosition,
FDCANHandler *ZQ_Motor_Controller, int32_t WaitTime) ;
extern void Driver_ReadError(int32_t MotorID, FDCANHandler *ZQ_Motor_Controller,
int32_t WaitTime);
extern void SetMotorTargetPosition(int32_t MotorID, int32_t TargetPosition,
FDCANHandler *ZQ_Motor_Controller, int32_t WaitTime) ;
extern void Postion_Velcocity_Stop(int32_t MotorID, FDCANHandler *ZQ_Motor_Controller,
int32_t WaitTime) ;
//extern void SetCurrentPositionZero(int MotorID, FDCANHandler *ZQ_Motor_Controller,
// int32_t WaitTime) ;
extern void Swing_Motor_Set_Target_Position() ;
extern void Swing_Motor_Read_ReachedEnd() ;
extern void Set_Current_Positon_Zero(uint8_t MotorID,
FDCANHandler *ZQ_Motor_Controller, int32_t WaitTime) ;
extern void TT_Request_Position(uint32_t Motor_ID_1,
FDCANHandler *ZQ_Motor_Controller, int32_t WaitTime) ;
extern void TT_Request_Velocity(uint32_t Motor_ID_1,
FDCANHandler *ZQ_Motor_Controller, int32_t WaitTime) ;
extern void Position_Immediately_Setting(uint8_t MotorID, FDCANHandler *ZQ_Motor_Controller,
int32_t Deri_Position,int32_t Deri_Speed, int32_t WaitTime); // Home 设置当前位置为零点
extern void Position_Lag_Setting(uint8_t MotorID, FDCANHandler *ZQ_Motor_Controller,
int32_t Deri_Position,int32_t Deri_Speed, int32_t WaitTime) ; // Home 设置当前位置为零点
extern void TT_Request_Fault(uint32_t Motor_ID_1,
FDCANHandler *ZQ_Motor_Controller, int32_t WaitTime) ;
extern void TT_Request_Current(uint32_t Motor_ID_1,
FDCANHandler *ZQ_Motor_Controller, int32_t WaitTime);
extern void TT_Analytic_Fun(int32_t ID_A_T_A, char *buffer);
extern void SpeedModeSetup(int32_t MotorID,FDCANHandler *ZQ_Motor_Controller,int32_t WaitTime,int32_t Acc, int32_t Dec, int32_t TargetVelocity); //设定速度模式,并更改相关速度
extern void TT_Analytic_Fun(int32_t ID_A_T_A, char *buffer);
extern void TT_SpeedMode_Set_TargetSpeed(uint32_t MotorID,FDCANHandler *ZQ_Motor_Controller,int32_t WaitTime,int32_t TargetSpeed);
extern void Enable_NMT(int32_t MotorID, FDCANHandler *ZQ_Motor_Controller, int32_t Node_Number, int32_t WaitTime);
extern void Configure_Asynchronous_Mode(int32_t MotorID, FDCANHandler *ZQ_Motor_Controller, int32_t Node_Number, int32_t WaitTime);
extern void Consumer_Or_microcontroller_Heartbeat(int32_t MotorID, FDCANHandler *ZQ_Motor_Controller, int32_t WaitTime);
#endif /* INC_MSP_MSP_TTMOTOR_ZQ_H_ */

21
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Inc/MSP/msp_WH_LTE_7S0.h

@ -0,0 +1,21 @@
/*
* bsp_WH_LTE_7S0.h
*
* Created on: Sep 14, 2024
* Author: akeguo
*/
#ifndef INC_BSP_BSP_WH_LTE_7S0_H_
#define INC_BSP_BSP_WH_LTE_7S0_H_
#include "stdint.h"
extern struct UARTHandler *wh_LTE_7S0_Handler;
//void WH_LTE_7S0_intialize(struct UARTHandler *Handler);
void Send_WH_LTE_7S0_Data(uint8_t* data,int length);
void WH_LTE_7S0_intialize(struct UARTHandler *Handler);
void decode_received_data_from_computer(uint8_t *buffer, uint16_t length);
void decode_command_from_wh_LTE_7S0(uint8_t *buffer, uint16_t length);
void UpdateGV();
extern char NeedToFeedBackToComputer;
#endif /* INC_BSP_BSP_WH_LTE_7S0_H_ */

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_CV.pb.c

@ -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)

118
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_CV.pb.h

@ -0,0 +1,118 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 */
#ifndef PB_BSP_CV_PB_H_INCLUDED
#define PB_BSP_CV_PB_H_INCLUDED
#include "pb.h"
#include "bsp_PV.pb.h"
#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 Speed_1;
int32_t Speed_2;
int32_t Speed_3;
int32_t Speed_4;
int32_t Speed_5;
int32_t Speed_6;
int32_t Speed_7;
int32_t Speed_8;
int32_t Speed_9;
int32_t Speed_10;
int32_t LeftTurnSpeed;
int32_t RightTurnSpeed;
int32_t VerticalForwardCompensation; /* */
int32_t VerticalBackWardCompensation; /* */
int32_t HorizontalForwardCompensation; /* */
int32_t HorizontalBackWardCompensation; /* */
int32_t RobotLeftAngleValue; /* 水平左方向 */
int32_t RobotRightAngleValue; /* 水平右方向角度值 */
int32_t RobotUpAngleValue; /* 竖直方向角度值 */
int32_t RobotDownAngleValue; /* 竖直向下角度值 */
int32_t Robot_Angle_Start_BASE;
int32_t Lane_Change_Speed_M_Min;
} 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
#define CV_struct_define_init_zero {false, PV_struct_define_init_zero, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
/* Field tags (for use in manual encoding/decoding) */
#define CV_struct_define_PV_tag 1
#define CV_struct_define_Speed_1_tag 2
#define CV_struct_define_Speed_2_tag 3
#define CV_struct_define_Speed_3_tag 4
#define CV_struct_define_Speed_4_tag 5
#define CV_struct_define_Speed_5_tag 6
#define CV_struct_define_Speed_6_tag 7
#define CV_struct_define_Speed_7_tag 8
#define CV_struct_define_Speed_8_tag 9
#define CV_struct_define_Speed_9_tag 10
#define CV_struct_define_Speed_10_tag 11
#define CV_struct_define_LeftTurnSpeed_tag 12
#define CV_struct_define_RightTurnSpeed_tag 13
#define CV_struct_define_VerticalForwardCompensation_tag 23
#define CV_struct_define_VerticalBackWardCompensation_tag 24
#define CV_struct_define_HorizontalForwardCompensation_tag 25
#define CV_struct_define_HorizontalBackWardCompensation_tag 26
#define CV_struct_define_RobotLeftAngleValue_tag 27
#define CV_struct_define_RobotRightAngleValue_tag 28
#define CV_struct_define_RobotUpAngleValue_tag 29
#define CV_struct_define_RobotDownAngleValue_tag 30
#define CV_struct_define_Robot_Angle_Start_BASE_tag 33
#define CV_struct_define_Lane_Change_Speed_M_Min_tag 34
/* 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, Speed_1, 2) \
X(a, STATIC, SINGULAR, INT32, Speed_2, 3) \
X(a, STATIC, SINGULAR, INT32, Speed_3, 4) \
X(a, STATIC, SINGULAR, INT32, Speed_4, 5) \
X(a, STATIC, SINGULAR, INT32, Speed_5, 6) \
X(a, STATIC, SINGULAR, INT32, Speed_6, 7) \
X(a, STATIC, SINGULAR, INT32, Speed_7, 8) \
X(a, STATIC, SINGULAR, INT32, Speed_8, 9) \
X(a, STATIC, SINGULAR, INT32, Speed_9, 10) \
X(a, STATIC, SINGULAR, INT32, Speed_10, 11) \
X(a, STATIC, SINGULAR, INT32, LeftTurnSpeed, 12) \
X(a, STATIC, SINGULAR, INT32, RightTurnSpeed, 13) \
X(a, STATIC, SINGULAR, INT32, VerticalForwardCompensation, 23) \
X(a, STATIC, SINGULAR, INT32, VerticalBackWardCompensation, 24) \
X(a, STATIC, SINGULAR, INT32, HorizontalForwardCompensation, 25) \
X(a, STATIC, SINGULAR, INT32, HorizontalBackWardCompensation, 26) \
X(a, STATIC, SINGULAR, INT32, RobotLeftAngleValue, 27) \
X(a, STATIC, SINGULAR, INT32, RobotRightAngleValue, 28) \
X(a, STATIC, SINGULAR, INT32, RobotUpAngleValue, 29) \
X(a, STATIC, SINGULAR, INT32, RobotDownAngleValue, 30) \
X(a, STATIC, SINGULAR, INT32, Robot_Angle_Start_BASE, 33) \
X(a, STATIC, SINGULAR, INT32, Lane_Change_Speed_M_Min, 34)
#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 432
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_Cmd.pb.c

@ -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)

80
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_Cmd.pb.h

@ -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

16
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_Error.pb.c

@ -0,0 +1,16 @@
/* 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)

109
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_Error.pb.h

@ -0,0 +1,109 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 */
#ifndef PB_BSP_ERROR_PB_H_INCLUDED
#define PB_BSP_ERROR_PB_H_INCLUDED
#include "pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Enum definitions */
typedef enum _ComError {
ComError_Mk32_SBus = 0, /* proto3版本中,首成员必须为0,成员不应有相同的值 */
ComError_MK32_Serial = 1,
ComError_MK32_InitialState = 2,
ComError_TL720D = 3,
ComError_ZQ_CAN_ID1_LeftMotor = 4,
ComError_ZQ_CAN_ID2_RightMotor = 5,
ComError_ZQ_CAN_ID3_SwingMotor = 6,
ComError_Force_Sensor = 7,
ComError_Mfog40 = 8,
ComError_Ultrasonic_Sensor = 9
} ComError;
/* Struct definitions */
typedef struct _ErrorDataInfo {
int32_t Error_Value;
pb_byte_t Error_Name[50];
} ErrorDataInfo;
typedef struct _ErrorData {
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
/* Helper constants for enums */
#define _ComError_MIN ComError_Mk32_SBus
#define _ComError_MAX ComError_Ultrasonic_Sensor
#define _ComError_ARRAYSIZE ((ComError)(ComError_Ultrasonic_Sensor+1))
/* 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

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_GV.pb.c

@ -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)

125
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_GV.pb.h

@ -0,0 +1,125 @@
/* 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_ZQ_MotorParameters.pb.h"
#include "msp_TL720D.pb.h"
#include "bsp_Error.pb.h"
#include "msp_MFOG40_Gyroscope.pb.h"
#include "bsp_IO.pb.h"
#include "msp_CMCU.pb.h"
#include "msp_KS206.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Struct definitions */
typedef struct _GV_struct_define {
int32_t Left_Compensation;
int32_t Right_Compensation;
int32_t Robot_Angle; /* 机器人角度 */
int32_t Robot_Move_Speed;
int32_t LaneChangeDistance;
bool has_P_MK32;
SP_MSP_MK32_Button P_MK32;
bool has_LeftMotor;
TT_MotorParameters LeftMotor; /* 左电机 ID1 */
bool has_RightMotor;
TT_MotorParameters RightMotor; /* 右电机 ID2 */
bool has_SwingMotor;
TT_MotorParameters SwingMotor; /* 右电机 ID3 */
bool has_IO;
IO_Data IO;
bool has_TL720DParameters;
MSP_TL720DParameters TL720DParameters;
bool has_SystemErrorData;
ErrorData SystemErrorData;
int32_t Angle_Deri_Grity_10;
int32_t Angle_Deri_Plane_10;
bool has_MFOG40_Plane;
MFOG40_Gyro_struct_define MFOG40_Plane;
bool has_Force_Value_mN;
CMCU_struct_define Force_Value_mN;
bool has_Robot_To_Wall_mm;
KS206_struct_define Robot_To_Wall_mm;
} GV_struct_define;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define GV_struct_define_init_default {0, 0, 0, 0, 0, false, SP_MSP_MK32_Button_init_default, false, TT_MotorParameters_init_default, false, TT_MotorParameters_init_default, false, TT_MotorParameters_init_default, false, IO_Data_init_default, false, MSP_TL720DParameters_init_default, false, ErrorData_init_default, 0, 0, false, MFOG40_Gyro_struct_define_init_default, false, CMCU_struct_define_init_default, false, KS206_struct_define_init_default}
#define GV_struct_define_init_zero {0, 0, 0, 0, 0, false, SP_MSP_MK32_Button_init_zero, false, TT_MotorParameters_init_zero, false, TT_MotorParameters_init_zero, false, TT_MotorParameters_init_zero, false, IO_Data_init_zero, false, MSP_TL720DParameters_init_zero, false, ErrorData_init_zero, 0, 0, false, MFOG40_Gyro_struct_define_init_zero, false, CMCU_struct_define_init_zero, false, KS206_struct_define_init_zero}
/* Field tags (for use in manual encoding/decoding) */
#define GV_struct_define_Left_Compensation_tag 2
#define GV_struct_define_Right_Compensation_tag 3
#define GV_struct_define_Robot_Angle_tag 4
#define GV_struct_define_Robot_Move_Speed_tag 5
#define GV_struct_define_LaneChangeDistance_tag 6
#define GV_struct_define_P_MK32_tag 7
#define GV_struct_define_LeftMotor_tag 8
#define GV_struct_define_RightMotor_tag 9
#define GV_struct_define_SwingMotor_tag 10
#define GV_struct_define_IO_tag 11
#define GV_struct_define_TL720DParameters_tag 12
#define GV_struct_define_SystemErrorData_tag 13
#define GV_struct_define_Angle_Deri_Grity_10_tag 14
#define GV_struct_define_Angle_Deri_Plane_10_tag 15
#define GV_struct_define_MFOG40_Plane_tag 16
#define GV_struct_define_Force_Value_mN_tag 17
#define GV_struct_define_Robot_To_Wall_mm_tag 18
/* Struct field encoding specification for nanopb */
#define GV_struct_define_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, Left_Compensation, 2) \
X(a, STATIC, SINGULAR, INT32, Right_Compensation, 3) \
X(a, STATIC, SINGULAR, INT32, Robot_Angle, 4) \
X(a, STATIC, SINGULAR, INT32, Robot_Move_Speed, 5) \
X(a, STATIC, SINGULAR, INT32, LaneChangeDistance, 6) \
X(a, STATIC, OPTIONAL, MESSAGE, P_MK32, 7) \
X(a, STATIC, OPTIONAL, MESSAGE, LeftMotor, 8) \
X(a, STATIC, OPTIONAL, MESSAGE, RightMotor, 9) \
X(a, STATIC, OPTIONAL, MESSAGE, SwingMotor, 10) \
X(a, STATIC, OPTIONAL, MESSAGE, IO, 11) \
X(a, STATIC, OPTIONAL, MESSAGE, TL720DParameters, 12) \
X(a, STATIC, OPTIONAL, MESSAGE, SystemErrorData, 13) \
X(a, STATIC, SINGULAR, INT32, Angle_Deri_Grity_10, 14) \
X(a, STATIC, SINGULAR, INT32, Angle_Deri_Plane_10, 15) \
X(a, STATIC, OPTIONAL, MESSAGE, MFOG40_Plane, 16) \
X(a, STATIC, OPTIONAL, MESSAGE, Force_Value_mN, 17) \
X(a, STATIC, OPTIONAL, MESSAGE, Robot_To_Wall_mm, 18)
#define GV_struct_define_CALLBACK NULL
#define GV_struct_define_DEFAULT NULL
#define GV_struct_define_P_MK32_MSGTYPE SP_MSP_MK32_Button
#define GV_struct_define_LeftMotor_MSGTYPE TT_MotorParameters
#define GV_struct_define_RightMotor_MSGTYPE TT_MotorParameters
#define GV_struct_define_SwingMotor_MSGTYPE TT_MotorParameters
#define GV_struct_define_IO_MSGTYPE IO_Data
#define GV_struct_define_TL720DParameters_MSGTYPE MSP_TL720DParameters
#define GV_struct_define_SystemErrorData_MSGTYPE ErrorData
#define GV_struct_define_MFOG40_Plane_MSGTYPE MFOG40_Gyro_struct_define
#define GV_struct_define_Force_Value_mN_MSGTYPE CMCU_struct_define
#define GV_struct_define_Robot_To_Wall_mm_MSGTYPE KS206_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 1680
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IAP.pb.c

@ -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)

58
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IAP.pb.h

@ -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

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IO.pb.c

@ -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)

81
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IO.pb.h

@ -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

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IV.pb.c

@ -0,0 +1,12 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 */
#include "bsp_IV.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(IV_struct_define, IV_struct_define, AUTO)

85
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_IV.pb.h

@ -0,0 +1,85 @@
/* 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"
#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 _IV_struct_define {
int32_t LeftCompensation; /* 发送100显示1° */
int32_t RightCompensation; /* 发送100显示1° */
int32_t Robot_Move_Deri_Speed; /* 发送100显示10m/min */
int32_t Robot_Gyro; /* 发送100显示1° */
int32_t Distance_Sensor; /* 发送100显示10cm */
int32_t SystemError; /* 硬件通讯错误及按键未初始化错误 */
int32_t Left_Motor_Err; /* 左轮电机报警 */
int32_t Right_Motor_Err; /* 右轮电机报警 */
int32_t Swing_Motor_Err; /* 摆臂电机报警 */
int32_t Is_Online; /* 是否在线 */
int32_t Spara_Data_1; /* 备用数据1 */
int32_t Spara_Data_2; /* 备用数据2 */
int32_t Spara_Data_3; /* 备用数据3 */
} IV_struct_define;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define IV_struct_define_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
#define IV_struct_define_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
/* Field tags (for use in manual encoding/decoding) */
#define IV_struct_define_LeftCompensation_tag 1
#define IV_struct_define_RightCompensation_tag 2
#define IV_struct_define_Robot_Move_Deri_Speed_tag 3
#define IV_struct_define_Robot_Gyro_tag 4
#define IV_struct_define_Distance_Sensor_tag 5
#define IV_struct_define_SystemError_tag 6
#define IV_struct_define_Left_Motor_Err_tag 7
#define IV_struct_define_Right_Motor_Err_tag 8
#define IV_struct_define_Swing_Motor_Err_tag 9
#define IV_struct_define_Is_Online_tag 10
#define IV_struct_define_Spara_Data_1_tag 11
#define IV_struct_define_Spara_Data_2_tag 12
#define IV_struct_define_Spara_Data_3_tag 13
/* Struct field encoding specification for nanopb */
#define IV_struct_define_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, LeftCompensation, 1) \
X(a, STATIC, SINGULAR, INT32, RightCompensation, 2) \
X(a, STATIC, SINGULAR, INT32, Robot_Move_Deri_Speed, 3) \
X(a, STATIC, SINGULAR, INT32, Robot_Gyro, 4) \
X(a, STATIC, SINGULAR, INT32, Distance_Sensor, 5) \
X(a, STATIC, SINGULAR, INT32, SystemError, 6) \
X(a, STATIC, SINGULAR, INT32, Left_Motor_Err, 7) \
X(a, STATIC, SINGULAR, INT32, Right_Motor_Err, 8) \
X(a, STATIC, SINGULAR, INT32, Swing_Motor_Err, 9) \
X(a, STATIC, SINGULAR, INT32, Is_Online, 10) \
X(a, STATIC, SINGULAR, INT32, Spara_Data_1, 11) \
X(a, STATIC, SINGULAR, INT32, Spara_Data_2, 12) \
X(a, STATIC, SINGULAR, INT32, Spara_Data_3, 13)
#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 143
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_PV.pb.c

@ -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)

93
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_PV.pb.h

@ -0,0 +1,93 @@
/* 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_Operation_Mode; /* 操作模式 手动模式1 2 3 4 5 自动模式6 7 */
int32_t Robot_Move_Speed; /* 机器人移动速度 */
int32_t Robot_Change_Lane_Distance; /* 换道距离 */
int32_t Robot_Swing_Speed; /* 摆臂速度 */
int32_t Robot_symmetricalOrNot; /* 摆臂角度界面中的对称or非对称 1 对称 2 非对称 */
int32_t Robot_Swing_Range_Angle; /* 对称下的摆臂角度 */
int32_t Robot_asymmetricalAngleSetValue; /* 非对称条件下下 1左侧 2 右侧 */
int32_t Robot_backMode; /* 后退设置模式 1 打退交替 2 边打边退 */
int32_t Robot_Back_Distance; /* 打退交替条件下的后退距离 */
int32_t Robot_Back_Speed; /* 边打边退条件下的后退速度 */
int32_t Robot_Press_Set; /* 压力设置 */
int32_t Robot_Vertical_Adjust; /* 竖直微调 */
int32_t Robot_Length_Homework; /* 自动模式下的作业长度 */
int32_t Robot_Width_Homework; /* 自动模式下的作业宽度 */
int32_t Robot_SandBalst_Encode_One; /* 喷砂机编码1 输入为空发1 */
int32_t Robot_SandBalst_Encode_Two; /* 喷砂机编码2 输入为空发2 */
} PV_struct_define;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define PV_struct_define_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
#define PV_struct_define_init_zero {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 PV_struct_define_Robot_Operation_Mode_tag 1
#define PV_struct_define_Robot_Move_Speed_tag 2
#define PV_struct_define_Robot_Change_Lane_Distance_tag 3
#define PV_struct_define_Robot_Swing_Speed_tag 4
#define PV_struct_define_Robot_symmetricalOrNot_tag 5
#define PV_struct_define_Robot_Swing_Range_Angle_tag 6
#define PV_struct_define_Robot_asymmetricalAngleSetValue_tag 7
#define PV_struct_define_Robot_backMode_tag 8
#define PV_struct_define_Robot_Back_Distance_tag 9
#define PV_struct_define_Robot_Back_Speed_tag 10
#define PV_struct_define_Robot_Press_Set_tag 11
#define PV_struct_define_Robot_Vertical_Adjust_tag 12
#define PV_struct_define_Robot_Length_Homework_tag 13
#define PV_struct_define_Robot_Width_Homework_tag 14
#define PV_struct_define_Robot_SandBalst_Encode_One_tag 15
#define PV_struct_define_Robot_SandBalst_Encode_Two_tag 16
/* Struct field encoding specification for nanopb */
#define PV_struct_define_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, Robot_Operation_Mode, 1) \
X(a, STATIC, SINGULAR, INT32, Robot_Move_Speed, 2) \
X(a, STATIC, SINGULAR, INT32, Robot_Change_Lane_Distance, 3) \
X(a, STATIC, SINGULAR, INT32, Robot_Swing_Speed, 4) \
X(a, STATIC, SINGULAR, INT32, Robot_symmetricalOrNot, 5) \
X(a, STATIC, SINGULAR, INT32, Robot_Swing_Range_Angle, 6) \
X(a, STATIC, SINGULAR, INT32, Robot_asymmetricalAngleSetValue, 7) \
X(a, STATIC, SINGULAR, INT32, Robot_backMode, 8) \
X(a, STATIC, SINGULAR, INT32, Robot_Back_Distance, 9) \
X(a, STATIC, SINGULAR, INT32, Robot_Back_Speed, 10) \
X(a, STATIC, SINGULAR, INT32, Robot_Press_Set, 11) \
X(a, STATIC, SINGULAR, INT32, Robot_Vertical_Adjust, 12) \
X(a, STATIC, SINGULAR, INT32, Robot_Length_Homework, 13) \
X(a, STATIC, SINGULAR, INT32, Robot_Width_Homework, 14) \
X(a, STATIC, SINGULAR, INT32, Robot_SandBalst_Encode_One, 15) \
X(a, STATIC, SINGULAR, INT32, Robot_SandBalst_Encode_Two, 16)
#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 177
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_ReCmd.pb.c

@ -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)

80
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/bsp_ReCmd.pb.h

@ -0,0 +1,80 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 */
#ifndef PB_BSP_RECMD_PB_H_INCLUDED
#define PB_BSP_RECMD_PB_H_INCLUDED
#include "pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Struct definitions */
/* this message is used for the reply the command */
typedef struct _ReCmd {
int32_t CommadNum;
/* 定义 1 上位机获取默认CV值
2 CV值
3 CV值
4 Trace等级值
5
6 0
7
8
9 Parameter0 Parameter0
Buff_Data_Length */
int32_t Parameter0;
int32_t Parameter1;
int32_t Parameter2;
int32_t Parameter3;
int32_t Parameter4;
int32_t Buff_Data_Length;
pb_byte_t Buff_Data[512];
} ReCmd;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define ReCmd_init_default {0, 0, 0, 0, 0, 0, 0, {0}}
#define ReCmd_init_zero {0, 0, 0, 0, 0, 0, 0, {0}}
/* Field tags (for use in manual encoding/decoding) */
#define ReCmd_CommadNum_tag 1
#define ReCmd_Parameter0_tag 2
#define ReCmd_Parameter1_tag 3
#define ReCmd_Parameter2_tag 4
#define ReCmd_Parameter3_tag 5
#define ReCmd_Parameter4_tag 6
#define ReCmd_Buff_Data_Length_tag 7
#define ReCmd_Buff_Data_tag 8
/* Struct field encoding specification for nanopb */
#define ReCmd_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, CommadNum, 1) \
X(a, STATIC, SINGULAR, INT32, Parameter0, 2) \
X(a, STATIC, SINGULAR, INT32, Parameter1, 3) \
X(a, STATIC, SINGULAR, INT32, Parameter2, 4) \
X(a, STATIC, SINGULAR, INT32, Parameter3, 5) \
X(a, STATIC, SINGULAR, INT32, Parameter4, 6) \
X(a, STATIC, SINGULAR, INT32, Buff_Data_Length, 7) \
X(a, STATIC, SINGULAR, FIXED_LENGTH_BYTES, Buff_Data, 8)
#define ReCmd_CALLBACK NULL
#define ReCmd_DEFAULT NULL
extern const pb_msgdesc_t ReCmd_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define ReCmd_fields &ReCmd_msg
/* Maximum encoded size of messages (where known) */
#define BSP_RECMD_PB_H_MAX_SIZE ReCmd_size
#define ReCmd_size 592
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_CMCU.pb.c

@ -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)

48
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_CMCU.pb.h

@ -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

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_KS206.pb.c

@ -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)

51
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_KS206.pb.h

@ -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

20
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_MFOG40_Gyroscope.pb.c

@ -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

54
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_MFOG40_Gyroscope.pb.h

@ -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

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_MK32.pb.c

@ -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)

99
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_MK32.pb.h

@ -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

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_Motor.pb.c

@ -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)

91
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_Motor.pb.h

@ -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

12
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_TL720D.pb.c

@ -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)

72
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_TL720D.pb.h

@ -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

20
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_ZQ_MotorParameters.pb.c

@ -0,0 +1,20 @@
/* 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)
#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

129
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/PSource/msp_ZQ_MotorParameters.pb.h

@ -0,0 +1,129 @@
/* 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 Real_Current;
int32_t Target_Current;
int32_t Real_Velcity;
int32_t Target_Velcity;
int32_t Target_Position;
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;
int32_t Number_Of_Rounds;
int32_t Start_Measuring_Position;
int32_t Last_Real_Position;
double Real_Disatnce;
int32_t Start_Measuring; /* 开始测距 */
int32_t Position_immediately1_Lag2; /* 位置环模式,立即生效1,延后生效2 */
int32_t Tar_Position_count; /* 位置环模式,期望位置 */
int32_t Tar_Position_Velcity_RPM; /* 位置环模式,速度 */
} 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}
#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}
/* Field tags (for use in manual encoding/decoding) */
#define TT_MotorParameters_MotorID_tag 1
#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_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
#define TT_MotorParameters_Number_Of_Rounds_tag 39
#define TT_MotorParameters_Start_Measuring_Position_tag 40
#define TT_MotorParameters_Last_Real_Position_tag 43
#define TT_MotorParameters_Real_Disatnce_tag 44
#define TT_MotorParameters_Start_Measuring_tag 45
#define TT_MotorParameters_Position_immediately1_Lag2_tag 46
#define TT_MotorParameters_Tar_Position_count_tag 47
#define TT_MotorParameters_Tar_Position_Velcity_RPM_tag 49
/* Struct field encoding specification for nanopb */
#define TT_MotorParameters_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, MotorID, 1) \
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, 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) \
X(a, STATIC, SINGULAR, INT32, Number_Of_Rounds, 39) \
X(a, STATIC, SINGULAR, INT32, Start_Measuring_Position, 40) \
X(a, STATIC, SINGULAR, INT32, Last_Real_Position, 43) \
X(a, STATIC, SINGULAR, DOUBLE, Real_Disatnce, 44) \
X(a, STATIC, SINGULAR, INT32, Start_Measuring, 45) \
X(a, STATIC, SINGULAR, INT32, Position_immediately1_Lag2, 46) \
X(a, STATIC, SINGULAR, INT32, Tar_Position_count, 47) \
X(a, STATIC, SINGULAR, INT32, Tar_Position_Velcity_RPM, 49)
#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 328
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

BIN
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/Version2.exe

Binary file not shown.

44
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_CV.proto

@ -0,0 +1,44 @@
syntax = "proto3";
//import "nanopb.proto";
import "bsp_PV.proto";
message CV_struct_define{
//
PV_struct_define PV =1;//
int32 Speed_1 = 2;
int32 Speed_2 = 3;
int32 Speed_3 = 4;
int32 Speed_4 = 5;
int32 Speed_5 = 6;
int32 Speed_6 = 7;
int32 Speed_7 = 8;
int32 Speed_8 = 9;
int32 Speed_9 = 10;
int32 Speed_10 = 11;
int32 LeftTurnSpeed = 12;
int32 RightTurnSpeed = 13;
int32 VerticalForwardCompensation=23;//
int32 VerticalBackWardCompensation=24;//
int32 HorizontalForwardCompensation=25;//
int32 HorizontalBackWardCompensation=26;//
int32 RobotLeftAngleValue=27;//
int32 RobotRightAngleValue=28;//
int32 RobotUpAngleValue=29;//
int32 RobotDownAngleValue=30;//
int32 Robot_Angle_Start_BASE=33;
int32 Lane_Change_Speed_M_Min=34;
};

2
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_Cmd.options

@ -0,0 +1,2 @@
# lock.options
Cmd.Buff_Data max_size:512 fixed_length:true

24
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_Cmd.proto

@ -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;
};

3
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_Error.options

@ -0,0 +1,3 @@
# lock.options
ErrorDataInfo.Error_Name max_size:50 fixed_length:true
ErrorData.Errors max_size:6 fixed_length:true

45
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_Error.proto

@ -0,0 +1,45 @@
syntax = "proto3";
option java_multiple_files = false;
option java_package ="com.example.rougheningapp.models";
message ErrorDataInfo
{
int32 Error_Value = 1;
bytes Error_Name=4;
}
message ErrorData
{
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;
}
enum ComError //
{
Mk32_SBus =0; //proto3版本中0
MK32_Serial =1;
MK32_InitialState =2;
TL720D =3;
ZQ_CAN_ID1_LeftMotor =4;
ZQ_CAN_ID2_RightMotor =5;
ZQ_CAN_ID3_SwingMotor =6;
Force_Sensor =7;
Mfog40 =8;
Ultrasonic_Sensor =9;
}
//protoc --nanopb_out=. *.proto

2
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_GV.options

@ -0,0 +1,2 @@
# lock.options
GV_struct_define.Motor_P max_size:50 fixed_length:true

37
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_GV.proto

@ -0,0 +1,37 @@
syntax = "proto3";
import "msp_MK32.proto";
import "msp_Motor.proto";
import "msp_ZQ_MotorParameters.proto";
import "msp_TL720D.proto";
import "bsp_Error.proto";
import "msp_MFOG40_Gyroscope.proto";
import "bsp_IO.proto";
import "msp_CMCU.proto";
import "msp_KS206.proto";
option java_multiple_files = false;
option java_package ="com.example.rougheningapp.models";
message GV_struct_define
{
int32 Left_Compensation= 2;
int32 Right_Compensation= 3;
int32 Robot_Angle=4;//
int32 Robot_Move_Speed= 5;
int32 LaneChangeDistance= 6;
SP_MSP_MK32_Button P_MK32=7;
TT_MotorParameters LeftMotor=8;// ID1
TT_MotorParameters RightMotor=9;// ID2
TT_MotorParameters SwingMotor=10;// ID3
IO_Data IO=11;
MSP_TL720DParameters TL720DParameters= 12;
ErrorData SystemErrorData=13;
int32 Angle_Deri_Grity_10=14;
int32 Angle_Deri_Plane_10=15;
MFOG40_Gyro_struct_define MFOG40_Plane=16;
CMCU_struct_define Force_Value_mN=17;
KS206_struct_define Robot_To_Wall_mm=18;
};
//protoc --nanopb_out=. *.proto

2
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_IAP.options

@ -0,0 +1,2 @@
# lock.options
# IAP_struct_define.Buff_Data max_size:64 fixed_length:true

11
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_IAP.proto

@ -0,0 +1,11 @@
syntax = "proto3";
//IAPIn Application ProgrammingIAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写
message IAP_struct_define
{
int32 Total_Bytes = 1;// all the received data;
int32 NextCodeVrsion = 2;//the New upgrade Version of the Project
int32 UtcTime=3;//Udgrade Time
int32 UpgradeSucceeded=4;//
};

19
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_IO.proto

@ -0,0 +1,19 @@
syntax = "proto3";
message IO_Data
{
int32 DO0=1;
int32 DO1=2;
int32 DO2=3;
int32 DO3=4;
int32 DO4=5;
int32 DO5=6;
int32 DI0=7;
int32 DI1=8;
int32 DI2=9;
int32 DI3=10;
int32 DI4=11;
int32 DI5=12;
};
//protoc --nanopb_out=. *.proto

2
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_IV.options

@ -0,0 +1,2 @@
# lock.options
IV_struct_define.Buff_Data max_size:30 fixed_length:true

27
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_IV.proto

@ -0,0 +1,27 @@
syntax = "proto3";
import "bsp_PV.proto";
option java_multiple_files = false;
option java_package ="com.example.rougheningapp.models";
message IV_struct_define
{
int32 LeftCompensation= 1;//1001°
int32 RightCompensation= 2;//1001°
int32 Robot_Move_Deri_Speed= 3;//10010m/min
int32 Robot_Gyro= 4;//1001°
int32 Distance_Sensor=5; //10010cm
int32 SystemError=6;//
int32 Left_Motor_Err=7;//
int32 Right_Motor_Err=8;//
int32 Swing_Motor_Err=9;//
int32 Is_Online=10;//线
int32 Spara_Data_1=11;//1
int32 Spara_Data_2=12;//2
int32 Spara_Data_3=13;//3
};

24
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_PV.proto

@ -0,0 +1,24 @@
syntax = "proto3";
option java_multiple_files = false;
option java_package = "com.example.swingarmapp.models";
message PV_struct_define{
int32 Robot_Operation_Mode= 1; // 1 2 3 4 5 6 7
int32 Robot_Move_Speed=2; //
int32 Robot_Change_Lane_Distance= 3; //
int32 Robot_Swing_Speed= 4; //
int32 Robot_symmetricalOrNot=5; //or非对称 1 2
int32 Robot_Swing_Range_Angle=6; //
int32 Robot_asymmetricalAngleSetValue=7; // 1 2
int32 Robot_backMode=8; //退 1 退 2 退
int32 Robot_Back_Distance= 9; //退退
int32 Robot_Back_Speed=10; //退退
int32 Robot_Press_Set= 11; //
int32 Robot_Vertical_Adjust= 12; //
int32 Robot_Length_Homework=13; //
int32 Robot_Width_Homework=14; //
int32 Robot_SandBalst_Encode_One = 15; //1 1
int32 Robot_SandBalst_Encode_Two = 16; //2 2
};

2
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_ReCmd.options

@ -0,0 +1,2 @@
# lock.options
ReCmd.Buff_Data max_size:512 fixed_length:true

24
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/bsp_ReCmd.proto

@ -0,0 +1,24 @@
syntax = "proto3";
//this message is used for the reply the command
message ReCmd{
int32 CommadNum = 1;
// 1 CV值
// 2 CV值
// 3 CV值
// 4 Trace等级值
// 5
// 6 0
// 7
// 8
// 9 Parameter0 Parameter0
//Buff_Data_Length
int32 Parameter0 = 2;
int32 Parameter1 = 3;
int32 Parameter2 = 4;
int32 Parameter3 = 5;
int32 Parameter4 = 6;
int32 Buff_Data_Length = 7;
bytes Buff_Data=8;
};

9
BHBF_Swing_Rust_V5_1_CAN1_2_Sandblast3/Core/BASE/Protobuf/Proto/msp_CMCU.proto

@ -0,0 +1,9 @@
syntax = "proto3";
message CMCU_struct_define{
int32 CMCU_Measuring_value = 1;
};

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save