PHP communique occasionnellement directement avec le port série dans certaines applications et doit communiquer avec les données sur les interfaces rs232 et rs485. En recherchant de nombreuses solutions sur Internet, de nombreux problèmes surviennent. Voici un résumé des méthodes de communication php et port série.
Il existe essentiellement deux façons pour PHP de communiquer avec le port série
1 Développez Dio via PHP.
Téléchargez l'extension dio : http://www.cyberspice.org.uk/downloads/dio-0.0.4rc3.tgz
Ouvrez l'extension dio dans php.ini.
Une fois Dio allumé, la communication peut être effectuée via des fonctions telles que dio_open dio_read. Mais dio n'est que sous Linux par défaut. Il semble que pecl ait également compilé php_dio.dll, mais lorsque je l'ai testé sous Win, il n'a pas pu être utilisé normalement. Peut-être que ma version de PHP est trop élevée (5.3.3).
Si l'extension dio peut être ouverte, il existe naturellement de nombreux exemples sur Internet
<?php $c = stream_context_create(array('dio' => array(‘data_rate’ => 115200, ‘data_bits’ => 8, ‘stop_bits’ => 1, ‘parity’ => 0, ‘is_canonical’ => 1))); if (PATH_SEPARATOR != “;”) { $filename = “dio.serial:///dev/ttyS0″; } else { $filename = “dio.serial://COM1″; } ?>
2.Extension PHP_SER
Il s'agit d'une extension tierce qui peut être utilisée normalement sur php5.3.3. relativement stable et fournit une communication par flux unique et une communication asynchrone. Concernant la communication par flux sur un octet, j'ai spécifiquement consulté l'auteur et découvert que le flux de données peut être lu en boucle.
Il convient de noter que les données de ser_write() sont de type caractère, mais les données de ser_read() sont décimales. Par conséquent, il est préférable de le convertir en hexadécimal lors de l'envoi, puis de le convertir de décimal en hexadécimal pour une utilisation normale après réception.
De plus, php_ser est une extension tierce et l'auteur facture des frais. La version gratuite n'a aucune restriction de fonction, sauf que le nombre d'octets envoyés et reçus à la fois ne peut pas dépasser 1024 octets.
function x_get_cgqbh() { $str = ‘at+ver?’; $str = hexToStr($str); ser_open( “COM1″, 9600, 8, “None”, “1″, “None” ); if (ser_isopen()) { return “opened, post data ……”; }else{ return false; } ser_write(“$str”); sleep(1); $str = ser_read(); ser_close(); return $str; }
Adresse php_ser : oublié, remplissez-la plus tard
============================
Vous souhaitez le contrôler par écrire un langage PHP Tel que des périphériques vidéo, audio ou informatiques à port série et parallèle, cela peut maintenant devenir une réalité ? Il peut être facilement implémenté à l’aide du projet open source php-serial.
Par exemple, il vous suffit d'appeler la méthode deviceSet() et de transmettre le nom du port série. Vous pouvez ensuite utiliser des méthodes simples de lecture et d'écriture, telles que :
#p_code img { border: 0px none ; } <? deviceSet( ' COM2 ' ); $seria --> deviceOpen(); $serial -> sendMessage( ' Sending a message to the port! ' ); $serial -> deviceClose(); ?>
Apprentissage recommandé : Tutoriel vidéo php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!