From b5eed12e1e34b3b8441d4447e3bf0f30afe9a31e Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sun, 30 Jul 2023 15:41:06 +0800 Subject: [PATCH] update --- testtools/config.js | 10 ++++++---- usrc/one_dimensional_code_laser_scanner.cpp | 28 +++++++++++++++------------- usrc/one_dimensional_code_laser_scanner.hpp | 1 + 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/testtools/config.js b/testtools/config.js index 83ce37c..89f3ad5 100644 --- a/testtools/config.js +++ b/testtools/config.js @@ -12,26 +12,28 @@ const config = { 推杆电机_零点: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10101,"ctrlPointVal":0}}`, 推杆电机_推出位置: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10101,"ctrlPointVal":719133}}`, 推杆电机_扫码完成位置: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10101,"ctrlPointVal":256333}}`, + // 推杆电机_扫码速度: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10122,"ctrlPointVal":100000}}`, 推杆电机_最快速度: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10122,"ctrlPointVal":1000000}}`, 推杆电机_读取当前位置: `{"protocol":"icpsv1","message":{"type":"read","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10113,"ctrlPointVal":0}}`, 推杆电机_清空异常: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10109,"ctrlPointVal":0}}`, 推杆电机_停止: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10108,"ctrlPointVal":0}}`, + // + 板夹开始扫码: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":30000,"ctrlPointVal":1}}`, + 板夹停止扫码: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":30000,"ctrlPointVal":0}}`, + // 平移电机_正转二十分之一圈: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10002,"ctrlPointVal":2000}}`, 平移电机_反转二十分之一圈: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10002,"ctrlPointVal":-2000}}`, 平移电机_正转一圈: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10002,"ctrlPointVal":200000}}`, 平移电机_反转一圈: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10002,"ctrlPointVal":-200000}}`, 平移电机_归零: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10003,"ctrlPointVal":1000}}`, - 平移电机_位置1: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10001,"ctrlPointVal":207531}}`, - 平移电机_位置2: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10001,"ctrlPointVal":207531}}`, + 平移电机_位置2: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10001,"ctrlPointVal":225531}}`, 平移电机_读取当前位置: `{"protocol":"icpsv1","message":{"type":"read","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10013,"ctrlPointVal":0}}`, 平移电机_清空异常: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10009,"ctrlPointVal":0}}`, 平移电机_停止: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":10008,"ctrlPointVal":0}}`, 开始读卡: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":20000,"ctrlPointVal":1}}`, 连续读卡: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":20000,"ctrlPointVal":2}}`, 停止读卡: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":20000,"ctrlPointVal":0}}`, - 开始扫码: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":30000,"ctrlPointVal":1}}`, - 停止扫码: `{"protocol":"icpsv1","message":{"type":"write","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":30000,"ctrlPointVal":0}}`, 读取扫码结果: `{"protocol":"icpsv1","message":{"type":"read","targetId":133,"sourceId":1,"seq":0,"ctrlPointAddr":30007,"ctrlPointVal":0}}`, }; diff --git a/usrc/one_dimensional_code_laser_scanner.cpp b/usrc/one_dimensional_code_laser_scanner.cpp index dbca465..d31890d 100644 --- a/usrc/one_dimensional_code_laser_scanner.cpp +++ b/usrc/one_dimensional_code_laser_scanner.cpp @@ -15,29 +15,31 @@ bool m_idleLevel = true; void OneDimensionalCodeLaserScanner::initialize(IflytopCanProtocolStackProcesser* protocolProcesser, int32_t regStartOff, Pin_t triggerPin, PosReadder_t readder) { m_protocolProcesser = protocolProcesser; + m_regStartOff = regStartOff; - m_protocolProcesser->activeReg(REG_CODE_SCANER_ACT_CTRL, icps::kw, 0); - m_protocolProcesser->activeReg(REG_CODE_SCANER_ACT_CLEAR_EXCEPTION, icps::kw, 0); - m_protocolProcesser->activeReg(REG_CODE_SCANER_STAT_STATUS, icps::kr, 0); - m_protocolProcesser->activeReg(REG_CODE_SCANER_STAT_EXCEPTION, icps::kr, 0); - m_protocolProcesser->activeReg(REG_CODE_SCANER_CODE, icps::kr, 0); + m_protocolProcesser->activeReg(m_regStartOff + REG_CODE_SCANER_ACT_CTRL, icps::kw, 0); + m_protocolProcesser->activeReg(m_regStartOff + REG_CODE_SCANER_ACT_CLEAR_EXCEPTION, icps::kw, 0); + m_protocolProcesser->activeReg(m_regStartOff + REG_CODE_SCANER_STAT_STATUS, icps::kr, 0); + m_protocolProcesser->activeReg(m_regStartOff + REG_CODE_SCANER_STAT_EXCEPTION, icps::kr, 0); + m_protocolProcesser->activeReg(m_regStartOff + REG_CODE_SCANER_CODE, icps::kr, 0); m_triggerGpio.initAsInput(triggerPin, ZGPIO::kMode_nopull, ZGPIO::kIRQ_risingAndFallingIrq, false /*mirror*/); + m_triggerGpio.regListener([this](ZGPIO* GPIO_Pin, ZGPIO::IrqTypeEvent_t irqevent) { onGpioIrq(GPIO_Pin, irqevent); }); m_protocolProcesser->registerListener(this); + m_readder = readder; } bool OneDimensionalCodeLaserScanner::isThisRegOwnToMe(IflytopCanProtocolStackProcesser* processer, icps::Reg_t* reg) { // - switch (reg->add) { - case REG_CODE_SCANER_ACT_CTRL: - case REG_CODE_SCANER_ACT_CLEAR_EXCEPTION: - return true; - default: - break; + int32_t regoff = reg->add - m_regStartOff; + if (regoff >= 0 && regoff < REG_CODE_SCANER_SIZE) { + return true; } return false; } -icps::error_t OneDimensionalCodeLaserScanner::onHostRegisterWriteEvent(IflytopCanProtocolStackProcesser* processer, IflytopCanProtocolStackWriteEvent* writeEvent) { - switch (writeEvent->reg->add) { +icps::error_t OneDimensionalCodeLaserScanner::onHostRegisterWriteEvent(IflytopCanProtocolStackProcesser* processer, + IflytopCanProtocolStackWriteEvent* writeEvent) { + int32_t regoff = writeEvent->reg->add - m_regStartOff; + switch (regoff) { case REG_CODE_SCANER_ACT_CTRL: if (writeEvent->newvalue == 1) { startScan(); diff --git a/usrc/one_dimensional_code_laser_scanner.hpp b/usrc/one_dimensional_code_laser_scanner.hpp index 1ca3af7..7dcb2ab 100644 --- a/usrc/one_dimensional_code_laser_scanner.hpp +++ b/usrc/one_dimensional_code_laser_scanner.hpp @@ -28,6 +28,7 @@ class OneDimensionalCodeLaserScanner : public IflytopCanProtocolStackProcesserLi private: IflytopCanProtocolStackProcesser* m_protocolProcesser; + int m_regStartOff = 0; PosReadder_t m_readder; ZGPIO m_triggerGpio;