Ajout Syslog et début de logging du buffering

This commit is contained in:
jfmartel 2023-12-01 06:34:46 -05:00
parent 454935965f
commit 40093d5acf
27 changed files with 1214 additions and 98 deletions

Binary file not shown.

View File

@ -5422,3 +5422,398 @@ Démarrage du logiciel Otarcik CAN le 2023-10-29 à 15:20:29
2023-10-29 15:20:29 Initialisation du dispositif [MasterCAN]
2023-10-29 15:20:29 Démarrage d'un module CAN...
2023-10-29 15:20:29 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-10-30 à 15:00:20
********************************************************************
2023-10-30 15:00:21 Librairie Axiomtek chargée avec succès
2023-10-30 15:00:21 Watchdog CPU arrêté
2023-10-30 15:00:21 Chargement de la configuration système...
2023-10-30 15:00:21 Configuration système chargée avec succès!
2023-10-30 15:00:21 Initialisation du dispositif [MasterCAN]
2023-10-30 15:00:21 Démarrage d'un module CAN...
2023-10-30 15:00:21 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-02 à 14:07:38
********************************************************************
2023-11-02 14:07:39 Librairie Axiomtek chargée avec succès
2023-11-02 14:07:39 Watchdog CPU arrêté
2023-11-02 14:07:39 Chargement de la configuration système...
2023-11-02 14:07:39 Configuration système chargée avec succès!
2023-11-02 14:07:39 Initialisation du dispositif [MasterCAN]
2023-11-02 14:07:39 Démarrage d'un module CAN...
2023-11-02 14:07:39 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-02 à 14:08:18
********************************************************************
2023-11-02 14:08:18 Librairie Axiomtek chargée avec succès
2023-11-02 14:08:18 Watchdog CPU arrêté
2023-11-02 14:08:18 Chargement de la configuration système...
2023-11-02 14:08:18 Configuration système chargée avec succès!
2023-11-02 14:08:18 Initialisation du dispositif [MasterCAN]
2023-11-02 14:08:18 Démarrage d'un module CAN...
2023-11-02 14:08:18 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-02 à 14:10:11
********************************************************************
2023-11-02 14:10:11 Librairie Axiomtek chargée avec succès
2023-11-02 14:10:11 Watchdog CPU arrêté
2023-11-02 14:10:11 Chargement de la configuration système...
2023-11-02 14:10:11 Configuration système chargée avec succès!
2023-11-02 14:10:11 Initialisation du dispositif [MasterCAN]
2023-11-02 14:10:11 Démarrage d'un module CAN...
2023-11-02 14:10:11 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-02 à 14:11:54
********************************************************************
2023-11-02 14:11:54 Librairie Axiomtek chargée avec succès
2023-11-02 14:11:54 Watchdog CPU arrêté
2023-11-02 14:11:54 Chargement de la configuration système...
2023-11-02 14:11:54 Configuration système chargée avec succès!
2023-11-02 14:11:54 Initialisation du dispositif [MasterCAN]
2023-11-02 14:11:54 Démarrage d'un module CAN...
2023-11-02 14:11:54 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-04 à 14:44:28
********************************************************************
2023-11-04 14:44:28 Librairie Axiomtek chargée avec succès
2023-11-04 14:44:28 Watchdog CPU arrêté
2023-11-04 14:44:28 Chargement de la configuration système...
2023-11-04 14:44:28 Configuration système chargée avec succès!
2023-11-04 14:44:28 Initialisation du dispositif [MasterCAN]
2023-11-04 14:44:28 Démarrage d'un module CAN...
2023-11-04 14:44:28 Module PCAN trouvé à l'adresse 1 avec le handle 0x51
2023-11-04 14:44:28 Initialisation d'un module PCAN. Handle:0x51, Baudrate:28
2023-11-04 14:44:28 Module PCAN USB initialisé avec succès
2023-11-04 14:44:28 Chargement de la base de données D:/Main/Dev/YULTek/Otarcik_CAN/PCtelemetrie20230822.dbc
2023-11-04 14:44:28 Base de données chargée avec succès. Flags: 0x0
2023-11-04 14:44:28 Démarrage du Watchdog CAN...
2023-11-04 14:44:28 Watchdog CAN initialisé pour le module sur le channel 1
2023-11-04 14:44:28 Dispositif [MasterCAN] initialisé avec succès!
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-05 à 05:32:14
********************************************************************
2023-11-05 05:32:14 Librairie Axiomtek chargée avec succès
2023-11-05 05:32:14 Watchdog CPU arrêté
2023-11-05 05:32:14 Chargement de la configuration système...
2023-11-05 05:32:14 Configuration système chargée avec succès!
2023-11-05 05:32:14 Initialisation du dispositif [MasterCAN]
2023-11-05 05:32:14 Démarrage d'un module CAN...
2023-11-05 05:32:14 Module PCAN trouvé à l'adresse 1 avec le handle 0x51
2023-11-05 05:32:14 Initialisation d'un module PCAN. Handle:0x51, Baudrate:28
2023-11-05 05:32:14 Module PCAN USB initialisé avec succès
2023-11-05 05:32:14 Chargement de la base de données D:/Main/Dev/YULTek/Otarcik_CAN/PCtelemetrie20230822.dbc
2023-11-05 05:32:14 Base de données chargée avec succès. Flags: 0x0
2023-11-05 05:32:14 Démarrage du Watchdog CAN...
2023-11-05 05:32:14 Watchdog CAN initialisé pour le module sur le channel 1
2023-11-05 05:32:14 Dispositif [MasterCAN] initialisé avec succès!
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-05 à 06:21:01
********************************************************************
2023-11-05 06:21:01 Librairie Axiomtek chargée avec succès
2023-11-05 06:21:01 Watchdog CPU arrêté
2023-11-05 06:21:01 Chargement de la configuration système...
2023-11-05 06:21:01 Configuration système chargée avec succès!
2023-11-05 06:21:01 Initialisation du dispositif [MasterCAN]
2023-11-05 06:21:01 Démarrage d'un module CAN...
2023-11-05 06:21:01 Module PCAN trouvé à l'adresse 1 avec le handle 0x51
2023-11-05 06:21:01 Initialisation d'un module PCAN. Handle:0x51, Baudrate:28
2023-11-05 06:21:01 Module PCAN USB initialisé avec succès
2023-11-05 06:21:01 Chargement de la base de données D:/Main/Dev/YULTek/Otarcik_CAN/PCtelemetrie20230822.dbc
2023-11-05 06:21:01 Base de données chargée avec succès. Flags: 0x0
2023-11-05 06:21:01 Démarrage du Watchdog CAN...
2023-11-05 06:21:01 Watchdog CAN initialisé pour le module sur le channel 1
2023-11-05 06:21:01 Dispositif [MasterCAN] initialisé avec succès!
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-06 à 14:40:40
********************************************************************
2023-11-06 14:40:40 Librairie Axiomtek chargée avec succès
2023-11-06 14:40:40 Watchdog CPU arrêté
2023-11-06 14:40:40 Chargement de la configuration système...
2023-11-06 14:40:40 Configuration système chargée avec succès!
2023-11-06 14:40:40 Initialisation du dispositif [MasterCAN]
2023-11-06 14:40:40 Démarrage d'un module CAN...
2023-11-06 14:40:40 Module PCAN trouvé à l'adresse 1 avec le handle 0x51
2023-11-06 14:40:40 Initialisation d'un module PCAN. Handle:0x51, Baudrate:28
2023-11-06 14:40:40 Module PCAN USB initialisé avec succès
2023-11-06 14:40:40 Chargement de la base de données D:/Main/Dev/YULTek/Otarcik_CAN/PCtelemetrie20230822.dbc
2023-11-06 14:40:40 Base de données chargée avec succès. Flags: 0x0
2023-11-06 14:40:40 Démarrage du Watchdog CAN...
2023-11-06 14:40:40 Watchdog CAN initialisé pour le module sur le channel 1
2023-11-06 14:40:40 Dispositif [MasterCAN] initialisé avec succès!
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-08 à 05:03:51
********************************************************************
2023-11-08 05:03:51 Librairie Axiomtek chargée avec succès
2023-11-08 05:03:51 Watchdog CPU arrêté
2023-11-08 05:03:51 Chargement de la configuration système...
2023-11-08 05:03:51 Configuration système chargée avec succès!
2023-11-08 05:03:51 Initialisation du dispositif [MasterCAN]
2023-11-08 05:03:51 Démarrage d'un module CAN...
2023-11-08 05:03:51 Module PCAN trouvé à l'adresse 1 avec le handle 0x51
2023-11-08 05:03:51 Initialisation d'un module PCAN. Handle:0x51, Baudrate:28
2023-11-08 05:03:51 Module PCAN USB initialisé avec succès
2023-11-08 05:03:51 Chargement de la base de données D:/Main/Dev/YULTek/Otarcik_CAN/PCtelemetrie20230822.dbc
2023-11-08 05:03:51 Base de données chargée avec succès. Flags: 0x0
2023-11-08 05:03:51 Démarrage du Watchdog CAN...
2023-11-08 05:03:51 Watchdog CAN initialisé pour le module sur le channel 1
2023-11-08 05:03:51 Dispositif [MasterCAN] initialisé avec succès!
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-08 à 05:27:42
********************************************************************
2023-11-08 05:27:42 Librairie Axiomtek chargée avec succès
2023-11-08 05:27:42 Watchdog CPU arrêté
2023-11-08 05:27:42 Chargement de la configuration système...
2023-11-08 05:27:42 Configuration système chargée avec succès!
2023-11-08 05:27:42 Initialisation du dispositif [MasterCAN]
2023-11-08 05:27:42 Démarrage d'un module CAN...
2023-11-08 05:27:42 Module PCAN trouvé à l'adresse 1 avec le handle 0x51
2023-11-08 05:27:42 Initialisation d'un module PCAN. Handle:0x51, Baudrate:28
2023-11-08 05:27:42 Module PCAN USB initialisé avec succès
2023-11-08 05:27:42 Chargement de la base de données D:/Main/Dev/YULTek/Otarcik_CAN/PCtelemetrie20230822.dbc
2023-11-08 05:27:42 Base de données chargée avec succès. Flags: 0x0
2023-11-08 05:27:42 Démarrage du Watchdog CAN...
2023-11-08 05:27:42 Watchdog CAN initialisé pour le module sur le channel 1
2023-11-08 05:27:42 Dispositif [MasterCAN] initialisé avec succès!
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-08 à 15:03:33
********************************************************************
2023-11-08 15:03:33 Librairie Axiomtek chargée avec succès
2023-11-08 15:03:33 Watchdog CPU arrêté
2023-11-08 15:03:33 Chargement de la configuration système...
2023-11-08 15:03:33 Configuration système chargée avec succès!
2023-11-08 15:03:33 Initialisation du dispositif [MasterCAN]
2023-11-08 15:03:33 Démarrage d'un module CAN...
2023-11-08 15:03:33 Module PCAN trouvé à l'adresse 1 avec le handle 0x51
2023-11-08 15:03:33 Initialisation d'un module PCAN. Handle:0x51, Baudrate:28
2023-11-08 15:03:33 Module PCAN USB initialisé avec succès
2023-11-08 15:03:33 Chargement de la base de données D:/Main/Dev/YULTek/Otarcik_CAN/PCtelemetrie20230822.dbc
2023-11-08 15:03:33 Base de données chargée avec succès. Flags: 0x0
2023-11-08 15:03:33 Démarrage du Watchdog CAN...
2023-11-08 15:03:33 Watchdog CAN initialisé pour le module sur le channel 1
2023-11-08 15:03:33 Dispositif [MasterCAN] initialisé avec succès!
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-08 à 15:04:31
********************************************************************
2023-11-08 15:04:31 Librairie Axiomtek chargée avec succès
2023-11-08 15:04:31 Watchdog CPU arrêté
2023-11-08 15:04:31 Chargement de la configuration système...
2023-11-08 15:04:31 Configuration système chargée avec succès!
2023-11-08 15:04:31 Initialisation du dispositif [MasterCAN]
2023-11-08 15:04:31 Démarrage d'un module CAN...
2023-11-08 15:04:31 Module PCAN trouvé à l'adresse 1 avec le handle 0x51
2023-11-08 15:04:31 Initialisation d'un module PCAN. Handle:0x51, Baudrate:28
2023-11-08 15:04:31 Module PCAN USB initialisé avec succès
2023-11-08 15:04:31 Chargement de la base de données D:/Main/Dev/YULTek/Otarcik_CAN/PCtelemetrie20230822.dbc
2023-11-08 15:04:31 Base de données chargée avec succès. Flags: 0x0
2023-11-08 15:04:31 Démarrage du Watchdog CAN...
2023-11-08 15:04:31 Watchdog CAN initialisé pour le module sur le channel 1
2023-11-08 15:04:31 Dispositif [MasterCAN] initialisé avec succès!
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 18:53:22
********************************************************************
2023-11-30 18:53:22 Librairie Axiomtek chargée avec succès
2023-11-30 18:53:22 Watchdog CPU arrêté
2023-11-30 18:53:22 Chargement de la configuration système...
2023-11-30 18:53:22 Configuration système chargée avec succès!
2023-11-30 18:53:22 Initialisation du dispositif [MasterCAN]
2023-11-30 18:53:22 Démarrage d'un module CAN...
2023-11-30 18:53:22 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 18:54:05
********************************************************************
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 18:54:24
********************************************************************
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 18:56:23
********************************************************************
2023-11-30 18:56:44 Librairie Axiomtek chargée avec succès
2023-11-30 18:56:46 Watchdog CPU arrêté
2023-11-30 18:56:46 Chargement de la configuration système...
2023-11-30 18:56:47 Configuration système chargée avec succès!
2023-11-30 18:56:47 Initialisation du dispositif [MasterCAN]
2023-11-30 18:56:47 Démarrage d'un module CAN...
2023-11-30 18:56:47 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 18:57:56
********************************************************************
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 18:58:11
********************************************************************
2023-11-30 18:58:11 Librairie Axiomtek chargée avec succès
2023-11-30 18:58:11 Watchdog CPU arrêté
2023-11-30 18:58:11 Chargement de la configuration système...
2023-11-30 18:58:11 Configuration système chargée avec succès!
2023-11-30 18:58:11 Initialisation du dispositif [MasterCAN]
2023-11-30 18:58:11 Démarrage d'un module CAN...
2023-11-30 18:58:11 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 18:59:17
********************************************************************
2023-11-30 18:59:23 Librairie Axiomtek chargée avec succès
2023-11-30 18:59:23 Watchdog CPU arrêté
2023-11-30 18:59:23 Chargement de la configuration système...
2023-11-30 18:59:23 Configuration système chargée avec succès!
2023-11-30 18:59:23 Initialisation du dispositif [MasterCAN]
2023-11-30 18:59:23 Démarrage d'un module CAN...
2023-11-30 18:59:23 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 19:00:20
********************************************************************
2023-11-30 19:00:20 Librairie Axiomtek chargée avec succès
2023-11-30 19:00:20 Watchdog CPU arrêté
2023-11-30 19:00:20 Chargement de la configuration système...
2023-11-30 19:00:20 Configuration système chargée avec succès!
2023-11-30 19:00:20 Initialisation du dispositif [MasterCAN]
2023-11-30 19:00:20 Démarrage d'un module CAN...
2023-11-30 19:00:20 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 19:00:42
********************************************************************
2023-11-30 19:00:43 Librairie Axiomtek chargée avec succès
2023-11-30 19:00:43 Watchdog CPU arrêté
2023-11-30 19:00:43 Chargement de la configuration système...
2023-11-30 19:00:43 Configuration système chargée avec succès!
2023-11-30 19:00:43 Initialisation du dispositif [MasterCAN]
2023-11-30 19:00:43 Démarrage d'un module CAN...
2023-11-30 19:00:43 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 19:01:43
********************************************************************
2023-11-30 19:01:43 Librairie Axiomtek chargée avec succès
2023-11-30 19:01:43 Watchdog CPU arrêté
2023-11-30 19:01:43 Chargement de la configuration système...
2023-11-30 19:01:43 Configuration système chargée avec succès!
2023-11-30 19:01:43 Initialisation du dispositif [MasterCAN]
2023-11-30 19:01:43 Démarrage d'un module CAN...
2023-11-30 19:01:43 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 19:04:46
********************************************************************
2023-11-30 19:04:46 Librairie Axiomtek chargée avec succès
2023-11-30 19:04:46 Watchdog CPU arrêté
2023-11-30 19:04:46 Chargement de la configuration système...
2023-11-30 19:04:46 Configuration système chargée avec succès!
2023-11-30 19:04:46 Initialisation du dispositif [MasterCAN]
2023-11-30 19:04:46 Démarrage d'un module CAN...
2023-11-30 19:04:46 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 19:06:09
********************************************************************
2023-11-30 19:06:09 Librairie Axiomtek chargée avec succès
2023-11-30 19:06:09 Watchdog CPU arrêté
2023-11-30 19:06:09 Chargement de la configuration système...
2023-11-30 19:06:09 Configuration système chargée avec succès!
2023-11-30 19:06:09 Initialisation du dispositif [MasterCAN]
2023-11-30 19:06:09 Démarrage d'un module CAN...
2023-11-30 19:06:09 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 19:08:39
********************************************************************
2023-11-30 19:08:39 Librairie Axiomtek chargée avec succès
2023-11-30 19:08:39 Watchdog CPU arrêté
2023-11-30 19:08:39 Chargement de la configuration système...
2023-11-30 19:08:39 Configuration système chargée avec succès!
2023-11-30 19:08:39 Initialisation du dispositif [MasterCAN]
2023-11-30 19:08:39 Démarrage d'un module CAN...
2023-11-30 19:08:39 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 19:28:36
********************************************************************
2023-11-30 19:28:36 Librairie Axiomtek chargée avec succès
2023-11-30 19:28:36 Watchdog CPU arrêté
2023-11-30 19:28:36 Chargement de la configuration système...
2023-11-30 19:28:36 Configuration système chargée avec succès!
2023-11-30 19:28:36 Initialisation du dispositif [MasterCAN]
2023-11-30 19:28:36 Démarrage d'un module CAN...
2023-11-30 19:28:36 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 20:03:41
********************************************************************
2023-11-30 20:03:41 Librairie Axiomtek chargée avec succès
2023-11-30 20:03:41 Watchdog CPU arrêté
2023-11-30 20:03:41 Chargement de la configuration système...
2023-11-30 20:03:41 Configuration système chargée avec succès!
2023-11-30 20:03:41 Initialisation du dispositif [MasterCAN]
2023-11-30 20:03:41 Démarrage d'un module CAN...
2023-11-30 20:03:41 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-11-30 à 20:16:25
********************************************************************
2023-11-30 20:16:25 Librairie Axiomtek chargée avec succès
2023-11-30 20:16:25 Watchdog CPU arrêté
2023-11-30 20:16:25 Chargement de la configuration système...
2023-11-30 20:16:25 Configuration système chargée avec succès!
2023-11-30 20:16:25 Initialisation du dispositif [MasterCAN]
2023-11-30 20:16:25 Démarrage d'un module CAN...
2023-11-30 20:16:25 Impossible de trouver le module CAN sur le channel 1
********************************************************************
Démarrage du logiciel Otarcik CAN le 2023-12-01 à 06:33:00
********************************************************************
2023-12-01 06:33:00 Librairie Axiomtek chargée avec succès
2023-12-01 06:33:00 Watchdog CPU arrêté
2023-12-01 06:33:00 Chargement de la configuration système...
2023-12-01 06:33:00 Configuration système chargée avec succès!
2023-12-01 06:33:00 Initialisation du dispositif [MasterCAN]
2023-12-01 06:33:00 Démarrage d'un module CAN...
2023-12-01 06:33:00 Impossible de trouver le module CAN sur le channel 1

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -59,7 +59,8 @@ SOURCES += Sources/main.cpp \
Sources/GeneralSystemParams.cpp \
Sources/CANBus/CANWatchdog.cpp \
Sources/ComputerBoardInterface.cpp \
Sources/CPUWatchdogConfig.cpp
Sources/CPUWatchdogConfig.cpp \
Sources/SysLogger.cpp
HEADERS += Sources/MainWindow.h \
Sources/PCANInterface.h \
@ -89,7 +90,8 @@ HEADERS += Sources/MainWindow.h \
Sources/CANBus/CANWatchdog.h \
Sources/Axiomtek/AxUfiAPI.h \
Sources/ComputerBoardInterface.h \
Sources/CPUWatchdogConfig.h
Sources/CPUWatchdogConfig.h \
Sources/SysLogger.h
FORMS += Sources/Gui/MainWindow.ui \
Sources/Gui/GeneralStatusPage.ui \

