@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:
FlightControl 2017-03-20 20:33:26 +01:00
parent 55cbd24588
commit baa17a4cb7
4 changed files with 144 additions and 192 deletions

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>