ソースを参照

增加发送tcp数据显示,设备类型显示优化

weizhengliang 3 年 前
コミット
834e385790

+ 12 - 1
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/activity/MainActivity.kt

@@ -478,7 +478,12 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
     fun startTcp() {
         if (!TextUtils.isEmpty(Constant.TCP_SERVER_URL) && !tcpConnect) {
             tcpConnect = true
-            Thread(Runnable { TcpClient.getInstance().init(Constant.TCP_SERVER_URL, Constant.TCP_PORT, Constant.TCP_HEART_BEAT) }).start()
+            Thread(Runnable {
+                TcpClient.getInstance().init(Constant.TCP_SERVER_URL, Constant.TCP_PORT, Constant.TCP_HEART_BEAT)
+                TcpClient.getInstance().setTcpCallback {
+                    updateSendTcpInfo(it)
+                }
+            }).start()
         }
     }
 
@@ -822,6 +827,12 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
         }
     }
 
+    private fun updateSendTcpInfo(str: String) {
+        runOnUiThread {
+            tv_send_tcp_info.setText("Send TCP: $str")
+        }
+    }
+
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {

+ 13 - 5
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/adapter/BedItemAdapter.kt

@@ -8,6 +8,8 @@ import android.view.ViewGroup
 import android.widget.TextView
 import com.wdkl.app.ncs.conversion_box.R
 import com.wdkl.app.ncs.conversion_box.bean.FrameDeviceBean
+import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
+import java.lang.Exception
 
 class BedItemAdapter : RecyclerView.Adapter<BedItemAdapter.BedViewHolder> {
 
@@ -30,11 +32,17 @@ class BedItemAdapter : RecyclerView.Adapter<BedItemAdapter.BedViewHolder> {
         //holder?.bedName?.text = mainData.get(position).frameBed.fullName
         //holder?.bedAddr?.text = "地址: " + mainData.get(position).frameBed.
 
-        holder?.bedName?.text = mainData.get(position).frame.fullName
-        holder?.bedDevice?.text = mainData.get(position).device.name
-        holder?.bedType?.text = "" + mainData.get(position).device.deviceType
-        holder?.bedAddr?.text = mainData.get(position).device.ethMac
-        holder?.bed485Addr?.text = mainData.get(position).device.sipId
+        try {
+            holder?.bedName?.text = mainData.get(position).frame.fullName
+            holder?.bedDevice?.text = mainData.get(position).device.name
+            val deviceTypeEnum = DeviceTypeEnum.parse(mainData.get(position).device.deviceType)
+            holder?.bedType?.text = deviceTypeEnum.typeName()
+            holder?.bedAddr?.text = mainData.get(position).device.ethMac
+            holder?.bed485Addr?.text = mainData.get(position).device.sipId
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
+
     }
 
     override fun getItemCount(): Int {

+ 1 - 1
conversion_box/src/main/res/layout/bed_item_view.xml

@@ -23,7 +23,7 @@
         android:id="@+id/tv_bed_item_type"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:layout_weight="1"
+        android:layout_weight="2"
         android:padding="8dp"
         android:text="类型"/>
 

+ 1 - 1
conversion_box/src/main/res/layout/conversion_box_main_lay.xml

@@ -29,7 +29,7 @@
                 android:id="@+id/tv_bed_list_type"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
-                android:layout_weight="1"
+                android:layout_weight="2"
                 android:padding="8dp"
                 android:text="设备类型"
                 android:textColor="@color/main_color"/>

+ 9 - 1
conversion_box/src/main/res/layout/main_activity_layout.xml

@@ -149,7 +149,15 @@
                 android:layout_marginTop="10dp"
                 android:textSize="20sp"
                 android:textColor="@color/main_color"
-                android:text="TCP:" />
+                android:text="Received TCP:" />
+            <TextView
+                android:id="@+id/tv_send_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="Send TCP:" />
             <TextView
                 android:id="@+id/tv_serial_device"
                 android:layout_width="wrap_content"

+ 13 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/TcpClient.java

@@ -44,6 +44,8 @@ public class TcpClient {
     //tcp是否完成初始化
     private boolean inited = false;
 
+    private TcpCallBack tcpCallBack;
+
 
     //单例
     private static class TcpClientHolder{
@@ -150,6 +152,9 @@ public class TcpClient {
     public synchronized void sendMsg(String content){
         if (tcpClientHandler != null) {
             tcpClientHandler.sendMsg(content);
+            if (tcpCallBack != null) {
+                tcpCallBack.tcpMsg(content);
+            }
         }
     }
 
@@ -157,4 +162,12 @@ public class TcpClient {
     public Channel getChannel() {
         return channel;
     }
+
+    public void setTcpCallback(TcpCallBack callback) {
+        tcpCallBack = callback;
+    }
+
+    public interface TcpCallBack {
+        void tcpMsg(String msg);
+    }
 }

+ 89 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/enums/DeviceTypeEnum.java

@@ -0,0 +1,89 @@
+package com.wdkl.ncs.android.middleware.tcp.enums;
+
+/**
+ * @author wuyunfeng
+ * 2021-05-12 09:49
+ * 设备类型枚举
+ */
+
+public enum DeviceTypeEnum {
+
+    NURSE_HOST(1, "护士主机"),
+    DOCTOR_HOST(2, "医生主机"),
+    DOOR_DEVICE(3, "门口机"),
+    DIGIT_BED_DEVICE(4, "病床分机"),
+    LCD_SCREEN(5, "LCD走廊屏"),
+    LED_SCREEN(6, "LED点阵屏"),
+    NURSE_WATCH(7, "护士移动"),
+    WORKER_WATCH(8, "护工移动"),
+    USER_WATCH(9, "用户移动"),
+    CELL_PHONE(10, "手机App"),
+    TRANSFER_DEVICE(11, "总线转换盒"),
+    SIMULATE_BED_DEVICE(12, "模拟分机"),
+    SIMULATE_EMERGENCY_BUTTON(13, "模拟紧急按钮"),
+    SIMULATE_DOOR_LIGHT(14, "模拟门灯"),
+    REMOTE_CONTROL(15, "遥控器"),
+    BEACON(16, "信标"),
+    INFORMATION_BOARD(17, "信息看版"),
+    ENTRACE_GUARD(18,"门禁设备"),
+    VISITATION(19,"探视机"),
+    RS485_TRANSFER(20,"485转换盒"),
+    EMERGENCY_BUTTON(21, "紧急按钮"),
+    RS485_DEER_DEVICE(22,"485门口分机"),
+    ALARM_BODY_INDUCTIVE(23, "红外报警器"),
+    ALARM_WATER_OVERFLOW(24, "用水监控器"),
+    ALARM_HOUSEHOLD_GAS(25, "家用燃气报警器"),
+    ALARM_HOUSEHOLD_SMOKE(26, "家用烟雾报警器"),
+    ALARM_BUTTON_SOS(27, "一键报警器"),
+    DOOR_LOCK(30, "门磁传感器");
+    private int value;
+    private String typeName;
+
+
+    DeviceTypeEnum(int value, String typeName) {
+        this.value = value;
+        this.typeName = typeName;
+    }
+
+    public int value() {
+        return this.value;
+    }
+
+    public String typeName() {
+        return this.typeName;
+    }
+
+    /**
+     * 通过typeName 转换成枚举
+     *
+     * @param typeName
+     * @return
+     */
+    public static DeviceTypeEnum parse(String typeName) {
+        DeviceTypeEnum[] values = DeviceTypeEnum.values();
+        for (DeviceTypeEnum value : values) {
+            if (value.typeName().equals(typeName)) {
+                return value;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 通过value值转换成枚举
+     *
+     * @param value
+     * @return
+     */
+    public static DeviceTypeEnum parse(int value) {
+        DeviceTypeEnum[] values = DeviceTypeEnum.values();
+        for (DeviceTypeEnum deviceTypeEnum : values) {
+            if (deviceTypeEnum.value() == value) {
+                return deviceTypeEnum;
+            }
+        }
+        return null;
+    }
+
+
+}