Merge Heltec V4 firmware picker aliases

This commit is contained in:
mikecarper committed 2026-08-23 08:33:16 -07:00
1 parent b75441c819
commit b302dbf7fc
2 files changed
+33 -4

No files matched your search

+19 -3
View File
@@ -80,6 +80,12 @@
"hex",
]);
const HARDWARE_ALIASES = Object.freeze({
// Generated Full Companion artifact name. It uses the standard Heltec V4
// board definition and auto-detects the V4.2 and V4.3 FEM hardware.
"heltec_v4_2_v4_3": "heltec_v4",
});
let pickerInstanceCount = 0;
function isSafeGithubUrl(value) {
@@ -299,7 +305,7 @@
return {
target: target,
hardware: parts.hardware || target,
hardware: canonicalHardware(parts.hardware || target),
role: parts.role,
logging: logging,
mode: mode,
@@ -309,6 +315,11 @@
};
}
function canonicalHardware(hardware) {
const value = String(hardware || "");
return HARDWARE_ALIASES[value] || value;
}
function hardwareFamilyFor(hardware, hardwareNames) {
const value = String(hardware || "");
const lowerValue = value.toLowerCase();
@@ -327,10 +338,14 @@
function humanizeHardwareVariant(hardware, family) {
const value = String(hardware || "");
const parent = String(family || "");
if (!parent || value === parent) return "Base / standard";
if (!parent || value === parent) {
if (value === "heltec_v4") {
return "Base / standard (V4.2 / V4.3 auto-detect)";
}
return "Base / standard";
}
const knownLabels = {
"heltec_v4_2_v4_3": "V4.2 / V4.3",
"heltec_v4_3": "V4.3",
"heltec_v4_3_expansionkit_tft": "V4.3 + expansion kit + TFT",
"heltec_v4_3_tft": "V4.3 + TFT",
@@ -943,6 +958,7 @@
flattenReleaseAssets: flattenReleaseAssets,
parseFirmwareAsset: parseFirmwareAsset,
parseTargetProfile: parseTargetProfile,
canonicalHardware: canonicalHardware,
hardwareFamilyFor: hardwareFamilyFor,
humanizeHardwareVariant: humanizeHardwareVariant,
buildCatalog: buildCatalog,
+14 -1
View File
@@ -133,6 +133,19 @@ const fullUsbLogging = picker.parseTargetProfile(
assert.strictEqual(fullUsbLogging.mode, "usb");
assert.strictEqual(fullUsbLogging.variant, "default");
const heltecV4Full = picker.parseTargetProfile(
"heltec_v4_2_v4_3_companion_radio_full_femon"
);
assert.strictEqual(heltecV4Full.target,
"heltec_v4_2_v4_3_companion_radio_full_femon");
assert.strictEqual(heltecV4Full.hardware, "heltec_v4");
assert.strictEqual(heltecV4Full.mode, "full");
assert.strictEqual(heltecV4Full.variant, "femon");
assert.strictEqual(
picker.canonicalHardware("heltec_v4_2_v4_3"),
"heltec_v4"
);
const standardRepeater = profile("Station_G2_repeater");
assert.strictEqual(standardRepeater.hardwareFamily, "Station_G2");
assert.strictEqual(standardRepeater.role, "repeater");
@@ -209,7 +222,7 @@ assert.strictEqual(
);
assert.strictEqual(
picker.humanizeHardwareVariant("heltec_v4", "heltec_v4"),
"Base / standard"
"Base / standard (V4.2 / V4.3 auto-detect)"
);
assert.strictEqual(
picker.humanizeHardwareVariant("heltec_v4_3_tft", "heltec_v4"),