#include "yocto_api.h"
using namespace std;
void usage(const char *exe)
{
cerr << "usage: " << exe << " <serial> <newLogicalName>" << endl;
exit(1);
}
int main(int argc, const char * argv[])
{
string
errmsg;
// Setup the API to use local USB devices
if(yRegisterHub("usb", errmsg) != YAPI_SUCCESS) {
cerr << "RegisterHub error: " << errmsg << endl;
return 1;
}
if(argc < 2)
usage(argv[0]);
YModule *module = yFindModule(argv[1]);
if (module->isOnline()) {
if (argc >= 3){
string newname =
if (!yCheckLogicalName(newname)){
cerr << "Invalid name (" << newname << ")" << endl;
usage(argv[0]);
}
module->set_logicalName(newname);
module->saveToFlash();
}
cout << "Current name: " << module->get_logicalName() << endl;
} else {
cout << argv[1] << " not connected (check identification and USB cable)"
<< endl;
}
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
que 100000 fois au cours de la vie du module. Veillez donc à ne pas
saveToFlash ()
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
renvoie le premier module trouvé, il suffit ensuite d'appeler la fonction
objet pour trouver les modules suivants, et ce tant que la réponse n'est pas un
dessous un petit exemple listant les module connectés
#include <iostream>
#include "yocto_api.h"
using namespace std;
int main(int argc, const char * argv[])
{
string
errmsg;
// Setup the API to use local USB devices
if(yRegisterHub("usb", errmsg) != YAPI_SUCCESS) {
cerr << "RegisterHub error: " << errmsg << endl;
return 1;
}
cout << "Device list: " << endl;
YModule *module = yFirstModule();
while (module != NULL) {
cout << module->get_serialNumber() << " ";
cout << module->get_productName()
module = module->nextModule();
}
www.yoctopuce.com
// use serial or logical name
argv[2];
<< endl;
qui
yFirstModule()
de cet
nextModule()
. Ci-
NULL
35