mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
@Grey-Echo I've done a review and created this branch.
I've done some minor changes, but there is one item that i think requires your attention, and that is on line 82. It writes *Positionable,*... Shouldn't that be some kind of a value there? I am really impressed with the work you did. Excellent job!
This commit is contained in:
parent
55cbd24588
commit
baa17a4cb7
@ -1,10 +1,8 @@
|
||||
--- This module contains the **Core - RADIO** class. The RADIO class is responsible for **transmitting radio communications**.
|
||||
--- **Core** - The RADIO class is responsible for **transmitting radio communications**.
|
||||
--
|
||||
-- 1) @{Radio#RADIO} class, extends @{Base#BASE}
|
||||
-- =================================================
|
||||
-- --- bitmap
|
||||
--
|
||||
-- 1.1) General radio transmssion setup
|
||||
-- ------------------------------------
|
||||
-- ===
|
||||
--
|
||||
-- What are radio communications in DCS ?
|
||||
--
|
||||
@ -27,10 +25,17 @@
|
||||
-- like the A10C or the Mirage 2000C. They will **hear the transmission** if they are tuned on the **right frequency and modulation** (and if they are close enough - more on that below).
|
||||
-- If a FC3 airacraft is used, it will **hear every communication, whatever the frequency and the modulation** is set to.
|
||||
--
|
||||
-- 1.2) @{Radio#RADIO} usage
|
||||
-- -------------------------
|
||||
-- ===
|
||||
--
|
||||
-- ### Authors: Hugues "Grey_Echo" Bousquet
|
||||
--
|
||||
-- @module Radio
|
||||
|
||||
--- # 1) RADIO class, extends @{Base#BASE}
|
||||
--
|
||||
-- There are 3 steps to a successful radio transmission
|
||||
-- ## 1.1) RADIO usage
|
||||
--
|
||||
-- There are 3 steps to a successful radio transmission.
|
||||
--
|
||||
-- * First, you need to **"add" a @{#RADIO} object** to your @{Positionable#POSITIONABLE}. This is done using the @{Positionable#POSITIONABLE.GetRadio}() function,
|
||||
-- * Then, you will **set the relevant parameters** to the transmission (see below),
|
||||
@ -61,13 +66,7 @@
|
||||
-- * This an automated DCS calculation you have no say on,
|
||||
-- * For reference, a standard VOR station has a 100W antenna, a standard AA TACAN has a 120W antenna, and civilian ATC's antenna usually range between 300 and 500W,
|
||||
-- * Note that if the transmission has a subtitle, it will be readable, regardless of the quality of the transmission.
|
||||
--
|
||||
--### Authors: Hugues "Grey_Echo" Bousquet
|
||||
--
|
||||
-- @module Radio
|
||||
-- @author Grey-Echo
|
||||
|
||||
--- The RADIO class
|
||||
--
|
||||
-- @type RADIO
|
||||
-- @field Wrapper.Positionable#POSITIONABLE Positionable The transmiter
|
||||
-- @field #string FileName Name of the sound file
|
||||
@ -91,52 +90,57 @@ RADIO = {
|
||||
}
|
||||
|
||||
--- Create a new RADIO Object. This doesn't broadcast a transmission, though, use @{#RADIO.Broadcast} to actually broadcast
|
||||
-- @param Wrapper.Positionable#POSITIONABLE Positionable
|
||||
-- @param #RADIO self
|
||||
-- @param Wrapper.Positionable#POSITIONABLE Positionable The @{Positionable} that will receive radio capabilities.
|
||||
-- @return #RADIO Radio
|
||||
-- @return #nil If Positionable is invalid
|
||||
-- @usage
|
||||
-- -- If you want to create a RADIO, you probably should use @{Positionable#POSITIONABLE.GetRadio}() instead
|
||||
function RADIO:New(positionable)
|
||||
local self = BASE:Inherit( self, BASE:New() )
|
||||
self:F(positionable)
|
||||
if positionable:GetPointVec2() ~= nil then -- It's stupid, but the only way I found to make sure positionable is valid
|
||||
self.Positionable = positionable
|
||||
function RADIO:New(Positionable)
|
||||
local self = BASE:Inherit( self, BASE:New() ) -- Core.Radio#RADIO
|
||||
|
||||
self:F(Positionable)
|
||||
|
||||
if Positionable:GetPointVec2() ~= nil then -- It's stupid, but the only way I found to make sure positionable is valid
|
||||
self.Positionable = Positionable
|
||||
return self
|
||||
else
|
||||
self:E({"The passed positionable is invalid, no RADIO created", positionable})
|
||||
return nil
|
||||
end
|
||||
|
||||
self:E({"The passed positionable is invalid, no RADIO created", Positionable})
|
||||
return nil
|
||||
end
|
||||
|
||||
--- Check validity of the filename passed and sets RADIO.FileName
|
||||
-- @param #RADIO self
|
||||
-- @param #string fileName File name of the sound file (i.e. "Noise.ogg")
|
||||
-- @param #string FileName File name of the sound file (i.e. "Noise.ogg")
|
||||
-- @return #RADIO self
|
||||
function RADIO:SetFileName(filename)
|
||||
self:F2(filename)
|
||||
if type(filename) == "string" then
|
||||
if filename:find(".ogg") ~= nil or filename:find(".wav") ~= nil then
|
||||
if filename:find("l10n/DEFAULT/") == nil then
|
||||
filename = "l10n/DEFAULT/" .. filename
|
||||
function RADIO:SetFileName(FileName)
|
||||
self:F2(FileName)
|
||||
|
||||
if type(FileName) == "string" then
|
||||
if FileName:find(".ogg") ~= nil or FileName:find(".wav") ~= nil then
|
||||
if FileName:find("l10n/DEFAULT/") == nil then
|
||||
FileName = "l10n/DEFAULT/" .. FileName
|
||||
end
|
||||
self.FileName = filename
|
||||
self.FileName = FileName
|
||||
return self
|
||||
end
|
||||
end
|
||||
|
||||
self:E({"File name invalid. Maybe something wrong with the extension ?", self.FileName})
|
||||
return self
|
||||
end
|
||||
|
||||
--- Check validity of the frequency passed and sets RADIO.Frequency
|
||||
-- @param #RADIO self
|
||||
-- @param #number frequency in MHz (Ranges allowed for radio transmissions in DCS : 30-88 / 108-152 / 225-400MHz)
|
||||
-- @param #number Frequency in MHz (Ranges allowed for radio transmissions in DCS : 30-88 / 108-152 / 225-400MHz)
|
||||
-- @return #RADIO self
|
||||
function RADIO:SetFrequency(frequency)
|
||||
self:F2(frequency)
|
||||
if type(frequency) == "number" then
|
||||
function RADIO:SetFrequency(Frequency)
|
||||
self:F2(Frequency)
|
||||
if type(Frequency) == "number" then
|
||||
-- If frequency is in range
|
||||
if (frequency >= 30 and frequency < 88) or (frequency >= 108 and frequency < 152) or (frequency >= 225 and frequency < 400) then
|
||||
self.Frequency = frequency * 1000000 -- Conversion in Hz
|
||||
if (Frequency >= 30 and Frequency < 88) or (Frequency >= 108 and Frequency < 152) or (Frequency >= 225 and Frequency < 400) then
|
||||
self.Frequency = Frequency * 1000000 -- Conversion in Hz
|
||||
-- If the RADIO is attached to a UNIT or a GROUP, we need to send the DCS Command "SetFrequency" to change the UNIT or GROUP frequency
|
||||
if self.Positionable.ClassName == "UNIT" or self.Positionable.ClassName == "GROUP" then
|
||||
self.Positionable:GetDCSObject():getController():setCommand({
|
||||
@ -156,13 +160,13 @@ end
|
||||
|
||||
--- Check validity of the frequency passed and sets RADIO.Modulation
|
||||
-- @param #RADIO self
|
||||
-- @param #number modulation either radio.modulation.AM or radio.modulation.FM
|
||||
-- @param #number Modulation either radio.modulation.AM or radio.modulation.FM
|
||||
-- @return #RADIO self
|
||||
function RADIO:SetModulation(modulation)
|
||||
self:F2(modulation)
|
||||
if type(modulation) == "number" then
|
||||
if modulation == radio.modulation.AM or modulation == radio.modulation.FM then --TODO Maybe make this future proof if ED decides to add an other modulation ?
|
||||
self.Modulation = modulation
|
||||
function RADIO:SetModulation(Modulation)
|
||||
self:F2(Modulation)
|
||||
if type(Modulation) == "number" then
|
||||
if Modulation == radio.modulation.AM or Modulation == radio.modulation.FM then --TODO Maybe make this future proof if ED decides to add an other modulation ?
|
||||
self.Modulation = Modulation
|
||||
return self
|
||||
end
|
||||
end
|
||||
@ -174,10 +178,10 @@ end
|
||||
-- @param #RADIO self
|
||||
-- @param #number Power in W
|
||||
-- @return #RADIO self
|
||||
function RADIO:SetPower(power)
|
||||
self:F2(power)
|
||||
if type(power) == "number" then
|
||||
self.Power = math.floor(math.abs(power)) --TODO Find what is the maximum power allowed by DCS and limit power to that
|
||||
function RADIO:SetPower(Power)
|
||||
self:F2(Power)
|
||||
if type(Power) == "number" then
|
||||
self.Power = math.floor(math.abs(Power)) --TODO Find what is the maximum power allowed by DCS and limit power to that
|
||||
return self
|
||||
end
|
||||
self:E({"Power is invalid. Power unchanged.", self.Power})
|
||||
@ -189,10 +193,10 @@ end
|
||||
-- @param #boolean Loop
|
||||
-- @return #RADIO self
|
||||
-- @usage
|
||||
function RADIO:SetLoop(loop)
|
||||
self:F2(loop)
|
||||
if type(loop) == "boolean" then
|
||||
self.Loop = loop
|
||||
function RADIO:SetLoop(Loop)
|
||||
self:F2(Loop)
|
||||
if type(Loop) == "boolean" then
|
||||
self.Loop = Loop
|
||||
return self
|
||||
end
|
||||
self:E({"Loop is invalid. Loop unchanged.", self.Loop})
|
||||
@ -201,22 +205,22 @@ end
|
||||
|
||||
--- Check validity of the subtitle and the subtitleDuration passed and sets RADIO.subtitle and RADIO.subtitleDuration
|
||||
-- @param #RADIO self
|
||||
-- @param #string Subtitle
|
||||
-- @param #number SubtitleDuration in s
|
||||
-- @param #string SubTitle
|
||||
-- @param #number SubTitleDuration in s
|
||||
-- @return #RADIO self
|
||||
-- @usage
|
||||
-- -- Both parameters are mandatory, since it wouldn't make much sense to change the Subtitle and not its duration
|
||||
function RADIO:SetSubtitle(subtitle, subtitleDuration)
|
||||
self:F2({subtitle, subtitleDuration})
|
||||
if type(subtitle) == "string" then
|
||||
self.Subtitle = subtitle
|
||||
function RADIO:SetSubtitle(SubTitle, SubTitleDuration)
|
||||
self:F2({SubTitle, SubTitleDuration})
|
||||
if type(SubTitle) == "string" then
|
||||
self.Subtitle = SubTitle
|
||||
else
|
||||
self.Subtitle = ""
|
||||
self:E({"Subtitle is invalid. Subtitle reset.", self.Subtitle})
|
||||
end
|
||||
if type(subtitleDuration) == "number" then
|
||||
if math.floor(math.abs(subtitleDuration)) == subtitleDuration then
|
||||
self.SubtitleDuration = subtitleDuration
|
||||
if type(SubTitleDuration) == "number" then
|
||||
if math.floor(math.abs(SubTitleDuration)) == SubTitleDuration then
|
||||
self.SubtitleDuration = SubTitleDuration
|
||||
return self
|
||||
end
|
||||
end
|
||||
@ -305,3 +309,4 @@ function RADIO:Broadcast()
|
||||
end
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
@ -73,14 +73,13 @@
|
||||
<div id="content">
|
||||
<h1>Module <code>Radio</code></h1>
|
||||
|
||||
<p>This module contains the <strong>Core - RADIO</strong> class.</p>
|
||||
<p><strong>Core</strong> - The RADIO class is responsible for <strong>transmitting radio communications</strong>.</p>
|
||||
|
||||
|
||||
<p>The RADIO class is responsible for <strong>transmitting radio communications</strong>.</p>
|
||||
|
||||
<h1>1) <a href="Radio.html##(RADIO)">Radio#RADIO</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
|
||||
<p>--- bitmap</p>
|
||||
|
||||
<h2>1.1) General radio transmssion setup</h2>
|
||||
<hr/>
|
||||
|
||||
<p>What are radio communications in DCS ?</p>
|
||||
|
||||
@ -109,49 +108,7 @@
|
||||
like the A10C or the Mirage 2000C. They will <strong>hear the transmission</strong> if they are tuned on the <strong>right frequency and modulation</strong> (and if they are close enough - more on that below).
|
||||
If a FC3 airacraft is used, it will <strong>hear every communication, whatever the frequency and the modulation</strong> is set to.</p>
|
||||
|
||||
<h2>1.2) <a href="Radio.html##(RADIO)">Radio#RADIO</a> usage</h2>
|
||||
|
||||
<p>There are 3 steps to a successful radio transmission</p>
|
||||
|
||||
<ul>
|
||||
<li>First, you need to **"add" a <a href="##(RADIO)">#RADIO</a> object** to your <a href="Positionable.html##(POSITIONABLE)">Positionable#POSITIONABLE</a>. This is done using the <a href="Positionable.html##(POSITIONABLE).GetRadio">Positionable#POSITIONABLE.GetRadio</a>() function,</li>
|
||||
<li>Then, you will <strong>set the relevant parameters</strong> to the transmission (see below),</li>
|
||||
<li>When done, you can actually <strong>broadcast the transmission</strong> (i.e. play the sound) with the <a href="Positionable.html##(POSITIONABLE).Broadcast">Positionable#POSITIONABLE.Broadcast</a>() function.</li>
|
||||
</ul>
|
||||
|
||||
<p>Methods to set relevant parameters for both a <a href="Unit.html##(UNIT)">Unit#UNIT</a> or a <a href="Group.html##(GROUP)">Group#GROUP</a> or any other <a href="Positionable.html##(POSITIONABLE)">Positionable#POSITIONABLE</a></p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(RADIO).SetFileName">RADIO.SetFileName</a>() : Sets the file name of your sound file (e.g. "Noise.ogg"),</li>
|
||||
<li><a href="##(RADIO).SetFrequency">RADIO.SetFrequency</a>() : Sets the frequency of your transmission,</li>
|
||||
<li><a href="##(RADIO).SetModulation">RADIO.SetModulation</a>() : Sets the modulation of your transmission.</li>
|
||||
</ul>
|
||||
|
||||
<p>Additional Methods to set relevant parameters if the transmiter is a <a href="Unit.html##(UNIT)">Unit#UNIT</a> or a <a href="Group.html##(GROUP)">Group#GROUP</a></p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(RADIO).SetLoop">RADIO.SetLoop</a>() : Choose if you want the transmission to be looped,</li>
|
||||
<li><a href="##(RADIO).SetSubtitle">RADIO.SetSubtitle</a>() : Set both the subtitle and its duration,</li>
|
||||
<li><a href="##(RADIO).NewUnitTransmission">RADIO.NewUnitTransmission</a>() : Shortcut to set all the relevant parameters in one method call</li>
|
||||
</ul>
|
||||
|
||||
<p>Additional Methods to set relevant parameters if the transmiter is any other <a href="Wrapper.Positionable.html##(POSITIONABLE)">Wrapper.Positionable#POSITIONABLE</a></p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(RADIO).SetPower">RADIO.SetPower</a>() : Sets the power of the antenna in Watts</li>
|
||||
<li><a href="##(RADIO).NewGenericTransmission">RADIO.NewGenericTransmission</a>() : Shortcut to set all the relevant parameters in one method call</li>
|
||||
</ul>
|
||||
|
||||
<p>What is this power thing ?</p>
|
||||
|
||||
<ul>
|
||||
<li>If your transmission is sent by a <a href="Positionable.html##(POSITIONABLE)">Positionable#POSITIONABLE</a> other than a <a href="Unit.html##(UNIT)">Unit#UNIT</a> or a <a href="Group.html##(GROUP)">Group#GROUP</a>, you can set the power of the antenna,</li>
|
||||
<li>Otherwise, DCS sets it automatically, depending on what's available on your Unit,</li>
|
||||
<li>If the player gets <strong>too far</strong> from the transmiter, or if the antenna is <strong>too weak</strong>, the transmission will <strong>fade</strong> and <strong>become noisyer</strong>,</li>
|
||||
<li>This an automated DCS calculation you have no say on,</li>
|
||||
<li>For reference, a standard VOR station has a 100W antenna, a standard AA TACAN has a 120W antenna, and civilian ATC's antenna usually range between 300 and 500W,</li>
|
||||
<li>Note that if the transmission has a subtitle, it will be readable, regardless of the quality of the transmission. </li>
|
||||
</ul>
|
||||
<hr/>
|
||||
|
||||
<h3>Authors: Hugues "Grey_Echo" Bousquet</h3>
|
||||
|
||||
@ -204,7 +161,7 @@ If a FC3 airacraft is used, it will <strong>hear every communication, whatever t
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).New">RADIO.New(Positionable, self, positionable)</a></td>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).New">RADIO:New(Positionable)</a></td>
|
||||
<td class="summary">
|
||||
<p>Create a new RADIO Object.</p>
|
||||
</td>
|
||||
@ -234,37 +191,37 @@ If a FC3 airacraft is used, it will <strong>hear every communication, whatever t
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetFileName">RADIO:SetFileName(fileName, filename)</a></td>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetFileName">RADIO:SetFileName(FileName)</a></td>
|
||||
<td class="summary">
|
||||
<p>Check validity of the filename passed and sets RADIO.FileName</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetFrequency">RADIO:SetFrequency(frequency)</a></td>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetFrequency">RADIO:SetFrequency(Frequency)</a></td>
|
||||
<td class="summary">
|
||||
<p>Check validity of the frequency passed and sets RADIO.Frequency</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetLoop">RADIO:SetLoop(Loop, loop)</a></td>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetLoop">RADIO:SetLoop(Loop)</a></td>
|
||||
<td class="summary">
|
||||
<p>Check validity of the loop passed and sets RADIO.Loop</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetModulation">RADIO:SetModulation(modulation)</a></td>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetModulation">RADIO:SetModulation(Modulation)</a></td>
|
||||
<td class="summary">
|
||||
<p>Check validity of the frequency passed and sets RADIO.Modulation</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetPower">RADIO:SetPower(Power, power)</a></td>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetPower">RADIO:SetPower(Power)</a></td>
|
||||
<td class="summary">
|
||||
<p>Check validity of the power passed and sets RADIO.Power</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetSubtitle">RADIO:SetSubtitle(Subtitle, SubtitleDuration, subtitle, subtitleDuration)</a></td>
|
||||
<td class="name" nowrap="nowrap"><a href="##(RADIO).SetSubtitle">RADIO:SetSubtitle(SubTitle, SubTitleDuration)</a></td>
|
||||
<td class="summary">
|
||||
<p>Check validity of the subtitle and the subtitleDuration passed and sets RADIO.subtitle and RADIO.subtitleDuration</p>
|
||||
</td>
|
||||
@ -302,7 +259,54 @@ If a FC3 airacraft is used, it will <strong>hear every communication, whatever t
|
||||
|
||||
<h2><a id="#(RADIO)" >Type <code>RADIO</code></a></h2>
|
||||
|
||||
<p>The RADIO class</p>
|
||||
<h1>1) RADIO class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
|
||||
|
||||
<h2>1.1) RADIO usage</h2>
|
||||
|
||||
<p>There are 3 steps to a successful radio transmission.</p>
|
||||
|
||||
|
||||
|
||||
<ul>
|
||||
<li>First, you need to **"add" a <a href="##(RADIO)">#RADIO</a> object** to your <a href="Positionable.html##(POSITIONABLE)">Positionable#POSITIONABLE</a>. This is done using the <a href="Positionable.html##(POSITIONABLE).GetRadio">Positionable#POSITIONABLE.GetRadio</a>() function,</li>
|
||||
<li>Then, you will <strong>set the relevant parameters</strong> to the transmission (see below),</li>
|
||||
<li>When done, you can actually <strong>broadcast the transmission</strong> (i.e. play the sound) with the <a href="Positionable.html##(POSITIONABLE).Broadcast">Positionable#POSITIONABLE.Broadcast</a>() function.</li>
|
||||
</ul>
|
||||
|
||||
<p>Methods to set relevant parameters for both a <a href="Unit.html##(UNIT)">Unit#UNIT</a> or a <a href="Group.html##(GROUP)">Group#GROUP</a> or any other <a href="Positionable.html##(POSITIONABLE)">Positionable#POSITIONABLE</a></p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(RADIO).SetFileName">RADIO.SetFileName</a>() : Sets the file name of your sound file (e.g. "Noise.ogg"),</li>
|
||||
<li><a href="##(RADIO).SetFrequency">RADIO.SetFrequency</a>() : Sets the frequency of your transmission,</li>
|
||||
<li><a href="##(RADIO).SetModulation">RADIO.SetModulation</a>() : Sets the modulation of your transmission.</li>
|
||||
</ul>
|
||||
|
||||
<p>Additional Methods to set relevant parameters if the transmiter is a <a href="Unit.html##(UNIT)">Unit#UNIT</a> or a <a href="Group.html##(GROUP)">Group#GROUP</a></p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(RADIO).SetLoop">RADIO.SetLoop</a>() : Choose if you want the transmission to be looped,</li>
|
||||
<li><a href="##(RADIO).SetSubtitle">RADIO.SetSubtitle</a>() : Set both the subtitle and its duration,</li>
|
||||
<li><a href="##(RADIO).NewUnitTransmission">RADIO.NewUnitTransmission</a>() : Shortcut to set all the relevant parameters in one method call</li>
|
||||
</ul>
|
||||
|
||||
<p>Additional Methods to set relevant parameters if the transmiter is any other <a href="Wrapper.Positionable.html##(POSITIONABLE)">Wrapper.Positionable#POSITIONABLE</a></p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(RADIO).SetPower">RADIO.SetPower</a>() : Sets the power of the antenna in Watts</li>
|
||||
<li><a href="##(RADIO).NewGenericTransmission">RADIO.NewGenericTransmission</a>() : Shortcut to set all the relevant parameters in one method call</li>
|
||||
</ul>
|
||||
|
||||
<p>What is this power thing ?</p>
|
||||
|
||||
<ul>
|
||||
<li>If your transmission is sent by a <a href="Positionable.html##(POSITIONABLE)">Positionable#POSITIONABLE</a> other than a <a href="Unit.html##(UNIT)">Unit#UNIT</a> or a <a href="Group.html##(GROUP)">Group#GROUP</a>, you can set the power of the antenna,</li>
|
||||
<li>Otherwise, DCS sets it automatically, depending on what's available on your Unit,</li>
|
||||
<li>If the player gets <strong>too far</strong> from the transmiter, or if the antenna is <strong>too weak</strong>, the transmission will <strong>fade</strong> and <strong>become noisyer</strong>,</li>
|
||||
<li>This an automated DCS calculation you have no say on,</li>
|
||||
<li>For reference, a standard VOR station has a 100W antenna, a standard AA TACAN has a 120W antenna, and civilian ATC's antenna usually range between 300 and 500W,</li>
|
||||
<li>Note that if the transmission has a subtitle, it will be readable, regardless of the quality of the transmission.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Field(s)</h3>
|
||||
<dl class="function">
|
||||
@ -406,7 +410,7 @@ self</p>
|
||||
<dt>
|
||||
|
||||
<a id="#(RADIO).New" >
|
||||
<strong>RADIO.New(Positionable, self, positionable)</strong>
|
||||
<strong>RADIO:New(Positionable)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
@ -416,21 +420,12 @@ self</p>
|
||||
|
||||
<p>This doesn't broadcast a transmission, though, use <a href="##(RADIO).Broadcast">RADIO.Broadcast</a> to actually broadcast</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Positionable.html##(POSITIONABLE)">Wrapper.Positionable#POSITIONABLE</a> Positionable </em></code>: </p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> self </em></code>: </p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> positionable </em></code>: </p>
|
||||
<p><code><em><a href="Wrapper.Positionable.html##(POSITIONABLE)">Wrapper.Positionable#POSITIONABLE</a> Positionable </em></code>:
|
||||
The <a href="Positionable.html">Positionable</a> that will receive radio capabilities.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
@ -604,25 +599,20 @@ but it will work for any POSITIONABLE
|
||||
<dt>
|
||||
|
||||
<a id="#(RADIO).SetFileName" >
|
||||
<strong>RADIO:SetFileName(fileName, filename)</strong>
|
||||
<strong>RADIO:SetFileName(FileName)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Check validity of the filename passed and sets RADIO.FileName</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#string fileName </em></code>:
|
||||
<p><code><em>#string FileName </em></code>:
|
||||
File name of the sound file (i.e. "Noise.ogg")</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> filename </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
@ -636,7 +626,7 @@ self</p>
|
||||
<dt>
|
||||
|
||||
<a id="#(RADIO).SetFrequency" >
|
||||
<strong>RADIO:SetFrequency(frequency)</strong>
|
||||
<strong>RADIO:SetFrequency(Frequency)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
@ -647,7 +637,7 @@ self</p>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#number frequency </em></code>:
|
||||
<p><code><em>#number Frequency </em></code>:
|
||||
in MHz (Ranges allowed for radio transmissions in DCS : 30-88 / 108-152 / 225-400MHz)</p>
|
||||
|
||||
</li>
|
||||
@ -663,24 +653,19 @@ self</p>
|
||||
<dt>
|
||||
|
||||
<a id="#(RADIO).SetLoop" >
|
||||
<strong>RADIO:SetLoop(Loop, loop)</strong>
|
||||
<strong>RADIO:SetLoop(Loop)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Check validity of the loop passed and sets RADIO.Loop</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#boolean Loop </em></code>: </p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> loop </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
@ -697,7 +682,7 @@ self</p>
|
||||
<dt>
|
||||
|
||||
<a id="#(RADIO).SetModulation" >
|
||||
<strong>RADIO:SetModulation(modulation)</strong>
|
||||
<strong>RADIO:SetModulation(Modulation)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
@ -708,7 +693,7 @@ self</p>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#number modulation </em></code>:
|
||||
<p><code><em>#number Modulation </em></code>:
|
||||
either radio.modulation.AM or radio.modulation.FM</p>
|
||||
|
||||
</li>
|
||||
@ -724,25 +709,20 @@ self</p>
|
||||
<dt>
|
||||
|
||||
<a id="#(RADIO).SetPower" >
|
||||
<strong>RADIO:SetPower(Power, power)</strong>
|
||||
<strong>RADIO:SetPower(Power)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Check validity of the power passed and sets RADIO.Power</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#number Power </em></code>:
|
||||
in W</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> power </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
@ -756,7 +736,7 @@ self</p>
|
||||
<dt>
|
||||
|
||||
<a id="#(RADIO).SetSubtitle" >
|
||||
<strong>RADIO:SetSubtitle(Subtitle, SubtitleDuration, subtitle, subtitleDuration)</strong>
|
||||
<strong>RADIO:SetSubtitle(SubTitle, SubTitleDuration)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
@ -767,24 +747,14 @@ self</p>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#string Subtitle </em></code>: </p>
|
||||
<p><code><em>#string SubTitle </em></code>: </p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em>#number SubtitleDuration </em></code>:
|
||||
<p><code><em>#number SubTitleDuration </em></code>:
|
||||
in s</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> subtitle </em></code>: </p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> subtitleDuration </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
@ -835,12 +835,6 @@ A coding example is provided at the description of the <a href="##(SPAWN).OnSpaw
|
||||
<td class="name" nowrap="nowrap"><a href="##(SPAWN)._TranslateRotate">SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle)</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SPAWN).uncontrolled">SPAWN.uncontrolled</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@ -1766,9 +1760,6 @@ The group that was spawned. You can use this group for further actions.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p> Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
@ -3202,20 +3193,6 @@ True = Continue Scheduler</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(SPAWN).uncontrolled" >
|
||||
<strong>SPAWN.uncontrolled</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
@ -318,7 +318,7 @@ are design patterns allowing efficient (long-lasting) processes and workflows.</
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="Radio.html">Radio</a></td>
|
||||
<td class="summary">
|
||||
<p>This module contains the <strong>Core - RADIO</strong> class.</p>
|
||||
<p><strong>Core</strong> - The RADIO class is responsible for <strong>transmitting radio communications</strong>.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user