Files

130 lines
5.5 KiB
C

//**********************************************************************************************************************************************************************************
// Fichier ENTREES.H
//
// Contient tous les define liés à la lecture de l'état des entrées
//**********************************************************************************************************************************************************************************
// Entrées GPIO :
#define CM3P_DI_MOD_RI 4 // Exemple GPIO #4
#define CM3P_DI_LIGHT_MOD 6
#define CM3P_DI_STATUS_MOD 7
#define CM3P_DI_USB1_ALERT_N 8
#define CM3P_DI_USB2_ALERT_N 9
#define CM3P_DI_USB3_ALERT_N 10
#define CM3P_DI_FROM_UC 28
#define CM3P_DI_LOW_12V 34
#define CM3P_DI_SIM_SW 36
#define CM4_DI_USB_BAS_ALERT_N 2
#define CM4_DI_USB_MILIEU_ALERT_N 3
#define CM4_DI_USB_HAUT_ALERT_N 4
#define CM4_LOW_32V_INPUT 6
#define CM4_DI_USB_ARRIERE_ALERT_N 8
#define CM4_DI_JACK_DETECT 26
#define CM4_DI_FROM_UC 27
// Général :
#define MAX_LONGUEUR_NOM_ENTREE 40
// Nombre max d'E/S :
#define MAX_NOMBRE_ENTREES_AUXILIAIRES 32
#define MAX_NOMBRE_ENTREES_LEVEL_SENSOR 8
#define MAX_NOMBRE_ENTREES_VOLTAGE 4
#define MAX_NOMBRE_ENTREES_NMEA 50 // A priori, doit être identique à NMEA_MAX_NOMBRE_PGN_ACTIFS du Compagnon (vers la ligne #903 de 'shared_shipheart_compagnon_defines.h').
#define MAX_NOMBRE_ENTREES_OW 32
#define MAX_NOMBRE_ENTREES_PREDEFINIES 100 // Estimation taille : environ 22 pour ShipBase + (32 modules x 2 entrées TEMP et IN_V))
#define MAX_NOMBRE_ENTREES_CORE 16
#define MAX_NOMBRE_ENTREES_GPIO 54 // Il y a 54 E/S GPIO qui peuvent être configurées en Entrée ou en Sortie mais ce nombre peut-être < 54 (vérifié au chargement de la BDD)
// Timings :
#define TEMPO_INIT_ENTREES_LEVEL_SENSOR 200 // En 10ms.
#define TEMPO_INIT_ENTREES_CORE 200 // En 10ms.
#define TEMPO_INIT_ENTREES_GPIO 0 // En 10ms. Défini le temps pendant lequel la gestion des entrées GPIO est bloquée en stand-bye.
#define PERIODE_LECTURE_ENTREES_AUX 100 // En x10ms.
#define PERIODE_LECTURE_ENTREES_LEVEL_SENSOR 100 // En x10ms.
#define PERIODE_LECTURE_ENTREES_VOLT 100 // En x10ms.
#define PERIODE_LECTURE_ENTREES_OW 100 // En x10ms.
#define PERIODE_LECTURE_ENTREES_PREDEFINIE 100 // En x10ms. // Non utilisée car mis à jour essentiellement par COmpagnon de façon asynchrone
#define PERIODE_LECTURE_ENTREES_CORE 500 // En x10ms.
#define PERIODE_LECTURE_ENTREES_GPIO 5 // En x10ms.
// Type entrées (utilisées dans la config des Réservoirs, Capteurs ou Batteries) :
#define TYPE_ENTREES_AUXILIAIRES 1
#define TYPE_ENTREES_LEVEL_SENSOR 2
#define TYPE_ENTREES_VOLTAGE 3
#define TYPE_ENTREES_OW 4
#define TYPE_ENTREES_PREDEFINIES 5
#define TYPE_ENTREES_IBS 6
#define TYPE_ENTREES_NMEA 7
#define TYPE_ENTREES_CAN 8
#define TYPE_ENTREES_CALCULEE_BOOLEEN 20
#define TYPE_ENTREES_CALCULEE_NUMERIQUE 21
#define TYPE_ENTREES_CORE 30
#define TYPE_ENTREES_GPIO 31
// Entrées OW :
#define DEVICE_OW_VALEUR_ERREUR_ETAT_GENERAL_NOK 0x8000 // Valeur numérique indiquant une erreur de device sur le capteur correspondant (en pratique, représente -327°C)
#define DEVICE_OW_VALEUR_ERREUR_ETAT_DEVICE_NOK 0x8001 // Valeur numérique indiquant une erreur de device sur le capteur correspondant (en pratique, représente -327°C)
#define OW_ETAT_DEVICE_OK 0 // Le dernier accès au device s'est bien déroulé
#define OW_ETAT_DEVICE_NOK 1 // Le dernier accès au device a rencontré une erreur
#define OW_ETAT_BUS_NOK 2 // L'accès au bus OW est impossible globalement (bus en CC par exemple)
#define OW_DEFAUT_BUS_AUCUN 0
#define OW_DEFAUT_BUS_COURT_CIRCUIT 1
#define OW_DEFAUT_BUS_TROP_DEVICES 2
// Codes prédéfinis :
#define ENTREE_PREDEFINIE_AUCUNE 0
#define ENTREE_PREDEFINIE_PAT 1
#define ENTREE_PREDEFINIE_HUM 2
#define ENTREE_PREDEFINIE_TEMP 3
#define ENTREE_PREDEFINIE_LAT 4
#define ENTREE_PREDEFINIE_LON 5
#define ENTREE_PREDEFINIE_IN_V 6
#define ENTREE_PREDEFINIE_IN_I 7
#define ENTREE_PREDEFINIE_USB_I 8
#define ENTREE_PREDEFINIE_EDM 9
#define ENTREE_PREDEFINIE_ACC_XYZ 10
#define ENTREE_PREDEFINIE_ACC_X 11
#define ENTREE_PREDEFINIE_ACC_Y 12
#define ENTREE_PREDEFINIE_ACC_Z 13
#define ENTREE_PREDEFINIE_ALT 14
#define ENTREE_PREDEFINIE_SOG 15
#define ENTREE_PREDEFINIE_COG 16
#define ENTREE_PREDEFINIE_SIV 17
#define ENTREE_PREDEFINIE_HPA 18
#define ENTREE_PREDEFINIE_VPA 19
#define ENTREE_PREDEFINIE_RSRP 20
#define ENTREE_PREDEFINIE_RSSI 21
#define ENTREE_PREDEFINIE_SINR 22
// Logique des entrées AUX :
#define ENTREE_AUX_LOGIQUE_NORMALE 0
#define ENTREE_AUX_LOGIQUE_INVERSEE 1
// Level Sensors - modes de fonctionnement :
#define ENTREE_LEVEL_SENSOR_MODE_FONCTIONNEMENT_NON_DEFINI 0
#define ENTREE_LEVEL_SENSOR_MODE_FONCTIONNEMENT_0_10V 1
#define ENTREE_LEVEL_SENSOR_MODE_FONCTIONNEMENT_500R 2
#define ENTREE_LEVEL_SENSOR_MODE_FONCTIONNEMENT_4_20MA 3
#define ENTREE_LEVEL_SENSOR_MODE_FONCTIONNEMENT_AUTO_TEST 4
#define ENTREE_LEVEL_SENSOR_MODE_FONCTIONNEMENT_DEFAUT_ISOLEMENT_MASSE 5
#define ENTREE_LEVEL_SENSOR_MODE_FONCTIONNEMENT_DEFAUT_ISOLEMENT_PLUS 6
#define ENTREE_LEVEL_SENSOR_MODE_FONCTIONNEMENT_DEFAUT_ISOLEMENT_FULL 7
// Etats séquenceur Entrées Level Sensor :
#define ETAT_SEQUENCEUR_ENTREES_LEVEL_SENSOR_INIT 0
#define ETAT_SEQUENCEUR_ENTREES_LEVEL_SENSOR_REPOS 1