File "mv.php"
Full path: /www/ansys/ttest/accmes/mv.php
File size: 5.68 KiB (5821 bytes)
MIME-type: text/x-php
Charset: utf-8
<?php
$indexURL = "./index_mv.php";
$position = isset($_POST["position"]) ? htmlspecialchars($_POST["position"]) : "";
$sepPosition = split(",", $position);
$len = count($sepPosition);
// 読み込むファイル名、戻る場所を決める
$dataFname = "/";
$returnPosition = "";
for($iCount = 0; $iCount < $len; $iCount++)
{
if ($iCount > 0)
{
$dataFname .= "/";
if ($iCount < $len - 1)
$returnPosition .= ",";
}
$dataFname .= $sepPosition[$iCount];
if ($iCount < $len - 1)
$returnPosition .= $sepPosition[$iCount];
}
try
{
$ard = array();
// データを取得
$index = 0;
$fp = fopen($dataFname, "r");
if ($fp != NULL)
{
while(!feof($fp))
{
$line = trim(fgets($fp));
if (strcmp($line, "") != 0)
{
$stac = split(",", $line);
$ard[$index]["msec"] = $stac[0];
$ard[$index]["x"] = $stac[1];
$ard[$index]["y"] = $stac[2];
$ard[$index]["z"] = $stac[3];
$ard[$index]["v"] = sqrt(($ard[$index]["x"] * $ard[$index]["x"]) + ($ard[$index]["y"] * $ard[$index]["y"]) + ($ard[$index]["z"] * $ard[$index]["z"]));
$ard[$index]["long"] = array("index" => 0, "x" => 0, "y" => 0, "z" => 0, "v" => 0);
$ard[$index]["middle"] = array("index" => 0, "x" => 0, "y" => 0, "z" => 0, "v" => 0);
$ard[$index]["short"] = array("index" => 0, "x" => 0, "y" => 0, "z" => 0, "v" => 0);
// 移動平均の算出
$iid = $index;
while(true)
{
$diff = $ard[$index]["msec"] - $ard[$iid]["msec"];
if ($diff <= 1000)
{
$ard[$index]["long"]["index"]++;
$ard[$index]["long"]["x"] += $ard[$iid]["x"];
$ard[$index]["long"]["y"] += $ard[$iid]["y"];
$ard[$index]["long"]["z"] += $ard[$iid]["z"];
$ard[$index]["long"]["v"] += $ard[$iid]["v"];
if ($diff <= 200)
{
$ard[$index]["middle"]["index"]++;
$ard[$index]["middle"]["x"] += $ard[$iid]["x"];
$ard[$index]["middle"]["y"] += $ard[$iid]["y"];
$ard[$index]["middle"]["z"] += $ard[$iid]["z"];
$ard[$index]["middle"]["v"] += $ard[$iid]["v"];
if ($diff <= 40)
{
$ard[$index]["short"]["index"]++;
$ard[$index]["short"]["x"] += $ard[$iid]["x"];
$ard[$index]["short"]["y"] += $ard[$iid]["y"];
$ard[$index]["short"]["z"] += $ard[$iid]["z"];
$ard[$index]["short"]["v"] += $ard[$iid]["v"];
}
}
}
else
{
break;
}
$iid--;
if ($iid < 0)
break;
}
$ard[$index]["long"]["x"] = $ard[$index]["long"]["x"] / $ard[$index]["long"]["index"];
$ard[$index]["long"]["y"] = $ard[$index]["long"]["y"] / $ard[$index]["long"]["index"];
$ard[$index]["long"]["z"] = $ard[$index]["long"]["z"] / $ard[$index]["long"]["index"];
$ard[$index]["long"]["v"] = $ard[$index]["long"]["v"] / $ard[$index]["long"]["index"];
$ard[$index]["middle"]["x"] = $ard[$index]["middle"]["x"] / $ard[$index]["middle"]["index"];
$ard[$index]["middle"]["y"] = $ard[$index]["middle"]["y"] / $ard[$index]["middle"]["index"];
$ard[$index]["middle"]["z"] = $ard[$index]["middle"]["z"] / $ard[$index]["middle"]["index"];
$ard[$index]["middle"]["v"] = $ard[$index]["middle"]["v"] / $ard[$index]["middle"]["index"];
$ard[$index]["short"]["x"] = $ard[$index]["short"]["x"] / $ard[$index]["short"]["index"];
$ard[$index]["short"]["y"] = $ard[$index]["short"]["y"] / $ard[$index]["short"]["index"];
$ard[$index]["short"]["z"] = $ard[$index]["short"]["z"] / $ard[$index]["short"]["index"];
$ard[$index]["short"]["v"] = $ard[$index]["short"]["v"] / $ard[$index]["short"]["index"];
$index++;
}
}
fclose($fp);
}
$outp = "";
$leng = count($ard);
$outp .= mb_convert_encoding("日付,瞬時値(x),瞬時値(y),瞬時値(z),短期(x),短期(y),短期(z),中期(x),中期(y),中期(z),長期(x),長期(y),長期(z)". "\n", "Shift-JIS", "UTF-8");
for($iCount = 0; $iCount < $leng; $iCount++)
{
$date = sprintf("%.3f", $ard[$iCount]["msec"] / 1000.0);
$msec = explode(".", $date);
$strTime = date("Y-m-d H:i:s", $date). ".". $msec[1];
$outp .= mb_convert_encoding($strTime. ","
. $ard[$iCount]["x"]. ",". $ard[$iCount]["y"]. ",". $ard[$iCount]["z"]. ","
. $ard[$iCount]["short"]["x"]. ",". $ard[$iCount]["short"]["y"]. ",". $ard[$iCount]["short"]["z"]. ","
. $ard[$iCount]["middle"]["x"]. ",". $ard[$iCount]["middle"]["y"]. ",". $ard[$iCount]["middle"]["z"]. ","
. $ard[$iCount]["long"]["x"]. ",". $ard[$iCount]["long"]["y"]. ",". $ard[$iCount]["long"]["z"]. "\n"
, "Shift-JIS", "UTF-8");
}
$length = mb_strlen($outp);
header("Content-Type: application/octet-stream");
header("Content-Disposition: inline; filename=\"". mb_convert_encoding($sepPosition[$len - 1], "Shift-JIS", "UTF-8"). "\"");
header("Content-Length: ". $length. "");
header("Pragma:no-cache");
header("Cache-Control:nocache");
print $outp;
}
catch(Exception $exc)
{
print $exc->getMessage();
}
/*
print "<!DOCTYPE html>";
print "<html>";
print "<head>";
print "<meta chaset=\"utf-8\">";
print "<link rel=\"stylesheet\" type=\"text/css\" href=\"./css/style.css\">";
print "<title>";
print "加速度(移動平均)データ";
print "</title>";
print "</head>";
print "<body>";
*/
/*
print "<br />";
print "<form name=\"form_return\" method=\"post\" action=\"". $indexURL. "\" style=\"display:inline\">";
print "<a href=\"javascript:form_return.submit()\">戻る</a>";
print "<input type=\"hidden\" name=\"position\" value=\"". $returnPosition. "\">";
print "</form>";
print " ";
print "<form name=\"move_graph\" method=\"post\" action=\"./graph.php\" style=\"display:inline\">";
print "<a href=\"javascript:move_graph.submit()\">瞬時値を見る</a>";
print "<input type=\"hidden\" name=\"position\" value=\"". $position. "\">";
print "</form>";
print "</body>";
print "</html>";
*/