22. Programmation avancée
Les mesures sont des objets
maximale à l'aide des méthodes get_minValue(), get_averageValue() et get_maxValue()
respectivement. Voici un petit exemple qui illustre ces fonctions:
// On veut récupérer toutes les données du datalogger
YDataSet
dataset
=
// Le 1er appel à loadMore() charge le résumé des données
dataset.loadMore();
YMeasure
summary
= dataset.get_summary();
string
timeFmt
=
"dd MMM yyyy
string
logFmt
=
"from {0} to {1} :
Console.WriteLine(String.Format(logFmt,
summary.get_startTimeUTC_asDateTime().ToString(timeFmt),
summary.get_endTimeUTC_asDateTime().ToString(timeFmt),
summary.get_averageValue(),
// Les appels suivants à loadMore() chargent les mesures
Console.WriteLine("loading
int
progress;
do {
Console.Write(".");
progress
= dataset.loadMore();
}
while(progress
< 100);
// Ca y est, toutes les mesures sont là
List<YMeasure>
details
foreach
(YMeasure
Console.WriteLine(String.Format(logFmt,
m.get_startTimeUTC_asDateTime().ToString(timeFmt),
m.get_endTimeUTC_asDateTime().ToString(timeFmt),
m.get_averageValue(),
}
Vous trouverez un exemple complet démontrant cette séquence dans la librairie de programmation
Yoctopuce de chaque langage. L'exemple se trouve dans le répertoire Examples/Prog-DataLogger.
Horodatage
Le Yocto-RangeFinder n'ayant pas de batterie, il n'est pas capable de deviner tout seul l'heure qu'il
est au moment de sa mise sous tension. Néanmoins, le Yocto-RangeFinder va automatiquement
essayer de se mettre à l'heure de l'hôte auquel il est connecté afin de pouvoir correctement dater les
mesures du datalogger:
• Lorsque le Yocto-RangeFinder est branché à un ordinateur exécutant soit le VirtualHub, soit
un programme quelconque utilisant la librairie Yoctopuce, il recevra l'heure de cet ordinateur.
• Lorsque le Yocto-RangeFinder est branché à un YoctoHub-Ethernet, il recevra par ce biais
l'heure que le YoctoHub a obtenu par le réseau (depuis un serveur du
• Lorsque le Yocto-RangeFinder est branché à un YoctoHub-Wireless, il recevra de celui-ci
l'heure maintenue par son horloge RTC, précédemment obtenue par le réseau ou par un
ordinateur.
• Lorsque le Yocto-RangeFinder est branché à un appareil mobile Android, il recevra de celui-ci
l'heure actuelle pour autant qu'une application utilisant la librairie Yoctopuce soit lancée.
Si aucune de ces conditions n'est remplie (par exemple si le module est simplement connecté à un
chargeur USB), le Yocto-RangeFinder fera de son mieux pour donner une date vraisemblable aux
mesures, en repartant de l'heure des dernières mesures enregistrées. Ainsi, vous pouvez "mettre à
l'heure" un Yocto-RangeFinder "autonome" en le branchant sur un téléphone Android, lançant un
enregistrement de données puis en le re-branchant tout seul sur un chargeur USB. Soyez toutefois
conscients que, sans source de temps externe, l'horloge du Yocto-RangeFinder peut dériver petit à
petit (en principe jusqu'à 2%).
2
YMeasure
L'objet
du datalogger est exactement du même type que ceux qui sont passés aux fonctions de callback
périodique.
174
YMeasure
sensor.get_recordedData(0,
hh:mm:ss,fff";
average={2:0.00}{3}";
sensor.get_unit()));
details");
= dataset.get_measures();
m
in details) {
sensor.get_unit()));
2
. On peut en y lire la valeur minimale, moyenne et
0);
)
pool.ntp.org
www.yoctopuce.com