hmweb
(usa Slackware)
Enviado em 12/04/2011 - 10:16h
Irei postar o codigo que tenho rodando em php, mas ele fica caindo, por isso tenho que mudar.
<?php
// set some variables
$host = "192.168.0.254";
$port = 4658;
// don't timeout!
set_time_limit(0);
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
// bind socket to port
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
// start listening for connections
$result = socket_listen($socket, 3) or die("Could not set up socket listener\n");
for ($i = 1; $i <= 100; $i++) {
//echo $i."\n";
// accept incoming connections
// spawn another socket to handle communication
$spawn = socket_accept($socket) or die("Could not accept incoming connection\n");
// read client input
$input = socket_read($spawn, 5000) or die("Could not read input\n");
$input1 = substr($input, 0, 1);
if ($input1=="#") {
// clean up input string
$input = trim($input);
mysql_pconnect("localhost", "teste", "1234") or die(mysql_error());
mysql_select_db("psrclub") or die(mysql_error());
//recebe a string em uma variavel
$minhastring = $input;
//guarda dados de registro
$datetime= date("Y-m-d H:i:s");
$aux = explode('#',$minhastring);
$minhastring = $aux[6];
$imei = $aux[1];
//busca id usu�rio
$sql_membros = mysql_query("SELECT * FROM pt_unit where imei = $imei");
$linha = mysql_fetch_array($sql_membros);
$unit_id = $linha['id'];
//Quebra lat e long
$aux = explode(',',$minhastring);
//manipula��o data do GPS
$hor = substr($aux[1], -10, -8);
$min = substr($aux[1], -8, -6);
$seg = substr($aux[1], -6, -4);
$teste = $aux[1];
$hora = $hor.":".$min.":".$seg;
$dia = substr($aux[9], 0, -4);
$mes = substr($aux[9], 2, -2);
$ano = substr($aux[9], -2);
$ano = "20".$ano;
$data = $ano."-".$mes."-".$dia;
$datetime_received = $data." ".$hora;
$inclinacao = $aux[8];
$latitude = $aux[3];
$sinal_lat = $aux[4];
$longitude = $aux[5];
$sinal_long = $aux[6];
$velocidade = $aux[7];
$velocidade = $velocidade * 1.6109 ;
$velocidade = round($velocidade , 2);
$sattotal = 4;
$fixtype = 3;
$raw_input = $minhastring;
if ( $sinal_lat === "S" ) { $mult_lat = -1; };
if ( $sinal_lat === "N" ) { $mult_lat = 1; };
if ( $sinal_long === "W" ) { $mult_long = -1; };
if ( $sinal_long === "E" ) { $mult_long = 1; };
//LATITUDE pega valores decimais, separa e converte
$lat_x = substr($latitude, -7);
$lat_y = substr($latitude, 0, -7);
$lat_x = $lat_x / 60 ;
$latitude = $lat_x + $lat_y;
$latitude = $latitude * $mult_lat;
//LONGITUDE pega valores decimais, separa e converte
$long_x = substr($longitude, -7);
$long_y = substr($longitude, 0, -7);
$long_x = $long_x / 60 ;
$longitude = $long_x + $long_y;
$longitude = $longitude * $mult_long;
if ($velocidade < 1) {
$fixtype = 7;
}
//Registra no banco a informa��o
mysql_query("INSERT INTO pt_position(unit_id, datetime, datetime_received, lat, lon, alt, deg, speed_km, speed_kn, sattotal, fixtype, raw_input, hash)
VALUES ('$unit_id', '$datetime_received', '$datetime', '$latitude', '$longitude' , '000' , '$inclinacao' , '$velocidade' , '0' , '$sattotal' , '$fixtype' , '$imei' , '$input')") or die(mys$
}
}