Mise à jour des events dans l'historique avec ajout de EVENT_FIN_DECLENCHEMENT pour disposer du début et de la fin des events ayant une durée.

This commit is contained in:
2026-10-06 16:07:43 +02:00
parent 13317d3d48
commit 7a14254484
5 changed files with 62 additions and 42 deletions
+24 -24
View File
@@ -5,7 +5,8 @@
//
//**********************************************************************************************************************************************************************************
// #define __DEBUG_ARCHIVAGE //Décommenter cette ligne pour avoir les messages de debug concernant les fonctions d'archivage
//#define __DEBUG_SAUVEGARDE //Décommenter cette ligne pour avoir les messages de debug concernant les fonctions de sauvegarde
//#define __DEBUG_ARCHIVAGE //Décommenter cette ligne pour avoir les messages de debug concernant les fonctions d'archivage
// Include :
#include "main.h"
@@ -43,6 +44,7 @@ char chemin_temp_empreinte[MAX_LONGUEUR_NOM_FICHIER_SAUVEGARDE_BDD];
char empreinte[17]; // 16 caractères hexadécimaux + '\0'
char no_mmsi[16]; // "000000000" par défaut (9 chiffres) - cf TB_Configuration
char origine_bdd[16]; // "normale" par défaut - cf TB_Systeme.Origine_bdd (synthèse §35)
char chaine_adresse_mac[TAILLE_ADRESSE_MAC * 3]; // On a besoin de 3 caractères par octet (xx:) sauf pour le dernier (xx) + le NULL de fin
FILE * ptr_fichier_sauvegarde;
FILE * ptr_fichier_empreinte;
char requete[MAX_LONGUEUR_REQUETE_MYSQL];
@@ -83,7 +85,7 @@ char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
// Calcul de la date et de l'heure, au bon format :
date_courante(str_date, DATE_COURANTE_SANS_MS, FORMAT_DATE_COURANTE_FICHIER);
// NOUVEAU : lecture du MMSI courant (TB_Configuration.No_mmsi), transmis dans l'en-tête de l'archive (cf synthèse §32.3) :
// lecture du MMSI courant (TB_Configuration.No_mmsi), transmis dans l'en-tête de l'archive (cf synthèse §32.3) :
sprintf(requete, "SELECT Valeur FROM TB_Configuration WHERE Nom='No_mmsi'");
mysql_query(bdd.pointeur, requete);
result = mysql_store_result(bdd.pointeur);
@@ -91,11 +93,12 @@ char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
else strcpy(no_mmsi, "000000000"); // Valeur par défaut si jamais introuvable (ne devrait normalement pas arriver)
if (result != NULL) mysql_free_result(result);
// NOUVEAU : lecture de l'origine de la BDD locale (TB_Systeme.Origine_bdd), transmise dans l'en-tête (cf synthèse §35).
// Posée à 'factory' ou 'restauration' par la procédure de réinitialisation/restauration, APRÈS que celle-ci soit
// entièrement terminée (y compris, pour une restauration, après le rechargement de Bateau_data - sans quoi cette
// valeur serait écrasée par celle, ancienne, contenue dans la sauvegarde elle-même). Remise à 'normale' plus bas,
// une fois cette archive confirmée transmise avec succès - donc transmise une seule fois.
// lecture de l'origine de la BDD locale (TB_Systeme.Origine_bdd), transmise dans l'en-tête (cf synthèse §35).
// Posée à 'factory' ou 'restauration' par l'updater, APRÈS que celle-ci soit entièrement terminée (y compris,
// pour une restauration, après le rechargement de Bateau_data - sans quoi cette valeur serait écrasée par celle,
// ancienne, contenue dans la sauvegarde elle-même).
// La valeur dans la BDD est remise à 'normale' plus bas dans cette fonction, une fois cette archive confirmée
// transmise avec succès - donc transmise une seule fois.
sprintf(requete, "SELECT Valeur FROM TB_Systeme WHERE Nom='Origine_bdd'");
mysql_query(bdd.pointeur, requete);
result = mysql_store_result(bdd.pointeur);
@@ -129,18 +132,25 @@ char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
// Attention : le format '# [nom_de_champ=valeur_du_champ]' est utilisé par le traitement côté serveur...
// Il est donc fortement conseillé de ne PAS modifier le format de ces trames d'entête !!!
fprintf(ptr_fichier_sauvegarde,
"# [Adresse_mac=%02X:%02X:%02X:%02X:%02X:%02X]\n",
systeme.modules_physiques[0].adresse_mac[0], systeme.modules_physiques[0].adresse_mac[1], systeme.modules_physiques[0].adresse_mac[2],
systeme.modules_physiques[0].adresse_mac[3], systeme.modules_physiques[0].adresse_mac[4], systeme.modules_physiques[0].adresse_mac[5]);
fprintf(ptr_fichier_sauvegarde, "# [Adresse_mac=%s]\n", conversion_adresse_mac_chaine(systeme.modules_physiques[0].adresse_mac, chaine_adresse_mac, ':'));
fprintf(ptr_fichier_sauvegarde, "# [Nom_du_bateau=%s]\n", systeme.nom_bateau);
fprintf(ptr_fichier_sauvegarde, "# [No_mmsi=%s]\n", no_mmsi); // NOUVEAU (cf synthèse §32.3/32.4)
fprintf(ptr_fichier_sauvegarde, "# [No_mmsi=%s]\n", no_mmsi); // (cf synthèse §32.3/32.4)
fprintf(ptr_fichier_sauvegarde, "# [Date_fichier=%s]\n", str_date);
fprintf(ptr_fichier_sauvegarde, "# [Version_soft_no_package=%s]\n", systeme.package_no_version);
fprintf(ptr_fichier_sauvegarde, "# [Origine_bdd=%s]\n", origine_bdd); // NOUVEAU (cf synthèse §35)
fprintf(ptr_fichier_sauvegarde, "# [Origine_bdd=%s]\n", origine_bdd); // (cf synthèse §35)
#ifdef __DEBUG_SAUVEGARDE
affichage_debug(__FILE__, __LINE__, "Création d'unr archive : ", TYPE_MESSAGE_DEBUG_PAR_DEFAUT);
printf("\t%-40s: %s\n", "Adresse_mac", conversion_adresse_mac_chaine(systeme.modules_physiques[0].adresse_mac, chaine_adresse_mac, ':'));
printf("\t%-40s: %s\n", "Nom_du_bateau", systeme.nom_bateau);
printf("\t%-40s: %s\n", "No_mmsi", no_mmsi);
printf("\t%-40s: %s\n", "Date_fichier", str_date);
printf("\t%-40s: %s\n", "Version_soft_no_package", systeme.package_no_version);
printf("\t%-40s: %s\n", "Origine_bdd", origine_bdd);
printf("\n");
#endif
fclose(ptr_fichier_sauvegarde);
// Fin de SDIR #292
@@ -425,16 +435,6 @@ char suffixe_fichier_log[MAX_LONGUEUR_NOM_FICHIER];
char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
// sprintf(tmp, "/!\\ \tFonction d'archivage TEMPORAIREMENT suspendue...");
// affichage_debug(__FILE__, __LINE__, tmp, TYPE_MESSAGE_DEBUG_WARNING);
// return(0);
// Calcul de la date courante pour nommer le fichier de logs :
time(&now);
maintenant = *localtime(&now);