UNPKG

@robotical/ricjs

Version:

Javascript/TS library for Robotical RIC

60 lines (59 loc) 3.08 kB
import { RICFileDownloadFn, RICFileSendType, RICFWInfo, RICSystemInfo, RICUpdateInfo } from "./RICTypes"; import { RICUpdateEvent, RICUpdateEventFn } from "./RICUpdateEvents"; import RICMsgHandler from "./RICMsgHandler"; import RICFileHandler from "./RICFileHandler"; import RICSystem from "./RICSystem"; import RICChannel from "./RICChannel"; export default class RICUpdateManager { private _ricMsgHandler; private _ricFileHandler; private _ricSystem; private _eventListener; private _firmwareTypeStrForMainFw; private _currentAppVersion; private _fileDownloader; private _firmwareUpdateURL; private _firmwareBaseURL; private _ricChannel; private _latestVersionInfo; private _updateESPRequired; private _updateElemsRequired; private readonly FW_UPDATE_CHECKS_BEFORE_ASSUME_FAILED; private readonly ELEM_FW_CHECK_LOOPS; private _progressAfterDownload; private _progressDuringUpload; private _progressDuringRestart; private _progressAfterUpload; private _idToConnectTo; private _nameToConnectTo; private _ricHwRevNo; private readonly TEST_TRUNCATE_ESP_FILE; private readonly TEST_PRETEND_ELEM_UPDATE_REQD; TEST_PRETEND_INITIAL_VERSIONS_DIFFER: boolean; private readonly TEST_PRETEND_FINAL_VERSIONS_MATCH; private readonly TEST_SKIP_FW_UPDATE; constructor(_ricMsgHandler: RICMsgHandler, _ricFileHandler: RICFileHandler, _ricSystem: RICSystem, _eventListener: RICUpdateEventFn, _firmwareTypeStrForMainFw: string, _currentAppVersion: string, _fileDownloader: RICFileDownloadFn, _firmwareUpdateURL: string, _firmwareBaseURL: string, _ricChannel: RICChannel | null); checkForUpdate(systemInfo: RICSystemInfo | null): Promise<RICUpdateEvent>; _isUpdateRequired(latestVersion: RICUpdateInfo, systemInfo: RICSystemInfo): Promise<boolean>; elemUpdateRequired(expectedVersion: string, actualVersion: string, dtid: number, addr: number, elemType: string): boolean; getExpectedVersion(firmwareVersions: any, dtid: number): any; elemUpdatesRequired(): Promise<Array<any> | null>; firmwareUpdate(): Promise<RICUpdateEvent>; updateElems(elemsToUpdate?: Array<any> | null): Promise<boolean>; updateHWElem(elemName: string, dtid: number, elemType: string, expectedVersion: string, sendFile: boolean): Promise<boolean>; updateElem(elemFw: RICFWInfo, elemNameOrAll?: string): Promise<boolean>; manualReconnect(): Promise<boolean | undefined>; waitForRestart(percComplete: number, checkFwVersion?: string | null): Promise<boolean>; firmwareUpdateCancel(): Promise<void>; /** * * fileSend - start file transfer * @param fileName name of file to send * @param fileType normal file or firmware * @param fileContents contenst of the file (binary object) * @returns Promise<boolean> * */ fileSend(fileName: string, fileType: RICFileSendType, fileContents: Uint8Array, progressCallback: (sent: number, total: number, progress: number) => void): Promise<boolean>; fileSendCancel(): Promise<void>; }