Browse Source

update

master
zhaohe 2 years ago
parent
commit
2952161f64
  1. 34
      components/iflytop_can_slave_modules/idcard_reader_service.cpp
  2. 4
      components/iflytop_can_slave_modules/idcard_reader_service.hpp
  3. 4
      components/m3078/m3078_code_scaner.cpp
  4. 2
      components/m3078/m3078_code_scaner.hpp

34
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;

4
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);

4
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();

2
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();

Loading…
Cancel
Save