|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.lang.Thread Air
public class Air
Programme qui simule l'évolution de la température de l'air d'une
pièce en fonction de la température extérieure et du niveau de
chauffage demandé. Chaque seconde la température courante est
envoyée via un message de type MessageTemperature sur le groupe
multicast du programme.
Les demandes de chauffage sont prises en compte une fois toutes les
3 secondes (si plusieurs demandes sont arrivées dans un intervalle
de 3 secondes, on prend uniquement en compte la dernière). Une
demande de chauffage est traitée une seule fois. Si l'on veut
chauffer en continu l'air, il faut donc envoyer régulièrement des
demandes de chauffage. Une demande de chauffage est effectuée par
l'envoi d'un message de type MessageTemperature sur le groupe
multicast du programme.
La température extérieure évolue entre une température minimale (la
nuit) et une température maximale (le jour) de manière linéaire, en
augmentant d'abord la première demi-journée puis diminuant ensuite
lors de la seconde. Une journée complète dure 5 minutes. Les
températures minimales et maximales sont modifiées à la fin de
chaque journée.
Le programme se lance avec les paramètres suivants :
$ java Air groupeMulticast portMulticast nomPiece [seedRandom]
groupeMulticast
: adresse IP du groupe multicast à utiliser pour la pièceport
: port du groupe multicastnomPiece
: nom de la pièceseedRandom
: paramètre optionnel initialisant le générateur de nombres aléatoires qui
détermine la température extérieure. On lancera de préférence les programmes Air de
toutes les pièces avec la même valeur.
Nested Class Summary | |
---|---|
protected class |
Air.AttentePaquet
Thread qui attend les paquets sur la socket |
Nested classes/interfaces inherited from class java.lang.Thread |
---|
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler |
Field Summary | |
---|---|
protected java.text.DecimalFormat |
format
Format d'affichage des flottants |
protected java.util.Random |
generateur
Générateur de nombre aléatoire servant à initiliser puis modifier la température extérieure |
protected java.net.InetAddress |
groupMulticast
Adresse du groupe multicast de la pièce |
protected java.lang.String |
nomPiece
Nom de la pièce |
protected int |
port
Port du groupe multicast |
protected java.net.MulticastSocket |
socket
Socket multicast |
protected float |
temperatureCourante
Température courante de la pièce |
protected float |
temperatureExt
Température extérieure de la maison |
Fields inherited from class java.lang.Thread |
---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary | |
---|---|
Air(java.lang.String adrMulti,
int port,
java.lang.String piece)
|
|
Air(java.lang.String adrMulti,
int port,
java.lang.String piece,
int initRandom)
|
Method Summary | |
---|---|
void |
envoyerTemp()
Fonction qui envoie sur le groupe multicast un message précisant la température courante. |
protected void |
initMulticast(java.lang.String nomMachine,
int port)
Initialise la socket multicast. |
static void |
main(java.lang.String[] argv)
Lance le programme Air. |
void |
run()
Thread qui toutes les 3 secondes récupère la valeur de la dernière demande de chauffage et modifie le cas échéant la température courante en fonction de la puissance de chauffage. |
java.lang.String |
toString()
|
void |
variations()
Fonction qui calcule et gère les variations de la température courante en fonction de la température extérieure. |
Methods inherited from class java.lang.Thread |
---|
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, yield |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected java.net.InetAddress groupMulticast
protected int port
protected java.net.MulticastSocket socket
protected java.lang.String nomPiece
protected volatile float temperatureCourante
protected float temperatureExt
protected java.util.Random generateur
protected java.text.DecimalFormat format
Constructor Detail |
---|
public Air(java.lang.String adrMulti, int port, java.lang.String piece, int initRandom)
public Air(java.lang.String adrMulti, int port, java.lang.String piece)
Method Detail |
---|
public void envoyerTemp()
public void variations()
public void run()
run
in interface java.lang.Runnable
run
in class java.lang.Thread
protected void initMulticast(java.lang.String nomMachine, int port)
public java.lang.String toString()
toString
in class java.lang.Thread
public static void main(java.lang.String[] argv)
$ java Air groupeMulticast portMulticast nomPiece [seedRandom]
groupeMulticast
: adresse IP du groupe multicast à utiliser pour la pièceport
: port du groupe multicastnomPiece
: nom de la pièceseedRandom
: paramètre optionnel initialisant le générateur de nombres aléatoires qui
détermine la température extérieure. On lancera de préférence les programmes Air de
toutes les pièces avec la même valeur.
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |