UNPKG

@9wick/esptool.js

Version:

TypeScript/Nodejs port of the esptool

126 lines 3.67 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EsptoolSerial = exports.DummyReader = void 0; const serialport_1 = __importDefault(require("serialport")); class DummyReader { constructor(serial) { this.serial = serial; } read() { const value = this.serial.port.read(); // if (value) { // console.log("data", value); // console.log("str", value.toString()); // } const done = false; return { value, done }; } releaseLock() { } cancel() { this.serial.close(); } } exports.DummyReader = DummyReader; class EsptoolSerial { constructor(path, option) { this.port = new serialport_1.default(path, option); // this.port.on("data", (data: Buffer) => { // console.log("data", data); // console.log("str", data.toString()); // }); this.port.on("open", () => { // console.log("open"); }); this.port.on("error", (error) => { console.log("error", error); }); this.port.on("close", (reason) => { // console.log("close", reason); }); this.readable = { getReader: () => { const dummyReader = new DummyReader(this); return dummyReader; }, cancel: async (reason) => { return this.port.close(); }, }; } write(data) { const dataArray = Array.from(data); // console.log("write", Buffer.from(dataArray)); return new Promise((resolve, reject) => { this.port.write(dataArray, (error) => { if (error) { reject(error); } resolve(null); }); }); } async setSignals(option) { if (!this.port.isOpen) { throw new Error("port is not open"); } const param = {}; if (option.break !== undefined) { param.brk = option.break; } if (option.requestToSend !== undefined) { param.rts = option.requestToSend; } if (option.dataTerminalReady !== undefined) { param.dtr = option.dataTerminalReady; } await this.wait(1); return new Promise((resolve, reject) => { this.port.set(param, (error) => { if (error) { reject(error); } resolve(null); }); }); } setBaudRate(baudRate) { this.port.update({ baudRate }); } open({ baudRate } = {}) { if (baudRate) { this.port.update({ baudRate }); } if (this.port.isOpen) { return; } return new Promise((resolve, reject) => { this.port.open((error) => { if (error) { reject(error); } resolve(null); }); }); } close() { if (!this.port.isOpen) { return; } return new Promise((resolve, reject) => { this.port.close((error) => { if (error) { reject(error); } resolve(null); }); }); } wait(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } } exports.EsptoolSerial = EsptoolSerial; //# sourceMappingURL=serial.js.map