View File

@ -47,22 +47,22 @@ int CCANDevice::Init()
}
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Initialisation du dispositif [%1]").arg(mDeviceConfigInfo.mDeviceName));
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Initialisation du dispositif [%1]").arg(mDeviceConfigInfo.mDeviceName),"CCANDevice");
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Démarrage d'un module CAN...");
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Démarrage d'un module CAN...","CCANDevice");
mCANDriverIF = new CPCANInterface;
if(mCANDriverIF->GetDeviceHandle(mDeviceConfigInfo.mCANDeviceID,mDeviceHandle) != RET_OK)
{
QString Log = QString("Impossible de trouver le module CAN sur le channel %1").arg(mDeviceConfigInfo.mCANDeviceID);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(Log,true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(Log,"CCANDevice",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
mIsCANInitialized = false;
return RET_GENERAL_ERROR;
}
if(mCANDriverIF->Init(mDeviceHandle,mDeviceConfigInfo.mCANDeviceBaudrate) != RET_OK)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Impossible d'initialiser le matériel CAN",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Impossible d'initialiser le matériel CAN","CCANDevice",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
mIsCANInitialized = false;
return RET_GENERAL_ERROR;
}
@ -87,7 +87,7 @@ int CCANDevice::Init()
// if(mCANAnalyzer.Init(mDeviceConfigInfo.mCANDeviceID,mDeviceConfigInfo.mCANDeviceBaudrate,&mMessageList,mDeviceConfigInfo.mDevicePollPeriod) != RET_OK)
if(mCANAnalyzer.Init(mCANDriverIF,mDeviceHandle,mDeviceConfigInfo.mCANDeviceID,&mMessageList,mDeviceConfigInfo.mDevicePollPeriod) != RET_OK)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Le dispositif [%1] n'a pas pu s'initialiser").arg(mDeviceConfigInfo.mDeviceName),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Le dispositif [%1] n'a pas pu s'initialiser").arg(mDeviceConfigInfo.mDeviceName),"CCANDevice",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
mProgramPtr->SetCANConnectionStatusRequest(false);
mProgramPtr->UpdateCANModuleStatusRequest(mDeviceConfigInfo.mDeviceName,"Déconnecté","NOUPDATE");
return RET_GENERAL_ERROR;
@ -97,12 +97,12 @@ int CCANDevice::Init()
{
if(mCANWatchdog.Init(mCANDriverIF,mDeviceHandle,mDeviceConfigInfo.mWatchdogPeriod,mDeviceConfigInfo.mWatchdogCANMsgID) != RET_OK)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Impossible d'initialiser un watchdog CAN",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Impossible d'initialiser un watchdog CAN","CCANDevice",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
}
mCANWatchdog.StartWDT();
QString Log = QString("Watchdog CAN initialisé pour le module sur le channel %1").arg(mDeviceConfigInfo.mCANDeviceID);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(Log,true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(Log,"CCANDevice",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
}
mIsCANInitialized = true;
@ -116,7 +116,7 @@ int CCANDevice::Init()
mProgramPtr->SetCANConnectionStatusRequest(true);
mProgramPtr->UpdateCANModuleStatusRequest(mDeviceConfigInfo.mDeviceName,"Connecté","NOUPDATE");
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Dispositif [%1] initialisé avec succès!").arg(mDeviceConfigInfo.mDeviceName),1,true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Dispositif [%1] initialisé avec succès!").arg(mDeviceConfigInfo.mDeviceName),"CCANDevice",1,true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
return RET_OK;
}

