Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20

Discussione: Daemon in PHP

  1. #11
    Originariamente inviato da boots
    Pensandoci meglio, credo che così sia meglio:

    Codice PHP:
    $xml = new DOMDocument();
    $xml->load('/xml/data.xml');
    $node $xml->getElementById('posti') ;
    if(!
    $node) die('Errore lettura file')
    while (
    1){    
        
    $node->nodeValue // il valore letto dalla porta;
        
    $xml->save('/xml/data.xml');

    ciao! scusami se ti disturbo ancora, spero sia l'ultimo post che metto o almeno il penultimo..
    guardandolo così con un analisi generica, secondo te potrebbe funzionare? perchè non vorrei mai mandare in esecuzione un ciclo infinito che mi crea problemi magari anche gravi..

    Codice PHP:
    <?php 
    set_time_limit
    (0);
    include 
    "php_serial.class.php";
      
    $xml=new DOMDocument();  

    $serial = new phpSerial(); 
    $serial->deviceSet("COM3"); 
    $serial->confBaudRate(9600); 
    $serial->confParity("none"); 
    $serial->confCharacterLength(8); 
    $serial->confStopBits(1); 
    $serial->confFlowControl("none");

            
    $xml->load('data.xml');
         
    $node=$xml->getElementById('posti');

         if(!
    $node){die('Errore lettura file');}else{     
            while(
    true)     {
         
    $serial->deviceOpen();
            
    $posti $serial->readPort();
             
    $node->nodeValue=$posti;
             
    $xml->save("data.xml");     //controllo echo $node->nodeValue();
          
    sleep(5);
          
    $serial->deviceClose();
         }}
     
    ?>
    questo pezzo mi crea un dubbio:

    $node->nodeValue=$posti;
    $xml->save("data.xml");

    in pratica qui io vado a dare a $node il valore della variabile letta da seriale e nella seconda operazione cosa va a fare? salva $xml in data.xml? ma non dovrei salvare in data.xml il valore $node?
    non ci arrivo
    sperando che la classe della seriale funzioni, perchè ho letto su alcuni siti che non funziona e su altri che non crea problemi....
    altrimenti è possibile fare questo cacchio di demone con c++ o java? è forse più semplice?

  2. #12
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    In linea di massima, il tuo codice dovrebbe andare. L'unica cosa è che farei
    Codice PHP:
    $xml->save("data.xml");     //controllo echo $node->nodeValue(); 
    $serial->deviceClose(); 
    sleep(5); 
    DOMDocument::save(), semplicemente salva su file il documento xml in memoria:
    $xml è l'xml che hai letto. Con setValue vai ad aggiornare il nodo. Save risalva tutto il documento in memoria (compreso il nuovo valore).

    Il demone puoi farlo con qualsiasi linguaggio vuoi. Io ho lavorato con la porta seriale in C con la libreria termios (ma sempre sotto linux)

    Piccola nota:
    Se usi il file come mezzo di scambio con la pagina php, valuta il problema della concorrenza nell accesso al file. (Se lo apre il demone per scrivere e nello stesso momento lo cerca di leggere lo script php, quest'ultimo potrebbe non riuscire. e viceversa).

    Una soluzione più elegante sarebbe quella di usare un socket in ascolto su un thread del demone .
    Oppure usare un db a posto del file xml

  3. #13
    Originariamente inviato da boots
    In linea di massima, il tuo codice dovrebbe andare. L'unica cosa è che farei
    Codice PHP:
    $xml->save("data.xml");     //controllo echo $node->nodeValue(); 
    $serial->deviceClose(); 
    sleep(5); 
    DOMDocument::save(), semplicemente salva su file il documento xml in memoria:
    $xml è l'xml che hai letto. Con setValue vai ad aggiornare il nodo. Save risalva tutto il documento in memoria (compreso il nuovo valore).

    Il demone puoi farlo con qualsiasi linguaggio vuoi. Io ho lavorato con la porta seriale in C con la libreria termios (ma sempre sotto linux)

    Piccola nota:
    Se usi il file come mezzo di scambio con la pagina php, valuta il problema della concorrenza nell accesso al file. (Se lo apre il demone per scrivere e nello stesso momento lo cerca di leggere lo script php, quest'ultimo potrebbe non riuscire. e viceversa).

    Una soluzione più elegante sarebbe quella di usare un socket in ascolto su un thread del demone .
    Oppure usare un db a posto del file xml
    Allora, ho provato a farlo andare ma non mi funziona, il file xml che risulta ogni volta ha il codice e il valore dell'id posti è vuoto.....penso sia la classe seriale che non va.

    perciò sempre per il solito fatto che lunedì ho terza prova e giovedì l'orale e devo ripassare, vorrei finirlo entro oggi se posso, potresti darmi indicazioni su come farlo in C o C++ o Java o un qualsiasi altro linguaggio in modo che sia una cosa non troppo intricata?

    tirando le conclusioni ho bisogno solamente del pezzo in C che legge da una seriale e salva su un dato e quel dato venga salvato su un database a questo punto.
    con php sarei anche capace di gestire il db, ma C è da un botto di tempo che non lo uso...
    giuro che sto tirando eresie verso me stessa, scusami del continuo disturbo..

  4. #14
    Originariamente inviato da Chiara_Brus
    Allora, ho provato a farlo andare ma non mi funziona, il file xml che risulta ogni volta ha il codice e il valore dell'id posti è vuoto.....penso sia la classe seriale che non va.

    perciò sempre per il solito fatto che lunedì ho terza prova e giovedì l'orale e devo ripassare, vorrei finirlo entro oggi se posso, potresti darmi indicazioni su come farlo in C o C++ o Java o un qualsiasi altro linguaggio in modo che sia una cosa non troppo intricata?

    tirando le conclusioni ho bisogno solamente del pezzo in C che legge da una seriale e salva su un dato e quel dato venga salvato su un database a questo punto.
    con php sarei anche capace di gestire il db, ma C è da un botto di tempo che non lo uso...
    giuro che sto tirando eresie verso me stessa, scusami del continuo disturbo..

    Warning: Reading serial port is not implemented for Windows in C:\xampp\htdocs\SitoWeb\php_serial.class.php on line 503

    riscontro del php...ergo serial non funziona come ponsavo..

  5. #15
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Se vuoi usare un db, ti consiglio java.
    Rispetto a php, però, devi scrivere più codice.

    Per leggere dalla seriale prova questo
    jssc

    Per connetterti ad un db, devi prima scaricarti il driver. Se usi mysql segui questa guida
    java - Mysql

  6. #16
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da Chiara_Brus
    mi sto seriamente convertendo all'open source..win8 ha abbastanza rotto le palle, anche con la configurazione del bluetooth.. -_-" sembra fatto apposta a rendere difficile la vita per qualsiasi cosa.
    Non vedo il problema con Windows qui però. Non è colpa sua che questa libreria non supporta la lettura seriale.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  7. #17
    Originariamente inviato da boots
    Se vuoi usare un db, ti consiglio java.
    Rispetto a php, però, devi scrivere più codice.

    Per leggere dalla seriale prova questo
    jssc

    Per connetterti ad un db, devi prima scaricarti il driver. Se usi mysql segui questa guida
    java - Mysql
    Grazie, grazie, grazie davvero

  8. #18
    Originariamente inviato da neroux
    Non vedo il problema con Windows qui però. Non è colpa sua che questa libreria non supporta la lettura seriale.
    è colpa di Windows perchè non ci sono altre librerie che funzionano per leggere da seriale in php, se una persona ne ha bisogno senza dover installare altri IDE e impienare il pc di file che utilizzerà una volta nella sua vita e vuole utilizzare solo php non può, quindi è colpa del sistema operativo, dato che da tutte le altre parti sembra implementabile e neanche troppo complicato.
    Non è neanche l'unica cosa che mi ha fatto ricredere su win8, dato che di problemi ne ha molti altri a parte questo. La versione più stabile è e rimarrà sempre l'XP, a parer mio.

  9. #19
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da Chiara_Brus
    è colpa di Windows perchè non ci sono altre librerie che funzionano per leggere da seriale in php, se una persona ne ha bisogno senza dover installare altri IDE e impienare il pc di file che utilizzerà una volta nella sua vita e vuole utilizzare solo php non può, quindi è colpa del sistema operativo, dato che da tutte le altre parti sembra implementabile e neanche troppo complicato.
    E' la colpa di Windows perché gli sviluppatori di questa libreria non hanno voglia o sono troppo pigri di implementare la propria funzionalità?

    Punto di vista interessante

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  10. #20
    Originariamente inviato da neroux
    E' la colpa di Windows perché gli sviluppatori di questa libreria non hanno voglia o sono troppo pigri di implementare la propria funzionalità?

    Punto di vista interessante
    Sai, se fosse solo per la libreria considererei il mio punto di vista stupido
    non fermiamoci su queste cose, alla fine in Italia da quanto so c'è ancora la libertà di pensiero.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.