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:
@@ -246,4 +246,6 @@
|
|||||||
//-------------------------------------------------------------
|
//-------------------------------------------------------------
|
||||||
#define TYPE_SOURCE_HISTORIQUE_EVENTS 6
|
#define TYPE_SOURCE_HISTORIQUE_EVENTS 6
|
||||||
#define EVENT_DECLENCHEMENT 1 // L'ID contient la cle_primaire de l'event
|
#define EVENT_DECLENCHEMENT 1 // L'ID contient la cle_primaire de l'event
|
||||||
|
#define EVENT_FIN_DECLENCHEMENT 2 // L'ID contient la cle_primaire de l'event
|
||||||
|
|
||||||
|
|
||||||
+24
-24
@@ -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 :
|
||||||
#include "main.h"
|
#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 empreinte[17]; // 16 caractères hexadécimaux + '\0'
|
||||||
char no_mmsi[16]; // "000000000" par défaut (9 chiffres) - cf TB_Configuration
|
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 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_sauvegarde;
|
||||||
FILE * ptr_fichier_empreinte;
|
FILE * ptr_fichier_empreinte;
|
||||||
char requete[MAX_LONGUEUR_REQUETE_MYSQL];
|
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 :
|
// Calcul de la date et de l'heure, au bon format :
|
||||||
date_courante(str_date, DATE_COURANTE_SANS_MS, FORMAT_DATE_COURANTE_FICHIER);
|
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'");
|
sprintf(requete, "SELECT Valeur FROM TB_Configuration WHERE Nom='No_mmsi'");
|
||||||
mysql_query(bdd.pointeur, requete);
|
mysql_query(bdd.pointeur, requete);
|
||||||
result = mysql_store_result(bdd.pointeur);
|
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)
|
else strcpy(no_mmsi, "000000000"); // Valeur par défaut si jamais introuvable (ne devrait normalement pas arriver)
|
||||||
if (result != NULL) mysql_free_result(result);
|
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).
|
// 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
|
// Posée à 'factory' ou 'restauration' par l'updater, APRÈS que celle-ci soit entièrement terminée (y compris,
|
||||||
// entièrement terminée (y compris, pour une restauration, après le rechargement de Bateau_data - sans quoi cette
|
// pour une restauration, après le rechargement de Bateau_data - sans quoi cette valeur serait écrasée par celle,
|
||||||
// valeur serait écrasée par celle, ancienne, contenue dans la sauvegarde elle-même). Remise à 'normale' plus bas,
|
// ancienne, contenue dans la sauvegarde elle-même).
|
||||||
// une fois cette archive confirmée transmise avec succès - donc transmise une seule fois.
|
// 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'");
|
sprintf(requete, "SELECT Valeur FROM TB_Systeme WHERE Nom='Origine_bdd'");
|
||||||
mysql_query(bdd.pointeur, requete);
|
mysql_query(bdd.pointeur, requete);
|
||||||
result = mysql_store_result(bdd.pointeur);
|
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...
|
// 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 !!!
|
// Il est donc fortement conseillé de ne PAS modifier le format de ces trames d'entête !!!
|
||||||
fprintf(ptr_fichier_sauvegarde,
|
fprintf(ptr_fichier_sauvegarde, "# [Adresse_mac=%s]\n", conversion_adresse_mac_chaine(systeme.modules_physiques[0].adresse_mac, chaine_adresse_mac, ':'));
|
||||||
"# [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, "# [Nom_du_bateau=%s]\n", systeme.nom_bateau);
|
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, "# [Date_fichier=%s]\n", str_date);
|
||||||
fprintf(ptr_fichier_sauvegarde, "# [Version_soft_no_package=%s]\n", systeme.package_no_version);
|
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);
|
fclose(ptr_fichier_sauvegarde);
|
||||||
|
|
||||||
// Fin de SDIR #292
|
// Fin de SDIR #292
|
||||||
|
|
||||||
|
|
||||||
@@ -425,16 +435,6 @@ char suffixe_fichier_log[MAX_LONGUEUR_NOM_FICHIER];
|
|||||||
char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
|
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 :
|
// Calcul de la date courante pour nommer le fichier de logs :
|
||||||
time(&now);
|
time(&now);
|
||||||
maintenant = *localtime(&now);
|
maintenant = *localtime(&now);
|
||||||
|
|||||||
@@ -957,6 +957,7 @@ char requete[MAX_LONGUEUR_REQUETE_MYSQL];
|
|||||||
//------------------------------------
|
//------------------------------------
|
||||||
case TYPE_SOURCE_HISTORIQUE_SYSTEME :
|
case TYPE_SOURCE_HISTORIQUE_SYSTEME :
|
||||||
case TYPE_SOURCE_HISTORIQUE_USB :
|
case TYPE_SOURCE_HISTORIQUE_USB :
|
||||||
|
case TYPE_SOURCE_HISTORIQUE_EVENTS :
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -973,7 +974,7 @@ char requete[MAX_LONGUEUR_REQUETE_MYSQL];
|
|||||||
if (flag_enregistrement)
|
if (flag_enregistrement)
|
||||||
{
|
{
|
||||||
sprintf(requete, "INSERT INTO TB_Historique (Type_source, ID_Source, Type, Valeur, Complement) VALUES (%i, %i, %i, %.4f, '%s')", type_source, id_source, type, valeur, complement);
|
sprintf(requete, "INSERT INTO TB_Historique (Type_source, ID_Source, Type, Valeur, Complement) VALUES (%i, %i, %i, %.4f, '%s')", type_source, id_source, type, valeur, complement);
|
||||||
// printf("Requete d'enregistrement dans l'historique = [ %s; ]\n", requete);
|
printf("Requete d'enregistrement dans l'historique = [ %s; ]\n", requete);
|
||||||
mysql_query(bdd.pointeur, requete);
|
mysql_query(bdd.pointeur, requete);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+26
-13
@@ -254,6 +254,32 @@ char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
|
else if (strstr(row[0], "Demande_maj_nmea") != NULL)
|
||||||
|
{
|
||||||
|
val_u8 = atoi(row[1]);
|
||||||
|
if (val_u8 == 1)
|
||||||
|
{
|
||||||
|
flag_demande_maj_nmea = TRUE; // Flag traité en fin de cette fonction...
|
||||||
|
|
||||||
|
// RAZ de la demande dans la BDD :
|
||||||
|
sprintf(requete, "UPDATE TB_Systeme SET Valeur='0' WHERE Nom='Demande_maj_nmea' ");
|
||||||
|
mysql_query(bdd.pointeur, requete);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//---------------------------------------------------------------
|
||||||
|
else if (strstr(row[0], "Demande_sauvegarde_bdd") != NULL)
|
||||||
|
{
|
||||||
|
val_u8 = atoi(row[1]);
|
||||||
|
if (val_u8 == 1)
|
||||||
|
{
|
||||||
|
systeme.compteur_sauvegarde_bdd = 0; // Traité par gestion_systeme() dans systeme.c
|
||||||
|
|
||||||
|
// RAZ de la demande dans la BDD :
|
||||||
|
sprintf(requete, "UPDATE TB_Systeme SET Valeur='0' WHERE Nom='Demande_sauvegarde_bdd' ");
|
||||||
|
mysql_query(bdd.pointeur, requete);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//---------------------------------------------------------------
|
||||||
else if (strstr(row[0], "Demande_reboot") != NULL)
|
else if (strstr(row[0], "Demande_reboot") != NULL)
|
||||||
{
|
{
|
||||||
if (strcmp(row[1], "Reboot") == 0)
|
if (strcmp(row[1], "Reboot") == 0)
|
||||||
@@ -346,19 +372,6 @@ char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
|
|||||||
systeme.heures_speciales[HEURE_SPECIALE_CREPUSCULE_NAUTIQUE].secondes = 0;
|
systeme.heures_speciales[HEURE_SPECIALE_CREPUSCULE_NAUTIQUE].secondes = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------
|
|
||||||
else if (strstr(row[0], "Demande_maj_nmea") != NULL)
|
|
||||||
{
|
|
||||||
val_u8 = atoi(row[1]);
|
|
||||||
if (val_u8 == 1)
|
|
||||||
{
|
|
||||||
flag_demande_maj_nmea = TRUE; // Flag traité en fin de cette fonction...
|
|
||||||
|
|
||||||
// RAZ de la demande dans la BDD :
|
|
||||||
sprintf(requete, "UPDATE TB_Systeme SET Valeur='0' WHERE Nom='Demande_maj_nmea' ");
|
|
||||||
mysql_query(bdd.pointeur, requete);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
mysql_free_result(result); //Libération du jeu de résultat
|
mysql_free_result(result); //Libération du jeu de résultat
|
||||||
|
|||||||
+7
-3
@@ -347,6 +347,9 @@ char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
|
|||||||
sprintf(tmp, "Déclenchement de l'évènement # %i [clé_primaire = %i]", no_event, events.events[no_event].cle_primaire);
|
sprintf(tmp, "Déclenchement de l'évènement # %i [clé_primaire = %i]", no_event, events.events[no_event].cle_primaire);
|
||||||
affichage_debug(__FILE__, __LINE__, tmp, TYPE_MESSAGE_DEBUG_OK);
|
affichage_debug(__FILE__, __LINE__, tmp, TYPE_MESSAGE_DEBUG_OK);
|
||||||
|
|
||||||
|
// Enregistrement historique :
|
||||||
|
enregistrement_historique(TYPE_SOURCE_HISTORIQUE_EVENTS, EVENT_DECLENCHEMENT, events.events[no_event].cle_primaire, 0, NULL);
|
||||||
|
|
||||||
declenchement_event(no_event);
|
declenchement_event(no_event);
|
||||||
|
|
||||||
if (events.events[no_event].conditions_horaires.nb > 0) events.events[no_event].sequenceur.etat = ETAT_SEQUENCEUR_EVENT_REPOS; // S'il y a condition horaire, on revient directement au repos, en attente de la prochaine condition horaire.
|
if (events.events[no_event].conditions_horaires.nb > 0) events.events[no_event].sequenceur.etat = ETAT_SEQUENCEUR_EVENT_REPOS; // S'il y a condition horaire, on revient directement au repos, en attente de la prochaine condition horaire.
|
||||||
@@ -367,6 +370,10 @@ char tmp[MAX_LONGUEUR_BUFFER_TEMPORAIRE_DEBUG];
|
|||||||
sprintf(tmp, "Event #%i : La condition de test est repassée à False. Le séquenceur repasse au repos.", no_event);
|
sprintf(tmp, "Event #%i : La condition de test est repassée à False. Le séquenceur repasse au repos.", no_event);
|
||||||
affichage_debug(__FILE__, __LINE__, tmp, TYPE_MESSAGE_DEBUG_OK);
|
affichage_debug(__FILE__, __LINE__, tmp, TYPE_MESSAGE_DEBUG_OK);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Enregistrement historique :
|
||||||
|
enregistrement_historique(TYPE_SOURCE_HISTORIQUE_EVENTS, EVENT_FIN_DECLENCHEMENT, events.events[no_event].cle_primaire, 0, NULL);
|
||||||
|
|
||||||
events.events[no_event].sequenceur.etat = ETAT_SEQUENCEUR_EVENT_REPOS; // Retour au repos
|
events.events[no_event].sequenceur.etat = ETAT_SEQUENCEUR_EVENT_REPOS; // Retour au repos
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -540,9 +547,6 @@ char chaine[20];
|
|||||||
enregistrement_historique(TYPE_SOURCE_HISTORIQUE_CIRCUITS, CIRCUIT_ACTION_EVENT, circuits.circuits[no_circuit].cle_primaire, events.events[no_event].cle_primaire, NULL);
|
enregistrement_historique(TYPE_SOURCE_HISTORIQUE_CIRCUITS, CIRCUIT_ACTION_EVENT, circuits.circuits[no_circuit].cle_primaire, events.events[no_event].cle_primaire, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enregistrement historique :
|
|
||||||
enregistrement_historique(TYPE_SOURCE_HISTORIQUE_EVENTS, EVENT_DECLENCHEMENT, events.events[no_event].cle_primaire, 0, NULL);
|
|
||||||
|
|
||||||
// Alarme message :
|
// Alarme message :
|
||||||
if (events.events[no_event].alarme_message > 0)
|
if (events.events[no_event].alarme_message > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user