Gestion Des Erreurs - Yoctopuce Yocto-Meteo Mode D'emploi

Table des Matières

Publicité

NSLog(@"Invalid name
usage(argv[0]);
}
module.logicalName
[module saveToFlash];
}
NSLog(@"Current name:
} else {
NSLog(@"%@ not connected (check identification and USB
serial_or_name);
}
[YAPI
FreeAPI];
}
return
0;
}
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
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
le premier module trouvé, il suffit ensuite d'appeler la fonction
trouver les modules suivants, et ce tant que la réponse n'est pas un
exemple listant les module connectés
#import <Foundation/Foundation.h>
#import "yocto_api.h"
int
main
(int
argc,
{
NSError
*error;
@autoreleasepool {
// Setup the API to use local USB devices
if([YAPI
RegisterHub:@"usb"
NSLog(@"RegisterHub error:
return
1;
}
NSLog(@"Device
YModule
*module
while
(module
NSLog(@"%@
%@", module.serialNumber, module.productName);
module
=
[module nextModule];
}
[YAPI
FreeAPI];
}
return
0;
}

10.3. 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
www.yoctopuce.com
(%@)\n", newname);
=
newname;
%@\n", module.logicalName);
const char
* argv[])
:&error] != YAPI_SUCCESS) {
%@\n", [error localizedDescription]);
list:\n");
=
[YModule
FirstModule];
!= nil) {
10. Utilisation du Yocto-Meteo en Objective-C
cable)\n",
que 100000 fois au
saveToFlash
yFirstModule()
de cet objet pour
nextModule()
. Ci-dessous un petit
NULL
qui renvoie
71

Publicité

Table des Matières
loading

Table des Matières