|
|
@@ -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) {
|