mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Merge branch 'master' into develop
This commit is contained in:
commit
0695c48e7a
@ -3238,13 +3238,13 @@ do -- SET_STATIC
|
|||||||
self:F3( { Event } )
|
self:F3( { Event } )
|
||||||
|
|
||||||
if Event.IniObjectCategory == Object.Category.STATIC then
|
if Event.IniObjectCategory == Object.Category.STATIC then
|
||||||
if not self.Database[Event.IniDCSStaticName] then
|
if not self.Database[Event.IniDCSUnitName] then
|
||||||
self.Database[Event.IniDCSStaticName] = STATIC:Register( Event.IniDCSStaticName )
|
self.Database[Event.IniDCSUnitName] = STATIC:Register( Event.IniDCSUnitName )
|
||||||
self:T3( self.Database[Event.IniDCSStaticName] )
|
self:T3( self.Database[Event.IniDCSUnitName] )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return Event.IniDCSStaticName, self.Database[Event.IniDCSStaticName]
|
return Event.IniDCSUnitName, self.Database[Event.IniDCSUnitName]
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Handles the Database to check on any event that Object exists in the Database.
|
--- Handles the Database to check on any event that Object exists in the Database.
|
||||||
@ -3254,10 +3254,10 @@ do -- SET_STATIC
|
|||||||
-- @return #string The name of the STATIC
|
-- @return #string The name of the STATIC
|
||||||
-- @return #table The STATIC
|
-- @return #table The STATIC
|
||||||
function SET_STATIC:FindInDatabase( Event )
|
function SET_STATIC:FindInDatabase( Event )
|
||||||
self:F2( { Event.IniDCSStaticName, self.Set[Event.IniDCSStaticName], Event } )
|
self:F2( { Event.IniDCSUnitName, self.Set[Event.IniDCSUnitName], Event } )
|
||||||
|
|
||||||
|
|
||||||
return Event.IniDCSStaticName, self.Set[Event.IniDCSStaticName]
|
return Event.IniDCSUnitName, self.Set[Event.IniDCSUnitName]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -67,8 +67,10 @@
|
|||||||
-- @field #number subduration Duration how long subtitles are displayed in seconds.
|
-- @field #number subduration Duration how long subtitles are displayed in seconds.
|
||||||
-- @field #boolean metric If true, use metric units. If false, use imperial (default).
|
-- @field #boolean metric If true, use metric units. If false, use imperial (default).
|
||||||
-- @field #boolean PmmHg If true, give pressure in millimeters of Mercury. Default is inHg for imperial and hecto Pascal (=mili Bars) for metric units.
|
-- @field #boolean PmmHg If true, give pressure in millimeters of Mercury. Default is inHg for imperial and hecto Pascal (=mili Bars) for metric units.
|
||||||
|
-- @field #boolean qnhonly If true, suppresses reporting QFE. Default is to report both QNH and QFE.
|
||||||
-- @field #boolean TDegF If true, give temperature in degrees Fahrenheit. Default is in degrees Celsius independent of chosen unit system.
|
-- @field #boolean TDegF If true, give temperature in degrees Fahrenheit. Default is in degrees Celsius independent of chosen unit system.
|
||||||
-- @field #number zuludiff Time difference local vs. zulu in hours.
|
-- @field #number zuludiff Time difference local vs. zulu in hours.
|
||||||
|
-- @field #boolean zulutimeonly If true, suppresses report of local time, sunrise, and sunset.
|
||||||
-- @field #number magvar Magnetic declination/variation at the airport in degrees.
|
-- @field #number magvar Magnetic declination/variation at the airport in degrees.
|
||||||
-- @field #table ils Table of ILS frequencies (can be runway specific).
|
-- @field #table ils Table of ILS frequencies (can be runway specific).
|
||||||
-- @field #table ndbinner Table of inner NDB frequencies (can be runway specific).
|
-- @field #table ndbinner Table of inner NDB frequencies (can be runway specific).
|
||||||
@ -302,8 +304,10 @@ ATIS = {
|
|||||||
subduration = nil,
|
subduration = nil,
|
||||||
metric = nil,
|
metric = nil,
|
||||||
PmmHg = nil,
|
PmmHg = nil,
|
||||||
|
qnhonly = false,
|
||||||
TDegF = nil,
|
TDegF = nil,
|
||||||
zuludiff = nil,
|
zuludiff = nil,
|
||||||
|
zulutimeonly = false,
|
||||||
magvar = nil,
|
magvar = nil,
|
||||||
ils = {},
|
ils = {},
|
||||||
ndbinner = {},
|
ndbinner = {},
|
||||||
@ -362,11 +366,32 @@ ATIS.Alphabet = {
|
|||||||
-- @field #number Nevada +12° (East).
|
-- @field #number Nevada +12° (East).
|
||||||
-- @field #number Normandy -10° (West).
|
-- @field #number Normandy -10° (West).
|
||||||
-- @field #number PersianGulf +2° (East).
|
-- @field #number PersianGulf +2° (East).
|
||||||
|
-- @field #number TheChannel -10° (West).
|
||||||
|
-- @field #number Syria +5° (East).
|
||||||
ATIS.RunwayM2T={
|
ATIS.RunwayM2T={
|
||||||
Caucasus=0,
|
Caucasus=0,
|
||||||
Nevada=12,
|
Nevada=12,
|
||||||
Normany=-10,
|
Normandy=-10,
|
||||||
PersianGulf=2,
|
PersianGulf=2,
|
||||||
|
TheChannel=-10,
|
||||||
|
Syria=5,
|
||||||
|
}
|
||||||
|
|
||||||
|
--- Whether ICAO phraseology is used for ATIS broadcasts.
|
||||||
|
-- @type ATIS.ICAOPhraseology
|
||||||
|
-- @field #boolean Caucasus true.
|
||||||
|
-- @field #boolean Nevada false.
|
||||||
|
-- @field #boolean Normandy true.
|
||||||
|
-- @field #boolean PersianGulf true.
|
||||||
|
-- @field #boolean TheChannel true.
|
||||||
|
-- @field #boolean Syria true.
|
||||||
|
ATIS.ICAOPhraseology={
|
||||||
|
Caucasus=true,
|
||||||
|
Nevada=false,
|
||||||
|
Normandy=true,
|
||||||
|
PersianGulf=true,
|
||||||
|
TheChannel=true,
|
||||||
|
Syria=true,
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Nav point data.
|
--- Nav point data.
|
||||||
@ -415,6 +440,7 @@ ATIS.RunwayM2T={
|
|||||||
-- @field #ATIS.Soundfile MegaHertz
|
-- @field #ATIS.Soundfile MegaHertz
|
||||||
-- @field #ATIS.Soundfile Meters
|
-- @field #ATIS.Soundfile Meters
|
||||||
-- @field #ATIS.Soundfile MetersPerSecond
|
-- @field #ATIS.Soundfile MetersPerSecond
|
||||||
|
-- @field #ATIS.Soundfile Miles
|
||||||
-- @field #ATIS.Soundfile MillimetersOfMercury
|
-- @field #ATIS.Soundfile MillimetersOfMercury
|
||||||
-- @field #ATIS.Soundfile N0
|
-- @field #ATIS.Soundfile N0
|
||||||
-- @field #ATIS.Soundfile N1
|
-- @field #ATIS.Soundfile N1
|
||||||
@ -487,6 +513,7 @@ ATIS.Sound = {
|
|||||||
MegaHertz={filename="MegaHertz.ogg", duration=0.87},
|
MegaHertz={filename="MegaHertz.ogg", duration=0.87},
|
||||||
Meters={filename="Meters.ogg", duration=0.59},
|
Meters={filename="Meters.ogg", duration=0.59},
|
||||||
MetersPerSecond={filename="MetersPerSecond.ogg", duration=1.14},
|
MetersPerSecond={filename="MetersPerSecond.ogg", duration=1.14},
|
||||||
|
Miles={filename="Miles.ogg", duration=1.04},
|
||||||
MillimetersOfMercury={filename="MillimetersOfMercury.ogg", duration=1.53},
|
MillimetersOfMercury={filename="MillimetersOfMercury.ogg", duration=1.53},
|
||||||
Minus={filename="Minus.ogg", duration=0.64},
|
Minus={filename="Minus.ogg", duration=0.64},
|
||||||
N0={filename="N-0.ogg", duration=0.55},
|
N0={filename="N-0.ogg", duration=0.55},
|
||||||
@ -535,7 +562,7 @@ _ATIS={}
|
|||||||
|
|
||||||
--- ATIS class version.
|
--- ATIS class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
ATIS.version="0.8.0"
|
ATIS.version="0.9.0"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO list
|
-- TODO list
|
||||||
@ -898,6 +925,14 @@ function ATIS:SetAltimeterQNH(switch)
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Suppresses QFE readout. Default is to report both QNH and QFE.
|
||||||
|
-- @param #ATIS self
|
||||||
|
-- @return #ATIS self
|
||||||
|
function ATIS:ReportQNHOnly()
|
||||||
|
self.qnhonly=true
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
--- Set magnetic declination/variation at the airport.
|
--- Set magnetic declination/variation at the airport.
|
||||||
--
|
--
|
||||||
-- Default is per map:
|
-- Default is per map:
|
||||||
@ -960,6 +995,14 @@ function ATIS:SetZuluTimeDifference(delta)
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Suppresses local time, sunrise, and sunset. Default is to report all these times.
|
||||||
|
-- @param #ATIS self
|
||||||
|
-- @return #ATIS self
|
||||||
|
function ATIS:ReportZuluTimeOnly()
|
||||||
|
self.zulutimeonly=true
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
--- Add ILS station. Note that this can be runway specific.
|
--- Add ILS station. Note that this can be runway specific.
|
||||||
-- @param #ATIS self
|
-- @param #ATIS self
|
||||||
-- @param #number frequency ILS frequency in MHz.
|
-- @param #number frequency ILS frequency in MHz.
|
||||||
@ -1355,12 +1398,23 @@ function ATIS:onafterBroadcast(From, Event, To)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Visibility in NM.
|
local VISIBILITY=""
|
||||||
local VISIBILITY=string.format("%d", UTILS.Round(UTILS.MetersToNM(visibilitymin)))
|
|
||||||
|
|
||||||
-- Visibility in km.
|
|
||||||
if self.metric then
|
if self.metric then
|
||||||
VISIBILITY=string.format("%d", UTILS.Round(visibilitymin/1000))
|
-- Visibility in km.
|
||||||
|
local reportedviz=UTILS.Round(visibilitymin/1000)
|
||||||
|
-- max reported visibility 9999 m
|
||||||
|
if reportedviz > 10 then
|
||||||
|
reportedviz=10
|
||||||
|
end
|
||||||
|
VISIBILITY=string.format("%d", reportedviz)
|
||||||
|
else
|
||||||
|
-- max reported visibility 10 NM
|
||||||
|
local reportedviz=UTILS.Round(UTILS.MetersToSM(visibilitymin))
|
||||||
|
if reportedviz > 10 then
|
||||||
|
reportedviz=10
|
||||||
|
end
|
||||||
|
VISIBILITY=string.format("%d", reportedviz)
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------
|
--------------
|
||||||
@ -1451,68 +1505,59 @@ function ATIS:onafterBroadcast(From, Event, To)
|
|||||||
self:Transmission(ATIS.Sound.TimeZulu, 0.2, subtitle)
|
self:Transmission(ATIS.Sound.TimeZulu, 0.2, subtitle)
|
||||||
alltext=alltext..";\n"..subtitle
|
alltext=alltext..";\n"..subtitle
|
||||||
|
|
||||||
-- Sunrise Time
|
if not self.zulutimeonly then
|
||||||
subtitle=string.format("Sunrise at %s local time", SUNRISE)
|
|
||||||
self:Transmission(ATIS.Sound.SunriseAt, 0.5, subtitle)
|
|
||||||
self.radioqueue:Number2Transmission(SUNRISE, nil, 0.2)
|
|
||||||
self:Transmission(ATIS.Sound.TimeLocal, 0.2)
|
|
||||||
alltext=alltext..";\n"..subtitle
|
|
||||||
|
|
||||||
-- Sunset Time
|
-- Sunrise Time
|
||||||
subtitle=string.format("Sunset at %s local time", SUNSET)
|
subtitle=string.format("Sunrise at %s local time", SUNRISE)
|
||||||
self:Transmission(ATIS.Sound.SunsetAt, 0.5, subtitle)
|
self:Transmission(ATIS.Sound.SunriseAt, 0.5, subtitle)
|
||||||
self.radioqueue:Number2Transmission(SUNSET, nil, 0.5)
|
self.radioqueue:Number2Transmission(SUNRISE, nil, 0.2)
|
||||||
self:Transmission(ATIS.Sound.TimeLocal, 0.2)
|
self:Transmission(ATIS.Sound.TimeLocal, 0.2)
|
||||||
|
alltext=alltext..";\n"..subtitle
|
||||||
|
|
||||||
|
-- Sunset Time
|
||||||
|
subtitle=string.format("Sunset at %s local time", SUNSET)
|
||||||
|
self:Transmission(ATIS.Sound.SunsetAt, 0.5, subtitle)
|
||||||
|
self.radioqueue:Number2Transmission(SUNSET, nil, 0.5)
|
||||||
|
self:Transmission(ATIS.Sound.TimeLocal, 0.2)
|
||||||
|
alltext=alltext..";\n"..subtitle
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Wind
|
||||||
|
if self.metric then
|
||||||
|
subtitle=string.format("Wind from %s at %s m/s", WINDFROM, WINDSPEED)
|
||||||
|
else
|
||||||
|
subtitle=string.format("Wind from %s at %s knots", WINDFROM, WINDSPEED)
|
||||||
|
end
|
||||||
|
if turbulence>0 then
|
||||||
|
subtitle=subtitle..", gusting"
|
||||||
|
end
|
||||||
|
local _WIND=subtitle
|
||||||
|
self:Transmission(ATIS.Sound.WindFrom, 1.0, subtitle)
|
||||||
|
self.radioqueue:Number2Transmission(WINDFROM)
|
||||||
|
self:Transmission(ATIS.Sound.At, 0.2)
|
||||||
|
self.radioqueue:Number2Transmission(WINDSPEED)
|
||||||
|
if self.metric then
|
||||||
|
self:Transmission(ATIS.Sound.MetersPerSecond, 0.2)
|
||||||
|
else
|
||||||
|
self:Transmission(ATIS.Sound.Knots, 0.2)
|
||||||
|
end
|
||||||
|
if turbulence>0 then
|
||||||
|
self:Transmission(ATIS.Sound.Gusting, 0.2)
|
||||||
|
end
|
||||||
alltext=alltext..";\n"..subtitle
|
alltext=alltext..";\n"..subtitle
|
||||||
|
|
||||||
-- Visibility
|
-- Visibility
|
||||||
if self.metric then
|
if self.metric then
|
||||||
subtitle=string.format("Visibility %s km", VISIBILITY)
|
subtitle=string.format("Visibility %s km", VISIBILITY)
|
||||||
else
|
else
|
||||||
subtitle=string.format("Visibility %s NM", VISIBILITY)
|
subtitle=string.format("Visibility %s SM", VISIBILITY)
|
||||||
end
|
end
|
||||||
self:Transmission(ATIS.Sound.Visibilty, 1.0, subtitle)
|
self:Transmission(ATIS.Sound.Visibilty, 1.0, subtitle)
|
||||||
self.radioqueue:Number2Transmission(VISIBILITY)
|
self.radioqueue:Number2Transmission(VISIBILITY)
|
||||||
if self.metric then
|
if self.metric then
|
||||||
self:Transmission(ATIS.Sound.Kilometers, 0.2)
|
self:Transmission(ATIS.Sound.Kilometers, 0.2)
|
||||||
else
|
else
|
||||||
self:Transmission(ATIS.Sound.NauticalMiles, 0.2)
|
self:Transmission(ATIS.Sound.Miles, 0.2)
|
||||||
end
|
|
||||||
alltext=alltext..";\n"..subtitle
|
|
||||||
|
|
||||||
-- Cloud base
|
|
||||||
self:Transmission(CloudCover, 1.0, CLOUDSsub)
|
|
||||||
if CLOUDBASE and static then
|
|
||||||
-- Base
|
|
||||||
if self.metric then
|
|
||||||
subtitle=string.format("Cloudbase %s, ceiling %s meters", CLOUDBASE, CLOUDCEIL)
|
|
||||||
else
|
|
||||||
subtitle=string.format("Cloudbase %s, ceiling %s ft", CLOUDBASE, CLOUDCEIL)
|
|
||||||
end
|
|
||||||
self:Transmission(ATIS.Sound.CloudBase, 1.0, subtitle)
|
|
||||||
if tonumber(CLOUDBASE1000)>0 then
|
|
||||||
self.radioqueue:Number2Transmission(CLOUDBASE1000)
|
|
||||||
self:Transmission(ATIS.Sound.Thousand, 0.1)
|
|
||||||
end
|
|
||||||
if tonumber(CLOUDBASE0100)>0 then
|
|
||||||
self.radioqueue:Number2Transmission(CLOUDBASE0100)
|
|
||||||
self:Transmission(ATIS.Sound.Hundred, 0.1)
|
|
||||||
end
|
|
||||||
-- Ceiling
|
|
||||||
self:Transmission(ATIS.Sound.CloudCeiling, 0.5)
|
|
||||||
if tonumber(CLOUDCEIL1000)>0 then
|
|
||||||
self.radioqueue:Number2Transmission(CLOUDCEIL1000)
|
|
||||||
self:Transmission(ATIS.Sound.Thousand, 0.1)
|
|
||||||
end
|
|
||||||
if tonumber(CLOUDCEIL0100)>0 then
|
|
||||||
self.radioqueue:Number2Transmission(CLOUDCEIL0100)
|
|
||||||
self:Transmission(ATIS.Sound.Hundred, 0.1)
|
|
||||||
end
|
|
||||||
if self.metric then
|
|
||||||
self:Transmission(ATIS.Sound.Meters, 0.1)
|
|
||||||
else
|
|
||||||
self:Transmission(ATIS.Sound.Feet, 0.1)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
alltext=alltext..";\n"..subtitle
|
alltext=alltext..";\n"..subtitle
|
||||||
|
|
||||||
@ -1571,33 +1616,38 @@ function ATIS:onafterBroadcast(From, Event, To)
|
|||||||
alltext=alltext..";\n"..subtitle
|
alltext=alltext..";\n"..subtitle
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Altimeter QNH/QFE.
|
-- Cloud base
|
||||||
if self.PmmHg then
|
self:Transmission(CloudCover, 1.0, CLOUDSsub)
|
||||||
subtitle=string.format("Altimeter QNH %s.%s, QFE %s.%s mmHg", QNH[1], QNH[2], QFE[1], QFE[2])
|
if CLOUDBASE and static then
|
||||||
else
|
-- Base
|
||||||
if self.metric then
|
if self.metric then
|
||||||
subtitle=string.format("Altimeter QNH %s.%s, QFE %s.%s hPa", QNH[1], QNH[2], QFE[1], QFE[2])
|
subtitle=string.format("Cloudbase %s, ceiling %s meters", CLOUDBASE, CLOUDCEIL)
|
||||||
else
|
else
|
||||||
subtitle=string.format("Altimeter QNH %s.%s, QFE %s.%s inHg", QNH[1], QNH[2], QFE[1], QFE[2])
|
subtitle=string.format("Cloudbase %s, ceiling %s ft", CLOUDBASE, CLOUDCEIL)
|
||||||
|
end
|
||||||
|
self:Transmission(ATIS.Sound.CloudBase, 1.0, subtitle)
|
||||||
|
if tonumber(CLOUDBASE1000)>0 then
|
||||||
|
self.radioqueue:Number2Transmission(CLOUDBASE1000)
|
||||||
|
self:Transmission(ATIS.Sound.Thousand, 0.1)
|
||||||
|
end
|
||||||
|
if tonumber(CLOUDBASE0100)>0 then
|
||||||
|
self.radioqueue:Number2Transmission(CLOUDBASE0100)
|
||||||
|
self:Transmission(ATIS.Sound.Hundred, 0.1)
|
||||||
|
end
|
||||||
|
-- Ceiling
|
||||||
|
self:Transmission(ATIS.Sound.CloudCeiling, 0.5)
|
||||||
|
if tonumber(CLOUDCEIL1000)>0 then
|
||||||
|
self.radioqueue:Number2Transmission(CLOUDCEIL1000)
|
||||||
|
self:Transmission(ATIS.Sound.Thousand, 0.1)
|
||||||
|
end
|
||||||
|
if tonumber(CLOUDCEIL0100)>0 then
|
||||||
|
self.radioqueue:Number2Transmission(CLOUDCEIL0100)
|
||||||
|
self:Transmission(ATIS.Sound.Hundred, 0.1)
|
||||||
end
|
end
|
||||||
end
|
|
||||||
local _ALTIMETER=subtitle
|
|
||||||
self:Transmission(ATIS.Sound.Altimeter, 1.0, subtitle)
|
|
||||||
self:Transmission(ATIS.Sound.QNH, 0.5)
|
|
||||||
self.radioqueue:Number2Transmission(QNH[1])
|
|
||||||
self:Transmission(ATIS.Sound.Decimal, 0.2)
|
|
||||||
self.radioqueue:Number2Transmission(QNH[2])
|
|
||||||
self:Transmission(ATIS.Sound.QFE, 0.75)
|
|
||||||
self.radioqueue:Number2Transmission(QFE[1])
|
|
||||||
self:Transmission(ATIS.Sound.Decimal, 0.2)
|
|
||||||
self.radioqueue:Number2Transmission(QFE[2])
|
|
||||||
if self.PmmHg then
|
|
||||||
self:Transmission(ATIS.Sound.MillimetersOfMercury, 0.1)
|
|
||||||
else
|
|
||||||
if self.metric then
|
if self.metric then
|
||||||
self:Transmission(ATIS.Sound.HectoPascal, 0.1)
|
self:Transmission(ATIS.Sound.Meters, 0.1)
|
||||||
else
|
else
|
||||||
self:Transmission(ATIS.Sound.InchesOfMercury, 0.1)
|
self:Transmission(ATIS.Sound.Feet, 0.1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
alltext=alltext..";\n"..subtitle
|
alltext=alltext..";\n"..subtitle
|
||||||
@ -1656,27 +1706,57 @@ function ATIS:onafterBroadcast(From, Event, To)
|
|||||||
end
|
end
|
||||||
alltext=alltext..";\n"..subtitle
|
alltext=alltext..";\n"..subtitle
|
||||||
|
|
||||||
-- Wind
|
-- Altimeter QNH/QFE.
|
||||||
if self.metric then
|
if self.PmmHg then
|
||||||
subtitle=string.format("Wind from %s at %s m/s", WINDFROM, WINDSPEED)
|
if self.qnhonly then
|
||||||
|
subtitle=string.format("Altimeter %s.%s mmHg", QNH[1], QNH[2])
|
||||||
|
else
|
||||||
|
subtitle=string.format("Altimeter QNH %s.%s, QFE %s.%s mmHg", QNH[1], QNH[2], QFE[1], QFE[2])
|
||||||
|
end
|
||||||
else
|
else
|
||||||
subtitle=string.format("Wind from %s at %s knots", WINDFROM, WINDSPEED)
|
if self.metric then
|
||||||
|
if self.qnhonly then
|
||||||
|
subtitle=string.format("Altimeter %s.%s hPa", QNH[1], QNH[2])
|
||||||
|
else
|
||||||
|
subtitle=string.format("Altimeter QNH %s.%s, QFE %s.%s hPa", QNH[1], QNH[2], QFE[1], QFE[2])
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if self.qnhonly then
|
||||||
|
subtitle=string.format("Altimeter %s.%s inHg", QNH[1], QNH[2])
|
||||||
|
else
|
||||||
|
subtitle=string.format("Altimeter QNH %s.%s, QFE %s.%s inHg", QNH[1], QNH[2], QFE[1], QFE[2])
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
if turbulence>0 then
|
local _ALTIMETER=subtitle
|
||||||
subtitle=subtitle..", gusting"
|
self:Transmission(ATIS.Sound.Altimeter, 1.0, subtitle)
|
||||||
|
if not self.qnhonly then
|
||||||
|
self:Transmission(ATIS.Sound.QNH, 0.5)
|
||||||
end
|
end
|
||||||
local _WIND=subtitle
|
self.radioqueue:Number2Transmission(QNH[1])
|
||||||
self:Transmission(ATIS.Sound.WindFrom, 1.0, subtitle)
|
|
||||||
self.radioqueue:Number2Transmission(WINDFROM)
|
if ATIS.ICAOPhraseology[UTILS.GetDCSMap()] then
|
||||||
self:Transmission(ATIS.Sound.At, 0.2)
|
self:Transmission(ATIS.Sound.Decimal, 0.2)
|
||||||
self.radioqueue:Number2Transmission(WINDSPEED)
|
end
|
||||||
if self.metric then
|
self.radioqueue:Number2Transmission(QNH[2])
|
||||||
self:Transmission(ATIS.Sound.MetersPerSecond, 0.2)
|
|
||||||
|
if not self.qnhonly then
|
||||||
|
self:Transmission(ATIS.Sound.QFE, 0.75)
|
||||||
|
self.radioqueue:Number2Transmission(QFE[1])
|
||||||
|
if ATIS.ICAOPhraseology[UTILS.GetDCSMap()] then
|
||||||
|
self:Transmission(ATIS.Sound.Decimal, 0.2)
|
||||||
|
end
|
||||||
|
self.radioqueue:Number2Transmission(QFE[2])
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.PmmHg then
|
||||||
|
self:Transmission(ATIS.Sound.MillimetersOfMercury, 0.1)
|
||||||
else
|
else
|
||||||
self:Transmission(ATIS.Sound.Knots, 0.2)
|
if self.metric then
|
||||||
end
|
self:Transmission(ATIS.Sound.HectoPascal, 0.1)
|
||||||
if turbulence>0 then
|
else
|
||||||
self:Transmission(ATIS.Sound.Gusting, 0.2)
|
self:Transmission(ATIS.Sound.InchesOfMercury, 0.1)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
alltext=alltext..";\n"..subtitle
|
alltext=alltext..";\n"..subtitle
|
||||||
|
|
||||||
|
|||||||
@ -49,12 +49,14 @@ BIGSMOKEPRESET = {
|
|||||||
-- @field #string NTTR Nevada Test and Training Range map.
|
-- @field #string NTTR Nevada Test and Training Range map.
|
||||||
-- @field #string PersianGulf Persian Gulf map.
|
-- @field #string PersianGulf Persian Gulf map.
|
||||||
-- @field #string TheChannel The Channel map.
|
-- @field #string TheChannel The Channel map.
|
||||||
|
-- @field #string Syria Syria map.
|
||||||
DCSMAP = {
|
DCSMAP = {
|
||||||
Caucasus="Caucasus",
|
Caucasus="Caucasus",
|
||||||
NTTR="Nevada",
|
NTTR="Nevada",
|
||||||
Normandy="Normandy",
|
Normandy="Normandy",
|
||||||
PersianGulf="PersianGulf",
|
PersianGulf="PersianGulf",
|
||||||
TheChannel="TheChannel",
|
TheChannel="TheChannel",
|
||||||
|
Syria="Syria",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -313,6 +315,10 @@ UTILS.MetersToNM = function(meters)
|
|||||||
return meters/1852
|
return meters/1852
|
||||||
end
|
end
|
||||||
|
|
||||||
|
UTILS.MetersToSM = function(meters)
|
||||||
|
return meters/1609.34
|
||||||
|
end
|
||||||
|
|
||||||
UTILS.MetersToFeet = function(meters)
|
UTILS.MetersToFeet = function(meters)
|
||||||
return meters/0.3048
|
return meters/0.3048
|
||||||
end
|
end
|
||||||
@ -1118,6 +1124,8 @@ function UTILS.GetMagneticDeclination(map)
|
|||||||
declination=2
|
declination=2
|
||||||
elseif map==DCSMAP.TheChannel then
|
elseif map==DCSMAP.TheChannel then
|
||||||
declination=-10
|
declination=-10
|
||||||
|
elseif map==DCSMAP.Syria then
|
||||||
|
declination=5
|
||||||
else
|
else
|
||||||
declination=0
|
declination=0
|
||||||
end
|
end
|
||||||
@ -1244,6 +1252,8 @@ function UTILS.GMTToLocalTimeDifference()
|
|||||||
return 0 -- Calais UTC+1 hour
|
return 0 -- Calais UTC+1 hour
|
||||||
elseif theatre==DCSMAP.TheChannel then
|
elseif theatre==DCSMAP.TheChannel then
|
||||||
return 2 -- This map currently needs +2
|
return 2 -- This map currently needs +2
|
||||||
|
elseif theatre==DCSMAP.Syria then
|
||||||
|
return 3 -- Damascus is UTC+3 hours
|
||||||
else
|
else
|
||||||
BASE:E(string.format("ERROR: Unknown Map %s in UTILS.GMTToLocal function. Returning 0", tostring(theatre)))
|
BASE:E(string.format("ERROR: Unknown Map %s in UTILS.GMTToLocal function. Returning 0", tostring(theatre)))
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@ -315,6 +315,80 @@ AIRBASE.TheChannel = {
|
|||||||
["High_Halden"] = "High Halden",
|
["High_Halden"] = "High Halden",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--- Airbases of Syria
|
||||||
|
--
|
||||||
|
-- * AIRBASE.Syria.Kuweires
|
||||||
|
-- * AIRBASE.Syria.Marj_Ruhayyil
|
||||||
|
-- * AIRBASE.Syria.Kiryat_Shmona
|
||||||
|
-- * AIRBASE.Syria.Marj_as_Sultan_North
|
||||||
|
-- * AIRBASE.Syria.Eyn_Shemer
|
||||||
|
-- * AIRBASE.Syria.Incirlik
|
||||||
|
-- * AIRBASE.Syria.Damascus
|
||||||
|
-- * AIRBASE.Syria.Bassel_Al_Assad
|
||||||
|
-- * AIRBASE.Syria.Aleppo
|
||||||
|
-- * AIRBASE.Syria.Qabr_as_Sitt
|
||||||
|
-- * AIRBASE.Syria.Wujah_Al_Hajar
|
||||||
|
-- * AIRBASE.Syria.Al_Dumayr
|
||||||
|
-- * AIRBASE.Syria.Hatay
|
||||||
|
-- * AIRBASE.Syria.Haifa
|
||||||
|
-- * AIRBASE.Syria.Khalkhalah
|
||||||
|
-- * AIRBASE.Syria.Megiddo
|
||||||
|
-- * AIRBASE.Syria.Rayak
|
||||||
|
-- * AIRBASE.Syria.Mezzeh
|
||||||
|
-- * AIRBASE.Syria.King_Hussein_Air_College
|
||||||
|
-- * AIRBASE.Syria.Jirah
|
||||||
|
-- * AIRBASE.Syria.Taftanaz
|
||||||
|
-- * AIRBASE.Syria.Rene_Mouawad
|
||||||
|
-- * AIRBASE.Syria.Ramat_David
|
||||||
|
-- * AIRBASE.Syria.Minakh
|
||||||
|
-- * AIRBASE.Syria.Adana_Sakirpasa
|
||||||
|
-- * AIRBASE.Syria.Marj_as_Sultan_South
|
||||||
|
-- * AIRBASE.Syria.Hama
|
||||||
|
-- * AIRBASE.Syria.Al_Qusayr
|
||||||
|
-- * AIRBASE.Syria.Palmyra
|
||||||
|
-- * AIRBASE.Syria.Tabqa
|
||||||
|
-- * AIRBASE.Syria.Beirut_Rafic_Hariri
|
||||||
|
-- * AIRBASE.Syria.An_Nasiriyah
|
||||||
|
-- * AIRBASE.Syria.Abu_al_Duhur
|
||||||
|
--
|
||||||
|
-- @field Syria
|
||||||
|
AIRBASE.Syria={
|
||||||
|
["Kuweires"]="Kuweires",
|
||||||
|
["Marj_Ruhayyil"]="Marj Ruhayyil",
|
||||||
|
["Kiryat_Shmona"]="Kiryat Shmona",
|
||||||
|
["Marj_as_Sultan_North"]="Marj as Sultan North",
|
||||||
|
["Eyn_Shemer"]="Eyn Shemer",
|
||||||
|
["Incirlik"]="Incirlik",
|
||||||
|
["Damascus"]="Damascus",
|
||||||
|
["Bassel_Al_Assad"]="Bassel Al-Assad",
|
||||||
|
["Aleppo"]="Aleppo",
|
||||||
|
["Qabr_as_Sitt"]="Qabr as Sitt",
|
||||||
|
["Wujah_Al_Hajar"]="Wujah Al Hajar",
|
||||||
|
["Al_Dumayr"]="Al-Dumayr",
|
||||||
|
["Hatay"]="Hatay",
|
||||||
|
["Haifa"]="Haifa",
|
||||||
|
["Khalkhalah"]="Khalkhalah",
|
||||||
|
["Megiddo"]="Megiddo",
|
||||||
|
["Rayak"]="Rayak",
|
||||||
|
["Mezzeh"]="Mezzeh",
|
||||||
|
["King_Hussein_Air_College"]="King Hussein Air College",
|
||||||
|
["Jirah"]="Jirah",
|
||||||
|
["Taftanaz"]="Taftanaz",
|
||||||
|
["Rene_Mouawad"]="Rene Mouawad",
|
||||||
|
["Ramat_David"]="Ramat David",
|
||||||
|
["Minakh"]="Minakh",
|
||||||
|
["Adana_Sakirpasa"]="Adana Sakirpasa",
|
||||||
|
["Marj_as_Sultan_South"]="Marj as Sultan South",
|
||||||
|
["Hama"]="Hama",
|
||||||
|
["Al_Qusayr"]="Al Qusayr",
|
||||||
|
["Palmyra"]="Palmyra",
|
||||||
|
["Tabqa"]="Tabqa",
|
||||||
|
["Beirut_Rafic_Hariri"]="Beirut-Rafic Hariri",
|
||||||
|
["An_Nasiriyah"]="An Nasiriyah",
|
||||||
|
["Abu_al_Duhur"]="Abu al-Duhur",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
--- AIRBASE.ParkingSpot ".Coordinate, ".TerminalID", ".TerminalType", ".TOAC", ".Free", ".TerminalID0", ".DistToRwy".
|
--- AIRBASE.ParkingSpot ".Coordinate, ".TerminalID", ".TerminalType", ".TOAC", ".Free", ".TerminalID0", ".DistToRwy".
|
||||||
-- @type AIRBASE.ParkingSpot
|
-- @type AIRBASE.ParkingSpot
|
||||||
-- @field Core.Point#COORDINATE Coordinate Coordinate of the parking spot.
|
-- @field Core.Point#COORDINATE Coordinate Coordinate of the parking spot.
|
||||||
|
|||||||
12
README.md
12
README.md
@ -73,18 +73,6 @@ MOOSE has a living (chat and video) community of users, beta testers and contrib
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# [Please DONATE ...](https://donorbox.org/fund-github-subscriptionfor-moose)
|
|
||||||
|
|
||||||
If you appreciate this development, please support to extend the framework. The development of this framework takes a lot of time.
|
|
||||||
A small gift would help me to buy a new small laptop that I can use to extend this framework while commuting to and from work ...
|
|
||||||
Also, your donations will be saved and spent wisely to the advantage of the community!
|
|
||||||
|
|
||||||
If everyone helps with a small amount, it would be really great!
|
|
||||||
|
|
||||||
<a class="dbox-donation-button" href="https://donorbox.org/fund-github-subscriptionfor-moose" style="background:#2d81c5 url(https://raw.githubusercontent.com/FlightControl-Master/MOOSE_DOCS/master/Configuration/Donate.png) no-repeat 37px center; color: #fff;text-decoration: none;font-family: Verdana,sans-serif;display: inline-block;font-size: 16px;padding: 15px 38px 15px 75px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; box-shadow: 0 1px 0 0 #1f5a89; text-shadow: 0 1px rgba(0, 0, 0, 0.3);" >Donate</a>
|
|
||||||
|
|
||||||
|
|
||||||
Kind regards,
|
Kind regards,
|
||||||
FlightControl (FC)
|
FlightControl (FC)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user