UNPKG

zklib-ts

Version:

Unofficial zkteco library allows Node.js developers to easily interface with ZK BioMetric Fingerprint Attendance Devices

161 lines (160 loc) 5.53 kB
import { Socket } from 'net'; import { RealTimeLog } from './helper/utils'; import { Finger } from './models/Finger'; import { User } from './models/User'; export declare class ZTCP { /** * @param_ip ip address of device * @param_port port number of device * @param_timeout connection timout * @param_comm_key communication key of device (if the case) * @return Zkteco TCP socket connection instance */ private ip; private port; private timeout; private sessionId; private replyId; socket: Socket | undefined; private comm_key; private user_count; private fp_count; private pwd_count; private oplog_count; private attlog_count; private fp_cap; private user_cap; private attlog_cap; private fp_av; private user_av; private attlog_av; private face_count; private face_cap; private userPacketSize; private verbose; private packetNumber; private replyData; constructor(ip: string, port: number, timeout: number, comm_key: number, verbose: boolean); createSocket(cbError: any, cbClose: any): Promise<unknown>; connect(): Promise<boolean>; closeSocket(): Promise<boolean>; writeMessage(msg: Buffer, connect: boolean): Promise<Buffer>; requestData(msg: Buffer): Promise<Buffer>; /** * * @param {*} command * @param {*} data * * * reject error when command fail and resolve data when success */ executeCmd(command: number, data: Buffer | string | ArrayBuffer): Promise<Buffer>; sendChunkRequest(start: number, size: number): Promise<void>; /** * * @param {Buffer} reqData - indicate the type of data that need to receive ( user or attLog) * @param {Function} cb - callback is triggered when receiving packets * * readWithBuffer will reject error if it'wrong when starting request data * readWithBuffer will return { data: replyData , err: Error } when receiving requested data */ readWithBuffer(reqData: Buffer | string, cb?: Function): Promise<Record<string, Buffer | number>>; /** * reject error when starting request data * @return {Record<string, User[] | Error>} when receiving requested data */ getUsers(): Promise<{ data: User[]; }>; /** * * @param {*} ip * @param {*} callbackInProcess * reject error when starting request data * return { data: records, err: Error } when receiving requested data */ getAttendances(callbackInProcess?: any): Promise<{ data: any[]; }>; freeData(): Promise<boolean>; disableDevice(): Promise<boolean>; enableDevice(): Promise<boolean>; disconnect(): Promise<void>; getInfo(): Promise<{ userCounts: number; logCounts: number; logCapacity: number; }>; getSizes(): Promise<{ userCounts: number; logCounts: number; fingerCount: number; adminCount: number; opLogCount: number; logCapacity: number; fingerCapacity: number; userCapacity: number; attLogCapacity: number; fingerAvailable: number; userAvailable: number; attLogAvailable: number; faceCount: number; faceCapacity: number; }>; getVendor(): Promise<string>; getProductTime(): Promise<Date>; getMacAddress(): Promise<string>; getSerialNumber(): Promise<string>; getDeviceVersion(): Promise<string>; getDeviceName(): Promise<string>; getPlatform(): Promise<string>; getOS(): Promise<string>; getWorkCode(): Promise<string>; getPIN(): Promise<string>; getFaceOn(): Promise<"No" | "Yes">; getSSR(): Promise<string>; getFirmware(): Promise<string>; getTime(): Promise<Date>; setTime(tm: Date | string): Promise<boolean>; voiceTest(): Promise<void>; setUser(uid: number, userid: string, name: string, password: string, role?: number, cardno?: number): Promise<boolean>; deleteUser(uid: number): Promise<boolean>; getAttendanceSize(): Promise<number>; clearAttendanceLog(): Promise<Buffer<ArrayBufferLike>>; clearData(): Promise<Buffer<ArrayBufferLike>>; getRealTimeLogs(cb?: (realTimeLog: RealTimeLog) => void): Promise<void>; /** * Get all Finger objects * @returns {Record<string, Finger[]>} */ getTemplates(callbackInProcess?: any): Promise<Record<string, Finger[]>>; /** * Return size * @param packet */ testTcpTop(packet: any): any; refreshData(): Promise<boolean>; sendWithBuffer(buffer: Buffer): Promise<unknown>; sendChunk(commandString: Buffer): Promise<unknown>; /** * save user and template * * @param {User | number | string} user - User class object | uid | user_id * @param {Finger[]} fingers - Array of finger class. `0 <= index <= 9` */ saveUserTemplate(user: User, fingers?: Finger[]): Promise<void>; deleteFinger(uid: number, fid: number): Promise<boolean>; enrollUser(uid: number, tempId: number, userId?: string): Promise<boolean>; readSocket(length: number, cb?: any): Promise<any>; /** * Register events * @param {number} flags - Event flags * @returns {Promise<void>} * @throws {ZKErrorResponse} If registration fails */ regEvent(flags: number): Promise<void>; ackOk(): Promise<void>; cancelCapture(): Promise<boolean>; verifyUser(uid: number): Promise<boolean>; restartDevice(): Promise<void>; }