function getDataRateAndBandwidth() { var dr; var bw; let current = readFromRegister(L3GD20_REG_RW_CTRL_REG1, L3GD20_MASK_CTRL_REG1_DR | L3GD20_MASK_CTRL_REG1_BW); for (let drIdx in L3GD20Dictionaries.DataRateBandWidthMap) { let drKey = L3GD20Dictionaries.DataRateBandWidthMap[drIdx].dr; let drMap = L3GD20Dictionaries.DataRateBandWidthMap[drKey].bw; for (let bwIdx in drMap) { if (drMap[bwIdx].val === current) { dr = drKey; bw = drMap[bwIdx].key; return [ dr, bw ]; } } } return [ dr, bw ]; }
function setDataRateAndBandwidth(datarate, bandwidth) { var bwMap; for (let idx in L3GD20Dictionaries.DataRateBandWidthMap) { if (L3GD20Dictionaries.DataRateBandWidthMap[idx].dr === datarate) { bwMap = L3GD20Dictionaries.DataRateBandWidthMap[idx].bw; break; } } if (bwMap === undefined) { throw { err: "Data rate:[" + datarate + "] not in range of data rate values."}; } var bits; for (let idx in bwMap) { if (bwMap[idx].key === bandwidth) { bits = bwMap[idx].val; } } if (bits === undefined) { throw { err: "Bandwidth: [" + bandwidth + "] cannot be assigned to data rate: [" + datarate + "]" }; } writeToRegister(L3GD20_REG_RW_CTRL_REG1, L3GD20_MASK_CTRL_REG1_DR | L3GD20_MASK_CTRL_REG1_BW, bits); }