diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index 411f6f3..7b365a4 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/usrc/cmdline_support.cpp b/usrc/cmdline_support.cpp new file mode 100644 index 0000000..cddac57 --- /dev/null +++ b/usrc/cmdline_support.cpp @@ -0,0 +1,24 @@ +#include "cmdline_support.hpp" +using namespace iflytop; + +void CmdlineSupport::init(Device* device) { + // + m_device = device; + + // void line_locking_solenoid_valve(bool on); + // void blower_set_val(bool on); + + auto* cmdlineparser = &m_device->m_uart_cmdline_parser; + cmdlineparser->registerCmd("line_locking_solenoid_valve", "(bool on)", 1, // + [this](int32_t paramN, const char** paraV, ICmdParserACK* ack) { + int val = atoi(paraV[0]); + m_device->line_locking_solenoid_valve(val); + return 0; + }); + cmdlineparser->registerCmd("blower_set_val", "(bool on)", 1, // + [this](int32_t paramN, const char** paraV, ICmdParserACK* ack) { + int val = atoi(paraV[0]); + m_device->blower_set_val(val); + return 0; + }); +} \ No newline at end of file diff --git a/usrc/cmdline_support.hpp b/usrc/cmdline_support.hpp new file mode 100644 index 0000000..ede8949 --- /dev/null +++ b/usrc/cmdline_support.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "device.hpp" +#include "sdk/os/zos.hpp" +namespace iflytop { +using namespace std; +class CmdlineSupport { + Device* m_device = nullptr; + + public: + void init(Device* device); +}; +} // namespace iflytop \ No newline at end of file diff --git a/usrc/cmdline_version.cpp b/usrc/cmdline_version.cpp deleted file mode 100644 index 730f9d0..0000000 --- a/usrc/cmdline_version.cpp +++ /dev/null @@ -1,87 +0,0 @@ -#include -#include - -#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; -static ZModuleDeviceManager g_zModuleDeviceManager; -static MicroComputerModuleDeviceScriptCmderPaser g_zModuleDeviceScriptCmderPaser; -static ZCanCommnaderMaster g_zcanCommnaderMaster; -static ZIProtocolProxy proxy[255]; - -void cmdline_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 = &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 = g_zcanCommnaderMaster.createCFG(); // can×ÜÏßÅäÖà - g_zcanCommnaderMaster.init(m_zcanCommnaderMaster_cfg); // can×ÜÏß - g_zModuleDeviceManager.initialize(&g_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(&g_zcanCommnaderMaster); - g_zModuleDeviceScriptCmderPaser.initialize(&cmder, &g_zModuleDeviceManager); - ZLOGI(TAG, "reg modules"); - - for (size_t i = 1; i < 255; i++) { - proxy[i].initialize(i, &g_zcanCommnaderMaster); - g_zModuleDeviceManager.registerModule(&proxy[i]); - } - - ZLOGI(TAG, "board init ok..."); - - while (true) { - OSDefaultSchduler::getInstance()->loop(); - cmder.schedule(); - } -}; diff --git a/usrc/cmdline_version.hpp b/usrc/cmdline_version.hpp deleted file mode 100644 index 320a69b..0000000 --- a/usrc/cmdline_version.hpp +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once -void cmdline_version_main(); - diff --git a/usrc/device.cpp b/usrc/device.cpp index 44075e5..972669a 100644 --- a/usrc/device.cpp +++ b/usrc/device.cpp @@ -35,7 +35,9 @@ void Device::init() { init_bus(); sub_module_init(); ZLOGI(TAG, "init end..."); +} +void Device::loop() { while (true) { OSDefaultSchduler::getInstance()->loop(); m_uart_cmdline_parser.schedule(); @@ -160,5 +162,12 @@ void Device::sub_module_init() { m_device_manager.module_active_cfg(42); } -void Device::line_locking_solenoid_valve_init() {} -void Device::line_locking_solenoid_valve(bool on) {} +static ZGPIO line_locking_solenoid_valve_gpio; +void Device::line_locking_solenoid_valve_init() { // + line_locking_solenoid_valve_gpio.initAsOutput(PC3, ZGPIO::kMode_nopull, false, false); +} +void Device::line_locking_solenoid_valve(bool on) { line_locking_solenoid_valve_gpio.setState(on); } + +static ZGPIO blower_gpio; +void Device::blower_init() { blower_gpio.initAsOutput(PC2, ZGPIO::kMode_nopull, true, false); } +void Device::blower_set_val(bool on) { blower_gpio.setState(on); } diff --git a/usrc/device.hpp b/usrc/device.hpp index 6796ff6..d95f308 100644 --- a/usrc/device.hpp +++ b/usrc/device.hpp @@ -61,6 +61,7 @@ typedef enum { } sub_device_list_t; class Device { + public: ZModuleDeviceManager m_device_manager; CmdSchedulerV2 m_uart_cmdline_parser; @@ -85,6 +86,11 @@ class Device { void line_locking_solenoid_valve_init(); void line_locking_solenoid_valve(bool on); + void blower_init(); + void blower_set_val(bool on); + + void loop(); + private: void init_uart_cmder(); void init_dm(); diff --git a/usrc/main.cpp b/usrc/main.cpp index 4c2468e..5f3cae0 100644 --- a/usrc/main.cpp +++ b/usrc/main.cpp @@ -9,6 +9,7 @@ // #include "sdk\components\flash\znvs.hpp" // +#include "cmdline_support.hpp" #include "device.hpp" #include "sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp" #include "sdk\components\cmdscheduler\cmd_scheduler_v2.hpp" @@ -37,6 +38,11 @@ extern "C" { void StartDefaultTask(void const* argument) { umain(); } } -Device gdevice; +Device gdevice; +CmdlineSupport cmdlineSupport; -void umain() { gdevice.init(); }; +void umain() { + gdevice.init(); + cmdlineSupport.init(&gdevice); + gdevice.loop(); +}; diff --git a/usrc/width_detecter.cpp b/usrc/width_detecter.cpp new file mode 100644 index 0000000..dfa6e21 --- /dev/null +++ b/usrc/width_detecter.cpp @@ -0,0 +1,2 @@ +#include "width_detecter.hpp" + diff --git a/usrc/width_detecter.hpp b/usrc/width_detecter.hpp new file mode 100644 index 0000000..4021e6c --- /dev/null +++ b/usrc/width_detecter.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "sdk/os/zos.hpp" + +namespace iflytop { +class WindthDetecter { + public: + void init(int32_t resetpos, int32_t zeropos, int32_t direction); + void start_direct(); + void stop(); + + int32_t get_width(); + + private: + void loop(); +}; +} // namespace iflytop \ No newline at end of file