serialPort.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //serialPort.js
  2. //引入第三方插件,主要是要引入其中me.f1reking.serialportlib底层d额串口操作包
  3. const serialPort = uni.requireNativePlugin('Fvv-UniSerialPort')
  4. //引入相关对象
  5. plus.android.importClass("me.f1reking.serialportlib.listener.Status")
  6. plus.android.importClass("me.f1reking.serialportlib.entity.Device")
  7. plus.android.importClass("me.f1reking.serialportlib.listener.IOpenSerialPortListener")
  8. plus.android.importClass("me.f1reking.serialportlib.listener.ISerialPortDataListener")
  9. //引入串口操作类
  10. var SerialPortHelper = plus.android.importClass("me.f1reking.serialportlib.SerialPortHelper")
  11. export const openSerialPort = (port = '/dev/ttyS9', baudRate = 9600, opt) => {
  12. //串口操作实例
  13. var ser = new SerialPortHelper()
  14. //设置串口
  15. ser.setPort(port)
  16. //设置波特率这里传d额是要数值,如果传字符串会异常的
  17. ser.setBaudRate(baudRate)
  18. //实现原生java打开串口相关的事件
  19. var iop = plus.android.implements("me.f1reking.serialportlib.listener.IOpenSerialPortListener", {
  20. "onSuccess": function(res) {
  21. console.log(res,1)
  22. opt.onSuccess && opt.onSuccess(res)
  23. },
  24. "onFail": function(res) {
  25. console.log(res,2)
  26. opt.onFail && opt.onFail(res)
  27. }
  28. })
  29. //实现原生java打开串口后数据接收/发送相关的事件
  30. var isd = plus.android.implements("me.f1reking.serialportlib.listener.ISerialPortDataListener", {
  31. "onDataReceived": function(res) {
  32. var str = String.fromCharCode.apply(null, res).trim()
  33. opt.onDataReceived && opt.onDataReceived(str)
  34. },
  35. "onDataSend": function(str) {
  36. ser.sendTxt(str)
  37. }
  38. })
  39. //配置相关内容
  40. ser.setIOpenSerialPortListener(iop)
  41. ser.setISerialPortDataListener(isd)
  42. //打开串口
  43. ser.open()
  44. }