Completed
Push — master ( d8f2d2...72f2a4 )
by Yannick
55:33 queued 24:01
created
require/class.AIS.php 3 patches
Doc Comments   +25 added lines patch added patch discarded remove patch
@@ -156,6 +156,10 @@  discard block
 block discarded – undo
156 156
        't', 'u', 'v', 'w' // 119
157 157
     ); // char 64
158 158
     */
159
+
160
+	/**
161
+	 * @param integer $ascii
162
+	 */
159 163
 	private function asciidec_2_8bit($ascii) {
160 164
 		//only process in the following range: 48-87, 96-119
161 165
 		if ($ascii < 48) { }
@@ -181,6 +185,10 @@  discard block
 block discarded – undo
181 185
 		return(substr($bin, -6)); 
182 186
 	}
183 187
 
188
+	/**
189
+	 * @param integer $_start
190
+	 * @param integer $_size
191
+	 */
184 192
 	private function binchar($_str, $_start, $_size) {
185 193
 		//  ' ' --- '?', // 0x20 - 0x3F
186 194
 		//  '@' --- '_', // 0x40 - 0x5F
@@ -206,6 +214,10 @@  discard block
 block discarded – undo
206 214
 	}
207 215
 
208 216
 	// function for decoding the AIS Message ITU Payload
217
+
218
+	/**
219
+	 * @param string $_aisdata
220
+	 */
209 221
 	private function decode_ais($_aisdata) {
210 222
 		$ro = new stdClass(); // return object
211 223
 		$ro->cls = 0; // AIS class undefined, also indicate unparsed msg
@@ -378,6 +390,12 @@  discard block
 block discarded – undo
378 390
 		else return 0;
379 391
 	}
380 392
 
