mirror of
https://github.com/weyne85/DCS-ExportScripts.git
synced 2025-10-29 16:58:18 +00:00
411 lines
23 KiB
Lua
411 lines
23 KiB
Lua
-- Ikarus and D.A.C. Export Script
|
|
--
|
|
-- generic Radio File
|
|
--
|
|
-- Copyright by Michael aka McMicha 2014
|
|
-- Contact dcs2arcaze.micha@farbpigmente.org
|
|
|
|
ExportScript.Version.genericRadio = "1.2.1"
|
|
|
|
--[[
|
|
-- Config and execute in function ExportScript.ProcessDACConfigLowImportance()
|
|
|
|
-- genericRadioConf for example A-10C Radio AN/ARC-164 UHF
|
|
ExportScript.genericRadioConf = {}
|
|
ExportScript.genericRadioConf['maxRadios'] = 1 -- numbers of aviables/supported radios
|
|
ExportScript.genericRadioConf[1] = {} -- first radio
|
|
ExportScript.genericRadioConf[1]['Name'] = "AN/ARC-164 UHF" -- name of radio
|
|
ExportScript.genericRadioConf[1]['DeviceID'] = 54 -- DeviceID for GetDevice from device.lua
|
|
ExportScript.genericRadioConf[1]['setFrequency'] = true -- change frequency active
|
|
ExportScript.genericRadioConf[1]['FrequencyMultiplicator'] = 1000000 -- multiplicator from Hz to MHz
|
|
ExportScript.genericRadioConf[1]['FrequencyFormat'] = "%7.3f" -- frequency view format LUA style
|
|
ExportScript.genericRadioConf[1]['FrequencyStep'] = 25 -- minimal step for frequency change
|
|
ExportScript.genericRadioConf[1]['minFrequency'] = 220.000 -- lowest frequency
|
|
ExportScript.genericRadioConf[1]['maxFrequency'] = 314.450 -- highest frequency
|
|
ExportScript.genericRadioConf[1]['Power'] = {} -- power button active
|
|
ExportScript.genericRadioConf[1]['Power']['ButtonID'] = 3008 -- power button id from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['Power']['ValueOn'] = 0.1 -- power on value from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['Power']['ValueOff'] = 0.0 -- power off value from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['Volume'] = {} -- volume knob active
|
|
ExportScript.genericRadioConf[1]['Volume']['ButtonID'] = 3011 -- volume button id from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['Preset'] = {} -- preset knob active
|
|
ExportScript.genericRadioConf[1]['Preset']['ArgumentID'] = 161 -- ManualPreset argument id from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['Preset']['ButtonID'] = 3001 -- preset button id from cklickable.lua
|
|
-- ExportScript.genericRadioConf[1]['Preset']['ButtonID2'] = 3002 -- preset button id from cklickable.lua
|
|
-- Preset based on switchlogic on clickabledata.lua
|
|
ExportScript.genericRadioConf[1]['Preset']['List'] = {[0.0]="01",[0.05]="02",[0.10]="03",[0.15]="04",[0.20]="05",[0.25]="06",[0.30]="07",[0.35]="08",[0.40]="09",[0.45]="10",[0.50]="11",[0.55]="12",[0.60]="13",[0.65]="14",[0.70]="15",[0.75]="16",[0.80]="17",[0.85]="18",[0.90]="19",[0.95]="20",[1.00]="01"}
|
|
ExportScript.genericRadioConf[1]['Preset']['Step'] = 0.05 -- minimal step for preset change
|
|
-- ExportScript.genericRadioConf[1]['Preset']['Step2'] = -0.05 -- minimal step for preset change
|
|
ExportScript.genericRadioConf[1]['Squelch'] = {} -- squelch switch active
|
|
ExportScript.genericRadioConf[1]['Squelch']['ArgumentID'] = 170 -- ManualPreset argument id from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['Squelch']['ButtonID'] = 3010 -- squelch button id from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['Squelch']['ValueOn'] = 0.0 -- squelch on value from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['Squelch']['ValueOff'] = 1.0 -- squelch off value from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['Load'] = {} -- load button preset
|
|
ExportScript.genericRadioConf[1]['Load']['ButtonID'] = 3015 -- load button id from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['ManualPreset'] = {} -- switch manual or preset active
|
|
ExportScript.genericRadioConf[1]['ManualPreset']['ArgumentID'] = 167 -- ManualPreset argument id from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['ManualPreset']['ButtonID'] = 3007 -- ManualPreset button id from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['ManualPreset']['ValueManual'] = 0.0-- ManualPreset Manual value from cklickable.lua
|
|
ExportScript.genericRadioConf[1]['ManualPreset']['ValuePreset'] = 0.1-- ManualPreset Preset value from cklickable.lua
|
|
|
|
...
|
|
|
|
ExportScript.genericRadio(nil, nil)]]
|
|
|
|
function ExportScript.genericRadio(key, value)
|
|
--ExportScript.Tools.WriteToLog('genericRadioConf: '..ExportScript.Tools.dump(ExportScript.genericRadioConf))
|
|
if type(ExportScript.genericRadioConf) ~= "table" then
|
|
ExportScript.Tools.WriteToLog("No Radio defined.")
|
|
return
|
|
end
|
|
|
|
local lRotaryFrequency_1, lRotaryFrequency_2, lVolume, lPreset, lLoad, lSquelch, lManualPreset, lPower, lDevice, lClickAction, lSetFrequency = nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil
|
|
local lMainPanelDevice = GetDevice(0)
|
|
|
|
if ExportScript.AF.genericRadio == nil then
|
|
ExportScript.AF.genericRadio = 0
|
|
end
|
|
if ExportScript.AF.genericRadioFrequency1 == nil then
|
|
ExportScript.AF.genericRadioFrequency1 = 0.0
|
|
end
|
|
if ExportScript.AF.genericRadioFrequency2 == nil then
|
|
ExportScript.AF.genericRadioFrequency2 = 0.0
|
|
end
|
|
if ExportScript.AF.genericRadioPower == nil then
|
|
ExportScript.AF.genericRadioPower = {}
|
|
end
|
|
if ExportScript.AF.genericRadioPresetManual == nil then
|
|
ExportScript.AF.genericRadioPresetManual = {}
|
|
end
|
|
if ExportScript.AF.genericRadioSquelch == nil then
|
|
ExportScript.AF.genericRadioSquelch = {}
|
|
end
|
|
if ExportScript.AF.genericRadioPreset == nil then
|
|
ExportScript.AF.genericRadioPreset = {}
|
|
end
|
|
|
|
if key == "3001" then
|
|
ExportScript.AF.genericRadio = tonumber(value)
|
|
end
|
|
if key == "3002" then
|
|
lRotaryFrequency_1 = tonumber(value)
|
|
end
|
|
if key == "3003" then
|
|
lRotaryFrequency_2 = tonumber(value)
|
|
end
|
|
if key == "3004" then
|
|
lVolume = tonumber(value)
|
|
end
|
|
if key == "3005" then
|
|
lPreset = tonumber(value)
|
|
end
|
|
if key == "3006" then
|
|
lLoad = tonumber(value)
|
|
end
|
|
if key == "3007" then
|
|
lSquelch = tonumber(value)
|
|
end
|
|
if key == "3008" then
|
|
lManualPreset = tonumber(value)
|
|
end
|
|
if key == "3009" then
|
|
lPower = tonumber(value)
|
|
end
|
|
|
|
local lPresetChannelFrequency = "-" -- ID 3000
|
|
local lPresetChannel = "-" -- ID 3001
|
|
local lFrequency = "-" -- ID 3002
|
|
|
|
if ExportScript.AF.genericRadio == 0 or ExportScript.AF.genericRadio > ExportScript.genericRadioConf['maxRadios'] then
|
|
if ExportScript.AF.genericRadio ~= 0 then
|
|
ExportScript.Tools.WriteToLog("Radio Nr. "..ExportScript.AF.genericRadio.." not defined.")
|
|
end
|
|
ExportScript.Tools.SendDataDAC("3000", lPresetChannelFrequency)
|
|
ExportScript.Tools.SendDataDAC("3001", lPresetChannel)
|
|
ExportScript.Tools.SendDataDAC("3002", lFrequency)
|
|
ExportScript.Tools.SendDataDAC("3010", 0)
|
|
ExportScript.Tools.SendDataDAC("3011", 0)
|
|
ExportScript.Tools.SendDataDAC("3012", 0)
|
|
ExportScript.Tools.SendDataDAC("3013", 0)
|
|
return
|
|
end
|
|
|
|
---------------------------------------------------
|
|
local lRADIO = GetDevice(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'])
|
|
|
|
-- check status of the radio
|
|
if ExportScript.AF.genericRadioPower[ExportScript.AF.genericRadio] == nil then
|
|
if lRADIO:is_on() then
|
|
ExportScript.AF.genericRadioPower[ExportScript.AF.genericRadio] = 1.0
|
|
else
|
|
ExportScript.AF.genericRadioPower[ExportScript.AF.genericRadio] = 0.0
|
|
end
|
|
end
|
|
|
|
-- check Manual/Preset switch
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['ManualPreset'] ~= nil then
|
|
if ExportScript.AF.genericRadioPresetManual[ExportScript.AF.genericRadio] == nil then
|
|
ExportScript.AF.genericRadioPresetManual[ExportScript.AF.genericRadio] = ((ExportScript.Tools.round(lMainPanelDevice:get_argument_value(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['ManualPreset']['ArgumentID']), 1) == ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['ManualPreset']['ValueOn']) and 1 or 0)
|
|
end
|
|
else
|
|
ExportScript.AF.genericRadioPresetManual[ExportScript.AF.genericRadio] = 0
|
|
end
|
|
|
|
-- check Squelch switch
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Squelch'] ~= nil then
|
|
if ExportScript.AF.genericRadioSquelch[ExportScript.AF.genericRadio] == nil then
|
|
ExportScript.AF.genericRadioSquelch[ExportScript.AF.genericRadio] = ((ExportScript.Tools.round(lMainPanelDevice:get_argument_value(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Squelch']['ArgumentID']), 1) == ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Squelch']['ValueOn']) and 1 or 0)
|
|
end
|
|
else
|
|
ExportScript.AF.genericRadioSquelch[ExportScript.AF.genericRadio] = 0
|
|
end
|
|
|
|
if ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] == nil then
|
|
ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] = 0
|
|
end
|
|
|
|
if lRADIO:is_on() then
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset'] ~= nil then
|
|
--lPresetChannel = string.format("%s", ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['List'][ExportScript.Tools.round(lMainPanelDevice:get_argument_value(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['ArgumentID']), 2)])
|
|
--ExportScript.Tools.WriteToLog('Preset index: '..ExportScript.Tools.dump(ExportScript.Tools.round(lMainPanelDevice:get_argument_value(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['ArgumentID']), string.match(string.reverse(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['Step']), '.'))))
|
|
lPresetChannel = string.format("%s", ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['List'][ExportScript.Tools.round(lMainPanelDevice:get_argument_value(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['ArgumentID']), string.match(string.reverse(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['Step']), '.'))])
|
|
end
|
|
|
|
lFrequency = ExportScript.Tools.round(lRADIO:get_frequency()/ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['FrequencyMultiplicator'] , 3, "floor")
|
|
lFrequency = string.format(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['FrequencyFormat'], lFrequency)
|
|
|
|
lPresetChannelFrequency = string.format("%s%s", lPresetChannel, lFrequency)
|
|
lPresetChannelFrequency = lPresetChannelFrequency:gsub(" ", "0")
|
|
lPresetChannelFrequency = lPresetChannelFrequency:gsub("-", "")
|
|
--ExportScript.Tools.WriteToLog('lPresetChannel: '..ExportScript.Tools.dump(lPresetChannel))
|
|
--ExportScript.Tools.WriteToLog('lFrequency: '..ExportScript.Tools.dump(lFrequency))
|
|
--ExportScript.Tools.WriteToLog('lPresetChannelFrequency: '..ExportScript.Tools.dump(lPresetChannelFrequency))
|
|
-- setFrequency == true
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['setFrequency'] then
|
|
-- minimal frequency, for example lMinFrequency1=220, lMinFrequency2=0 from 220.000
|
|
local lMinFrequency1, lMinFrequency2 = math.modf(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['minFrequency'])
|
|
lMinFrequency2 = lMinFrequency2 * 1000
|
|
-- maximal frequency, for example lMaxFrequency1=314, lMaxFrequency2=975 from 314.975
|
|
local lMaxFrequency1, lMaxFrequency2 = math.modf(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['maxFrequency'])
|
|
lMaxFrequency2 = lMaxFrequency2 * 1000
|
|
|
|
if lRotaryFrequency_1 ~= nil and (lRotaryFrequency_1 >= 0.0 and lRotaryFrequency_1 <= 2.0) then
|
|
|
|
local lTmpFrequency = ExportScript.Tools.StrSplit(lFrequency, "%.") -- %. um den Punkt als Punkt zu suchen
|
|
|
|
if type(lTmpFrequency) == "table" and lTmpFrequency[1] ~= nil then
|
|
lTmpFrequency[1] = tonumber(lTmpFrequency[1])
|
|
if lTmpFrequency[2] == nil then
|
|
lTmpFrequency[2] = 0
|
|
else
|
|
lTmpFrequency[2] = tonumber(lTmpFrequency[2])
|
|
local ltmp = string.format("%.0f", lTmpFrequency[2] / ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['FrequencyStep'])
|
|
lTmpFrequency[2] = ltmp * ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['FrequencyStep']
|
|
end
|
|
if lRotaryFrequency_1 < ExportScript.AF.genericRadioFrequency1 or lRotaryFrequency_1 == 0.0 or lRotaryFrequency_1 == 2.0 then
|
|
lTmpFrequency[1] = lTmpFrequency[1] - 1
|
|
if lTmpFrequency[1] == (lMinFrequency1 - 1) then
|
|
lTmpFrequency[1] = lMaxFrequency1
|
|
end
|
|
ExportScript.AF.genericRadioFrequency1 = lRotaryFrequency_1
|
|
else
|
|
lTmpFrequency[1] = lTmpFrequency[1] + 1
|
|
if lTmpFrequency[1] == (lMaxFrequency1 + 1) then
|
|
lTmpFrequency[1] = lMinFrequency1
|
|
end
|
|
ExportScript.AF.genericRadioFrequency1 = lRotaryFrequency_1
|
|
end
|
|
|
|
lTmpFrequency[2] = string.format("%.3f", lTmpFrequency[2] / 1000)
|
|
lTmpFrequency = string.format("%.3f", lTmpFrequency[1] + lTmpFrequency[2])
|
|
lTmpFrequency = tonumber(lTmpFrequency)
|
|
lSetFrequency = {DeviceID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'],
|
|
Frequency = lTmpFrequency * 1000000}
|
|
|
|
else
|
|
ExportScript.Tools.WriteToLog("1. generic "..ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Name'].." Radio, don't split frequency: "..lFrequency)
|
|
end
|
|
end
|
|
|
|
if lRotaryFrequency_2 ~= nil and (lRotaryFrequency_2 >= 0.0 and lRotaryFrequency_2 <= 2.0) then
|
|
|
|
local lTmpFrequency = ExportScript.Tools.StrSplit(lFrequency, "%.")
|
|
|
|
if type(lTmpFrequency) == "table" and lTmpFrequency[1] ~= nil then
|
|
lTmpFrequency[1] = tonumber(lTmpFrequency[1])
|
|
if lTmpFrequency[2] == nil then
|
|
lTmpFrequency[2] = 0
|
|
else
|
|
lTmpFrequency[2] = tonumber(lTmpFrequency[2])
|
|
local ltmp = string.format("%.0f", lTmpFrequency[2] / ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['FrequencyStep'])
|
|
lTmpFrequency[2] = ltmp * ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['FrequencyStep']
|
|
end
|
|
if lRotaryFrequency_2 < ExportScript.AF.genericRadioFrequency2 or lRotaryFrequency_2 == 0.0 or lRotaryFrequency_2 == 2.0 then
|
|
lTmpFrequency[2] = lTmpFrequency[2] - ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['FrequencyStep']
|
|
if lTmpFrequency[2] == (ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['FrequencyStep'] * -1) then
|
|
lTmpFrequency[2] = lMaxFrequency2
|
|
end
|
|
ExportScript.AF.genericRadioFrequency2 = lRotaryFrequency_2
|
|
else
|
|
lTmpFrequency[2] = lTmpFrequency[2] + ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['FrequencyStep']
|
|
if lTmpFrequency[2] == (lMaxFrequency2 + ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['FrequencyStep']) then
|
|
lTmpFrequency[2] = 0
|
|
end
|
|
ExportScript.AF.genericRadioFrequency2 = lRotaryFrequency_2
|
|
end
|
|
|
|
lTmpFrequency[2] = string.format("%.3f", lTmpFrequency[2] / 1000)
|
|
lTmpFrequency = string.format("%.3f", lTmpFrequency[1] + lTmpFrequency[2])
|
|
lTmpFrequency = tonumber(lTmpFrequency)
|
|
lSetFrequency = {DeviceID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'],
|
|
Frequency = lTmpFrequency * 1000000}
|
|
|
|
else
|
|
ExportScript.Tools.WriteToLog("2. generic "..ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Name'].." Radio, don't split frequency: "..lFrequency)
|
|
end
|
|
end
|
|
end
|
|
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset'] ~= nil then
|
|
if lPreset ~= nil and (lPreset >= 0.0 and lPreset <= 2.0) then
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['ButtonID2'] == nil and ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['Step2'] == nil then
|
|
local lTempPresetKeys = {}
|
|
for k,v in pairs(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['List']) do
|
|
table.insert(lTempPresetKeys, k)
|
|
end
|
|
|
|
local lMinKey = math.min(unpack(lTempPresetKeys))
|
|
local lMaxKey = math.max(unpack(lTempPresetKeys))
|
|
|
|
if lPreset > ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] then
|
|
ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] = ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] + ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['Step']
|
|
if ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] > lMaxKey then
|
|
ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] = lMinKey
|
|
end
|
|
else
|
|
ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] = ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] - ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['Step']
|
|
if ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] < lMinKey then
|
|
ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] = lMaxKey
|
|
end
|
|
end
|
|
lClickAction = {DeviceID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'],
|
|
ButtonID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['ButtonID'],
|
|
Value = ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio]}
|
|
else
|
|
if lPreset < ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] or lPreset == 0.0 or lPreset == 2.0 then
|
|
lClickAction = {DeviceID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'],
|
|
ButtonID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['ButtonID'],
|
|
Value = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['Step']}
|
|
ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] = lPreset
|
|
else
|
|
lClickAction = {DeviceID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'],
|
|
ButtonID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['ButtonID2'],
|
|
Value = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Preset']['Step2']}
|
|
ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] = lPreset
|
|
end
|
|
ExportScript.AF.genericRadioPreset[ExportScript.AF.genericRadio] = lPreset
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Volume'] ~= nil then
|
|
if lVolume ~= nil and (lVolume >= 0.0 and lVolume <= 2.0) then
|
|
lVolume = lVolume / 2
|
|
lClickAction = {DeviceID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'],
|
|
ButtonID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Volume']['ButtonID'],
|
|
Value = lVolume}
|
|
end
|
|
end
|
|
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Load'] ~= nil then
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Load']['ButtonID'] ~= nil then
|
|
if lLoad ~= nil and (lLoad == 0.0 or lLoad <= 1.0) then
|
|
lClickAction = {DeviceID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'],
|
|
ButtonID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Load']['ButtonID'],
|
|
Value = lLoad}
|
|
end
|
|
end
|
|
end
|
|
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Squelch'] ~= nil then
|
|
if lSquelch ~= nil and (lSquelch == 0.0 or lSquelch <= 1.0) then
|
|
if lSquelch == 1.0 and ExportScript.AF.genericRadioSquelch[ExportScript.AF.genericRadio] == 1.0 then
|
|
-- Squelch off
|
|
lSquelch = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Squelch']['ValueOff']
|
|
ExportScript.AF.genericRadioSquelch[ExportScript.AF.genericRadio] = 0
|
|
elseif lSquelch == 1.0 and ExportScript.AF.genericRadioSquelch[ExportScript.AF.genericRadio] == 0 then
|
|
-- Squelch on
|
|
lSquelch = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Squelch']['ValueOn']
|
|
ExportScript.AF.genericRadioSquelch[ExportScript.AF.genericRadio] = 1.0
|
|
end
|
|
lClickAction = {DeviceID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'],
|
|
ButtonID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Squelch']['ButtonID'],
|
|
Value = lSquelch}
|
|
end
|
|
end
|
|
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['ManualPreset'] ~= nil then
|
|
if lManualPreset ~= nil and (lManualPreset == 0.0 or lManualPreset <= 1.0) then
|
|
if lManualPreset == 1.0 and ExportScript.AF.genericRadioPresetManual[ExportScript.AF.genericRadio] == 1.0 then
|
|
-- Manual
|
|
lManualPreset = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['ManualPreset']['ValueManual']
|
|
ExportScript.AF.genericRadioPresetManual[ExportScript.AF.genericRadio] = 0
|
|
elseif lManualPreset == 1.0 and ExportScript.AF.genericRadioPresetManual[ExportScript.AF.genericRadio] == 0 then
|
|
-- Preset
|
|
lManualPreset = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['ManualPreset']['ValuePreset']
|
|
ExportScript.AF.genericRadioPresetManual[ExportScript.AF.genericRadio] = 1.0
|
|
end
|
|
lClickAction = {DeviceID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'],
|
|
ButtonID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['ManualPreset']['ButtonID'],
|
|
Value = lManualPreset}
|
|
end
|
|
end
|
|
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Power'] ~= nil then
|
|
if lPower ~= nil and (lPower == 0.0 or lPower <= 1.0) then
|
|
if lPower == 1.0 and ExportScript.AF.genericRadioPower[ExportScript.AF.genericRadio] == 1.0 then
|
|
-- Power off
|
|
lPower = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Power']['ValueOff']
|
|
ExportScript.AF.genericRadioPower[ExportScript.AF.genericRadio] = 0
|
|
elseif lPower == 1.0 and ExportScript.AF.genericRadioPower[ExportScript.AF.genericRadio] == 0 then
|
|
--Power on
|
|
lPower = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Power']['ValueOn']
|
|
ExportScript.AF.genericRadioPower[ExportScript.AF.genericRadio] = 1.0
|
|
end
|
|
lClickAction = {DeviceID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['DeviceID'],
|
|
ButtonID = ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Power']['ButtonID'],
|
|
Value = lPower}
|
|
end
|
|
end
|
|
|
|
ExportScript.Tools.SendDataDAC("3000", lPresetChannelFrequency)
|
|
ExportScript.Tools.SendDataDAC("3001", lPresetChannel)
|
|
ExportScript.Tools.SendDataDAC("3002", lFrequency)
|
|
ExportScript.Tools.SendDataDAC("3010", ExportScript.AF.genericRadioPower[ExportScript.AF.genericRadio])
|
|
ExportScript.Tools.SendDataDAC("3011", ExportScript.AF.genericRadioPresetManual[ExportScript.AF.genericRadio])
|
|
ExportScript.Tools.SendDataDAC("3012", ExportScript.AF.genericRadioSquelch[ExportScript.AF.genericRadio])
|
|
-- is only for radios with a lamp for Load button, for example Ka-50 Load Button is Autotune with lamp
|
|
if ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Load'] ~= nil and ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Load']['ArgumentID'] ~= nil then
|
|
ExportScript.Tools.SendDataDAC("3013", lMainPanelDevice:get_argument_value(ExportScript.genericRadioConf[ExportScript.AF.genericRadio]['Load']['ArgumentID']))
|
|
else
|
|
ExportScript.Tools.SendDataDAC("3013", 0)
|
|
end
|
|
|
|
if lClickAction ~= nil then
|
|
lDevice = GetDevice(lClickAction.DeviceID)
|
|
if type(lDevice) == "table" then
|
|
--ExportScript.Tools.WriteToLog("GetDevice("..lClickAction.DeviceID.."):performClickableAction("..lClickAction.ButtonID..", "..lClickAction.Value..") ")
|
|
lDevice:performClickableAction(lClickAction.ButtonID, lClickAction.Value)
|
|
end
|
|
elseif lSetFrequency ~= nil then
|
|
lDevice = GetDevice(lSetFrequency.DeviceID)
|
|
if type(lDevice) == "table" and lDevice:is_on() then
|
|
--ExportScript.Tools.WriteToLog("GetDevice("..lSetFrequency.DeviceID.."):set_frequency("..lSetFrequency.Frequency..") ")
|
|
lDevice:set_frequency(lSetFrequency.Frequency)
|
|
else
|
|
ExportScript.Tools.WriteToLog("GetDevice("..lSetFrequency.DeviceID..") is no table or Radio is not on")
|
|
end
|
|
end
|
|
end |