Browse Source

隐藏图标,添加部分三色灯代码

zhenghao 1 year ago
parent
commit
e9164c0018

+ 63 - 1
app/src/main/java/com/naz/sdkdemo/MainActivity.java

@@ -35,13 +35,17 @@ import com.clj.fastble.utils.HexUtil;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
+import com.naz.sdkdemo.activity.UpTrademarkActivity;
 import com.naz.sdkdemo.activity.ble.comm.ObserverManager;
 import com.naz.sdkdemo.base.BaseActivity;
 import com.naz.sdkdemo.bean.PrintModule;
 import com.naz.sdkdemo.bean.PrintModule2;
 import com.naz.sdkdemo.bean.PrintModule3;
+import com.naz.sdkdemo.helper.SerialPortManager;
 import com.naz.sdkdemo.http.ApiHelper;
 import com.naz.sdkdemo.utils.MyTools;
+import com.naz.sdkdemo.utils.SerialUtil;
+import com.naz.sdkdemo.weight.UserCache;
 import com.tencent.smtt.export.external.interfaces.WebResourceError;
 import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
 import com.tencent.smtt.sdk.WebSettings;
@@ -88,7 +92,9 @@ public class MainActivity extends BaseActivity {
 
     private Button printBtn;
     private Button connectBtn;
-
+    private Button connectLight;
+    private Button turnOnLight;
+    private Button closeLight;
     private TSPLPrinter printer;
 
     String savePath;
@@ -256,6 +262,32 @@ public class MainActivity extends BaseActivity {
                 connectUSB(searchUsb());
             }
         });
+        connectLight = findViewById(R.id.connect2);
+        turnOnLight = findViewById(R.id.light);
+        connectLight.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                connectLight();
+            }
+        });
+        turnOnLight.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (serialPortManager != null){
+                    serialPortManager.turnOnLight(6);
+                }
+            }
+        });
+        closeLight = findViewById(R.id.closeLight);
+        closeLight.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (serialPortManager!=null){
+                    serialPortManager.close();
+                    serialPortManager = null;
+                }
+            }
+        });
 
         findViewById(R.id.take_photo).setOnClickListener(new View.OnClickListener(){
             @Override
@@ -293,6 +325,7 @@ public class MainActivity extends BaseActivity {
 //                startActivity(new Intent(MainActivity.this, CaremaActivity.class));
             }
         });
+
     }
 
     private AndroidInterface aIn;
@@ -1088,6 +1121,35 @@ public class MainActivity extends BaseActivity {
         }
     };
 
