Cxg Bluetooth Serial
/ Title: cxgBluetoothSerial Description: cxgBluetoothSerial /
来自于:开发者立即使用
isEnabledBluetooth openBluetooth closeBluetooth listenBluetoothStatus bondedDevices isScanning scan stopScan connect disconnect connectedDevice sendData readData
论坛示例
模块demo论坛帖示例:https://community.apicloud.com/bbs/thread-147782-1-1.html
概述
蓝牙串口简介
蓝牙串口通信的基本支持。
cxgBluetoothSerial 模块概述
本模块封装了与经典单片机蓝牙模块 HC-05,HC-06 等蓝牙串口模块的通信接口。
内置心跳检测及定义了一个简单的通信协议。
模块接口
isEnabledBluetooth
获取当前的蓝牙状态
isEnabledBluetooth({}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
//当前设备是否开启蓝牙
state: true; //布尔型;true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型: 错误代码
//-1(未知错误)
//0(不支持蓝牙)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.isEnabledBluetooth({}, function(ret, err) {
if (!err) {
alert(ret.state);
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
});
可用性
Android 系统
可提供1.0.0及更高的版本
openBluetooth
打开蓝牙
openBluetooth({}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
state: true; //布尔类型 蓝牙已经打开
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
//0(没有蓝牙)
//1(未获取到activity)
//2(请求打开蓝牙)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.openBluetooth({}, function(ret, err) {
if (!err) {
alert(ret.state);
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
});
可用性
Android 系统
可提供1.0.0及更高的版本
closeBluetooth
关闭蓝牙
closeBluetooth({}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
state: true; //布尔类型
//蓝牙关闭成功
//蓝牙已经关闭
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.closeBluetooth({}, function(ret, err) {
if (!err) {
alert(ret.state);
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
});
可用性
Android 系统
可提供1.0.0及更高的版本
listenBluetoothStatus
监听蓝牙的状态变化, 多次返回
listenBluetoothStatus({}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: ""; //字符串
//STATE_TURNING_ON (蓝牙正在打开)
//STATE_ON (蓝牙已经打开)
//STATE_TURNING_OFF (蓝牙正在关闭)
//STATE_OFF (蓝牙已经关闭)
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.listenBluetoothStatus({}, function(ret, err) {
if (!err) {
alert(ret.status);
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
});
可用性
Android 系统
可提供1.0.0及更高的版本
bondedDevices
获取已经配对的设备
bondedDevices({}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
//数组 已经配对的设备
data: [
{
name: "", //字符串 蓝牙名称
address: "" //字符串 蓝牙地址
}
];
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.bondedDevices({}, function(ret, err) {
if (!err) {
alert(JSON.stringify(ret.data));
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
});
可用性
Android 系统
可提供1.0.0及更高的版本
isScanning
是否正在搜索设备
isScanning({}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
state: true; //布尔类型 true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.isScanning({}, function(ret, err) {
if (!err) {
alert(ret.state);
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
});
可用性
Android 系统
可提供1.0.0及更高的版本
scan
扫描周边设备
scan({}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
//返回搜索到的设备, 会多次返回
data: {
name:"", //蓝牙名称
address:"" //蓝牙地址
},
//搜索完成后, data 返回字符串 "ACTION_DISCOVERY_FINISHED"
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
//0(当前未打开蓝牙)
//1(请授予相关权限)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.scan({}, function(ret, err) {
if (!err) {
if (ret.data == "ACTION_DISCOVERY_FINISHED") {
alert("搜索完成");
} else {
alert(JSON.stringify(ret.data));
}
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
});
可用性
Android 系统
可提供1.0.0及更高的版本
stopScan
停止扫描周边设备
stopScan({}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
state: true; //布尔类型 只有true
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.stopScan({}, function(ret, err) {
if (!err) {
alert(ret.state);
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
});
可用性
Android 系统
可提供1.0.0及更高的版本
connect
连接到设备
connect({params}, callback(ret, err))
params
address:
- 类型:字符串
- 示例: “AB:35:57:57:34:02”
- 描述:蓝牙设备的地址
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
state: true; //布尔类型 连接成功
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
//0(未获取到蓝牙连接地址)
//1(创建socket失败)
//2(连接失败)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.connect(
{
address: "AB:35:57:57:34:02"
},
function(ret, err) {
if (!err) {
alert("连接成功");
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
}
);
可用性
Android 系统
可提供1.0.0及更高的版本
disconnect
断开连接
disconnect({}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
state: true; //布尔类型 断开成功
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.disconnect({}, function(ret, err) {
if (!err) {
alert("断开连接成功");
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
});
可用性
Android 系统
可提供1.0.0及更高的版本
connectedDevice
获取已经连接的设备
connectedDevice({}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
//已经连接的蓝牙设备, 不存在时返回 null
data: {
name:"", //设备名称
address:"" //设备地址
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.connectedDevice({}, function(ret, err) {
if (!err) {
alert(JSON.stringify(ret.data));
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
});
可用性
Android 系统
可提供1.0.0及更高的版本
sendData
发送数据
sendData({params}, callback(ret, err))
params
data:
- 类型:字符串
- 描述:需要发送的字符串
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
state: true; //波尔类型 发送成功
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
//0(参数解析失败)
//1(发送失败)
//2(未获取到socket)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.sendData(
{
data: "hello word"
},
function(ret, err) {
if (!err) {
alert("发送成功");
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
}
);
可用性
Android 系统
可提供1.0.0及更高的版本
readData
读取数据,多次返回
readData({params}, callback(ret, err))
params
bufferSize:
- 类型:数字类型, 正整数
- 默认值:256
- 描述:数据读取 buffer 的大小, 一般无需设置
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
data: "";
//字符串 读取到的数据
//数组 [eventName, dataBody, timeId, checkCode] 解析到的通信指令
//数组第一项: 事件名称 1-32个字符
//数组第二项: 数据体 1-1024个字符
//数组第三项: 数字类型, 发送数据的时间, 0-99999
//数组第四项: 数字类型, 验证码 0-99999
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;
//错误码:
//-1(未知错误)
//0(未连接到蓝牙设备)
//1(获取输入流失败)
//2(读取数据失败)
msg:"" //字符串类型;
//对应错误码的错误信息
}
示例代码
var bluetoothSerial = api.require("cxgBluetoothSerial");
bluetoothSerial.readData(
{
bufferSize: 256
},
function(ret, err) {
if (!err) {
if (typeof ret.data == "string") {
alert(ret.data);
} else {
alert(JSON.stringify(ret.data));
}
} else {
alert("code: " + err.code + " msg: " + err.msg);
}
}
);
补充说明
在设备连接成功后,手机会每秒自动向设备发送”\0”空字符,来进行心跳检测。
内置一个通信协议 “{eventName,dataBody,timeId,checkCode}” 如果接收到的数据字符串像这种形式,会自动进行解析。 示例:{info,speed=200°=90,12345,345}
eventName:事件名称 1-32个字母
dataBody: 不超过1024个字符, 并且不能含有”{},”字符
timeId: 数字类型, 下位机发送数据时的系统时间, 取值范围1-99999
checkCode: 数字类型, 该数据的校验码, 自行设计, 取值范围1-99999
可用性
Android 系统
可提供1.0.0及更高的版本