<?php
$data = "imei:359710049095095,tracker,151006012336,,F,172337.000,A,5105.9792,N,11404.9599,W,0.01,322.56,,0,0,,,";
$data1 = "359710049095095"; // heartbeat requires "ON" response
$data2 = "##,imei:359710049095095,A"; // requires "LOAD" response
// there is also a third message that needs to be sent out based on "help me" message type, line 112, https://github.com/tananaev/traccar/blob/master/src/org/traccar/protocol/Gps103ProtocolDecoder.java
list($imei, $alarm, $date_time, , $gps_strength, $dont_know, $validity, $latitude, $latitude_direction, $longitude, $longitude_direction, $speed_in_knots, $bearing, , $switch1, $switch2, , , ) = explode(",", $data);
print_r(substr($imei,5) . "\n");
print_r(degree_to_decimal($latitude,$latitude_direction) . "\n"); // DDMM.MMMM
print_r(degree_to_decimal($longitude,$longitude_direction) . "\n");
date_default_timezone_set('UTC');
print_r(nmea_to_mysql_time($date_time) . "\n"); // YYMMDDHHMMSS
function nmea_to_mysql_time($date_time){
$year = substr($date_time,0,2);
$month = substr($date_time,2,2);
$day = substr($date_time,4,2);
$hour = substr($date_time,6,2);
$minute = substr($date_time,8,2);
$second = substr($date_time,10,2);
return date("Y-m-d H:i:s", mktime($hour,$minute,$second,$month,$day,$year));
}
function degree_to_decimal($coordinates_in_degrees, $direction){
$degrees = (int)($coordinates_in_degrees / 100);
$minutes = $coordinates_in_degrees - ($degrees * 100);
$seconds = $minutes / 60;
$coordinates_in_decimal = $degrees + $seconds;
if (($direction == "S") || ($direction == "W")) {
$coordinates_in_decimal = $coordinates_in_decimal * (-1);
}
return number_format($coordinates_in_decimal, 6,'.','');
}