diff --git a/api/module_type_index.hpp b/api/module_type_index.hpp index 9820c57..0844f43 100644 --- a/api/module_type_index.hpp +++ b/api/module_type_index.hpp @@ -3,10 +3,12 @@ namespace iflytop { typedef enum { - kuniversal_module = 0, - khbot_module = 1, - kmotor_module = 2, - ktemperature_ctrl_module = 3, - kmini_servo_motor_module = 4, + kuniversal_module = 0, // 通用模块 + khbot_module = 1, // hbot模块 + kmotor_module = 2, // 电机控制 + ktemperature_ctrl_module = 3, // 温度控制 + kmini_servo_motor_module = 4, // 舵机 + kfan_ctrl_module = 5, // 风扇控制 + kcode_scaner = 6, // 风扇控制 } module_type_t; } \ No newline at end of file diff --git a/api/zi_code_scaner.hpp b/api/zi_code_scaner.hpp index 13f6375..18a0c8c 100644 --- a/api/zi_code_scaner.hpp +++ b/api/zi_code_scaner.hpp @@ -7,10 +7,12 @@ namespace iflytop { using namespace std; +#if 0 class ZICodeScaner { public: virtual int32_t code_scaner_start_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_stop_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_read_scaner_result(int32_t startadd, uint8_t *data, int32_t *len) { return err::koperation_not_support; } }; +#endif } // namespace iflytop \ No newline at end of file diff --git a/api/zi_module.hpp b/api/zi_module.hpp index 7c45f67..af08a53 100644 --- a/api/zi_module.hpp +++ b/api/zi_module.hpp @@ -40,7 +40,7 @@ using namespace std; PROCESS_REG(kreg_module_type, /* */ REG_GET(m_com_reg.module_type), ACTION_NONE); \ PROCESS_REG(kreg_module_status, /* */ module_get_status(&val), ACTION_NONE); \ PROCESS_REG(kreg_module_errorcode, /* */ REG_GET(m_com_reg.module_errorcode), ACTION_NONE); \ - PROCESS_REG(kreg_module_initflag, /* */ REG_GET(m_com_reg.module_initflag), REG_SET(m_com_reg.module_initflag)); \ + PROCESS_REG(kreg_module_initflag, /* */ module_get_inited_flag(&val), module_set_inited_flag(val)); \ PROCESS_REG(kreg_module_errorbitflag0, /* */ REG_GET(m_com_reg.module_errorbitflag0), ACTION_NONE); \ PROCESS_REG(kreg_module_enableflag, /* */ REG_GET(m_com_reg.module_enable), ACTION_NONE); \ PROCESS_REG(kreg_module_do_action0, /* */ ACTION_NONE, do_action(val)); \ @@ -60,7 +60,6 @@ typedef struct { int32_t module_version; int32_t module_type; int32_t module_errorcode; - int32_t module_initflag; int32_t module_errorbitflag0; int32_t module_enable; @@ -109,7 +108,7 @@ class ZIModule { return id; }; - virtual int32_t module_ping() = 0; + virtual int32_t module_ping() { return 0; }; virtual int32_t module_stop() { return err::koperation_not_support; } virtual int32_t module_break() { return err::koperation_not_support; } @@ -122,8 +121,10 @@ class ZIModule { virtual int32_t module_enable(int32_t enable) { return err::koperation_not_support; } - virtual int32_t module_set_reg(int32_t param_id, int32_t param_value) { return err::koperation_not_support; } - virtual int32_t module_get_reg(int32_t param_id, int32_t *param_value) { return err::koperation_not_support; } + virtual int32_t module_xxx_reg(int32_t param_id, bool read, int32_t &val) { return err::koperation_not_support; } + + virtual int32_t module_set_reg(int32_t param_id, int32_t param_value) { return module_xxx_reg(param_id, false, param_value); } + virtual int32_t module_get_reg(int32_t param_id, int32_t *param_value) { return module_xxx_reg(param_id, true, *param_value); } virtual int32_t module_readio(int32_t *io) { return err::koperation_not_support; } virtual int32_t module_writeio(int32_t idindex, int32_t io) { return err::koperation_not_support; } @@ -173,5 +174,8 @@ class ZIModule { val = regval / precision; return 0; } + + public: + virtual int32_t do_action(int32_t actioncode) { return err::kmodule_not_support_action; }; }; } // namespace iflytop diff --git a/protocol_parser.cpp b/protocol_parser.cpp index d48812e..1c3af10 100644 --- a/protocol_parser.cpp +++ b/protocol_parser.cpp @@ -257,11 +257,11 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in virtual int32_t code_scaner_start_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_stop_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_read_scaner_result(int32_t startadd, uint8_t *data, int32_t *len) { return err::koperation_not_support; } -#endif PROCESS_PACKET_00(kcode_scaner_start_scan, ZICodeScaner, code_scaner_start_scan); PROCESS_PACKET_00(kcode_scaner_stop_scan, ZICodeScaner, code_scaner_stop_scan); PROCESS_BUF_REQUEST_1(kcode_scaner_read_scaner_result, ZICodeScaner, code_scaner_read_scaner_result); +#endif #if 0 virtual int32_t pipette_ctrl_init_device() { return err::koperation_not_support; }; diff --git a/protocol_proxy.cpp b/protocol_proxy.cpp index 2066b2e..dfd4c67 100644 --- a/protocol_proxy.cpp +++ b/protocol_proxy.cpp @@ -193,7 +193,6 @@ int32_t ZIProtocolProxy::xymotor_calculated_pos_by_move_to_zero() { PROXY_IMPL_0 virtual int32_t code_scaner_start_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_stop_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_read_scaner_result(int32_t startadd, uint8_t *data, int32_t *len) { return err::koperation_not_support; } -#endif int32_t ZIProtocolProxy::code_scaner_start_scan() { PROXY_IMPL_00(kcode_scaner_start_scan, OVERTIME); } int32_t ZIProtocolProxy::code_scaner_stop_scan() { PROXY_IMPL_00(kcode_scaner_stop_scan, OVERTIME); } @@ -203,6 +202,7 @@ int32_t ZIProtocolProxy::code_scaner_read_scaner_result(int32_t para0, uint8_t * int32_t ecode = m_cancmder->sendCmdAndReceiveBuf(kmodule_read_raw, m_id, param, 1, data, len, 100); return ecode; } +#endif #if 0 virtual int32_t pipette_ctrl_init_device() { return err::koperation_not_support; }; diff --git a/protocol_proxy.hpp b/protocol_proxy.hpp index cbbd6a5..c5d6dcf 100644 --- a/protocol_proxy.hpp +++ b/protocol_proxy.hpp @@ -9,7 +9,6 @@ namespace iflytop { class ZIProtocolProxy : public ZIMotor, // public ZIXYMotor, // public ZIModule, - public ZICodeScaner, public ZIPipetteCtrlModule, public ZIA8000OpticalModule { private: @@ -149,11 +148,11 @@ class ZIProtocolProxy : public ZIMotor, // virtual int32_t code_scaner_start_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_stop_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_read_scaner_result(int32_t startadd, uint8_t *data, int32_t *len) { return err::koperation_not_support; } -#endif virtual int32_t code_scaner_start_scan() override; virtual int32_t code_scaner_stop_scan() override; virtual int32_t code_scaner_read_scaner_result(int32_t startadd, uint8_t *data, int32_t *len) override; +#endif #if 0 virtual int32_t pipette_ctrl_init_device() { return err::koperation_not_support; }; diff --git a/zmodule_device_manager.cpp b/zmodule_device_manager.cpp index 4ff43e5..9e254b7 100644 --- a/zmodule_device_manager.cpp +++ b/zmodule_device_manager.cpp @@ -138,10 +138,10 @@ int32_t ZModuleDeviceManager::xymotor_calculated_pos_by_move_to_zero(uint16_t id virtual int32_t code_scaner_start_scan(uint16_t id); virtual int32_t code_scaner_stop_scan(uint16_t id); virtual int32_t code_scaner_read_scaner_result(uint16_t id, int32_t startadd, uint8_t *data, int32_t *len); -#endif int32_t ZModuleDeviceManager::code_scaner_start_scan(uint16_t id) { PROXY_IMPL(ZICodeScaner, code_scaner_start_scan); } int32_t ZModuleDeviceManager::code_scaner_stop_scan(uint16_t id) { PROXY_IMPL(ZICodeScaner, code_scaner_stop_scan); } int32_t ZModuleDeviceManager::code_scaner_read_scaner_result(uint16_t id, int32_t startadd, uint8_t *data, int32_t *len) { PROXY_IMPL(ZICodeScaner, code_scaner_read_scaner_result, startadd, data, len); } +#endif #if 0 virtual int32_t pipette_ctrl_init_device() { return err::koperation_not_support; }; diff --git a/zmodule_device_manager.hpp b/zmodule_device_manager.hpp index a2044e4..49609d1 100644 --- a/zmodule_device_manager.hpp +++ b/zmodule_device_manager.hpp @@ -184,11 +184,11 @@ class ZModuleDeviceManager { virtual int32_t code_scaner_start_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_stop_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_read_scaner_result(int32_t startadd, uint8_t *data, int32_t *len) { return err::koperation_not_support; } -#endif virtual int32_t code_scaner_start_scan(uint16_t id); virtual int32_t code_scaner_stop_scan(uint16_t id); virtual int32_t code_scaner_read_scaner_result(uint16_t id, int32_t startadd, uint8_t *data, int32_t *len); +#endif #if 0 virtual int32_t pipette_ctrl_init_device() { return err::koperation_not_support; }; diff --git a/zmodule_device_script_cmder_paser.cpp b/zmodule_device_script_cmder_paser.cpp index b56211f..faae359 100644 --- a/zmodule_device_script_cmder_paser.cpp +++ b/zmodule_device_script_cmder_paser.cpp @@ -207,7 +207,6 @@ void ZModuleDeviceScriptCmderPaser::regfn() { virtual int32_t code_scaner_start_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_stop_scan() { return err::koperation_not_support; } virtual int32_t code_scaner_read_scaner_result(int32_t startadd, uint8_t *data, int32_t *len) { return err::koperation_not_support; } -#endif PROCESS_PACKET_10(code_scaner_start_scan, "(mid)"); PROCESS_PACKET_10(code_scaner_stop_scan, "(mid)"); @@ -220,6 +219,7 @@ void ZModuleDeviceScriptCmderPaser::regfn() { ack->ecode = m_deviceManager->module_read_raw(atoi(paraV[0]), atoi(paraV[1]), ack->rawdata, &ack->rawlen); ack->acktype = ICmdParserACK::kAckType_buf; }); +#endif #if 0 virtual int32_t pipette_ctrl_init_device() { return err::koperation_not_support; };