| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class AdifHelper { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function getAdifLine($qso) { | 
					
						
							|  |  |  |         $line = ""; | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("CALL", $qso->COL_CALL); | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("BAND", $qso->COL_BAND); | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MODE", $qso->COL_MODE); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if ($qso->COL_SUBMODE) { | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |             $line .= $this->getAdifFieldLine("SUBMODE", $qso->COL_SUBMODE); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if ($qso->COL_FREQ != 0) { | 
					
						
							|  |  |  |             $freq_in_mhz = $qso->COL_FREQ / 1000000; | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |             $line .= $this->getAdifFieldLine("FREQ", $freq_in_mhz); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if ($qso->COL_FREQ_RX != 0) { | 
					
						
							|  |  |  |             $freq_rx_in_mhz = $qso->COL_FREQ_RX / 1000000; | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |             $line .= $this->getAdifFieldLine("FREQ_RX", $freq_rx_in_mhz); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if ($qso->COL_BAND_RX) { | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |             $line .= $this->getAdifFieldLine("BAND_RX", $qso->COL_BAND_RX); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $date_on = strtotime($qso->COL_TIME_ON); | 
					
						
							|  |  |  |         $new_date = date('Ymd', $date_on); | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("QSO_DATE", $new_date); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $time_on = strtotime($qso->COL_TIME_ON); | 
					
						
							|  |  |  |         $new_on = date('His', $time_on); | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("TIME_ON", $new_on); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $time_off = strtotime($qso->COL_TIME_OFF); | 
					
						
							|  |  |  |         $new_off = date('His', $time_off); | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("TIME_OFF", $new_off); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("RST_RCVD", $qso->COL_RST_RCVD); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("RST_SENT", $qso->COL_RST_SENT); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("QSL_RCVD", $qso->COL_QSL_RCVD); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("QSL_SENT", $qso->COL_QSL_SENT); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("COUNTRY", $qso->COL_COUNTRY); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if ($qso->COL_VUCC_GRIDS != "") { | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |             $line .= $this->getAdifFieldLine("VUCC_GRIDS", $qso->COL_VUCC_GRIDS); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  |         } | 
					
						
							|  |  |  |         if ($qso->COL_VUCC_GRIDS == "" && $qso->COL_GRIDSQUARE != "") { | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |             $line .= $this->getAdifFieldLine("GRIDSQUARE", $qso->COL_GRIDSQUARE); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  |         } | 
					
						
							|  |  |  |         if ($qso->COL_SAT_NAME) { | 
					
						
							|  |  |  |             if ($qso->COL_SAT_MODE != 0 || $qso->COL_SAT_MODE !="") { | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |                 $line .= $this->getAdifFieldLine("SAT_MODE", $qso->COL_SAT_MODE); | 
					
						
							|  |  |  |                 $line .= $this->getAdifFieldLine("SAT_NAME", $qso->COL_SAT_NAME); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("PROP_MODE", $qso->COL_PROP_MODE); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("NAME", $qso->COL_NAME); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("STATE", $qso->COL_STATE); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("SOTA_REF", $qso->COL_SOTA_REF); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("OPERATOR", $qso->COL_OPERATOR); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("STATION_CALLSIGN", $qso->station_callsign); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MY_CITY", $qso->station_city); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MY_COUNTRY", $qso->station_country); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MY_DXCC", $qso->station_dxcc); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (strpos($qso->station_gridsquare, ',') !== false ) { | 
					
						
							|  |  |  |             $line .= $this->getAdifFieldLine("MY_VUCC_GRIDS", $qso->station_gridsquare); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         else { | 
					
						
							|  |  |  |             $line .= $this->getAdifFieldLine("MY_GRIDSQUARE", $qso->station_gridsquare); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MY_IOTA", $qso->station_iota); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MY_SOTA_REF", $qso->station_sota); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MY_CQ_ZONE", $qso->station_cq); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MY_ITU_ZONE", $qso->station_itu); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MY_CNTY", $qso->station_cnty); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MY_STATE", $qso->COL_MY_STATE); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("STX", $qso->COL_STX); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("STX_STRING", $qso->COL_STX_STRING); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("SRX", $qso->COL_SRX); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("SRX_STRING", $qso->COL_SRX_STRING); | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("TX_PWR", $qso->COL_TX_PWR); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("COMMENT", $qso->COL_COMMENT); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 02:23:59 +08:00
										 |  |  |         $line .= $this->getAdifFieldLine("MY_SIG", $qso->station_sig); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $line .= $this->getAdifFieldLine("MY_SIG_INFO", $qso->station_sig_info); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-15 02:50:27 +08:00
										 |  |  |         $line .= "<eor>\r\n"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $line; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function getAdifFieldLine($adifcolumn, $dbvalue) { | 
					
						
							|  |  |  |         if ($dbvalue != "") { | 
					
						
							|  |  |  |             return "<" . $adifcolumn . ":" . strlen($dbvalue) . ">" . $dbvalue; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             return ""; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |