|
|
@@ -4,6 +4,8 @@ import android.content.Context
|
|
|
import androidx.annotation.WorkerThread
|
|
|
import com.epton.sdk.SerialPort
|
|
|
import com.grkj.iscs.util.Executor
|
|
|
+import com.grkj.iscs.util.SPUtils
|
|
|
+import com.grkj.iscs.util.ToastUtils
|
|
|
import com.grkj.iscs.util.log.LogUtil
|
|
|
import java.io.File
|
|
|
import java.io.IOException
|
|
|
@@ -116,6 +118,38 @@ class PortManager private constructor(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 打开串口
|
|
|
+ * @param port 串口号,从 0 开始
|
|
|
+ * @param bps 波特率,正整数
|
|
|
+ */
|
|
|
+ @WorkerThread
|
|
|
+ fun open(port: String?, bps: Int) : PortManager? {
|
|
|
+ var blocked = true
|
|
|
+ val thread = Thread.currentThread()
|
|
|
+ Executor.delayOnMain(500) {
|
|
|
+ // 如果线程被阻塞达到 1 秒,则打断唤醒
|
|
|
+ if (blocked) {
|
|
|
+ LogUtil.w("超 0.5 秒未打开串口,打断唤醒")
|
|
|
+ thread.interrupt()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ val file = File(port)
|
|
|
+ LogUtil.i("连接 port file")
|
|
|
+ SerialPort(file, bps, 0).run {
|
|
|
+ blocked = false
|
|
|
+ LogUtil.i("建立 SerialPort")
|
|
|
+ return PortManager(inputStream, outputStream)
|
|
|
+ }
|
|
|
+ } catch (e: Exception) {
|
|
|
+ blocked = false
|
|
|
+ LogUtil.e("异常 : ${e.message}")
|
|
|
+ ToastUtils.tip("串口[${port}, ${bps}]打开失败[${e.javaClass.simpleName}]${e.message}")
|
|
|
+ return null
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 打开主控板
|
|
|
@@ -123,11 +157,17 @@ class PortManager private constructor(
|
|
|
@WorkerThread
|
|
|
fun openCtrlBord(ctx: Context) : PortManager? {
|
|
|
// TODO 端口号待定:大屏调试设备-1,小屏调试设备-0
|
|
|
- val port = 1
|
|
|
+// val port = 4
|
|
|
+// val bps = 115200
|
|
|
+// val usb = true
|
|
|
+// LogUtil.i("主控板 port = ${port}, bps = ${bps}, usb = $usb")
|
|
|
+// return open(port, bps, usb)
|
|
|
+
|
|
|
+
|
|
|
+ val port = SPUtils.getPortConfig(ctx)
|
|
|
val bps = 115200
|
|
|
- val usb = false
|
|
|
- LogUtil.i("主控板 port = ${port}, bps = ${bps}, usb = $usb")
|
|
|
- return open(port, bps, usb)
|
|
|
+ LogUtil.i("主控板 port = $port, bps = $bps")
|
|
|
+ return open(port, bps)
|
|
|
}
|
|
|
}
|
|
|
|