<?php
if(strpos(exec('tasklist /FI "IMAGENAME eq LabVIEW.exe" /NH'), 'LabVIEW.exe') === false)
exit(" LabVIEW.exe");?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>LabVIEW PHP COM example</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
setInterval(function(){
$("#png").attr('src', 'labview_png.php?rand=' + Math.random());
$("#auto").load(location.href + " #auto");
}, 1000);
});
</script>
</head>
<body>
<?php
echo '_GET val: ';
foreach ($_GET as $key => $value)
echo "$key=$value, ";
echo '<br>', PHP_EOL;
echo '_POST val: ';
foreach ($_POST as $key => $value)
echo "$key=$value, ";
echo '<br>', PHP_EOL;
define('FPStateInfo', ['Invalid', 'Standard', 'Closed', 'Hidden', 'Minimized', 'Maximized']);
define('ExecStateInfo', ['eBad 0 VI has errors; it cannot run', 'eIdle 1 VI is not running, but the VI is in memory.', 'eRunTopLevel 2 VI is running as a top-level VI', 'eRunning 3 VI is running as a subV']);
$obj = new COM('LabVIEW.Application');
$vi = $obj->GetVIReference('C:\Users\Dell\Desktop\LabVIEW Web ActiveX\ActiveX Server Executable _LV2012_NI Verified\Executable as ActiveX Server\ActiveX Server.vi');
echo '<form action="" method="post">';
echo '<input type="button" value="Refresh page" onClick=\'window.location.href=window.location.href\'>', PHP_EOL;
$fpstate = $vi->FPState();
$vistate = $vi->ExecState();
if ($_POST['action']==='run_vi' && $vistate <= 1) {
$vi->Run(true);
} elseif ($_POST['action']==='stop_vi' && $vistate > 1) {
$vi->Abort();
} elseif ($_POST['action']==='open_fp' && $fpstate==2) {
$vi->OpenFrontPanel();
} elseif ($_POST['action']==='close_fp' && $fpstate!=2) {
$vi->CloseFrontPanel();
}
if ($_POST['Count2']) {
$vi->SetControlValue('Count2', $_POST['Count2']);
}
echo '<h3>SetControlValue(\'Count2\'):</h3>', PHP_EOL;
echo '<input onchange="this.form.submit()" type="number" name="Count2" value="', $vi->GetControlValue('Count2'), '">', PHP_EOL;
echo '<div id="auto">';
echo '<h3>AppName / Version:</h3>', PHP_EOL;
echo $obj->AppName(), ' / ', $obj->Version(), '<br>', PHP_EOL;
echo '<h3>ExportedVIs:</h3>', PHP_EOL;
foreach ($obj->ExportedVIs() as $value)
echo $value, '<br>', PHP_EOL;
echo '<h3>FPState:</h3>', PHP_EOL;
$fpstate = $vi->FPState();
echo $fpstate, ', ', FPStateInfo[$fpstate], PHP_EOL;
echo '<button name="action" type="submit" value="open_fp">OpenFrontPanel</button>', PHP_EOL;
echo '<button name="action" type="submit" value="close_fp">CloseFrontPanel</button>', PHP_EOL;
echo '<h3>ExecState:</h3>', PHP_EOL;
$vistate = $vi->ExecState();
if ($vistate > 1) {
echo '<font color="blue">', $vistate, ', ', ExecStateInfo[$vistate], '</font>', PHP_EOL;
} else {
echo $vistate, ', ', ExecStateInfo[$vistate], PHP_EOL;
}
echo '<button name="action" type="submit" value="run_vi">Run VI</button>', PHP_EOL;
echo '<button name="action" type="submit" value="stop_vi">Abort VI</button>', PHP_EOL;
echo '</form>', PHP_EOL;
echo '<h3>GetControlValue(\'Count\') / GetControlValue(\'Count2\'):</h3>', PHP_EOL;
echo $vi->GetControlValue('Count'), ' / ', $vi->GetControlValue('Count2'), PHP_EOL;
echo '<h3>Array1:</h3>', PHP_EOL;
foreach ($vi->GetControlValue('Array1') as $value)
echo $value, '<br>', PHP_EOL;
echo '<h3>PNG data:</h3>', PHP_EOL;
$png_data = $vi->GetControlValue('PNG data');
echo 'PNG size:' , strlen($png_data), '<br>', PHP_EOL;
echo '</div>';
if ($vistate > 1 && $fpstate!=2) {
echo '<img src="labview_png.php" id="png">';
}
echo $vi->SetControlValue('String1', "123\x00555321");
$obj = null;
?>
</body>
</html>