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
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
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
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de déterminer numéro de port COM de votre dispositif USB via certains de commande externe appelé creux de PHP shell_exec().
Pour Windows, vous pouvez essayer ce petit outil:
http://todbot.com/blog/2012/03/02/listcomports-windows-command-line-tool-for-usb-to-serial/
https://github.com/todbot/usbSearch/
Après l'appel de cet outil via shell_exec(), vous devez analyser la sortie (RegExp) et exactes numéro de port COM en fonction de l'entreprise/nom du périphérique.
OriginalL'auteur mikikg