/// import { Logger, ChipFamily, SpiFlashAddresses } from "./const"; export declare class ESPLoader extends EventTarget { port: SerialPort; logger: Logger; private _parent?; chipFamily: ChipFamily; chipName: string | null; _efuses: any[]; _flashsize: number; debug: boolean; IS_STUB: boolean; connected: boolean; flashSize: string | null; __inputBuffer?: number[]; private _reader?; constructor(port: SerialPort, logger: Logger, _parent?: ESPLoader | undefined); private get _inputBuffer(); initialize(): Promise; /** * @name readLoop * Reads data from the input stream and places it in the inputBuffer */ readLoop(): Promise; hardReset(bootloader?: boolean): Promise; /** * @name macAddr * The MAC address burned into the OTP memory of the ESP chip */ macAddr(): any[]; readRegister(reg: number): Promise; /** * @name checkCommand * Send a command packet, check that the command succeeded and * return a tuple with the value and data. * See the ESP Serial Protocol for more details on what value/data are */ checkCommand(opcode: number, buffer: number[], checksum?: number, timeout?: number): Promise<[number, number[]]>; /** * @name sendCommand * Send a slip-encoded, checksummed command over the UART, * does not check response */ sendCommand(opcode: number, buffer: number[], checksum?: number): Promise; /** * @name readPacket * Generator to read SLIP packets from a serial port. * Yields one full SLIP packet at a time, raises exception on timeout or invalid data. * Designed to avoid too many calls to serial.read(1), which can bog * down on slow systems. */ readPacket(timeout: number): Promise; /** * @name getResponse * Read response data and decodes the slip packet, then parses * out the value/data and returns as a tuple of (value, data) where * each is a list of bytes */ getResponse(opcode: number, timeout?: number): Promise<[number, number[]]>; /** * @name checksum * Calculate checksum of a blob, as it is defined by the ROM */ checksum(data: number[], state?: number): number; setBaudrate(baud: number): Promise; reconfigurePort(baud: number): Promise; /** * @name sync * Put into ROM bootload mode & attempt to synchronize with the * ESP ROM bootloader, we will retry a few times */ sync(): Promise; /** * @name _sync * Perform a soft-sync using AT sync packets, does not perform * any hardware resetting */ _sync(): Promise; /** * @name getFlashWriteSize * Get the Flash write size based on the chip */ getFlashWriteSize(): 1024 | 16384; /** * @name flashData * Program a full, uncompressed binary file into SPI Flash at * a given offset. If an ESP32 and md5 string is passed in, will also * verify memory. ESP8266 does not have checksum memory verification in * ROM */ flashData(binaryData: ArrayBuffer, updateProgress: (bytesWritten: number, totalBytes: number) => void, offset?: number, compress?: boolean): Promise; /** * @name flashBlock * Send one block of data to program into SPI Flash memory */ flashBlock(data: number[], seq: number, timeout?: number): Promise; flashDeflBlock(data: number[], seq: number, timeout?: number): Promise; /** * @name flashBegin * Prepare for flashing by attaching SPI chip and erasing the * number of blocks requred. */ flashBegin(size?: number, offset?: number, encrypted?: boolean): Promise; /** * @name flashDeflBegin * */ flashDeflBegin(size?: number, compressedSize?: number, offset?: number, encrypted?: boolean): Promise; flashFinish(): Promise; flashDeflFinish(): Promise; getBootloaderOffset(): number; flashId(): Promise; getChipFamily(): ChipFamily; writeRegister(address: number, value: number, mask?: number, delayUs?: number, delayAfterUs?: number): Promise; setDataLengths(spiAddresses: SpiFlashAddresses, mosiBits: number, misoBits: number): Promise; waitDone(spiCmdReg: number, spiCmdUsr: number): Promise; runSpiFlashCommand(spiflashCommand: number, data: number[], readBits?: number): Promise; detectFlashSize(): Promise; /** * @name getEraseSize * Calculate an erase size given a specific size in bytes. * Provides a workaround for the bootloader erase bug on ESP8266. */ getEraseSize(offset: number, size: number): number; /** * @name memBegin (592) * Start downloading an application image to RAM */ memBegin(size: number, blocks: number, blocksize: number, offset: number): Promise<[number, number[]]>; /** * @name memBlock (609) * Send a block of an image to RAM */ memBlock(data: number[], seq: number): Promise<[number, number[]]>; /** * @name memFinish (615) * Leave download mode and run the application * * Sending ESP_MEM_END usually sends a correct response back, however sometimes * (with ROM loader) the executed code may reset the UART or change the baud rate * before the transmit FIFO is empty. So in these cases we set a short timeout and * ignore errors. */ memFinish(entrypoint?: number): Promise<[number, number[]]>; runStub(): Promise; writeToStream(data: number[]): Promise; disconnect(): Promise; } declare class EspStubLoader extends ESPLoader { IS_STUB: boolean; /** * @name memBegin (592) * Start downloading an application image to RAM */ memBegin(size: number, blocks: number, blocksize: number, offset: number): Promise; /** * @name getEraseSize * depending on flash chip model the erase may take this long (maybe longer!) */ eraseFlash(): Promise; } export {};