From 17cc2b9834511d39716098e4d26d14906e15e558 Mon Sep 17 00:00:00 2001 From: liamcottle Date: Fri, 14 Feb 2025 12:35:10 +1300 Subject: [PATCH] add helper functions that wait for ok or error response --- src/connection/connection.js | 93 ++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/src/connection/connection.js b/src/connection/connection.js index 5dae842..bd94102 100644 --- a/src/connection/connection.js +++ b/src/connection/connection.js @@ -334,6 +334,99 @@ class Connection extends EventEmitter { await this.sendCommandSendSelfAdvert(Constants.SelfAdvertTypes.ZeroHop); } + setAdvertName(name) { + return new Promise(async (resolve, reject) => { + try { + + // resolve promise when we receive ok + const onOk = () => { + this.off(Constants.ResponseCodes.Ok, onOk); + this.off(Constants.ResponseCodes.Err, onErr); + resolve(); + } + + // reject promise when we receive err + const onErr = () => { + this.off(Constants.ResponseCodes.Ok, onOk); + this.off(Constants.ResponseCodes.Err, onErr); + reject(); + } + + // listen for events + this.once(Constants.ResponseCodes.Ok, onOk); + this.once(Constants.ResponseCodes.Err, onErr); + + // set advert name + await this.sendCommandSetAdvertName(name); + + } catch(e) { + reject(e); + } + }); + } + + setTxPower(txPower) { + return new Promise(async (resolve, reject) => { + try { + + // resolve promise when we receive ok + const onOk = () => { + this.off(Constants.ResponseCodes.Ok, onOk); + this.off(Constants.ResponseCodes.Err, onErr); + resolve(); + } + + // reject promise when we receive err + const onErr = () => { + this.off(Constants.ResponseCodes.Ok, onOk); + this.off(Constants.ResponseCodes.Err, onErr); + reject(); + } + + // listen for events + this.once(Constants.ResponseCodes.Ok, onOk); + this.once(Constants.ResponseCodes.Err, onErr); + + // set tx power + await this.sendCommandSetTxPower(txPower); + + } catch(e) { + reject(e); + } + }); + } + + setRadioParams(radioFreq, radioBw, radioSf, radioCr) { + return new Promise(async (resolve, reject) => { + try { + + // resolve promise when we receive ok + const onOk = () => { + this.off(Constants.ResponseCodes.Ok, onOk); + this.off(Constants.ResponseCodes.Err, onErr); + resolve(); + } + + // reject promise when we receive err + const onErr = () => { + this.off(Constants.ResponseCodes.Ok, onOk); + this.off(Constants.ResponseCodes.Err, onErr); + reject(); + } + + // listen for events + this.once(Constants.ResponseCodes.Ok, onOk); + this.once(Constants.ResponseCodes.Err, onErr); + + // set tx power + await this.sendCommandSetRadioParams(radioFreq, radioBw, radioSf, radioCr); + + } catch(e) { + reject(e); + } + }); + } + getContacts() { return new Promise(async (resolve, reject) => {