View File

@ -27,7 +27,7 @@ int CCANWatchdog::Init(CPCANInterface *CANDriverIF, TPCANHandle CANDeviceHandle,
mCANDeviceHandle = CANDeviceHandle;
mWDTPeriod = WDTPeriod;
mCANDriverIF = CANDriverIF;
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Démarrage du Watchdog CAN...");
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Démarrage du Watchdog CAN...","CCANWatchdog");
mWatchdogTimer->setInterval(mWDTPeriod);
mWatchdogTimer->setSingleShot(false);
@ -52,7 +52,7 @@ void CCANWatchdog::WatchdogTimeoutTimerExpired()
qDebug("Sending 0x%X to CAN",data);
//QString LogMsg = QString("Écriture du watchdog. CAN ID %1 Payload: 0x%2 0x%3 0x%4 0x%5 0x%6 0x%7 0x%8 0x%9").arg(mWDTCANMsg.mCANMsgID,0,16).arg(mWDTCANMsg.mCANMsgData.at(7),0,16).arg(mWDTCANMsg.mCANMsgData.at(6),0,16).arg(mWDTCANMsg.mCANMsgData.at(5),0,16).arg(mWDTCANMsg.mCANMsgData.at(4),0,16).arg(mWDTCANMsg.mCANMsgData.at(3),0,16).arg(mWDTCANMsg.mCANMsgData.at(2),0,16).arg(mWDTCANMsg.mCANMsgData.at(1),0,16).arg(mWDTCANMsg.mCANMsgData[0],0,16);
QString LogMsg = QString("Écriture du watchdog. CAN ID 0x%1").arg(mWDTCANMsg.mCANMsgID,0,16);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,true,3);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,"CCANWatchdog",true,3);
}
int CCANWatchdog::StartWDT()

