无法在节点 js 上使用 BLENO 使 BLE 特性出现在主要服务中
Can not get BLE characteristics to appear for primary service using BLENO on node js
我有一个简单的应用程序,如下所示。我在 Rpi3 上的节点 js 上使用 BLENO 创建了一个主要服务并向我的服务添加了特性。
看来我的应用程序启动并运行正常。我使用了两种工具来查看我的 BLE 服务,即 Nordic nRF 应用程序和我在 Android 中编写的一个简单应用程序。
使用这些应用程序,我可以看到我的 BLE 应用程序广告,我也可以连接到它。连接后,我可以看到三个服务,两个是通用的,一个是我的 "unknown service",它具有与我在 BLE 服务器应用程序中设置的匹配的 UUID。
我遇到的问题是当我扩展我的服务时,它告诉我没有为我的服务设置特征。
如果有人可以查看下面的代码并检查我的服务中没有出现特征的可能原因,我将不胜感激。
`var bleno = require("bleno");
var BlenoPrimaryService = bleno.PrimaryService;
var Characteristic = bleno.Characteristic;
var Descriptor = bleno.Descriptor;
//var UserConfigCharecteristic = require('./user-config-characteristic');
bleno.on('stateChange', function (state) {
console.log('on -> stateChagne: ' + state);
if (state === 'poweredOn') {
console.log('ble has been powered on');
bleno.startAdvertising('rpi-ble-app', ['fffffffffffffffffffffffffffffff0']);
} else {
bleno.stopAdvertising();
}
});
bleno.on('advertisingStart', function () {
console.log('-> advertising start');
bleno.setServices([
new BlenoPrimaryService(
{
uuid: 'fffffffffffffffffffffffffffffff0',
charecteristics: [
new Characteristic({
uuid: 'fffffffffffffffffffffffffffffff1', // or 'fff1' for 16-bit
properties: ['read', 'write'], // can be a combination of 'read', 'write', 'writeWithoutResponse', 'notify', 'indicate'
secure: [], // enable security for properties, can be a combination of 'read', 'write', 'writeWithoutResponse', 'notify', 'indicate'
value: null, // optional static value, must be of type Buffer - for read only characteristics
descriptors: [],
onReadRequest: null, // optional read request handler, function(offset, callback) { ... }
onWriteRequest: null, // optional write request handler, function(data, offset, withoutResponse, callback) { ...}
onSubscribe: null, // optional notify/indicate subscribe handler, function(maxValueSize, updateValueCallback) { ...}
onUnsubscribe: null, // optional notify/indicate unsubscribe handler, function() { ...}
onNotify: null, // optional notify sent handler, function() { ...}
onIndicate: null // optional indicate confirmation received handler, function() { ...}
})
]
}
)], function (error) {
console.log('setServices: ' + (error ? 'error ' + error : 'success'));
});
});
bleno.on('servicesSet', function () {
console.log('services set.');
});`
我的 node.js 应用程序的输出是
on -> stateChagne: poweredOn
ble has been powered on
-> advertising start
services set.
setServices: success
检查这个。 https://github.com/sandeepmistry/bleno/issues/301。
但是,我的问题是服务不可见。
看来我找到问题了,我把 Characteristics 拼错了。
我是 nodejs 的新手,意识到拼写错误可能是个问题,因为如果拼写错误,您将不会覆盖,而是添加一个新的 属性.
我有一个简单的应用程序,如下所示。我在 Rpi3 上的节点 js 上使用 BLENO 创建了一个主要服务并向我的服务添加了特性。
看来我的应用程序启动并运行正常。我使用了两种工具来查看我的 BLE 服务,即 Nordic nRF 应用程序和我在 Android 中编写的一个简单应用程序。
使用这些应用程序,我可以看到我的 BLE 应用程序广告,我也可以连接到它。连接后,我可以看到三个服务,两个是通用的,一个是我的 "unknown service",它具有与我在 BLE 服务器应用程序中设置的匹配的 UUID。
我遇到的问题是当我扩展我的服务时,它告诉我没有为我的服务设置特征。
如果有人可以查看下面的代码并检查我的服务中没有出现特征的可能原因,我将不胜感激。
`var bleno = require("bleno");
var BlenoPrimaryService = bleno.PrimaryService;
var Characteristic = bleno.Characteristic;
var Descriptor = bleno.Descriptor;
//var UserConfigCharecteristic = require('./user-config-characteristic');
bleno.on('stateChange', function (state) {
console.log('on -> stateChagne: ' + state);
if (state === 'poweredOn') {
console.log('ble has been powered on');
bleno.startAdvertising('rpi-ble-app', ['fffffffffffffffffffffffffffffff0']);
} else {
bleno.stopAdvertising();
}
});
bleno.on('advertisingStart', function () {
console.log('-> advertising start');
bleno.setServices([
new BlenoPrimaryService(
{
uuid: 'fffffffffffffffffffffffffffffff0',
charecteristics: [
new Characteristic({
uuid: 'fffffffffffffffffffffffffffffff1', // or 'fff1' for 16-bit
properties: ['read', 'write'], // can be a combination of 'read', 'write', 'writeWithoutResponse', 'notify', 'indicate'
secure: [], // enable security for properties, can be a combination of 'read', 'write', 'writeWithoutResponse', 'notify', 'indicate'
value: null, // optional static value, must be of type Buffer - for read only characteristics
descriptors: [],
onReadRequest: null, // optional read request handler, function(offset, callback) { ... }
onWriteRequest: null, // optional write request handler, function(data, offset, withoutResponse, callback) { ...}
onSubscribe: null, // optional notify/indicate subscribe handler, function(maxValueSize, updateValueCallback) { ...}
onUnsubscribe: null, // optional notify/indicate unsubscribe handler, function() { ...}
onNotify: null, // optional notify sent handler, function() { ...}
onIndicate: null // optional indicate confirmation received handler, function() { ...}
})
]
}
)], function (error) {
console.log('setServices: ' + (error ? 'error ' + error : 'success'));
});
});
bleno.on('servicesSet', function () {
console.log('services set.');
});`
我的 node.js 应用程序的输出是
on -> stateChagne: poweredOn
ble has been powered on
-> advertising start
services set.
setServices: success
检查这个。 https://github.com/sandeepmistry/bleno/issues/301。 但是,我的问题是服务不可见。
看来我找到问题了,我把 Characteristics 拼错了。
我是 nodejs 的新手,意识到拼写错误可能是个问题,因为如果拼写错误,您将不会覆盖,而是添加一个新的 属性.