我尝试使用writeQ函数发送超过20个字节,但它对我没用。当然我认为我做错了是我的发送功能:
$scope.sendText = function (inputText) {
var bytes = bluetoothle.stringToBytes(inputText);
var encodedString = bluetoothle.bytesToEncodedString(bytes);
if (inputText.length < 20) {
bluetoothle.write(
function (result) {
alert("data transmitted" + JSON.stringify(result));
},
function (error) {
alert("data transmission failed" + JSON.stringify(error));
},
{
value: encodedString,
service: $scope.sendCharService.serviceId,
characteristic: $scope.sendCharService.uuid,
type: "noResponse",
address: $scope.deviceId
}
);
}
else {
bluetoothle.writeQ(
function (result) {
alert("data transmitted" + JSON.stringify(result));
},
function (error) {
alert("data transmission failed" + JSON.stringify(error));
},
{
value: encodedString,
service: $scope.sendCharService.serviceId,
characteristic: $scope.sendCharService.uuid,
type: "noResponse",
address: $scope.deviceId
}
);
}
}
if语句块工作正常,但其他没有! 我错过了什么?
答案 0 :(得分:0)
我对这个框架并不熟悉,但type: "noResponse"
看起来很可疑。如果这是(GATT)无响应写入的代码,则它将不会超过20个字节,这是writeQ()
的目的。
正确使用的程序是写长特征值。