weizhengliang пре 3 година
родитељ
комит
f7105eea7b

+ 27 - 7
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/activity/MainActivity.kt

@@ -138,6 +138,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
         switchFragment(R.id.callingbed2_main_frame, MainFragment(), mainFragment)
 
         tv_mac_addr.setText("MAC: " + Constant.LOCAL_MAC + ",   IP: " + NetHelper.getInstance().localIP)
+        tv_version.setText("V" + BuildConfig.VERSION_NAME)
     }
 
     override fun userLogin() {
@@ -397,7 +398,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                             //通话中直接挂断
                             gEngineKit!!.endCall()
                             Constant.CALL_STATE = Constant.CALL_STANDBY
-                        } else if (Constant.CALL_STATE == Constant.CALL_OUTGOING) {
+                        } else if (Constant.CALL_STATE == Constant.CALL_OUTGOING || Constant.CALL_STATE == Constant.CALL_OUT_SUCCESS) {
                             //呼叫时取消
                             cancelOutCall(addr)
                         }
@@ -628,6 +629,12 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
         }
     }
 
+    private fun updateTcpInfo(str: String) {
+        runOnUiThread {
+            tv_tcp_info.setText("Received TCP: " + str)
+        }
+    }
+
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
@@ -651,7 +658,7 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
 
                     Handler().postDelayed({
                         joinAudioCall()
-                    }, 500)
+                    }, 300)
                 }
             }
 
@@ -678,7 +685,8 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
             Constant.EVENT_TCP_MSG -> {
                 if (messageEvent.message is TcpModel) {
                     val tcpModel = messageEvent.message as TcpModel
-                    Log.d("TCP", "received tcp action: " + tcpModel.action + ", type: " + tcpModel.type)
+                    //Log.d("TCP", "received tcp action: " + tcpModel.action + ", type: " + tcpModel.type)
+                    updateTcpInfo("action: " + tcpModel.action + ", type: " + tcpModel.type + ", fromId: " + tcpModel.fromId)
                     if (tcpModel.getType() == TcpType.VOICE) {
                         val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
                         if (tcpModel.action == TcpAction.VoiceAction.CALL) {
@@ -686,6 +694,13 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                             fromId = tcpModel.fromId
                             curDeviceUart = interactionVO.toEthMac
                             curInteractionVO = interactionVO
+
+                            //关闭门灯
+                            val doorAddr = getDoorLightAddr(interactionVO.toEthMac)
+                            if (!TextUtils.isEmpty(doorAddr)) {
+                                SerialPortHelper.closeDoorLight(doorAddr)
+                            }
+
                             //todo
                             updateCallText("收到来电")
                             Constant.CALL_STATE = Constant.CALL_INCOMING
@@ -715,8 +730,11 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                         } else if (tcpModel.getAction() == TcpAction.VoiceAction.SUCCESS) {
                             //呼叫成功
                             //curDeviceUart = interactionVO.fromEthMac
-                            curInteractionVO = interactionVO
-                            updateCallText("呼叫成功,等待接听-->" + interactionVO.fromEthMac + ", " + interactionVO.fromDeviceId)
+                            if (Constant.CALL_STATE == Constant.CALL_OUTGOING) {
+                                Constant.CALL_STATE = Constant.CALL_OUT_SUCCESS
+                                curInteractionVO = interactionVO
+                                updateCallText("呼叫成功,等待接听-->" + interactionVO.fromEthMac + ", " + interactionVO.fromDeviceId)
+                            }
                             //开启门灯
                             val doorAddr = getDoorLightAddr(interactionVO.fromEthMac)
                             if (!TextUtils.isEmpty(doorAddr)) {
@@ -730,10 +748,10 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                                 showMessage("对方拒绝")
                                 //关闭分机呼叫和门灯
                                 SerialPortHelper.closeSoundChannel(interactionVO.fromEthMac)
-                                /*val doorAddr = getDoorLightAddr(interactionVO.fromEthMac)
+                                val doorAddr = getDoorLightAddr(interactionVO.fromEthMac)
                                 if (!TextUtils.isEmpty(doorAddr)) {
                                     SerialPortHelper.closeDoorLight(doorAddr)
-                                }*/
+                                }
                             }
                         } else if (tcpModel.getAction() == TcpAction.VoiceAction.CALLING) {
                             //我方呼出,对方通话中
@@ -786,6 +804,8 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                             if (Constant.PART_ID != null) {
                                 presenter.loadPartSettings(Constant.PART_ID)
                             }
+                        } else if (tcpModel.action == TcpAction.DeviceAction.DEVICE_REFRESH) {
+                            initDevice()
                         }
                     } else if (tcpModel.action == TcpAction.DataAction.REFRESH) {
                         //重新加载数据,比如出院,入院等

+ 17 - 0
conversion_box/src/main/res/layout/main_activity_layout.xml

@@ -66,6 +66,15 @@
                 android:text="升级"
                 android:textColor="@drawable/selector_bottom_btn_text_color"
                 android:textSize="24sp"/>
+
+            <TextView
+                android:id="@+id/tv_version"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:text="V1.0"
+                android:textColor="@drawable/selector_bottom_btn_text_color"
+                android:textSize="24sp"/>
         </RelativeLayout>
 
         <!--fragment区域-->
@@ -122,6 +131,14 @@
                 android:textSize="20sp"
                 android:textColor="@color/main_color"
                 android:text="串口:"/>
+            <TextView
+                android:id="@+id/tv_tcp_info"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp"
+                android:textSize="20sp"
+                android:textColor="@color/main_color"
+                android:text="TCP:"/>
         </LinearLayout>
 
         <!--通话界面-->

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

@@ -28,14 +28,17 @@ public class Constant {
     //待机
     public final static int CALL_STANDBY = 0;
 
-    //呼叫
+    //呼叫
     public final static int CALL_OUTGOING = 1;
 
+    //呼叫成功
+    public final static int CALL_OUT_SUCCESS = 2;
+
     //来电中
-    public final static int CALL_INCOMING = 2;
+    public final static int CALL_INCOMING = 3;
 
     //通话中
-    public final static int CALL_CALLING = 3;
+    public final static int CALL_CALLING = 4;
 
     //通话状态
     public static int CALL_STATE = CALL_STANDBY;