PHP pour lecture et écriture port série? [RESOLU]

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP pour lecture et écriture port série? [RESOLU]

Re: PHP pour lecture et écriture port série?

par Elderion82 » 25 août 2011, 09:47

Par contre il faut savoir qu'a partir d'un serveur web il ne sera pas possible de lire en continue (pas de possibilités de dialogue sur ce port). Pourquoi ? parce que la lecture ne se fera qu'au lancement du script, donc sauf si le php.ini est modifié pour permettre une time_out beaucoup plus long se ne sera pas possible(sachant qu'il ne sera pas possible de répondre. Avec beaucoup d'ajax c'est surement réalisable, car il va falloir une machinerie qui fait tourner en boucle les script serveur et ce n'est possible que depuis le navigateur.
Pour faire le parallèle avec un autre contexte, on peut monter un serveur COMET en PHP pour faire du websocket
L'idée est de monter un démon en PHP qui écoute sur un port spécifique et sur lequel on peut à la fois écrire et écouter.
Mais c'est une communicatio par socket, c'est pas parilen COM je crois.
Pour ma part je dois tester si PHP est capable d'écoute des signaux venant un port COM virtuel pour le Bluetooth...
donc nous avons la meme problematique.
J'ai trouvé ca : http://www.easyvitools.com/phpserial/index.html
et ca http://stackoverflow.com/questions/3691 ... t-spp-com3
si ca peut vous aider.

Re: PHP pour lecture et écriture port série? [RESOLU]

par moogli » 22 avr. 2011, 01:59

Salut,
De possible reponse a tester ont étés données dans les differents messages a savoir qu'il n'existe pas de solution native en php et qu'à priori un mélange de language serait une solution (lire les messages de xtg).

@+

Re: PHP pour lecture et écriture port série?

par amouna11 » 21 avr. 2011, 19:22

d'après l'exemple
<?php
include "php_serial.class.php";
// Let's start the class
$serial = new phpSerial;
// First we must specify the device. This works on both linux and windows (if
// your linux serial device is /dev/ttyS0 for COM1, etc)
$serial->deviceSet("COM1");
// Then we need to open it
$serial->deviceOpen();
// To write into
$serial->sendMessage("Hello !");
// Or to read from
$read = $serial->readPort();



// If you want to change the configuration, the device must be closed
$serial->deviceClose();
// We can change the baud rate
$serial->confBaudRate(2400);
// etc...
?>
c'est assez clair ? perso j'ai pas de port série et pas matos pouvant récupérer les trames donc je ne peut tester, mais le principe est la.

d'après ce le script indique il permet la lecture / écriture sur un port série à différente vitesses.

Par contre il faut savoir qu'a partir d'un serveur web il ne sera pas possible de lire en continue (pas de possibilités de dialogue sur ce port). Pourquoi ? parce que la lecture ne se fera qu'au lancement du script, donc sauf si le php.ini est modifié pour permettre une time_out beaucoup plus long se ne sera pas possible(sachant qu'il ne sera pas possible de répondre. Avec beaucoup d'ajax c'est surement réalisable, car il va falloir une machinerie qui fait tourner en boucle les script serveur et ce n'est possible que depuis le navigateur.

