diff --git a/Scripts/DCS-ExportScript/lib/genericRadio.lua b/Scripts/DCS-ExportScript/lib/genericRadio.lua new file mode 100644 index 0000000..df952e0 --- /dev/null +++ b/Scripts/DCS-ExportScript/lib/genericRadio.lua @@ -0,0 +1,397 @@ +--[[ +-- 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 + ExportScript.Tools.WriteToLog("Radio Nr. "..ExportScript.AF.genericRadio.." not defined.") + ExportScript.Tools.SendDataDAC("3000", "") + ExportScript.Tools.SendDataDAC("3001", "") + ExportScript.Tools.SendDataDAC("3002", "") + 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)]) + 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") +--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]['ManualPreset'] ~= 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 \ No newline at end of file