I'm working with an application which connects to Huawei 3G Modem using COM ports in php. Here is my code:
<?php
include("sms.php");
$sms = new sms();
$device = "COM11";
exec("mode $device BAUD=9600 PARITY=n DATA=8 STOP=1 xon=off octs=off rts=on");
$comport = fopen($device, "r+b");
if ($comport === false){
die("Failed opening com port<br/>");
}else{
echo "Com Port Open<br/>";
}
//Set non-blocking mode for writing
//stream_set_blocking($comport, 0);
$sms->_blocking($comport,0);
$atcmd = "AT\r";
fputs($comport, $atcmd);
sleep(5); // Sleep for response from the modem
// Set blocking mode for reading
$sms->_blocking($comport,1);
$res = fgets($comport, 4017);
if(trim($res) == "OK"){
echo "Modem supports AT Commands<br/>";
}else{
echo "Error response: ".$res;
}
fclose($comport);
?>
sms.php:
<?php
class sms{
function _blocking($device,$mode){
stream_set_blocking($device, $mode);
return true;
}
}
?>
This is working fine with me. Now challenge is every time i connect to the new usb port the COM was changing for my modem. Is there any other way to detect the device automatically with php in windows ?
Open a console sessionUsing PuTTY or other terminal emulator, select "Serial" as the connection type and change the "Serial line" to match the COM port noted earlier. The serial console speed is typically 9600. Click "Open" to connect to the console.
USB has become the preferred serial communication protocol between digital products like computers and peripheral devices as it can transmit data across longer cables and offers higher transmission rates. UART, however, is still is used today for certain applications and is often seen in older devices.
You need to determinate COM port number of your USB device via some external command called trough PHP's shell_exec().
For Windows you can try this small tool:
http://todbot.com/blog/2012/03/02/listcomports-windows-command-line-tool-for-usb-to-serial/
https://github.com/todbot/usbSearch/
After you call this tool via shell_exec(), you need to parse it's output (RegExp) and look for exact COM port number based on company/device name.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With