20. 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-Meteo 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-Meteo 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-Meteo 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-Meteo 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-Meteo 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-Meteo 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-Meteo 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-Meteo "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-Meteo peut dériver petit à petit (en principe pas
plus de 0.3%).
2
YMeasure
L'objet
du datalogger est exactement du même type que ceux qui sont passés aux fonctions de callback
périodique.
144
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