1

我对 BLE 环境有点陌生,我的代码工作得很好,买我无法得到某种响应,

我会给你看代码,我会告诉你更多关于我的目标

WriteReadCharacteristic.prototype.onWriteRequest = function(data, offset, withoutResponse, callback) {
    const output = Buffer.from(data, 'hex');
    let payload = "";
    if (hasJsonStructure(String(output))) {
        payload = JSON.parse(String(output));
    }
   
    wifi.scan((error, networks) => {
        if (error) {
            console.log(error);
        } else {
            exec('sudo iwlist scan && echo '+ password);
            console.log(payload.ssid);
            networks.forEach(network =>{
                if(payload.ssid === network.ssid){
                    console.log("Success, wifi found")
                }
                else {
                    console.log("Failed, not found")
                    let data = new Buffer(31);
                    data.writeUInt32LE(this.RESULT_UNLIKELY_ERROR);
                    callback(data);
                }
            });

        }
    });
    callback(this.RESULT_SUCCESS);
};

我正在使用两个 npm 依赖项:Bleno 和 Node-wifi

当我的代码运行时,我的设备会出现,我可以通过 nRF Connect(Android 应用程序)向它发送数据

如您所见,我有一个条件,如果为真,则返回成功消息...

但是当它失败时,我想向发件人设备发回一条消息(在我的情况下,是一部电话)

编辑:不要介意 exec + sudo 行,这是针对我的 Rpi 面临的特定问题的临时修复

4

1 回答 1

0

对于写入请求,BLE 标准仅定义可以返回错误代码。没有其他的。错误代码也必须是允许的代码之一。如果需要,您可以发送带有一些错误文本的通知,或者将最后一条错误消息放在可以读取的特征中。

于 2021-01-07T08:50:03.750 回答