13. Utilisation du Yocto-MaxiDisplay en Java
}
Attention, le nombre de cycles d'écriture de la mémoire non volatile du module est limité. Passé cette
limite plus rien ne garantit que la sauvegarde des réglages se passera correctement. Cette limite,
liée à la technologie employée par le micro-processeur du module se situe aux alentour de 100000
cycles. Pour résumer vous ne pouvez employer la fonction
100000 fois au cours de la vie du module. Veillez donc à ne pas appeler cette fonction depuis
l'intérieur d'une boucle.
Enumeration des modules
Obtenir la liste des modules connectés se fait à l'aide de la fonction
qui renvoie le premier module trouvé, il suffit ensuite d'appeler la mehode
objet pour trouver les modules suivants, et ce tant que la réponse n'est pas un
petit exemple listant les module connectés
import com.yoctopuce.YoctoAPI.*;
public class
Demo
public static
{
try {
// setup the API to use local VirtualHub
YAPI.RegisterHub("127.0.0.1");
} catch
(YAPI_Exception
System.out.println("Cannot contact VirtualHub on 127.0.0.1 ("
ex.getLocalizedMessage() + ")");
System.out.println("Ensure that the VirtualHub application is
System.exit(1);
}
System.out.println("Device
YModule
module
while
(module
try {
System.out.println(module.get_serialNumber() +
module.get_productName() + ")");
} catch
break;
}
module
}
YAPI.FreeAPI();
}
}
13.4. Gestion des erreurs
Lorsque vous implémentez un programme qui doit interagir avec des modules USB, vous ne pouvez
pas faire abstraction de la gestion des erreurs. Il y aura forcément une occasion où un utilisateur
aura débranché le périphérique, soit avant de lancer le programme, soit même en pleine opération.
La librairie Yoctopuce est prévue pour vous aider à supporter ce genre de comportements, mais
votre code doit néanmoins être fait pour se comporter au mieux pour interpréter les erreurs signalées
par la librairie.
La manière la plus simple de contourner le problème est celle que nous avons employé pour les
petits exemples précédents de ce chapitre: avant d'accéder à un module, on vérifie qu'il est en ligne
avec la méthode
isOnline()
seconde nécessaire à exécuter les lignes de code suivantes. Ce n'est pas parfait, mais ça peut
suffire dans certains cas. Il faut toutefois être conscient qu'on ne peut pas totalement exclure une
erreur se produisant après le
Dans l'API java, le traitement d'erreur est implémenté au moyen d'exceptions. Vous devrez donc
intercepter et traiter correctement ces exceptions si vous souhaitez avoir un projet fiable qui ne
crashera pas des que vous débrancherez un module.
90
{
void
main(String[] args)
ex) {
list");
= YModule.FirstModule();
!= null) {
(YAPI_Exception
ex) {
= module.nextModule();
et on suppose ensuite qu'il va y rester pendant la fraction de
isOnline()
YModule.saveToFlash()
, qui pourrait faire planter le programme.
YModule.yFirstModule()
nextModule()
. Ci-dessous un
null
+
running");
" ("
+
www.yoctopuce.com
que
de cet