Pārlūkot izejas kodu

增加电源板重启功能,需要服务端开启配置开关

weizhengliang 1 gadu atpakaļ
vecāks
revīzija
9843c86531

+ 4 - 0
android_bed/src/main/h7_3128/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt

@@ -808,6 +808,10 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
                 Constant.emptyBedCallEnabled = partSetting.emptyBedCallEnabled
             }
 
+            if (partSetting.powerControl != null && partSetting.powerControl) {
+                Constant.POWER_RESET = true
+            }
+
             Constant.SLEEP_MINUTE = partSetting.sleepSecondsBed
             Constant.NIGHT_BRIGHTNESS = partSetting.nightLight
             if (sleepCountdown) {

+ 27 - 5
android_bed/src/main/h7_3128/java/com/wdkl/app/ncs/callingbed/fragment/QrCodeFragment.kt

@@ -23,6 +23,8 @@ import com.wdkl.ncs.android.middleware.api.UrlManager
 import com.wdkl.ncs.android.middleware.common.Constant
 import com.wdkl.ncs.android.middleware.logic.contract.callingbed.QrCodeFragmentContract
 import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.QrCodeFragmentPresenter
+import com.wdkl.ncs.android.middleware.tcp.TcpClient
+import com.wdkl.ncs.android.middleware.tcp.channel.DeviceUtil
 import com.wdkl.ncs.android.middleware.utils.StringUtil
 import kotlinx.android.synthetic.main.qr_code_lay.*
 import java.io.DataOutputStream
@@ -108,14 +110,14 @@ class QrCodeFragment : BaseFragment<QrCodeFragmentPresenter, QrCodeLayBinding>()
         tv_about_me.movementMethod = ScrollingMovementMethod.getInstance()
 
         if ("rk3128".equals(Build.MODEL)) {
-            if (Constant.CUSTOM_ID == -1) {
-                tv_device_test.visibility = View.VISIBLE
-            } else {
-                tv_device_test.visibility = View.GONE
-            }
+            tv_device_test.visibility = View.VISIBLE
         } else {
             tv_device_test.visibility = View.GONE
         }
+
+        if (Constant.POWER_RESET) {
+            tv_btn_power_reset.visibility = View.VISIBLE
+        }
     }
 
     override fun bindEvent() {
@@ -147,6 +149,26 @@ class QrCodeFragment : BaseFragment<QrCodeFragmentPresenter, QrCodeLayBinding>()
             }.start()
         }
 
