You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

103 lines
3.7 KiB

#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 "M3078CodeScanner"
#define TAG "main"
using namespace iflytop;
using namespace std;
extern void umain();
extern "C" {
void StartDefaultTask(void const* argument) { umain(); }
}
static ZModuleDeviceManager g_zModuleDeviceManager;
static MicroComputerModuleDeviceScriptCmderPaser g_zModuleDeviceScriptCmderPaser;
static ZCanCommnaderMaster m_zcanCommnaderMaster;
static ZIProtocolProxy proxy[255];
void initcfg() {
/**
* @brief 初始化配置,系统中需要配置都需要在这里进行初始化
*/
static I_StepMotorCtrlModule::flash_config_t cfg;
StepMotorCtrlModule::create_default_cfg(cfg);
// ZNVS::ins().alloc_config(MOTOR_CFG_FLASH_MARK, (uint8_t*)&cfg, sizeof(cfg));
}
void initmodule() {}
void umain() {
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);
zos_cfg_t zoscfg;
zos_init(&zoscfg);
ZLOGI(TAG, "boardId:%d", 0);
ZLOGI(TAG, "init can bus");
auto* m_zcanCommnaderMaster_cfg = m_zcanCommnaderMaster.createCFG(); // can总线配置
m_zcanCommnaderMaster.init(m_zcanCommnaderMaster_cfg); // can总线
g_zModuleDeviceManager.initialize(&m_zcanCommnaderMaster);
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 = 10,
};
ZLOGI(TAG, "init cmder");
dmaUartReceiver.initialize(&cfg);
cmder.initialize(&dmaUartReceiver);
ZLOGI(TAG, "init cmder end...");
ZLOGI(TAG, "init module");
g_zModuleDeviceManager.initialize(nullptr);
g_zModuleDeviceScriptCmderPaser.initialize(&cmder, &g_zModuleDeviceManager);
for (size_t i = 1; i < 255; i++) {
proxy[i].initialize(i, &m_zcanCommnaderMaster);
g_zModuleDeviceManager.registerModule(&proxy[i]);
}
ZLOGI(TAG, "board init ok...");
while (true) {
OSDefaultSchduler::getInstance()->loop();
cmder.schedule();
}
};