btadv: properly encode acc readings

pull/2912/head
Rob Pilling 2023-07-31 21:40:06 +01:00
parent b61e4fb137
commit 701f8c7733
2 changed files with 19 additions and 10 deletions

View File

@ -221,15 +221,20 @@ var _a;
]; ];
}; };
encodeGpsHeadingOnly_1.maxLen = 17; encodeGpsHeadingOnly_1.maxLen = 17;
var encodeXYZ = function (data) { var encodeMag_1 = function (data) {
var x = toByteArray_1(data.x, 2, true); var x = toByteArray_1(data.x, 2, true);
var y = toByteArray_1(data.y, 2, true); var y = toByteArray_1(data.y, 2, true);
var z = toByteArray_1(data.z, 2, true); var z = toByteArray_1(data.z, 2, true);
return [x[0], x[1], y[0], y[1], z[0], z[1]]; return [x[0], x[1], y[0], y[1], z[0], z[1]];
}; };
encodeXYZ.maxLen = 6; encodeMag_1.maxLen = 6;
var encodeMag_1 = encodeXYZ; var encodeAcc_1 = function (data) {
var encodeAcc_1 = encodeXYZ; var x = toByteArray_1(data.x * 1000, 2, true);
var y = toByteArray_1(data.y * 1000, 2, true);
var z = toByteArray_1(data.z * 1000, 2, true);
return [x[0], x[1], y[0], y[1], z[0], z[1]];
};
encodeAcc_1.maxLen = 6;
var toByteArray_1 = function (value, numberOfBytes, isSigned) { var toByteArray_1 = function (value, numberOfBytes, isSigned) {
var byteArray = new Array(numberOfBytes); var byteArray = new Array(numberOfBytes);
if (isSigned && (value < 0)) { if (isSigned && (value < 0)) {

View File

@ -481,19 +481,23 @@ const encodeGpsHeadingOnly: LenFunc<CompassData> = (data: CompassData) => {
}; };
encodeGpsHeadingOnly.maxLen = 17; encodeGpsHeadingOnly.maxLen = 17;
type XYZ = { x: number, y: number, z: number }; const encodeMag: LenFunc<CompassData> = (data: CompassData) => {
const encodeXYZ: LenFunc<XYZ> = (data: XYZ) => {
const x = toByteArray(data.x, 2, true); const x = toByteArray(data.x, 2, true);
const y = toByteArray(data.y, 2, true); const y = toByteArray(data.y, 2, true);
const z = toByteArray(data.z, 2, true); const z = toByteArray(data.z, 2, true);
return [ x[0]!, x[1]!, y[0]!, y[1]!, z[0]!, z[1]! ]; return [ x[0]!, x[1]!, y[0]!, y[1]!, z[0]!, z[1]! ];
}; };
encodeXYZ.maxLen = 6; encodeMag.maxLen = 6;
const encodeMag: LenFunc<CompassData> = encodeXYZ; const encodeAcc: LenFunc<AccelData> = (data: AccelData) => {
const encodeAcc: LenFunc<AccelData> = encodeXYZ; const x = toByteArray(data.x * 1000, 2, true);
const y = toByteArray(data.y * 1000, 2, true);
const z = toByteArray(data.z * 1000, 2, true);
return [ x[0]!, x[1]!, y[0]!, y[1]!, z[0]!, z[1]! ];
};
encodeAcc.maxLen = 6;
const toByteArray = (value: number, numberOfBytes: number, isSigned: boolean) => { const toByteArray = (value: number, numberOfBytes: number, isSigned: boolean) => {
const byteArray: Array<number> = new Array(numberOfBytes); const byteArray: Array<number> = new Array(numberOfBytes);