1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| /****
Andry 03 10-2005
ceci est une application php servant à recevoir les trames NMEA venant d'un gps vers le port TCP/IP et à inserer
quelques données vers une base de données mysql
le test est fait pour les trames NMEA en format GPRMC et GPGGA
****/
$connexion = mysql_connect("localhost","root","");
mysql_select_db("testnmea");
$fp = fsockopen("192.168.10.10",2323,&$errno, &$errstr);
if(!$fp) echo "lecture echouée";
else
{
while (!feof($fp))
{
$chaine = fgets($fp, 4096);
switch (substr($chaine,0,6))
{
case "\$GPRMC" :
$tableau = explode(",",$chaine);
$jour = date("dmy");
$temps = substr($tableau[1],0,4);
$lat = explode(".",$tableau[3]);
$lat[1] = ($lat[1]/100000) * 60;
$lat[1] = round($lat[1],1);
$latitude = $lat[0]*100;
$latitude = $latitude + $lat[1];
$long = explode(".",$tableau[5]);
$long[1] = ($long[1]/100000)*60;
$long[1] = round($long[1], 1);
$longitude = $long[0]*100;
$longitude = $longitude + $long[1];
$sql = "insert into position (time, longitude, latitude, jour) VALUES (\"$temps\", \"$longitude\",\"$latitude\",\"$jour\")";
$query = mysql_query($sql, $connexion);
break;
case "\$GPGGA" :
$jour = date("dmy");
$tableau = explode(",",$chaine);
$temps = substr($tableau[1],0,4);
$lat = explode(".",$tableau[2]);
$lat[1] = ($lat[1]/100000) * 60;
$lat[1] = round($lat[1],1);
$latitude = $lat[0]*100;
$latitude = $latitude + $lat[1];
$long = explode(".",$tableau[4]);
$long[1] = ($long[1]/100000)*60;
$long[1] = round($long[1], 1);
$longitude = $long[0]*100;
$longitude = $longitude + $long[1];
$sql = "insert into position (time, longitude, latitude, jour) VALUES (\"$temps\", \"$longitude\",\"$latitude\",\"$jour\")";
$query = mysql_query($sql, $connexion);
break;
default :
echo substr($chaine,0,6);
break;
}
echo $chaine;
}
//echo $chaine;
fclose($fp);
} |
Partager