Greetings,
I was wondering if there was a way to make a simple gps-type map gauge that would use a bmp of a vintage navigation map as a background? Top is always north and the image is static. Plotting the Azimuth1 and Length as well as the GeoCalcExtraPolationLatitude and GeoCalcExtraPolationLongitude are all that would be required. Maybe use an "X" symbol to represent the extrapolated point.
I'm trying to recreate pseudo-hyperbolic navigation for FS9. I realize that hyperbolic navigation is not possible (at least with my very limited knowledge of xml, anyway) in FS9, but a simple way of doing an azimuth and length from a known station would suite my purposes for now. The movement of the aircraft would be enough to simulate navigator error, hence not wanting to show the real gps position. The system would be based on LORAN-A chain stations, with the ability to plot two consecutive azimuths and lengths based on the station pair (one azimuth and length from each station).
The user could "plot" as many "fixes" as he/she would want, but I think I'm going to limit it to 3 or 4 total. The fixes, in reality, would be gps waypoints. As a result, I'm not sure if you can have more than one on the display. You can, however, have multiple "plots" saved for later callback.
I have different maps available to me at this point, and based on the excellent guide by Rob McElrath I realize that it is possible to have several maps to call from depending on the aircraft position.
I tried to search the forums for something along the lines, but he return keeps dropping "gps" and "map" from the search saying they are too short.
I haven't tried the code yet for the main gauge, but here is what I have. The code is based on an HFDF gauge who's author gave permission to modify. This would be a sole, update gauge from where the main GUI gauges (controller and map gauges) would get their input from. I would make as many "system" gauges as necessary - more for ease of access to data than for anything else. I'd rather have one for each "chain" than have to dig through miles of code for something. There is still much to add to this from the original code, but just wanted to know if I was on the right track.
Here is the code so far:
<Gauge Name="LORAN_SYS1a" Version="1.0">
<Update>
<!-- First Load and Station list -->
(L:Load1, bool) 0 ==
if{
<!-- U.S. East Coast Chain -->
<!-- Nantucket 1 -->
41.2498083333 (> L:Lat_Nantucket, number)
-69.9723222222 (> L:Lon_Nantucket, number)
1 (> L:Sta_Type_Nantucket, number)
1 (> L:Sta_Channel_Nantucket, number)
2 (> LRR_Nantucket, number)
4 (> L:Sta_Select_Nantucket, number)
124 (> L:Sta_Pair_1H4, number)
<!-- Cape Hatteras 1 -->
35.2407833333 (> L:Lat_Cape_Hatteras, number)
-75.5271916667 (> L:Lon_Cape_Hatteras, number)
2 (> L:Sta_Type_Cape_Hatteras, number)
1 (> L:Sta_Channel_Cape_Hatteras, number)
2 (> LRR_Cape_Hatteras, number)
4 (> L:Sta_Select_Cape_Hatteras, number)
124 (> L:Sta_Pair_1H4, number)
1 (> L:Sta_Type_set, number)
1 (> L:Sta_Channel_set, number)
1 (> LRR_set, number)
1 (> L:Sta_Select_set, number)
121 (> L:Sta_Pair_set, number)
1 (> L:Load1, bool)
}
(L:Load_counter_state, bool) 0 ==
if{
(L:Load_counter, number) 1 + (> L:Load_counter, number)
0 (> L:Wind_dir_rep, number)
0 (> L:Wind_vel_rep, number)
0 (> L:Magvar_rep, number)
}
(L:Load_counter, number) 200 ==
if{
1 (> L:Load_counter_state, bool)
}
<!-- Station Pair Load -->
if{
1 (L:Sta_Channel_set, number) ==
2 (LRR_set, number) ==
4 (L:Sta_Select_set, number) == & &
124 (> L:Sta_Pair_set, number)
}
if{
(Sta_Pair_set, number) (L:Sta_Pair_1H4, number) ==
(L:Lat_Nantucket, number) (> C:fs9gps:GeoCalcLatitude1, degrees)
(L:Lon_Nantucket, number) (> C:fs9gps:GeoCalcLongitude1, degrees)
(C:fs9gps:GeoCalcAzimuth1, degrees) (> L:Bearing_01, number)
(C:fs9gps:GeoCalcLength, meters) 1852 / (> Listance_01, number)
(C:fs9gps:GeoCalcExtraPolationLatitude, degrees) (> L:Acft_Lat_01, number)
(C:fs9gps:GeoCalcExtraPolationLongitude, degrees) (> L:Acft_Lon_01, number)
(L:Lat_Cape_Hatteras, number) (> C:fs9gps:GeoCalcLatitude1, degrees)
(L:Lon_Cape_Hatteras, number) (> C:fs9gps:GeoCalcLongitude1, degrees)
(C:fs9gps:GeoCalcAzimuth1, degrees) (> L:Bearing_02, number)
(C:fs9gps:GeoCalcLength, meters) 1852 / (> Listance_02, number)
(C:fs9gps:GeoCalcExtraPolationLatitude, degrees) (> L:Acft_Lat_02, number)
(C:fs9gps:GeoCalcExtraPolationLongitude, degrees) (> L:Acft_Lon_02, number)
(L:Sta_Pair_set, number) 124 ==
if{
(L:Acft_Lat_01, number) (> L:MAP_01_Lat, number)
(L:Acft_Lon_01, number) (> L:MAP_01_Lon, number)
(L:Acft_Lat_02, number) (> L:MAP_02_Lat, number)
(L:Acft_Lon_02, number) (> L:MAP_02_Lon, number)
}
</Update>
</Gauge>
Thanks in advance for any input. Oh, by the way, how to I get rid of the yellow thing laughing at me in the code? I don't see it anywhere else.
Thanks again,
Jorge
Miami, FL
I was wondering if there was a way to make a simple gps-type map gauge that would use a bmp of a vintage navigation map as a background? Top is always north and the image is static. Plotting the Azimuth1 and Length as well as the GeoCalcExtraPolationLatitude and GeoCalcExtraPolationLongitude are all that would be required. Maybe use an "X" symbol to represent the extrapolated point.
I'm trying to recreate pseudo-hyperbolic navigation for FS9. I realize that hyperbolic navigation is not possible (at least with my very limited knowledge of xml, anyway) in FS9, but a simple way of doing an azimuth and length from a known station would suite my purposes for now. The movement of the aircraft would be enough to simulate navigator error, hence not wanting to show the real gps position. The system would be based on LORAN-A chain stations, with the ability to plot two consecutive azimuths and lengths based on the station pair (one azimuth and length from each station).
The user could "plot" as many "fixes" as he/she would want, but I think I'm going to limit it to 3 or 4 total. The fixes, in reality, would be gps waypoints. As a result, I'm not sure if you can have more than one on the display. You can, however, have multiple "plots" saved for later callback.
I have different maps available to me at this point, and based on the excellent guide by Rob McElrath I realize that it is possible to have several maps to call from depending on the aircraft position.
I tried to search the forums for something along the lines, but he return keeps dropping "gps" and "map" from the search saying they are too short.
I haven't tried the code yet for the main gauge, but here is what I have. The code is based on an HFDF gauge who's author gave permission to modify. This would be a sole, update gauge from where the main GUI gauges (controller and map gauges) would get their input from. I would make as many "system" gauges as necessary - more for ease of access to data than for anything else. I'd rather have one for each "chain" than have to dig through miles of code for something. There is still much to add to this from the original code, but just wanted to know if I was on the right track.
Here is the code so far:
<Gauge Name="LORAN_SYS1a" Version="1.0">
<Update>
<!-- First Load and Station list -->
(L:Load1, bool) 0 ==
if{
<!-- U.S. East Coast Chain -->
<!-- Nantucket 1 -->
41.2498083333 (> L:Lat_Nantucket, number)
-69.9723222222 (> L:Lon_Nantucket, number)
1 (> L:Sta_Type_Nantucket, number)
1 (> L:Sta_Channel_Nantucket, number)
2 (> LRR_Nantucket, number)
4 (> L:Sta_Select_Nantucket, number)
124 (> L:Sta_Pair_1H4, number)
<!-- Cape Hatteras 1 -->
35.2407833333 (> L:Lat_Cape_Hatteras, number)
-75.5271916667 (> L:Lon_Cape_Hatteras, number)
2 (> L:Sta_Type_Cape_Hatteras, number)
1 (> L:Sta_Channel_Cape_Hatteras, number)
2 (> LRR_Cape_Hatteras, number)
4 (> L:Sta_Select_Cape_Hatteras, number)
124 (> L:Sta_Pair_1H4, number)
1 (> L:Sta_Type_set, number)
1 (> L:Sta_Channel_set, number)
1 (> LRR_set, number)
1 (> L:Sta_Select_set, number)
121 (> L:Sta_Pair_set, number)
1 (> L:Load1, bool)
}
(L:Load_counter_state, bool) 0 ==
if{
(L:Load_counter, number) 1 + (> L:Load_counter, number)
0 (> L:Wind_dir_rep, number)
0 (> L:Wind_vel_rep, number)
0 (> L:Magvar_rep, number)
}
(L:Load_counter, number) 200 ==
if{
1 (> L:Load_counter_state, bool)
}
<!-- Station Pair Load -->
if{
1 (L:Sta_Channel_set, number) ==
2 (LRR_set, number) ==
4 (L:Sta_Select_set, number) == & &
124 (> L:Sta_Pair_set, number)
}
if{
(Sta_Pair_set, number) (L:Sta_Pair_1H4, number) ==
(L:Lat_Nantucket, number) (> C:fs9gps:GeoCalcLatitude1, degrees)
(L:Lon_Nantucket, number) (> C:fs9gps:GeoCalcLongitude1, degrees)
(C:fs9gps:GeoCalcAzimuth1, degrees) (> L:Bearing_01, number)
(C:fs9gps:GeoCalcLength, meters) 1852 / (> Listance_01, number)
(C:fs9gps:GeoCalcExtraPolationLatitude, degrees) (> L:Acft_Lat_01, number)
(C:fs9gps:GeoCalcExtraPolationLongitude, degrees) (> L:Acft_Lon_01, number)
(L:Lat_Cape_Hatteras, number) (> C:fs9gps:GeoCalcLatitude1, degrees)
(L:Lon_Cape_Hatteras, number) (> C:fs9gps:GeoCalcLongitude1, degrees)
(C:fs9gps:GeoCalcAzimuth1, degrees) (> L:Bearing_02, number)
(C:fs9gps:GeoCalcLength, meters) 1852 / (> Listance_02, number)
(C:fs9gps:GeoCalcExtraPolationLatitude, degrees) (> L:Acft_Lat_02, number)
(C:fs9gps:GeoCalcExtraPolationLongitude, degrees) (> L:Acft_Lon_02, number)
(L:Sta_Pair_set, number) 124 ==
if{
(L:Acft_Lat_01, number) (> L:MAP_01_Lat, number)
(L:Acft_Lon_01, number) (> L:MAP_01_Lon, number)
(L:Acft_Lat_02, number) (> L:MAP_02_Lat, number)
(L:Acft_Lon_02, number) (> L:MAP_02_Lon, number)
}
</Update>
</Gauge>
Thanks in advance for any input. Oh, by the way, how to I get rid of the yellow thing laughing at me in the code? I don't see it anywhere else.
Thanks again,
Jorge
Miami, FL