PHP で RS-232 デバイスと通信するためにhttp://www.activexperts.com/serial-port-component/ API を使用しています。
その WriteByte() 関数は正常に動作していますが、ReadByte() は NULL (0x00) 16 進値を表示していません。例-> WriteByte(0);
OUTPUT は何もない (NOT EVEN A CHAR)
NULL 値が表示されない理由を教えてください。
<?php
$objComport = new COM("AxSerial.ComPort");
// Good practise: Clear
$objComport->Clear();
$objComport->LogFile = "C:\AxSerial.ComPort.log";
// Windows default: 'C:\Windows\Temp\AxSerial.ComPort.log'
//Form submitted
if (isset($_POST["btnSendCommand"]))
{
$objComport->Device = $_POST['cbDevice'];
$objComport->Baudrate = $_POST['cbBaudrate'];
$objComport->Open();
if ($objComport->LastError == 0)
{
// Set all Read functions (e.g. ReadString) to timeout after a specified number of millisconds
$objComport->ComTimeout = 2000; // Timeout after 1000msecs
$objComport->WriteBytes($_POST['txtCommand']);
$str = "";
Do
{
$str = $objComport->ReadByte(); // < THIS FUNCTION NOT DISPLAYING NULL VALUE
echo $str.'<br>';
if ($objComport->LastError == 0)
$strResponse = $strResponse .$str;
}
While ($str != "");
}
$strResult = $objComport->LastError . ': ' . $objComport->GetErrorDescription($objComport->LastError);
$objComport->Close();
}
?>
これは HTML フォームです:
<form action="index.php" method="post">
<h2>Component:</h2>
<h3>Module: [<?php echo $objComport->Module; ?>]; Build: [<?php echo $objComport->Build; ?>]</h3>
<!-- Command -->
<label for="command">Command:</label>
<p>
<input type="text" id="command" name="txtCommand" value="ATI0" />
</p>
<!-- Com port -->
<label for="Device">Device:</label>
<p>
<select id="Device" name="cbDevice">
<option value="COM1">Com1</option>
<option value="COM2">Com2</option>
<option value="COM3">Com3</option>
<option value="COM4">Com4</option>
<option value="COM5">Com5</option>
<option value="COM6">Com6</option>
<option value="COM7">Com7</option>
<option value="COM8">Com8</option>
<option value="COM11" selected="selected">Com11</option>
</select>
</p>
<!-- Baudrate -->
<label for="baudrate">Baudrate:</label>
<p>
<select id="baudrate" name="cbBaudrate">
<option value="0">Default</option>
<option value="110">110</option>
<option value="300">300</option>
<option value="600">600</option>
<option value="1200">1200</option>
<option value="2400">2400</option>
<option value="4800">4800</option>
<option value="9600" selected="selected">9600</option>
<option value="14400">14400</option>
<option value="19200">19200</option>
<option value="38400">38400</option>
<option value="57600">57600</option>
<option value="64000">64000</option>
<option value="115200">115200</option>
<option value="128000">128000</option>
<option value="256000">256000</option>
</select>
</p>
<!-- Empty row -->
<div class="clearRow"></div>
<!-- List Messages button -->
<div class="clearLabel"></div>
<p>
<input type="submit" name="btnSendCommand" value="Submit Command" />
</p>
<!-- Result -->
<label for="Result" class="Bold">Result:</label>
<p>
<input type="text" id="Result" name="txtResult" class="FullWidth Bold" value="<?php echo $strResult; ?>" />
</p>
<!-- Response -->
<label for="Response">Response:</label>
<p>
<textarea id="Response" name="txtResponse" style="height:100px; overflow:auto;" class="FullWidth" ><?php echo $strResponse; ?></textarea>
</p>
</form>