From 8a22b9f19f91e7b4d07956fdb86499f4ce50d36d Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sat, 6 Jul 2024 14:34:17 +0800 Subject: [PATCH] update --- chip/basic/chip_helper.cpp | 15 ++------ components/zcancmder/zcan_protocol_parser.cpp | 51 ++++++++++++++++++++++++++- components/zcancmder/zcan_protocol_parser.hpp | 11 +++++- 3 files changed, 63 insertions(+), 14 deletions(-) diff --git a/chip/basic/chip_helper.cpp b/chip/basic/chip_helper.cpp index a26ff5d..57d8972 100644 --- a/chip/basic/chip_helper.cpp +++ b/chip/basic/chip_helper.cpp @@ -1,21 +1,12 @@ #include "chip_helper.hpp" +#include "cmsis_os.h" #include "sdk\chip\basic\logger.hpp" extern "C" { static uint8_t g_port_exit_critical_count; -void chip_critical_enter(void) { - if (g_port_exit_critical_count == 0) { - __disable_irq(); - } - g_port_exit_critical_count++; -} -void chip_critical_exit(void) { - g_port_exit_critical_count--; - if (g_port_exit_critical_count == 0) { - __enable_irq(); - } -} +void chip_critical_enter(void) { portENTER_CRITICAL(); } +void chip_critical_exit(void) { portEXIT_CRITICAL(); } GPIO_TypeDef* chip_get_gpio(Pin_t pin) { int port = pin >> 4; diff --git a/components/zcancmder/zcan_protocol_parser.cpp b/components/zcancmder/zcan_protocol_parser.cpp index 09059d0..4f4fd82 100644 --- a/components/zcancmder/zcan_protocol_parser.cpp +++ b/components/zcancmder/zcan_protocol_parser.cpp @@ -117,6 +117,16 @@ void ZCanProtocolParser::initialize(IZCanReceiver* cancmder) { REGFN(a8000_optical_start_capture); REGFN(a8000_optical_read_raw); + + REGFN(a8k_opt_v2_t_start_scan); + REGFN(a8k_opt_v2_f_start_scan); + REGFN(a8k_opt_v2_t_open_laster); + REGFN(a8k_opt_v2_t_close_laster); + REGFN(a8k_opt_v2_t_readVal); + REGFN(a8k_opt_v2_f_open_laster); + REGFN(a8k_opt_v2_f_close_laster); + REGFN(a8k_opt_v2_f_readVal); + #endif REGFN(a8000_idcard_reader_read_raw); @@ -144,7 +154,7 @@ void ZCanProtocolParser::registerModule(ZIModule* module) { void ZCanProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, int32_t len) { // printf("onRceivePacket cmdid:%d moduleid:%d cmdSubId:%d\n", rxcmd->cmdMainId, rxcmd->moduleid, rxcmd->cmdSubId); uint16_t moduleid = rxcmd->moduleid; - auto it = m_modulers.find(moduleid); + auto it = m_modulers.find(moduleid); if (it == m_modulers.end()) { return; } @@ -752,6 +762,45 @@ int32_t ZCanProtocolParser::a8000_optical_read_raw(cmdcontxt_t* cxt) { return suc; } + + +int32_t ZCanProtocolParser::a8k_opt_v2_t_start_scan(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(3); + return module->a8k_opt_v2_t_start_scan(cxt->params[0], cxt->params[1], cxt->params[2]); +} +int32_t ZCanProtocolParser::a8k_opt_v2_f_start_scan(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(3); + return module->a8k_opt_v2_f_start_scan(cxt->params[0], cxt->params[1], cxt->params[2]); +} +int32_t ZCanProtocolParser::a8k_opt_v2_t_open_laster(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(2); + return module->a8k_opt_v2_t_open_laster(cxt->params[0], cxt->params[1]); +} +int32_t ZCanProtocolParser::a8k_opt_v2_t_close_laster(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(0); + return module->a8k_opt_v2_t_close_laster(); +} +int32_t ZCanProtocolParser::a8k_opt_v2_t_readVal(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(0); + int32_t* ack = (int32_t*)cxt->ackbuf; + cxt->acklen = 8; + return module->a8k_opt_v2_t_readVal(&ack[0], &ack[1]); +} +int32_t ZCanProtocolParser::a8k_opt_v2_f_open_laster(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(2); + return module->a8k_opt_v2_f_open_laster(cxt->params[0], cxt->params[1]); +} +int32_t ZCanProtocolParser::a8k_opt_v2_f_close_laster(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(0); + return module->a8k_opt_v2_f_close_laster(); +} +int32_t ZCanProtocolParser::a8k_opt_v2_f_readVal(cmdcontxt_t* cxt) { + CHECK_AND_GET_MODULE(0); + int32_t* ack = (int32_t*)cxt->ackbuf; + cxt->acklen = 8; + return module->a8k_opt_v2_f_readVal(&ack[0], &ack[1]); +} + #undef MODULE_CLASS #define MODULE_CLASS ZIA8000IDCardReaderModule diff --git a/components/zcancmder/zcan_protocol_parser.hpp b/components/zcancmder/zcan_protocol_parser.hpp index d0768f9..7dc4219 100644 --- a/components/zcancmder/zcan_protocol_parser.hpp +++ b/components/zcancmder/zcan_protocol_parser.hpp @@ -155,13 +155,22 @@ class ZCanProtocolParser : public IZCanReceiverListener { CMDFN(a8000_optical_scan_current_point_amp_adc_val); CMDFN(a8000_optical_start_capture); CMDFN(a8000_optical_read_raw); + + CMDFN(a8k_opt_v2_t_start_scan); + CMDFN(a8k_opt_v2_f_start_scan); + CMDFN(a8k_opt_v2_t_open_laster); + CMDFN(a8k_opt_v2_t_close_laster); + CMDFN(a8k_opt_v2_t_readVal); + CMDFN(a8k_opt_v2_f_open_laster); + CMDFN(a8k_opt_v2_f_close_laster); + CMDFN(a8k_opt_v2_f_readVal); + #endif CMDFN(a8000_idcard_reader_read_raw); CMDFN(a8000_idcard_write_raw); CMDFN(a8000_idcard_erase); CMDFN(a8000_idcard_earse_unlock); - CMDFN(plate_code_scaner_push_card_and_scan); CMDFN(plate_code_scaner_stop_scan);