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