File "udp.php"

Full path: /www/ais_management/old/udp.php
File size: 2.77 KiB (2833 bytes)
MIME-type: text/x-php
Charset: utf-8

Download   Open   Back

<?php
//引数を取得
$port = $argv[1];
//$port = 51237;

print $port ."\n";
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '0.0.0.0', $port);

//処理実行フラグのパス
$flag_file_path = "/www/ais_management/start_flag.txt";


//CSV出力先
//ディレクトリ
$dir = "/www/ais_management/ais/";
$log_output_dir = "";
//CSV出力先
switch($port)
{
	case 51250:
		$output[0] = $dir."test.csv";
		$log_output_dir = $dir."test_log/";
		break;
		
	case 51251:
		$output[0] = $dir."diver2.csv";
		$log_output_dir = $dir."diver2_log/";
		break;
		
	case 51252:
		$output[0] = $dir."diver3.csv";
		$log_output_dir = $dir."diver3_log/";
		break;
}

if($output[0])
{
	for (;;)
	{
		$start_flag = file_get_contents($flag_file_path);
		
		if($start_flag)
		{
		    socket_recvfrom($socket, $buf, 1024, 0, $remoteAddr, $remotePort);
			//$buf_ = str_replace(array("\r\n", "\r", "\n"), '',  $buf);
			//$data_split = explode(",",$buf);
			
			$data = explode(",",$buf);
			
			if(($data[3] == 1) || ($data[3] == 2) || ($data[3] == 3))
			{
				$output_dir = $dir .$data[4];
				$output_daata = $data[0] ."," .$data[1] ."," .$data[9] ."," .$data[10] .",0," .$data[11];
				if(!file_exists($output_dir) mkdir($output_dir, 0777);
				file_put_contents($output_dir ."/gpsdata.csv", $output_data , LOCK_EX);
				file_put_contents($dir ."aisdata.csv", $output_data , LOCK_EX);
			}
			else
			{
				$output_dir = $dir .$data[4];
				$date = $data[0];
				$time = $data[1];
				$messid = $data[3];
				$length = $data[25] + $data[26];
				$width = $data[27] + $data[28];
				
				//$output_daata = $data[0] ."," .$data[1] ."," .$data[9] ."," .$data[10] .",0," .$data[11];
				if(!file_exists($output_dir) mkdir($output_dir, 0777);
				file_put_contents($output_dir ."/gpsdata.csv", $output_data , LOCK_EX);
			}
				
			
			/*
			//データを分解して、Zの値を再計算
			
			$data_split[3] = $data_split[3] * (-1);
			$buf = $data_split[0] ."," .$data_split[1] ."," .$data_split[2] ."," .$data_split[3] ."," .$data_split[4] ."," .$data_split[5] ."," .$data_split[6];

			$fp1 = fopen($output[0],"w");
			fwrite($fp1,$buf);
			fclose($fp1);

			//1時間ごとにログを保存
			$unix_time = strtotime($data_split[0]);
			$log_file_name = date("YmdH" ,$unix_time) .".csv";
			$log_output_path = $log_output_dir .$log_file_name;
			
			if (file_exists($log_output_path))
			{
				$fp_log = fopen($log_output_path,"a");
				fwrite($fp_log,$buf ."\n");
				fclose($fp_log);
			}
			else
			{
				$fp_log = fopen($log_output_path,"w");
				fwrite($fp_log,$buf ."\n");
				fclose($fp_log);
			}
			*/
		}
	}
}
/*
書き換え後、コマンド画面から以下のコマンドを張り付けて実行
nohup php ./udp.php < /dev/null > batchout.log 2> batcherr.log &
*/
?>

abcdefghijklmnopqrstuvwxyzABC

PHP File Manager