Browse Source

update

master
zhaohe 2 years ago
parent
commit
5823eb1128
  1. 39
      components/step_motor_ctrl_module/step_motor_ctrl_module.cpp
  2. 14
      components/step_motor_ctrl_module/step_motor_ctrl_module.hpp
  3. 2
      components/zprotocols/zcancmder

39
components/step_motor_ctrl_module/step_motor_ctrl_module.cpp

@ -7,8 +7,8 @@
#include "sdk\components\flash\znvs.hpp"
using namespace iflytop;
#define TAG "SMCM"
void StepMotorCtrlModule::initialize(int id, IStepperMotor* stepM, ZGPIO iotable[], int nio, const char* flashmark) {
m_id = id;
void StepMotorCtrlModule::initialize(int moduleid, IStepperMotor* stepM, ZGPIO iotable[], int nio, const char* flashmark, flash_config_t* defaultcfg) {
m_id = moduleid;
m_stepM1 = stepM;
m_iotable = iotable;
m_nio = nio;
@ -22,9 +22,14 @@ void StepMotorCtrlModule::initialize(int id, IStepperMotor* stepM, ZGPIO iotable
m_flashmark = flashmark;
if (m_flashmark) {
ZASSERT(ZNVS::ins().get_config(m_flashmark, (uint8_t*)&m_flash_config, sizeof(m_flash_config)));
ZASSERT(ZNVS::ins().get_config(m_flashmark, (uint8_t*)&m_cfg, sizeof(m_cfg)));
if (!m_cfg.configInited) {
m_cfg.configInited = true;
m_cfg = m_factory_config;
flush();
}
} else {
create_default_cfg(m_flash_config);
m_cfg = m_factory_config;
}
active_cfg();
@ -47,28 +52,28 @@ bool StepMotorCtrlModule::isbusy() { return m_thread.isworking(); }
int32_t StepMotorCtrlModule::move_to_logic_point(int32_t logic_point_num, action_cb_status_t status_cb) {
ZLOGI(TAG, "move_to_logic_point %d", logic_point_num);
if (logic_point_num >= ZARRAY_SIZE(m_flash_config.logic_point)) {
if (logic_point_num >= ZARRAY_SIZE(m_cfg.logic_point)) {
return err::kparam_out_of_range;
}
logic_point_t logic_point = m_flash_config.logic_point[logic_point_num];
logic_point_t logic_point = m_cfg.logic_point[logic_point_num];
return move_to(logic_point.x, logic_point.velocity, status_cb);
}
int32_t StepMotorCtrlModule::set_logic_point(int logic_point_num, int32_t x, int32_t vel, s32 acc, s32 dec) {
ZLOGI(TAG, "set_logic_point %d %d %d %d %d", logic_point_num, x, vel, acc, dec);
if (logic_point_num >= ZARRAY_SIZE(m_flash_config.logic_point)) return err::kparam_out_of_range;
if (logic_point_num >= ZARRAY_SIZE(m_cfg.logic_point)) return err::kparam_out_of_range;
if (logic_point_num < 0) logic_point_num = 0;
// memset(&m_flash_config, 0, sizeof(m_flash_config));
m_flash_config.logic_point[logic_point_num].x = x;
m_flash_config.logic_point[logic_point_num].velocity = vel;
m_flash_config.logic_point[logic_point_num].acc = acc;
m_flash_config.logic_point[logic_point_num].dec = dec;
// memset(&m_cfg, 0, sizeof(m_cfg));
m_cfg.logic_point[logic_point_num].x = x;
m_cfg.logic_point[logic_point_num].velocity = vel;
m_cfg.logic_point[logic_point_num].acc = acc;
m_cfg.logic_point[logic_point_num].dec = dec;
return 0;
}
int32_t StepMotorCtrlModule::get_logic_point(int logic_point_num, logic_point_t& logic_point) {
if (logic_point_num >= ZARRAY_SIZE(m_flash_config.logic_point)) {
if (logic_point_num >= ZARRAY_SIZE(m_cfg.logic_point)) {
return err::kparam_out_of_range;
}
logic_point = m_flash_config.logic_point[logic_point_num];
logic_point = m_cfg.logic_point[logic_point_num];
return 0;
}
@ -591,7 +596,7 @@ void StepMotorCtrlModule::create_default_cfg(flash_config_t& cfg) {
int32_t StepMotorCtrlModule::flush() {
ZLOGI(TAG, "flush");
if (m_flashmark) {
ZNVS::ins().set_config(m_flashmark, (uint8_t*)&m_flash_config, sizeof(m_flash_config));
ZNVS::ins().set_config(m_flashmark, (uint8_t*)&m_cfg, sizeof(m_cfg));
ZNVS::ins().flush();
}
return 0;
@ -599,9 +604,9 @@ int32_t StepMotorCtrlModule::flush() {
int32_t StepMotorCtrlModule::factory_reset() {
//
ZLOGI(TAG, "factory_reset");
create_default_cfg(m_flash_config);
m_cfg = m_factory_config;
if (m_flashmark) {
ZNVS::ins().set_config(m_flashmark, (uint8_t*)&m_flash_config, sizeof(m_flash_config));
ZNVS::ins().set_config(m_flashmark, (uint8_t*)&m_cfg, sizeof(m_cfg));
ZNVS::ins().flush();
}
active_cfg();

14
components/step_motor_ctrl_module/step_motor_ctrl_module.hpp

@ -21,11 +21,10 @@ class StepMotorCtrlModule : public I_StepMotorCtrlModule, public ZIModule, publi
zmutex m_lock;
zmutex m_statu_lock;
flash_config_t m_flash_config;
base_param_t& m_param = m_flash_config.base_param;
// bool m_x_shaft = false;
// int32_t m_lastexecstatus = 0;
int32_t m_default_speed = 0;
flash_config_t m_cfg;
flash_config_t m_factory_config;
base_param_t& m_param = m_cfg.base_param;
int32_t m_default_speed = 0;
ZGPIO* m_iotable;
int m_nio;
@ -37,8 +36,9 @@ class StepMotorCtrlModule : public I_StepMotorCtrlModule, public ZIModule, publi
// int32_t m_enable = 0;
public:
void initialize(int moduleid, IStepperMotor* stepM, ZGPIO iotable[], int nio, const char* flashmark);
static void create_default_cfg(flash_config_t& cfg);
void initialize(int moduleid, IStepperMotor* stepM, ZGPIO iotable[], int nio, const char* flashmark, flash_config_t* defaultcfg);
static void create_default_cfg(flash_config_t& cfg);
static uint32_t get_flash_cfg_size() { return sizeof(flash_config_t); }
virtual bool isbusy() override;
virtual int32_t get_last_exec_status() override { return m_com_reg.module_last_cmd_exec_status; };

2
components/zprotocols/zcancmder

@ -1 +1 @@
Subproject commit 6652d159d875cc4645ec045d05f0f9f8e906bcd1
Subproject commit 6ae11da71aeb4cb0e959b9dabb66c50043d20d03
Loading…
Cancel
Save