feat(icom): offer the bands the connected radio actually has

The band row was hardwired to 160-6 m, so an IC-9700 - the one radio in the range with no HF at all - showed ten dead buttons and none of 2 m, 70 cm or 23 cm. bandsFor(model) follows the model, exactly as attOptions already did for the attenuator steps. bandOfHz's labels had to move with it: it returned '70' where the button says '70cm', so the current-band highlight could never have matched, and it knew nothing of 23 cm.
This commit is contained in:
2026-08-10 09:07:08 +02:00
parent fb78b1c052
commit da9c76e161
8 changed files with 147 additions and 6 deletions
+13
View File
@@ -16,6 +16,7 @@ import {powergenius} from '../models';
import {spe} from '../models';
import {solar} from '../models';
import {tunergenius} from '../models';
import {webpub} from '../models';
import {winkeyer} from '../models';
import {alerts} from '../models';
import {audio} from '../models';
@@ -509,6 +510,10 @@ export function GetUltrabeamSettings():Promise<main.UltrabeamSettings>;
export function GetUltrabeamStatus():Promise<main.UltrabeamStatusInfo>;
export function GetWebPublishConfig():Promise<webpub.Config>;
export function GetWebPublishStatus():Promise<main.WebPublishStatus>;
export function GetWhatsNew():Promise<Array<main.ChangelogEntry>>;
export function GetWinkeyerSettings():Promise<main.WinkeyerSettings>;
@@ -737,6 +742,8 @@ export function PickSaveDatabase():Promise<string>;
export function PopulateBuiltinReferences(arg1:string):Promise<number>;
export function PublishLogNow():Promise<string>;
export function QSLDefaultTemplateID():Promise<number>;
export function QSLDeleteTemplate(arg1:number):Promise<void>;
@@ -913,6 +920,8 @@ export function SaveUDPIntegration(arg1:udp.Config):Promise<udp.Config>;
export function SaveUltrabeamSettings(arg1:main.UltrabeamSettings):Promise<void>;
export function SaveWebPublishConfig(arg1:webpub.Config):Promise<void>;
export function SaveWinkeyerSettings(arg1:main.WinkeyerSettings):Promise<void>;
export function ScpLookup(arg1:string):Promise<scp.Result>;
@@ -1047,6 +1056,8 @@ export function TestStationDevice(arg1:main.StationDevice):Promise<main.StationT
export function TestUltrabeam(arg1:main.UltrabeamSettings):Promise<void>;
export function TestWebPublishFTP(arg1:webpub.Config):Promise<string>;
export function TuneYaesuATU():Promise<void>;
export function TunerGeniusActivate(arg1:number):Promise<void>;
@@ -1079,6 +1090,8 @@ export function UploadCallsign(arg1:string):Promise<string>;
export function UploadQSOsManual(arg1:string,arg2:Array<number>):Promise<void>;
export function WebPublishColumns():Promise<Array<Record<string, string>>>;
export function WinkeyerBackspace():Promise<void>;
export function WinkeyerConnect():Promise<void>;
+24
View File
@@ -966,6 +966,14 @@ export function GetUltrabeamStatus() {
return window['go']['main']['App']['GetUltrabeamStatus']();
}
export function GetWebPublishConfig() {
return window['go']['main']['App']['GetWebPublishConfig']();
}
export function GetWebPublishStatus() {
return window['go']['main']['App']['GetWebPublishStatus']();
}
export function GetWhatsNew() {
return window['go']['main']['App']['GetWhatsNew']();
}
@@ -1422,6 +1430,10 @@ export function PopulateBuiltinReferences(arg1) {
return window['go']['main']['App']['PopulateBuiltinReferences'](arg1);
}
export function PublishLogNow() {
return window['go']['main']['App']['PublishLogNow']();
}
export function QSLDefaultTemplateID() {
return window['go']['main']['App']['QSLDefaultTemplateID']();
}
@@ -1774,6 +1786,10 @@ export function SaveUltrabeamSettings(arg1) {
return window['go']['main']['App']['SaveUltrabeamSettings'](arg1);
}
export function SaveWebPublishConfig(arg1) {
return window['go']['main']['App']['SaveWebPublishConfig'](arg1);
}
export function SaveWinkeyerSettings(arg1) {
return window['go']['main']['App']['SaveWinkeyerSettings'](arg1);
}
@@ -2042,6 +2058,10 @@ export function TestUltrabeam(arg1) {
return window['go']['main']['App']['TestUltrabeam'](arg1);
}
export function TestWebPublishFTP(arg1) {
return window['go']['main']['App']['TestWebPublishFTP'](arg1);
}
export function TuneYaesuATU() {
return window['go']['main']['App']['TuneYaesuATU']();
}
@@ -2106,6 +2126,10 @@ export function UploadQSOsManual(arg1, arg2) {
return window['go']['main']['App']['UploadQSOsManual'](arg1, arg2);
}
export function WebPublishColumns() {
return window['go']['main']['App']['WebPublishColumns']();
}
export function WinkeyerBackspace() {
return window['go']['main']['App']['WinkeyerBackspace']();
}
+61
View File
@@ -3267,6 +3267,20 @@ export namespace main {
this.text = source["text"];
}
}
export class WebPublishStatus {
last_run: string;
last_err: string;
static createFrom(source: any = {}) {
return new WebPublishStatus(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.last_run = source["last_run"];
this.last_err = source["last_err"];
}
}
export class WinkeyerSettings {
enabled: boolean;
port: string;
@@ -4813,6 +4827,53 @@ export namespace udp {
}
export namespace webpub {
export class Config {
enabled: boolean;
format: string;
folder: string;
file_name: string;
title: string;
count: number;
interval_min: number;
columns: string[];
ftp_enabled: boolean;
ftp_host: string;
ftp_port: number;
ftp_user: string;
ftp_password: string;
ftp_tls: boolean;
ftp_folder: string;
ftp_file_name: string;
static createFrom(source: any = {}) {
return new Config(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.enabled = source["enabled"];
this.format = source["format"];
this.folder = source["folder"];
this.file_name = source["file_name"];
this.title = source["title"];
this.count = source["count"];
this.interval_min = source["interval_min"];
this.columns = source["columns"];
this.ftp_enabled = source["ftp_enabled"];
this.ftp_host = source["ftp_host"];
this.ftp_port = source["ftp_port"];
this.ftp_user = source["ftp_user"];
this.ftp_password = source["ftp_password"];
this.ftp_tls = source["ftp_tls"];
this.ftp_folder = source["ftp_folder"];
this.ftp_file_name = source["ftp_file_name"];
}
}
}
export namespace winkeyer {
export class Status {