Skip to content

Commit b07cda9

Browse files
Ergo improvements for firmware_tool
1 parent 40d41fc commit b07cda9

File tree

1 file changed

+29
-12
lines changed

1 file changed

+29
-12
lines changed

docs/firmware_tool.html

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,19 @@
6161

6262
let isConsoleClosed = false;
6363

64-
consoleStartButton.onclick = async () => {
64+
async function reset() {
65+
if (transport) {
66+
await transport.setDTR(false);
67+
await new Promise((resolve) => setTimeout(resolve, 100));
68+
await transport.setDTR(true);
69+
}
70+
}
71+
72+
async function startConsole() {
73+
if (transport) {
74+
await transport.disconnect();
75+
await transport.waitForUnlock(1500);
76+
}
6577
if (device === null) {
6678
device = await navigator.serial.requestPort({});
6779
transport = new Transport(device, true);
@@ -70,6 +82,8 @@
7082
await transport.connect(115200);
7183
isConsoleClosed = false;
7284

85+
reset();
86+
7387
while (true && !isConsoleClosed) {
7488
const val = await transport.rawRead();
7589
if (typeof val !== "undefined") {
@@ -78,28 +92,24 @@
7892
break;
7993
}
8094
}
95+
isConsoleClosed = true;
8196
console.log("quitting console");
8297
};
8398

84-
resetButton.onclick = async () => {
85-
if (transport) {
86-
await transport.setDTR(false);
87-
await new Promise((resolve) => setTimeout(resolve, 100));
88-
await transport.setDTR(true);
89-
}
90-
};
91-
9299
function loadBinaryResource(url) {
93100
const req = new XMLHttpRequest();
94101
req.open("GET", url, false);
95102

96-
// XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
97103
req.overrideMimeType("text/plain; charset=x-user-defined");
98104
req.send(null);
99105
return req.status === 200 ? req.responseText : "";
100106
}
101107

102-
programButton.onclick = async () => {
108+
async function program() {
109+
if (transport) {
110+
await transport.disconnect();
111+
await transport.waitForUnlock(1500);
112+
}
103113
if (device === null) {
104114
device = await navigator.serial.requestPort({});
105115
transport = new Transport(device, true);
@@ -127,13 +137,20 @@
127137
console.error(e);
128138
term.writeln(`Error: ${e.message}`);
129139
}
140+
startConsole();
130141
};
142+
143+
consoleStartButton.onclick = startConsole;
144+
145+
resetButton.onclick = reset;
146+
147+
programButton.onclick = program;
131148
</script>
132149
</head>
133150

134151
<body>
135152
<input type="button" id="programButton" value="Program" />
136-
<input type="button" id="consoleStartButton" value="Connect" />
153+
<input type="button" id="consoleStartButton" value="Open Console" />
137154
<input type="button" id="resetButton" value="Reset" />
138155
<div id="terminal"></div>
139156
</body>

0 commit comments

Comments
 (0)