Améliorations apportées
Récupération des signaux d'arrêt (SIGINT, SIGTERM)
Le programme est capable de récupérer les signaux d'arrêt SIGINT et SIGTERM pour arrêter proprement le programme. Lorsque le programme reçoit un de ces signaux, il arrête la simulation en cours et affiche un message de fin. Cela permetrait en plus de fermer proprement les fichiers ouverts et de libérer les ressources allouées si l'écriture dans un fichier est en cours ou que des ressources sont allouées dynamiquement.
Gestion des erreurs
Le programme gère les erreurs de manière plus robuste en envoyant des messages sur la sortie d'erreur standard (cerr) pour informer l'utilisateur des erreurs. Par exemple, si le programme ne peut pas ouvrir un fichier, il envoie un message d'erreur pour informer l'utilisateur du problème. Cela permet à l'utilisateur de savoir ce qui s'est passé et de corriger le problème.
Fonctions aléatoires
Pour simuler les valeurs des capteurs, j'ai utilisé des fonctions aléatoires pour générer des valeurs aléatoires. Cela permet de simuler des valeurs réalistes pour les capteurs. J'ai utilisé une distribution normale pour générer des valeurs aléatoires pour les capteurs de température et d'humidité. Pour les capteurs de pression, j'ai utilisé une distribution uniforme. Et pour les capteurs de luminosité, j'ai utilisé rand() (de la bibliothèque standard C) pour générer un booléen.
Gestion du serveur
Par défaut, le serveur ne fait que afficher les valeurs des capteurs et les enregistrer dans un fichier. J'ai ajouté un temps d' uptime pour le serveur, qui affiche le temps écoulé depuis le démarrage du serveur. Cela permet de savoir combien de temps le serveur a été en fonctionnement.
Couleurs dans la console
Le programme utilise des couleurs dans la console pour améliorer la lisibilité des messages. Par exemple, les messages d'erreur sont affichés en rouge et les messages contenant les informations des capteurs sont segmentés en plusieurs parties colorées.