Browse Source

init

master
zhaohe 2 years ago
parent
commit
45984f4509
  1. 10
      .cproject
  2. 2
      .project
  3. 4
      .settings/language.settings.xml
  4. 4
      Intelligent_winding_robot_main_board.ioc
  5. 10
      Intelligent_winding_robot_main_board.launch
  6. 11
      README.md
  7. 2
      sdk
  8. 2
      usrc/cmdline_version.cpp
  9. 152
      usrc/device.cpp
  10. 94
      usrc/device.hpp
  11. 9
      usrc/global.cpp
  12. 10
      usrc/global.hpp
  13. 41
      usrc/main.cpp
  14. 4
      usrc/project_configs.h
  15. 89
      usrc/transparent_version.cpp
  16. 3
      usrc/transparent_version.hpp

10
.cproject

@ -29,7 +29,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat.1033151657" name="Use float with scanf from newlib-nano (-u _scanf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_cpp.584576254" name="Runtime library" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_cpp" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.runtimelibrary_cpp.value.standard_c_standard_cpp" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.488425717" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/zcancmder_debug_board}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1708127142" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<builder buildPath="${workspace_loc:/Intelligent_winding_robot_main_board}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1708127142" 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.2063489662" 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.684982648" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g3" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.651785909" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" valueType="definedSymbols">
@ -141,7 +141,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1362099555" 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 || STM32F407ZGTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc | ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F4xx/Include | ../Drivers/CMSIS/Include | ../Middlewares/Third_Party/FreeRTOS/Source/include | ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS | ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F || || || USE_HAL_DRIVER | STM32F407xx || || Drivers | Core/Startup | Middlewares | Core || || || ${workspace_loc:/${ProjName}/STM32F407ZGTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1903330877" name="Cpu clock frequence" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="144" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1554547639" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/zcancmder_debug_board}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1369125200" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<builder buildPath="${workspace_loc:/Intelligent_winding_robot_main_board}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1369125200" 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.1650882513" 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.1057841186" 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.1430438533" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
@ -216,7 +216,7 @@
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="zcancmder_debug_board.null.1351159792" name="zcancmder_debug_board"/>
<project id="Intelligent_winding_robot_main_board.null.1351159792" name="Intelligent_winding_robot_main_board"/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
@ -237,10 +237,10 @@
</storageModule>
<storageModule moduleId="refreshScope" versionNumber="2">
<configuration configurationName="Debug">
<resource resourceType="PROJECT" workspacePath="/zcancmder_debug_board"/>
<resource resourceType="PROJECT" workspacePath="/Intelligent_winding_robot_main_board"/>
</configuration>
<configuration configurationName="Release">
<resource resourceType="PROJECT" workspacePath="/zcancmder_debug_board"/>
<resource resourceType="PROJECT" workspacePath="/Intelligent_winding_robot_main_board"/>
</configuration>
</storageModule>
</cproject>

2
.project

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>zcancmder_debug_board</name>
<name>Intelligent_winding_robot_main_board</name>
<comment></comment>
<projects>
</projects>

4
.settings/language.settings.xml

@ -5,7 +5,7 @@
<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="1371893260506395217" 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">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-590189052051766916" 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>
@ -16,7 +16,7 @@
<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="1309873874283328507" 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">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-596153906458205550" 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>

4
zcancmder_debug_board.ioc → Intelligent_winding_robot_main_board.ioc

@ -220,8 +220,8 @@ ProjectManager.MainLocation=Core/Src
ProjectManager.NoMain=false
ProjectManager.PreviousToolchain=
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=zcancmder_debug_board.ioc
ProjectManager.ProjectName=zcancmder_debug_board
ProjectManager.ProjectFileName=Intelligent_winding_robot_main_board.ioc
ProjectManager.ProjectName=Intelligent_winding_robot_main_board
ProjectManager.ProjectStructure=
ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x1000

10
zcancmder_debug_board.launch → Intelligent_winding_robot_main_board.launch

