Quellcode durchsuchen

正式版本开机启动自动检查升级,增加485门口机可以取消分机呼叫功能,佛山项目注意开启分机自动接听

weizhengliang vor 3 Jahren
Ursprung
Commit
6484881b26

+ 2 - 2
build.gradle

@@ -47,12 +47,12 @@ buildscript {
     /**
      * APP版本码
      */
-    ext.app_version_code = 16
+    ext.app_version_code = 17
 
     /**
      * APP版本号
      */
-    ext.app_version = "1.1.3"
+    ext.app_version = "1.1.4"
 
     /**
      * 项目依赖库

+ 41 - 26
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/activity/MainActivity.kt

@@ -45,12 +45,6 @@ import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
 import com.wdkl.ncs.android.middleware.utils.AppUtil
-import com.wdkl.ncs.janus.client.CallSessionCallback
-import com.wdkl.ncs.janus.client.JanusClient
-import com.wdkl.ncs.janus.client.VideoRoomCallback
-import com.wdkl.ncs.janus.entity.Room
-import com.wdkl.ncs.janus.rtc.WebRTCEngine
-import com.wdkl.ncs.janus.util.EnumType
 import kotlinx.android.synthetic.main.conversion_box_main_lay.*
 import kotlinx.android.synthetic.main.main_activity_layout.*
 import kotlinx.android.synthetic.main.sky_voice_call_layout.*
@@ -62,9 +56,7 @@ import serialporttest.utils.SerialPort485Util
 import serialporttest.utils.SerialPortUtil
 import java.io.DataOutputStream
 import java.io.IOException
-import java.math.BigInteger
 import java.util.*
-import java.util.UUID
 import kotlin.collections.ArrayList
 
 
@@ -382,8 +374,10 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
             presenter.loadPartSettings(Constant.PART_ID)
         }
 
-        //检查版本
-        //checkAppVersion()
+        //正式版本开机启动自动检查升级
+        if (!BuildConfig.DEBUG) {
+            checkAppVersion()
+        }
     }
 
     private fun initCallTimer() {
@@ -616,22 +610,6 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
         }
     }
 
-    //分机接听后检查通话是否正常连接上
-    /*private fun checkCallSuccess() {
-        //3s还未连接上则判定为通话失败
-        Handler().postDelayed({
-            val session = gEngineKit!!.currentSession
-            if (session != null && session.state == EnumType.CallState.Connected) {
-                //连接通话成功
-            } else {
-                if (!callEnded) {
-                    showMessage("通话连接失败,通话结束")
-                    callEnd()
-                }
-            }
-        }, 3000)
-    }*/
-
     private fun startCall(uart: String) {
         if (Constant.TCP_CONNECTED) {
             //通过串口地址查找到对应分机设备id
@@ -860,6 +838,39 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
         }
     }
 
+    //取消房间所有分机呼叫
+    private fun cancelCallInRoom(roomId: Int) {
+        var bedMac = ""
+        for (frameDevice in FrameHelper.frameDeviceList) {
+            //取消分机呼叫
+            if (frameDevice.frame != null && frameDevice.frame.parentId == roomId) {
+                if (frameDevice.device != null && frameDevice.device.deviceType == DeviceTypeEnum.SIMULATE_BED_DEVICE.value()) {
+                    //取消分机呼叫
+                    VoiceUtil.cancelAudioCall(frameDevice.device.id)
+                    Log.d("tcp", "cancel bed call: " + frameDevice.frame.fullName)
+                    bedMac = frameDevice.device.ethMac.toUpperCase(Locale.ROOT)
+                    SerialPortHelper.closeSoundChannel(bedMac)
+                }
+            }
+
+            //取消紧急呼叫
+            /*if (frameDevice.frame != null && frameDevice.frame.id == roomId) {
+                if (frameDevice.device != null && frameDevice.device.deviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()) {
+                    cancelSosCall(frameDevice.device.ethMac.toUpperCase(Locale.ROOT))
+                }
+            }*/
+        }
+
+        //关闭门灯
+        if (!TextUtils.isEmpty(bedMac)) {
+            val doorAddr = getDoorLightAddr(bedMac)
+            if (!TextUtils.isEmpty(doorAddr)) {
+                SerialPortHelper.closeDoorLight(doorAddr)
+            }
+        }
+        Constant.CALL_STATE = Constant.CALL_STANDBY
+    }
+
     private fun updateCallText(str: String) {
         runOnUiThread {
             tv_call_state.setText("呼叫状态: " + str)
@@ -1118,6 +1129,10 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                             rejectCall()
                             SerialPortHelper.closeSoundChannel(ethMac)
                             RingPlayHelper.stopRingTone()
+                        } else if (tcpModel.action == TcpAction.VoiceAction.RS485CANCEL_BY_DOOR) {
+                            //门口机取消分机呼叫
+                            val frameId = tcpModel.data as String
+                            cancelCallInRoom(frameId.toInt())
                         }
                     } else if (tcpModel.type == TcpType.SOS) {
                         val sosInteractionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)

+ 6 - 1
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/helper/SerialPortHelper.java

@@ -37,11 +37,16 @@ public class SerialPortHelper {
         SerialPortUtil.getInstance().send(SerialPortUtil.C_HEARD + "6" + SerialPortUtil.C_SEPARATE + "FFFF" + "F" + SerialPortUtil.C_END);
     }
 
-    //打开指定门灯
+    //打开红色门灯
     public static void openDoorLight(String address) {
         SerialPortUtil.getInstance().send(SerialPortUtil.C_HEARD + "7" + SerialPortUtil.C_SEPARATE + address + "F" + SerialPortUtil.C_END);
     }
 
+    //打开绿色门灯
+    public static void openDoorLight2(String address) {
+        SerialPortUtil.getInstance().send(SerialPortUtil.C_HEARD + "G" + SerialPortUtil.C_SEPARATE + address + "F" + SerialPortUtil.C_END);
+    }
+
     //关闭指定门灯
     public static void closeDoorLight(String address) {
         SerialPortUtil.getInstance().send(SerialPortUtil.C_HEARD + "8" + SerialPortUtil.C_SEPARATE + address + "F" + SerialPortUtil.C_END);

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

@@ -47,6 +47,7 @@ public class Constant {
     //通话状态
     public static int CALL_STATE = CALL_STANDBY;
 
+    //佛山项目开启自动接听
     public static boolean autoAnswer = false;
 
     //MAC地址