mirror of
https://github.com/alexandrebobkov/ESP-Nodes.git
synced 2025-08-08 10:10:53 +00:00
150 lines
4.8 KiB
TypeScript
150 lines
4.8 KiB
TypeScript
import { Transport } from "./webserial.js";
|
|
/**
|
|
* Set of reset functions for ESP Loader connection.
|
|
* @interface ResetConstructors
|
|
*/
|
|
export interface ResetConstructors {
|
|
/**
|
|
* Execute a classic set of commands that will reset the chip.
|
|
* @param transport Transport class to perform serial communication.
|
|
* @param resetDelay Delay in milliseconds for reset.
|
|
*/
|
|
classicReset?: (transport: Transport, resetDelay: number) => ClassicReset;
|
|
/**
|
|
* Execute a set of commands for USB JTAG serial reset.
|
|
* @param transport Transport class to perform serial communication.
|
|
*/
|
|
usbJTAGSerialReset?: (transport: Transport) => UsbJtagSerialReset;
|
|
/**
|
|
* Execute a classic set of commands that will reset the chip.
|
|
* @param transport Transport class to perform serial communication.
|
|
* @param {boolean} usingUsbOtg is it using USB-OTG ?
|
|
*/
|
|
hardReset?: (transport: Transport, usingUsbOtg?: boolean) => HardReset;
|
|
/**
|
|
* Execute a custom set of commands that will reset the chip.
|
|
* @param transport Transport class to perform serial communication.
|
|
* @param {string} sequenceString Custom string sequence for reset strategy
|
|
*/
|
|
customReset?: (transport: Transport, sequenceString: string) => CustomReset;
|
|
}
|
|
/**
|
|
* Reset strategy class
|
|
*/
|
|
export interface ResetStrategy {
|
|
transport: Transport;
|
|
reset(): Promise<void>;
|
|
}
|
|
/**
|
|
* Execute a classic set of commands that will reset the chip.
|
|
*
|
|
* Commands (e.g. R0) are defined by a code (R) and an argument (0).
|
|
*
|
|
* The commands are:
|
|
*
|
|
* D: setDTR - 1=True / 0=False
|
|
*
|
|
* R: setRTS - 1=True / 0=False
|
|
*
|
|
* W: Wait (time delay) - positive integer number (miliseconds)
|
|
*
|
|
* "D0|R1|W100|D1|R0|W50|D0" represents the classic reset strategy
|
|
* @param {Transport} transport Transport class to perform serial communication.
|
|
* @param {number} resetDelay Delay in milliseconds for reset.
|
|
*/
|
|
export declare class ClassicReset implements ResetStrategy {
|
|
resetDelay: number;
|
|
transport: Transport;
|
|
constructor(transport: Transport, resetDelay: number);
|
|
reset(): Promise<void>;
|
|
}
|
|
/**
|
|
* Execute a set of commands for USB JTAG serial reset.
|
|
*
|
|
* Commands (e.g. R0) are defined by a code (R) and an argument (0).
|
|
*
|
|
* The commands are:
|
|
*
|
|
* D: setDTR - 1=True / 0=False
|
|
*
|
|
* R: setRTS - 1=True / 0=False
|
|
*
|
|
* W: Wait (time delay) - positive integer number (miliseconds)
|
|
* @param {Transport} transport Transport class to perform serial communication.
|
|
*/
|
|
export declare class UsbJtagSerialReset implements ResetStrategy {
|
|
transport: Transport;
|
|
constructor(transport: Transport);
|
|
reset(): Promise<void>;
|
|
}
|
|
/**
|
|
* Execute a set of commands that will hard reset the chip.
|
|
*
|
|
* Commands (e.g. R0) are defined by a code (R) and an argument (0).
|
|
*
|
|
* The commands are:
|
|
*
|
|
* D: setDTR - 1=True / 0=False
|
|
*
|
|
* R: setRTS - 1=True / 0=False
|
|
*
|
|
* W: Wait (time delay) - positive integer number (miliseconds)
|
|
* @param {Transport} transport Transport class to perform serial communication.
|
|
* @param {boolean} usingUsbOtg is it using USB-OTG ?
|
|
*/
|
|
export declare class HardReset implements ResetStrategy {
|
|
transport: Transport;
|
|
private usingUsbOtg;
|
|
constructor(transport: Transport, usingUsbOtg?: boolean);
|
|
reset(): Promise<void>;
|
|
}
|
|
/**
|
|
* Validate a sequence string based on the following format:
|
|
*
|
|
* Commands (e.g. R0) are defined by a code (R) and an argument (0).
|
|
*
|
|
* The commands are:
|
|
*
|
|
* D: setDTR - 1=True / 0=False
|
|
*
|
|
* R: setRTS - 1=True / 0=False
|
|
*
|
|
* W: Wait (time delay) - positive integer number (miliseconds)
|
|
* @param {string} seqStr Sequence string to validate
|
|
* @returns {boolean} Is the sequence string valid ?
|
|
*/
|
|
export declare function validateCustomResetStringSequence(seqStr: string): boolean;
|
|
/**
|
|
* Custom reset strategy defined with a string.
|
|
*
|
|
* The sequenceString input string consists of individual commands divided by "|".
|
|
*
|
|
* Commands (e.g. R0) are defined by a code (R) and an argument (0).
|
|
*
|
|
* The commands are:
|
|
*
|
|
* D: setDTR - 1=True / 0=False
|
|
*
|
|
* R: setRTS - 1=True / 0=False
|
|
*
|
|
* W: Wait (time delay) - positive integer number (miliseconds)
|
|
*
|
|
* "D0|R1|W100|D1|R0|W50|D0" represents the classic reset strategy
|
|
* @param {Transport} transport Transport class to perform serial communication.
|
|
* @param {string} sequenceString Custom string sequence for reset strategy
|
|
*/
|
|
export declare class CustomReset implements ResetStrategy {
|
|
transport: Transport;
|
|
private sequenceString;
|
|
constructor(transport: Transport, sequenceString: string);
|
|
reset(): Promise<void>;
|
|
}
|
|
declare const _default: {
|
|
ClassicReset: typeof ClassicReset;
|
|
CustomReset: typeof CustomReset;
|
|
HardReset: typeof HardReset;
|
|
UsbJtagSerialReset: typeof UsbJtagSerialReset;
|
|
validateCustomResetStringSequence: typeof validateCustomResetStringSequence;
|
|
};
|
|
export default _default;
|