UNPKG

ember-zli

Version:

Interact with EmberZNet-based adapters using zigbee-herdsman 'ember' driver

74 lines (73 loc) 2.3 kB
import EventEmitter from "node:events"; import { FirmwareValidation } from "./enums.js"; import { Transport } from "./transport.js"; import type { AdapterModel, PortConf } from "./types.js"; import { type XExitStatus, XModemCRC } from "./xmodem.js"; export declare enum BootloaderState { /** Not connected to bootloader (i.e. not any of below) */ NOT_CONNECTED = 0, /** Waiting in menu */ IDLE = 1, /** Triggered 'Upload GBL' menu */ BEGIN_UPLOAD = 2, /** Received 'begin upload' */ UPLOADING = 3, /** GBL upload completed */ UPLOADED = 4, /** Triggered 'Run' menu */ RUNNING = 5, /** Triggered 'EBL Info' menu */ GETTING_INFO = 6, /** Received response for 'EBL Info' menu */ GOT_INFO = 7 } export declare enum BootloaderMenu { UPLOAD_GBL = 49, RUN = 50, INFO = 51, CLEAR_APP = 254, CLEAR_NVM3 = 255 } export declare enum BootloaderEvent { FAILED = "failed", CLOSED = "closed", UPLOAD_START = "uploadStart", UPLOAD_STOP = "uploadStop", UPLOAD_PROGRESS = "uploadProgress" } interface GeckoBootloaderEventMap { [BootloaderEvent.CLOSED]: []; [BootloaderEvent.FAILED]: []; [BootloaderEvent.UPLOAD_PROGRESS]: [percent: number]; [BootloaderEvent.UPLOAD_START]: []; [BootloaderEvent.UPLOAD_STOP]: [status: XExitStatus]; } export declare class GeckoBootloader extends EventEmitter<GeckoBootloaderEventMap> { readonly adapterModel?: AdapterModel; readonly portConf: PortConf; readonly transport: Transport; readonly xmodem: XModemCRC; private state; private waiter; constructor(portConf: PortConf, adapterModel?: AdapterModel); connect(): Promise<void>; navigate(menu: BootloaderMenu, firmware?: Buffer): Promise<boolean>; forceReset(exit: boolean): Promise<void>; validateFirmware(firmware: Buffer | undefined): Promise<FirmwareValidation>; private cpcLaunch; private ezspLaunch; private spinelLaunch; private knock; private menuGetInfo; private menuRun; private menuUploadGBL; private onTransportData; private onTransportFailed; private onXModemData; private onXModemStart; private onXModemStop; private readBootloaderInfo; private resolveState; private waitForState; } export {};