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
<?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