Explorar o código

#IQRV #comment [GPIO] 修改没有调用 DetectStatus 的缺陷

gifur %!s(int64=2) %!d(string=hai) anos
pai
achega
4e903c2a13
Modificáronse 2 ficheiros con 29 adicións e 15 borrados
  1. 12 1
      DevAdapter/cmbsz/gpio.1.2/gpio_impl.cpp
  2. 17 14
      Module/mod_gpio/mod_gpio.cpp

+ 12 - 1
DevAdapter/cmbsz/gpio.1.2/gpio_impl.cpp

@@ -62,6 +62,16 @@ ErrorCodeEnum GPIOClassImpl::SetStatus(DWORD dwReq, DWORD dwMode)
 
     switch (dwReq) {
     case GPIO_DEV_SN_LIGHT_CARDISSUER:
+        if (dwMode & GPIO_DEV_LIGHT_MODE_COLOR_NORMAL) { //常规颜色
+            if (dwMode & GPIO_DEV_LIGHT_MODE_LIGHT_FLICKER) { //闪烁
+
+            }
+        }
+        if (dwMode & GPIO_DEV_LIGHT_MODE_COLOR_FAULT) { //故障状态的颜色,一般为红色
+            if (dwMode & GPIO_DEV_LIGHT_MODE_LIGHT_SUSTAIN) { //常亮
+
+            }
+        }
         //....
         break;
     case GPIO_DEV_SN_LIGHT_IDCERTIFICATE:
@@ -113,7 +123,8 @@ ErrorCodeEnum GPIOClassImpl::DetectStatus(DWORD dwReq, DWORD& dwMode)
         dwMode |= GPIO_DEV_SN_SENSOR_PHONE;
     }
     if (dwReq & GPIO_DEV_SN_SENSOR_HUMAN_DETECT) {
-        //......
+        //检测是否有人,如果有人,则对应的位置为1
+        dwMode |= GPIO_DEV_SN_SENSOR_HUMAN_DETECT;
     }
     if (dwReq & GPIO_DEV_SN_SENSOR_CARD_MOUTH) {
         //......

+ 17 - 14
Module/mod_gpio/mod_gpio.cpp

@@ -108,11 +108,13 @@ void CGpioServiceSession::Handle_Set(SpOnewayCallContext<GpioService_Set_Info>::
 
 void CGpioServiceSession::Handle_GetStatus(SpReqAnsContext<GpioService_GetStatus_Req, GpioService_GetStatus_Ans>::Pointer ctx)
 {
+    DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(__FUNCTION__);
     ctx->Answer(Error_NotSupport);
 }
 
 void CGpioServiceSession::Handle_QueryCurrSet(SpReqAnsContext<GpioService_QueryCurrSet_Req, GpioService_QueryCurrSet_Ans>::Pointer ctx)
 {
+    DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(__FUNCTION__);
     ctx->Answer(Error_NotSupport);
 }
 
@@ -717,19 +719,16 @@ void CGpioEntity::GetStatus(int deviceSeq, SpReqAnsContext<GpioService_GetStatus
     /** 注意设备序号是实体内定义的逻辑,不是设备端口号,用作于计时器的ID去了*/
     DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("GetStatus with devseq %d", deviceSeq);
     if (deviceSeq == PHONEPICKUP) {
-    
-        if (!m_bFuncVer2) {
-            CSimpleStringA initDriver = "";
-            int devicePort;
-            /** 获取指定的模式,以便后续获取输入模式和持续触发模式,见 GetReceivingModInfo*/
-            initDriver = "PhoneNormal";
-            /** 获取硬件规格里对应的序号,其实是固定死的*/
-            devicePort = 18;
-            ReceivingInfo ri;
-            GetReceivingModInfo(initDriver, ri);
-            ri.Port = devicePort;
-            GetReceiving(deviceSeq, ri, PICKUPSENSOR);
-        }
+        CSimpleStringA initDriver = "";
+        int devicePort;
+        /** 获取指定的模式,以便后续获取输入模式和持续触发模式,见 GetReceivingModInfo*/
+        initDriver = "PhoneNormal";
+        /** 获取硬件规格里对应的序号,其实是固定死的*/
+        devicePort = 18;
+        ReceivingInfo ri;
+        GetReceivingModInfo(initDriver, ri);
+        ri.Port = devicePort;
+        GetReceiving(deviceSeq, ri, PICKUPSENSOR);
     }
 }
 
@@ -910,6 +909,7 @@ void CGpioEntity::OnPositiveLevelTimerOut(void* pData)
 
             /** 待商榷,这里永远不可能为1 [Gifur@2023921]*/
             if (initCtt == 1) {
+                DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("test initCtt == 1");
                 if (DetectBit(btInput, VIBRATIONSENSOR)) {
                     if (!m_bVibrationFlag && (m_eMachineType == RVC_Stand2S || m_eMachineType == RVC_Stand1SPlus)) {
                         LogEvent(Severity_Middle, LOG_EVT_VIBRATIONSENSOR,  CSimpleStringA::Format("%s [Active] line: %d", GetDriverPortString(17), __LINE__));
@@ -945,6 +945,7 @@ void CGpioEntity::OnPositiveLevelTimerOut(void* pData)
         do {
 
             if (initCtt == 1) {
+                DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("test initCtt == 1");
                 if (DetectBit(btInput, OPENSENSOR)) {
                     if (!m_bOpenFlag) {
                         if (m_eMachineType == RVC_Stand2S || m_eMachineType == RVC_Stand1SPlus)
@@ -985,7 +986,7 @@ void CGpioEntity::OnPositiveLevelTimerOut(void* pData)
         do {
 
             if (initCtt == 1) {
-
+                DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("test initCtt == 1");
                 if (m_ePickUpFlag == Unknown) {
                     if (DetectBit(btInput, PICKUPSENSOR)) m_ePickUpFlag = Actived;
                     else if (!DetectBit(btInput, PICKUPSENSOR)) m_ePickUpFlag = InActive;
@@ -1055,6 +1056,7 @@ void CGpioEntity::OnPositiveLevelTimerOut(void* pData)
 
         do {
             if (initCtt == 1) {
+                DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("test initCtt == 1");
                 if (DetectBit(btInput, MOVESENSOR)) {
                     if (m_eMachineType == RVC_Stand2S || m_eMachineType == RVC_Stand1SPlus)
                         LogEvent(Severity_Middle, LOG_EVT_MOVESENSOR_ON, CSimpleStringA::Format("%s [Active] line: %d", GetDriverPortString(20), __LINE__));
@@ -1099,6 +1101,7 @@ void CGpioEntity::OnPositiveLevelTimerOut(void* pData)
         do {
             
             if (initCtt == 1) {
+                DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("test initCtt == 1");
                 if (DetectBit(btInput, CARDGATESENSOR)) {
                     if (!m_bCardGateFlag) {
                         if (m_eMachineType == RVC_Stand2S || m_eMachineType == RVC_Stand1SPlus)