import type { FrequencyBand } from '@/types/index.ts'; export const COMMON_FREQUENCIES: FrequencyBand[] = [ { value: 70, name: 'VHF Low', range: '30-88 MHz', type: 'VHF', characteristics: { range: 'long', penetration: 'excellent', typical: 'Military tactical, long-range ground wave', }, }, { value: 225, name: 'Military UHF', range: '225-400 MHz', type: 'UHF', characteristics: { range: 'long', penetration: 'good', typical: 'NATO MILCOM, SINCGARS, air-ground', }, }, { value: 700, name: 'Band 28', range: '703-803 MHz', type: 'LTE', characteristics: { range: 'long', penetration: 'excellent', typical: 'Extended range LTE, first responder (FirstNet)', }, }, { value: 800, name: 'Band 20', range: '791-862 MHz', type: 'LTE', characteristics: { range: 'long', penetration: 'excellent', typical: 'Rural coverage, deep building penetration', }, }, { value: 900, name: 'Band 8', range: '880-960 MHz', type: 'LTE', characteristics: { range: 'long', penetration: 'excellent', typical: 'GSM refarming, IoT, rural coverage', }, }, { value: 1800, name: 'Band 3', range: '1710-1880 MHz', type: 'LTE', characteristics: { range: 'medium', penetration: 'good', typical: 'Urban/suburban, most common in Ukraine', }, }, { value: 1900, name: 'Band 2', range: '1850-1990 MHz', type: 'LTE', characteristics: { range: 'medium', penetration: 'good', typical: 'North America, some military equipment', }, }, { value: 2100, name: 'Band 1', range: '1920-2170 MHz', type: 'LTE', characteristics: { range: 'medium', penetration: 'good', typical: 'Most deployed LTE band globally (IMT 2100)', }, }, { value: 2600, name: 'Band 7', range: '2500-2690 MHz', type: 'LTE', characteristics: { range: 'short', penetration: 'fair', typical: 'High capacity urban, shorter range', }, }, { value: 150, name: 'VHF High', range: '136-174 MHz', type: 'VHF', characteristics: { range: 'long', penetration: 'excellent', typical: 'Tactical radio, emergency services', }, }, { value: 450, name: 'UHF', range: '400-470 MHz', type: 'UHF', characteristics: { range: 'medium', penetration: 'good', typical: 'Military tactical radio, PMR446', }, }, { value: 3500, name: 'Band 42/43 (n78)', range: '3400-3800 MHz', type: '5G', characteristics: { range: 'short', penetration: 'poor', typical: '5G NR, high bandwidth', }, }, ]; export const QUICK_FREQUENCIES = [700, 800, 900, 1800, 1900, 2100, 2600]; // Tactical radio presets for UHF/VHF export const TACTICAL_FREQUENCIES = [70, 150, 225, 450]; // All quick frequencies grouped by band type export const FREQUENCY_GROUPS = { VHF: [70, 150], UHF: [225, 450], LTE: [700, 800, 900, 1800, 1900, 2100, 2600], '5G': [3500], } as const; export function getFrequencyInfo(frequency: number): FrequencyBand | null { return ( COMMON_FREQUENCIES.find((band) => Math.abs(band.value - frequency) < 50) || null ); } export function getWavelength(frequencyMHz: number): string { const wavelengthMeters = 300 / frequencyMHz; if (wavelengthMeters >= 1) { return `${wavelengthMeters.toFixed(2)} m`; } return `${(wavelengthMeters * 100).toFixed(1)} cm`; }