View File

@ -33,18 +33,18 @@ int CCANDatabase::LoadDatabaseFile(QString Filename)
status = kvaDbOpen(&mDatabaseDriverHandle);
if (status != kvaDbOK)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible d'initialiser la base de données (création du handle impossble"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible d'initialiser la base de données (création du handle impossble"),"CCANDatabase",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
qDebug("Could not create a database handle: %d\n", status);
return RET_GENERAL_ERROR;
}
// Load the database file
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Chargement de la base de données %1").arg(Filename),true);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Chargement de la base de données %1").arg(Filename),"CCANDatabase",true);
status = kvaDbReadFile(mDatabaseDriverHandle, Filename.toLocal8Bit().data());
if (status != kvaDbOK)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger le fichier %1").arg(Filename),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger le fichier %1").arg(Filename),"CCANDevice",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
qDebug("Could not load '%s': %d\n", Filename.toLocal8Bit().data(), status);
return RET_GENERAL_ERROR;
}
@ -52,11 +52,11 @@ int CCANDatabase::LoadDatabaseFile(QString Filename)
status = kvaDbGetFlags(mDatabaseDriverHandle, &flags);
if (status != kvaDbOK)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger les flags"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger les flags"),"CCANDatabase",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
qDebug("kvaDbGetFlags failed: %d\n", status);
return RET_GENERAL_ERROR;
}
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Base de données chargée avec succès. Flags: 0x%1").arg(flags),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Base de données chargée avec succès. Flags: 0x%1").arg(flags),"CCANDatabase",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
qDebug(" Database: flags=0x%x\n", flags);
mDatabaseFileLoaded = true;
@ -85,7 +85,7 @@ int CCANDatabase::BuildMessageList(QList<CCANMessage *> *MsgListPtr, QString Own
status = kvaDbGetFirstMsg (mDatabaseDriverHandle, &mh);
if (status != kvaDbOK)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger le premier message"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger le premier message"),"CCANDatabase",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
qDebug ("kvaDbGetFirstMsg failed: %d\n", status);
return RET_GENERAL_ERROR;
}

View File

