瀏覽代碼

增加签到护理功能,同时按分机手柄按键和面板按键时进入护理,门灯亮,再次同时按分机手柄按键和面板按键时退出护理,门灯灭。功能暂时未开启

weizhengliang 2 年之前
父節點
當前提交
f0edc36070

+ 30 - 2
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/activity/MainActivity.kt

@@ -116,6 +116,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
 
     private var sosList = ArrayList<SosItem>()
     private var outCallList = ArrayList<String>()
+    private var nursingRooms = ArrayList<String>()
 
     private var serverIp = ""
 
@@ -884,6 +885,15 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                             }
                         }
                     }
+
+                    "Q" -> {
+                        //签到指令,类似护理功能
+                        if (Constant.nursingSign) {
+                            //SerialPortHelper.receivedQCheck(addr)
+                            //如果该房间不在护理中则将门灯置为护理状态,否则退出护理状态并熄灭门灯
+                            checkNursingRoom(addr)
+                        }
+                    }
                 }
             } else {
                 //这里实际上是执行了“E”指令
@@ -1031,6 +1041,24 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
         }
     }
 
+    private fun checkNursingRoom(addr: String) {
+        //通过分机地址查找该房间的门灯设备
+        val doorLightAddr = getDoorLightAddr(addr)
+        if (nursingRooms.contains(doorLightAddr)) {
+            //关闭该门灯
+            if (!TextUtils.isEmpty(doorLightAddr)) {
+                SerialPortHelper.closeDoorLight(doorLightAddr)
+                nursingRooms.remove(doorLightAddr)
+            }
+        } else {
+            //点亮门灯
+            if (!TextUtils.isEmpty(doorLightAddr)) {
+                SerialPortHelper.openDoorLightGreen(doorLightAddr)
+                nursingRooms.add(doorLightAddr!!)
+            }
+        }
+    }
+
 
     //创建会话
     /*private fun startSipCall(targetId: String): Boolean {
@@ -1137,7 +1165,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                                 if (TcpAction.SideAction.SOS_CALL == tcpModel.action) {
                                     SerialPortHelper.openDoorLightRed(frameDevice.device.ethMac)
                                 } else {
-                                    if (Constant.colorLight) {
+                                    if (Constant.colorLight && !Constant.nursingSign) {
                                         SerialPortHelper.openDoorLightGreen(frameDevice.device.ethMac)
                                     } else {
                                         SerialPortHelper.openDoorLightRed(frameDevice.device.ethMac)
@@ -1371,7 +1399,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                             //开启门灯
                             val doorAddr = getDoorLightAddr(interactionVO.fromEthMac.toUpperCase(Locale.ROOT))
                             if (!TextUtils.isEmpty(doorAddr)) {
-                                if (Constant.colorLight) {
+                                if (Constant.colorLight && !Constant.nursingSign) {
                                     SerialPortHelper.openDoorLightGreen(doorAddr)
                                 } else {
                                     SerialPortHelper.openDoorLightRed(doorAddr)

+ 8 - 0
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/fragment/MainFragment.kt

@@ -1,5 +1,6 @@
 package com.wdkl.app.ncs.conversion_box.fragment
 
+import android.text.TextUtils
 import android.util.Log
 import com.alibaba.android.vlayout.VirtualLayoutManager
 import com.enation.javashop.net.engine.model.NetState
@@ -9,6 +10,7 @@ import com.wdkl.app.ncs.conversion_box.bean.FrameDeviceBean
 import com.wdkl.app.ncs.conversion_box.databinding.ConversionBoxMainLayBinding
 import com.wdkl.app.ncs.conversion_box.helper.FrameHelper
 import com.wdkl.app.ncs.conversion_box.helper.NetHelper
+import com.wdkl.app.ncs.conversion_box.helper.SerialPortHelper
 import com.wdkl.app.ncs.conversion_box.launch.MainLaunch
 import com.wdkl.ncs.android.lib.base.BaseFragment
 import com.wdkl.ncs.android.lib.utils.errorLog
@@ -19,6 +21,7 @@ import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.logic.contract.conversion_box.MainFragmentContract
 import com.wdkl.ncs.android.middleware.logic.presenter.conversion_box.MainFragmentPresenter
 import com.wdkl.ncs.android.middleware.model.vo.*
+import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
 import kotlinx.android.synthetic.main.conversion_box_main_lay.*
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
@@ -70,6 +73,11 @@ class MainFragment: BaseFragment<MainFragmentPresenter, ConversionBoxMainLayBind
                         roomBean.frame = room.frameRoom
                         roomBean.device = roomDevice
                         FrameHelper.frameDeviceList.add(roomBean)
+
+                        //关闭门灯
+                        if (roomDevice.deviceType == DeviceTypeEnum.SIMULATE_DOOR_LIGHT.value() && !TextUtils.isEmpty(roomDevice.ethMac)) {
+                            SerialPortHelper.closeDoorLight(roomDevice.ethMac)
+                        }
                     }
                 }
 

+ 8 - 0
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/helper/SerialPortHelper.java

@@ -66,6 +66,9 @@ public class SerialPortHelper {
     //关闭指定门灯
     public static void closeDoorLight(String address) {
         SerialPortUtil.getInstance().send(SerialPortUtil.C_HEARD + "8" + SerialPortUtil.C_SEPARATE + address + "F" + SerialPortUtil.C_END);
+        //if (Constant.nursingSign) {
+        //    SerialPortUtil.getInstance().send(SerialPortUtil.C_HEARD + "W" + SerialPortUtil.C_SEPARATE + address + "F" + SerialPortUtil.C_END);
+        //}
     }
 
     //取消紧急呼叫
@@ -73,6 +76,11 @@ public class SerialPortHelper {
         SerialPortUtil.getInstance().send(SerialPortUtil.C_HEARD + "9" + SerialPortUtil.C_SEPARATE + address + "F" + SerialPortUtil.C_END);
     }
 
+    //签到指令确认收到
+    public static void receivedQCheck(String address) {
+        SerialPortUtil.getInstance().send(SerialPortUtil.C_HEARD + "S" + SerialPortUtil.C_SEPARATE + address + "F" + SerialPortUtil.C_END);
+    }
+
     public static void register(String address){
         SerialPortUtil.getInstance().send(SerialPortUtil.C_HEARD + "D" + SerialPortUtil.C_SEPARATE + address + "F" + SerialPortUtil.C_END);
     }

+ 3 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constant.java

@@ -105,6 +105,9 @@ public class Constant {
     //Interaction ID
     public static Integer interactionId = -1;
 
+    //是否打开签到功能
+    public static boolean nursingSign = false;
+
     /**
      * Sip注册状态
      */