nicolas.perenne.free.fr
GetWind acquiert les mesures d'un anémomètre CV3F (qui en émet deux par seconde) et rend compte sur sa sortie standard de moyennes glissantes issues de ces mesures. Ce programme a été développé pour Linux: la gestion du port série demanderait à être adaptée pour qu'il puisse tourner sur Windows. Détail technique: j'ai utilisé le mode "canonique asynchrone" (cf. le tutoriel du Linux Documentation Project).
Le nombre de valeurs utilisées pour le moyennage et la fréquence d'affichage de l'état de la moyenne sont paramétrables sur la ligne de commande:
root@OpenWrt:~# getWind -h Usage: getWind [-d file] [-k] [-a length] [-o period] [-c count] [-h] -d <file>: specify the device <file> (default: /dev/ttyUSB0) -k: keep listening even if nothing currently happens on the specified port (default: no) -a <length>: compute averages of <length> successive values (default: 10) -o <period>: output averages every <period> wind acquisition (default: 6) -c <count>: output <count> averages and exit (default: go on endlessly) -h : this help screen root@OpenWrt:~# getWind -d /dev/usb/tts/0 -a9 -o3 -c5 90.333333:0.000000:4.666667 180.666667:0.000000:11.666667 271.000000:0.000000:18.666667 271.000000:0.000000:21.000000 271.000000:0.000000:21.000000 root@OpenWrt:~#
Les sorties sont faites dans un format directement assimilable par rrdtool update. On trouve dans l'ordre la direction du vent en degrés, sa vitesse en noeuds (ici 0 car l'anémomètre était... dans une boîte) et la température de l'air: cette dernière met en évidence le fait que si la période de sortie est plus petite que celle du moyennage (ce qui n'est pas interdit), il faut attendre plusieurs écritures avant que le tableau de moyennage ne contienne plus de valeur nulle et que la moyenne ait atteint sa valeur "de croisière".
Le code-source est disponible dans ici.