@ -23,6 +23,8 @@ CMQTTClientWrapper::CMQTTClientWrapper()
mMessagesQueueMode = MQTT_DROP_MSG_MODE;
mDisconnectionIsVoluntary = false;
mIsClientConnecting = false;
mCircularBufferStatusText = mBufferingModeText = mUploadTimeText = "";
}
CMQTTClientWrapper::~CMQTTClientWrapper()
@ -43,6 +45,10 @@ int CMQTTClientWrapper::StartMQTTClient()
mMQTTRefreshTimer->start(mMQTTParams.mMQTTTransmitTimeout);
mMessagesQueueMode = MQTT_QUEUE_MSG_MODE;
ConnectToBroker();
mCircularBufferStatusText = QString("0/%1 messages (0\%)").arg(MQTT_CLIENT_MSG_QUEUE_SIZE);
mBufferingModeText = "Buffering";
UpdateGUIBufferingStatus();
return RET_OK;
}
@ -114,14 +120,16 @@ void CMQTTClientWrapper::StateChanged()
}
else
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Client MQTT déconnecté.",true,1);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Client MQTT déconnecté.","CMQTTClientWrapper",true,1);
mProgramPtr->SetMQTTConnectionSatusRequest(false);
mMQTTReconnectTimer->start(MQTT_CLIENT_RECONNECT_TIMEOUT);
mMQTTQueueFlushTimer->stop();
if(mDisconnectionIsVoluntary == false)
{
mMessagesQueueMode = MQTT_QUEUE_MSG_MODE; //We're disconnected, queue all the messages.
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Passage en mode buffering des messages MQTT",true,2);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Passage en mode buffering des messages MQTT","CMQTTClientWrapper",true,2);
mBufferingModeText = "Buffering";
UpdateGUIBufferingStatus();
}
}
break;
@ -131,16 +139,22 @@ void CMQTTClientWrapper::StateChanged()
mProgramPtr->SetMQTTConnectionSatusRequest(true);
mMQTTReconnectTimer->stop();
mIsClientConnecting = false;
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Client MQTT connecté.",true,1);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Client MQTT connecté.","CMQTTClientWrapper",true,1);
if(mMQTTMessagesQueue.isEmpty() == false)
{
mMessagesQueueMode = MQTT_QUEUE_MSG_MODE; //Stay in (or enter) queue mode until we empty the buffer
mMQTTQueueFlushTimer->start();
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("FIFO non vide, passage au mode de vidage de la FIFO",true,2);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("FIFO non vide, passage au mode de vidage de la FIFO","CMQTTClientWrapper",true,2);
mBufferingModeText = "Buffering";
mCircularBufferStatusText = QString("%2/%1 messages (0%3\%)").arg(MQTT_CLIENT_MSG_QUEUE_SIZE).arg(mMQTTMessagesQueue.size()).arg((mMQTTMessagesQueue.size()/MQTT_CLIENT_MSG_QUEUE_SIZE)*100);
UpdateGUIBufferingStatus();
}
else
{
mMessagesQueueMode = MQTT_TRANSMIT_MSG_MODE;
mBufferingModeText = "Non-buffering";
UpdateGUIBufferingStatus();
}
break;
}
@ -192,7 +206,7 @@ void CMQTTClientWrapper::MQTTSendTimerExpired()
{
qint32 res = mMQTTClient.publish(MessagesList->at(i).mMessageTopic,MessagesList->at(i).mMessagePayload.toLocal8Bit(),0,true);
QString LogMsg = QString("Envoi d'un message MQTT. Topic: %1 Payload: %2").arg(MessagesList->at(i).mMessageTopic).arg(MessagesList->at(i).mMessagePayload);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,true,3);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,"CMQTTClientWrapper",true,3);
}
qDebug("Sent %d MQTT messages",MessagesList->size());
@ -214,7 +228,11 @@ void CMQTTClientWrapper::MQTTSendTimerExpired()
}
mMQTTMessagesQueue.append(NewMsg);
QString LogMsg = QString("Ajout d'un message MQTT à la FIFO. Topic: %1 Payload: %2 FIFO size: %3").arg(MessagesList->at(i).mMessageTopic).arg(MessagesList->at(i).mMessagePayload).arg(mMQTTMessagesQueue.size());
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,true,3);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,"CMQTTClientWrapper",true,3);
mCircularBufferStatusText = QString("%2/%1 messages (0%3\%)").arg(MQTT_CLIENT_MSG_QUEUE_SIZE).arg(mMQTTMessagesQueue.size()).arg((mMQTTMessagesQueue.size()/MQTT_CLIENT_MSG_QUEUE_SIZE)*100);
UpdateGUIBufferingStatus();
}
}
break;
@ -243,7 +261,7 @@ void CMQTTClientWrapper::MQTTQueueFlushTimerExipred()
CMQTTMessage *Msg = mMQTTMessagesQueue.takeFirst();
qint32 res = mMQTTClient.publish(Msg->mMessageTopic,Msg->mMessagePayload.toLocal8Bit(),0,true);
QString LogMsg = QString("Envoi d'un message MQTT provenant du buffer. Topic: %1 Payload: %2 Buffer Size: %3").arg(Msg->mMessageTopic).arg(Msg->mMessagePayload).arg(mMQTTMessagesQueue.size());
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,true,3);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,"CMQTTClientWrapper",true,3);
delete Msg; //free memory
@ -251,7 +269,13 @@ void CMQTTClientWrapper::MQTTQueueFlushTimerExipred()
{
mMQTTQueueFlushTimer->stop();
mMessagesQueueMode = MQTT_TRANSMIT_MSG_MODE;
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Tous les messages MQTT de la FIFO ont été envoyés au serveur",true,2);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Tous les messages MQTT de la FIFO ont été envoyés au serveur","CMQTTClientWrapper",true,2);
}
}
int CMQTTClientWrapper::UpdateGUIBufferingStatus()
{
//mProgramPtr->UpdateMQTTBufferingStatusRequest(mBufferingModeText,mCircularBufferStatusText,mRemainingBufferingTimeText);
}

View File

@ -48,6 +48,10 @@ private:
QList<CCANDevice*> *mCANDevicesList;
QList<CMQTTMessage*> mMQTTMessagesQueue;
bool mIsClientConnecting;
QString mCircularBufferStatusText, mBufferingModeText, mUploadTimeText;
int UpdateGUIBufferingStatus();
public slots:
void StateChanged();

View File

@ -14,13 +14,13 @@ int CComputerBoardInterface::Init()
{
if(LoadLibrary() == RET_OK)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Librairie Axiomtek chargée avec succès"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Librairie Axiomtek chargée avec succès"),"CComputerBoardInterface",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
StopCPUWatchdog();
return RET_OK;
}
else
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible de charger la librairie Axiomtek"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible de charger la librairie Axiomtek"),"CComputerBoardInterface",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
}
return RET_OK;
@ -81,7 +81,7 @@ int CComputerBoardInterface::StartCPUWatchdog()
{
if(AxWDTexec(bWDT_ENABLE) == true)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Watchdog CPU démarré. Timeout: %1 secondes").arg(mWatchdogTimeout));
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Watchdog CPU démarré. Timeout: %1 secondes").arg(mWatchdogTimeout),"CComputerBoardInterface");
Ret = RET_OK;
}
else
@ -103,7 +103,7 @@ int CComputerBoardInterface::StopCPUWatchdog()
}
else
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Watchdog CPU arrêté"));
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Watchdog CPU arrêté"),"CComputerBoardInterface");
}
return Ret;
}

View File

