Refactoring Class

Using a multidimensional array instead of if else statements should be more efficent
这个提交包含在:
Robert Kaldenbach 2017-02-17 14:10:31 -05:00 提交者 GitHub
父节点 228eaed292
当前提交 33817a7027

查看文件

@ -1,213 +1,96 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Frequency { class Frequency {
/* Class to convert band and mode into a frequnecy in a format based on the specifications of the database table */ /* Class to convert band and mode into a frequnecy in a format based on the specifications of the database table */
public function convent_band($band, $mode) public function convent_band($band, $mode='SSB')
{ {
if($band == "160m") { if($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65"){
if ($mode == "SSB") { $mode= "DATA";
return "1900000";
}elseif($mode == "CW") {
return "1830000"; $frequency = array(
}elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") { '160m'=>array(
return "1838000"; 'SSB'=>"1900000",
} else { 'DATA'=>"1838000",
return "1900000"; 'CW'=>"1830000"),
} '80m'=>array(
} 'SSB'=>"3700000",
if($band == "80m") { 'DATA'=>"3583000",
if ($mode == "CW") { "CW"=>"3550000"),
return "3550000"; '40m'=>array(
}elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") { 'SSB'=>"7100000",
return "3583000"; 'DATA'=>"7040000",
}elseif($mode == "SSB") { 'CW'=>"7020000"),
return "3700000"; '30m'=>array(
} else { 'SSB'=>"10120000",
return "3700000"; 'DATA'=>"10145000",
} 'CW'=>"10120000"),
} '20m'=>array(
if($band == "40m") { 'SSB'=>"14200000",
if ($mode == "CW") { 'DATA'=>"14080000",
return "7020000"; 'CW'=>"14020000"),
} elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") { '17m'=>array(
return "7040000"; 'SSB'=>"18130000",
}elseif($mode == "SSB") { 'DATA'=>"18105000",
return "7100000"; 'CW'=>"18080000"),
} else { '15m'=>array(
return "7100000"; 'SSB'=>"21300000",
} 'DATA'=>"21080000",
} 'CW'=>"21020000"),
if($band == "30m") { '12m'=>array(
if ($mode == "CW") { 'SSB'=>"24950000",
return "10120000"; 'DATA'=>"24925000",
} elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") { 'CW'=>"24900000"),
return "10145000"; '10m'=>array(
} else { 'SSB'=>"28300000",
return "10120000"; 'DATA'=>"28120000",
} 'CW'=>"21050000"),
} '6m'=>array(
if($band == "20m") { 'SSB'=>"50150000",
if ($mode == "CW") { 'DATA'=>"50230000",
return "14020000"; 'CW'=>"50090000"),
} elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") { '4m'=>array(
return "14080000"; 'SSB'=>"70200000",
}elseif($mode == "SSB") { 'DATA'=>"70200000",
return "14200000"; 'CW'=>"70200000"),
} else { '2m'=>array(
return "14200000"; 'SSB'=>"144300000",
} 'DATA'=>"144370000",
} 'CW'=>"144.050000"),
if($band == "17m") { '70cm'=>array(
if ($mode == "CW") { 'SSB'=>"432200000",
return "18080000"; 'DATA'=>"432088000",
} elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") { 'CW'=>"432050000"),
return "18105000"; '23cm'=>array(
}elseif($mode == "SSB") { 'SSB'=>"1296000000",
return "18130000"; 'DATA'=>"1296138000",
} else { 'CW'=>"129600000"),
return "18130000"; '13cm'=>array(
} 'SSB'=>"232080000",
} 'DATA'=>"232080000",
if($band == "15m") { 'CW'=>"232080000"),
if ($mode == "CW") { '9cm'=>array(
return "21020000"; 'SSB'=>"341000000",
} elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") { 'DATA'=>"341000000",
return "21080000"; 'CW'=>"340000000"),
}elseif($mode == "SSB") { '6cm'=>array(
return "21300000"; 'SSB'=>"567000000",
} else { 'DATA'=>"567000000",
return "21300000"; 'CW'=>"567000000"),
} '3cm'=>array(
} 'SSB'=>"1022500000",
if($band == "12m") { 'DATA'=>"1022500000",
if ($mode == "CW") { 'CW'=>"1022500000")
return "24900000"; );
} elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") {
return "24925000"; return $frequency[$band][$mode];
}elseif($mode == "SSB") {
return "24950000";
}
}
if($band == "10m") {
if ($mode == "CW") {
return "21050000";
} elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") {
return "28120000";
}elseif($mode == "SSB") {
return "28300000";
} else {
return "28300000";
}
}
if($band == "6m") {
if ($mode == "CW") {
return "50090000";
} elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") {
return "50230000";
}elseif($mode == "SSB") {
return "50150000";
} else {
return "50150000";
}
}
if($band == "4m") {
if ($mode == "CW") {
return "70200000";
} elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") {
return "70200000";
}elseif($mode == "SSB") {
return "70200000";
} else {
return "70200000";
}
}
if($band == "2m") {
if ($mode == "CW") {
return "144.050000";
} elseif($mode == "PSK31" || $mode == "PSK63" || $mode == "RTTY" || $mode == "JT65") {
return "144370000";
}elseif($mode == "SSB") {
return "144300000";
} else {
return "144300000";
}
}
if($band == "70cm") {
if ($mode == "CW") {
return "432050000";
} elseif($mode == "PSK31" || $mode == "RTTY" || $mode == "JT65") {
return "432088000";
}elseif($mode == "SSB") {
return "432200000";
} else {
return "432200000";
}
}
if($band == "23cm") {
if ($mode == "CW") {
return "129600000";
} elseif($mode == "PSK31" || $mode == "RTTY" || $mode == "JT65") {
return "1296138000";
}elseif($mode == "SSB") {
return "1296000000";
} else {
return "1296000000";
}
}
if($band == "13cm") { }
if ($mode == "CW") {
return "232080000";
} elseif($mode == "PSK31" || $mode == "RTTY" || $mode == "JT65") {
return "232080000";
}elseif($mode == "SSB") {
return "232080000";
} else {
return "232080000";
}
}
if($band == "9cm") {
if ($mode == "CW") {
return "340000000";
} elseif($mode == "PSK31" || $mode == "RTTY" || $mode == "JT65") {
return "341000000";
}elseif($mode == "SSB") {
return "341000000";
} else {
return "341000000";
}
}
if($band == "6cm") {
if ($mode == "CW") {
return "567000000";
} elseif($mode == "PSK31" || $mode == "RTTY" || $mode == "JT65") {
return "567000000";
}elseif($mode == "SSB") {
return "567000000";
} else {
return "567000000";
}
}
if($band == "3cm") {
if ($mode == "CW") {
return "1022500000";
} elseif($mode == "PSK31" || $mode == "RTTY" || $mode == "JT65") {
return "1022500000";
}elseif($mode == "SSB") {
return "1022500000";
} else {
return "1022500000";
}
}
}
public function GetBand($Frequency) { public function GetBand($Frequency) {
$Band = NULL; $Band = NULL;
@ -269,7 +152,7 @@ public function GetBand($Frequency) {
return $Band; return $Band;
} }
} }
/* End of file Frequency.php */ /* End of file Frequency.php */