Maison > développement back-end > Problème PHP > Comment utiliser la communication série avec PHP

Comment utiliser la communication série avec PHP

醉折花枝作酒筹
Libérer: 2023-03-11 17:36:01
avant
4572 Les gens l'ont consulté

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.

Comment utiliser la communication série avec PHP

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(&#39;dio&#39; =>
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″;
}
?>
Copier après la connexion

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;
}
Copier après la connexion

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( &#39; COM2 &#39; );
$seria --> deviceOpen();
$serial -> sendMessage( &#39; Sending a message to the port! &#39; );
$serial -> deviceClose();
?>
Copier après la connexion

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal