mirror of
https://github.com/chirpstack/chirpstack.git
synced 2024-12-21 06:03:11 +00:00
4d27c339cc
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.
58 lines
1.1 KiB
JavaScript
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
|
|
};
|
|
}
|