@mytec Phase 1 - Core UI & Manual Input, Phase 2 - RF Calculation Engine, Phase 3 - Heatmap Visualization
This commit is contained in:
24
frontend/src/types/coverage.ts
Normal file
24
frontend/src/types/coverage.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
export interface CoveragePoint {
|
||||
lat: number;
|
||||
lon: number;
|
||||
rsrp: number; // dBm (calculated signal strength)
|
||||
siteId: string; // which site provides this coverage
|
||||
}
|
||||
|
||||
export interface CoverageResult {
|
||||
points: CoveragePoint[];
|
||||
calculationTime: number; // milliseconds
|
||||
totalPoints: number;
|
||||
settings: CoverageSettings;
|
||||
}
|
||||
|
||||
export interface CoverageSettings {
|
||||
radius: number; // km (calculation radius)
|
||||
resolution: number; // meters (grid resolution)
|
||||
rsrpThreshold: number; // dBm (minimum signal to display)
|
||||
}
|
||||
|
||||
export interface GridPoint {
|
||||
lat: number;
|
||||
lon: number;
|
||||
}
|
||||
11
frontend/src/types/frequency.ts
Normal file
11
frontend/src/types/frequency.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
export interface FrequencyBand {
|
||||
value: number; // MHz
|
||||
name: string; // e.g., "Band 3"
|
||||
range: string; // e.g., "1710-1880 MHz"
|
||||
type: 'LTE' | 'UHF' | 'VHF' | '5G' | 'Custom';
|
||||
characteristics: {
|
||||
range: 'short' | 'medium' | 'long';
|
||||
penetration: 'poor' | 'fair' | 'good' | 'excellent';
|
||||
typical: string;
|
||||
};
|
||||
}
|
||||
8
frontend/src/types/index.ts
Normal file
8
frontend/src/types/index.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
export type { Site, SiteFormData } from './site.ts';
|
||||
export type {
|
||||
CoveragePoint,
|
||||
CoverageResult,
|
||||
CoverageSettings,
|
||||
GridPoint,
|
||||
} from './coverage.ts';
|
||||
export type { FrequencyBand } from './frequency.ts';
|
||||
21
frontend/src/types/site.ts
Normal file
21
frontend/src/types/site.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
export interface Site {
|
||||
id: string;
|
||||
name: string;
|
||||
lat: number;
|
||||
lon: number;
|
||||
height: number; // meters above ground (1-100)
|
||||
power: number; // dBm (10-50)
|
||||
gain: number; // dBi (0-25)
|
||||
frequency: number; // MHz (any value)
|
||||
antennaType: 'omni' | 'sector';
|
||||
azimuth?: number; // degrees (0-360), sector only
|
||||
beamwidth?: number; // degrees (30-120), sector only
|
||||
color: string; // hex color for map marker
|
||||
visible: boolean;
|
||||
notes?: string;
|
||||
equipment?: string;
|
||||
createdAt: Date;
|
||||
updatedAt: Date;
|
||||
}
|
||||
|
||||
export type SiteFormData = Omit<Site, 'id' | 'createdAt' | 'updatedAt'>;
|
||||
Reference in New Issue
Block a user