ApiCloud-Plugin-SerialPort
使用此插件必须root
基于 xmaihh/Android-Serialport 开发的 ApiCloud 插件,Android平台上的usb串口通信插件,支持串口号、波特率、数据位、校验位、停止位、流控等参数设置,能够控制数据的收发。
apicloud
将 FvvSerialPort.zip 上传到自定义模块,打包自定义loader即可体验。
参考文档 ApiCloud上传自定义模块
使用方法
设备必须root
引用方式
var serialPort = api.require("fvvSerialPort");
API
//获取设备信息
getAllDeviceList(callback)
getAllDeviceListSync()
getAllDevicePath(callback)
getAllDevicePathSync()
//设置串口连接信息
setBaudRate(baudRate)
setStopBits(stopBits)
setDataBits(dataBits)
setParity(parity)
setFlowCon(flowCon)
//串口操作
open(string)
close()
isOpen()
//收发消息
ApiCloud监听消息
send(string)
setReceiveType(string)
setSendType(string)
获取所有设备列表 - 异步
getAllDeviceList(callback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | function | 否 | 回调函数 |
callback(arr)
参数 | 类型 | 说明 |
---|---|---|
ret.list | array | 设备列表 |
示例
serialPort.getAllDeviceList(function(res){
console.log(res.list) //设备列表
})
获取所有设备列表 - 同步
getAllDeviceListSync()
返回值 object
参数 | 类型 | 说明 |
---|---|---|
ret.list | array | 设备列表 |
示例
var list = serialPort.getAllDeviceList().list
console.log(list)
获取所有设备路径 - 异步
getAllDevicePath(callback)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | function | 否 | 回调函数 |
callback(ret)
参数 | 类型 | 说明 |
---|---|---|
ret.list | array | 路径列表 |
示例
serialPort.getAllDevicePath(function(res){
console.log(res.list) //路径列表
})
获取所有设备路径 - 同步
getAllDevicePathSync()
返回值 object
参数 | 类型 | 说明 |
---|---|---|
ret.list | array | 路径列表 |
示例
var list = serialPort.getAllDevicePathSync().list
console.log(list)
设置波特率
setBaudRate(baudRate)
参数说明
参数 | 类型 | 说明 |
---|---|---|
baudRate | int | 设置波特率,默认9600 |
示例
serialPort.setBaudRate(115200)
设置停止位
setStopBits(stopBits)
参数说明
参数 | 类型 | 说明 |
---|---|---|
stopBits | int | 设置停止位 默认值为1 |
示例
serialPort.setStopBits(1)
设置数据位
setDataBits(dataBits)
参数说明
参数 | 类型 | 说明 |
---|---|---|
dataBits | int | 设置数据位 默认值为8 |
示例
serialPort.setDataBits(8)
设置检验
setParity(parity)
参数说明
参数 | 类型 | 说明 |
---|---|---|
parity | int | 设置检验 默认值为0无校验,1奇校验,2偶校验 |
示例
serialPort.setParity(0)
设置流控
setFlowCon(flowCon)
参数说明
参数 | 类型 | 说明 |
---|---|---|
flowCon | int | 设置流控 默认值为0,1硬件,2软件 |
示例
serialPort.setFlowCon(0)
打开串口
open(path)
参数说明
参数 | 类型 | 说明 |
---|---|---|
path | string | 打开串口的路径 |
返回值
参数 | 类型 | 说明 |
---|---|---|
bool | bool | null打开失败,true打开成功 |
示例
var open = serialPort.open("/dev/ttyS1")
console.log(open)
关闭当前串口
close()
示例
serialPort.close()
获取打开状态
isOpen()
返回值
参数 | 类型 | 说明 |
---|---|---|
isOpen | bool | 当前打开状态 |
示例
var isOpen = serialPort.isOpen()
监听消息
使用 apicloud 的 api.addEventListener 进行监听
示例
api.addEventListener({
name:"FvvSerialPort" //必须监听 FvvSerialPort
}, function(ret){
var msg = ret.value //模块发送过来的消息
})
发送消息
send(string)
参数说明
参数 | 类型 | 说明 |
---|---|---|
string | string | 发送的消息 |
示例
serialPort.send("hello fvv")
设置接收消息类型
setReceiveType(string)
参数说明
参数 | 类型 | 说明 |
---|---|---|
string | string | 接收类型,默认ASCII,HEX,BYTE |
示例
serialPort.setReceiveType("HEX")
设置发送消息类型
setSendType(string)
参数说明
参数 | 类型 | 说明 |
---|---|---|
string | string | 发送消息类型,默认ASCII,HEX,BYTE |
示例
serialPort.setSendType("HEX")
android
已集成离线打包及插件开发环境,可以使用离线打包来调试插件和ApiCloud项目。
使用android studio导入此工程,run 'app' 即可体验!
参考文档 ApiCloud模块开发指南