UNPKG

@robotical/ricjs

Version:

Javascript/TS library for Robotical RIC

79 lines (78 loc) 4.2 kB
import RICCommsStats from './RICCommsStats'; import { ROSSerialIMU, ROSSerialSmartServos, ROSSerialPowerStatus, ROSSerialAddOnStatusList, ROSSerialRobotStatus, ROSSerialMagneto } from './RICROSSerial'; import RICAddOnManager from './RICAddOnManager'; import { RICReportMsg } from './RICTypes'; export declare enum RICRESTElemCode { RICREST_ELEM_CODE_URL = 0, RICREST_ELEM_CODE_CMDRESPJSON = 1, RICREST_ELEM_CODE_BODY = 2, RICREST_ELEM_CODE_COMMAND_FRAME = 3, RICREST_ELEM_CODE_FILEBLOCK = 4 } export declare enum RICCommsMsgTypeCode { MSG_TYPE_COMMAND = 0, MSG_TYPE_RESPONSE = 1, MSG_TYPE_PUBLISH = 2, MSG_TYPE_REPORT = 3 } export declare enum RICCommsMsgProtocol { MSG_PROTOCOL_ROSSERIAL = 0, MSG_PROTOCOL_RESERVED_1 = 1, MSG_PROTOCOL_RICREST = 2 } export declare enum RICMsgResultCode { MESSAGE_RESULT_TIMEOUT = 0, MESSAGE_RESULT_OK = 1, MESSAGE_RESULT_FAIL = 2, MESSAGE_RESULT_UNKNOWN = 3 } export interface RICMessageResult { onRxReply(msgHandle: number, msgRsltCode: RICMsgResultCode, msgRsltJsonObj: object | null): void; onRxUnnumberedMsg(msgRsltJsonObj: object): void; onRxSmartServo(smartServos: ROSSerialSmartServos): void; onRxIMU(imuData: ROSSerialIMU): void; onRxMagneto(magnetoData: ROSSerialMagneto): void; onRxPowerStatus(powerStatus: ROSSerialPowerStatus): void; onRxAddOnPub(addOnInfo: ROSSerialAddOnStatusList): void; onRobotStatus(robotStatus: ROSSerialRobotStatus): void; onRxOtherROSSerialMsg(topicID: number, payload: Uint8Array): void; } export interface RICMessageSender { sendTxMsg(msg: Uint8Array, sendWithResponse: boolean): Promise<boolean>; sendTxMsgNoAwait(msg: Uint8Array, sendWithResponse: boolean): Promise<boolean>; } export default class RICMsgHandler { private _currentMsgNumber; private _currentMsgHandle; private _msgTrackInfos; private _msgTrackTimerMs; private _msgTrackLastCheckIdx; private _reportMsgCallbacks; private _msgResultHandler; private _msgSender; private _commsStats; private _miniHDLC; private _addOnManager; constructor(commsStats: RICCommsStats, addOnManager: RICAddOnManager); registerForResults(msgResultHandler: RICMessageResult): void; registerMsgSender(RICMessageSender: RICMessageSender): void; handleNewRxMsg(rxMsg: Uint8Array): void; reportMsgCallbacksSet(callbackName: string, callback: (report: RICReportMsg) => void): void; reportMsgCallbacksDelete(callbackName: string): void; _onHDLCFrameDecode(rxMsg: Uint8Array): void; _handleResponseMessages(restStr: string, rxMsgNum: number): void; _handleReportMessages(restStr: string): void; sendRICRESTURL<T>(cmdStr: string, msgTimeoutMs?: number | undefined): Promise<T>; sendRICRESTCmdFrame<T>(cmdStr: string, msgTimeoutMs?: number | undefined): Promise<T>; sendRICREST<T>(cmdStr: string, ricRESTElemCode: RICRESTElemCode, msgTimeoutMs?: number | undefined): Promise<T>; sendRICRESTBytes<T>(cmdBytes: Uint8Array, ricRESTElemCode: RICRESTElemCode, withResponse: boolean, msgTimeoutMs?: number | undefined): Promise<T>; sendMsgAndWaitForReply<T>(msgPayload: Uint8Array, msgDirection: RICCommsMsgTypeCode, msgProtocol: RICCommsMsgProtocol, withResponse: boolean, msgTimeoutMs: number | undefined): Promise<T>; frameCommsMsg(msgPayload: Uint8Array, msgDirection: RICCommsMsgTypeCode, msgProtocol: RICCommsMsgProtocol, isNumbered: boolean): Uint8Array; msgTrackingTxCmdMsg<T>(msgFrame: Uint8Array, withResponse: boolean, msgTimeoutMs: number | undefined, resolve: (arg: T) => void, reject: (reason: Error) => void): void; msgTrackingRxRespMsg(msgNum: number, msgRsltCode: RICMsgResultCode, msgRsltJsonObj: object): void; _msgCompleted(msgNum: number, msgRsltCode: RICMsgResultCode, msgRsltObj: object | null): void; _onMsgTrackTimer(chainRecall: boolean): Promise<void>; encodeFileStreamBlock(blockContents: Uint8Array, blockStart: number, streamID: number): Uint8Array; sendFileBlock(blockContents: Uint8Array, blockStart: number): Promise<boolean>; sendStreamBlock(blockContents: Uint8Array, blockStart: number, streamID: number): Promise<boolean>; }