+    private SerialPortManager serialPortManager;
+
+    private void connectLight(){
+        if (serialPortManager == null){
+            serialPortManager = new SerialPortManager();
+            serialPortManager.init(MainActivity.this, UserCache.getSerialName(), UserCache.getSerialRate(), new SerialPortManager.SerialCallBack() {
+                @Override
+                public void dataCallBack(String data) {
+                    Log.e("--------->","------->data="+data);
+                }
+
+                @Override
+                public void openCallBack(int code) {
+                    Log.e("--------->","------->openCallBack code="+code);
+                    if (code == 1){
+
+                    }else {
+                        Toast.makeText(MainActivity.this, "串口未打开", Toast.LENGTH_SHORT).show();
+                    }
+                }
+
+                @Override
+                public void closeCallBack(int code) {
+
+                }
+            });
+        }
+    }
+
     @Override
     protected void onDestroy() {
         super.onDestroy();

+ 92 - 1
app/src/main/java/com/naz/sdkdemo/helper/SerialPortManager.java

@@ -18,7 +18,7 @@ import tp.xmaihh.serialport.bean.ComBean;
 import tp.xmaihh.serialport.utils.ByteUtil;
 
 public class SerialPortManager {
-    private SerialHelper serialHelper;
+    public SerialHelper serialHelper;
     private Context context;
     private Handler mHandler;
     private SerialCallBack mCallBack;
@@ -134,6 +134,96 @@ public class SerialPortManager {
         serialHelper.send(SerialUtil.hexStringToByteArray(hexStr+SerialUtil.getCRC(Objects.requireNonNull(SerialUtil.hexStringToByteArray(hexStr)))));
     }
 
+    //type
+    //1打开黄灯 2关闭黄灯 3黄灯闪烁 4打开绿灯 5关闭绿灯 6绿灯闪烁 7打开红灯 8关闭红灯 9红灯闪烁
+    //10打开蜂鸣 11间断蜂鸣 12打开红灯+蜂鸣 13打开红灯+蜂鸣 14关闭红灯+蜂鸣 15红灯闪烁+蜂鸣
+    //16打开全部 17关闭全部 18全部闪烁
+    // 打开黄灯:A0 01 01 A2
+    //关闭黄灯:A0 01 00 A1
+    //黄灯闪烁:A0 01 02 A3
+    //打开绿灯:A0 02 01 A3
+    //关闭绿灯:A0 02 00 A2
+    //绿灯闪烁:A0 02 02 A4
+    //打开红灯:A0 03 01 A4
+    //关闭红灯:A0 03 00 A3
+    //红灯闪烁:A0 03 02 A5
+    //打开蜂鸣:A0 04 01 A5
+    //关闭蜂鸣:A0 04 00 A4
+    //间断蜂鸣:A0 04 02 A6
+    //打开红灯+蜂鸣:A0 07 01 A8
+    //关闭红灯+蜂鸣:A0 07 00 A7
+    //红灯闪烁+蜂鸣:A0 07 02 A9
+    //打开全部:A0 00 01 A1
+    //关闭全部:A0 00 00 A0
+    //全部闪烁:A0 00 02 A2
+    public void turnOnLight(int type){
+        if (context == null){
+            return;
+        }
+        if (!serialHelper.isOpen()) {
+            Toast.makeText(context, "串口未打开", Toast.LENGTH_SHORT).show();
+            return;
+        }
+        String hexStr = "";
+        switch (type){
+            case 1:
+                hexStr="A00101A2";
+                break;
+            case 2:
+                hexStr="A00100A1";
+                break;
+            case 3:
+                hexStr="A00102A3";
+                break;
+            case 4:
+                hexStr="A00201A3";
+                break;
+            case 5:
+                hexStr="A00200A2";
+                break;
+            case 6:
+                hexStr="A00202A4";
+                break;
+            case 7:
+                hexStr="A00301A4";
+                break;
+            case 8:
+                hexStr="A00300A3";
+                break;
+            case 9:
+                hexStr="A00302A5";
+                break;
+            case 10:
+                hexStr="A00401A5";
+                break;
+            case 11:
+                hexStr="A00400A4";
+                break;
+            case 12:
+                hexStr="A00402A6";
+                break;
+            case 13:
+                hexStr="A00701A8";
+                break;
+            case 14:
+                hexStr="A00700A7";
+                break;
+            case 15:
+                hexStr="A00702A9";
+                break;
+            case 16:
+                hexStr="A00001A1";
+                break;
+            case 17:
+                hexStr="A00000A0";
+                break;
+            case 18:
+                hexStr="A00002A2";
+                break;
+        }
+
+        serialHelper.send(SerialUtil.hexStringToByteArray(hexStr+SerialUtil.getCRC(Objects.requireNonNull(SerialUtil.hexStringToByteArray(hexStr)))));
+    }
     //打开串口
     private void open(){
         if (serialHelper.isOpen()) {
@@ -155,6 +245,7 @@ public class SerialPortManager {
     public void close(){
         if (serialHelper.isOpen()) {
             serialHelper.close();
+            serialHelper = null;
         }
         if (mHandler!=null){
             mHandler.removeCallbacksAndMessages(null);

+ 9 - 5
app/src/main/java/com/naz/sdkdemo/weight/UserCache.java

@@ -1,12 +1,15 @@
 package com.naz.sdkdemo.weight;
 
 import android.text.TextUtils;
+import android.util.Log;
 
 import com.google.gson.Gson;
 import com.naz.sdkdemo.bean.UserDetail;
 import com.naz.sdkdemo.comm.Constants;
 import com.naz.sdkdemo.utils.SPUtils;
 
+import android_serialport_api.SerialPortFinder;
+
 /**
  * Description:
  * Author: ydd
@@ -87,11 +90,12 @@ public class UserCache extends SPUtils {
     }
 
     public static String getSerialName() {
-        String str = getString(Constants.SERIAL_NAME);
-        if (!TextUtils.isEmpty(str)) {
-            return str;
-        } else {
-            return  "/dev/ttyACM0";
+        SerialPortFinder finder = new SerialPortFinder();
+        if (finder.getAllDevicesPath().length>0){
+            Log.e("------------>","---------->finder.getAllDevicesPath()="+finder.getAllDevicesPath());
+            String sName = finder.getAllDevicesPath()[0];
+            return sName;
         }
+        return "";
     }
 }

+ 36 - 2
app/src/main/res/layout/activity_home_web.xml

@@ -55,7 +55,7 @@
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         android:text="打印"
-        />
+        android:visibility="gone"/>
 
     <Button
         android:id="@+id/connect"
@@ -65,7 +65,41 @@
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toBottomOf="@id/print"
         android:text="连接"
-        android:layout_marginTop="20dp"/>
+        android:layout_marginTop="20dp"
+        android:visibility="gone"/>
+
+    <Button
+        android:id="@+id/connect2"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@id/connect"
+        android:text="连接灯"
+        android:layout_marginTop="20dp"
+        android:visibility="gone"/>
+
+    <Button
+        android:id="@+id/light"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@id/connect2"
+        android:text="打开灯"
+        android:layout_marginTop="20dp"
+        android:visibility="gone"/>
+
+    <Button
+        android:id="@+id/closeLight"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@id/light"
+        android:text="关闭灯"
+        android:layout_marginTop="20dp"
+        android:visibility="gone"/>
 
     <Button
         android:id="@+id/take_photo"