|
|
@@ -248,7 +248,7 @@ CSimpleStringA CombineJsonContext(const char* szMessage)
|
|
|
|
|
|
CGPIOFSM::CGPIOFSM(void) :m_bVibrationFlag(false), m_bOpenFlag(false), m_bMoveFlag(false), m_bCardGateFlag(false)
|
|
|
, m_bHeadLightFlag(false), m_headlightDevPort(4), m_moveHoldTimes(0)
|
|
|
- , m_moveDisappearTimes(0), m_eMachineType(SP::Module::Comm::RVC_UNKNOWN)
|
|
|
+ , m_moveDisappearTimes(0)
|
|
|
, m_bNewVersion(FALSE), m_bFuncVer2(FALSE), m_btLastRevcInput(-1)
|
|
|
{
|
|
|
memset(m_btOutputStatus, 0, MAX_PORT_NUM * sizeof(BYTE));
|
|
|
@@ -261,12 +261,13 @@ ErrorCodeEnum CGPIOFSM::OnInit()
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Source Code complied at: %s %s", __DATE__, __TIME__);
|
|
|
auto pEntity = GET_DEV_ENTITY_BASE_POINTER();
|
|
|
pEntity->InitializeVendorLogSwitch();
|
|
|
-
|
|
|
+ SetDevInitingFlag(true);
|
|
|
+ SetDevInitFlag(false);
|
|
|
CSimpleStringA strNoUse(true);
|
|
|
erroCode = pEntity->ExtractVendorLibFullPath(strNoUse);
|
|
|
if (erroCode != Error_Succeed) {
|
|
|
DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM)("load vendor dll or so(%s) failed, ec=%s", strNoUse.GetData(), SpStrError(erroCode));
|
|
|
- m_bOpening = false;
|
|
|
+ SetDevInitingFlag(false);
|
|
|
return Error_DevLoadFileFailed;
|
|
|
}
|
|
|
|
|
|
@@ -274,6 +275,7 @@ ErrorCodeEnum CGPIOFSM::OnInit()
|
|
|
LogWarn(Severity_Low, Error_Unexpect, GPIO_UserErrorCode_RootInfo, (LPCTSTR)m_adapterInfo.adapterFilePath);
|
|
|
erroCode = LoadUpAdapterLibrary();
|
|
|
if (erroCode != Error_Succeed) {
|
|
|
+ SetDevInitingFlag(false);
|
|
|
return erroCode;
|
|
|
}
|
|
|
|
|
|
@@ -301,7 +303,7 @@ ErrorCodeEnum CGPIOFSM::OnInit()
|
|
|
ULONGLONG ullEnd = SP::Module::Comm::RVCGetTickCount();
|
|
|
if (err == Error_Succeed) {
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::DevOpen").setCostTime(ullEnd - ullStart)("open device succ");
|
|
|
- ToLogRootINIInfo(); //WARN:这里是重新读一遍原生的root配置信息
|
|
|
+ ToLogRootINIInfo();
|
|
|
DevCategoryInfo devCatInfo;
|
|
|
ZeroMemory(devCatInfo.szModel, sizeof(devCatInfo.szModel));
|
|
|
ZeroMemory(devCatInfo.szType, sizeof(devCatInfo.szType));
|
|
|
@@ -323,7 +325,7 @@ ErrorCodeEnum CGPIOFSM::OnInit()
|
|
|
else {
|
|
|
SetErrorAndLog(err, GPIO_UserErrorCode_GetDevCategory_Failed, "DevAdapter::GetDevCategory", "FulfillAdapterDevCategory", false, ullEnd - ullStart);
|
|
|
}
|
|
|
- m_bOpened = true;
|
|
|
+ SetDevInitFlag(true);
|
|
|
break;
|
|
|
}
|
|
|
else {
|
|
|
@@ -334,8 +336,7 @@ ErrorCodeEnum CGPIOFSM::OnInit()
|
|
|
}
|
|
|
} while (initTries < MAX_GPIO_INIT_TRIES);
|
|
|
|
|
|
- m_bOpening = false;
|
|
|
- if (!m_bOpened) {
|
|
|
+ if (!GetDevInitFlag()) {
|
|
|
err = Error_DevConnFailed;
|
|
|
}
|
|
|
else {
|
|
|
@@ -367,15 +368,20 @@ ErrorCodeEnum CGPIOFSM::OnInit()
|
|
|
SetErrorAndLog(eErrDev, GPIO_UserErrorCode_SetStatus_Failed, "DevAdapter::SetStatus", __FUNCTION__, false, ullEnd - ullStart, "", CombineJsonContext("SetStatus after DevOpen"));
|
|
|
#endif //RVC_OS_LINUX
|
|
|
}
|
|
|
+ SetDevState(DEVICE_STATUS_NORMAL);
|
|
|
}
|
|
|
- m_eMachineType = SP::Module::Comm::GetTerminalMachineInfo(GetEntityBase()).type;
|
|
|
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("machine type: %s", SP::Module::Comm::Type2Str(m_eMachineType));
|
|
|
+ SetDevInitingFlag(false);
|
|
|
m_moveHoldTimes = MAX_MOVE_HOLD_TIMES;//oiltmp about 5000*300ms = 25 minutes
|
|
|
m_moveDisappearTimes = m_moveHoldTimes;
|
|
|
return err;
|
|
|
|
|
|
}
|
|
|
|
|
|
+void CGPIOFSM::AfterInit()
|
|
|
+{
|
|
|
+ StartDetectWorkThread();
|
|
|
+}
|
|
|
+
|
|
|
void CGPIOFSM::SelfTest(EntityTestEnum eTestType, CSmartPointer<ITransactionContext> pTransactionContext)
|
|
|
{
|
|
|
OnHardwareShakeHand(pTransactionContext);
|
|
|
@@ -915,11 +921,13 @@ void CGPIOFSM::OnEventDetect(void* pData)
|
|
|
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] 话机提起");
|
|
|
+ LogWarn(Severity_Low, Error_Debug, GPIO_UserErrorCode_Phone_HandUp, "话机提起");
|
|
|
}
|
|
|
else if (m_ePickUpFlag == UnknownStatus) {
|
|
|
m_ePickUpFlag = Actived;
|
|
|
m_PickUpTimeStamp = SP::Module::Comm::RVCGetTickCount();
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(GpioService_LogCode_Detect_PhonePickup)("[GPIO] 话机提起(启动时)");
|
|
|
+ LogWarn(Severity_Low, Error_Debug, GPIO_UserErrorCode_Phone_HandUp_AtBegin, "话机提起(启动时)");
|
|
|
}
|
|
|
}
|
|
|
else if (!DetectBit(btInput, PICKUPSENSOR)) {
|
|
|
@@ -927,7 +935,8 @@ void CGPIOFSM::OnEventDetect(void* pData)
|
|
|
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)("话机放下");
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode(GpioService_LogCode_Detect_PhonePutDown).setCostTime(m_PutDownTimeStamp - m_PickUpTimeStamp)("[GPIO] 话机放下");
|
|
|
+ LogWarn(Severity_Low, Error_Debug, GPIO_UserErrorCode_Phone_PutDown, "话机放下");
|
|
|
}
|
|
|
else if (m_ePickUpFlag == UnknownStatus) {
|
|
|
m_ePickUpFlag = InActive;
|