| 
									
										
										
										
											2023-04-12 17:58:47 +08:00
										 |  |  | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Cabrilloformat { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-12 20:24:03 +08:00
										 |  |  |     public function header($contest_id, $callsign, $claimed_score, $operators, $club, $name, $address1, $address2, $address3, $soapbox, $gridlocator) { | 
					
						
							| 
									
										
										
										
											2023-04-12 17:58:47 +08:00
										 |  |  |         $cab_header = ""; | 
					
						
							|  |  |  |         $cab_header .= "START-OF-LOG: 3.0"."\r\n"; | 
					
						
							|  |  |  |         $cab_header .= "CONTEST: ".$contest_id."\r\n"; | 
					
						
							|  |  |  |         $cab_header .= "CALLSIGN: ".$callsign."\r\n"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if($claimed_score != null) { | 
					
						
							|  |  |  |             $cab_header .= "CLAIMED-SCORE: ".$claimed_score."\r\n"; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $cab_header .= "OPERATORS: ".$operators."\r\n"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if($club != null) { | 
					
						
							|  |  |  |             $cab_header .= "CLUB: ".$club."\r\n"; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $cab_header .= "NAME: ".$name."\r\n"; | 
					
						
							|  |  |  |         $cab_header .= "ADDRESS: ".$address1."\r\n"; | 
					
						
							|  |  |  |         $cab_header .= "ADDRESS: ".$address2."\r\n"; | 
					
						
							|  |  |  |         $cab_header .= "ADDRESS: ".$address3."\r\n"; | 
					
						
							|  |  |  |         $cab_header .= "SOAPBOX: ".$soapbox."\r\n"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-12 20:24:03 +08:00
										 |  |  |         if($gridlocator != null) { | 
					
						
							|  |  |  |             $cab_header .= "GRID-LOCATOR: ".$gridlocator."\r\n"; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-12 17:58:47 +08:00
										 |  |  |         return $cab_header; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function footer() { | 
					
						
							|  |  |  |         return "END-OF-LOG:"; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function qso($qso) { | 
					
						
							|  |  |  |         $freq =  substr($qso->COL_FREQ, 0, -3); | 
					
						
							| 
									
										
										
										
											2023-04-12 22:46:55 +08:00
										 |  |  |         if ($freq > 30000) { | 
					
						
							|  |  |  |            if ($freq > 250000000) { | 
					
						
							|  |  |  |               $freq = "LIGHT"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 241000000 && $freq <= 250000000 ) { | 
					
						
							|  |  |  |               $freq = "241G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 134000000 && $freq <= 141000000 ) { | 
					
						
							|  |  |  |               $freq = "134G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 122250000 && $freq <= 123000000 ) { | 
					
						
							|  |  |  |               $freq = "122G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 75500000 && $freq <= 81500000 ) { | 
					
						
							|  |  |  |               $freq = "75G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 47000000 && $freq <= 47200000 ) { | 
					
						
							|  |  |  |               $freq = "47G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 24000000 && $freq <= 24250000 ) { | 
					
						
							|  |  |  |               $freq = "24G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 10000000 && $freq <= 10500000 ) { | 
					
						
							|  |  |  |               $freq = "10G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 5650000 && $freq <= 5850000 ) { | 
					
						
							|  |  |  |               $freq = "5.7G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 3400000 && $freq <= 3475000 ) { | 
					
						
							|  |  |  |               $freq = "3.4G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 2320000 && $freq <= 2450000 ) { | 
					
						
							|  |  |  |               $freq = "2.4G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 1240000 && $freq <= 1300000 ) { | 
					
						
							|  |  |  |               $freq = "1.2G"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 902000 && $freq <= 928000 ) { | 
					
						
							|  |  |  |               $freq = "902"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 430000 && $freq <= 440000 ) { | 
					
						
							|  |  |  |               $freq = "432"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 222000 && $freq <= 225000 ) { | 
					
						
							|  |  |  |               $freq = "222"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 144000 && $freq <= 146000 ) { | 
					
						
							|  |  |  |               $freq = "144"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 70150 && $freq <= 70210 ) { | 
					
						
							|  |  |  |               $freq = "70"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |            if ($freq >= 50000 && $freq <= 52000 ) { | 
					
						
							|  |  |  |               $freq = "50"; | 
					
						
							|  |  |  |            } | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-04-12 17:58:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if($qso->COL_MODE == "SSB") { | 
					
						
							|  |  |  |             $mode = "PH"; | 
					
						
							|  |  |  |         } elseif($qso->COL_MODE == "RTTY") { | 
					
						
							|  |  |  |             $mode = "RY"; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $mode = $qso->COL_MODE; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $time = substr($qso->COL_TIME_ON, 0, -3); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $time = str_replace(":","",$time); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-12 22:46:55 +08:00
										 |  |  |         // Format according to https://wwrof.org/cabrillo/cabrillo-qso-data/
 | 
					
						
							|  |  |  |         return "QSO: ".sprintf("%6s", $freq)." ".$mode." ".$time." ".sprintf("%-13s", $qso->station_callsign)." ".sprintf("%3s", $qso->COL_RST_SENT)." ".sprintf("%-6s", sprintf("%03d", $qso->COL_STX))." ".sprintf("%-13s", $qso->COL_CALL)." ".sprintf("%3s", $qso->COL_RST_RCVD)." ".sprintf("%-6s", sprintf("%03d", $qso->COL_SRX))." 0\n"; | 
					
						
							| 
									
										
										
										
											2023-04-12 17:58:47 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2023-04-12 22:46:55 +08:00
										 |  |  | } |