UNPKG

modbus-connect

Version:

Modbus RTU over Web Serial and Node.js SerialPort

53 lines (46 loc) 1.4 kB
// function-codes/SGM130/get-controller-time.js const { FUNCTION_CODES } = require('../../constants/constants.js'); // Код функции для получения времени const GET_CONTROLLER_TIME = FUNCTION_CODES.GET_CONTROLLER_TIME; /** * Формирует PDU-запрос для получения текущего времени контроллера. * @returns {Uint8Array} */ function buildGetControllerTimeRequest() { return new Uint8Array([GET_CONTROLLER_TIME]); } /** * Разбирает PDU-ответ от контроллера с текущим временем. * @param {Uint8Array} pdu * @returns {{ * seconds: number, * minutes: number, * hours: number, * day: number, * month: number, * year: number * }} */ function parseGetControllerTimeResponse(pdu) { if (!pdu || pdu.length !== 10 || pdu[0] !== GET_CONTROLLER_TIME) { throw new Error('Invalid response for Get Controller Time'); } const seconds = pdu[3]; const minutes = pdu[4]; const hours = pdu[5]; const day = pdu[6]; const month = pdu[7]; const year = pdu[8] + (pdu[9] << 8); return { seconds, minutes, hours, day, month, year }; } module.exports = { buildGetControllerTimeRequest, parseGetControllerTimeResponse }