From a3bc6aa4fa3bad787c9fc366d6904f60265eec3b Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期三, 04 九月 2024 15:44:14 +0800 Subject: [PATCH] 登录、用户取餐 --- app/src/main/java/android_serialport_api/SerialPortUtils.java | 62 +++++++++++++++++++++++-------- 1 files changed, 46 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/android_serialport_api/SerialPortUtils.java b/app/src/main/java/android_serialport_api/SerialPortUtils.java index a94d4bd..7715848 100644 --- a/app/src/main/java/android_serialport_api/SerialPortUtils.java +++ b/app/src/main/java/android_serialport_api/SerialPortUtils.java @@ -2,10 +2,11 @@ import android.util.Log; -import com.blankj.utilcode.util.ConvertUtils; import com.blankj.utilcode.util.LogUtils; -import com.blankj.utilcode.util.ThreadUtils; +import com.lotaai.canguiayw.CThreadPoolExecutor; +import com.lotaai.canguiayw.application.App; import com.lotaai.canguiayw.common.SettingConfig; +import com.pranavpandey.android.dynamic.toasts.DynamicToast; import java.io.File; import java.io.IOException; @@ -25,18 +26,19 @@ public static String[] getAllDevices() { SerialPortFinder serialPortFinder = new SerialPortFinder(); String[] allDevices = serialPortFinder.getAllDevices(); - for (int i=0; i<allDevices.length; i++) { + for (int i = 0; i < allDevices.length; i++) { allDevices[i] = "/dev/" + allDevices[i]; - Log.d(TAG, "No." + (i+1) + " = " + allDevices[i]); + Log.d(TAG, "No." + (i + 1) + " = " + allDevices[i]); } return allDevices; } /** * 打开串口 + * * @return serialPort串口对象 */ - public SerialPort openSerialPort(String path, int baudrate){ + public SerialPort openSerialPort(final String path, final int baudrate) { try { serialPort = new SerialPort(new File(path), baudrate, 0); this.serialPortStatus = true; @@ -49,19 +51,27 @@ @Override public void run() { //判断进程是否在运行,更安全的结束进程 - while (!threadStatus){ + while (!threadStatus) { byte[] buffer = new byte[64]; int size; //读取数据的大小 try { size = inputStream.read(buffer); - if (size > 0){ - if (onDataReceiveListener!=null) { + if (size > 0) { + if (onDataReceiveListener != null) { onDataReceiveListener.onDataReceive(buffer, size); } + + // LogUtils.i(TAG, "锁串口返回:" + ConvertUtils.bytes2HexString(buffer)); } - } catch (IOException e) { - LogUtils.e(TAG, "锁串口返回run: 数据读取异常:" +e.toString()); + } catch (final IOException e) { + LogUtils.e(TAG, "锁串口返回run: 数据读取异常:" + e.toString()); + CThreadPoolExecutor.runOnMainThread(new Runnable() { + @Override + public void run() { + DynamicToast.makeSuccess(App.app, "锁串口返回run: 数据读取异常:" + e.toString(), 3).show(); + } + }); } } } @@ -69,9 +79,21 @@ SettingConfig.getInstance().getExecutor().execute(syncRunnable); } catch (IOException e) { LogUtils.e(TAG, "openSerialPort: 打开串口异常:" + e.toString()); + CThreadPoolExecutor.runOnMainThread(new Runnable() { + @Override + public void run() { + + } + }); return serialPort; } LogUtils.i(TAG, "openSerialPort: 打开串口:" + path + ", 波特率:" + baudrate); + CThreadPoolExecutor.runOnMainThread(new Runnable() { + @Override + public void run() { + DynamicToast.makeSuccess(App.app, "打开串口:" + path + ", 波特率:" + baudrate, 3).show(); + } + }); return serialPort; } @@ -87,7 +109,7 @@ this.threadStatus = true; //线程状态 serialPort.close(); } catch (IOException e) { - Log.e(TAG, "closeSerialPort: 关闭串口异常:"+e.toString()); + Log.e(TAG, "closeSerialPort: 关闭串口异常:" + e.toString()); return; } Log.d(TAG, "closeSerialPort: 关闭串口成功"); @@ -97,36 +119,44 @@ * 发送串口指令(字符串) * @param data String数据指令 */ - public void sendSerialPort(String data){ + public void sendSerialPort(String data) { byte[] sendData = data.getBytes(); //string转byte[] sendSerialPort(sendData); } public void sendSerialPort(byte[] sendData) { try { - if (sendData==null){ + if (sendData == null) { return; } this.data_ = new String(sendData); if (sendData.length > 0) { StringBuffer stringBuffer = new StringBuffer(); - for (int i=0; i<sendData.length; i++) { + for (int i = 0; i < sendData.length; i++) { stringBuffer.append(String.format("0x%02x", sendData[i]) + " "); } // LogUtils.i(TAG, "发送串口数据:" + stringBuffer.toString()); outputStream.write(sendData); outputStream.flush(); } - } catch (IOException e) { - LogUtils.e(TAG, "sendSerialPort: 串口数据发送失败:"+e.toString()); + } catch (final IOException e) { + LogUtils.e(TAG, "sendSerialPort: 串口数据发送失败:" + e.toString()); + CThreadPoolExecutor.runOnMainThread(new Runnable() { + @Override + public void run() { + DynamicToast.makeSuccess(App.app, "串口数据发送失败:" + e.toString(), 3).show(); + } + }); } } //这是写了一监听器来监听接收数据 public OnDataReceiveListener onDataReceiveListener = null; + public interface OnDataReceiveListener { void onDataReceive(byte[] buffer, int size); } + public void setOnDataReceiveListener(OnDataReceiveListener dataReceiveListener) { onDataReceiveListener = dataReceiveListener; } -- Gitblit v1.7.1