From 2952161f647a478806fc7ed0c26e8480b2dccf59 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Tue, 1 Aug 2023 17:27:07 +0800 Subject: [PATCH] update --- .../idcard_reader_service.cpp | 34 ++++++++++++---------- .../idcard_reader_service.hpp | 4 +-- components/m3078/m3078_code_scaner.cpp | 4 +-- components/m3078/m3078_code_scaner.hpp | 2 +- 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/components/iflytop_can_slave_modules/idcard_reader_service.cpp b/components/iflytop_can_slave_modules/idcard_reader_service.cpp index b435830..ccf4eb6 100644 --- a/components/iflytop_can_slave_modules/idcard_reader_service.cpp +++ b/components/iflytop_can_slave_modules/idcard_reader_service.cpp @@ -6,15 +6,15 @@ using namespace iflytop; #define TAG "IDCardReaderService" -static int32_t getPacketNumByBytesNum(int num) { return num / 4 + (num % 4 == 0 ? 0 : 1); } -static int32_t littleEndianBigEnd(int32_t data) { - int32_t ret = 0; - ret |= (data & 0xff) << 24; - ret |= (data & 0xff00) << 8; - ret |= (data & 0xff0000) >> 8; - ret |= (data & 0xff000000) >> 24; - return ret; -} +// static int32_t getPacketNumByBytesNum(int num) { return num / 4 + (num % 4 == 0 ? 0 : 1); } +// static int32_t littleEndianBigEnd(int32_t data) { +// int32_t ret = 0; +// ret |= (data & 0xff) << 24; +// ret |= (data & 0xff00) << 8; +// ret |= (data & 0xff0000) >> 8; +// ret |= (data & 0xff000000) >> 24; +// return ret; +// } void IDCardReaderService::initialize(const char* name, IflytopCanProtocolStackProcesser* protocolProcesser, int32_t regStartOff, M3078CodeScanner* codeScanner) { @@ -34,14 +34,16 @@ void IDCardReaderService::initialize(const char* name, IflytopCanProtocolStackPr m_slave = m_protocolProcesser->createICPSSlaveModule("IDCardReaderService", this, regStartOff); - m_protocolProcesser->activeReg(m_slave, +REG_CODE_SCANER_ACT_CTRL, icps::kwr, 0); - m_protocolProcesser->activeReg(m_slave, +REG_CODE_SCANER_ACT_CLEAR_EXCEPTION, icps::kwr, 0); - m_protocolProcesser->activeReg(m_slave, +REG_CODE_SCANER_STAT_STATUS, icps::kr, 0); - m_protocolProcesser->activeReg(m_slave, +REG_CODE_SCANER_STAT_EXCEPTION, icps::kr, 0); - m_codeReg = m_protocolProcesser->activeReg(m_slave, +REG_CODE_SCANER_CODE, icps::kr | icps::kextreg, 0); + m_protocolProcesser->activeReg(m_slave, REG_CODE_SCANER_ACT_CTRL, icps::kwr, 0); + m_protocolProcesser->activeReg(m_slave, REG_CODE_SCANER_ACT_CLEAR_EXCEPTION, icps::kwr, 0); + m_protocolProcesser->activeReg(m_slave, REG_CODE_SCANER_STAT_STATUS, icps::kr, 0); + m_protocolProcesser->activeReg(m_slave, REG_CODE_SCANER_STAT_EXCEPTION, icps::kr, 0); + m_codeReg = m_protocolProcesser->activeReg(m_slave, REG_CODE_SCANER_CODE, icps::kr | icps::kextreg, 0); + + ZHALCORE::getInstance()->regPeriodJob([this](ZHALCORE::Context& context) { periodicJob(); }, 1); } -icps::error_t IDCardReaderService::onHostRegisterWriteEvent(IflytopCanProtocolStackProcesser* processer, IflytopCanProtocolStackWriteEvent* event) { +icps::error_t IDCardReaderService::onHostRegisterWriteEvent(IflytopCanProtocolStackWriteEvent* event) { int regoff = event->reg->add - m_regStartOff; int val = event->newvalue; switch (regoff) { @@ -66,7 +68,7 @@ icps::error_t IDCardReaderService::onHostRegisterWriteEvent(IflytopCanProtocolSt } return icps::kRegNotWritable; } -void IDCardReaderService::onHostRegisterReportEvent(IflytopCanProtocolStackProcesser* processer, icps::ReportEvent* event) { +void IDCardReaderService::onHostRegisterReportEvent(icps::ReportEvent* event) { int regoff = event->reg->add - m_regStartOff; int32_t* val = &event->value; diff --git a/components/iflytop_can_slave_modules/idcard_reader_service.hpp b/components/iflytop_can_slave_modules/idcard_reader_service.hpp index 1b4c4f9..3f93f55 100644 --- a/components/iflytop_can_slave_modules/idcard_reader_service.hpp +++ b/components/iflytop_can_slave_modules/idcard_reader_service.hpp @@ -68,8 +68,8 @@ class IDCardReaderService : public ICPSListener { void initialize(const char* name, IflytopCanProtocolStackProcesser* protocolProcesser, int32_t regStartOff, M3078CodeScanner* codeScanner); // virtual bool isThisRegOwnToMe(IflytopCanProtocolStackProcesser* processer, icps::Reg_t* reg); - virtual icps::error_t onHostRegisterWriteEvent(IflytopCanProtocolStackProcesser* processer, IflytopCanProtocolStackWriteEvent* writeEvent); - virtual void onHostRegisterReportEvent(IflytopCanProtocolStackProcesser* processer, icps::ReportEvent* event); + virtual icps::error_t onHostRegisterWriteEvent(IflytopCanProtocolStackWriteEvent* writeEvent); + virtual void onHostRegisterReportEvent(icps::ReportEvent* event); // bool isThisRegOwnToMe(icps::Reg_t* reg); // icps::error_t processWriteEvent(icps::WriteEvent* event); diff --git a/components/m3078/m3078_code_scaner.cpp b/components/m3078/m3078_code_scaner.cpp index 17f6a4f..984e9a1 100644 --- a/components/m3078/m3078_code_scaner.cpp +++ b/components/m3078/m3078_code_scaner.cpp @@ -5,7 +5,7 @@ using namespace iflytop; using namespace std; -void M3078CodeScanner::initialize(UART_HandleTypeDef* huart, Pin_t triggerPin) { +void M3078CodeScanner::initialize(UART_HandleTypeDef* huart, Pin_t triggerPin, bool pinmirror) { ZUART::cfg_t cfg; cfg.name = "m3078"; cfg.huart = huart; @@ -20,7 +20,7 @@ void M3078CodeScanner::initialize(UART_HandleTypeDef* huart, Pin_t triggerPin) { m_isready = true; } }); - m_triggerGpio.initAsOutput(triggerPin, ZGPIO::kMode_nopull, false, false); + m_triggerGpio.initAsOutput(triggerPin, ZGPIO::kMode_nopull, pinmirror, false); m_trigger = false; m_uart.startRxIt(); diff --git a/components/m3078/m3078_code_scaner.hpp b/components/m3078/m3078_code_scaner.hpp index fb1579a..2421b2b 100644 --- a/components/m3078/m3078_code_scaner.hpp +++ b/components/m3078/m3078_code_scaner.hpp @@ -53,7 +53,7 @@ class M3078CodeScanner { * 1. 串口缓冲buffer要大于最大的一帧码的长度 * 2. 接收超时建议大于10ms */ - void initialize(UART_HandleTypeDef* huart, Pin_t triggerPin); + void initialize(UART_HandleTypeDef* huart, Pin_t triggerPin,bool pinmirror); // void regListener(onidinfo_t listener); void trigger();