View Full Version : [PHP] scrivere e leggere da porta seriale RS232
ciao a tutti, se dovessi dire (sicuramente....) alcune cavolate nell'esposizione della domanda perfavore non linciatemi! :D
ma passiamo al problema vero e proprio.
ho un pc linux in rete locale che mi fa da webserver con apache 2 e php installato e funzionante ed ha una comune porta seriale RS232.
sempre nella stessa rete con qualsiasi altro pc, vorrei poter scrivere e leggere sulla seriale del server tramite un'applicazione php.
ad esempio:
se premo il bottone A scrivo "00010010"
se premo il bottone B scrivo "11100101"
il mio problema è effettivamente se è possibile realizzare questo sistema.
vi ringrazio anticipatamente! ;)
ciao ciao :)
ilsensine
04-04-2008, 18:52
Dovresti poter leggere/scrivere ttyS* come qualsiasi file. setserial può esserti utile per configurare la porta (velocità, ecc.)
Dovresti poter leggere/scrivere ttyS* come qualsiasi file. setserial può esserti utile per configurare la porta (velocità, ecc.)
ok magari domani pomeriggio inizio a fare qualche prova...:)
grazie per l'informazione! ;)
ciao ciao
Dovresti poter leggere/scrivere ttyS* come qualsiasi file. setserial può esserti utile per configurare la porta (velocità, ecc.)
Io credo che servano un bel po' di autorizzazioni per farlo...
ilsensine
05-04-2008, 09:23
Io credo che servano un bel po' di autorizzazioni per farlo...
dovrebbe essere suficiente aggiungere l'utente www-data al gruppo che può scrivere su ttyS*
Io credo che servano un bel po' di autorizzazioni per farlo...
e safe-mode disabilitato :)
ma c'è qualche funzione (uso gentoo... mi riferisco alle USE flag) in particolare da abilitare in apache2 o php per poter usare la porta seriale? :)
ilsensine
05-04-2008, 20:30
Una volta sistemati i diritti di accesso, puoi accederci come un file normale.
C'è anche chi ha fatto delle classi apposite, v. ad es. qui:
http://www.communitymx.com/content/article.cfm?cid=8658A
si avevo già visto quelle classi infatti stavo utilizzando proprio quelle... :)
cmq ora funziona tutto.
in linux occorre aggiungere l'utente apache al gruppo uucp che è appunto il gruppo proprietario della porta seriale.
per ora ho provato in rete locale e tutto va alla grande.. :)
il passo successivo sarà creare una pagina di login in cui in base all'utente si attribuiscano vari permessi di lettura, scrittura e lettura/scrittura sulla seriale.
ma questo verrà dopo.. :D
grazie a tutti quelli che hanno contribuito e che mi hanno dato una mano! ;) :)
buona domenica! :cool:
ciao ciao
ragazzi c'è un problemino di cui non mi ero accorto... ovvero : riesco a scrivere sulla seriale ma non riesco a leggere.
qualcuno saprebbe darmi una mano?
sto utilizzando le classi phpserial descritte qualche post fa...
grazie! :)
per rendere più chiara la cosa...
per scrivere sulla seriale utilizzo questo metodo e tutto funziona alla grande:
<?php
$filename = "/dev/ttyS0";
$fd = fopen($filename, "r+");
fwrite ($fd, "stringa da scrivere");
fclose($fd);
?>
per leggere invece sto provando in questo modo ma senza alcun risultato:
<?php
$filename = "/dev/ttyS0";
$fd = fopen($filename, "r");
$contents = fread ($fd, 1);
echo $contents;
fclose($fd);
?>
ho delle classi in java per la lettura/scrittura su seriale e quelle funzionano perfettamente quindi penso che il problema non sia della porta.
qualche idea in merito?
grazie a tutti.
ciao ciao ;)
io proverei a debuggare un poco il codice:
<?php
$filename = "/dev/ttyS0";
$fd = fopen($filename, "r");
$contents = fread ($fd, 1);
if ($contents != FALSE)
echo $contents;
else
echo "errore lettura";
fclose($fd);
?>
ho risolto...
praticamente non riuscivo a leggere perchè non inviavo il carattere 13 equivalente all'invio e che quindi poneva fine alla lettura...
grazie a tutti per l'aiuto! :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.