10. Utilisation du Yocto-I2C en C++
cout
<<
"* are properly configured
cout
<<
"****************************"
std::vector<int>
toSend.at(0) = 0x05;
received
=
i2cPort->i2cSendAndReceiveArray(0x1f, toSend,
short int
tempReg
if
(tempReg
& 0x1000) {
tempReg
|= 0xf000;
} else {
tempReg
&= 0x0fff;
}
cout
<<
"Ambiant temperature: "
u64
now
= YAPI::GetTickCount();
while (YAPI::GetTickCount() -
// wait 3 sec to show the message
}
YAPI::FreeAPI();
return 0;
}
10.2. Contrôle de la partie module
Chaque module peut-être contrôlé d'une manière similaire, vous trouverez ci dessous un simple
programme d'exemple affichant les principaux paramètres d'un module et permettant d'activer la
balise de localisation.
#include <iostream>
#include <stdlib.h>
#include "yocto_api.h"
using namespace
std;
static void usage(const char
{
cout
<<
"usage: "
exit(1);
}
int main(int
argc,
{
string
errmsg;
// Setup the API to use local USB devices
if(YAPI::RegisterHub("usb",
cerr
<<
"RegisterHub error: "
return 1;
}
if(argc
< 2)
usage(argv[0]);
YModule
*module
if (module->isOnline()) {
if
(argc
> 2) {
if (string(argv[2]) == "ON")
module->set_beacon(Y_BEACON_ON);
else
module->set_beacon(Y_BEACON_OFF);
}
cout
<<
"serial:
cout
<<
"logical name: "
cout
<<
"luminosity:
cout
<<
"beacon:
if (module->get_beacon() == Y_BEACON_ON)
cout
<<
"ON"
else
cout
<<
"OFF"
cout
<<
"upTime:
64
*"
toSend(1),
received;
// request ambient temperature register
= (received.at(0) << 8) + received.at(1);
// perform sign extension
// clear status bits
<<
(tempReg
now
< 3000) {
*exe)
<<
exe
<<
" <serial or logical name> [ON/OFF]"
const char
* argv[])
errmsg) != YAPI::SUCCESS) {
<<
errmsg
= YModule::FindModule(argv[1]);
"
<< module->get_serialNumber() << endl;
<< module->get_logicalName() << endl;
"
<< module->get_luminosity() << endl;
";
<< endl;
<< endl;
"
<< module->get_upTime() /
<< endl;
<< endl;
2);
/ 16.0) << endl;
<< endl;
// use serial or logical name
1000
<<
<< endl;
" sec"
<< endl;
www.yoctopuce.com