@robotical/ricjs
Version:
Javascript/TS library for Robotical RIC
300 lines (299 loc) • 7.7 kB
TypeScript
import { RICConnEvent } from './RICConnEvents';
import { ROSSerialSmartServos, ROSSerialIMU, ROSSerialPowerStatus, ROSSerialAddOnStatusList, ROSSerialRobotStatus, ROSSerialMagneto } from './RICROSSerial';
import { RICUpdateEvent } from './RICUpdateEvents';
export declare enum RICIFType {
RIC_INTERFACE_BLE = 0,
RIC_INTERFACE_WIFI = 1
}
export declare enum RICFileSendType {
RIC_NORMAL_FILE = 0,
RIC_FIRMWARE_UPDATE = 1
}
export declare enum RICStreamType {
RIC_REAL_TIME_STREAM = 0
}
export declare type RICEventFn = (eventType: string, eventEnum: RICConnEvent | RICUpdateEvent, eventName: string, data?: object | string | null) => void;
export interface RICSubscription {
remove(): void;
}
export declare class RICFriendlyName {
friendlyName: string;
friendlyNameIsSet?: boolean | undefined;
req?: string | undefined;
rslt?: string | undefined;
validMs?: number | undefined;
}
export declare class RICSystemInfo {
rslt: string;
SystemName: string;
SystemVersion: string;
RicHwRevNo: number;
MAC?: string | undefined;
SerialNo?: string | undefined;
validMs?: number | undefined;
}
export declare class RICCalibInfo {
rslt: string;
calDone: number;
validMs?: number | undefined;
}
export declare class RICOKFail {
RIC_OK: string;
set(rsltFlag: boolean): void;
rslt: string;
isOk(): boolean;
}
export declare class RICReportMsg {
msgType?: string;
rslt: string;
timeReceived?: number;
hexRd?: string;
elemName?: string;
IDNo?: number;
msgKey?: string;
addr?: number;
msgBody?: string;
}
export declare class RICHWFWStat {
s: string;
m: string;
v: string;
n: string;
p: number;
i: number;
}
export declare class RICHWFWUpdRslt {
req: string;
rslt: string;
st: RICHWFWStat;
}
export declare type RICFWInfo = {
elemType: string;
version: string;
destname: string;
md5: string;
releaseNotes: string;
comments: string;
updaters: Array<string>;
downloadUrl: string;
firmware?: string;
};
export declare type RICUpdateInfo = {
rslt: string;
firmwareVersion: string;
ricRevision: string;
files: Array<RICFWInfo>;
minimumUpdaterVersion: Dictionary<string>;
note: string;
};
export declare type RICFileStartResp = {
rslt: string;
batchMsgSize: number;
batchAckSize: number;
};
export declare type RICStreamStartResp = {
rslt: string;
streamID: number;
maxBlockSize?: number;
};
export declare class RICStateInfo {
smartServos: ROSSerialSmartServos;
smartServosValidMs: number;
imuData: ROSSerialIMU;
imuDataValidMs: number;
magnetoData: ROSSerialMagneto;
magnetoDataValidMs: number;
power: ROSSerialPowerStatus;
powerValidMs: number;
addOnInfo: ROSSerialAddOnStatusList;
addOnInfoValidMs: number;
robotStatus: ROSSerialRobotStatus;
robotStatusValidMs: number;
}
export declare type RICFile = {
name: string;
size: number;
};
export declare class RICFileList {
req: string;
rslt: string;
fsName: string;
fsBase: string;
diskSize: number;
diskUsed: number;
folder: string;
files: Array<RICFile>;
}
/**
* RICHWElem
*
* @description
* Information about a hardware element
*
* @field name: string - element name
* @field type: string - element type
* @field busName: string - name of bus (e.g. I2C) attached to
* @field addr: string - address of element on the bus
* @field addrValid: number - 1 if address is valid
* @field IDNo: string - unique identifier of element
* @field whoAmI: string - name of element type
* @field whoAmITypeCode: string - number of element type
* @field SN: string - Serial number
* @field versionStr: string - Version
* @field commsOk: number - 1 if communications OK, 0 if not, -1 if device is invalid
*/
export declare type RICHWElem = {
name: string;
type: string;
busName: string;
addr: string;
addrValid: number;
IDNo: string;
whoAmI: string;
whoAmITypeCode: string;
SN: string;
versionStr: string;
commsOk: number;
};
export declare class RICHWElemList {
req: string;
rslt: string;
hw: Array<RICHWElem>;
}
export declare type RICHWElem_Min = {
n: string;
t: string;
I: string;
w: string;
W: string;
S: string;
v: string;
c: number;
};
export declare class RICHWElemList_Min {
req: string;
rslt: string;
hw: Array<RICHWElem_Min>;
static expand(hwMin: RICHWElemList_Min): RICHWElemList;
}
export declare type RICHWElem_Str = {
a: string;
};
export declare type RICHWElemList_Name = {
rslt: string;
hw: Array<string>;
};
export declare class RICHWElemList_Str {
req: string;
rslt: string;
hw: Array<RICHWElem_Str>;
static expand(hwStr: RICHWElemList_Str): RICHWElemList;
static unesc(s: string): string;
}
/**
* RICAddOn
*
* @description
* Information about an add-on
*
* @field name: string - Name of add-on
* @field SN: string - Serial number
* @field poll: string - polling type ("status")
* @field pollRd: string - hex data most recently read
* @field pollHz: number - rate of polling
*/
export declare type RICAddOn = {
name: string;
SN: string;
poll: string;
pollRd: number;
pollHz: number;
};
export declare class RICConfiguredAddOns {
req: string;
rslt: string;
addons: Array<RICAddOn>;
}
/**
* AddOnElemAndConfig
*
* @description
* Carrier of information about an add-on combining
* the add-on element and the add-on configuration
*
* @field addOnConfig: RICAddOn - Add-on configuration
* @field hwElemRec: RICHWElem - Add-on element
* @field elemIdx: number - Index of the add-on element
*/
export declare class AddOnElemAndConfig {
constructor(addOnConfig: RICAddOn | null, hwElemRec: RICHWElem | null, elemIdx: number);
addOnConfig: RICAddOn | null;
hwElemRec: RICHWElem | null;
name: string;
SN: string;
id: string;
isConnected: boolean;
isConfigured: boolean;
}
export declare class RICSysModInfoBLEMan {
req?: string | undefined;
rslt: string;
isConn: boolean;
isAdv: boolean;
advName?: string | undefined;
BLEMAC: string;
rssi: number;
rxM: number;
rxB: number;
rxBPS: number;
txM: number;
txB: number;
txBPS: number;
txErr: number;
txErrPS: number;
tM?: number | undefined;
tB?: number | undefined;
tBPS?: number | undefined;
tSeqErrs?: number | undefined;
tDatErrs?: number | undefined;
}
export declare type RICProgressCBType = (received: number, total: number) => void;
export declare class RICFileDownloadResult {
fileData: Uint8Array | null;
downloadedOk: boolean;
}
export declare type RICFileDownloadFn = (downloadUrl: string, progressCB: RICProgressCBType) => Promise<RICFileDownloadResult>;
export declare type RICLEDPatternCheckerColour = {
led: string;
lcd: string;
};
export declare type RICLedLcdColours = Array<RICLEDPatternCheckerColour>;
export interface Dictionary<T> {
[key: string]: T;
}
export declare type RICWifiScanResults = {
req: string;
rslt: string;
wifi: WifiScanWifiItem[];
};
export declare type WifiScanWifiItem = {
ssid: string;
rssi: number;
ch1: number;
ch2: number;
auth: string;
bssid: string;
pair: string;
group: string;
};
export declare type PystatusMsgType = {
req: string;
running: string;
rslt: string;
};
export declare type RICServoFaultFlags = {
intermittentConnection: boolean;
noConnection: boolean;
faultyConnection: boolean;
servoHornPositionError: boolean;
};