unit BoardUtils; {$IFDEF FPC} {$MODE Delphi} {$ENDIF} interface function BoardTypeName(BoardType: Integer): string; function FreqToBandIdx(Hz: Double): Integer; implementation uses SysUtils; function BoardTypeName(BoardType: Integer): string; begin case BoardType of 1: Result := 'HERMES (ANAN-10/100)'; 2: Result := 'HERMES-E (ANAN-10E/100B)'; 3: Result := 'ANGELIA (ANAN-100D)'; 4: Result := 'ORION (ANAN-200D)'; 5: Result := 'ORION MkII (ANAN-7000/8000)'; 6: Result := 'HERMES-LITE 2'; 10: Result := 'SATURN (G2)'; else Result := Format('Unknown Board #%d', [BoardType]); end; end; function FreqToBandIdx(Hz: Double): Integer; const BAND_LO: array[0..10] of Double = ( 1800000, 3500000, 5330000, 7000000, 10100000, 14000000, 18068000, 21000000, 24890000, 28000000, 50000000); BAND_HI: array[0..10] of Double = ( 2000000, 4000000, 5410000, 7300000, 10150000, 14350000, 18168000, 21450000, 24990000, 29700000, 54000000); var i: Integer; begin Result := -1; for i := 0 to 10 do if (Hz >= BAND_LO[i]) and (Hz <= BAND_HI[i]) then begin Result := i; Exit; end; end; end.