File "udp.php"
Full path: /www/upfile/CP5001/udp.php
File size: 2.3 KiB (2357 bytes)
MIME-type: text/x-php
Charset: utf-8
<?php
$port = 51237;
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '0.0.0.0', $port);
//CSV出力先
$output[0] = "/www/upfile/CP5001/1.csv";
$output[1] = "/www/upfile/CP5001/2.csv";
$output[2] = "/www/upfile/CP5001/3.csv";
$output[3] = "/www/upfile/CP5001/4.csv";
$log_output_dir = "/www/upfile/CP5001/log/";
//計算用の定数のパス
$calc[1] = file_get_contents("/www/upfile/simulation/file/6/file6.csv");
if(!$calc[1])
{
$calc[1] = 36;
}
for (;;) {
socket_recvfrom($socket, $buf, 1024, 0, $remoteAddr, $remotePort);
$buf = str_replace(array("\r\n", "\r", "\n"), '', $buf);
$data_split = explode(",",$buf);
$x = $data_split[7]+4.8*cos(($data_split[11])*(pi()/180));
$y = $data_split[8]+4.8*sin(($data_split[11])*(pi()/180));
$z2 = $data_split[9]-$calc[1];
$z3 = $data_split[9]-$calc[1];
$z4 = $data_split[9]-$calc[1] +7.41;
$rad = $data_split[11];
$x_ = number_format($x, 2, '.', '');
$y_ = number_format($y, 2, '.', '');
$z2_ = number_format($z2, 2, '.', '');
$z3_ = number_format($z3, 2, '.', '');
$z4_ = number_format($z4, 2, '.', '');
$rad_ = number_format($rad, 1, '.', '');
$buf2 = $data_split[0] ."," .$data_split[7] ."," .$data_split[8] ."," .$z2_ ."," .$data_split[4] .",0," .$data_split[6];
$buf3 = $data_split[0] ."," .$data_split[7] ."," .$data_split[8] ."," .$z3_ ."," .$rad_ .",0," .$data_split[6];
$buf4 = $data_split[0] ."," .$x_ ."," .$y_ ."," .$z4_ ."," .$rad_ ."," .$data_split[10] ."," .$data_split[6];
$fp1 = fopen($output[0],"w");
fwrite($fp1,$buf);
fclose($fp1);
$fp2 = fopen($output[1],"w");
fwrite($fp2,$buf2);
fclose($fp2);
$fp3 = fopen($output[2],"w");
fwrite($fp3,$buf3);
fclose($fp3);
$fp4 = fopen($output[3],"w");
fwrite($fp4,$buf4);
fclose($fp4);
//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 &
*/
?>