Hello Teltonika, I’m facing an issue while migrating with php through TCP connection i think there are a lot of coordinates not sending from the devices and this is my code .
$address = config('gps_tracker.gps_socket_host') . ':' . config('gps_tracker.gps_socket_port');
$socket = stream_socket_server("tcp://$address", $errno, $errstr);
$teltonika = new \Uro\TeltonikaFmParser\FmParser('tcp');
if (!$socket) {
$this->error("$errstr ($errno)");
throw new \Exception("$errstr ($errno)");
} else {
while ($conn = stream_socket_accept($socket, 500000)) {
try {
$payload = fread($conn, 1024);
$imeiNumber = $teltonika->decodeImei($payload);
$this->info('Payload decodeImei : $teltonika->decodeImei($payload); : ' . $imeiNumber);
if (!$vehicle) {
$this->error('Vehicle not found or vehicle license not activated');
fclose($conn);
continue;
}
// Accept packet
fwrite($conn, pack('C', 1));
// Read Data
$payload = fread($conn, 1024 * 1024);
$packet = $teltonika->decodeData($payload);
fwrite($conn, pack('N', $packet->getAvlDataCollection()->getNumberOfData()));
Cache::forget($imeiNumber);
} catch (\Exception $e) {
report($e);
$this->error($e->getMessage());
}
// Close connection
fclose($conn);
}
fclose($socket);
}
i used uro package for laravel