Terminaux NEOWARE

Table des matières

Snapin pour la gestion d'une sonde de température RITA

J'ai écrit un snapin s'appuyant sur le logiciel
FROGD (site « http://www.barbier.net/frogd/fr/ ») pour gérer une sonde de température de type RITA raccordée à un terminal NEOWARE qui se révèle un boitier pratique pour cela car peu encombrant et ne chauffant pas. Cette sonde se présente sous la forme d'un boitier RS232 moulé en forme de grenouille :

Le snapin est téléchargeable à l'adresse suivante : http://www.math.jussieu.fr/~besancon/system/eon/howto/files/snapins/frogd-1.0.0-2.zip

La grenouille est achetable à la librairie du monde en tique à Paris sous la référence 1-RITA-2345-X (en date du 2005-06-24).

Quelques sites web :

Utilisation de la sonde

Le principe que j'ai retenu est d'enregistrer dans une base de données MYSQL les données provenant de la sonde :

mysql> select * from grenouilles where date < '2005-06-23 17:0:0' ;
+----------------+---------------------+-------------+----------+----------+
| id             | date                | temperature | humidite | pression |
+----------------+---------------------+-------------+----------+----------+
| 134.157.13.232 | 2005-06-23 16:57:36 |        29.4 |     42.1 |   1007.3 |
| 134.157.13.232 | 2005-06-23 16:58:37 |        29.4 |     42.1 |   1007.3 |
| 134.157.13.232 | 2005-06-23 16:59:39 |        29.4 |     42.1 |   1007.5 |
+----------------+---------------------+-------------+----------+----------+
3 rows in set (0.00 sec)

mysql> select round(max(temperature),1) as "max" from grenouilles ;
+------+
| max  |
+------+
| 29.6 |
+------+
1 row in set (0.00 sec)

mysql> select round(min(temperature),1) as "min" from grenouilles ;
+------+
| min  |
+------+
| 27.5 |
+------+
1 row in set (0.01 sec)

mysql> select round(avg(temperature),1) as "moyenne" from grenouilles ;
+---------+
| moyenne |
+---------+
|    28.8 |
+---------+
1 row in set (0.00 sec)

Ce fonctionnement était prévu à l'origine par le logiciel FROGD mais il a été légèrement modifié de la façon suivante :

Il faut créer a priori une base de données MYSQL pour stocker les données des grenouilles :

create database rita ;

Il faut créer un utilisateur MYSQL qui insérera les données des grenouilles dans la base ci-dessus :

grant insert on rita.* to rita identified by 'seigneurmeteo' ;
flush privileges ;

La base de données a la structure suivante :

CREATE TABLE grenouilles (
  id            text NOT NULL,
  date          datetime default NULL,
  temperature   float default NULL,
  humidite      float default NULL,
  pression      float default NULL
) ;

Si des modifications ont besoin d'être apportées à cette partie MYSQL, il faut modifier le fichier « frogd-1.0/src/frogd_mysql.c » .

Une fois le snapin installé sur le terminal NEOWARE, il faudra configurer le script de démarrage « /etc/rc.d/init.d/frogd » et y indiquer les réglages MYSQL à utiliser :

#!/bin/bash

# source function library
. /etc/rc.d/init.d/functions

RETVAL=0

TZ="Central European Standard Time-1Central European Daylight Time,M3.5.0,M10.5.0"
export TZ

case "$1" in
  start)
	# Remplir selon votre cas de figure.

	# Machine MYSQL
	# Si le host vaut mysql.example.com, alors on ne lance pas
	# le log MYSQL
        host="alpha.math.jussieu.fr"

	# Port MYSQL. Valeur par defaut : "0"
        port="4444"

	# Base MYSQL
        base="rita"

	# Utilisateur MYSQL
        user="rita"

	# Mot de passe de l'utilisateur MYSQL
        password="seigneurmeteo"

	# Port serie par defaut
        serial="/dev/ttyS0"

	# Periodicite
        period="60"

	# Fichier de log
	logfile="/var/log/frogd.log"

	# Divers
	misc="-v -f" # debug interactif
	misc=""      # cas normal

	RETVAL=$?
	echo -n "Starting frogd: "
	case "$host" in
	  mysql.example.com) daemon \
				/usr/local/sbin/frogd \
					-D "${serial}" \
					-p "${period}" \
					-L "${logfile}" \
					"${misc}"
                             ;;
	                  *) daemon \
				/usr/local/sbin/frogd+mysql \
					-D "${serial}" \
					-p "${period}" \
					-H "${host}" \
					-Z "${port}" \
					-B "${base}" \
					-U "${user}" \
					-P "${password}" \
					"${misc}"
                             ;;
	esac
	;;
  stop)
	echo -n "Shutting down frogd: "
        killproc frogd
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/frogd
	echo
	;;
  *)
	echo "Usage: frogd {start|stop}"
	exit 1
esac

exit $RETVAL

Pour cela, se connecter au terminal NEOWARE (cf Mot de passe root de NEOLINUX) et déverrouiller la partition système par la commande « fsunlock ». Faire la modification. Verrouiller à nouveau la partition système par la commande « fslock ».

Détails techniques

Un fichier de patches correspondant aux modifications appliquées aux sources indiquées ci-dessus est disponible en cliquant ici. Il s'applique sur les sources de « frogd-1.0.tar.gz » via la commande :

tar xvzf frogd-1.0.tar.gz
cd frogd-1.0/src
patch < /chemin/vers/mon/patch

Le logiciel a été compilé en mode statique sur une machine sous Red Hat 9 avec MYSQL 4.1.12. Rien de spécial à signaler.

Divers

Trouvé sur le web :


Historique


Page maintenue par <Thierry.Besancon@math.jussieu.fr>
$Date: 2005-09-23 14:11:42+02 $
$Revision: 1.9 $