Как мне ответить на запрос на чтение или запись, используя cordova-plugin-bluetoothle?

Central - использовал этот плагин cordova для сканирования (don/cordova-plugin-ble-central)

Периферийные - использовали этот плагин cordova для рекламы моего сервиса (randdusing/cordova-plugin-bluetoothle)

Итак, у меня есть два ионных (Android) приложения. Моя цель - прочитать и написать характеристику, которую я инициализировал в своем сервисе. Я уже пытался прочитать встроенную характеристику с помощью плагина Дона и получил имя устройства. Теперь я хочу прочитать значение моей собственной характеристики. Поскольку я использовал для этого плагин Рранда, он дает этот метод,

реагировать

Ответить на запрос на чтение или запись

bluetoothle.respond(success, error, params);

Params

//This was a read
var params = {
  "requestId":0,
  "value":"UmVhZCBIZWxsbyBXb3JsZA==" //Read Hello World
};

Вот как я начинаю свою периферию для рекламы

this.platform.ready().then((readySource) => {
  this.sourceToast(readySource);
  this.bluetoothLE.initialize(this.paramsInit).then(paramsInitResult => {
    this.bleInitialize = paramsInitResult;

    this.bluetoothLE.initializePeripheral(this.paramsInitPeripheral).then(peripheral => {
      this.bleInitializePeripheral = peripheral;
      this.bluetoothLE.enable();
      this.bluetoothLE.getAdapterInfo().then(adapter => {
        this.device = adapter;

        this.bluetoothLE.addService(this.paramsService).then(params => {
          this.bleAddService = params;

        });
      });
    });
  });
});

Теперь моя проблема в том, как я буду прослушивать статус readRequested, который можно получить из initPeripheral params.

Так что, когда статус == readRequested, я надеюсь, что сделать что-то вроде этого

    let p = {
      requestId:0,
      value:"5"
    };
    this.bluetoothLE.respond(p).then(onFullfilled => {
      onFullfilled => {
        console.log(onFullfilled);
      }
    }, onrejected => {
      console.log('respond err',onrejected);
    });

И если это работает, я возвращаю значение "5", используя плагин Дона. Любой совет будет принята с благодарностью! Что касается того, почему я использовал два плагина, я считаю, что плагин don-ble-центра легче реализовать, чем Rrand.

Обновление: теперь я вижу, что, как я структурировал свой код, кажется, что каждый раз, когда я инициализирую Периферийный, он всегда возвращается к этому

{
  "request": true
  "restoreKey": "bluetoothleplugin"
}

Поэтому мне нужно, чтобы он работал на конструкторе, но я думаю, что метод запускается только один раз, поэтому я не получаю статус readRequested. Maan

0 ответов

Другие вопросы по тегам