393
+	/**
394
+	 * @param string $_itu
395
+	 * @param integer $_len
396
+	 * @param integer $_filler
397
+	 * @param string $aux
398
+	 */
381 399
 	public function process_ais_itu($_itu, $_len, $_filler, $aux /*, $ais_ch*/) {
382 400
 		global $port; // tcpip port...
383 401
 		static $debug_counter = 0;
@@ -397,6 +415,10 @@  discard block
 block discarded – undo
397 415
 
398 416
 	// char* - AIS \r terminated string
399 417
 	// TCP based streams which send messages in full can use this instead of calling process_ais_buf
418
+
419
+	/**
420
+	 * @param string $rawdata
421
+	 */
400 422
 	public function process_ais_raw($rawdata, $aux = '') { // return int
401 423
 		static $num_seq; // 1 to 9
402 424
 		static $seq; // 1 to 9
@@ -622,6 +644,9 @@  discard block
 block discarded – undo
622 644
 		return $result;
623 645
 	}
624 646
 
647
+	/**
648
+	 * @param string $mmsi
649
+	 */
625 650
 	public function mmsitype($mmsi) {
626 651
 		if (strlen($mmsi) == 9) {
627 652
 			if (substr($mmsi,0,3) == '974') return 'EPIRB (Emergency Position Indicating Radio Beacon) AIS';
Please login to merge, or discard this patch.
Spacing   +129 added lines, -129 removed lines patch added patch discarded remove patch
@@ -117,31 +117,31 @@  discard block
 block discarded – undo
117 117
 
118 118
 	private function make_latf($temp) { // unsigned long 
119 119
 		$flat = 0.0; // float
120
-		$temp = $temp & 0x07FFFFFF;
121
-		if ($temp & 0x04000000) {
122
-			$temp = $temp ^ 0x07FFFFFF;
120
+		$temp = $temp&0x07FFFFFF;
121
+		if ($temp&0x04000000) {
122
+			$temp = $temp^0x07FFFFFF;
123 123
 			$temp += 1;
124
-			$flat = (float)($temp / (60.0 * 10000.0));
124
+			$flat = (float) ($temp/(60.0*10000.0));
125 125
 			$flat *= -1.0;
126
-		} else $flat = (float)($temp / (60.0 * 10000.0));
126
+		} else $flat = (float) ($temp/(60.0*10000.0));
127 127
 		return $flat; // float
128 128
 	}
129 129
 
130 130
 	private function make_lonf($temp) { // unsigned long
131 131
 		$flon = 0.0; // float
132
-		$temp = $temp & 0x0FFFFFFF;
133
-		if ($temp & 0x08000000) {
134
-			$temp = $temp ^ 0x0FFFFFFF;
132
+		$temp = $temp&0x0FFFFFFF;
133
+		if ($temp&0x08000000) {
134
+			$temp = $temp^0x0FFFFFFF;
135 135
 			$temp += 1;
136
-			$flon = (float)($temp / (60.0 * 10000.0));
136
+			$flon = (float) ($temp/(60.0*10000.0));
137 137
 			$flon *= -1.0;
138
-		} else $flon = (float)($temp / (60.0 * 10000.0));
138
+		} else $flon = (float) ($temp/(60.0*10000.0));
139 139
 		return $flon;
140 140
 	}
141 141
 
142 142
 	private function ascii_2_dec($chr) {
143
-		$dec=ord($chr);//get decimal ascii code
144
-		$hex=dechex($dec);//convert decimal to hex
143
+		$dec = ord($chr); //get decimal ascii code
144
+		$hex = dechex($dec); //convert decimal to hex
145 145
 		return ($dec);
146 146
 	}
147 147
 	
@@ -160,15 +160,15 @@  discard block
 block discarded – undo
160 160
 		//only process in the following range: 48-87, 96-119
161 161
 		if ($ascii < 48) { }
162 162
 		else {
163
-			if($ascii>119) { }
163
+			if ($ascii > 119) { }
164 164
 			else {
165
-				if ($ascii>87 && $ascii<96) ;
165
+				if ($ascii > 87 && $ascii < 96);
166 166
 				else {
167
-					$ascii=$ascii+40;
168
-					if ($ascii>128){
169
-						$ascii=$ascii+32;
167
+					$ascii = $ascii + 40;
168
+					if ($ascii > 128) {
169
+						$ascii = $ascii + 32;
170 170
 					} else {
171
-						$ascii=$ascii+40;
171
+						$ascii = $ascii + 40;
172 172
 					}
173 173
 				}
174 174
 			}
@@ -177,7 +177,7 @@  discard block
 block discarded – undo
177 177
 	}
178 178
 
179 179
 	private function dec_2_6bit($dec) {
180
-		$bin=decbin($dec);
180
+		$bin = decbin($dec);
181 181
 		return(substr($bin, -6)); 
182 182
 	}
183 183
 
@@ -195,11 +195,11 @@  discard block
 block discarded – undo
195 195
 		);
196 196
 		// "
197 197
 		$rv = '';
198
-		if ($_size % 6 == 0) {
199
-			$len = $_size / 6;
200
-			for ($i=0; $i<$len; $i++) {
201
-				$offset = $i * 6;
202
-				$rv .= $ais_chars[ bindec(substr($_str,$_start + $offset,6)) ];
198
+		if ($_size%6 == 0) {
199
+			$len = $_size/6;
200
+			for ($i = 0; $i < $len; $i++) {
201
+				$offset = $i*6;
202
+				$rv .= $ais_chars[bindec(substr($_str, $_start + $offset, 6))];
203 203
 			}
204 204
 		}
205 205
 		return $rv;
@@ -226,93 +226,93 @@  discard block
 block discarded – undo
226 226
 		$ro->eta_hour = '';
227 227
 		$ro->eta_minute = '';
228 228
 		$ro->ts = time();
229
-		$ro->id = bindec(substr($_aisdata,0,6));
230
-		$ro->mmsi = bindec(substr($_aisdata,8,30));
229
+		$ro->id = bindec(substr($_aisdata, 0, 6));
230
+		$ro->mmsi = bindec(substr($_aisdata, 8, 30));
231 231
 		if ($ro->id >= 1 && $ro->id <= 3) {
232
-			$ro->cog = bindec(substr($_aisdata,116,12))/10;
233
-			$ro->sog = bindec(substr($_aisdata,50,10))/10;
234
-			$ro->lon = $this->make_lonf(bindec(substr($_aisdata,61,28)));
235
-			$ro->lat = $this->make_latf(bindec(substr($_aisdata,89,27)));
232
+			$ro->cog = bindec(substr($_aisdata, 116, 12))/10;
233
+			$ro->sog = bindec(substr($_aisdata, 50, 10))/10;
234
+			$ro->lon = $this->make_lonf(bindec(substr($_aisdata, 61, 28)));
235
+			$ro->lat = $this->make_latf(bindec(substr($_aisdata, 89, 27)));
236 236
 			$ro->cls = 1; // class A
237 237
 		} else if ($ro->id == 4) {
238
-			$ro->lon = $this->make_lonf(bindec(substr($_aisdata,79,28)));
239
-			$ro->lat = $this->make_latf(bindec(substr($_aisdata,107,27)));
238
+			$ro->lon = $this->make_lonf(bindec(substr($_aisdata, 79, 28)));
239
+			$ro->lat = $this->make_latf(bindec(substr($_aisdata, 107, 27)));
240 240
 			$ro->cls = 1; // class A
241 241
 		} else if ($ro->id == 5) {
242
-			$ro->imo = bindec(substr($_aisdata,40,30));
243
-			$ro->callsign = $this->binchar($_aisdata,70,42);
244
-			$ro->name = $this->binchar($_aisdata,112,120);
245
-			$ro->typeid = bindec(substr($_aisdata,232,8));
242
+			$ro->imo = bindec(substr($_aisdata, 40, 30));
243
+			$ro->callsign = $this->binchar($_aisdata, 70, 42);
244
+			$ro->name = $this->binchar($_aisdata, 112, 120);
245
+			$ro->typeid = bindec(substr($_aisdata, 232, 8));
246 246
 			$ro->type = $this->getShipType($ro->typeid);
247 247
 			//$ro->to_bow = bindec(substr($_aisdata,240,9));
248 248
 			//$ro->to_stern = bindec(substr($_aisdata,249,9));
249 249
 			//$ro->to_port = bindec(substr($_aisdata,258,6));
250 250
 			//$ro->to_starboard = bindec(substr($_aisdata,264,6));
251
-			$ro->eta_month = bindec(substr($_aisdata,274,4));
252
-			$ro->eta_day = bindec(substr($_aisdata,278,5));
253
-			$ro->eta_hour = bindec(substr($_aisdata,283,5));
254
-			$ro->eta_minute = bindec(substr($_aisdata,288,6));
251
+			$ro->eta_month = bindec(substr($_aisdata, 274, 4));
252
+			$ro->eta_day = bindec(substr($_aisdata, 278, 5));
253
+			$ro->eta_hour = bindec(substr($_aisdata, 283, 5));
254
+			$ro->eta_minute = bindec(substr($_aisdata, 288, 6));
255 255
 			//$ro->draught = bindec(substr($_aisdata,294,8));
256
-			$ro->destination = $this->binchar($_aisdata,302,120);
256
+			$ro->destination = $this->binchar($_aisdata, 302, 120);
257 257
 			$ro->cls = 1; // class A
258 258
 		} else if ($ro->id == 9) {
259 259
 			// Search and Rescue aircraft position report
260 260
 		} else if ($ro->id == 18) {
261
-			$ro->cog = bindec(substr($_aisdata,112,12))/10;
262
-			$ro->sog = bindec(substr($_aisdata,46,10))/10;
263
-			$ro->lon = $this->make_lonf(bindec(substr($_aisdata,57,28)));
264
-			$ro->lat = $this->make_latf(bindec(substr($_aisdata,85,27)));
265
-			$ro->heading = bindec(substr($_aisdata,124,9));
261
+			$ro->cog = bindec(substr($_aisdata, 112, 12))/10;
262
+			$ro->sog = bindec(substr($_aisdata, 46, 10))/10;
263
+			$ro->lon = $this->make_lonf(bindec(substr($_aisdata, 57, 28)));
264
+			$ro->lat = $this->make_latf(bindec(substr($_aisdata, 85, 27)));
265
+			$ro->heading = bindec(substr($_aisdata, 124, 9));
266 266
 			if ($ro->heading == 511) $ro->heading = '';
267 267
 			$ro->cls = 2; // class B
268 268
 		} else if ($ro->id == 19) {
269
-			$ro->cog = bindec(substr($_aisdata,112,12))/10;
270
-			$ro->sog = bindec(substr($_aisdata,46,10))/10;
271
-			$ro->lon = $this->make_lonf(bindec(substr($_aisdata,61,28)));
272
-			$ro->lat = $this->make_latf(bindec(substr($_aisdata,89,27)));
273
-			$ro->name = $this->binchar($_aisdata,143,120);
269
+			$ro->cog = bindec(substr($_aisdata, 112, 12))/10;
270
+			$ro->sog = bindec(substr($_aisdata, 46, 10))/10;
271
+			$ro->lon = $this->make_lonf(bindec(substr($_aisdata, 61, 28)));
272
+			$ro->lat = $this->make_latf(bindec(substr($_aisdata, 89, 27)));
273
+			$ro->name = $this->binchar($_aisdata, 143, 120);
274 274
 			$ro->cls = 2; // class B
275
-			$ro->heading = bindec(substr($_aisdata,124,9));
275
+			$ro->heading = bindec(substr($_aisdata, 124, 9));
276 276
 			if ($ro->heading == 511) $ro->heading = '';
277
-			$ro->typeid = bindec(substr($_aisdata,263,8));
277
+			$ro->typeid = bindec(substr($_aisdata, 263, 8));
278 278
 			$ro->type = $this->getShipType($ro->typeid);
279 279
 			//$ro->to_bow = bindec(substr($_aisdata,271,9));
280 280
 			//$ro->to_stern = bindec(substr($_aisdata,280,9));
281 281
 			//$ro->to_port = bindec(substr($_aisdata,289,6));
282 282
 			//$ro->to_starboard = bindec(substr($_aisdata,295,6));
283 283
 		} else if ($ro->id == 21) {
284
-			$ro->lon = $this->make_lonf(bindec(substr($_aisdata,164,28)));
285
-			$ro->lat = $this->make_latf(bindec(substr($_aisdata,192,27)));
286
-			$ro->name = $this->binchar($_aisdata,43,120);
284
+			$ro->lon = $this->make_lonf(bindec(substr($_aisdata, 164, 28)));
285
+			$ro->lat = $this->make_latf(bindec(substr($_aisdata, 192, 27)));
286
+			$ro->name = $this->binchar($_aisdata, 43, 120);
287 287
 			//$ro->to_bow = bindec(substr($_aisdata,219,9));
288 288
 			//$ro->to_stern = bindec(substr($_aisdata,228,9));
289 289
 			//$ro->to_port = bindec(substr($_aisdata,237,6));
290 290
 			//$ro->to_starboard = bindec(substr($_aisdata,243,6));
291 291
 			$ro->cls = 2; // class B
292 292
 		} else if ($ro->id == 24) {
293
-			$pn = bindec(substr($_aisdata,38,2));
293
+			$pn = bindec(substr($_aisdata, 38, 2));
294 294
 			if ($pn == 0) {
295
-				$ro->name = $this->binchar($_aisdata,40,120);
295
+				$ro->name = $this->binchar($_aisdata, 40, 120);
296 296
 			}
297
-			$ro->typeid = bindec(substr($_aisdata,40,8));
297
+			$ro->typeid = bindec(substr($_aisdata, 40, 8));
298 298
 			$ro->type = $this->getShipType($ro->typeid);
299
-			$ro->callsign = $this->binchar($_aisdata,90,42);
299
+			$ro->callsign = $this->binchar($_aisdata, 90, 42);
300 300
 			//$ro->to_bow = bindec(substr($_aisdata,132,9));
301 301
 			//$ro->to_stern = bindec(substr($_aisdata,141,9));
302 302
 			//$ro->to_port = bindec(substr($_aisdata,150,6));
303 303
 			//$ro->to_starboard = bindec(substr($_aisdata,156,6));
304 304
 			$ro->cls = 2; // class B
305 305
 		} else if ($ro->id == 27) {
306
-			$ro->cog = bindec(substr($_aisdata,85,9));
306
+			$ro->cog = bindec(substr($_aisdata, 85, 9));
307 307
 			if ($ro->cog == 511) $ro->cog = 0.0;
308
-			$ro->sog = bindec(substr($_aisdata,79,6));
308
+			$ro->sog = bindec(substr($_aisdata, 79, 6));
309 309
 			if ($ro->sog == 63) $ro->sog = 0.0;
310
-			$ro->lon = $this->make_lonf(bindec(substr($_aisdata,44,18))*10);
311
-			$ro->lat = $this->make_latf(bindec(substr($_aisdata,62,17))*10);
310
+			$ro->lon = $this->make_lonf(bindec(substr($_aisdata, 44, 18))*10);
311
+			$ro->lat = $this->make_latf(bindec(substr($_aisdata, 62, 17))*10);
312 312
 			$ro->cls = 1; // class A
313 313
 		
314 314
 		}
315
-		$ro->statusid = bindec(substr($_aisdata,38,4));
315
+		$ro->statusid = bindec(substr($_aisdata, 38, 4));
316 316
 		$ro->status = $this->getStatus($ro->statusid);
317 317
 		return $ro;
318 318
 	}
@@ -359,7 +359,7 @@  discard block
 block discarded – undo
359 359
 	}
360 360
 
361 361
 	public function getShipTypeID($type) {
362
-		$typeid = array_search($type,$this->shiptype);
362
+		$typeid = array_search($type, $this->shiptype);
363 363
 		if ($typeid !== FALSE) return $typeid;
364 364
 		elseif ($type == 'Cargo' || $type == 'General Cargo' || $type == 'Bulk Carrier' || $type == 'Container Ship' || $type == 'Cargo A' || $type == 'Reefer' || $type == 'Vehicles Carrier' || $type == 'Ro-Ro Cargo') return 70;
365 365
 		elseif ($type == 'Passengers Ship' || $type == 'Passenger' || $type == 'Ro-Ro/Passenger Ship' || $type == 'Motor Passenger') return 60;
@@ -381,14 +381,14 @@  discard block
 block discarded – undo
381 381
 	public function process_ais_itu($_itu, $_len, $_filler, $aux /*, $ais_ch*/) {
382 382
 		global $port; // tcpip port...
383 383
 		static $debug_counter = 0;
384
-		$aisdata168='';//six bit array of ascii characters
384
+		$aisdata168 = ''; //six bit array of ascii characters
385 385
 		$ais_nmea_array = str_split($_itu); // convert to an array
386 386
 		foreach ($ais_nmea_array as $value) {
387 387
 			$dec = $this->ascii_2_dec($value);
388 388
 			$bit8 = $this->asciidec_2_8bit($dec);
389 389
 			$bit6 = $this->dec_2_6bit($bit8);
390 390
 			//echo $value ."-" .$bit6 ."";
391
-			$aisdata168 .=$bit6;
391
+			$aisdata168 .= $bit6;
392 392
 		}
393 393
 		//echo $aisdata168 . "<br/>";
394 394
 		//return $this->decode_ais($aisdata168, $aux);
@@ -411,24 +411,24 @@  discard block
 block discarded – undo
411 411
 		// calculate checksum after ! till *
412 412
 		// assume 1st ! is valid
413 413
 		// find * ensure that it is at correct position
414
-		$end = strrpos ( $rawdata , '*' );
414
+		$end = strrpos($rawdata, '*');
415 415
 		if ($end === FALSE) return -1; // check for NULLS!!!
416
-		$cs = substr( $rawdata, $end + 1 );
417
-		if ( strlen($cs) != 2 ) return -1; // correct cs length
418
-		$dcs = (int)hexdec( $cs );
419
-		for ( $alias=1; $alias<$end; $alias++) $chksum ^= ord( $rawdata[$alias] ); // perform XOR for NMEA checksum
420
-		if ( $chksum == $dcs ) { // NMEA checksum pass
416
+		$cs = substr($rawdata, $end + 1);
417
+		if (strlen($cs) != 2) return -1; // correct cs length
418
+		$dcs = (int) hexdec($cs);
419
+		for ($alias = 1; $alias < $end; $alias++) $chksum ^= ord($rawdata[$alias]); // perform XOR for NMEA checksum
420
+		if ($chksum == $dcs) { // NMEA checksum pass
421 421
 			$pcs = explode(',', $rawdata);
422 422
 			// !AI??? identifier
423 423
 			if (!isset($pcs[1])) {
424 424
 				echo "ERROR,INVALID_DATA ".time()." $rawdata\n";
425 425
 				return -1;
426 426
 			}
427
-			$num_seq = (int)$pcs[1]; // number of sequences
428
-			$seq = (int)$pcs[2]; // get sequence
427
+			$num_seq = (int) $pcs[1]; // number of sequences
428
+			$seq = (int) $pcs[2]; // get sequence
429 429
 			// get msg sequence id
430 430
 			if ($pcs[3] == '') $msg_sid = -1; // non-multipart message, set to -1
431
-			else $msg_sid = (int)$pcs[3]; // multipart message
431
+			else $msg_sid = (int) $pcs[3]; // multipart message
432 432
 			$ais_ch = $pcs[4]; // get AIS channel
433 433
 			// message sequence checking
434 434
 			if ($num_seq < 1 || $num_seq > 9) {
@@ -461,7 +461,7 @@  discard block
 block discarded – undo
461 461
 					}
462 462
 				}
463 463
 				$itu = $itu.$pcs[5]; // get itu message
464
-				$filler += (int)$pcs[6][0]; // get filler
464
+				$filler += (int) $pcs[6][0]; // get filler
465 465
 				if ($num_seq == 1 // valid single message
466 466
 				    || $num_seq == $pseq // valid multi-part message
467 467
 				) {
@@ -483,13 +483,13 @@  discard block
 block discarded – undo
483 483
 		$cbuf = $cbuf.$ibuf;
484 484
 		$last_pos = 0;
485 485
 		$result = new stdClass();
486
-		while ( ($start = strpos($cbuf,"VDM",$last_pos)) !== FALSE) {
486
+		while (($start = strpos($cbuf, "VDM", $last_pos)) !== FALSE) {
487 487
 		//while ( ($start = strpos($cbuf,"!AI",$last_pos)) !== FALSE) {
488 488
 			//DEBUG echo $cbuf;
489
-			if ( ($end = strpos($cbuf,"\r\n", $start)) !== FALSE) { //TBD need to trim?
489
+			if (($end = strpos($cbuf, "\r\n", $start)) !== FALSE) { //TBD need to trim?
490 490
 				$tst = substr($cbuf, $start - 3, ($end - $start + 3));
491 491
 				//DEBUG echo "[$start $end $tst]\n";
492
-				$result = $this->process_ais_raw( $tst, "" );
492
+				$result = $this->process_ais_raw($tst, "");
493 493
 				$last_pos = $end + 1;
494 494
 			} else break;
495 495
 		}
@@ -501,41 +501,41 @@  discard block
 block discarded – undo
501 501
 	// incoming data from serial or IP comms
502 502
 	public function process_ais_line($cbuf) {
503 503
 		$result = new stdClass();
504
-		$start = strpos($cbuf,"VDM");
504
+		$start = strpos($cbuf, "VDM");
505 505
 		$tst = substr($cbuf, $start - 3);
506
-		$result = $this->process_ais_raw( $tst, "" );
506
+		$result = $this->process_ais_raw($tst, "");
507 507
 		return $result;
508 508
 	}
509 509
 
510 510
 	/* AIS Encoding
511 511
 	*/
512
-	private function mk_ais_lat( $lat ) {
512
+	private function mk_ais_lat($lat) {
513 513
 		//$lat = 1.2569;
514
-		if ($lat<0.0) {
514
+		if ($lat < 0.0) {
515 515
 			$lat = -$lat;
516
-			$neg=true;
517
-		} else $neg=false;
516
+			$neg = true;
517
+		} else $neg = false;
518 518
 		$latd = 0x00000000;
519
-		$latd = intval ($lat * 600000.0);
520
-		if ($neg==true) {
519
+		$latd = intval($lat*600000.0);
520
+		if ($neg == true) {
521 521
 			$latd = ~$latd;
522
-			$latd+=1;
522
+			$latd += 1;
523 523
 			$latd &= 0x07FFFFFF;
524 524
 		}
525 525
 		return $latd;
526 526
 	}
527 527
 
528
-	private function mk_ais_lon( $lon ) {
528
+	private function mk_ais_lon($lon) {
529 529
 		//$lon = 103.851;
530
-		if ($lon<0.0) {
530
+		if ($lon < 0.0) {
531 531
 			$lon = -$lon;
532
-			$neg=true;
533
-		} else $neg=false;
532
+			$neg = true;
533
+		} else $neg = false;
534 534
 		$lond = 0x00000000;
535
-		$lond = intval ($lon * 600000.0);
536
-		if ($neg==true) {
535
+		$lond = intval($lon*600000.0);
536
+		if ($neg == true) {
537 537
 			$lond = ~$lond;
538
-			$lond+=1;
538
+			$lond += 1;
539 539
 			$lond &= 0x0FFFFFFF;
540 540
 		}
541 541
 		return $lond;
@@ -543,8 +543,8 @@  discard block
 block discarded – undo
543 543
 
544 544
 	private function char2bin($name, $max_len) {
545 545
 		$len = strlen($name);
546
-		if ($len > $max_len) $name = substr($name,0,$max_len);
547
-		if ($len < $max_len) $pad = str_repeat('0', ($max_len - $len) * 6);
546
+		if ($len > $max_len) $name = substr($name, 0, $max_len);
547
+		if ($len < $max_len) $pad = str_repeat('0', ($max_len - $len)*6);
548 548
 		else $pad = '';
549 549
 		$rv = '';
550 550
 		$ais_chars = array(
@@ -561,26 +561,26 @@  discard block
 block discarded – undo
561 561
 		if ($_a) foreach ($_a as $_1) {
562 562
 			if (isset($ais_chars[$_1])) $dec = $ais_chars[$_1];
563 563
 			else $dec = 0;
564
-			$bin = str_pad(decbin( $dec ), 6, '0', STR_PAD_LEFT);
564
+			$bin = str_pad(decbin($dec), 6, '0', STR_PAD_LEFT);
565 565
 			$rv .= $bin;
566 566
 			//echo "$_1 $dec ($bin)<br/>";
567 567
 		}
568 568
 		return $rv.$pad;
569 569
 	}
570 570
 
571
-	private function mk_ais($_enc, $_part=1,$_total=1,$_seq='',$_ch='A') {
571
+	private function mk_ais($_enc, $_part = 1, $_total = 1, $_seq = '', $_ch = 'A') {
572 572
 		$len_bit = strlen($_enc);
573
-		$rem6 = $len_bit % 6;
573
+		$rem6 = $len_bit%6;
574 574
 		$pad6_len = 0;
575 575
 		if ($rem6) $pad6_len = 6 - $rem6;
576 576
 		//echo  $pad6_len.'<br>';
577 577
 		$_enc .= str_repeat("0", $pad6_len); // pad the text...
578
-		$len_enc = strlen($_enc) / 6;
578
+		$len_enc = strlen($_enc)/6;
579 579
 		//echo $_enc.' '.$len_enc.'<br/>';
580 580
 		$itu = '';
581
-		for ($i=0; $i<$len_enc; $i++) {
582
-			$offset = $i * 6;
583
-			$dec = bindec(substr($_enc,$offset,6));
581
+		for ($i = 0; $i < $len_enc; $i++) {
582
+			$offset = $i*6;
583
+			$dec = bindec(substr($_enc, $offset, 6));
584 584
 			if ($dec < 40) $dec += 48;
585 585
 			else $dec += 56;
586 586
 			//echo chr($dec)." $dec<br/>";
@@ -590,15 +590,15 @@  discard block
 block discarded – undo
590 590
 		$chksum = 0;
591 591
 		$itu = "AIVDM,$_part,$_total,$_seq,$_ch,".$itu.",0";
592 592
 		$len_itu = strlen($itu);
593
-		for ($i=0; $i<$len_itu; $i++) {
594
-			$chksum ^= ord( $itu[$i] );
593
+		for ($i = 0; $i < $len_itu; $i++) {
594
+			$chksum ^= ord($itu[$i]);
595 595
 		}
596
-		$hex_arr = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
597
-		$lsb = $chksum & 0x0F;
598
-		if ($lsb >=0 && $lsb <= 15 ) $lsbc = $hex_arr[$lsb];
596
+		$hex_arr = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
597
+		$lsb = $chksum&0x0F;
598
+		if ($lsb >= 0 && $lsb <= 15) $lsbc = $hex_arr[$lsb];
599 599
 		else $lsbc = '0';
600
-		$msb = (($chksum & 0xF0) >> 4) & 0x0F;
601
-		if ($msb >=0 && $msb <= 15 ) $msbc = $hex_arr[$msb];
600
+		$msb = (($chksum&0xF0) >> 4)&0x0F;
601
+		if ($msb >= 0 && $msb <= 15) $msbc = $hex_arr[$msb];
602 602
 		else $msbc = '0';
603 603
 		$itu = '!'.$itu."*{$msbc}{$lsbc}\r\n";
604 604
 		return $itu;
@@ -624,14 +624,14 @@  discard block
 block discarded – undo
624 624
 
625 625
 	public function mmsitype($mmsi) {
626 626
 		if (strlen($mmsi) == 9) {
627
-			if (substr($mmsi,0,3) == '974') return 'EPIRB (Emergency Position Indicating Radio Beacon) AIS';
628
-			elseif (substr($mmsi,0,3) == '972') return 'MOB (Man Overboard) device';
629
-			elseif (substr($mmsi,0,3) == '970') return 'AIS SART (Search and Rescue Transmitter)';
630
-			elseif (substr($mmsi,0,3) == '111') return 'SAR (Search and Rescue) aircraft';
631
-			elseif (substr($mmsi,0,2) == '98') return 'Auxiliary craft associated with a parent ship';
632
-			elseif (substr($mmsi,0,2) == '99') return 'Aids to Navigation';
633
-			elseif (substr($mmsi,0,2) == '00') return 'Coastal stations';
634
-			elseif (substr($mmsi,0,1) == '0') return 'Group of ships';
627
+			if (substr($mmsi, 0, 3) == '974') return 'EPIRB (Emergency Position Indicating Radio Beacon) AIS';
628
+			elseif (substr($mmsi, 0, 3) == '972') return 'MOB (Man Overboard) device';
629
+			elseif (substr($mmsi, 0, 3) == '970') return 'AIS SART (Search and Rescue Transmitter)';
630
+			elseif (substr($mmsi, 0, 3) == '111') return 'SAR (Search and Rescue) aircraft';
631
+			elseif (substr($mmsi, 0, 2) == '98') return 'Auxiliary craft associated with a parent ship';
632
+			elseif (substr($mmsi, 0, 2) == '99') return 'Aids to Navigation';
633
+			elseif (substr($mmsi, 0, 2) == '00') return 'Coastal stations';
634
+			elseif (substr($mmsi, 0, 1) == '0') return 'Group of ships';
635 635
 			else return 'Ship';
636 636
 		}
637 637
 
@@ -641,19 +641,19 @@  discard block
 block discarded – undo
641 641
 	public function parse_line($buffer) {
642 642
 		global $globalDebug;
643 643
 		$result = array();
644
-		$start = strpos($buffer,"VDM");
644
+		$start = strpos($buffer, "VDM");
645 645
 		$tst = substr($buffer, $start - 3);
646
-		$data = $this->process_ais_raw( $tst, "" );
646
+		$data = $this->process_ais_raw($tst, "");
647 647
 		if (!is_object($data)) {
648 648
 			//if ($globalDebug) echo '==== Line format not supported : '.$buffer."\n";
649 649
 			return array();
650 650
 		}
651 651
 		if ($data->lon != 0) $result['longitude'] = $data->lon;
652 652
 		if ($data->lat != 0) $result['latitude'] = $data->lat;
653
-		$result['ident'] = trim(str_replace('@','',$data->name));
653
+		$result['ident'] = trim(str_replace('@', '', $data->name));
654 654
 		$result['timestamp'] = $data->ts;
655 655
 		$result['mmsi'] = $data->mmsi;
656
-		if (strlen($result['mmsi']) == 8 && substr($result['mmsi'],0,3) == '669') $result['mmsi'] = '3'.$result['mmsi'];
656
+		if (strlen($result['mmsi']) == 8 && substr($result['mmsi'], 0, 3) == '669') $result['mmsi'] = '3'.$result['mmsi'];
657 657
 		$result['mmsi_type'] = $this->mmsitype($result['mmsi']);
658 658
 		if ($data->sog != -1.0) $result['speed'] = $data->sog;
659 659
 		if ($data->heading !== '') $result['heading'] = $data->heading;
@@ -663,16 +663,16 @@  discard block
 block discarded – undo
663 663
 		if ($data->type !== '') $result['type'] = $data->type;
664 664
 		if ($data->typeid !== '') $result['typeid'] = $data->typeid;
665 665
 		if ($data->imo !== '') $result['imo'] = $data->imo;
666
-		if ($data->callsign !== '') $result['callsign'] = trim(str_replace('@','',$data->callsign));
666
+		if ($data->callsign !== '') $result['callsign'] = trim(str_replace('@', '', $data->callsign));
667 667
 		if (is_numeric($data->eta_month) && $data->eta_month != 0 && is_numeric($data->eta_day) && $data->eta_day != 0 && $data->eta_hour !== '' && $data->eta_minute !== '') {
668
-			$eta_ts = strtotime(date('Y').'-'.sprintf("%02d",$data->eta_month).'-'.sprintf("%02d",$data->eta_day).' '.sprintf("%02d",$data->eta_hour).':'.sprintf("%02d",$data->eta_minute).':00');
668
+			$eta_ts = strtotime(date('Y').'-'.sprintf("%02d", $data->eta_month).'-'.sprintf("%02d", $data->eta_day).' '.sprintf("%02d", $data->eta_hour).':'.sprintf("%02d", $data->eta_minute).':00');
669 669
 			if ($eta_ts != '') $result['eta_ts'] = $eta_ts;
670 670
 		} elseif (is_numeric($data->eta_hour) && is_numeric($data->eta_minute)) {
671
-			$eta_ts = strtotime(date('Y-m-d').' '.sprintf("%02d",$data->eta_hour).':'.sprintf("%02d",$data->eta_minute).':00');
671
+			$eta_ts = strtotime(date('Y-m-d').' '.sprintf("%02d", $data->eta_hour).':'.sprintf("%02d", $data->eta_minute).':00');
672 672
 			if ($eta_ts != '') $result['eta_ts'] = $eta_ts;
673 673
 		}
674 674
 		if ($data->destination != '') {
675
-			$dest = trim(str_replace('@','',$data->destination));
675
+			$dest = trim(str_replace('@', '', $data->destination));
676 676
 			if ($dest != '') $result['destination'] = $dest;
677 677
 		}
678 678
 		$result['all'] = (array) $data;
Please login to merge, or discard this patch.
Braces   +204 added lines, -79 removed lines patch added patch discarded remove patch
@@ -123,7 +123,9 @@  discard block
 block discarded – undo
123 123
 			$temp += 1;
124 124
 			$flat = (float)($temp / (60.0 * 10000.0));
125 125
 			$flat *= -1.0;
126
-		} else $flat = (float)($temp / (60.0 * 10000.0));
126
+		} else {
127
+			$flat = (float)($temp / (60.0 * 10000.0));
128
+		}
127 129
 		return $flat; // float
128 130
 	}
129 131
 
@@ -135,7 +137,9 @@  discard block
 block discarded – undo
135 137
 			$temp += 1;
136 138
 			$flon = (float)($temp / (60.0 * 10000.0));
137 139
 			$flon *= -1.0;
138
-		} else $flon = (float)($temp / (60.0 * 10000.0));
140
+		} else {
141
+			$flon = (float)($temp / (60.0 * 10000.0));
142
+		}
139 143
 		return $flon;
140 144
 	}
141 145
 
@@ -158,10 +162,8 @@  discard block
 block discarded – undo
158 162
     */
159 163
 	private function asciidec_2_8bit($ascii) {
160 164
 		//only process in the following range: 48-87, 96-119
161
-		if ($ascii < 48) { }
162
-		else {
163
-			if($ascii>119) { }
164
-			else {
165
+		if ($ascii < 48) { } else {
166
+			if($ascii>119) { } else {
165 167
 				if ($ascii>87 && $ascii<96) ;
166 168
 				else {
167 169
 					$ascii=$ascii+40;
@@ -263,7 +265,9 @@  discard block
 block discarded – undo
263 265
 			$ro->lon = $this->make_lonf(bindec(substr($_aisdata,57,28)));
264 266
 			$ro->lat = $this->make_latf(bindec(substr($_aisdata,85,27)));
265 267
 			$ro->heading = bindec(substr($_aisdata,124,9));
266
-			if ($ro->heading == 511) $ro->heading = '';
268
+			if ($ro->heading == 511) {
269
+				$ro->heading = '';
270
+			}
267 271
 			$ro->cls = 2; // class B
268 272
 		} else if ($ro->id == 19) {
269 273
 			$ro->cog = bindec(substr($_aisdata,112,12))/10;
@@ -273,7 +277,9 @@  discard block
 block discarded – undo
273 277
 			$ro->name = $this->binchar($_aisdata,143,120);
274 278
 			$ro->cls = 2; // class B
275 279
 			$ro->heading = bindec(substr($_aisdata,124,9));
276
-			if ($ro->heading == 511) $ro->heading = '';
280
+			if ($ro->heading == 511) {
281
+				$ro->heading = '';
282
+			}
277 283
 			$ro->typeid = bindec(substr($_aisdata,263,8));
278 284
 			$ro->type = $this->getShipType($ro->typeid);
279 285
 			//$ro->to_bow = bindec(substr($_aisdata,271,9));
@@ -304,9 +310,13 @@  discard block
 block discarded – undo
304 310
 			$ro->cls = 2; // class B
305 311
 		} else if ($ro->id == 27) {
306 312
 			$ro->cog = bindec(substr($_aisdata,85,9));
307
-			if ($ro->cog == 511) $ro->cog = 0.0;
313
+			if ($ro->cog == 511) {
314
+				$ro->cog = 0.0;
315
+			}
308 316
 			$ro->sog = bindec(substr($_aisdata,79,6));
309
-			if ($ro->sog == 63) $ro->sog = 0.0;
317
+			if ($ro->sog == 63) {
318
+				$ro->sog = 0.0;
319
+			}
310 320
 			$ro->lon = $this->make_lonf(bindec(substr($_aisdata,44,18))*10);
311 321
 			$ro->lat = $this->make_latf(bindec(substr($_aisdata,62,17))*10);
312 322
 			$ro->cls = 1; // class A
@@ -354,28 +364,48 @@  discard block
 block discarded – undo
354 364
 	}
355 365
 	
356 366
 	public function getShipType($code) {
357
-		if (isset($this->shiptype[$code])) return $this->shiptype[$code];
358
-		else return '';
367
+		if (isset($this->shiptype[$code])) {
368
+			return $this->shiptype[$code];
369
+		} else {
370
+			return '';
371
+		}
359 372
 	}
360 373
 
361 374
 	public function getShipTypeID($type) {
362 375
 		$typeid = array_search($type,$this->shiptype);
363
-		if ($typeid !== FALSE) return $typeid;
364
-		elseif ($type == 'Cargo' || $type == 'General Cargo' || $type == 'Bulk Carrier' || $type == 'Container Ship' || $type == 'Cargo A' || $type == 'Reefer' || $type == 'Vehicles Carrier' || $type == 'Ro-Ro Cargo') return 70;
365
-		elseif ($type == 'Passengers Ship' || $type == 'Passenger' || $type == 'Ro-Ro/Passenger Ship' || $type == 'Motor Passenger') return 60;
366
-		elseif ($type == 'Tanker' || $type == 'Crude Oil Tanker' || $type == 'Oil Products Tanker' || $type == 'Oil/Chemical Tanker' || $type == 'Bunkering Tanker') return 80;
367
-		elseif ($type == 'Lpg Tanker' || $type == 'Lng Tanker') return 84;
368
-		elseif ($type == 'Sailing Vessel') return 36;
369
-		elseif ($type == 'Yacht') return 37;
370
-		elseif ($type == 'Trailing Suction Hopper Dredger' || $type == 'Drilling Jack Up' || $type == 'Suction Dredger' || $type == 'Hopper Dredger') return 33;
371
-		elseif ($type == 'High speed craft') return 40;
372
-		elseif ($type == 'Crew Boat') return 53;
373
-		elseif ($type == 'Icebreaker') return 52;
374
-		elseif ($type == 'Pollution Control Vessel') return 54;
375
-		elseif ($type == 'Other Type') return 90;
376
-		elseif ($type == 'Anchor Handling Vessel' || $type == 'Offshore Supply Ship' || $type == 'Research/Survey Vessel' || $type == 'Utility Vessel' || $type == 'Pipe Burying Vessel' || $type == 'Heavy Lift Vessel' || $type == 'Crane Ship' || $type == 'Buoy-laying Vessel') return 59;
377
-		elseif ($type == 'Fish Carrier' || $type == 'Trawler' || $type == 'Trawlers' || $type == 'Fishing Vessel' || $type == 'Trawlers|unknown Not Fishing' || $type == 'Purse Seines|trawlers' || $type == 'Purse Seines' || $type == 'Trollers' || $type == 'Set Longlines' || $type == 'Set Gillnets|trawlers') return 30;
378
-		else return 0;
376
+		if ($typeid !== FALSE) {
377
+			return $typeid;
378
+		} elseif ($type == 'Cargo' || $type == 'General Cargo' || $type == 'Bulk Carrier' || $type == 'Container Ship' || $type == 'Cargo A' || $type == 'Reefer' || $type == 'Vehicles Carrier' || $type == 'Ro-Ro Cargo') {
379
+			return 70;
380
+		} elseif ($type == 'Passengers Ship' || $type == 'Passenger' || $type == 'Ro-Ro/Passenger Ship' || $type == 'Motor Passenger') {
381
+			return 60;
382
+		} elseif ($type == 'Tanker' || $type == 'Crude Oil Tanker' || $type == 'Oil Products Tanker' || $type == 'Oil/Chemical Tanker' || $type == 'Bunkering Tanker') {
383
+			return 80;
384
+		} elseif ($type == 'Lpg Tanker' || $type == 'Lng Tanker') {
385
+			return 84;
386
+		} elseif ($type == 'Sailing Vessel') {
387
+			return 36;
388
+		} elseif ($type == 'Yacht') {
389
+			return 37;
390
+		} elseif ($type == 'Trailing Suction Hopper Dredger' || $type == 'Drilling Jack Up' || $type == 'Suction Dredger' || $type == 'Hopper Dredger') {
391
+			return 33;
392
+		} elseif ($type == 'High speed craft') {
393
+			return 40;
394
+		} elseif ($type == 'Crew Boat') {
395
+			return 53;
396
+		} elseif ($type == 'Icebreaker') {
397
+			return 52;
398
+		} elseif ($type == 'Pollution Control Vessel') {
399
+			return 54;
400
+		} elseif ($type == 'Other Type') {
401
+			return 90;
402
+		} elseif ($type == 'Anchor Handling Vessel' || $type == 'Offshore Supply Ship' || $type == 'Research/Survey Vessel' || $type == 'Utility Vessel' || $type == 'Pipe Burying Vessel' || $type == 'Heavy Lift Vessel' || $type == 'Crane Ship' || $type == 'Buoy-laying Vessel') {
403
+			return 59;
404
+		} elseif ($type == 'Fish Carrier' || $type == 'Trawler' || $type == 'Trawlers' || $type == 'Fishing Vessel' || $type == 'Trawlers|unknown Not Fishing' || $type == 'Purse Seines|trawlers' || $type == 'Purse Seines' || $type == 'Trollers' || $type == 'Set Longlines' || $type == 'Set Gillnets|trawlers') {
405
+			return 30;
406
+		} else {
407
+			return 0;
408
+		}
379 409
 	}
380 410
 
381 411
 	public function process_ais_itu($_itu, $_len, $_filler, $aux /*, $ais_ch*/) {
@@ -412,11 +442,20 @@  discard block
 block discarded – undo
412 442
 		// assume 1st ! is valid
413 443
 		// find * ensure that it is at correct position
414 444
 		$end = strrpos ( $rawdata , '*' );
415
-		if ($end === FALSE) return -1; // check for NULLS!!!
445
+		if ($end === FALSE) {
446
+			return -1;
447
+		}
448
+		// check for NULLS!!!
416 449
 		$cs = substr( $rawdata, $end + 1 );
417
-		if ( strlen($cs) != 2 ) return -1; // correct cs length
450
+		if ( strlen($cs) != 2 ) {
451
+			return -1;
452
+		}
453
+		// correct cs length
418 454
 		$dcs = (int)hexdec( $cs );
419
-		for ( $alias=1; $alias<$end; $alias++) $chksum ^= ord( $rawdata[$alias] ); // perform XOR for NMEA checksum
455
+		for ( $alias=1; $alias<$end; $alias++) {
456
+			$chksum ^= ord( $rawdata[$alias] );
457
+		}
458
+		// perform XOR for NMEA checksum
420 459
 		if ( $chksum == $dcs ) { // NMEA checksum pass
421 460
 			$pcs = explode(',', $rawdata);
422 461
 			// !AI??? identifier
@@ -427,8 +466,14 @@  discard block
 block discarded – undo
427 466
 			$num_seq = (int)$pcs[1]; // number of sequences
428 467
 			$seq = (int)$pcs[2]; // get sequence
429 468
 			// get msg sequence id
430
-			if ($pcs[3] == '') $msg_sid = -1; // non-multipart message, set to -1
431
-			else $msg_sid = (int)$pcs[3]; // multipart message
469
+			if ($pcs[3] == '') {
470
+				$msg_sid = -1;
471
+			}
472
+			// non-multipart message, set to -1
473
+			else {
474
+				$msg_sid = (int)$pcs[3];
475
+			}
476
+			// multipart message
432 477
 			$ais_ch = $pcs[4]; // get AIS channel
433 478
 			// message sequence checking
434 479
 			if ($num_seq < 1 || $num_seq > 9) {
@@ -491,10 +536,18 @@  discard block
 block discarded – undo
491 536
 				//DEBUG echo "[$start $end $tst]\n";
492 537
 				$result = $this->process_ais_raw( $tst, "" );
493 538
 				$last_pos = $end + 1;
494
-			} else break;
539
+			} else {
540
+				break;
541
+			}
542
+		}
543
+		if ($last_pos > 0) {
544
+			$cbuf = substr($cbuf, $last_pos);
495 545
 		}
496
-		if ($last_pos > 0) $cbuf = substr($cbuf, $last_pos); // move...
497
-		if (strlen($cbuf) > 1024) $cbuf = ""; // prevent overflow simple mode...
546
+		// move...
547
+		if (strlen($cbuf) > 1024) {
548
+			$cbuf = "";
549
+		}
550
+		// prevent overflow simple mode...
498 551
 		return $result;
499 552
 	}
500 553
 
@@ -514,7 +567,9 @@  discard block
 block discarded – undo
514 567
 		if ($lat<0.0) {
515 568
 			$lat = -$lat;
516 569
 			$neg=true;
517
-		} else $neg=false;
570
+		} else {
571
+			$neg=false;
572
+		}
518 573
 		$latd = 0x00000000;
519 574
 		$latd = intval ($lat * 600000.0);
520 575
 		if ($neg==true) {
@@ -530,7 +585,9 @@  discard block
 block discarded – undo
530 585
 		if ($lon<0.0) {
531 586
 			$lon = -$lon;
532 587
 			$neg=true;
533
-		} else $neg=false;
588
+		} else {
589
+			$neg=false;
590
+		}
534 591
 		$lond = 0x00000000;
535 592
 		$lond = intval ($lon * 600000.0);
536 593
 		if ($neg==true) {
@@ -543,9 +600,14 @@  discard block
 block discarded – undo
543 600
 
544 601
 	private function char2bin($name, $max_len) {
545 602
 		$len = strlen($name);
546
-		if ($len > $max_len) $name = substr($name,0,$max_len);
547
-		if ($len < $max_len) $pad = str_repeat('0', ($max_len - $len) * 6);
548
-		else $pad = '';
603
+		if ($len > $max_len) {
604
+			$name = substr($name,0,$max_len);
605
+		}
606
+		if ($len < $max_len) {
607
+			$pad = str_repeat('0', ($max_len - $len) * 6);
608
+		} else {
609
+			$pad = '';
610
+		}
549 611
 		$rv = '';
550 612
 		$ais_chars = array(
551 613
 		    '@'=>0, 'A'=>1, 'B'=>2, 'C'=>3, 'D'=>4, 'E'=>5, 'F'=>6, 'G'=>7, 'H'=>8, 'I'=>9,
@@ -558,9 +620,12 @@  discard block
 block discarded – undo
558 620
 		);
559 621
 		// "
560 622
 		$_a = str_split($name);
561
-		if ($_a) foreach ($_a as $_1) {
623
+		if ($_a) {
624
+			foreach ($_a as $_1) {
562 625
 			if (isset($ais_chars[$_1])) $dec = $ais_chars[$_1];
563
-			else $dec = 0;
626
+		} else {
627
+				$dec = 0;
628
+			}
564 629
 			$bin = str_pad(decbin( $dec ), 6, '0', STR_PAD_LEFT);
565 630
 			$rv .= $bin;
566 631
 			//echo "$_1 $dec ($bin)<br/>";
@@ -572,7 +637,9 @@  discard block
 block discarded – undo
572 637
 		$len_bit = strlen($_enc);
573 638
 		$rem6 = $len_bit % 6;
574 639
 		$pad6_len = 0;
575
-		if ($rem6) $pad6_len = 6 - $rem6;
640
+		if ($rem6) {
641
+			$pad6_len = 6 - $rem6;
642
+		}
576 643
 		//echo  $pad6_len.'<br>';
577 644
 		$_enc .= str_repeat("0", $pad6_len); // pad the text...
578 645
 		$len_enc = strlen($_enc) / 6;
@@ -581,8 +648,11 @@  discard block
 block discarded – undo
581 648
 		for ($i=0; $i<$len_enc; $i++) {
582 649
 			$offset = $i * 6;
583 650
 			$dec = bindec(substr($_enc,$offset,6));
584
-			if ($dec < 40) $dec += 48;
585
-			else $dec += 56;
651
+			if ($dec < 40) {
652
+				$dec += 48;
653
+			} else {
654
+				$dec += 56;
655
+			}
586 656
 			//echo chr($dec)." $dec<br/>";
587 657
 			$itu .= chr($dec);
588 658
 		}
@@ -595,26 +665,42 @@  discard block
 block discarded – undo
595 665
 		}
596 666
 		$hex_arr = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
597 667
 		$lsb = $chksum & 0x0F;
598
-		if ($lsb >=0 && $lsb <= 15 ) $lsbc = $hex_arr[$lsb];
599
-		else $lsbc = '0';
668
+		if ($lsb >=0 && $lsb <= 15 ) {
669
+			$lsbc = $hex_arr[$lsb];
670
+		} else {
671
+			$lsbc = '0';
672
+		}
600 673
 		$msb = (($chksum & 0xF0) >> 4) & 0x0F;
601
-		if ($msb >=0 && $msb <= 15 ) $msbc = $hex_arr[$msb];
602
-		else $msbc = '0';
674
+		if ($msb >=0 && $msb <= 15 ) {
675
+			$msbc = $hex_arr[$msb];
676
+		} else {
677
+			$msbc = '0';
678
+		}
603 679
 		$itu = '!'.$itu."*{$msbc}{$lsbc}\r\n";
604 680
 		return $itu;
605 681
 	}
606 682
 
607 683
 	public function parse($buffer) {
608 684
 		$data = $this->process_ais_buf($buffer);
609
-		if (!is_object($data)) return array();
685
+		if (!is_object($data)) {
686
+			return array();
687
+		}
610 688
 		$result = array();
611
-		if ($data->lon != 0) $result['longitude'] = $data->lon;
612
-		if ($data->lat != 0) $result['latitude'] = $data->lat;
689
+		if ($data->lon != 0) {
690
+			$result['longitude'] = $data->lon;
691
+		}
692
+		if ($data->lat != 0) {
693
+			$result['latitude'] = $data->lat;
694
+		}
613 695
 		$result['ident'] = trim($data->name);
614 696
 		$result['timestamp'] = $data->ts;
615 697
 		$result['mmsi'] = $data->mmsi;
616
-		if ($data->sog != -1.0) $result['speed'] = $data->sog;
617
-		if ($data->cog != 0) $result['heading'] = $data->cog;
698
+		if ($data->sog != -1.0) {
699
+			$result['speed'] = $data->sog;
700
+		}
701
+		if ($data->cog != 0) {
702
+			$result['heading'] = $data->cog;
703
+		}
618 704
 		/*
619 705
 		    $ro->cls = 0; // AIS class undefined, also indicate unparsed msg
620 706
 		    $ro->id = bindec(substr($_aisdata,0,6));
@@ -624,15 +710,25 @@  discard block
 block discarded – undo
624 710
 
625 711
 	public function mmsitype($mmsi) {
626 712
 		if (strlen($mmsi) == 9) {
627
-			if (substr($mmsi,0,3) == '974') return 'EPIRB (Emergency Position Indicating Radio Beacon) AIS';
628
-			elseif (substr($mmsi,0,3) == '972') return 'MOB (Man Overboard) device';
629
-			elseif (substr($mmsi,0,3) == '970') return 'AIS SART (Search and Rescue Transmitter)';
630
-			elseif (substr($mmsi,0,3) == '111') return 'SAR (Search and Rescue) aircraft';
631
-			elseif (substr($mmsi,0,2) == '98') return 'Auxiliary craft associated with a parent ship';
632
-			elseif (substr($mmsi,0,2) == '99') return 'Aids to Navigation';
633
-			elseif (substr($mmsi,0,2) == '00') return 'Coastal stations';
634
-			elseif (substr($mmsi,0,1) == '0') return 'Group of ships';
635
-			else return 'Ship';
713
+			if (substr($mmsi,0,3) == '974') {
714
+				return 'EPIRB (Emergency Position Indicating Radio Beacon) AIS';
715
+			} elseif (substr($mmsi,0,3) == '972') {
716
+				return 'MOB (Man Overboard) device';
717
+			} elseif (substr($mmsi,0,3) == '970') {
718
+				return 'AIS SART (Search and Rescue Transmitter)';
719
+			} elseif (substr($mmsi,0,3) == '111') {
720
+				return 'SAR (Search and Rescue) aircraft';
721
+			} elseif (substr($mmsi,0,2) == '98') {
722
+				return 'Auxiliary craft associated with a parent ship';
723
+			} elseif (substr($mmsi,0,2) == '99') {
724
+				return 'Aids to Navigation';
725
+			} elseif (substr($mmsi,0,2) == '00') {
726
+				return 'Coastal stations';
727
+			} elseif (substr($mmsi,0,1) == '0') {
728
+				return 'Group of ships';
729
+			} else {
730
+				return 'Ship';
731
+			}
636 732
 		}
637 733
 
638 734
 	
@@ -648,32 +744,61 @@  discard block
 block discarded – undo
648 744
 			//if ($globalDebug) echo '==== Line format not supported : '.$buffer."\n";
649 745
 			return array();
650 746
 		}
651
-		if ($data->lon != 0) $result['longitude'] = $data->lon;
652
-		if ($data->lat != 0) $result['latitude'] = $data->lat;
747
+		if ($data->lon != 0) {
748
+			$result['longitude'] = $data->lon;
749
+		}
750
+		if ($data->lat != 0) {
751
+			$result['latitude'] = $data->lat;
752
+		}
653 753
 		$result['ident'] = trim(str_replace('@','',$data->name));
654 754
 		$result['timestamp'] = $data->ts;
655 755
 		$result['mmsi'] = $data->mmsi;
656
-		if (strlen($result['mmsi']) == 8 && substr($result['mmsi'],0,3) == '669') $result['mmsi'] = '3'.$result['mmsi'];
756
+		if (strlen($result['mmsi']) == 8 && substr($result['mmsi'],0,3) == '669') {
757
+			$result['mmsi'] = '3'.$result['mmsi'];
758
+		}
657 759
 		$result['mmsi_type'] = $this->mmsitype($result['mmsi']);
658
-		if ($data->sog != -1.0) $result['speed'] = $data->sog;
659
-		if ($data->heading !== '') $result['heading'] = $data->heading;
660
-		elseif ($data->cog != 0) $result['heading'] = $data->cog;
661
-		if ($data->status != '') $result['status'] = $data->status;
662
-		if ($data->statusid !== '') $result['statusid'] = $data->statusid;
663
-		if ($data->type !== '') $result['type'] = $data->type;
664
-		if ($data->typeid !== '') $result['typeid'] = $data->typeid;
665
-		if ($data->imo !== '') $result['imo'] = $data->imo;
666
-		if ($data->callsign !== '') $result['callsign'] = trim(str_replace('@','',$data->callsign));
760
+		if ($data->sog != -1.0) {
761
+			$result['speed'] = $data->sog;
762
+		}
763
+		if ($data->heading !== '') {
764
+			$result['heading'] = $data->heading;
765
+		} elseif ($data->cog != 0) {
766
+			$result['heading'] = $data->cog;
767
+		}
768
+		if ($data->status != '') {
769
+			$result['status'] = $data->status;
770
+		}
771
+		if ($data->statusid !== '') {
772
+			$result['statusid'] = $data->statusid;
773
+		}
774
+		if ($data->type !== '') {
775
+			$result['type'] = $data->type;
776
+		}
777
+		if ($data->typeid !== '') {
778
+			$result['typeid'] = $data->typeid;
779
+		}
780
+		if ($data->imo !== '') {
781
+			$result['imo'] = $data->imo;
782
+		}
783
+		if ($data->callsign !== '') {
784
+			$result['callsign'] = trim(str_replace('@','',$data->callsign));
785
+		}
667 786
 		if (is_numeric($data->eta_month) && $data->eta_month != 0 && is_numeric($data->eta_day) && $data->eta_day != 0 && $data->eta_hour !== '' && $data->eta_minute !== '') {
668 787
 			$eta_ts = strtotime(date('Y').'-'.sprintf("%02d",$data->eta_month).'-'.sprintf("%02d",$data->eta_day).' '.sprintf("%02d",$data->eta_hour).':'.sprintf("%02d",$data->eta_minute).':00');
669
-			if ($eta_ts != '') $result['eta_ts'] = $eta_ts;
788
+			if ($eta_ts != '') {
789
+				$result['eta_ts'] = $eta_ts;
790
+			}
670 791
 		} elseif (is_numeric($data->eta_hour) && is_numeric($data->eta_minute)) {
671 792
 			$eta_ts = strtotime(date('Y-m-d').' '.sprintf("%02d",$data->eta_hour).':'.sprintf("%02d",$data->eta_minute).':00');
672
-			if ($eta_ts != '') $result['eta_ts'] = $eta_ts;
793
+			if ($eta_ts != '') {
794
+				$result['eta_ts'] = $eta_ts;
795
+			}
673 796
 		}
674 797
 		if ($data->destination != '') {
675 798
 			$dest = trim(str_replace('@','',$data->destination));
676
-			if ($dest != '') $result['destination'] = $dest;
799
+			if ($dest != '') {
800
+				$result['destination'] = $dest;
801
+			}
677 802
 		}
678 803
 		$result['all'] = (array) $data;
679 804
 		/*
Please login to merge, or discard this patch.