Browse Source

update

master
zhaohe 1 year ago
parent
commit
e2dffc30e3
  1. 15
      components/sensors/m3078/m3078_code_scaner.cpp
  2. 2
      components/sensors/m3078/m3078_code_scaner.hpp
  3. 15
      components/zcancmder/zcan_protocol_parser.cpp

15
components/sensors/m3078/m3078_code_scaner.cpp

@ -34,13 +34,17 @@ void M3078CodeScanner::trigger() {
ZLOGI(TAG, "trigger"); ZLOGI(TAG, "trigger");
clearIdinfo(); clearIdinfo();
m_triggerGpio.setState(0); m_triggerGpio.setState(0);
zos_delay(3);
zos_delay(10);
m_uart.clearRxData(); m_uart.clearRxData();
m_triggerGpio.setState(1); m_triggerGpio.setState(1);
m_trigger = true;
creg.m_module_status = 1;
} }
void M3078CodeScanner::stopTrigger() { void M3078CodeScanner::stopTrigger() {
ZLOGI(TAG, "stopTrigger"); ZLOGI(TAG, "stopTrigger");
m_triggerGpio.setState(0); m_triggerGpio.setState(0);
m_trigger = false;
creg.m_module_status = 0;
} }
bool M3078CodeScanner::idInfoIsReady() { return m_codeisready; } bool M3078CodeScanner::idInfoIsReady() { return m_codeisready; }
char* M3078CodeScanner::getIdinfo() { return codecache; } char* M3078CodeScanner::getIdinfo() { return codecache; }
@ -79,6 +83,7 @@ int32_t M3078CodeScanner::code_scaner_read_scaner_result(uint8_t* result, int32_
} }
*len = codecachelen; *len = codecachelen;
memcpy(result, codecache, codecachelen); memcpy(result, codecache, codecachelen);
ZLOGI(TAG, "code_scaner_read_scaner_result: %s(%d)", codecache, codecachelen);
return 0; return 0;
} }
int32_t M3078CodeScanner::get_id_info_len(int32_t* len) { int32_t M3078CodeScanner::get_id_info_len(int32_t* len) {
@ -99,11 +104,9 @@ int32_t M3078CodeScanner::module_xxx_reg(int32_t param_id, bool read, int32_t& v
return 0; return 0;
} }
int32_t M3078CodeScanner::read_status() { int32_t M3078CodeScanner::read_status() {
if (m_triggerGpio.getState() == 0) {
if (creg.m_module_status == 0) {
return 0; return 0;
} }
if (m_codeisready) {
return 0;
}
return 1;
return m_codeisready;
} }

2
components/sensors/m3078/m3078_code_scaner.hpp

@ -54,6 +54,7 @@ class M3078CodeScanner : public ZIModule, public ZICodeScaner {
int32_t codecachelen = 0; int32_t codecachelen = 0;
bool m_codeisready = false; bool m_codeisready = false;
public: public:
M3078CodeScanner(){}; M3078CodeScanner(){};
~M3078CodeScanner(){}; ~M3078CodeScanner(){};
@ -90,6 +91,7 @@ class M3078CodeScanner : public ZIModule, public ZICodeScaner {
virtual int32_t module_xxx_reg(int32_t param_id, bool read, int32_t& val) override; virtual int32_t module_xxx_reg(int32_t param_id, bool read, int32_t& val) override;
virtual int32_t module_stop() override; virtual int32_t module_stop() override;
public: public:
virtual int32_t code_scaner_start_scan() override; virtual int32_t code_scaner_start_scan() override;
virtual int32_t code_scaner_stop_scan() override; virtual int32_t code_scaner_stop_scan() override;

15
components/zcancmder/zcan_protocol_parser.cpp

@ -47,7 +47,13 @@ void ZCanProtocolParser::initialize(IZCanReceiver* cancmder) {
REGFN(board_read_ext_io); REGFN(board_read_ext_io);
REGFN(board_write_ext_io); REGFN(board_write_ext_io);
REGFN(board_read_muti_io);
REGFN(code_scaner_start_scan);
REGFN(code_scaner_stop_scan);
REGFN(code_scaner_result_is_ready);
REGFN(code_scaner_get_result_length);
REGFN(code_scaner_read_scaner_result);
#if 0 #if 0
REGFN(xymotor_enable); REGFN(xymotor_enable);
REGFN(xymotor_move_by); REGFN(xymotor_move_by);
@ -335,7 +341,7 @@ int32_t ZCanProtocolParser::code_scaner_stop_scan(cmdcontxt_t* cxt) {
} }
int32_t ZCanProtocolParser::code_scaner_result_is_ready(cmdcontxt_t* cxt) { int32_t ZCanProtocolParser::code_scaner_result_is_ready(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(1);
CHECK_AND_GET_MODULE(0);
int32_t* ack = (int32_t*)cxt->ackbuf; int32_t* ack = (int32_t*)cxt->ackbuf;
cxt->acklen = 4; cxt->acklen = 4;
return module->code_scaner_result_is_ready(&ack[0]); return module->code_scaner_result_is_ready(&ack[0]);
@ -350,7 +356,12 @@ int32_t ZCanProtocolParser::code_scaner_get_result_length(cmdcontxt_t* cxt) {
int32_t ZCanProtocolParser::code_scaner_read_scaner_result(cmdcontxt_t* cxt) { int32_t ZCanProtocolParser::code_scaner_read_scaner_result(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(0); CHECK_AND_GET_MODULE(0);
return module->code_scaner_read_scaner_result(cxt->ackbuf, &cxt->acklen);
cxt->acklen = ZCANCMD_READ_BUF_MAX_SIZE;
int32_t suc = module->code_scaner_read_scaner_result(cxt->ackbuf, &cxt->acklen);
if (suc != 0) {
cxt->acklen = 0;
}
return suc;
} }
#undef MODULE_CLASS #undef MODULE_CLASS

Loading…
Cancel
Save