mirror of
https://github.com/sergeyyarkov/modbus-logger.git
synced 2026-10-11 02:18:51 +03:00
21 lines
1.0 KiB
JavaScript
21 lines
1.0 KiB
JavaScript
/**
|
|
* Read number from buffer
|
|
* @param {Buffer} buf
|
|
* @param {import("..").NumberType} type
|
|
* @param {"BE" | "LE"} order
|
|
*/
|
|
export function readNumberFromBuf(buf, type, order) {
|
|
/* Big-Endian */
|
|
if (type === 'UI16' && order === 'BE') return Buffer.from(buf).readUInt16BE();
|
|
if (type === 'I16' && order === 'BE') return Buffer.from(buf).readInt16BE();
|
|
if (type === 'UI32' && order === 'BE') return Buffer.from(buf).readUint32BE();
|
|
if (type === 'I32' && order === 'BE') return Buffer.from(buf).readInt32BE();
|
|
if (type === 'FP32' && order === 'BE') return Buffer.from(buf).readFloatBE();
|
|
|
|
/* Little-Endian */
|
|
if (type === 'UI16' && order === 'LE') return Buffer.from(buf).readUInt16LE();
|
|
if (type === 'I16' && order === 'LE') return Buffer.from(buf).readInt16LE();
|
|
if (type === 'UI32' && order === 'LE') return Buffer.from(buf).readUint32LE();
|
|
if (type === 'I32' && order === 'LE') return Buffer.from(buf).readInt32LE();
|
|
if (type === 'FP32' && order === 'LE') return Buffer.from(buf).readFloatLE();
|
|
} |