@ -20,7 +20,7 @@
#include "GeneralMessagesLogDispatcher.h"
#include <QDateTime>
#include <SysLogger.h>
//singleton instantiation
CGeneralMessagesLogDispatcher CGeneralMessagesLogDispatcher::mSingleton;
@ -43,8 +43,10 @@ CGeneralMessagesLogDispatcher::~CGeneralMessagesLogDispatcher()
}
}
int CGeneralMessagesLogDispatcher::Init()
int CGeneralMessagesLogDispatcher::Init(CSysLogger *SysLoggerPtr)
{
mSysLoggerHandle = SysLoggerPtr;
QString FileName;
FileName = "./Logs/SystemLog.txt";
@ -63,31 +65,34 @@ int CGeneralMessagesLogDispatcher::Init()
mLogFileVerbosity = 3;
mGuiLogVerbosity = 3;
mSysLoggerHandle->SysLog("Dispatcher de message démarré","CGeneralMessageLogDispatcher");
return RET_OK;
}
int CGeneralMessagesLogDispatcher::AddLogMessage(QString LogLine, bool AddToGUILogPanel, int MsgVerbosity, eGenMsgTextErrorStatus TxtErrStatus)
int CGeneralMessagesLogDispatcher::AddLogMessage(QString LogLine, QString Module, bool AddToGUILogPanel, int MsgVerbosity, eGenMsgTextErrorStatus TxtErrStatus)
{
//TODO: Add text to log file...
LogLine.remove('\n');
LogLine.remove('\r');
LogLine.append('\n');
mSysLoggerHandle->SysLog(LogLine,Module);
LogLine.remove('\n');
LogLine.remove('\r');
LogLine.append('\n');
LogLine.prepend(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss "));
LogLine.prepend(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss "));
if(mSystemLogFile == NULL)
{
qDebug("GeneralMessagesLogDispatcher : Trying to add log to invalid system log file pointer ");
return RET_GENERAL_ERROR;
}
if(mSystemLogFile == NULL)
{
qDebug("GeneralMessagesLogDispatcher : Trying to add log to invalid system log file pointer ");
return RET_GENERAL_ERROR;
}
if(mSystemLogFile->isOpen() == false)
{
qDebug("GeneralMessagesLogDispatcher : Trying to add log to unopened system log file");
return RET_GENERAL_ERROR;
}
if(mSystemLogFile->isOpen() == false)
{
qDebug("GeneralMessagesLogDispatcher : Trying to add log to unopened system log file");
return RET_GENERAL_ERROR;
}
#ifdef GENERAL_MESSAGES_SEND_TO_STDOUT
qDebug("%s",qPrintable(LogLine));

View File

@ -7,6 +7,7 @@
#include <QFile>
#include <QStringList>
class CSysLogger;
class CGeneralMessagesLogDispatcher
{
@ -30,10 +31,10 @@ public:
CGeneralMessagesLogDispatcher();
~CGeneralMessagesLogDispatcher();
int AddLogMessage(QString LogLine, bool AddToGUILogPanel = true, int MsgVerbosity = 1, eGenMsgTextErrorStatus TxtErrStatus = GEN_MSG_TXT_NO_ERROR_STATUS);
int AddLogMessage(QString LogLine, QString Module, bool AddToGUILogPanel = true, int MsgVerbosity = 1, eGenMsgTextErrorStatus TxtErrStatus = GEN_MSG_TXT_NO_ERROR_STATUS);
CGeneralStatusPage *mGeneralStatusPageHandle;
int BindGuiPageHandle(CGeneralStatusPage *Handle);
int Init();
int Init(CSysLogger *SysLoggerPtr);
int SetLogVerbosities(int LogFileVerbosity, int GuiLogVerbosity);
private:
@ -41,6 +42,7 @@ private:
QFile *mSystemLogFile;
int mLogFileVerbosity;
int mGuiLogVerbosity;
CSysLogger *mSysLoggerHandle;
};

View File

@ -154,6 +154,15 @@ int CGeneralStatusPage::ClearCANModuleStatusTable()
return RET_OK;
}
int CGeneralStatusPage::UpdateMQTTBufferingStatus(QString Mode, QString FIFOSize, QString RemainingTime)
{
ui->mBufferingMode->setText(Mode);
ui->mBufferSizeValue->setText(FIFOSize);
ui->mBufferTimeRemaining->setText(RemainingTime);
return RET_OK;
}
int CGeneralStatusPage::UpdateCANModuleStatus(QString ModuleName, QString ModuleStatus, QString Buffer)
{
QList<QTableWidgetItem *> Items = ui->mCANModuleStatusTableWdgt->findItems(ModuleName,Qt::MatchFixedString);

View File

@ -38,6 +38,7 @@ public:
int SetCANConnectionStatus(bool Connected);
int UpdateCANModuleStatus(QString ModuleName, QString ModuleStatus, QString Buffer);
int ClearCANModuleStatusTable();
int UpdateMQTTBufferingStatus(QString Mode, QString FIFOSize, QString RemainingTime);
private:

View File

@ -150,14 +150,14 @@
</font>
</property>
<property name="text">
<string>Statut des module CAN </string>
<string>Statut des modules CAN </string>
</property>
</widget>
<widget class="QPushButton" name="mQuitAppBtn">
<property name="geometry">
<rect>
<x>1230</x>
<y>310</y>
<x>1470</x>
<y>550</y>
<width>131</width>
<height>22</height>
</rect>
@ -166,6 +166,165 @@
<string>Quitter l'application</string>
</property>
</widget>
<widget class="QLabel" name="mInternetConnectedLbl">
<property name="geometry">
<rect>
<x>1230</x>
<y>270</y>
<width>61</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Internet:</string>
</property>
</widget>
<widget class="QLabel" name="mInternetPresentStatLbl">
<property name="geometry">
<rect>
<x>1300</x>
<y>270</y>
<width>121</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Détecté</string>
</property>
</widget>
<widget class="QGroupBox" name="MQTTBufferingGrpBx">
<property name="geometry">
<rect>
<x>1210</x>
<y>320</y>
<width>391</width>
<height>141</height>
</rect>
</property>
<property name="title">
<string>Buffering MQTT</string>
</property>
<widget class="QLabel" name="mBufferingModeLbl">
<property name="geometry">
<rect>
<x>50</x>
<y>30</y>
<width>91</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Mode buffering:</string>
</property>
</widget>
<widget class="QLabel" name="mBufferSizeLbl">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>131</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Taille buffer circulaire:</string>
</property>
</widget>
<widget class="QLabel" name="mBufferTimeRemainingLbl">
<property name="geometry">
<rect>
<x>50</x>
<y>90</y>
<width>91</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Durée restante:</string>
</property>
</widget>
<widget class="QLabel" name="mBufferingMode">
<property name="geometry">
<rect>
<x>150</x>
<y>30</y>
<width>111</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Inactif</string>
</property>
</widget>
<widget class="QLabel" name="mBufferSizeValue">
<property name="geometry">
<rect>
<x>150</x>
<y>60</y>
<width>131</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>0/5000</string>
</property>
</widget>
<widget class="QLabel" name="mBufferTimeRemaining">
<property name="geometry">
<rect>
<x>150</x>
<y>90</y>
<width>91</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>xxx minutes</string>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>

View File

@ -57,17 +57,16 @@ int COtarcikCan::Start()
mMainWindow.show();
mSysLogger.Start("logs4.papertrailapp.com",27817);
CGeneralMessagesLogDispatcher::instance()->BindGuiPageHandle(mMainWindow.mGeneralStatusPage);
CGeneralMessagesLogDispatcher::instance()->Init();
// CGeneralMessagesLogDispatcher::instance()->Init();
// CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Démarrage du logiciel OtarcikCAN"));
CGeneralMessagesLogDispatcher::instance()->Init(&mSysLogger);
mCPUInterface.Init();
if(mSystemConfig.LoadConfig() == RET_OK)
{
QList<CCANDeviceConfig*> *CANDeviceConfigList;
CANDeviceConfigList = mSystemConfig.GetCANDevicesConfigList();
if(CANDeviceConfigList != 0)
@ -106,7 +105,7 @@ int COtarcikCan::Start()
}
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Démarrage du logiciel OtarcikCAN"));
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Démarrage du logiciel OtarcikCAN"),"CPCANInterface");
// mCANBusMQTTClient.ConnectToBroker();
mCANBusMQTTClient.StartMQTTClient();
@ -261,6 +260,11 @@ int COtarcikCan::UpdateCANModuleStatusRequest(QString ModuleName, QString Module
return mMainWindow.mGeneralStatusPage->UpdateCANModuleStatus(ModuleName,ModuleStatus,Buffer);
}
int COtarcikCan::UpdateMQTTBufferingStatusRequest(QString BufferingMode, QString FIFOSize, QString RemainingTime)
{
mMainWindow.mGeneralStatusPage->UpdateMQTTBufferingStatus(BufferingMode,FIFOSize,RemainingTime);
return RET_OK;
}
int COtarcikCan::SaveCANWatchdogSettingsRequest(CCANWatchdogConfig *CANWatchdogConfig)
{

View File

@ -10,6 +10,7 @@
#include "SystemConfig.h"
#include "MQTTClientWrapper.h"
#include "ComputerBoardInterface.h"
#include "SysLogger.h"
class COtarcikCan : public QObject
@ -24,6 +25,7 @@ public:
QTimer *mGPTimer;
CComputerBoardInterface mCPUInterface;
QTimer *mWatchdogTimer;
CSysLogger mSysLogger;
int Start();
@ -40,6 +42,8 @@ public:
int SetMQTTConnectionSatusRequest(bool Connected);
int UpdateCANModuleStatusRequest(QString ModuleName, QString ModuleStatus, QString Buffer);
int UpdateMQTTBufferingStatusRequest(QString BufferingMode, QString FIFOSize,QString RemainingTime);
int SaveCANWatchdogSettingsRequest(CCANWatchdogConfig *CANWatchdogConfig);
void QuitApplicationRequest();

View File

@ -39,7 +39,7 @@ int CPCANInterface::GetDeviceHandle(quint8 DeviceID, TPCANHandle &Handle)
}
Handle = TempHandle;
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Module PCAN trouvé à l'adresse %1 avec le handle 0x%2").arg(DeviceID).arg(Handle,0,16));
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Module PCAN trouvé à l'adresse %1 avec le handle 0x%2").arg(DeviceID).arg(Handle,0,16),"CPCANInterface");
return RET_OK;
}
@ -51,7 +51,7 @@ int CPCANInterface::Init(TPCANHandle CANDeviceHandle, TPCANBaudrate CANBaudRate)
TPCANStatus Result;
Result = CAN_Initialize(CANDeviceHandle, CANBaudRate);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Initialisation d'un module PCAN. Handle:0x%1, Baudrate:%2").arg(CANDeviceHandle,0,16).arg(CANBaudRate));
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Initialisation d'un module PCAN. Handle:0x%1, Baudrate:%2").arg(CANDeviceHandle,0,16).arg(CANBaudRate),"CPCANInterface");
if(Result != PCAN_ERROR_OK)
{
@ -60,14 +60,14 @@ int CPCANInterface::Init(TPCANHandle CANDeviceHandle, TPCANBaudrate CANBaudRate)
char strMsg[256];
CAN_GetErrorText(Result, 0, strMsg);
qDebug("%s",strMsg);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible d'initialiser un module USB PCAN. Erreur:%1").arg(strMsg),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible d'initialiser un module USB PCAN. Erreur:%1").arg(strMsg),"CPCANInterface",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CANInterfaceOpened = false;
return RET_GENERAL_ERROR;
}
else
{
CANInterfaceOpened = true;
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Module PCAN USB initialisé avec succès",true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Module PCAN USB initialisé avec succès","CPCANInterface",true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
}
return RET_OK;
}
@ -75,17 +75,17 @@ int CPCANInterface::Init(TPCANHandle CANDeviceHandle, TPCANBaudrate CANBaudRate)
int CPCANInterface::DeInit()
{
TPCANStatus Result;
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Déinitialisation du module PCAN USB ID %1").arg(mInterfaceCANHandle));
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Déinitialisation du module PCAN USB ID %1").arg(mInterfaceCANHandle),"CPCANInterface");
Result = CAN_Uninitialize(mInterfaceCANHandle) != PCAN_ERROR_OK;
if(Result)
{
char strMsg[256];
CAN_GetErrorText(Result, 0, strMsg);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible de déinitialiser un module USB PCAN.. Error:%1").arg(strMsg),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible de déinitialiser un module USB PCAN.. Error:%1").arg(strMsg),"CPCANInterface",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
}
else
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Module PCAN USB déinitialisé avec succès...",true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Module PCAN USB déinitialisé avec succès...","CPCANInterface",true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
}
return RET_OK;

