stm32dfu
Version:
STM32 DFU DfuSeCommand js
140 lines (139 loc) • 5.19 kB
TypeScript
import { USBDevice, USBConfiguration, USBInterface, USBAlternateInterface } from 'w3c-web-usb';
export declare class DFU {
constructor();
static get DETACH(): number;
static get DNLOAD(): number;
static get UPLOAD(): number;
static get GETSTATUS(): number;
static get CLRSTATUS(): number;
static get GETSTATE(): number;
static get ABORT(): number;
static get appIDLE(): number;
static get appDETACH(): number;
static get dfuIDLE(): number;
static get dfuDNLOAD_SYNC(): number;
static get dfuDNBUSY(): number;
static get dfuDNLOAD_IDLE(): number;
static get dfuMANIFEST_SYNC(): number;
static get dfuMANIFEST(): number;
static get dfuMANIFEST_WAIT_RESET(): number;
static get dfuUPLOAD_IDLE(): number;
static get dfuERROR(): number;
static get dfuUPLOADSYNC(): number;
static get dfuUPLOADBUSY(): number;
static get STATUS_OK(): number;
static get STATUS_errTARGET(): number;
static get STATUS_errFILE(): number;
static get STATUS_errWRITE(): number;
static get STATUS_errERASE(): number;
static get STATUS_errCHECK_ERASE(): number;
static get STATUS_errPROG(): number;
static get STATUS_errVERIFY(): number;
static get STATUS_errADDRESS(): number;
static get STATUS_errNOTDONE(): number;
static get STATUS_errFIRMWARE(): number;
static get STATUS_errVENDOR(): number;
static get STATUS_errUSBR(): number;
static get STATUS_errPOR(): number;
static get STATUS_errUNKNOWN(): number;
static get STATUS_errSTALLEDPKT(): number;
static get ATTR_DNLOAD_CAPABLE(): number;
static get ATTR_UPLOAD_CAPABLE(): number;
static get ATTR_MANIFESTATION_TOLERANT(): number;
static get ATTR_WILL_DETACH(): number;
static get ATTR_ST_CAN_ACCELERATE(): number;
static findDeviceDfuInterfaces(device: USBDevice): DeviceSettings[];
static parseDeviceDescriptor(data: DataView): {
bLength: number;
bDescriptorType: number;
bcdUSB: number;
bDeviceClass: number;
bDeviceSubClass: number;
bDeviceProtocol: number;
bMaxPacketSize: number;
idVendor: number;
idProduct: number;
bcdDevice: number;
iManufacturer: number;
iProduct: number;
iSerialNumber: number;
bNumConfigurations: number;
};
static parseConfigurationDescriptor(data: DataView): {
bLength: number;
bDescriptorType: number;
wTotalLength: number;
bNumInterfaces: number;
bConfigurationValue: number;
iConfiguration: number;
bmAttributes: number;
bMaxPower: number;
descriptors: any[];
};
static parseInterfaceDescriptor(data: DataView): any;
static parseFunctionalDescriptor(data: DataView): {
bLength: number;
bDescriptorType: number;
bmAttributes: number;
wDetachTimeOut: number;
wTransferSize: number;
bcdDFUVersion: number;
};
static parseSubDescriptors(descriptorData: any): any[];
}
export declare class DeviceSettings {
configuration: USBConfiguration;
interface: USBInterface;
alternate: USBAlternateInterface;
name: string;
device: USBDevice;
}
export declare class Logger {
debug(...data: any): void;
info(...data: any): void;
log(...data: any): void;
warn(...data: any): void;
error(...data: any): void;
}
export interface ProgressHandler {
(done: number, total: number | undefined): void;
}
/**
* Represents a DFU-enabled connected device.
*/
export declare class Device {
protected device_: USBDevice;
protected settings: DeviceSettings;
protected intfNumber: number;
protected _log: Logger;
protected _progressHandler: ProgressHandler;
constructor(device: USBDevice, settings: DeviceSettings);
set log(value: Logger);
set progressHandler(value: ProgressHandler);
logDebug(...msg: any): void;
logInfo(...msg: any): void;
logWarning(...msg: any): void;
logError(...msg: any): void;
logProgress(done: number, total: number | undefined): void;
open(): Promise<void>;
close(): Promise<void>;
readDeviceDescriptor(): any;
readStringDescriptor(index: number, langID: number | undefined): Promise<string | any[]>;
readInterfaceNames(): Promise<any>;
readConfigurationDescriptor(index: number): any;
requestOut(bRequest: number, data?: BufferSource, wValue?: number): any;
requestIn(bRequest: number, wLength: number, wValue?: number): any;
detach(): any;
waitDisconnected(timeout: number): Promise<unknown>;
async_sleep(duration_ms: number): Promise<unknown>;
download(data: BufferSource, wValue: number): any;
upload(length: number, blockNum: number): any;
clearStatus(): any;
getStatus(): any;
getState(): any;
abort(): any;
abortToIdle(): Promise<void>;
poll_until(state_predicate: (state: number) => boolean): Promise<any>;
poll_until_idle(idle_state: any): Promise<any>;
}
export default DFU;