Download User manual
Transcript
8. Using Yocto-4-20mA-Rx with PHP
if(yRegisterHub('http://127.0.0.1:4444/',$errmsg) != YAPI_SUCCESS) {
die("Cannot contact VirtualHub on 127.0.0.1");
}
@$serial = $_GET['serial'];
if ($serial != '') {
// Check if a specified module is available online
$module = yFindModule("$serial");
if (!$module->isOnline()) {
die("Module not connected (check serial and USB cable)");
}
} else {
// or use any connected module suitable for the demo
$module = yFirstModule();
if($module) { // skip VirtualHub
$module = $module->nextModule();
}
if(is_null($module)) {
die("No module connected (check USB cable)");
} else {
$serial = $module->get_serialnumber();
}
}
Print("Module to use: <input name='serial' value='$serial'><br>");
if (isset($_GET['newname'])){
$newname = $_GET['newname'];
if (!yCheckLogicalName($newname))
die('Invalid name');
$module->set_logicalName($newname);
$module->saveToFlash();
}
printf("Current name: %s<br>", $module->get_logicalName());
print("New name: <input name='newname' value='' maxlength=19><br>");
?>
<input type='submit'>
</FORM>
</BODY>
</HTML>
Warning: the number of write cycles of the nonvolatile memory of the module is limited. When this
limit is reached, nothing guaranties that the saving process is performed correctly. This limit, linked to
the technology employed by the module micro-processor, is located at about 100000 cycles. In short,
you can use the saveToFlash() function only 100000 times in the life of the module. Make sure
you do not call this function within a loop.
Listing the modules
Obtaining the list of the connected modules is performed with the yFirstModule() function which
returns the first module found. Then, you only need to call the nextModule() function of this
object to find the following modules, and this as long as the returned value is not NULL. Below a
short example listing the connected modules.
<HTML>
<HEAD>
<TITLE>inventory</TITLE>
</HEAD>
<BODY>
<H1>Device list</H1>
<TT>
<?php
include('yocto_api.php');
yRegisterHub("http://127.0.0.1:4444/");
$module
= yFirstModule();
while (!is_null($module)) {
printf("%s (%s)<br>", $module->get_serialNumber(),
$module->get_productName());
$module=$module->nextModule();
}
?>
</TT>
</BODY>
</HTML>
www.yoctopuce.com
43