Completed
Push — master ( 94bffa...4d17fc )
by Yannick
35:25
created
require/class.SBS.php 2 patches
Spacing   +60 added lines, -60 removed lines patch added patch discarded remove patch
@@ -18,86 +18,86 @@  discard block
 block discarded – undo
18 18
 	public function parse($buffer) {
19 19
 		// Not yet finished, no CRC checks
20 20
 		$data = array();
21
-		$typehex = substr($buffer,0,1);
22
-		if ($typehex == '*' || $typehex == ':') $hex = substr($buffer,1,-1);
21
+		$typehex = substr($buffer, 0, 1);
22
+		if ($typehex == '*' || $typehex == ':') $hex = substr($buffer, 1, -1);
23 23
 		//elseif ($typehex == '@' || $typehex == '%') $hex = substr($buffer,13,-13);
24
-		elseif ($typehex == '@' || $typehex == '%') $hex = substr($buffer,13,-1);
25
-		else $hex = substr($buffer,1,-1);
26
-		$bin = gmp_strval( gmp_init($hex,16), 2);
24
+		elseif ($typehex == '@' || $typehex == '%') $hex = substr($buffer, 13, -1);
25
+		else $hex = substr($buffer, 1, -1);
26
+		$bin = gmp_strval(gmp_init($hex, 16), 2);
27 27
 		//if (strlen($hex) == 28 && $this->parityCheck($hex,$bin)) {
28 28
 		//if (strlen($hex) == 28) {
29 29
 		if (strlen($hex) == 28 || strlen($hex) == 16) {
30
-			$df = intval(substr($bin,0,5),2);
30
+			$df = intval(substr($bin, 0, 5), 2);
31 31
 			//$ca = intval(substr($bin,5,3),2);
32 32
 			// Only support DF17 for now
33 33
 			//if ($df == 17 || ($df == 18 && ($ca == 0 || $ca == 1 || $ca == 6))) {
34
-			if (($df == 17 || $df == 18) && ($this->parityCheck($hex,$bin) || $typehex == '@')) {
35
-				$icao = substr($hex,2,6);
34
+			if (($df == 17 || $df == 18) && ($this->parityCheck($hex, $bin) || $typehex == '@')) {
35
+				$icao = substr($hex, 2, 6);
36 36
 				$data['hex'] = $icao;
37
-				$tc = intval(substr($bin,32,5),2);
38
-				$ec = intval(substr($bin,37,3),2);
37
+				$tc = intval(substr($bin, 32, 5), 2);
38
+				$ec = intval(substr($bin, 37, 3), 2);
39 39
 				//$data['category'] = $ec;
40 40
 				if ($tc >= 1 && $tc <= 4) {
41 41
 					//callsign
42
-					$csbin = substr($bin,40,56);
42
+					$csbin = substr($bin, 40, 56);
43 43
 					$charset = str_split('#ABCDEFGHIJKLMNOPQRSTUVWXYZ#####_###############0123456789######');
44 44
 					$cs = '';
45
-					$cs .= $charset[intval(substr($csbin,0,6),2)];
46
-					$cs .= $charset[intval(substr($csbin,6,6),2)];
47
-					$cs .= $charset[intval(substr($csbin,12,6),2)];
48
-					$cs .= $charset[intval(substr($csbin,18,6),2)];
49
-					$cs .= $charset[intval(substr($csbin,24,6),2)];
50
-					$cs .= $charset[intval(substr($csbin,30,6),2)];
51
-					$cs .= $charset[intval(substr($csbin,36,6),2)];
52
-					$cs .= $charset[intval(substr($csbin,42,6),2)];
53
-					$cs = str_replace('_','',$cs);
54
-					$cs = str_replace('#','',$cs);
45
+					$cs .= $charset[intval(substr($csbin, 0, 6), 2)];
46
+					$cs .= $charset[intval(substr($csbin, 6, 6), 2)];
47
+					$cs .= $charset[intval(substr($csbin, 12, 6), 2)];
48
+					$cs .= $charset[intval(substr($csbin, 18, 6), 2)];
49
+					$cs .= $charset[intval(substr($csbin, 24, 6), 2)];
50
+					$cs .= $charset[intval(substr($csbin, 30, 6), 2)];
51
+					$cs .= $charset[intval(substr($csbin, 36, 6), 2)];
52
+					$cs .= $charset[intval(substr($csbin, 42, 6), 2)];
53
+					$cs = str_replace('_', '', $cs);
54
+					$cs = str_replace('#', '', $cs);
55 55
 					$callsign = $cs;
56 56
 					$data['ident'] = $callsign;
57 57
 				} elseif ($tc >= 9 && $tc <= 18) {
58 58
 					// Check Q-bit
59
-					$q = substr($bin,47,1);
59
+					$q = substr($bin, 47, 1);
60 60
 					if ($q) {
61
-						$n = intval(substr($bin,40,7).substr($bin,48,4),2);
62
-						$alt = $n*25-1000;
61
+						$n = intval(substr($bin, 40, 7).substr($bin, 48, 4), 2);
62
+						$alt = $n*25 - 1000;
63 63
 						$data['altitude'] = $alt;
64 64
 					}
65 65
 					// Check odd/even flag
66
-					$oe = substr($bin,53,1);
66
+					$oe = substr($bin, 53, 1);
67 67
 					//if ($oe) => odd else even
68 68
 					//  131072 is 2^17 since CPR latitude and longitude are encoded in 17 bits.
69
-					$cprlat = intval(substr($bin,54,17),2)/131072.0;
70
-					$cprlon = intval(substr($bin,71,17),2)/131072.0;
71
-					if ($oe == 0) $this::$latlon[$icao] = array('latitude' => $cprlat,'longitude' => $cprlon,'created' => time());
69
+					$cprlat = intval(substr($bin, 54, 17), 2)/131072.0;
70
+					$cprlon = intval(substr($bin, 71, 17), 2)/131072.0;
71
+					if ($oe == 0) $this::$latlon[$icao] = array('latitude' => $cprlat, 'longitude' => $cprlon, 'created' => time());
72 72
 					elseif (isset($this::$latlon[$icao]) && (time() - $this::$latlon[$icao]['created']) < 10) {
73 73
 						$cprlat_odd = $cprlat;
74 74
 						$cprlon_odd = $cprlon;
75 75
 						$cprlat_even = $this::$latlon[$icao]['latitude'];
76 76
 						$cprlon_even = $this::$latlon[$icao]['longitude'];
77
-						$j = 59*$cprlat_even-60*$cprlat_odd+0.5;
78
-						$lat_even = (360.0/60)*($j%60+$cprlat_even);
79
-						$lat_odd = (360.0/59)*($j%59+$cprlat_odd);
77
+						$j = 59*$cprlat_even - 60*$cprlat_odd + 0.5;
78
+						$lat_even = (360.0/60)*($j%60 + $cprlat_even);
79
+						$lat_odd = (360.0/59)*($j%59 + $cprlat_odd);
80 80
 						if ($lat_even >= 270) $lat_even = $lat_even - 360;
81 81
 						if ($lat_odd >= 270) $lat_odd = $lat_odd - 360;
82 82
 						// check latitude zone
83 83
 						if ($this->cprNL($lat_even) == $this->cprNL($lat_odd)) {
84 84
 							if ($this::$latlon[$icao]['created'] > time()) {
85
-								$ni = $this->cprN($lat_even,0);
86
-								$m = floor($cprlon_even*($this->cprNL($lat_even)-1) - $cprlon_odd * $this->cprNL($lat_even)+0.5);
87
-								$lon = (360.0/$ni)*($m%$ni+$cprlon_even);
85
+								$ni = $this->cprN($lat_even, 0);
86
+								$m = floor($cprlon_even*($this->cprNL($lat_even) - 1) - $cprlon_odd*$this->cprNL($lat_even) + 0.5);
87
+								$lon = (360.0/$ni)*($m%$ni + $cprlon_even);
88 88
 								$lat = $lat_even;
89
-								if ($lon > 180) $lon = $lon -360;
89
+								if ($lon > 180) $lon = $lon - 360;
90 90
 								if ($lat > -91 && $lat < 91 && $lon > -181 && $lon < 181) {
91 91
 									//if ($globalDebug) echo 'cs : '.$cs.' - hex : '.$hex.' - lat : '.$lat.' - lon : '.$lon;
92 92
 									$data['latitude'] = $lat;
93 93
 									$data['longitude'] = $lon;
94 94
 								}
95 95
 							} else {
96
-								$ni = $this->cprN($lat_odd,1);
97
-								$m = floor($cprlon_even*($this->cprNL($lat_odd)-1) - $cprlon_odd * $this->cprNL($lat_odd)+0.5);
98
-								$lon = (360.0/$ni)*($m%$ni+$cprlon_odd);
96
+								$ni = $this->cprN($lat_odd, 1);
97
+								$m = floor($cprlon_even*($this->cprNL($lat_odd) - 1) - $cprlon_odd*$this->cprNL($lat_odd) + 0.5);
98
+								$lon = (360.0/$ni)*($m%$ni + $cprlon_odd);
99 99
 								$lat = $lat_odd;
100
-								if ($lon > 180) $lon = $lon -360;
100
+								if ($lon > 180) $lon = $lon - 360;
101 101
 								if ($lat > -91 && $lat < 91 && $lon > -181 && $lon < 181) {
102 102
 									//if ($globalDebug) echo 'icao : '.$icao.' - hex : '.$hex.' - lat : '.$lat.' - lon : '.$lon.' second'."\n";
103 103
 									$data['latitude'] = $lat;
@@ -109,15 +109,15 @@  discard block
 block discarded – undo
109 109
 					}
110 110
 				} elseif ($tc == 19) {
111 111
 					// speed & heading
112
-					$v_ew_dir = intval(substr($bin,45,1));
113
-					$v_ew = intval(substr($bin,46,10),2);
114
-					$v_ns_dir = intval(substr($bin,56,1));
115
-					$v_ns = intval(substr($bin,57,10),2);
112
+					$v_ew_dir = intval(substr($bin, 45, 1));
113
+					$v_ew = intval(substr($bin, 46, 10), 2);
114
+					$v_ns_dir = intval(substr($bin, 56, 1));
115
+					$v_ns = intval(substr($bin, 57, 10), 2);
116 116
 					if ($v_ew_dir) $v_ew = -1*$v_ew;
117 117
 					if ($v_ns_dir) $v_ns = -1*$v_ns;
118
-					$speed = sqrt($v_ns*$v_ns+$v_ew*$v_ew);
119
-					$heading = atan2($v_ew,$v_ns)*360.0/(2*pi());
120
-					if ($heading <0) $heading = $heading+360;
118
+					$speed = sqrt($v_ns*$v_ns + $v_ew*$v_ew);
119
+					$heading = atan2($v_ew, $v_ns)*360.0/(2*pi());
120
+					if ($heading < 0) $heading = $heading + 360;
121 121
 					$data['speed'] = $speed;
122 122
 					$data['heading'] = $heading;
123 123
 				}
@@ -132,7 +132,7 @@  discard block
 block discarded – undo
132 132
 	 * Lookup table to convert the latitude to index.
133 133
 	*/
134 134
 	private function cprNL($lat) {
135
-		if ($lat < 0) $lat = -$lat;             // Table is simmetric about the equator.
135
+		if ($lat < 0) $lat = -$lat; // Table is simmetric about the equator.
136 136
 		if ($lat < 10.47047130) return 59;
137 137
 		if ($lat < 14.82817437) return 58;
138 138
 		if ($lat < 18.18626357) return 57;
@@ -194,7 +194,7 @@  discard block
 block discarded – undo
194 194
 		return 1;
195 195
 	}
196 196
 
197
-	private function cprN($lat,$isodd) {
197
+	private function cprN($lat, $isodd) {
198 198
 		$nl = $this->cprNL($lat) - $isodd;
199 199
 		if ($nl > 1) return $nl;
200 200
 		else return 1;
@@ -218,9 +218,9 @@  discard block
 block discarded – undo
218 218
 		    0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000
219 219
 		);
220 220
 		$crc = 0;
221
-		$checksum = intval(substr($msg,22,6),16);
221
+		$checksum = intval(substr($msg, 22, 6), 16);
222 222
 		for ($j = 0; $j < strlen($bin); $j++) {
223
-			if ($bin[$j]) $crc = $crc^intval($modes_checksum_table[$j],0);
223
+			if ($bin[$j]) $crc = $crc^intval($modes_checksum_table[$j], 0);
224 224
 		}
225 225
 		if ($crc == $checksum) return true;
226 226
 		else {
@@ -242,10 +242,10 @@  discard block
 block discarded – undo
242 242
 			$msg['aircraftid'] = hexdec($data['address']);
243 243
 			$msg['hex'] = $data['address'];
244 244
 			$msg['flightid'] = hexdec($data['address']);
245
-			$msg['date_gen'] = date('Y/m/d',$data['timestamp']);
246
-			$msg['time_gen'] = date('H:i:s',$data['timestamp']).'.180';
247
-			$msg['date_log'] = date('Y/m/d',$data['timestamp']);
248
-			$msg['time_log'] = date('H:i:s',$data['timestamp']).'.180';
245
+			$msg['date_gen'] = date('Y/m/d', $data['timestamp']);
246
+			$msg['time_gen'] = date('H:i:s', $data['timestamp']).'.180';
247
+			$msg['date_log'] = date('Y/m/d', $data['timestamp']);
248
+			$msg['time_log'] = date('H:i:s', $data['timestamp']).'.180';
249 249
 			$msg['callsign'] = $data['ident'];
250 250
 			$msg['altitude'] = '';
251 251
 			$msg['speed'] = '';
@@ -258,7 +258,7 @@  discard block
 block discarded – undo
258 258
 			$msg['emergency'] = '';
259 259
 			$msg['SPI'] = '';
260 260
 			$msg['ground'] = '';
261
-			$result[] = implode(',',$msg);
261
+			$result[] = implode(',', $msg);
262 262
 		}
263 263
 		if (isset($data['latitude']) && $data['latitude'] != 0) {
264 264
 			$msg = array();
@@ -268,10 +268,10 @@  discard block
 block discarded – undo
268 268
 			$msg['aircraftid'] = hexdec($data['address']);
269 269
 			$msg['hex'] = $data['address'];
270 270
 			$msg['flightid'] = hexdec($data['address']);
271
-			$msg['date_gen'] = date('Y/m/d',$data['timestamp']);
272
-			$msg['time_gen'] = date('H:i:s',$data['timestamp']).'.180';
273
-			$msg['date_log'] = date('Y/m/d',$data['timestamp']);
274
-			$msg['time_log'] = date('H:i:s',$data['timestamp']).'.180';
271
+			$msg['date_gen'] = date('Y/m/d', $data['timestamp']);
272
+			$msg['time_gen'] = date('H:i:s', $data['timestamp']).'.180';
273
+			$msg['date_log'] = date('Y/m/d', $data['timestamp']);
274
+			$msg['time_log'] = date('H:i:s', $data['timestamp']).'.180';
275 275
 			$msg['callsign'] = '';
276 276
 			if (isset($data['altitude'])) $msg['altitude'] = $data['altitude'];
277 277
 			else $msg['altitude'] = '';
@@ -289,7 +289,7 @@  discard block
 block discarded – undo
289 289
 			$msg['SPI'] = 0;
290 290
 			if (isset($data['ground'])) $msg['ground'] = 1;
291 291
 			else $msg['ground'] = 0;
292
-			$result[] = implode(',',$msg);
292
+			$result[] = implode(',', $msg);
293 293
 		}
294 294
 		return $result;
295 295
 	}
Please login to merge, or discard this patch.
Braces   +249 added lines, -87 removed lines patch added patch discarded remove patch
@@ -19,10 +19,15 @@  discard block
 block discarded – undo
19 19
 		// Not yet finished, no CRC checks
20 20
 		$data = array();
21 21
 		$typehex = substr($buffer,0,1);
22
-		if ($typehex == '*' || $typehex == ':') $hex = substr($buffer,1,-1);
22
+		if ($typehex == '*' || $typehex == ':') {
23
+			$hex = substr($buffer,1,-1);
24
+		}
23 25
 		//elseif ($typehex == '@' || $typehex == '%') $hex = substr($buffer,13,-13);
24
-		elseif ($typehex == '@' || $typehex == '%') $hex = substr($buffer,13,-1);
25
-		else $hex = substr($buffer,1,-1);
26
+		elseif ($typehex == '@' || $typehex == '%') {
27
+			$hex = substr($buffer,13,-1);
28
+		} else {
29
+			$hex = substr($buffer,1,-1);
30
+		}
26 31
 		$bin = gmp_strval( gmp_init($hex,16), 2);
27 32
 		//if (strlen($hex) == 28 && $this->parityCheck($hex,$bin)) {
28 33
 		//if (strlen($hex) == 28) {
@@ -68,8 +73,9 @@  discard block
 block discarded – undo
68 73
 					//  131072 is 2^17 since CPR latitude and longitude are encoded in 17 bits.
69 74
 					$cprlat = intval(substr($bin,54,17),2)/131072.0;
70 75
 					$cprlon = intval(substr($bin,71,17),2)/131072.0;
71
-					if ($oe == 0) $this::$latlon[$icao] = array('latitude' => $cprlat,'longitude' => $cprlon,'created' => time());
72
-					elseif (isset($this::$latlon[$icao]) && (time() - $this::$latlon[$icao]['created']) < 10) {
76
+					if ($oe == 0) {
77
+						$this::$latlon[$icao] = array('latitude' => $cprlat,'longitude' => $cprlon,'created' => time());
78
+					} elseif (isset($this::$latlon[$icao]) && (time() - $this::$latlon[$icao]['created']) < 10) {
73 79
 						$cprlat_odd = $cprlat;
74 80
 						$cprlon_odd = $cprlon;
75 81
 						$cprlat_even = $this::$latlon[$icao]['latitude'];
@@ -77,8 +83,12 @@  discard block
 block discarded – undo
77 83
 						$j = 59*$cprlat_even-60*$cprlat_odd+0.5;
78 84
 						$lat_even = (360.0/60)*($j%60+$cprlat_even);
79 85
 						$lat_odd = (360.0/59)*($j%59+$cprlat_odd);
80
-						if ($lat_even >= 270) $lat_even = $lat_even - 360;
81
-						if ($lat_odd >= 270) $lat_odd = $lat_odd - 360;
86
+						if ($lat_even >= 270) {
87
+							$lat_even = $lat_even - 360;
88
+						}
89
+						if ($lat_odd >= 270) {
90
+							$lat_odd = $lat_odd - 360;
91
+						}
82 92
 						// check latitude zone
83 93
 						if ($this->cprNL($lat_even) == $this->cprNL($lat_odd)) {
84 94
 							if ($this::$latlon[$icao]['created'] > time()) {
@@ -86,7 +96,9 @@  discard block
 block discarded – undo
86 96
 								$m = floor($cprlon_even*($this->cprNL($lat_even)-1) - $cprlon_odd * $this->cprNL($lat_even)+0.5);
87 97
 								$lon = (360.0/$ni)*($m%$ni+$cprlon_even);
88 98
 								$lat = $lat_even;
89
-								if ($lon > 180) $lon = $lon -360;
99
+								if ($lon > 180) {
100
+									$lon = $lon -360;
101
+								}
90 102
 								if ($lat > -91 && $lat < 91 && $lon > -181 && $lon < 181) {
91 103
 									//if ($globalDebug) echo 'cs : '.$cs.' - hex : '.$hex.' - lat : '.$lat.' - lon : '.$lon;
92 104
 									$data['latitude'] = $lat;
@@ -97,14 +109,18 @@  discard block
 block discarded – undo
97 109
 								$m = floor($cprlon_even*($this->cprNL($lat_odd)-1) - $cprlon_odd * $this->cprNL($lat_odd)+0.5);
98 110
 								$lon = (360.0/$ni)*($m%$ni+$cprlon_odd);
99 111
 								$lat = $lat_odd;
100
-								if ($lon > 180) $lon = $lon -360;
112
+								if ($lon > 180) {
113
+									$lon = $lon -360;
114
+								}
101 115
 								if ($lat > -91 && $lat < 91 && $lon > -181 && $lon < 181) {
102 116
 									//if ($globalDebug) echo 'icao : '.$icao.' - hex : '.$hex.' - lat : '.$lat.' - lon : '.$lon.' second'."\n";
103 117
 									$data['latitude'] = $lat;
104 118
 									$data['longitude'] = $lon;
105 119
 								}
106 120
 							}
107
-						} else echo "Not cprNL";
121
+						} else {
122
+							echo "Not cprNL";
123
+						}
108 124
 						unset($this::$latlon[$icao]);
109 125
 					}
110 126
 				} elseif ($tc == 19) {
@@ -113,11 +129,17 @@  discard block
 block discarded – undo
113 129
 					$v_ew = intval(substr($bin,46,10),2);
114 130
 					$v_ns_dir = intval(substr($bin,56,1));
115 131
 					$v_ns = intval(substr($bin,57,10),2);
116
-					if ($v_ew_dir) $v_ew = -1*$v_ew;
117
-					if ($v_ns_dir) $v_ns = -1*$v_ns;
132
+					if ($v_ew_dir) {
133
+						$v_ew = -1*$v_ew;
134
+					}
135
+					if ($v_ns_dir) {
136
+						$v_ns = -1*$v_ns;
137
+					}
118 138
 					$speed = sqrt($v_ns*$v_ns+$v_ew*$v_ew);
119 139
 					$heading = atan2($v_ew,$v_ns)*360.0/(2*pi());
120
-					if ($heading <0) $heading = $heading+360;
140
+					if ($heading <0) {
141
+						$heading = $heading+360;
142
+					}
121 143
 					$data['speed'] = $speed;
122 144
 					$data['heading'] = $heading;
123 145
 				}
@@ -132,72 +154,194 @@  discard block
 block discarded – undo
132 154
 	 * Lookup table to convert the latitude to index.
133 155
 	*/
134 156
 	private function cprNL($lat) {
135
-		if ($lat < 0) $lat = -$lat;             // Table is simmetric about the equator.
136
-		if ($lat < 10.47047130) return 59;
137
-		if ($lat < 14.82817437) return 58;
138
-		if ($lat < 18.18626357) return 57;
139
-		if ($lat < 21.02939493) return 56;
140
-		if ($lat < 23.54504487) return 55;
141
-		if ($lat < 25.82924707) return 54;
142
-		if ($lat < 27.93898710) return 53;
143
-		if ($lat < 29.91135686) return 52;
144
-		if ($lat < 31.77209708) return 51;
145
-		if ($lat < 33.53993436) return 50;
146
-		if ($lat < 35.22899598) return 49;
147
-		if ($lat < 36.85025108) return 48;
148
-		if ($lat < 38.41241892) return 47;
149
-		if ($lat < 39.92256684) return 46;
150
-		if ($lat < 41.38651832) return 45;
151
-		if ($lat < 42.80914012) return 44;
152
-		if ($lat < 44.19454951) return 43;
153
-		if ($lat < 45.54626723) return 42;
154
-		if ($lat < 46.86733252) return 41;
155
-		if ($lat < 48.16039128) return 40;
156
-		if ($lat < 49.42776439) return 39;
157
-		if ($lat < 50.67150166) return 38;
158
-		if ($lat < 51.89342469) return 37;
159
-		if ($lat < 53.09516153) return 36;
160
-		if ($lat < 54.27817472) return 35;
161
-		if ($lat < 55.44378444) return 34;
162
-		if ($lat < 56.59318756) return 33;
163
-		if ($lat < 57.72747354) return 32;
164
-		if ($lat < 58.84763776) return 31;
165
-		if ($lat < 59.95459277) return 30;
166
-		if ($lat < 61.04917774) return 29;
167
-		if ($lat < 62.13216659) return 28;
168
-		if ($lat < 63.20427479) return 27;
169
-		if ($lat < 64.26616523) return 26;
170
-		if ($lat < 65.31845310) return 25;
171
-		if ($lat < 66.36171008) return 24;
172
-		if ($lat < 67.39646774) return 23;
173
-		if ($lat < 68.42322022) return 22;
174
-		if ($lat < 69.44242631) return 21;
175
-		if ($lat < 70.45451075) return 20;
176
-		if ($lat < 71.45986473) return 19;
177
-		if ($lat < 72.45884545) return 18;
178
-		if ($lat < 73.45177442) return 17;
179
-		if ($lat < 74.43893416) return 16;
180
-		if ($lat < 75.42056257) return 15;
181
-		if ($lat < 76.39684391) return 14;
182
-		if ($lat < 77.36789461) return 13;
183
-		if ($lat < 78.33374083) return 12;
184
-		if ($lat < 79.29428225) return 11;
185
-		if ($lat < 80.24923213) return 10;
186
-		if ($lat < 81.19801349) return 9;
187
-		if ($lat < 82.13956981) return 8;
188
-		if ($lat < 83.07199445) return 7;
189
-		if ($lat < 83.99173563) return 6;
190
-		if ($lat < 84.89166191) return 5;
191
-		if ($lat < 85.75541621) return 4;
192
-		if ($lat < 86.53536998) return 3;
193
-		if ($lat < 87.00000000) return 2;
157
+		if ($lat < 0) {
158
+			$lat = -$lat;
159
+		}
160
+		// Table is simmetric about the equator.
161
+		if ($lat < 10.47047130) {
162
+			return 59;
163
+		}
164
+		if ($lat < 14.82817437) {
165
+			return 58;
166
+		}
167
+		if ($lat < 18.18626357) {
168
+			return 57;
169
+		}
170
+		if ($lat < 21.02939493) {
171
+			return 56;
172
+		}
173
+		if ($lat < 23.54504487) {
174
+			return 55;
175
+		}
176
+		if ($lat < 25.82924707) {
177
+			return 54;
178
+		}
179
+		if ($lat < 27.93898710) {
180
+			return 53;
181
+		}
182
+		if ($lat < 29.91135686) {
183
+			return 52;
184
+		}
185
+		if ($lat < 31.77209708) {
186
+			return 51;
187
+		}
188
+		if ($lat < 33.53993436) {
189
+			return 50;
190
+		}
191
+		if ($lat < 35.22899598) {
192
+			return 49;
193
+		}
194
+		if ($lat < 36.85025108) {
195
+			return 48;
196
+		}
197
+		if ($lat < 38.41241892) {
198
+			return 47;
199
+		}
200
+		if ($lat < 39.92256684) {
201
+			return 46;
202
+		}
203
+		if ($lat < 41.38651832) {
204
+			return 45;
205
+		}
206
+		if ($lat < 42.80914012) {
207
+			return 44;
208
+		}
209
+		if ($lat < 44.19454951) {
210
+			return 43;
211
+		}
212
+		if ($lat < 45.54626723) {
213
+			return 42;
214
+		}
215
+		if ($lat < 46.86733252) {
216
+			return 41;
217
+		}
218
+		if ($lat < 48.16039128) {
219
+			return 40;
220
+		}
221
+		if ($lat < 49.42776439) {
222
+			return 39;
223
+		}
224
+		if ($lat < 50.67150166) {
225
+			return 38;
226
+		}
227
+		if ($lat < 51.89342469) {
228
+			return 37;
229
+		}
230
+		if ($lat < 53.09516153) {
231
+			return 36;
232
+		}
233
+		if ($lat < 54.27817472) {
234
+			return 35;
235
+		}
236
+		if ($lat < 55.44378444) {
237
+			return 34;
238
+		}
239
+		if ($lat < 56.59318756) {
240
+			return 33;
241
+		}
242
+		if ($lat < 57.72747354) {
243
+			return 32;
244
+		}
245
+		if ($lat < 58.84763776) {
246
+			return 31;
247
+		}
248
+		if ($lat < 59.95459277) {
249
+			return 30;
250
+		}
251
+		if ($lat < 61.04917774) {
252
+			return 29;
253
+		}
254
+		if ($lat < 62.13216659) {
255
+			return 28;
256
+		}
257
+		if ($lat < 63.20427479) {
258
+			return 27;
259
+		}
260
+		if ($lat < 64.26616523) {
261
+			return 26;
262
+		}
263
+		if ($lat < 65.31845310) {
264
+			return 25;
265
+		}
266
+		if ($lat < 66.36171008) {
267
+			return 24;
268
+		}
269
+		if ($lat < 67.39646774) {
270
+			return 23;
271
+		}
272
+		if ($lat < 68.42322022) {
273
+			return 22;
274
+		}
275
+		if ($lat < 69.44242631) {
276
+			return 21;
277
+		}
278
+		if ($lat < 70.45451075) {
279
+			return 20;
280
+		}
281
+		if ($lat < 71.45986473) {
282
+			return 19;
283
+		}
284
+		if ($lat < 72.45884545) {
285
+			return 18;
286
+		}
287
+		if ($lat < 73.45177442) {
288
+			return 17;
289
+		}
290
+		if ($lat < 74.43893416) {
291
+			return 16;
292
+		}
293
+		if ($lat < 75.42056257) {
294
+			return 15;
295
+		}
296
+		if ($lat < 76.39684391) {
297
+			return 14;
298
+		}
299
+		if ($lat < 77.36789461) {
300
+			return 13;
301
+		}
302
+		if ($lat < 78.33374083) {
303
+			return 12;
304
+		}
305
+		if ($lat < 79.29428225) {
306
+			return 11;
307
+		}
308
+		if ($lat < 80.24923213) {
309
+			return 10;
310
+		}
311
+		if ($lat < 81.19801349) {
312
+			return 9;
313
+		}
314
+		if ($lat < 82.13956981) {
315
+			return 8;
316
+		}
317
+		if ($lat < 83.07199445) {
318
+			return 7;
319
+		}
320
+		if ($lat < 83.99173563) {
321
+			return 6;
322
+		}
323
+		if ($lat < 84.89166191) {
324
+			return 5;
325
+		}
326
+		if ($lat < 85.75541621) {
327
+			return 4;
328
+		}
329
+		if ($lat < 86.53536998) {
330
+			return 3;
331
+		}
332
+		if ($lat < 87.00000000) {
333
+			return 2;
334
+		}
194 335
 		return 1;
195 336
 	}
196 337
 
197 338
 	private function cprN($lat,$isodd) {
198 339
 		$nl = $this->cprNL($lat) - $isodd;
199
-		if ($nl > 1) return $nl;
200
-		else return 1;
340
+		if ($nl > 1) {
341
+			return $nl;
342
+		} else {
343
+			return 1;
344
+		}
201 345
 	}
202 346
 
203 347
 	private function parityCheck($msg, $bin) {
@@ -220,10 +364,13 @@  discard block
 block discarded – undo
220 364
 		$crc = 0;
221 365
 		$checksum = intval(substr($msg,22,6),16);
222 366
 		for ($j = 0; $j < strlen($bin); $j++) {
223
-			if ($bin[$j]) $crc = $crc^intval($modes_checksum_table[$j],0);
367
+			if ($bin[$j]) {
368
+				$crc = $crc^intval($modes_checksum_table[$j],0);
369
+			}
224 370
 		}
225
-		if ($crc == $checksum) return true;
226
-		else {
371
+		if ($crc == $checksum) {
372
+			return true;
373
+		} else {
227 374
 			//echo "**** CRC ERROR ****\n";
228 375
 			return false;
229 376
 		}
@@ -273,22 +420,37 @@  discard block
 block discarded – undo
273 420
 			$msg['date_log'] = date('Y/m/d',$data['timestamp']);
274 421
 			$msg['time_log'] = date('H:i:s',$data['timestamp']).'.180';
275 422
 			$msg['callsign'] = '';
276
-			if (isset($data['altitude'])) $msg['altitude'] = $data['altitude'];
277
-			else $msg['altitude'] = '';
423
+			if (isset($data['altitude'])) {
424
+				$msg['altitude'] = $data['altitude'];
425
+			} else {
426
+				$msg['altitude'] = '';
427
+			}
278 428
 			$msg['speed'] = $data['speed'];
279
-			if (isset($data['heading'])) $msg['track'] = $data['heading'];
280
-			else $msg['track'] = '';
429
+			if (isset($data['heading'])) {
430
+				$msg['track'] = $data['heading'];
431
+			} else {
432
+				$msg['track'] = '';
433
+			}
281 434
 			$msg['latitude'] = $data['latitude'];
282 435
 			$msg['longitude'] = $data['longitude'];
283
-			if (isset($data['verticalrate'])) $msg['verticalrate'] = $data['verticalrate'];
284
-			else $msg['verticalrate'] = '';
285
-			if (isset($data['squawk'])) $msg['squawk'] = $data['squawk'];
286
-			else $msg['squawk'] = 0;
436
+			if (isset($data['verticalrate'])) {
437
+				$msg['verticalrate'] = $data['verticalrate'];
438
+			} else {
439
+				$msg['verticalrate'] = '';
440
+			}
441
+			if (isset($data['squawk'])) {
442
+				$msg['squawk'] = $data['squawk'];
443
+			} else {
444
+				$msg['squawk'] = 0;
445
+			}
287 446
 			$msg['alert'] = 0;
288 447
 			$msg['emergency'] = 0;
289 448
 			$msg['SPI'] = 0;
290
-			if (isset($data['ground'])) $msg['ground'] = 1;
291
-			else $msg['ground'] = 0;
449
+			if (isset($data['ground'])) {
450
+				$msg['ground'] = 1;
451
+			} else {
452
+				$msg['ground'] = 0;
453
+			}
292 454
 			$result[] = implode(',',$msg);
293 455
 		}
294 456
 		return $result;
Please login to merge, or discard this patch.