Browse Source

#IQRV #comment GPIO提挂机添加交易码

80374374 1 year ago
parent
commit
08db838450
2 changed files with 23 additions and 8 deletions
  1. 13 5
      Module/mod_gpio/mod_gpio.cpp
  2. 10 3
      Module/mod_gpio/mod_gpio.h

+ 13 - 5
Module/mod_gpio/mod_gpio.cpp

@@ -889,6 +889,8 @@ void CGpioEntity::StartDetectWorkThread()
 	GetContextInfo* pGci = new GetContextInfo();
     /** 注意设备序号是实体内定义的逻辑,不是设备端口号,最后用作于计时器的ID去了*/
 	pGci->timerID = PHONEPICKUP;
+	m_PickUpTimeStamp = m_PutDownTimeStamp = SP::Module::Comm::RVCGetTickCount();
+	m_DoorOpenTimeStamp = m_DoorCloseTimeStamp = SP::Module::Comm::RVCGetTickCount();
 	ITimerListener* pListener = new TimerOutHelper<CGpioEntity>(this, &CGpioEntity::OnEventDetect, pGci);
 	GetFunction()->SetTimer(pGci->timerID, pListener, 100);
 }
@@ -1087,36 +1089,42 @@ void CGpioEntity::OnEventDetect(void* pData)
 	/** 机箱门开关检测*/
 	if (DetectBit(btInput, OPENSENSOR) && !m_bOpenFlag) {
 		m_bOpenFlag = true;
+		m_DoorOpenTimeStamp = SP::Module::Comm::RVCGetTickCount();
 		LogEvent(Severity_Middle, LOG_EVT_OPENSENSOR_ON, CSimpleStringA::Format("%s [Active] line: %d", GetDriverPortString(18), __LINE__));
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(GpioService_LogCode_Detect_DoorOpen)("[GPIO] The chassis door is open");
 	}
 	else if (!DetectBit(btInput, OPENSENSOR) && m_bOpenFlag) {
 		m_bOpenFlag = false;
+		m_DoorCloseTimeStamp = SP::Module::Comm::RVCGetTickCount();
 		LogEvent(Severity_Middle, LOG_EVT_OPENSENSOR_OFF, CSimpleStringA::Format("%s [InActive] line: %d", GetDriverPortString(18), __LINE__));
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(GpioService_LogCode_Detect_DoorClose).setCostTime(m_DoorCloseTimeStamp-m_DoorOpenTimeStamp)("[GPIO] The chassis door is close");
 	}
 
 	/**话机检测*/
 	if (DetectBit(btInput, PICKUPSENSOR)) {
 		if (m_ePickUpFlag == InActive) {
+			m_ePickUpFlag = Actived;
+			m_PickUpTimeStamp = SP::Module::Comm::RVCGetTickCount();
 			LogEvent(Severity_Middle, LOG_EVT_PICKUP, "Life the Phone up");
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(GpioService_LogCode_Detect_PhonePickup)("[GPIO] 话机提起");
-			m_ePickUpFlag = Actived;
 		}
 		else if (m_ePickUpFlag == UnknownStatus) {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(GpioService_LogCode_Detect_PhonePickup)("[GPIO] 话机提起(启动时)");
 			m_ePickUpFlag = Actived;
+			m_PickUpTimeStamp = SP::Module::Comm::RVCGetTickCount();
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(GpioService_LogCode_Detect_PhonePickup)("[GPIO] 话机提起(启动时)");
 		}
 	} else if (!DetectBit(btInput, PICKUPSENSOR)) {
 		if (m_ePickUpFlag == Actived) {
-			LogEvent(Severity_Middle, LOG_EVT_ONHOOK, "Put the Phone down");
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER)("话机放下");
 			m_ePickUpFlag = InActive;
+			m_PutDownTimeStamp = SP::Module::Comm::RVCGetTickCount();
+			LogEvent(Severity_Middle, LOG_EVT_ONHOOK, "Put the Phone down");
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(GpioService_LogCode_Detect_PhonePutDown).setCostTime(m_PutDownTimeStamp - m_PickUpTimeStamp)("话机放下");
 		}
 		else if (m_ePickUpFlag == UnknownStatus) {
 			m_ePickUpFlag = InActive;
+			m_PutDownTimeStamp = SP::Module::Comm::RVCGetTickCount();
 		}
 	}
-
 	/*物体靠近感知检测*/
 	if (DetectBit(btInput, MOVESENSOR)) {
 		if (!m_bMoveFlag) {

+ 10 - 3
Module/mod_gpio/mod_gpio.h

@@ -13,9 +13,11 @@
 using namespace std;
 using namespace Gpio;
 
-#define GpioService_LogCode_Detect_DoorOpen "QLR040220901"
-#define GpioService_LogCode_Detect_PhonePickup "QLR040220902"
-#define GpioService_LogCode_Detect_CardMouseJam "QLR040220903"
+#define GpioService_LogCode_Detect_DoorOpen "QLR0402209A1"
+#define GpioService_LogCode_Detect_PhonePickup "QLR0402209A2"
+#define GpioService_LogCode_Detect_CardMouseJam "QLR0402209A3"
+#define GpioService_LogCode_Detect_DoorClose "QLR0402209A4"
+#define GpioService_LogCode_Detect_PhonePutDown "QLR0402209A5"
 
 
 
@@ -227,6 +229,11 @@ private:
 	BYTE m_btLastRevcInput;
 	bool m_bVibrationFlag,m_bOpenFlag,m_bMoveFlag,m_bCardGateFlag;
 	PinActiveStatus m_ePickUpFlag;
+	unsigned long m_PickUpTimeStamp;
+	unsigned long m_PutDownTimeStamp;
+
+	unsigned long m_DoorOpenTimeStamp;
+	unsigned long m_DoorCloseTimeStamp;
 
 	bool m_bHeadLightFlag;
 	int m_headlightDevPort;