UNPKG

node-fxplc

Version:

Node.js library for low-level Mitsubishi FX (MELSEC) PLC framed protocol communication

27 lines (26 loc) 1.41 kB
"use strict"; // number-types.js // Definizione NumberType e conversioni Buffer // number-types.js // Numeric type identifiers and buffer conversion helpers. Object.defineProperty(exports, "__esModule", { value: true }); exports.NumberTypeConverters = exports.NumberType = void 0; /** Enumerates supported numeric data representations. */ exports.NumberType = Object.freeze({ WordSigned: 'WordSigned', DoubleWordSigned: 'DoubleWordSigned', WordUnsigned: 'WordUnsigned', DoubleWordUnsigned: 'DoubleWordUnsigned', Float: 'Float' }); /** * Map of NumberType -> { size, read, write } * read/write operate little-endian per FX memory convention for this implementation. */ exports.NumberTypeConverters = Object.freeze({ [exports.NumberType.WordSigned]: { size: 2, read: (b, o = 0) => b.readInt16LE(o), write: (b, o, v) => b.writeInt16LE(v, o) }, [exports.NumberType.DoubleWordSigned]: { size: 4, read: (b, o = 0) => b.readInt32LE(o), write: (b, o, v) => b.writeInt32LE(v, o) }, [exports.NumberType.WordUnsigned]: { size: 2, read: (b, o = 0) => b.readUInt16LE(o), write: (b, o, v) => b.writeUInt16LE(v, o) }, [exports.NumberType.DoubleWordUnsigned]: { size: 4, read: (b, o = 0) => b.readUInt32LE(o), write: (b, o, v) => b.writeUInt32LE(v, o) }, [exports.NumberType.Float]: { size: 4, read: (b, o = 0) => b.readFloatLE(o), write: (b, o, v) => b.writeFloatLE(v, o) } });