@nagisa~/node-red-systemair-save
Version:
Node-RED nodes to interact with SystemAIR’s SAVE line of products
57 lines (56 loc) • 1.68 kB
TypeScript
/// <reference types="node" />
import { Node } from "node-red";
export interface DataType<PayloadT> {
read_commands(description: RegisterDescription<PayloadT>): {
address: number;
count: number;
}[];
extract(buffers: Buffer[]): PayloadT;
encode_writes(description: RegisterDescription<PayloadT>, payload: PayloadT): {
address: number;
payload: Buffer;
}[];
}
export declare enum RegisterType {
RO = 0,
RW = 1
}
export type RegisterDescription<P> = {
name: string;
data_type: DataType<P>;
register_type: RegisterType;
modbus_address: number;
description: string;
};
export interface SystemairRegisterNodeOptions {
register_type: "real" | "virtual";
register_id: string;
device: string;
}
export interface SystemairSaveDeviceOptions {
proto: "Modbus TCP" | "Modbus RTU";
address: string;
port: number;
timeout: number;
op_timeout: number;
max_concurrency: number;
max_backlog: number;
device_id: number;
}
export interface SystemairSaveDevice extends Node<{}> {
read<P>(register_description: RegisterDescription<P>): Promise<P>;
write<P>(register_description: RegisterDescription<P>, value: P): Promise<void>;
}
declare global {
interface JQuery<TElement = HTMLElement> {
searchBox(options: any): this;
searchBox(option: "count", idk: any): this;
treeList(option: 'filter', callback: null | ((item: any) => boolean)): this;
treeList(option: 'selected'): any;
treeList(option: 'data', data: any[]): this;
treeList(options: {
multi: boolean;
data?: any;
}): this;
}
}