Browse Source

新增亿莱顿分机适配

weizhengliang 1 year ago
parent
commit
4acb2dfdfd

+ 6 - 0
android_bed/build.gradle

@@ -51,6 +51,12 @@ android {
             dimension "app"
             buildConfigField 'String', 'flag', '"4"'
         }
+
+        //亿莱顿可视分机
+        yld {
+            dimension "app"
+            buildConfigField 'String', 'flag', '"5"'
+        }
     }
 
     lintOptions {

+ 5 - 2
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/HardWareFactroy.java

@@ -3,6 +3,7 @@ package com.wdkl.app.ncs.callingbed.hardware;
 
 import com.wdkl.app.ncs.callingbed.BuildConfig;
 import com.wdkl.app.ncs.callingbed.hardware.imp.WdchHardTools;
+import com.wdkl.app.ncs.callingbed.hardware.imp.YldHardTools;
 import com.wdkl.app.ncs.callingbed.hardware.imp.Z3128HardTools;
 import com.wdkl.ncs.android.middleware.common.Constant;
 
@@ -15,10 +16,12 @@ public  class HardWareFactroy {
     private static HardTools hardTools;
     public static HardTools getHardTools() {
         if(null == hardTools) {
-            if( BuildConfig.flag.equals(Constant.DEV_Z_RK3128))
+            if( BuildConfig.flag.equals(Constant.DEV_Z_RK3128)) {
                 hardTools = Z3128HardTools.getInstance();
-            else if(BuildConfig.flag.equals(Constant.DEV_W_DCH)){
+            } else if(BuildConfig.flag.equals(Constant.DEV_W_DCH)) {
                 hardTools = WdchHardTools.getInstance();
+            } else if (BuildConfig.flag.equals(Constant.DEV_W_YLD)) {
+                hardTools = YldHardTools.getInstance();
             }
         }
         return hardTools ;

+ 141 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/YldHardTools.java

@@ -0,0 +1,141 @@
+package com.wdkl.app.ncs.callingbed.hardware.imp;
+
+import android.app.Application;
+import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.util.Log;
+
+import com.wdkl.app.ncs.callingbed.activity.AppUpdateActivity;
+import com.wdkl.app.ncs.callingbed.activity.CallingbedActivity;
+import com.wdkl.app.ncs.callingbed.hardware.HardTools;
+import com.wdkl.app.ncs.callingbed.helper.AppUpdateHelper;
+import com.wdkl.app.ncs.callingbed.helper.NetHelper;
+import com.wdkl.app.ncs.callingbed.helper.SOSHelper;
+import com.wdkl.app.ncs.callingbed.helper.SerialPortHelper;
+import com.wdkl.ncs.android.middleware.common.Constant;
+import com.wdkl.ncs.android.middleware.utils.AppUtil;
+
+import java.util.List;
+
+import serialporttest.utils.SerialPortUtil;
+
+/**
+ * Z-3128硬件控制类
+ *
+ * */
+public class YldHardTools extends HardTools {
+
+    public static final String HARDWDT_SERVICE = "Z3128HardTools";
+    private Application app;
+
+
+    private static class YldHardToolsHolder{
+        private final  static YldHardTools yldHardTools = new YldHardTools();
+    }
+
+    public static YldHardTools getInstance(){
+        return YldHardToolsHolder.yldHardTools;
+    }
+
+    @Override
+    public void init() {
+          SerialPortUtil.getInstance().openSerialPortYld();
+    }
+
+    @Override
+    public void unInit() {
+
+    }
+
+    @Override
+    public void resetDevice() {
+
+    }
+    @Override
+    public void resetDevicex(Application application) {
+        AppUpdateHelper.reboot(application);
+    }
+    @Override
+    public void Registration(Context context) {
+        //获取mac地址
+        Constant.LOCAL_MAC = NetHelper.getInstance().getIMEI();
+        Constant.DEVICE_REGISTER_ID = Constant.LOCAL_MAC;
+    }
+
+    @Override
+    public void setSerial(CallingbedActivity callingbedActivity) {
+        try {
+            Thread.sleep(1500); // 延时1500毫秒 (1.5秒)
+
+            SerialPortHelper.setSosLight("0");
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void uninstallApp(Context context, boolean isuninstall, String name) {
+        //卸载原来二代系统apk
+        if (isuninstall) {
+            Thread thread = new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    // 在子线程中执行的代码
+                    if (checkAppExist(context,name)) {
+                        AppUtil.uninstallApp(name);
+                    }
+                }
+            });
+        }
+    }
+
+    @Override
+    public void setSOSStart() {
+        SOSHelper.sosStart();
+    }
+
+    @Override
+    public void setSOSStop() {
+        SOSHelper.sosStop();
+    }
+    @Override
+    public void setDoorLight(int type) {
+        if (type==1){
+            //绿色
+            SerialPortHelper.setDoorLight(1, Constant.nursingColor);
+        }else if (type==2){
+            //白色
+            SerialPortHelper.setDoorLight(1, "111"); //白色
+        }else if (type==3){
+            //红色
+            SerialPortHelper.setDoorLight(1, "200"); //红色闪烁
+        }else if (type==4){
+            //红色
+            SerialPortHelper.setDoorLight(0, "000"); //关闭
+        }
+    }
+
+    @Override
+    public void installApk(AppUpdateActivity context) {
+    }
+
+    @Override
+    public void startInstallApk(AppUpdateActivity context) {
+
+    }
+
+    private boolean checkAppExist(Context context, String name) {
+        PackageManager packageManager = context.getPackageManager();
+        List<PackageInfo> packageInfoList = packageManager.getInstalledPackages(0);
+        boolean appExist = false;
+        for (PackageInfo pInfo : packageInfoList) {
+            if (name.equals(pInfo.packageName)) {
+                appExist = true;
+                break;
+            }
+        }
+        Log.e("wdkl_app", "callingdoor app exist: " + appExist);
+        return appExist;
+    }
+}

+ 0 - 2
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/helper/SOSHelper.java

@@ -26,11 +26,9 @@ public class SOSHelper {
         SerialPortHelper.setSosLight("2");
         //如果该床位绑定了紧急按钮则直接通过紧急按钮设备id发送sos请求
         if (Constant.EMERGENCY_ID != -1) {
-            //OtherUtil.sendSosCall(Constant.EMERGENCY_ID);
             TcpModel tcpModel = OtherUtil.SOSCall(Constant.EMERGENCY_ID);
             TcpClient.getInstance().sendMsg(tcpModel.toJson());
         } else {
-            //OtherUtil.sendSosCall(Constant.DEVICE_ID);
             TcpModel tcpModel = OtherUtil.RoomSOSCall(Constant.DEVICE_ID);
             TcpClient.getInstance().sendMsg(tcpModel.toJson());
         }

+ 12 - 0
app/build.gradle

@@ -71,12 +71,19 @@ android {
             applicationId "com.wdkl.app.ncs.callingdoor"
             buildConfigField 'String', 'flag', '"2"'
         }
+
         //外购 大朝华7寸
         dch_7 {
             dimension "app"
             applicationId "com.wdkl.app.ncs.callingbed2"
             buildConfigField 'String', 'flag', '"4"'
+        }
 
+        //亿莱顿可视分机
+        yld {
+            dimension "app"
+            applicationId "com.wdkl.app.ncs.callingbed2"
+            buildConfigField 'String', 'flag', '"5"'
         }
     }
 
@@ -97,6 +104,11 @@ android {
            manifest.srcFile 'src/main/AndroidManifest.xml'
         }
 
+        //亿莱顿可视分机
+        yld {
+            manifest.srcFile 'src/main/AndroidManifest.xml'
+        }
+
     }
     buildTypes {
         release {

+ 20 - 0
bedlib/src/main/java/serialporttest/utils/SerialPortUtil.java

@@ -94,7 +94,27 @@ public class SerialPortUtil {
         } catch (Exception e) {
             e.printStackTrace();
         }
+    }
 
+    //亿莱顿可视分机串口
+    public void openSerialPortYld() {
+        Log.i(TAG, "打开串口 yld rk3288");
+        try {
+            serialPort = new SerialPort();
+            serialPort.setCallback(new SerialPort.Callback() {
+                @Override
+                public void onOpen(boolean success) {
+                    //获取打开的串口中的输入输出流,以便于串口数据的收发
+                    inputStream = serialPort.getInputStream();
+                    outputStream = serialPort.getOutputStream();
+                    isOpenSerialPortUtil = true;
+                    receiveSerialPort();
+                }
+            });
+            serialPort.open(new File("/dev/ttyS1"), 115200, 0);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
     }
 
     /**

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

@@ -15,6 +15,7 @@ public class Constant {
     public static final String DEV_W_RK3288 = "2";//外购rk3288
     public static final String DEV_Z_RK3368 = "3";//自研rk3368
     public static final String DEV_W_DCH = "4";//外购大朝华
+    public static final String DEV_W_YLD = "5";//外购亿莱顿
 
     public static Integer TTSSTATE = 1;
     public static boolean OPEN_DEBUG = false;