/** * Builds a PDU for Function Code 0x01 (Read Coils). * Used to read the status of 1 to 2000 contiguous coils. * * @param {number} startAddress - The starting address (0x0000 to 0xFFFF). * @param {number} quantity - Number of coils to read (1 to 2000). * @returns {Uint8Array} The generated PDU. */ export declare const buildReadCoilsRequest: (startAddress: number, quantity: number) => Uint8Array; /** * Parses a response PDU for Function Code 0x01 (Read Coils). * Extracts bits into a boolean array. * * @param {Uint8Array} pdu - The received response PDU. * @param {number} expectedQuantity - The number of coils requested (to trim padding bits). * @returns {boolean[]} Array of boolean values representing coil states. * @throws {Error} If PDU is invalid or function code mismatch. */ export declare const parseReadCoilsResponse: (pdu: Uint8Array, expectedQuantity: number) => boolean[]; /** * Builds a PDU for Function Code 0x02 (Read Discrete Inputs). * Used to read the status of 1 to 2000 contiguous discrete inputs. * * @param {number} startAddress - The starting address (0x0000 to 0xFFFF). * @param {number} quantity - Number of inputs to read (1 to 2000). * @returns {Uint8Array} The generated PDU. */ export declare const buildReadDiscreteInputsRequest: (startAddress: number, quantity: number) => Uint8Array; /** * Parses a response PDU for Function Code 0x02 (Read Discrete Inputs). * * @param {Uint8Array} pdu - The received response PDU. * @param {number} expectedQuantity - The number of inputs requested. * @returns {boolean[]} Array of boolean values. * @throws {Error} If PDU is invalid or function code mismatch. */ export declare const parseReadDiscreteInputsResponse: (pdu: Uint8Array, expectedQuantity: number) => boolean[]; /** * Builds a PDU for Function Code 0x03 (Read Holding Registers). * Used to read the contents of 1 to 125 contiguous holding registers. * * @param {number} startAddress - The starting address (0x0000 to 0xFFFF). * @param {number} quantity - Number of registers to read (1 to 125). * @returns {Uint8Array} The generated PDU. */ export declare const buildReadHoldingRegistersRequest: (startAddress: number, quantity: number) => Uint8Array; /** * Parses a response PDU for Function Code 0x03 (Read Holding Registers). * Converts byte pairs into 16-bit integers. * * @param {Uint8Array} pdu - The received response PDU. * @returns {number[]} Array of 16-bit register values. * @throws {Error} If PDU is invalid or function code mismatch. */ export declare const parseReadHoldingRegistersResponse: (pdu: Uint8Array) => number[]; /** * Builds a PDU for Function Code 0x04 (Read Input Registers). * Used to read 1 to 125 contiguous input registers. * * @param {number} startAddress - The starting address (0x0000 to 0xFFFF). * @param {number} quantity - Number of registers to read. * @returns {Uint8Array} The generated PDU. */ export declare const buildReadInputRegistersRequest: (startAddress: number, quantity: number) => Uint8Array; /** * Parses a response PDU for Function Code 0x04 (Read Input Registers). * * @param {Uint8Array} pdu - The received response PDU. * @returns {number[]} Array of 16-bit register values. * @throws {Error} If PDU is invalid or function code mismatch. */ export declare const parseReadInputRegistersResponse: (pdu: Uint8Array) => number[]; /** * Builds a PDU for Function Code 0x05 (Write Single Coil). * * @param {number} address - The coil address. * @param {boolean} value - State to write (true for ON, false for OFF). * @returns {Uint8Array} The generated PDU. */ export declare const buildWriteSingleCoilRequest: (address: number, value: boolean) => Uint8Array; /** * Parses a response PDU for Function Code 0x05 (Write Single Coil). * The response is usually an echo of the request. * * @param {Uint8Array} pdu - The received response PDU. * @returns {{ startAddress: number; value: boolean }} The address and value written. * @throws {Error} If PDU is invalid or function code mismatch. */ export declare const parseWriteSingleCoilResponse: (pdu: Uint8Array) => { startAddress: number; value: boolean; }; /** * Builds a PDU for Function Code 0x06 (Write Single Register). * * @param {number} address - The register address. * @param {number} value - The 16-bit value to write. * @returns {Uint8Array} The generated PDU. */ export declare const buildWriteSingleRegisterRequest: (address: number, value: number) => Uint8Array; /** * Parses a response PDU for Function Code 0x06 (Write Single Register). * * @param {Uint8Array} pdu - The received response PDU. * @returns {{ startAddress: number; value: number }} The address and value written. * @throws {Error} If PDU is invalid or function code mismatch. */ export declare const parseWriteSingleRegisterResponse: (pdu: Uint8Array) => { startAddress: number; value: number; }; /** * Builds a PDU for Function Code 0x0F (Write Multiple Coils). * Packs boolean values into bits. * * @param {number} address - Starting address. * @param {boolean[]} values - Array of boolean values to write. * @returns {Uint8Array} The generated PDU. */ export declare const buildWriteMultipleCoilsRequest: (address: number, values: boolean[]) => Uint8Array; /** * Parses a response PDU for Function Code 0x0F (Write Multiple Coils). * * @param {Uint8Array} pdu - The received response PDU. * @returns {{ startAddress: number; quantity: number }} Confirmation of written address and quantity. * @throws {Error} If PDU is invalid or function code mismatch. */ export declare const parseWriteMultipleCoilsResponse: (pdu: Uint8Array) => { startAddress: number; quantity: number; }; /** * Builds a PDU for Function Code 0x10 (Write Multiple Registers). * * @param {number} address - Starting address. * @param {number[]} values - Array of 16-bit integers to write. * @returns {Uint8Array} The generated PDU. */ export declare const buildWriteMultipleRegistersRequest: (address: number, values: number[]) => Uint8Array; /** * Parses a response PDU for Function Code 0x10 (Write Multiple Registers). * * @param {Uint8Array} pdu - The received response PDU. * @returns {{ startAddress: number; quantity: number }} Confirmation of written address and quantity. * @throws {Error} If PDU is invalid or function code mismatch. */ export declare const parseWriteMultipleRegistersResponse: (pdu: Uint8Array) => { startAddress: number; quantity: number; }; /** * Builds a PDU for Function Code 0x11 (Report Slave ID). * * @returns {Uint8Array} The generated PDU. */ export declare const buildReportSlaveIdRequest: () => Uint8Array; /** * Parses a response PDU for Function Code 0x11 (Report Slave ID). * * @param {Uint8Array} pdu - The received response PDU. * @returns {{ slaveId: number; isRunning: boolean; data: Uint8Array }} Slave information. * @throws {Error} If PDU is invalid or function code mismatch. */ export declare const parseReportSlaveIdResponse: (pdu: Uint8Array) => { slaveId: number; isRunning: boolean; data: Uint8Array; }; /** * Builds a PDU for Function Code 0x2B / 0x0E (Read Device Identification). * * @param {number} categoryId - Read Device ID code (01: basic, 02: regular, 03: extended, 04: individual). * @param {number} objectId - Object Id (0x00: VendorName, 0x01: ProductCode, etc.). * @returns {Uint8Array} The generated PDU. */ export declare const buildReadDeviceIdentificationRequest: (categoryId: number, objectId: number) => Uint8Array; /** * Parses a response PDU for Function Code 0x2B (Read Device Identification). * * @param {Uint8Array} pdu - The received response PDU. * @returns {any} An object containing device identification data or null if invalid. */ export declare const parseReadDeviceIdentificationResponse: (pdu: Uint8Array) => any; declare const _default: { buildReadCoilsRequest: (startAddress: number, quantity: number) => Uint8Array; parseReadCoilsResponse: (pdu: Uint8Array, expectedQuantity: number) => boolean[]; buildReadDiscreteInputsRequest: (startAddress: number, quantity: number) => Uint8Array; parseReadDiscreteInputsResponse: (pdu: Uint8Array, expectedQuantity: number) => boolean[]; buildReadHoldingRegistersRequest: (startAddress: number, quantity: number) => Uint8Array; parseReadHoldingRegistersResponse: (pdu: Uint8Array) => number[]; buildReadInputRegistersRequest: (startAddress: number, quantity: number) => Uint8Array; parseReadInputRegistersResponse: (pdu: Uint8Array) => number[]; buildWriteSingleCoilRequest: (address: number, value: boolean) => Uint8Array; parseWriteSingleCoilResponse: (pdu: Uint8Array) => { startAddress: number; value: boolean; }; buildWriteSingleRegisterRequest: (address: number, value: number) => Uint8Array; parseWriteSingleRegisterResponse: (pdu: Uint8Array) => { startAddress: number; value: number; }; buildWriteMultipleCoilsRequest: (address: number, values: boolean[]) => Uint8Array; parseWriteMultipleCoilsResponse: (pdu: Uint8Array) => { startAddress: number; quantity: number; }; buildWriteMultipleRegistersRequest: (address: number, values: number[]) => Uint8Array; parseWriteMultipleRegistersResponse: (pdu: Uint8Array) => { startAddress: number; quantity: number; }; buildReportSlaveIdRequest: () => Uint8Array; parseReportSlaveIdResponse: (pdu: Uint8Array) => { slaveId: number; isRunning: boolean; data: Uint8Array; }; buildReadDeviceIdentificationRequest: (categoryId: number, objectId: number) => Uint8Array; parseReadDeviceIdentificationResponse: (pdu: Uint8Array) => any; }; export default _default;