chirpstack/examples/adr_plugins/plugin_skeleton.js
Orne Brocaar 4d27c339cc Expose skip_f_cnt and device variables to ADR.
This provides more flexibility to custom ADR algorithm implementations.
E.g. the device variables can be used to store per-device variables that
might overwrite normal ADR logic.
2023-10-09 11:23:13 +01:00

58 lines
1.1 KiB
JavaScript

// This must return the name of the ADR algorithm.
export function name() {
return "Example plugin";
}
// This must return the id of the ADR algorithm.
export function id() {
return "example_id";
}
// This handles the ADR request.
//
// Input object example:
// {
// regionConfigId: "eu868",
// regionCommonName: "EU868",
// devEui: "0102030405060708",
// macVersion: "1.0.3",
// regParamsRevision: "A",
// adr: true,
// dr: 1,
// txPowerIndex: 0,
// nbTrans: 1,
// maxTxPowerIndex: 15,
// requiredSnrForDr: -17.5,
// installationMargin: 10,
// minDr: 0,
// maxDr: 5,
// skipFCntCheck: false,
// deviceVariables: {
// "varA": "value1",
// "varB": "value2",
// },
// uplinkHistory: [
// {
// "fCnt": 10,
// "maxSnr": 7.5,
// "maxRssi": -110,
// "txPowerIndex": 0,
// "gatewayCount": 3
// }
// ]
// }
//
// This function must return an object, example:
// {
// dr: 2,
// txPowerIndex: 1,
// nbTrans: 1
// }
export function handle(req) {
return {
dr: req.dr,
txPowerIndex: req.txPowerIndex,
nbTrans: req.nbTrans
};
}