Skip to content

Commit e8b9041

Browse files
committed
flasher fix
1 parent a061540 commit e8b9041

1 file changed

Lines changed: 16 additions & 14 deletions

File tree

docs/flash.html

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<title>M45 Core Firmware Flasher</title>
77
<script
88
type="module"
9-
src="https://unpkg.com/esp-web-tools@10/dist/web/install-button.js?module"
9+
src="https://jason2866.github.io/esp-web-tools/dist/web/install-button.js?module"
1010
></script>
1111
<style>
1212
:root {
@@ -291,14 +291,17 @@ <h2>Settings</h2>
291291
return document.querySelector("input[name='display']:checked").value;
292292
}
293293

294-
function findAsset(release, suffix) {
295-
return release.assets.find((asset) => asset.name.endsWith(suffix));
294+
function assetName(release, variant, eraseSettings) {
295+
if (variant === "oled") {
296+
return `m45-core-${release.tag_name}-oled${eraseSettings ? "-merged" : ""}.bin`;
297+
}
298+
return `m45-core-${release.tag_name}-ideaspark-19-lcd${eraseSettings ? "-merged" : ""}.bin`;
296299
}
297300

298-
function findRequiredAsset(release, suffix) {
299-
const asset = findAsset(release, suffix);
301+
function findRequiredAsset(release, name) {
302+
const asset = release.assets.find((item) => item.name === name);
300303
if (!asset) {
301-
throw new Error(`Latest release is missing ${suffix}.`);
304+
throw new Error(`Latest release is missing ${name}.`);
302305
}
303306
if (!asset.digest || !asset.digest.startsWith("sha256:")) {
304307
throw new Error(`GitHub did not publish a SHA-256 digest for ${asset.name}.`);
@@ -341,8 +344,9 @@ <h2>Settings</h2>
341344
const mode = eraseSettingsEl.checked ? "erase" : "keep";
342345
const choice = assetsByMode[display][mode];
343346
const label = display === "oled" ? "OLED" : "LCD";
344-
const action = mode === "erase" ? "Erase Settings" : "Keep Settings";
345-
setManifest(manifestFor(`M45 Core ${label} ${action}`, choice.asset, choice.offset));
347+
setManifest(manifestFor("Flash Device", choice.asset, choice.offset));
348+
statusEl.innerHTML =
349+
`Ready to flash ${label} ${releaseTag}. ${mode === "erase" ? "WiFi/pool settings will be erased." : "WiFi/pool settings will be kept."}`;
346350
}
347351

348352
function applyBaudRate() {
@@ -359,17 +363,15 @@ <h2>Settings</h2>
359363
releaseTag = release.tag_name;
360364
assetsByMode = {
361365
oled: {
362-
keep: { asset: findRequiredAsset(release, "-oled.bin"), offset: 0x10000 },
363-
erase: { asset: findRequiredAsset(release, "-oled-merged.bin"), offset: 0 }
366+
keep: { asset: findRequiredAsset(release, assetName(release, "oled", false)), offset: 0x10000 },
367+
erase: { asset: findRequiredAsset(release, assetName(release, "oled", true)), offset: 0 }
364368
},
365369
lcd: {
366-
keep: { asset: findRequiredAsset(release, "-ideaspark-19-lcd.bin"), offset: 0x10000 },
367-
erase: { asset: findRequiredAsset(release, "-ideaspark-19-lcd-merged.bin"), offset: 0 }
370+
keep: { asset: findRequiredAsset(release, assetName(release, "lcd", false)), offset: 0x10000 },
371+
erase: { asset: findRequiredAsset(release, assetName(release, "lcd", true)), offset: 0 }
368372
}
369373
};
370-
371374
refreshManifest();
372-
statusEl.innerHTML = `Ready to flash <a href="${release.html_url}">${releaseTag}</a>. Firmware checks passed.`;
373375
}
374376

375377
displayInputs.forEach((input) => input.addEventListener("change", refreshManifest));

0 commit comments

Comments
 (0)