La communication du port série sur windows avec php

Je travaille avec une application qui se connecte à Huawei 3G Modem à l'aide de ports COM en php. Voici mon 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;
        }
    }
?>

Cela fonctionne bien avec moi. Maintenant, le défi est à chaque fois que je connecte le nouveau port usb de la COM était en train de changer pour mon modem. Est-il un autre moyen de détecter automatiquement l'appareil avec php sous windows ?

J'ai joint mon modem usb à COM13. Après le changement que dans votre code que j'obtiens. Warning: fopen(COM13) [function.fopen]: failed to open stream: No such file or directory in C:\xampp\htdocs\sms\index.php sur la ligne 6 Failed opening com por
Vérifiez la météo à la mode est disponible dans COM13
L'erreur est en quelque sorte disparu, mais le message n'est pas envoyé. Exactement ce qui est la commande pour l'envoi d'un message à un numéro particulier? Aussi pouvons-nous masque le nombre ?
vous ne pouvez pas masquer le nombre. Voir ce http://developer.nokia.com/Community/Wiki/Using_AT_commands_to_send_and_read_SMS vous savez peut-être comment faire pour envoyer le message au numéro en particulier.

OriginalL'auteur Radhakrishna Rayidi | 2013-05-31