+        tv_btn_power_reset.setOnClickListener {
+            tv_btn_power_reset.isEnabled = false
+
+            Thread {
+                try {
+                    //重启电源板
+                    val tcpModel = DeviceUtil.powerReset(Constant.DEVICE_ID)
+                    TcpClient.getInstance().sendMsg(tcpModel.toJson())
+
+                    Thread.sleep(5000)
+
+                    activity.runOnUiThread {
+                        tv_btn_power_reset.isEnabled = true
+                    }
+                } catch (ex: Exception) {
+                    //
+                }
+            }.start()
+        }
+
         //长按二维码启动camera预览
         view_qr_code.setOnLongClickListener {
             (activity as CallingbedActivity).resetSleepTime()

+ 13 - 0
android_bed/src/main/h7_3128/res/layout/qr_code_lay.xml

@@ -160,6 +160,19 @@
                     android:textSize="24sp" />
 
                 <TextView
+                    android:id="@+id/tv_btn_power_reset"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="20dp"
+                    android:background="@color/main_color"
+                    android:gravity="center_horizontal"
+                    android:padding="10dp"
+                    android:text="@string/power_reset"
+                    android:textColor="@drawable/selector_bottom_btn_text_color"
+                    android:textSize="24sp"
+                    android:visibility="gone"/>
+
+                <TextView
                     android:id="@+id/tv_btn_language_setting"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"

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

@@ -155,6 +155,9 @@ public class Constant {
     public static String nurseTitle = "责任护士";
     public static Integer nurseValid = 1;
 
+    //电源板重启开关
+    public static boolean POWER_RESET = false;
+
     public static boolean yunpai_plugin = false;
 
     //分机呼叫超时时间,默认30s

+ 165 - 32
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dos/PartSettingDO.java

@@ -208,25 +208,53 @@ public class PartSettingDO implements Serializable {
     @ApiModelProperty(value = "护士组长转接时长,单位:秒", required = false)
     private Integer transferDurationLeader;
     /**
-     *	linux分机的呼出声音音量
-     */	@Column(name = "linux_bed_volume_native" )
-    @ApiModelProperty(value="linux分机的呼出声音音量",required=false)
+     * linux分机的呼出声音音量
+     */
+    @Column(name = "linux_bed_volume_native")
+    @ApiModelProperty(value = "linux分机的呼出声音音量", required = false)
     private Integer linuxBedVolumeNative;
     /**
-     *	linux分机的呼出声音增益
-     */	@Column(name = "linux_bed_gain_size" )
-    @ApiModelProperty(value="linux分机的呼出声音增益",required=false)
+     * linux分机的呼出声音增益
+     */
+    @Column(name = "linux_bed_gain_size")
+    @ApiModelProperty(value = "linux分机的呼出声音增益", required = false)
     private Integer linuxBedGainSize;
     /**
-     *	linux门口机的呼出声音音量
-     */	@Column(name = "linux_door_volume_native" )
-    @ApiModelProperty(value="linux门口机的呼出声音音量",required=false)
+     * linux门口机的呼出声音音量
+     */
+    @Column(name = "linux_door_volume_native")
+    @ApiModelProperty(value = "linux门口机的呼出声音音量", required = false)
     private Integer linuxDoorVolumeNative;
     /**
-     *	linux门口机的呼出声音增益
-     */	@Column(name = "linux_door_gain_size" )
-    @ApiModelProperty(value="linux门口机的呼出声音增益",required=false)
+     * linux门口机的呼出声音增益
+     */
+    @Column(name = "linux_door_gain_size")
+    @ApiModelProperty(value = "linux门口机的呼出声音增益", required = false)
     private Integer linuxDoorGainSize;
+    /**
+     * 安卓分机的呼出声音音量
+     */
+    @Column(name = "android_bed_volume_native")
+    @ApiModelProperty(value = "安卓分机的呼出声音音量", required = false)
+    private Integer androidBedVolumeNative;
+    /**
+     * 安卓分机的呼出声音增益
+     */
+    @Column(name = "android_bed_gain_size")
+    @ApiModelProperty(value = "安卓分机的呼出声音增益", required = false)
+    private Integer androidBedGainSize;
+    /**
+     * 安卓门口机的呼出声音音量
+     */
+    @Column(name = "android_door_volume_native")
+    @ApiModelProperty(value = "安卓门口机的呼出声音音量", required = false)
+    private Integer androidDoorVolumeNative;
+    /**
+     * 安卓门口机的呼出声音增益
+     */
+    @Column(name = "android_door_gain_size")
+    @ApiModelProperty(value = "安卓门口机的呼出声音增益", required = false)
+    private Integer androidDoorGainSize;
 
 
     /**
@@ -321,20 +349,36 @@ public class PartSettingDO implements Serializable {
     private String customizeHospitalCallThirdName;
 
     /**
-     * 用户名字是否隐藏,0就是不隐藏,1就是隐藏
+     * 分机用户名字是否隐藏,0就是不隐藏,1就是隐藏
      */
     @Column(name = "customer_name_hidden")
     @ApiModelProperty(value = "用户名字是否隐藏,0就是不隐藏,1就是隐藏", required = false)
     private Integer customerNameHidden;
 
     /**
-     * 工作人员名字是否隐藏,0就是不隐藏,1就是隐藏
+     * 分机工作人员名字是否隐藏,0就是不隐藏,1就是隐藏
      */
     @Column(name = "clerk_name_hidden")
     @ApiModelProperty(value = "工作人员名字是否隐藏,0就是不隐藏,1就是隐藏", required = false)
     private Integer clerkNameHidden;
 
 
+    /**
+     * 门口机用户姓名是否隐藏,0就是不隐藏,1就是隐藏
+     */
+    @Column(name = "customer_name_hidden_on_door")
+    @ApiModelProperty(value = "工作人员名字是否隐藏,0就是不隐藏,1就是隐藏", required = false)
+    private Integer customerNameHiddenOnDoor;
+
+    /**
+     * 门口机工作人员名字是否隐藏,0就是不隐藏,1就是隐藏
+     */
+    @Column(name = "clerk_name_hidden_on_door")
+    @ApiModelProperty(value = "工作人员名字是否隐藏,0就是不隐藏,1就是隐藏", required = false)
+    private Integer clerkNameHiddenOnDoor;
+
+
+
     @Column(name = "doctor_title")
     @ApiModelProperty(value = "模拟分机医生标题", required = true)
     private String doctorTitle;
@@ -445,10 +489,10 @@ public class PartSettingDO implements Serializable {
     private Integer boolAllDoorStatus;
 
     /**
-     *	呼叫时是否开启所有门口机呼显示,0不开启,1开启
+     * 呼叫时是否开启所有门口机呼显示,0不开启,1开启
      */
-    @Column(name = "bool_door_light_always_on" )
-    @ApiModelProperty(value="门灯是否常亮,0否、1是",required=false)
+    @Column(name = "bool_door_light_always_on")
+    @ApiModelProperty(value = "门灯是否常亮,0否、1是", required = false)
     private Integer boolDoorLightAlwaysOn;
 
     @Column(name = "bool_led_service")
@@ -484,6 +528,29 @@ public class PartSettingDO implements Serializable {
     @ApiModelProperty(value = "iot设备产品Master-APIkey", required = false)
     private String iotProductKey;
 
+    /**
+     * 是否开启自动定位
+     */
+    @Column(name = "auto_position")
+    @ApiModelProperty(value = "是否开启自动定位", required = false)
+    private Integer autoPosition;
+
+    /**
+     * 科主任姓名
+     */
+    @Column(name = "part_director")
+    @ApiModelProperty(value = "科主任姓名", required = false)
+    private String partDirector;
+
+    /**
+     * 科室护士长
+     */
+    @Column(name = "part_nurse_head")
+    @ApiModelProperty(value = "科室护士长姓名", required = false)
+    private String partNurseHead;
+
+    @ApiModelProperty(value = "是否开启电源线路控制", required = false)
+    private Boolean powerControl;
 
     @PrimaryKeyField
     public Integer getId() {
@@ -772,6 +839,38 @@ public class PartSettingDO implements Serializable {
         this.linuxDoorGainSize = linuxDoorGainSize;
     }
 
+    public Integer getAndroidBedVolumeNative() {
+        return androidBedVolumeNative;
+    }
+
+    public void setAndroidBedVolumeNative(Integer androidBedVolumeNative) {
+        this.androidBedVolumeNative = androidBedVolumeNative;
+    }
+
+    public Integer getAndroidBedGainSize() {
+        return androidBedGainSize;
+    }
+
+    public void setAndroidBedGainSize(Integer androidBedGainSize) {
+        this.androidBedGainSize = androidBedGainSize;
+    }
+
+    public Integer getAndroidDoorVolumeNative() {
+        return androidDoorVolumeNative;
+    }
+
+    public void setAndroidDoorVolumeNative(Integer androidDoorVolumeNative) {
+        this.androidDoorVolumeNative = androidDoorVolumeNative;
+    }
+
+    public Integer getAndroidDoorGainSize() {
+        return androidDoorGainSize;
+    }
+
+    public void setAndroidDoorGainSize(Integer androidDoorGainSize) {
+        this.androidDoorGainSize = androidDoorGainSize;
+    }
+
     public Integer getCommunicationModeBed() {
         return communicationModeBed;
     }
@@ -1029,9 +1128,6 @@ public class PartSettingDO implements Serializable {
     }
 
     public Integer getRecordEnabled() {
-        if (recordEnabled == null) {
-            return 0;
-        }
         return recordEnabled;
     }
 
@@ -1040,9 +1136,6 @@ public class PartSettingDO implements Serializable {
     }
 
     public Integer getScreenLight() {
-        if (screenLight == null) {
-            return 0;
-        }
         return screenLight;
     }
 
@@ -1059,9 +1152,6 @@ public class PartSettingDO implements Serializable {
     }
 
     public Integer getBoolAllDoorStatus() {
-        if (boolAllDoorStatus == null) {
-            return 0;
-        }
         return boolAllDoorStatus;
     }
 
@@ -1070,15 +1160,13 @@ public class PartSettingDO implements Serializable {
     }
 
     public Boolean getBoolLedService() {
-        if (boolLedService == null) {
-            return false;
-        }
         return boolLedService;
     }
 
     public void setBoolLedService(Boolean boolLedService) {
         this.boolLedService = boolLedService;
     }
+
     public Integer getBoolDoorLightAlwaysOn() {
         return boolDoorLightAlwaysOn;
     }
@@ -1096,9 +1184,6 @@ public class PartSettingDO implements Serializable {
     }
 
     public Integer getEmptyBedCallEnabled() {
-        if (emptyBedCallEnabled == null) {
-            return 0;
-        }
         return emptyBedCallEnabled;
     }
 
@@ -1122,6 +1207,54 @@ public class PartSettingDO implements Serializable {
         this.iotProductKey = iotProductKey;
     }
 
+    public Integer getAutoPosition() {
+        return autoPosition;
+    }
+
+    public void setAutoPosition(Integer autoPosition) {
+        this.autoPosition = autoPosition;
+    }
+
+    public String getPartDirector() {
+        return partDirector;
+    }
+
+    public void setPartDirector(String partDirector) {
+        this.partDirector = partDirector;
+    }
+
+    public String getPartNurseHead() {
+        return partNurseHead;
+    }
+
+    public void setPartNurseHead(String partNurseHead) {
+        this.partNurseHead = partNurseHead;
+    }
+
+    public Integer getCustomerNameHiddenOnDoor() {
+        return customerNameHiddenOnDoor;
+    }
+
+    public void setCustomerNameHiddenOnDoor(Integer customerNameHiddenOnDoor) {
+        this.customerNameHiddenOnDoor = customerNameHiddenOnDoor;
+    }
+
+    public Integer getClerkNameHiddenOnDoor() {
+        return clerkNameHiddenOnDoor;
+    }
+
+    public void setClerkNameHiddenOnDoor(Integer clerkNameHiddenOnDoor) {
+        this.clerkNameHiddenOnDoor = clerkNameHiddenOnDoor;
+    }
+
+    public Boolean getPowerControl() {
+        return powerControl;
+    }
+
+    public void setPowerControl(Boolean powerControl) {
+        this.powerControl = powerControl;
+    }
+
     @Override
     public String toString() {
         return "PartSettingDO{" +

+ 1 - 3
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/DeviceChannel.java

@@ -66,9 +66,6 @@ public class DeviceChannel {
                     EventBus.getDefault().post(new MessageEvent(tcpModel, EVENT_TCP_MSG));
                 }
                 break;
-            case VIDEO:
-                EventBus.getDefault().post(new MessageEvent(tcpModel, EVENT_TCP_MSG));
-                break;
             case IM:
                 if (tcpModel.getAction()==TcpAction.IMAction.MSG){
                     //todo: 从接口重新获取左侧数据;使用通话中界面,显示有语音留言,停留3秒,结束至正常界面
@@ -92,6 +89,7 @@ public class DeviceChannel {
                     EventBus.getDefault().post(new MessageEvent(tcpModel, EVENT_TCP_MSG));
                 }
                 break;
+            case VIDEO:
             case DEVICE:
             case TIME:
             case BROADCAST:

+ 8 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/DeviceUtil.java

@@ -22,4 +22,12 @@ public class DeviceUtil {
         tcpModel.setData(connectDTO);
         return tcpModel;
     }
+
+    public static TcpModel powerReset(Integer fromId) {
+        TcpModel tcpModel = new TcpModel();
+        tcpModel.setType(TcpType.DEVICE);
+        tcpModel.setAction(TcpAction.DeviceAction.POWER_RESET);
+        tcpModel.setFromId(fromId);
+        return tcpModel;
+    }
 }

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

@@ -338,6 +338,7 @@ public interface TcpAction {
         DEVICE_CHANGE("设备更换"),
         USER_CHANGE("用户绑定"),
         SERVER_CHANGE("设备ip地址更换"),
+        POWER_RESET("3128电路复位"),
         S485_POWER_RESET("485控制版复位电路"),
         S485_POWER_RESET_SUCCESS("485控制版复位电路成功"),
         NO_MATCH("没有匹配");

+ 1 - 0
resource/src/main/res/values-es/strings.xml

@@ -146,6 +146,7 @@
     <string name="nurse_title">Enfermera</string>
     <string name="empty_title">good health</string>
     <string name="reboot_device">Reiniciar</string>
+    <string name="power_reset">Power reset</string>
     <string name="check_update">Comprobar actualización</string>
     <string name="server_config">Configuración del servidor</string>
     <string name="product_desc">Descripción del Producto:</string>

+ 1 - 0
resource/src/main/res/values-ru/strings.xml

@@ -142,6 +142,7 @@
     <string name="nurse_title">Медсестра</string>
     <string name="empty_title">доброго здоровья</string>
     <string name="reboot_device">Перезагрузить</string>
+    <string name="power_reset">Power reset</string>
     <string name="check_update">Проверить обновление</string>
     <string name="server_config">Конфигурация сервера</string>
     <string name="product_desc">Продукт:</string>

+ 1 - 0
resource/src/main/res/values-zh/strings.xml

@@ -146,6 +146,7 @@
     <string name="nurse_title">责任护士</string>
     <string name="empty_title">祝您安康</string>
     <string name="reboot_device">重启设备</string>
+    <string name="power_reset">重启电源</string>
     <string name="check_update">检查升级</string>
     <string name="server_config">服务器配置</string>
     <string name="product_desc">产品说明:</string>

+ 1 - 0
resource/src/main/res/values/strings.xml

@@ -146,6 +146,7 @@
     <string name="nurse_title">Nurse</string>
     <string name="empty_title">good health</string>
     <string name="reboot_device">Reboot</string>
+    <string name="power_reset">Power reset</string>
     <string name="check_update">Check update</string>
     <string name="server_config">Server config</string>
     <string name="product_desc">Product:</string>