View File

@ -0,0 +1,75 @@
#include "SysLogger.h"
#include "defines.h"
#include <QDateTime>
#include <QString>
CSysLogger::CSysLogger(QObject *parent) : QObject(parent)
{
connect(&mSyslogSocket,&QAbstractSocket::stateChanged,this,&CSysLogger::SocketStateChanged);
}
int CSysLogger::Start(QString SyslogServerAddress, int SyslogServerPort)
{
mSyslogServerAddress = SyslogServerAddress;
mSyslogServerPort = SyslogServerPort;
mSyslogSocket.connectToHost(SyslogServerAddress,SyslogServerPort);
return RET_OK;
}
void CSysLogger::SocketStateChanged(QAbstractSocket::SocketState socketState)
{
qDebug("Syslog socked state : %d",socketState);
switch (socketState)
{
case QAbstractSocket::ConnectedState:
{
qDebug("Syslogger connected...");
SysLog("Syslogger connected","CSysLogger");
break;
}
case QAbstractSocket::UnconnectedState:
{
break;
}
default:
{
qDebug("Syslogger Disconnected...");
break;
}
}
}
bool CSysLogger::IsSyslogServerConnected()
{
int strate = mSyslogSocket.state();
if(mSyslogSocket.state() == QAbstractSocket::ConnectedState || mSyslogSocket.state() == QAbstractSocket::BoundState)
return true;
return false;
}
int CSysLogger::SysLog(QString Message, QString Module)
{
if(IsSyslogServerConnected() == false)
return RET_GENERAL_ERROR;
QString MsgString;
//ISO date timestamp format
QDateTime datetime(QDateTime::currentDateTime());
datetime.setOffsetFromUtc(datetime.offsetFromUtc()); //this makes no sense but it's to circumvent a bug in QT
MsgString = datetime.toString(Qt::ISODate);
MsgString.append(" Station_OT2301 OtarcikCAN");
if(Module.isEmpty() == false)
{
MsgString.append(QString("[%1]").arg(Module));
}
MsgString.append(QString(":%1").arg(Message));
MsgString.append("\n\r");
mSyslogSocket.write(MsgString.toUtf8());
return RET_OK;
}

View File

@ -0,0 +1,31 @@
#ifndef SYSLOGGER_H
#define SYSLOGGER_H
#include <QObject>
#include <QTcpSocket>
#include <QUdpSocket>
class CSysLogger : public QObject
{
Q_OBJECT
public:
explicit CSysLogger(QObject *parent = 0);
int Start(QString SyslogServerAddress,int SyslogServerPort);
bool IsSyslogServerConnected();
int SysLog(QString Message, QString Module = "");
QTcpSocket mSyslogSocket;
private:
QString mSyslogServerAddress;
int mSyslogServerPort;
signals:
public slots:
void SocketStateChanged(QAbstractSocket::SocketState socketState);
};
#endif // SYSLOGGER_H

View File

@ -16,7 +16,7 @@ CSystemConfig::~CSystemConfig()
int CSystemConfig::LoadConfig()
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Chargement de la configuration système..."));
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Chargement de la configuration système..."),"CPCANInterface");
// if(DevicesList == 0)
// {
// qDebug("CSystemConfig: Trying to load a config into an invalid devices list");
@ -30,13 +30,13 @@ int CSystemConfig::LoadConfig()
if(ConfigFile->open(QIODevice::ReadOnly | QIODevice::Unbuffered) == false)
{
qDebug("CSystemConfig: Failed to open config file in config loading");
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Impossible d'ouvrir le fichier /Config/Station.cfg"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Impossible d'ouvrir le fichier /Config/Station.cfg"),"CPCANInterface",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
return RET_GENERAL_ERROR;
}
}
else
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Pointeur vers QFile invalide !!!"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Pointeur vers QFile invalide !!!"),"CPCANInterface",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
qDebug("CSystemConfig: Invalid QFile pointer in config loading...");
return RET_GENERAL_ERROR;
}
@ -50,7 +50,7 @@ int CSystemConfig::LoadConfig()
*InputStream >> MagicNbr;
if(MagicNbr != OTARCIK_CONFIG_FILE_MAGIC_NBR)
{
// CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Fichier /Config/Station.cfg corrompu. Création d'une config vide"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_WARNING_STATUS);
// CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Fichier /Config/Station.cfg corrompu. Création d'une config vide"),"CPCANInterface",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_WARNING_STATUS);
ConfigFile->close();
// CreateEmptyConfig();
return RET_GENERAL_ERROR;
@ -90,26 +90,26 @@ int CSystemConfig::LoadConfig()
delete ConfigFile;
delete InputStream;
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Configuration système chargée avec succès!"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Configuration système chargée avec succès!"),"CPCANInterface",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
return RET_OK;
}
int CSystemConfig::SaveConfig()
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Sauvegarde de la configuration système..."));
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Sauvegarde de la configuration système..."),"CPCANInterface");
QFile *ConfigFile = new QFile("./Config/Station.cfg");
if(ConfigFile)
{
if(ConfigFile->open(QIODevice::WriteOnly | QIODevice::Unbuffered) == false)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Impossible d'ouvrir le fichier /Config/Station.cfg"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Impossible d'ouvrir le fichier /Config/Station.cfg"),"CPCANInterface",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
return RET_GENERAL_ERROR;
}
}
else
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Pointeur vers QFile invalide !!!"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Pointeur vers QFile invalide !!!"),"CPCANInterface",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
return RET_GENERAL_ERROR;
}
@ -148,7 +148,7 @@ int CSystemConfig::SaveConfig()
delete ConfigFile;
delete OutputStream;
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Configuration système sauvegardée avec succès."),true,3,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Configuration système sauvegardée avec succès."),"CPCANInterface",true,3,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
return RET_OK;
}

