Modifications des réglages du module
Lorsque que vous souhaitez modifier les réglages d'un module, il suffit d'appeler la fonction
correspondante, cependant cette modification n'a lieu que dans la mémoire vive du
set_xxx()
module: si le module redémarre, les modifications seront perdues. Pour qu'elle soient mémorisées
de manière persistante, il est nécessaire de demander au module de sauvegarder sa configuration
courante dans sa mémoire non volatile. Pour cela il faut utiliser la méthode
Inversement il est possible de forcer le module à oublier ses réglages courants en utilisant la
méthode
revertFromFlash()
d'un module.
<HTML>
<HEAD>
<TITLE>save settings</TITLE>
<BODY>
<FORM method='get'>
<?php
include('yocto_api.php');
// Use explicit error handling rather than exceptions
YAPI::DisableExceptions();
// Setup the API to use the VirtualHub on local machine
if(YAPI::RegisterHub('http://127.0.0.1:4444/',$errmsg) != YAPI::SUCCESS) {
die("Cannot contact VirtualHub on
}
@$serial
= $_GET['serial'];
if
($serial
!= '') {
// Check if a specified module is available online
$module
= YModule::FindModule("$serial");
if (!$module->isOnline()) {
die("Module not connected (check serial and USB
}
} else {
// or use any connected module suitable for the demo
$module
= YModule::FirstModule();
if($module) {
$module
}
if(is_null($module)) {
die("No module connected (check USB
} else {
$serial
}
}
Print("Module to use: <input name='serial'
if (isset($_GET['newname'])){
$newname
= $_GET['newname'];
if (!yCheckLogicalName($newname))
die('Invalid
$module->set_logicalName($newname);
$module->saveToFlash();
}
printf("Current name:
print("New name: <input name='newname' value=''
YAPI::FreeAPI();
?>
<input type='submit'>
</FORM>
</BODY>
</HTML>
Attention, le nombre de cycle d'écriture de la mémoire non volatile du module est limité. Passé cette
limite plus rien ne garantit de que la sauvegarde des réglages se passera correctement. Cette limite,
lié à la technologie employé 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.
www.yoctopuce.com
. Ce petit exemple ci-dessous vous permet changer le nom logique
// skip VirtualHub
= $module->nextModule();
= $module->get_serialnumber();
name');
%s<br>", $module->get_logicalName());
127.0.0.1");
cable)");
cable)");
value='$serial'><br>");
maxlength=19><br>");
saveToFlash()
10. Utilisation du Yocto-Serial en PHP
saveToFlash()
que 100000 fois au
.
69