@ -12,7 +12,7 @@
<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/zcancmder_debug_board.elf&quot;,&quot;fProjectName&quot;:&quot;zcancmder_debug_board&quot;,&quot;fPerformBuild&quot;:true,&quot;fDownload&quot;:true,&quot;fLoadSymbols&quot;:true}]}"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{&quot;fItems&quot;:[{&quot;fIsFromMainTab&quot;:true,&quot;fPath&quot;:&quot;Debug/Intelligent_winding_robot_main_board.elf&quot;,&quot;fProjectName&quot;:&quot;Intelligent_winding_robot_main_board&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"/>
@ -32,7 +32,7 @@
<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="D:\workspace\p_Intelligent_winding_robot\zcancmder_debug_board\Debug\st-link_gdbserver_log.txt"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="D:\workspace\p_Intelligent_winding_robot\Intelligent_winding_robot_main_board\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"/>
@ -67,13 +67,13 @@
<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/zcancmder_debug_board.elf"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="zcancmder_debug_board"/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/Intelligent_winding_robot_main_board.elf"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="Intelligent_winding_robot_main_board"/>
<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.487550817"/>
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/zcancmder_debug_board"/>
<listEntry value="/Intelligent_winding_robot_main_board"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>

11
README.md

@ -1,10 +1,9 @@
开发板资料
http://47.111.11.73/docs/boards/stm32/zdyz_stm32f407_explorer.html
```
注意事项:
1.注意将CAN/USB选择跳帽,接到CAN接口那一端(否则代码会卡死在CAN初始化处)
```
----------------------------------------
工程初始化:
git submodule update --init --recursive
```
```

2
sdk

@ -1 +1 @@
Subproject commit 962fc1f81b210bcc13cb87a033d8bd04ead290a6
Subproject commit aa9d1dda89f177ad23af5013fdaf5d8f29c0f8a6

2
usrc/cmdline_version.cpp