par contre avec un programme complet en php (sans server web, avec gtk etc peut être mais la je n'ai étudier la chose (sur le principe comme dans les autre langages à part de flag / interruptions générer lecture ou écriture en continu).


@+

Bjr,
SVP je veux savoir comment je peux lire un fichier text ligne par ligne et d'ecrire(executer) chaque ligne dans le port série de pc avec la langage php.
Merci de me répondre

Re: PHP pour lecture et écriture port série?

par lio59 » 03 févr. 2011, 19:13

Ok, merci à vous, je vais voir ce que je peux faire...
à bientôt
lio59

Re: PHP pour lecture et écriture port série?

par xTG » 02 févr. 2011, 13:07

Si JEE permet d'utiliser des librairies spécifiques à Java il pourrait faire tout le travail à lui tout seul sans avoir à passer par un buffer txt.
Mais je n'en ai jamais fait donc je ne saurais te dire. :)

Re: PHP pour lecture et écriture port série?

par lio59 » 02 févr. 2011, 11:42

Merci xTG pour votre explication...
Donc, si je comprends bien php qui travaille avec java qui est l'interface entre php et le port série. Bon, voilà les outils qu'il me faut...
JEE ferait le même travail que php et jav?
Après j'arrête..
Mais de toute façon il faut d'abord maîtriser java avant de s'attaquer à JEE...
Cordialement
lio59

Re: PHP pour lecture et écriture port série?

par xTG » 02 févr. 2011, 00:35

Non non je parlais bien de Java et non de javascript. ^^

Le but est d'utiliser deux fichiers servant de relai entre les deux programmes.
Tu aurais le programme Java (ou C) qui communiquerait avec le port série, et le programme PHP qui servirait d'interface utilisateur.

Textbox du fichier PHP -> fichier txt "envoi" -> programme C/Java lit le fichier txt -> programme C/Java envoie sur le port série
programme C/Java lit le port série -> programme C/Java écrit dans le fichier txt "reçoit" -> programme PHP lit le fichier txt (refresh javascript ou bien meta ou encore au clic de lien)

Donc on ne couple pas les deux langages, on les fait travailler sur les mêmes fichiers afin d'assurer un relai.
On pourrait avoir n'importe quoi aux deux bouts du fichier, un programme en Python ou autre par exemple. Le programme PHP n'a pas besoin de savoir qui insère des données dans le fichier ou qui va les récupérer.

Re: PHP pour lecture et écriture port série?

par lio59 » 01 févr. 2011, 23:34

Merci à vous,

Alors parlons du cahier des charges... y'en a pas vraiment, je fais cela pour moi... Je souhaiterai réaliser une interface de type "web" à ouvrir avec "filezilla" par exemple. Réaliser des menus et pouvoir appuyer sur un bouton et avoir une action à l'extérieure (une del qui s'allume). Avoir une sorte de textbox recevant les informatiosn de l'extérieure (une température par exemple)... Voilà...
Je me demandais si le code "php serial class" était juste pour une lecture du port série, c'est ce que le concepteur écrit sur son site...
Je me suis tourné vers php, tout simplement parce que ce langage m'est un peu plus familier. Aussi, après quelques recherches, effectivement, il semblerait que le langage java ou C seraient mieux adaptés.
Au risque de débordé du sujet, l'idée serait par exemple
- d'écrire la partie communication avec le port série en java?
- que les données entrantes et sortantes aillent vers php via 2 fichiers de type "texte"?
- Il est donc possible de coupler du java avec du php?
Vous ne parlez pas d'un javascrip? Je sais bien que ces 2 langages n'ont pas grand chose à voir...

Qu'en pensez vous et que choisiriez vous comme solution?

Merci
cordialement
lio59

Re: PHP pour lecture et écriture port série?

par xTG » 01 févr. 2011, 15:28

Je trouve assez bizarre de se tourner vers PHP pour effectuer un tel traitement.
Mais si c'est dans le cahier des charges soit.

Mais pour simplifier le transfert n'as-tu pas permission de passer par un autre langage ?
Par exemple du C ou du Java (ça reste assez multi-plateforme et on manipule les ports série sans soucis) couplé à deux fichiers textes servant de buffer d'entrée et de sortie ?
Ton application PHP n'aurait plus qu'à lire ou à remplir le fichier correspondant pour dialoguer avec le programme en C ou Java qui correspondrait avec le matériel.

Re: PHP pour lecture et écriture port série?

par moogli » 01 févr. 2011, 15:19

d'après l'exemple
<?php
include "php_serial.class.php";
// Let's start the class
$serial = new phpSerial;
// First we must specify the device. This works on both linux and windows (if
// your linux serial device is /dev/ttyS0 for COM1, etc)
$serial->deviceSet("COM1");
// Then we need to open it
$serial->deviceOpen();
// To write into
$serial->sendMessage("Hello !");
// Or to read from
$read = $serial->readPort();
// If you want to change the configuration, the device must be closed
$serial->deviceClose();
// We can change the baud rate
$serial->confBaudRate(2400);
// etc...
?>
c'est assez clair ? perso j'ai pas de port série et pas matos pouvant récupérer les trames donc je ne peut tester, mais le principe est la.

d'après ce le script indique il permet la lecture / écriture sur un port série à différente vitesses.

Par contre il faut savoir qu'a partir d'un serveur web il ne sera pas possible de lire en continue (pas de possibilités de dialogue sur ce port). Pourquoi ? parce que la lecture ne se fera qu'au lancement du script, donc sauf si le php.ini est modifié pour permettre une time_out beaucoup plus long se ne sera pas possible(sachant qu'il ne sera pas possible de répondre. Avec beaucoup d'ajax c'est surement réalisable, car il va falloir une machinerie qui fait tourner en boucle les script serveur et ce n'est possible que depuis le navigateur.

par contre avec un programme complet en php (sans server web, avec gtk etc peut être mais la je n'ai étudier la chose (sur le principe comme dans les autre langages à part de flag / interruptions générer lecture ou écriture en continu).


@+

Re: PHP pour lecture et écriture port série?

par lio59 » 01 févr. 2011, 09:39

Merci pour votre réponse,

Sous mac, je n'ai pas de message d'erreur, juste une page blanche après avoir cliqué sur le lien d'ouverture du port... Je suppose alors que cela fonctionne...

Sous wampserver 2, j'ai une erreur. Effectivement, cela doit provenir de ma configuration. J'ai bien mis un dossier par site sous c:/wamp/www

Lorsque vous dites :"je ne sais pas s'il existe des fonctions native" cela veut dire qu'il n'existerait pas de commandes permettant de rapatrier ou d'envoyer des données vers le port série? Bien évidemment cette question me taraude déjà... Mais avant cela, l'appel d'une classe php http://www.phpclasses.org/package/3679- ... -port.html fonctionne-t-elle en lecture / écriture?
Vous allez me répondre :"Y'a qu'à vérifier"
Oui, mais là se pose d'autres questions;.. à savoir justement quelle commande utiliser pour placer une chaîne de caractères dans une variable, bon cela se fait bien, mais surtout comment l'envoyer sur le port série? Mais cela fera, peut être, l'objet d'un autre post...

Merci
Bonne journée
lio59

Re: PHP pour lecture et écriture port série?

par moogli » 01 févr. 2011, 02:43

salut,

pour ce qui est de l'os de fonctionnement, d'après le code, c'est que sur linux et windows, donc sous mac il doit y avoir un message d'erreur (Host OS is neither linux nor windows, unable tu run de type E_USER_ERROR, suivant la conf de php ce n'est pas afficher, voir le paramètre error_reporting à mettre en E_ALL).

la classe utilise le shell pour "piloter" le port série, je ne sais pas s'il existe des fonctions native pour cela je n'ai pas regarder.


Pour ce qui est du message d'erreur je pense que le problème soit d'un mauvais lien soit d'un problème de configuration (par défaut http://localhost/lerepertoirequisetrouvesouswww/


@+

PHP pour lecture et écriture port série? [RESOLU]

par lio59 » 01 févr. 2011, 01:27

Bonsoir à tous,

Je souhaite réaliser une interface web en local (wampserver2) qui puisse lire ce que le microcontrôleur envoie sur le port série...
Alors, je me suis tourné vers php. Pourquoi, il me semble un peu moins contraignant à installer, car il m'arrive d'être sur différents ordinateurs...
vb.net est la solution la plus exploitée...
Alors, voilà, j'ai lu qu'avec du php ce n'était pas terrible car cela posait des problèmes de sécurité car il faut exécuter un programme en local, oui d'accord... confirmez-vous? MAis bon, ce n'est pas pour installer sur un serveur web, c'est pour tourner en local...

Ensuite, j'ai trouvé ce code à cette adresse http://www.communitymx.com/content/arti ... &cid=8658A

Ce code ouvre uniquement la communication avec le port série, confirmez-vous?
Il est donc possible de lire et écrire sur le port série?

Lorsque je fait tourner ce code sur mon mac avec MAMP, lors du clic sur un des 2 liens, j'ai une page blanche, cela doit donc fonctionner, non?
Sur windows xp pro pack sp3 avec wampserver2, il me met un message d'erreur "You don't have permission to access /monsite/< on this server."

J'ai 1 autre site qui tourne sur wampserver2

Quelqu'un pourrait m'éclairer?

Merci à vous
Cordialement
lio59