From f951018ed1d4b60cec83e03e4fa4402fddb63d66 Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Tue, 29 Jul 2025 16:01:57 +0100 Subject: [PATCH] Expand mode and submode mapping in Lotw controller Added comprehensive handling for various digital modes and submodes in the Lotw controller, including detailed mappings for JT65, JT4, JT9, QRA64, ISCAT, OLIVIA, OPERA, ROS, HELL, DOMINO, CHIP, PAC, PAX, TOR, THRB, SSB, RTTY, CW, CLO, and V4. This improves the accuracy of mode translation and ensures better compatibility with a wider range of digital communication formats. --- application/controllers/Lotw.php | 344 ++++++++++++++++++++++++++++++- 1 file changed, 343 insertions(+), 1 deletion(-) diff --git a/application/controllers/Lotw.php b/application/controllers/Lotw.php index 4b9c0e17..224dbbc4 100644 --- a/application/controllers/Lotw.php +++ b/application/controllers/Lotw.php @@ -1044,6 +1044,33 @@ class Lotw extends CI_Controller { } elseif ($submode == "Q65") { return "Q65"; break; + } elseif ($submode == "FSQCALL") { + return "DATA"; + break; + } elseif ($submode == "JS8") { + return "DATA"; + break; + } elseif ($submode == "MFSK11") { + return "DATA"; + break; + } elseif ($submode == "MFSK128") { + return "DATA"; + break; + } elseif ($submode == "MFSK22") { + return "DATA"; + break; + } elseif ($submode == "MFSK31") { + return "DATA"; + break; + } elseif ($submode == "MFSK32") { + return "DATA"; + break; + } elseif ($submode == "MFSK4") { + return "DATA"; + break; + } elseif ($submode == "MFSK64") { + return "DATA"; + break; } else { return "DATA"; break; @@ -1074,7 +1101,7 @@ class Lotw extends CI_Controller { return "PSK125"; break; } elseif ($submode == "PSK500") { - return "PSK500"; + return "DATA"; break; } elseif ($submode == "PSK63F") { return "PSK63F"; @@ -1103,10 +1130,325 @@ class Lotw extends CI_Controller { } elseif ($submode == "PSK2K") { return "PSK2K"; break; + } elseif ($submode == "PSK1000") { + return "DATA"; + break; + } elseif ($submode == "PSK250") { + return "DATA"; + break; + } elseif ($submode == "QPSK250") { + return "DATA"; + break; + } elseif ($submode == "QPSK500") { + return "DATA"; + break; + } elseif ($submode == "SIM31") { + return "DATA"; + break; } else { return "DATA"; break; } + case "JT65": + if ($submode == "JT65A") { + return "JT65A"; + break; + } elseif ($submode == "JT65B") { + return "JT65B"; + break; + } elseif ($submode == "JT65B2") { + return "JT65B2"; + break; + } elseif ($submode == "JT65C") { + return "JT65C"; + break; + } elseif ($submode == "JT65C2") { + return "JT65C2"; + break; + } else { + return "JT65"; + break; + } + case "JT4": + if ($submode == "JT4A") { + return "JT4A"; + break; + } elseif ($submode == "JT4B") { + return "JT4B"; + break; + } elseif ($submode == "JT4C") { + return "JT4C"; + break; + } elseif ($submode == "JT4D") { + return "JT4D"; + break; + } elseif ($submode == "JT4E") { + return "JT4E"; + break; + } elseif ($submode == "JT4F") { + return "JT4F"; + break; + } elseif ($submode == "JT4G") { + return "JT4G"; + break; + } else { + return "JT4"; + break; + } + case "JT9": + if ($submode == "JT9-1") { + return "JT9-1"; + break; + } elseif ($submode == "JT9-10") { + return "JT9-10"; + break; + } elseif ($submode == "JT9-2") { + return "JT9-2"; + break; + } elseif ($submode == "JT9-30") { + return "JT9-30"; + break; + } elseif ($submode == "JT9-5") { + return "JT9-5"; + break; + } elseif ($submode == "JT9A") { + return "JT9A"; + break; + } elseif ($submode == "JT9B") { + return "JT9B"; + break; + } elseif ($submode == "JT9C") { + return "JT9C"; + break; + } elseif ($submode == "JT9D") { + return "JT9D"; + break; + } elseif ($submode == "JT9E") { + return "JT9E"; + break; + } elseif ($submode == "JT9E FAST") { + return "JT9E FAST"; + break; + } elseif ($submode == "JT9F") { + return "JT9F"; + break; + } elseif ($submode == "JT9F FAST") { + return "JT9F FAST"; + break; + } elseif ($submode == "JT9G") { + return "JT9G"; + break; + } elseif ($submode == "JT9G FAST") { + return "JT9G FAST"; + break; + } elseif ($submode == "JT9H") { + return "JT9H"; + break; + } elseif ($submode == "JT9H FAST") { + return "JT9H FAST"; + break; + } else { + return "JT9"; + break; + } + case "QRA64": + if ($submode == "QRA64A") { + return "QRA64A"; + break; + } elseif ($submode == "QRA64B") { + return "QRA64B"; + break; + } elseif ($submode == "QRA64C") { + return "QRA64C"; + break; + } elseif ($submode == "QRA64D") { + return "QRA64D"; + break; + } elseif ($submode == "QRA64E") { + return "QRA64E"; + break; + } else { + return "QRA64"; + break; + } + case "ISCAT": + if ($submode == "ISCAT-A") { + return "ISCAT-A"; + break; + } elseif ($submode == "ISCAT-B") { + return "ISCAT-B"; + break; + } else { + return "ISCAT"; + break; + } + case "OLIVIA": + if ($submode == "OLIVIA 16/1000") { + return "OLIVIA 16/1000"; + break; + } elseif ($submode == "OLIVIA 16/500") { + return "OLIVIA 16/500"; + break; + } elseif ($submode == "OLIVIA 32/1000") { + return "OLIVIA 32/1000"; + break; + } elseif ($submode == "OLIVIA 4/125") { + return "OLIVIA 4/125"; + break; + } elseif ($submode == "OLIVIA 4/250") { + return "OLIVIA 4/250"; + break; + } elseif ($submode == "OLIVIA 8/250") { + return "OLIVIA 8/250"; + break; + } elseif ($submode == "OLIVIA 8/500") { + return "OLIVIA 8/500"; + break; + } else { + return "OLIVIA"; + break; + } + case "OPERA": + if ($submode == "OPERA-BEACON") { + return "OPERA-BEACON"; + break; + } elseif ($submode == "OPERA-QSO") { + return "OPERA-QSO"; + break; + } else { + return "OPERA"; + break; + } + case "ROS": + if ($submode == "ROS-EME") { + return "ROS-EME"; + break; + } elseif ($submode == "ROS-HF") { + return "ROS-HF"; + break; + } elseif ($submode == "ROS-MF") { + return "ROS-MF"; + break; + } else { + return "ROS"; + break; + } + case "HELL": + if ($submode == "FMHELL") { + return "FMHELL"; + break; + } elseif ($submode == "FSKHELL") { + return "FSKHELL"; + break; + } elseif ($submode == "HELL80") { + return "HELL80"; + break; + } elseif ($submode == "HFSK") { + return "HFSK"; + break; + } elseif ($submode == "PSKHELL") { + return "PSKHELL"; + break; + } else { + return "HELL"; + break; + } + case "DOMINO": + if ($submode == "DOMINOEX") { + return "DOMINOEX"; + break; + } elseif ($submode == "DOMINOF") { + return "DOMINOF"; + break; + } else { + return "DOMINO"; + break; + } + case "CHIP": + if ($submode == "CHIP128") { + return "CHIP128"; + break; + } elseif ($submode == "CHIP64") { + return "CHIP64"; + break; + } else { + return "CHIP"; + break; + } + case "PAC": + if ($submode == "PAC2") { + return "PACTOR"; + break; + } elseif ($submode == "PAC3") { + return "PACTOR"; + break; + } elseif ($submode == "PAC4") { + return "PACTOR"; + break; + } else { + return "PACTOR"; + break; + } + case "PAX": + if ($submode == "PAX2") { + return "PAX2"; + break; + } else { + return "PAX"; + break; + } + case "TOR": + if ($submode == "AMTORFEC") { + return "AMTOR"; + break; + } elseif ($submode == "GTOR") { + return "GTOR"; + break; + } else { + return "AMTOR"; + break; + } + case "THRB": + if ($submode == "THRBX") { + return "THROB"; + break; + } else { + return "THROB"; + break; + } + case "SSB": + if ($submode == "LSB") { + return "LSB"; + break; + } elseif ($submode == "USB") { + return "USB"; + break; + } else { + return "SSB"; + break; + } + case "RTTY": + if ($submode == "ASCI") { + return "ASCI"; + break; + } else { + return "RTTY"; + break; + } + case "CW": + if ($submode == "PCW") { + return "PCW"; + break; + } else { + return "CW"; + break; + } + case "CLO": + return "CLOVER"; + break; + case "V4": + return "DATA"; + break; default: return $mode; endswitch;