Как мне ответить на запрос на чтение или запись, используя cordova-plugin-bluetoothle? - PullRequest
0 голосов
/ 12 сентября 2018

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

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

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

ответить

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

bluetoothle.respond(success, error, 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.

Так что, когда status == 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.

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...