UNPKG

companion-rgblink-openapi-connector

Version:

This is POC of connector between modules for Bitfocus Companion (https://bitfocus.io/companion) and RGBlink (https://www.rgblink.com/) devices managed by RGBLink OpenAPI

81 lines 4.72 kB
import { LogLevel } from "@companion-module/base"; export type Hex = '00' | '01' | '02' | '03' | '04' | '05' | '06' | '07' | '08' | '09' | '0A' | '0B' | '0C' | '0D' | '0E' | '0F' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '1A' | '1B' | '1C' | '1D' | '1E' | '1F' | '20' | '21' | '22' | '23' | '24' | '25' | '26' | '27' | '28' | '29' | '2A' | '2B' | '2C' | '2D' | '2E' | '2F' | '30' | '31' | '32' | '33' | '34' | '35' | '36' | '37' | '38' | '39' | '3A' | '3B' | '3C' | '3D' | '3E' | '3F' | '40' | '41' | '42' | '43' | '44' | '45' | '46' | '47' | '48' | '49' | '4A' | '4B' | '4C' | '4D' | '4E' | '4F' | '50' | '51' | '52' | '53' | '54' | '55' | '56' | '57' | '58' | '59' | '5A' | '5B' | '5C' | '5D' | '5E' | '5F' | '60' | '61' | '62' | '63' | '64' | '65' | '66' | '67' | '68' | '69' | '6A' | '6B' | '6C' | '6D' | '6E' | '6F' | '70' | '71' | '72' | '73' | '74' | '75' | '76' | '77' | '78' | '79' | '7A' | '7B' | '7C' | '7D' | '7E' | '7F' | '80' | '81' | '82' | '83' | '84' | '85' | '86' | '87' | '88' | '89' | '8A' | '8B' | '8C' | '8D' | '8E' | '8F' | '90' | '91' | '92' | '93' | '94' | '95' | '96' | '97' | '98' | '99' | '9A' | '9B' | '9C' | '9D' | '9E' | '9F' | 'A0' | 'A1' | 'A2' | 'A3' | 'A4' | 'A5' | 'A6' | 'A7' | 'A8' | 'A9' | 'AA' | 'AB' | 'AC' | 'AD' | 'AE' | 'AF' | 'B0' | 'B1' | 'B2' | 'B3' | 'B4' | 'B5' | 'B6' | 'B7' | 'B8' | 'B9' | 'BA' | 'BB' | 'BC' | 'BD' | 'BE' | 'BF' | 'C0' | 'C1' | 'C2' | 'C3' | 'C4' | 'C5' | 'C6' | 'C7' | 'C8' | 'C9' | 'CA' | 'CB' | 'CC' | 'CD' | 'CE' | 'CF' | 'D0' | 'D1' | 'D2' | 'D3' | 'D4' | 'D5' | 'D6' | 'D7' | 'D8' | 'D9' | 'DA' | 'DB' | 'DC' | 'DD' | 'DE' | 'DF' | 'E0' | 'E1' | 'E2' | 'E3' | 'E4' | 'E5' | 'E6' | 'E7' | 'E8' | 'E9' | 'EA' | 'EB' | 'EC' | 'ED' | 'EE' | 'EF' | 'F0' | 'F1' | 'F2' | 'F3' | 'F4' | 'F5' | 'F6' | 'F7' | 'F8' | 'F9' | 'FA' | 'FB' | 'FC' | 'FD' | 'FE' | 'FF'; export interface Logger { log(level: LogLevel, message: string): void; } export declare class PollingCommand { CMD: Hex; DAT1: Hex; DAT2: Hex; DAT3: Hex; DAT4: Hex; constructor(CMD: Hex, DAT1: Hex, DAT2: Hex, DAT3: Hex, DAT4: Hex); } export declare class SentCommand { sentDate: number; command: string; constructor(command: string, sentDate: number); } export declare class SentCommandStorage { private commandsSentWithoutResponse; private expireTimeSeconds; registerSentCommand(cmd: string): void; registerReceivedCommand(cmd: string): void; getCountElementsWithoutRespond(): number; deleteExpiredCommands(): SentCommand[]; deleteAll(): void; setExpireTimeSecons(seconds: number): void; private internalRememberCommand; private internalCompareResponseWithSentCommands; private internalGetCmdId; } export declare class ApiConfig { host: string; port: number; polling: boolean; logEveryCommand: boolean; constructor(host: string, port: number, polling: boolean, logEveryCommand: boolean); } export declare class RGBLinkApiConnector { static EVENT_NAME_ON_DATA_API: string; static EVENT_NAME_ON_DATA_API_NOT_STANDARD_LENGTH: string; static EVENT_NAME_ON_CONNECTION_OK: string; static EVENT_NAME_ON_CONNECTION_WARNING: string; static EVENT_NAME_ON_CONNECTION_ERROR: string; private PARSE_INT_HEX_MODE; private config; private logProvider; private socket; private eventsListeners; private nextSn; private intervalHandler100ms; private sentCommandStorage; private pollingQueue; private pollingCommands; constructor(config: ApiConfig, pollingCommands: PollingCommand[]); enableLog(logProvider: Logger): void; disableLog(): void; protected myDebug(msg: string): void; protected myWarn(msg: string): void; private internalMyLog; private onEvery100Miliseconds; private doPolling; onHostPortUpdate(host: string, port: number): void; private createSocket; onDataReceived(message: Buffer): void; protected logFeedback(redeableMsg: string, info: string): void; onDestroy(): void; on(event: string, listener: any): void; protected emit(event: string, args: any): void; private sendCommandNative; setPolling(polling: boolean): void; setLogEveryCommand(logEveryCommand: boolean): void; protected sendCommand(CMD: Hex, DAT1: Hex, DAT2: Hex, DAT3: Hex, DAT4: Hex): void; private sendCommandWithAddr; byteToTwoSignHex(b: number): Hex; private incrementNextSn; validateReceivedDataAndEmitIfValid(message: Buffer): void; calculateChecksum(ADDR: Hex, SN: Hex, CMD: Hex, DAT1: Hex, DAT2: Hex, DAT3: Hex, DAT4: Hex): Hex; getNumberOfCommandsWithoutRespond(): number; } //# sourceMappingURL=rgblinkopenapiconnector.d.ts.map