sct_reader/loaders/vnas_crc/
eram.rs

1use aviation_calc_util::geo::GeoPoint;
2use serde::{Deserialize, Serialize};
3
4use super::facility::BeaconCodeBank;
5
6
7#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct EramConfig {
10    pub nas_id: String,
11    pub geo_maps: Vec<EramGeoMap>,
12    pub emergency_checklist: Vec<String>,
13    pub position_relief_checklist: Vec<String>,
14    pub internal_airports: Vec<String>,
15    pub beacon_code_banks: Vec<BeaconCodeBank>,
16    pub neighboring_stars_configurations: Vec<NeighborStarsConfig>,
17    pub reference_fixes: Vec<String>,
18    pub asr_sites: Vec<AsrSite>,
19    pub conflict_alert_floor: u32,
20    pub airport_single_chars: Vec<String>
21}
22
23#[derive(Debug, Clone, Default, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub struct EramGeoMap {
26    pub id: String,
27    pub name: String,
28    pub label_line_1: String,
29    pub label_line_2: String,
30    pub filter_menu: Vec<EramFilterMenu>,
31    pub bcg_menu: Vec<String>,
32    pub video_map_ids: Vec<String>
33}
34
35#[derive(Debug, Clone, Default, Serialize, Deserialize)]
36#[serde(rename_all = "camelCase")]
37pub struct EramFilterMenu {
38    pub id: String,
39    pub label_line_1: String,
40    pub label_line_2: String
41}
42
43#[derive(Debug, Clone, Default, Serialize, Deserialize)]
44#[serde(rename_all = "camelCase")]
45pub struct NeighborStarsConfig {
46    pub id: String,
47    pub facility_id: String,
48    pub stars_id: String,
49    pub single_character_stars_id: Option<String>,
50    pub field_e_format: Option<String>,
51    pub field_e_letter: Option<String>
52}
53
54#[derive(Debug, Clone, Default, Serialize, Deserialize)]
55#[serde(rename_all = "camelCase")]
56pub struct AsrSite {
57    pub id: String,
58    pub asr_id: String,
59    pub location: GeoPoint,
60    pub range: u32,
61    pub ceiling: u32
62}