10 1wire датчиков и processing
- Войдите на сайт для отправки комментариев
Чт, 06/08/2015 - 00:11
Собираю побайтово, с 10ти датчиков пакет и отправляю в процессинг, с нуля всё работает, но если закрыть программу и занаво запустить, со стороны ардуины сыпется куча пакетов и потом начинает читать с середины пакета. Если закрыть софтину, открыть терминал, принять весь этот мусор, то при повторном запуске программы, всё работает.
ардуино:
if (Serial.read()=='c'){
Serial.flush();
Serial.print(124);//метка начала пакета
for (int i=0; i<10; i++){
delay(50);
if (temproom[i] < 10)Serial.print('0');//массив с данными
Serial.print (temproom[i], 0);
процессинг:
myPort.write('c');//комманда отправки
if ( myPort.available() > 0) {
val = (myPort.read());
login[i]=val-48; //массив куда собираются данные
i++;
if (i>22){
i=0;
}
}
вот так работает:
ардуино
if (Serial.available()){ if (Serial.read()=='c'){ Serial.flush(); Serial.print(124); for (int i=0; i<10; i++){ if (temproom[i] < 10)Serial.print('0'); Serial.print (temproom[i], 0); } } else Serial.flush();процессинг:
if (opros == true){ myPort.write('c'); opros = false; if ( myPort.available() > 0) { for (int i = 0; i<22; i++){ val = (myPort.read()); login[i]=val-48; } } } opros = true; myPort.clear();