Ho un problema di lettura dei valori che mi arrivano dalla seriale. Nel mio caso a mandarli è Arduino.
Ho creato un semplicissimo programma su Arduino che manda sulla seriale la parola "Prova " + un numero che si incrementa.
Questo è il codice:
Ho poi creato il codice PHP che sfruttando la PHP serial class va a leggere i dati sulla seriale:
Il problema è che quando visualizzo la pagina PHP, invece di vedere un singolo valore tipo
Prova = 1
il risultato "accumula" tutte le righe non precedentemente lette. Ogni volta che faccio un refresh mi ritrovo tutto quello che non avevo letto la volta precedente:
Refresh 1:
Prova = 3119 Prova = 3120 Prova = 3121 Prova = 3122 Prova = 3123 Prova = 3124 Prova = 3125 Prova = 3126 Prova = 3127 Prova = 3128 Prova = 3129 Prova = 3130 Prova = 3131 Prova = 3132
Refresh 2:
Prova = 3133 Prova = 3134 Prova = 3135 Prova = 3136 Prova = 3137 Prova = 3138 Prova = 3139 Prova = 3140 Prova = 3141 Prova = 3142 Prova = 3143 Prova = 3144 Prova = 3145 Prova = 3146 Prova = 3147 Prova = 3148 Prova = 3149 Prova = 3150 Prova = 3151 Prova = 3152 Prova = 3153 Prova = 3154 Prova = 3155 Prova = 3156 Prova = 3157 Prova = 3158 Prova = 3159 Prova = 3160 Prova = 3161 Prova = 3162 Prova = 3163 Prova = 3164 Prova = 3165 Prova = 3166 Prova = 3167 Prova = 3168
Refresh 3:
Prova = 3169 Prova = 3170 Prova = 3171 Prova = 3172 Prova = 3173 Prova = 3174 Prova = 3175 Prova = 3176 Prova = 3177 Prova = 3178 Prova = 3179 Prova = 3180 Prova = 3181 Prova = 3182
Refresh 4:
Prova = 3183
Refresh 5:
Prova = 3184 Prova = 3185
Refresh 6:
Prova = 3186 Prova =
Refresh 7:
3187 Prova = 3188
e così via.
Qualcuno può aiutarmi?
Grazie
Ho creato un semplicissimo programma su Arduino che manda sulla seriale la parola "Prova " + un numero che si incrementa.
Questo è il codice:
Codice:
int cont = 0;
void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);
}
void loop() {
Serial.print("Prova = " );
Serial.println(cont++);
delay(500);
}
Ho poi creato il codice PHP che sfruttando la PHP serial class va a leggere i dati sulla seriale:
Codice:
<?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("/dev/ttyACM0");
// Then we need to open it
$serial->deviceOpen();
// Or to read from
$read = $serial->readPort();
// If you want to change the configuration, the device must be closed
$serial->deviceClose();
echo $read;
?>
Il problema è che quando visualizzo la pagina PHP, invece di vedere un singolo valore tipo
Prova = 1
il risultato "accumula" tutte le righe non precedentemente lette. Ogni volta che faccio un refresh mi ritrovo tutto quello che non avevo letto la volta precedente:
Refresh 1:
Prova = 3119 Prova = 3120 Prova = 3121 Prova = 3122 Prova = 3123 Prova = 3124 Prova = 3125 Prova = 3126 Prova = 3127 Prova = 3128 Prova = 3129 Prova = 3130 Prova = 3131 Prova = 3132
Refresh 2:
Prova = 3133 Prova = 3134 Prova = 3135 Prova = 3136 Prova = 3137 Prova = 3138 Prova = 3139 Prova = 3140 Prova = 3141 Prova = 3142 Prova = 3143 Prova = 3144 Prova = 3145 Prova = 3146 Prova = 3147 Prova = 3148 Prova = 3149 Prova = 3150 Prova = 3151 Prova = 3152 Prova = 3153 Prova = 3154 Prova = 3155 Prova = 3156 Prova = 3157 Prova = 3158 Prova = 3159 Prova = 3160 Prova = 3161 Prova = 3162 Prova = 3163 Prova = 3164 Prova = 3165 Prova = 3166 Prova = 3167 Prova = 3168
Refresh 3:
Prova = 3169 Prova = 3170 Prova = 3171 Prova = 3172 Prova = 3173 Prova = 3174 Prova = 3175 Prova = 3176 Prova = 3177 Prova = 3178 Prova = 3179 Prova = 3180 Prova = 3181 Prova = 3182
Refresh 4:
Prova = 3183
Refresh 5:
Prova = 3184 Prova = 3185
Refresh 6:
Prova = 3186 Prova =
Refresh 7:
3187 Prova = 3188
e così via.
Qualcuno può aiutarmi?
Grazie
Ultima modifica: