ojousima.ruuvi_endpoints.ts
Version:
Experiments with RuuviTags and TS
36 lines (31 loc) • 1.24 kB
text/typescript
import { AccelerationBroadcast } from '../accelerationbroadcast';
import { dfacparser } from '../ojousima_endpoint_ac';
/* https://gist.github.com/tauzen/3d18825ae41ff3fc8981 */
function hexStringToByte(str: string): Uint8Array {
if (!str) {
return new Uint8Array(0);
}
let a: number[] = [];
for (let i: number = 0, len = str.length; i < len; i += 2) {
a.push(parseInt(str.substr(i, 2), 16));
}
return new Uint8Array(a);
}
test('test_dfbadecode_is_valid', () => {
let data: Uint8Array = hexStringToByte('AC00007900790079007900790079007900790079AF100001');
let tag: AccelerationBroadcast = dfacparser(data);
expect(tag.version).toBe(0);
expect(tag.dataFormat).toBe(0xac);
expect(tag.p2pXG).toBeCloseTo(0.121, 3);
expect(tag.p2pYG).toBeCloseTo(0.121, 3);
expect(tag.p2pZG).toBeCloseTo(0.121, 3);
expect(tag.rmsXG).toBeCloseTo(0.121, 2);
expect(tag.rmsYG).toBeCloseTo(0.121, 2);
expect(tag.rmsZG).toBeCloseTo(0.121, 3);
expect(tag.devXG).toBeCloseTo(0.121, 2);
expect(tag.devYG).toBeCloseTo(0.121, 2);
expect(tag.devZG).toBeCloseTo(0.121, 3);
expect(tag.batteryVoltageV).toBeCloseTo(3.0, 3);
expect(tag.temperatureC).toBeCloseTo(16, 3);
expect(tag.measurementSequence).toBe(1);
});