bonjour à tous
je me permet de vous solliciter car j'ai un petit soucis avec un prg sous processing.
je reçois des données série venant de plusieurs appareil donc je ne peux par forcement corrigé les erreur de transmition.
J'utilise un filtre qui me permet de trier les données:
String xString2 = myPort2.readStringUntil('\n'); // lecture série jusqu'au saut de ligne
if (xString2 != null) // si la chaîne n'est pas vide
{
xString2 = trim(xString2); // on vire les éventuels espace devant et derrière au cas où...
int in = xString2.indexOf("PTEC");
if (in==0)
{PTEC=xString2.substring(in+5,in+9);}
in = xString2.indexOf("DEMAIN");
if (in==0)
{DEMAIN=xString2.substring(in+7,in+11);}
in = xString2.indexOf("ISOUSC");
if (in==0)
{ISOUSC=int(xString2.substring(in+7,in+9));}
in = xString2.indexOf("IINST");
if (in==0)
{IINST=int(xString2.substring(in+6,in+9));}
in = xString2.indexOf("PAPP");
if (in==0)
{PAPP=int(xString2.substring(in+5,in+10));}
in = xString2.indexOf("BBRHCJB");
if (in==0)
{BBRHCJB=int(xString2.substring(in+8,in+17));}
in = xString2.indexOf("BBRHCJW");
if (in==0)
{BBRHCJW=int(xString2.substring(in+8,in+17));}
in = xString2.indexOf("BBRHCJR");
if (in==0)
{BBRHCJR=int(xString2.substring(in+8,in+17));}
in = xString2.indexOf("BBRHPJB");
if (in==0)
{ BBRHPJB=int(xString2.substring(in+8,in+17));}
in = xString2.indexOf("BBRHPJW");
if (in==0)
{BBRHPJW=int(xString2.substring(in+8,in+17));}
in = xString2.indexOf("BBRHPJR");
if (in==0)
{BBRHPJR=int(xString2.substring(in+8,in+17));}
in = xString2.indexOf("IMAX");
if (in==0)
{IMAX=int(xString2.substring(in+5,in+8));}
}
mon soucis est le suivant, comme je connais le contenu de ce que je cherche, je stock en STRING certaine donnée, et d'autre en INT. mais quand l'appareil qui envoie bug et envoie une lettre à un endroit ou je n'attend que des chiffres, processing plante avec une jolie erreur null point exception.
Résultat arduino planté et plus de chauffage dans la maison.
Alors je voudrais savoir s'il est possible, avant d'utiliser certaine donnée "d'analyser" ce qui arrive de maniére a ce que:
si (donnée reçus==chiffres seulement)
{utilisé les données;}
sinon {jeté les données reçus}
merci d'avance
flo