@ -25,7 +25,6 @@
#include "sdk\components\zprotocol_helper\micro_computer_module_device_script_cmder_paser.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\protocol_proxy.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\zmodule_device_manager.hpp"
#include "global.hpp"
// #include "M3078CodeScanner"
#define TAG "main"
@ -33,6 +32,7 @@ using namespace iflytop;
using namespace std;
static ZModuleDeviceManager g_zModuleDeviceManager;
static MicroComputerModuleDeviceScriptCmderPaser g_zModuleDeviceScriptCmderPaser;
static ZCanCommnaderMaster g_zcanCommnaderMaster;
static ZIProtocolProxy proxy[255];
void cmdline_version_main() {

152
usrc/device.cpp

@ -0,0 +1,152 @@
#include "device.hpp"
#include "sdk\components\eq_20_asb_motor\eq20_servomotor.hpp"
#include "sdk\components\mini_servo_motor\mini_servo_motor_ctrl_module.hpp"
using namespace iflytop;
// void init();
#define TAG "main"
void Device::init() {
/**
* @brief
*/
chip_cfg_t chipcfg;
chipcfg.us_dleay_tim = &PC_SYS_DELAY_US_TIMER;
chipcfg.tim_irq_scheduler_tim = &PC_SYS_TIM_IRQ_SCHEDULER_TIMER;
chipcfg.huart = &PC_DEBUG_UART;
chipcfg.debuglight = PC_DEBUG_LIGHT_GPIO;
chip_init(&chipcfg);
/**
* @brief ZOS初始化
*/
zos_cfg_t zoscfg;
zos_init(&zoscfg);
ZLOGI(TAG, "boardId:%d", 0);
line_locking_solenoid_valve_init();
init_uart_cmder();
init_dm();
init_bus();
sub_module_init();
while (true) {
OSDefaultSchduler::getInstance()->loop();
m_uart_cmdline_parser.schedule();
}
}
void Device::init_uart_cmder() {
static ZUARTDmaReceiver dmaUartReceiver;
ZUARTDmaReceiver::hardware_config_t cfg = {
.huart = &PC_DEBUG_UART,
.dma_rx = &PC_DEBUG_UART_DMA_HANDLER,
.rxbuffersize = PC_DEBUG_UART_RX_BUF_SIZE,
.rxovertime_ms = 10,
};
dmaUartReceiver.initialize(&cfg);
m_uart_cmdline_parser.initialize(&dmaUartReceiver);
}
/**
* @brief
* 1.
* 2.
*/
void Device::init_dm() {
m_device_manager.initialize();
// m_device_manager 支持命令行解析操作
static MicroComputerModuleDeviceScriptCmderPaser m_zModuleDeviceScriptCmderPaser; // 脚本解析器
m_zModuleDeviceScriptCmderPaser.initialize(&m_uart_cmdline_parser, &m_device_manager);
}
void Device::init_bus() {
/*******************************************************************************
* CAN总线 *
*******************************************************************************/
ZLOGI(TAG, "init can bus");
m_zcanbus.init(m_zcanbus.createCFG());
m_device_manager.regCanCmder(&m_zcanbus);
ZLOGI(TAG, "init can bus end...");
/*******************************************************************************
* FEITE BUS *
*******************************************************************************/
ZLOGI(TAG, "init feite bus");
ZASSERT(huart3.Init.BaudRate == 115200);
m_feitebus.initialize(&huart3, &hdma_usart3_rx, &hdma_usart3_tx);
/*******************************************************************************
* MODBUS总线 *
*******************************************************************************/
m_modbus.initialize(&huart2, &hdma_usart2_rx, &hdma_usart2_tx);
}
#define REG_SUB_MODULE(table) \
for (size_t i = 0; i < sizeof(table) / sizeof(table[0]); i++) { \
m_device_manager.registerModule(&table[i]); \
}
/**
* @brief
* CAN模块初始化
*/
void Device::sub_module_init() {
/**
* @brief
* 11->16
*/
static MiniRobotCtrlModule::flash_config_t servo_cfg = {.default_torque = 330};
static MiniRobotCtrlModule mini_servo[10];
for (size_t i = 0; i < 6; i++) {
int idnum = 10 + i;
ZLOGI(TAG, "init servo:%d", idnum);
mini_servo[i].initialize(idnum, &m_feitebus, idnum, &servo_cfg);
m_device_manager.registerModule(&mini_servo[i]);
}
/**
* @brief
*/
static Eq20ServoMotor eq20_motor;
eq20_motor.init(1, &m_modbus, 1);
m_device_manager.registerModule(&eq20_motor);
/**
* @brief XY平台
*/
static ZIProtocolProxy xyboard_module_proxy[2];
xyboard_module_proxy[0].initialize(20, &m_zcanbus); // BOARD2 XY轴板子
xyboard_module_proxy[1].initialize(21, &m_zcanbus);
REG_SUB_MODULE(xyboard_module_proxy);
/**
* @brief Z轴上的设备
*/
static ZIProtocolProxy z_axis_board_can_module_proxy[4];
z_axis_board_can_module_proxy[0].initialize(30, &m_zcanbus); // BOARD3 Z轴板子
z_axis_board_can_module_proxy[1].initialize(31, &m_zcanbus);
z_axis_board_can_module_proxy[1].initialize(32, &m_zcanbus);
z_axis_board_can_module_proxy[2].initialize(33, &m_zcanbus);
REG_SUB_MODULE(z_axis_board_can_module_proxy);
/**
* @brief
* CAN步进电机模块
*/
static ZIProtocolProxy can_step_motor_proxy[6];
can_step_motor_proxy[0].initialize(40, &m_zcanbus); // BOARD4
can_step_motor_proxy[1].initialize(41, &m_zcanbus);
can_step_motor_proxy[2].initialize(50, &m_zcanbus); // BOARD5
can_step_motor_proxy[3].initialize(51, &m_zcanbus);
can_step_motor_proxy[4].initialize(60, &m_zcanbus); // BOARD6
can_step_motor_proxy[5].initialize(61, &m_zcanbus);
REG_SUB_MODULE(can_step_motor_proxy);
}
void Device::line_locking_solenoid_valve_init() {}
void Device::line_locking_solenoid_valve(bool on) {}

94
usrc/device.hpp

@ -0,0 +1,94 @@
#pragma once
#include "sdk/os/zos.hpp"
#include "sdk\components\flash\zsimple_flash.hpp"
#include "sdk\components\zcancmder\zcanreceiver.hpp"
#include "sdk\components\zcancmder_module\zcan_basic_order_module.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\protocol_parser.hpp"
//
#include "sdk\components\flash\znvs.hpp"
//
#include "sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp"
#include "sdk\components\cmdscheduler\cmd_scheduler_v2.hpp"
#include "sdk\components\hardware\uart\zuart_dma_receiver.hpp"
#include "sdk\components\mini_servo_motor\mini_servo_motor_ctrl_module.hpp"
#include "sdk\components\modbus\modbus_block_host.hpp"
#include "sdk\components\pipette_module\pipette_ctrl_module_v2.hpp"
#include "sdk\components\sensors\m3078\m3078_code_scaner.hpp"
#include "sdk\components\sensors\tmp117\tmp117.hpp"
#include "sdk\components\ti\drv8710.hpp"
#include "sdk\components\tmc\ic\ztmc5130.hpp"
#include "sdk\components\water_cooling_temperature_control_module\pwm_ctrl_module.hpp"
#include "sdk\components\water_cooling_temperature_control_module\water_cooling_temperature_control_module.hpp"
#include "sdk\components\zcancmder\zcan_board_module.hpp"
#include "sdk\components\zcancmder\zcanreceiver_master.hpp"
#include "sdk\components\zprotocol_helper\micro_computer_module_device_script_cmder_paser.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\protocol_proxy.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\zmodule_device_manager.hpp"
namespace iflytop {
using namespace std;
typedef enum {
// 主轴绕线电机
kdevice_widing_motor = 1,
// 线锁死电磁阀
kdevice_line_locking_solenoid_valve = 2,
// 退线舵机
kdevice_back_line_servo_motor = 10,
// 线宽探测舵机
kdevice_line_width_servo_motor = 11,
// 压线舵机
kdevice_press_line_servo_motor = 12,
// 线引导舵机
kdevice_line_guide_servo_motor = 13,
// 线夹舵机
kdevice_line_clamp_servo_motor = 14,
// 线拉紧舵机
kdevice_line_tighten_servo_motor = 15,
// XY平台
kdevice_xy_platform = 21,
// Z轴
kdevice_z_axis_motor = 31,
// Z轴压线电机
kdevice_z_axis_press_line_motor = 32,
// Z轴梭夹
kdevice_z_axis_shuttle_clamp = 33,
} sub_device_list_t;
class Device {
ZModuleDeviceManager m_device_manager;
CmdSchedulerV2 m_uart_cmdline_parser;
ModbusBlockHost m_modbus;
/*******************************************************************************
* CAN_BUS *
*******************************************************************************/
ZCanCommnaderMaster m_zcanbus;
/*******************************************************************************
* FEI_TE_BUS *
*******************************************************************************/
FeiTeServoMotor m_feitebus;
/*******************************************************************************
* SUB CAN MODULE *
*******************************************************************************/
public:
void init();
/**
* @brief 线
*/
void line_locking_solenoid_valve_init();
void line_locking_solenoid_valve(bool on);
private:
void init_uart_cmder();
void init_dm();
void init_bus();
void sub_module_init();
};
} // namespace iflytop

9
usrc/global.cpp

@ -1,9 +0,0 @@
#include "sdk\components\zcancmder\zcanreceiver_master.hpp"
namespace iflytop {
ZGPIO g_Key0;
ZGPIO g_Key1;
ZGPIO g_Key2;
ZGPIO g_StateLight1;
ZCanCommnaderMaster g_zcanCommnaderMaster;
} // namespace iflytop

10
usrc/global.hpp

@ -1,10 +0,0 @@
#pragma once
#include "sdk\components\zcancmder\zcanreceiver_master.hpp"
namespace iflytop {
extern ZGPIO g_Key0;
extern ZGPIO g_Key1;
extern ZGPIO g_Key2;
extern ZGPIO g_StateLight1;
extern ZCanCommnaderMaster g_zcanCommnaderMaster;
} // namespace iflytop

41
usrc/main.cpp

@ -1,12 +1,32 @@
#include <stddef.h>
#include <stdio.h>
#include "cmdline_version.hpp"
#include "global.hpp"
#include "project_configs.h"
#include "sdk/os/zos.hpp"
#include "sdk\components\flash\zsimple_flash.hpp"
#include "sdk\components\zcancmder\zcanreceiver.hpp"
#include "sdk\components\zcancmder_module\zcan_basic_order_module.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\protocol_parser.hpp"
//
#include "sdk\components\flash\znvs.hpp"
//
#include "device.hpp"
#include "sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp"
#include "sdk\components\cmdscheduler\cmd_scheduler_v2.hpp"
#include "sdk\components\hardware\uart\zuart_dma_receiver.hpp"
#include "sdk\components\mini_servo_motor\mini_servo_motor_ctrl_module.hpp"
#include "sdk\components\pipette_module\pipette_ctrl_module_v2.hpp"
#include "sdk\components\sensors\m3078\m3078_code_scaner.hpp"
#include "sdk\components\sensors\tmp117\tmp117.hpp"
#include "sdk\components\ti\drv8710.hpp"
#include "sdk\components\tmc\ic\ztmc5130.hpp"
#include "sdk\components\water_cooling_temperature_control_module\pwm_ctrl_module.hpp"
#include "sdk\components\water_cooling_temperature_control_module\water_cooling_temperature_control_module.hpp"
#include "sdk\components\zcancmder\zcan_board_module.hpp"
#include "sdk\components\zcancmder\zcanreceiver_master.hpp"
#include "transparent_version.hpp"
#include "sdk\components\zprotocol_helper\micro_computer_module_device_script_cmder_paser.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\protocol_proxy.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\zmodule_device_manager.hpp"
// #include "M3078CodeScanner"
#define TAG "main"
using namespace std;
@ -17,15 +37,6 @@ extern "C" {
void StartDefaultTask(void const* argument) { umain(); }
}
void umain() {
g_Key0.initAsInput(KEY0, ZGPIO::kMode_pullup, ZGPIO::kIRQ_noIrq, false);
g_StateLight1.initAsOutput(STATE_LIGHT_GPIO, ZGPIO::kMode_pullup, false, false);
Device gdevice;
if (g_Key0.getState()) {
g_StateLight1.setState(true);
cmdline_version_main();
} else {
g_StateLight1.setState(false);
transparent_version_main();
}
};
void umain() { gdevice.init(); };

4
usrc/project_configs.h

@ -2,13 +2,13 @@
#define PC_VERSION "v1.0.0"
#define PC_MANUFACTURER "http://www.iflytop.com/"
#define PC_PROJECT_NAME "zcancmder_debug_board"
#define PC_PROJECT_NAME "Intelligent_winding_robot_main_board"
#define PC_IFLYTOP_ENABLE_OS 1
#define PC_DEBUG_UART huart1
#define PC_DEBUG_UART_DMA_HANDLER hdma_usart1_rx
#define PC_DEBUG_UART_RX_BUF_SIZE 1024
#define PC_DEBUG_LIGHT_GPIO PF10
#define PC_DEBUG_LIGHT_GPIO PG0
#define PC_SYS_DELAY_US_TIMER htim6 // USÑÓʱ¶¨Ê±Æ÷
#define PC_SYS_ZTICKET_TIMER TIM11 // ϵͳticket¶¨Ê±Æ÷

89
usrc/transparent_version.cpp

@ -1,89 +0,0 @@
#include <stddef.h>
#include <stdio.h>
#include "sdk/os/zos.hpp"
#include "sdk\components\flash\zsimple_flash.hpp"
#include "sdk\components\zcancmder\zcanreceiver.hpp"
#include "sdk\components\zcancmder_module\zcan_basic_order_module.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\protocol_parser.hpp"
//
#include "sdk\components\flash\znvs.hpp"
//
#include "sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp"
#include "sdk\components\cmdscheduler\cmd_scheduler_v2.hpp"
#include "sdk\components\hardware\uart\zuart_dma_receiver.hpp"
#include "sdk\components\mini_servo_motor\mini_servo_motor_ctrl_module.hpp"
#include "sdk\components\pipette_module\pipette_ctrl_module_v2.hpp"
#include "sdk\components\sensors\m3078\m3078_code_scaner.hpp"
#include "sdk\components\sensors\tmp117\tmp117.hpp"
#include "sdk\components\ti\drv8710.hpp"
#include "sdk\components\tmc\ic\ztmc5130.hpp"
#include "sdk\components\water_cooling_temperature_control_module\pwm_ctrl_module.hpp"
#include "sdk\components\water_cooling_temperature_control_module\water_cooling_temperature_control_module.hpp"
#include "sdk\components\zcancmder\zcan_board_module.hpp"
#include "sdk\components\zcancmder\zcanreceiver_master.hpp"
#include "sdk\components\zprotocol_helper\micro_computer_module_device_script_cmder_paser.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\protocol_proxy.hpp"
#include "sdk\components\zprotocols\zcancmder_v2\zmodule_device_manager.hpp"
#include "string.h"
// #include "M3078CodeScanner"
#include "global.hpp"
#define TAG "main"
using namespace iflytop;
using namespace std;
uint32_t m_rxbufsize;
bool m_dataisready = false;
char m_cmdcache[1024] = {0};
void transparent_version_main() {
chip_cfg_t chipcfg;
chipcfg.us_dleay_tim = &PC_SYS_DELAY_US_TIMER;
chipcfg.tim_irq_scheduler_tim = &PC_SYS_TIM_IRQ_SCHEDULER_TIMER;
chipcfg.huart = NULL;
chipcfg.debuglight = PC_DEBUG_LIGHT_GPIO;
chip_init(&chipcfg);
zos_cfg_t zoscfg;
zos_init(&zoscfg);
ZLOGI(TAG, "boardId:%d", 0);
ZLOGI(TAG, "init can bus");
auto* m_zcanCommnaderMaster_cfg = g_zcanCommnaderMaster.createCFG(); // can×ÜÏßÅäÖÃ
g_zcanCommnaderMaster.init(m_zcanCommnaderMaster_cfg); // can×ÜÏß
ZLOGI(TAG, "init can bus end...");
static ZUARTDmaReceiver dmaUartReceiver;
static CmdSchedulerV2 cmder;
ZUARTDmaReceiver::hardware_config_t cfg = {
.huart = &PC_DEBUG_UART,
.dma_rx = &PC_DEBUG_UART_DMA_HANDLER,
.rxbuffersize = PC_DEBUG_UART_RX_BUF_SIZE,
.rxovertime_ms = 3,
};
ZLOGI(TAG, "init cmder");
dmaUartReceiver.initialize(&cfg);
dmaUartReceiver.startRx([](uint8_t* data, size_t len) {
if (!m_dataisready) {
memcpy(m_cmdcache, data, len);
m_rxbufsize = len;
m_dataisready = true;
}
});
g_zcanCommnaderMaster.regRawPacketListener([](uint8_t* packet, size_t len) { //
HAL_UART_Transmit(&PC_DEBUG_UART, packet, len, 1000);
osDelay(5);
});
while (true) {
OSDefaultSchduler::getInstance()->loop();
if (m_dataisready) {
g_zcanCommnaderMaster.sendRawPacket((uint8_t*)m_cmdcache, m_rxbufsize);
m_dataisready = false;
}
}
};

3
usrc/transparent_version.hpp

@ -1,3 +0,0 @@
#pragma once
void transparent_version_main();
Loading…
Cancel
Save