|
|
@ -26,8 +26,8 @@ void M3078CodeScanner::initialize(int moduleid, hardware_config_t* hardwareconfi |
|
|
|
} |
|
|
|
}); |
|
|
|
m_uart.startRxIt(); |
|
|
|
|
|
|
|
m_triggerGpio.initAsOutput(hardwareconfig->triggerPin, ZGPIO::kMode_nopull, false, false); |
|
|
|
m_com_reg.module_enable = 1; |
|
|
|
} |
|
|
|
void M3078CodeScanner::trigger() { |
|
|
|
m_codeisready = false; |
|
|
@ -36,8 +36,7 @@ void M3078CodeScanner::trigger() { |
|
|
|
m_uart.clearRxData(); |
|
|
|
m_triggerGpio.setState(1); |
|
|
|
} |
|
|
|
void M3078CodeScanner::stopTrigger() { m_triggerGpio.setState(0); } |
|
|
|
|
|
|
|
void M3078CodeScanner::stopTrigger() { m_triggerGpio.setState(0); } |
|
|
|
bool M3078CodeScanner::idInfoIsReady() { return m_codeisready; } |
|
|
|
char* M3078CodeScanner::getIdinfo() { return codecache; } |
|
|
|
void M3078CodeScanner::clearIdinfo() { |
|
|
@ -60,53 +59,35 @@ int32_t M3078CodeScanner::module_start() { |
|
|
|
trigger(); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
#define ACTION_NULL ;
|
|
|
|
#define REG(param_id, readaction, writeacton) \
|
|
|
|
case param_id: { \ |
|
|
|
if (read) { \ |
|
|
|
readaction; \ |
|
|
|
} else { \ |
|
|
|
writeacton; \ |
|
|
|
} \ |
|
|
|
int32_t M3078CodeScanner::module_read_raw(int32_t startadd, uint8_t* data, int32_t* len) { |
|
|
|
ZLOGI(TAG, "module_read_raw"); |
|
|
|
if (codecachelen > *len) { |
|
|
|
return err::kbuffer_not_enough; |
|
|
|
} |
|
|
|
|
|
|
|
*len = codecachelen; |
|
|
|
memcpy(data, codecache, codecachelen); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
int32_t M3078CodeScanner::get_id_info_len(int32_t* len) { |
|
|
|
*len = codecachelen; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
int32_t M3078CodeScanner::get_raw_sector_num(int32_t* num) { |
|
|
|
*num = 1; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
int32_t M3078CodeScanner::module_xxx_reg(int32_t param_id, bool read, int32_t& val) { |
|
|
|
switch (param_id) { |
|
|
|
REG(kreg_module_version, /* */ val = 0x0001, ACTION_NULL); |
|
|
|
REG(kreg_module_type, /* */ val = 0, ACTION_NULL); |
|
|
|
REG(kreg_module_status, /* */ val = read_status(), ACTION_NULL); |
|
|
|
REG(kreg_module_errorcode, /* */ val = 0, ACTION_NULL); |
|
|
|
REG(kreg_module_initflag, /* */ val = module_get_inited_flag(), module_set_inited_flag(val)); |
|
|
|
REG(kreg_module_enableflag, /* */ val = 1, ACTION_NULL); |
|
|
|
REG(kreg_module_last_cmd_exec_status, val = 0, ACTION_NULL); |
|
|
|
MODULE_COMMON_PROCESS_REG_CB(); |
|
|
|
PROCESS_REG(kreg_module_raw_sector_size, /* */ get_id_info_len(&val), ACTION_NONE); |
|
|
|
PROCESS_REG(kreg_module_raw_sector_num, /* */ get_raw_sector_num(&val), ACTION_NONE); |
|
|
|
|
|
|
|
default: |
|
|
|
return err::kmodule_not_find_config_index; |
|
|
|
break; |
|
|
|
} |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
int32_t M3078CodeScanner::code_scaner_start_scan() { |
|
|
|
ZLOGI(TAG, "code_scaner_start_scan"); |
|
|
|
return module_start(); |
|
|
|
} |
|
|
|
int32_t M3078CodeScanner::code_scaner_stop_scan() { |
|
|
|
ZLOGI(TAG, "code_scaner_stop_scan"); |
|
|
|
return module_stop(); |
|
|
|
} |
|
|
|
int32_t M3078CodeScanner::code_scaner_read_scaner_result(int32_t startadd, uint8_t* data, int32_t* len) { |
|
|
|
ZLOGI(TAG, "code_scaner_read_scaner_result"); |
|
|
|
if (codecachelen > *len) { |
|
|
|
return err::kbuffer_not_enough; |
|
|
|
} |
|
|
|
*len = codecachelen; |
|
|
|
memcpy(data, codecache, codecachelen); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
#endif
|
|
|
|
int32_t M3078CodeScanner::read_status() { |
|
|
|
if (m_triggerGpio.getState() == 0) { |
|
|
|
return 0; |
|
|
|