Binary file not shown.

View File

@ -24,6 +24,7 @@ debug/GeneralSystemParams.o
debug/CANWatchdog.o
debug/ComputerBoardInterface.o
debug/CPUWatchdogConfig.o
debug/SysLogger.o
debug/moc_MainWindow.o
debug/moc_PCANInterface.o
debug/moc_OtarcikCan.o
@ -37,3 +38,4 @@ debug/moc_CANDevice.o
debug/moc_MQTTClientWrapper.o
debug/moc_CCANWatchdogSettingsPage.o
debug/moc_CANWatchdog.o
debug/moc_SysLogger.o

View File

@ -24,6 +24,7 @@ release/GeneralSystemParams.o
release/CANWatchdog.o
release/ComputerBoardInterface.o
release/CPUWatchdogConfig.o
release/SysLogger.o
release/moc_MainWindow.o
release/moc_PCANInterface.o
release/moc_OtarcikCan.o
@ -37,3 +38,4 @@ release/moc_CANDevice.o
release/moc_MQTTClientWrapper.o
release/moc_CCANWatchdogSettingsPage.o
release/moc_CANWatchdog.o
release/moc_SysLogger.o

View File

@ -11,6 +11,7 @@
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QPushButton>
@ -32,6 +33,15 @@ public:
QTableWidget *mCANModuleStatusTableWdgt;
QLabel *label;
QPushButton *mQuitAppBtn;
QLabel *mInternetConnectedLbl;
QLabel *mInternetPresentStatLbl;
QGroupBox *MQTTBufferingGrpBx;
QLabel *mBufferingModeLbl;
QLabel *mBufferSizeLbl;
QLabel *mBufferTimeRemainingLbl;
QLabel *mBufferingMode;
QLabel *mBufferSizeValue;
QLabel *mBufferTimeRemaining;
void setupUi(QWidget *CGeneralStatusPage)
{
@ -86,7 +96,44 @@ public:
label->setFont(font3);
mQuitAppBtn = new QPushButton(CGeneralStatusPage);
mQuitAppBtn->setObjectName(QString::fromUtf8("mQuitAppBtn"));
mQuitAppBtn->setGeometry(QRect(1230, 310, 131, 22));
mQuitAppBtn->setGeometry(QRect(1470, 550, 131, 22));
mInternetConnectedLbl = new QLabel(CGeneralStatusPage);
mInternetConnectedLbl->setObjectName(QString::fromUtf8("mInternetConnectedLbl"));
mInternetConnectedLbl->setGeometry(QRect(1230, 270, 61, 16));
mInternetConnectedLbl->setFont(font1);
mInternetPresentStatLbl = new QLabel(CGeneralStatusPage);
mInternetPresentStatLbl->setObjectName(QString::fromUtf8("mInternetPresentStatLbl"));
mInternetPresentStatLbl->setGeometry(QRect(1300, 270, 121, 16));
mInternetPresentStatLbl->setFont(font2);
MQTTBufferingGrpBx = new QGroupBox(CGeneralStatusPage);
MQTTBufferingGrpBx->setObjectName(QString::fromUtf8("MQTTBufferingGrpBx"));
MQTTBufferingGrpBx->setGeometry(QRect(1210, 320, 391, 141));
mBufferingModeLbl = new QLabel(MQTTBufferingGrpBx);
mBufferingModeLbl->setObjectName(QString::fromUtf8("mBufferingModeLbl"));
mBufferingModeLbl->setGeometry(QRect(50, 30, 91, 21));
QFont font4;
font4.setPointSize(10);
mBufferingModeLbl->setFont(font4);
mBufferSizeLbl = new QLabel(MQTTBufferingGrpBx);
mBufferSizeLbl->setObjectName(QString::fromUtf8("mBufferSizeLbl"));
mBufferSizeLbl->setGeometry(QRect(10, 60, 131, 21));
mBufferSizeLbl->setFont(font4);
mBufferTimeRemainingLbl = new QLabel(MQTTBufferingGrpBx);
mBufferTimeRemainingLbl->setObjectName(QString::fromUtf8("mBufferTimeRemainingLbl"));
mBufferTimeRemainingLbl->setGeometry(QRect(50, 90, 91, 21));
mBufferTimeRemainingLbl->setFont(font4);
mBufferingMode = new QLabel(MQTTBufferingGrpBx);
mBufferingMode->setObjectName(QString::fromUtf8("mBufferingMode"));
mBufferingMode->setGeometry(QRect(150, 30, 111, 21));
mBufferingMode->setFont(font4);
mBufferSizeValue = new QLabel(MQTTBufferingGrpBx);
mBufferSizeValue->setObjectName(QString::fromUtf8("mBufferSizeValue"));
mBufferSizeValue->setGeometry(QRect(150, 60, 131, 21));
mBufferSizeValue->setFont(font4);
mBufferTimeRemaining = new QLabel(MQTTBufferingGrpBx);
mBufferTimeRemaining->setObjectName(QString::fromUtf8("mBufferTimeRemaining"));
mBufferTimeRemaining->setGeometry(QRect(150, 90, 91, 21));
mBufferTimeRemaining->setFont(font4);
retranslateUi(CGeneralStatusPage);
@ -101,8 +148,17 @@ public:
mClientMQTTLbl->setText(QCoreApplication::translate("CGeneralStatusPage", "Client MQTT:", nullptr));
mPuckCANConStatLbl->setText(QCoreApplication::translate("CGeneralStatusPage", "D\303\251connect\303\251e", nullptr));
mClientMQTTConnStatLbl->setText(QCoreApplication::translate("CGeneralStatusPage", "D\303\251connect\303\251", nullptr));
label->setText(QCoreApplication::translate("CGeneralStatusPage", "Statut des module CAN ", nullptr));
label->setText(QCoreApplication::translate("CGeneralStatusPage", "Statut des modules CAN ", nullptr));
mQuitAppBtn->setText(QCoreApplication::translate("CGeneralStatusPage", "Quitter l'application", nullptr));
mInternetConnectedLbl->setText(QCoreApplication::translate("CGeneralStatusPage", "Internet:", nullptr));
mInternetPresentStatLbl->setText(QCoreApplication::translate("CGeneralStatusPage", "D\303\251tect\303\251", nullptr));
MQTTBufferingGrpBx->setTitle(QCoreApplication::translate("CGeneralStatusPage", "Buffering MQTT", nullptr));
mBufferingModeLbl->setText(QCoreApplication::translate("CGeneralStatusPage", "Mode buffering:", nullptr));
mBufferSizeLbl->setText(QCoreApplication::translate("CGeneralStatusPage", "Taille buffer circulaire:", nullptr));
mBufferTimeRemainingLbl->setText(QCoreApplication::translate("CGeneralStatusPage", "Dur\303\251e restante:", nullptr));
mBufferingMode->setText(QCoreApplication::translate("CGeneralStatusPage", "Inactif", nullptr));
mBufferSizeValue->setText(QCoreApplication::translate("CGeneralStatusPage", "0/5000", nullptr));
mBufferTimeRemaining->setText(QCoreApplication::translate("CGeneralStatusPage", "xxx minutes", nullptr));
} // retranslateUi
};

View File

@ -18,4 +18,9 @@ x Assurer de ne pas avoir à redémarrer le soft quand on change un paramètre C
x Ajouter le buffering lors d'un blackout internet
- Implémenter un moyen de créer un fichier de config vide
- Contrôler le process Zigbee dans l'application
- Ajouter la détection internet et le bit de présence CAN
- Modifier l'assignation du registre watchdog CAN pour utiliser la DB CAN
- Syslog server???
- Vérifier pourquoi EMQX ne voulait pas se reconnecter le 2023-11-28