Buzzer1977 Posted May 22, 2022 Posted May 22, 2022 Does anybody know how to calculate TACAN frequncies to activate the beacon from lua ? I know it depends on channel, mode, type and AA ... but i have no idea how to calculate it. { ["enabled"] = true, ["auto"] = true, ["id"] = "WrappedAction", ["number"] = 2, ["params"] = { ["action"] = { ["id"] = "ActivateBeacon", ["params"] = { ["type"] = 4, ["AA"] = false, ["unitId"] = 676, ["modeChannel"] = "Y", ["channel"] = 1, ["system"] = 5, ["callsign"] = "ta1", ["bearing"] = true, ["frequency"] = 1088000000, }, -- end of ["params"] }, -- end of ["action"] }, -- end of ["params"] } AMD Ryzen 9 5950x, MSI MEG x570 Unify, G.Skill 128GB DDR4-3200, MSI RTX3090 Ventus 3x 24GB, Samsung PCIe 4.0 M.2 1TB 980 Pro, Seagate PCIe 4.0 M.2 2TB FireCuda 520, Quest 3
AndyJWest Posted May 22, 2022 Posted May 22, 2022 There's a table of TACAN frequencies here, if this helps: https://wiki.radioreference.com/index.php/Instrument_Landing_System_(ILS)_Frequencies 1
Buzzer1977 Posted May 22, 2022 Author Posted May 22, 2022 1 hour ago, AndyJWest said: There's a table of TACAN frequencies here, if this helps: https://wiki.radioreference.com/index.php/Instrument_Landing_System_(ILS)_Frequencies The referenced table doesn't relate in any way with what DCS does. I just analyzed what the mission editor does. Above channel 63 base frequencies of X and Y are swapped. Don't know if this is intentional or a bug. ["params"] = { ["type"] = 4, ["AA"] = false, ["callsign"] = "63x", ["modeChannel"] = "X", ["channel"] = 63, ["system"] = 18, ["unitId"] = 686, ["bearing"] = true, ["frequency"] = 1024000000, }, -- end of ["params"] ["params"] = { ["type"] = 4, ["AA"] = false, ["unitId"] = 687, ["modeChannel"] = "X", ["channel"] = 64, ["system"] = 18, ["callsign"] = "64x", ["bearing"] = true, ["frequency"] = 1151000000, }, -- end of ["params"] ["params"] = { ["type"] = 4, ["AA"] = false, ["unitId"] = 688, ["modeChannel"] = "Y", ["channel"] = 63, ["system"] = 19, ["callsign"] = "63y", ["bearing"] = true, ["frequency"] = 1150000000, }, -- end of ["params"] ["params"] = { ["type"] = 4, ["AA"] = false, ["callsign"] = "64y", ["modeChannel"] = "Y", ["channel"] = 64, ["system"] = 19, ["unitId"] = 689, ["bearing"] = true, ["frequency"] = 1025000000, }, -- end of ["params"] -- 0X 961000000 -- 1X 962000000 -- 2X 963000000 -- 3X 964000000 -- 4X 965000000 -- 10x 971000000 -- 20x 981000000 -- 30x 991000000 -- 40x 1001000000 -- 50x 1011000000 -- 60x 1021000000 -- 61x 1022000000 -- 62x 1023000000 -- 63x 1024000000 --> 63/64 change base freq -- 64x 1151000000 -- 65x 1152000000 -- 66x 1153000000 -- 67x 1154000000 -- 69x 1156000000 -- 70x 1157000000 -- 73X 1160000000 -- 80x 1167000000 -- 90x 1177000000 -- 100x 1187000000 -- 110x 1197000000 -- 120x 1207000000 -- 126x 1213000000 -- 0Y 1087000000 -- 1Y 1088000000 -- 2Y 1089000000 -- 3Y 1090000000 -- 4Y 1091000000 -- 10y 1097000000 -- 20Y 1107000000 -- 30y 1117000000 -- 40Y 1127000000 -- 50y 1137000000 -- 60y 1147000000 -- 61y 1148000000 -- 62y 1149000000 -- 63y 1150000000 --> 63/64 change base freq -- 64y 1025000000 -- 65y 1026000000 -- 66y 1027000000 -- 67y 1028000000 -- 69y 1030000000 -- 70y 1031000000 -- 80y 1041000000 -- 90y 1051000000 -- 100y 1061000000 -- 110y 1071000000 -- 120y 1081000000 -- 126y 1087000000 function tacanFrequency( channel, mode ) if ( mode == "Y" and channel < 64 ) then local basef = 1087000000 local offset = 1000000 * channel return basef + offset elseif( mode == "X" and channel < 64 ) then local basef = 961000000 local offset = 1000000 * channel return basef + offset elseif ( mode == "Y" and channel > 63 ) then local basef = 961000000 local offset = 1000000 * channel return basef + offset elseif( mode == "X" and channel > 63 ) then local basef = 1087000000 local offset = 1000000 * channel return basef + offset end end 1 AMD Ryzen 9 5950x, MSI MEG x570 Unify, G.Skill 128GB DDR4-3200, MSI RTX3090 Ventus 3x 24GB, Samsung PCIe 4.0 M.2 1TB 980 Pro, Seagate PCIe 4.0 M.2 2TB FireCuda 520, Quest 3
Buzzer1977 Posted May 22, 2022 Author Posted May 22, 2022 function tacanFrequency( channel, mode ) if ( mode == "Y" and channel < 64 ) then local basef = 1087000000 local offset = 1000000 * channel return basef + offset elseif( mode == "X" and channel < 64 ) then local basef = 961000000 local offset = 1000000 * channel return basef + offset elseif ( mode == "Y" and channel > 63 ) then local basef = 961000000 local offset = 1000000 * channel return basef + offset elseif( mode == "X" and channel > 63 ) then local basef = 1087000000 local offset = 1000000 * channel return basef + offset end end 2 AMD Ryzen 9 5950x, MSI MEG x570 Unify, G.Skill 128GB DDR4-3200, MSI RTX3090 Ventus 3x 24GB, Samsung PCIe 4.0 M.2 1TB 980 Pro, Seagate PCIe 4.0 M.2 2TB FireCuda 520, Quest 3
Recommended Posts