knx-dpt
Version:
Serialize and deserialize KNX datapoints
33 lines (27 loc) • 894 B
JavaScript
const test = require('tape');
const DPTLib = require('../../../src');
var dpt = DPTLib.resolve('DPT9');
var tests = [
[[0x00, 0x02], 0.02],
[[0x87, 0xfe], -0.02],
[[0x0c, 0x24], 21.2],
[[0x0c, 0x7e], 23],
[[0x5c, 0xc4], 24985.6],
[[0xdb, 0x3c], -24985.6],
[[0x7f, 0xfe], 670433.28],
[[0xf8, 0x02], -670433.28],
];
var epsilon = 0.0001;
test('DPT9 floating point conversion', function(t) {
for (var i = 0; i < tests.length; i++) {
let buf = new Buffer(tests[i][0]);
let val = tests[i][1];
// backward test (value to raw data)
let converted = dpt.formatAPDU(val);
t.deepEqual(converted, buf, `DPT9 formatAPDU value ${val}`);
// forward test (raw data to value)
converted = dpt.fromBuffer(buf);
t.ok( Math.abs(converted - val) < 0.0001, `DPT9 fromBuffer value ${val}`);
}
t.end()
})