//********************************************************************************************************************************************************************************** // Fichier CIRCUITS.H // // Contient tous les define liés aux circuits //**********************************************************************************************************************************************************************************/ // Maximums : #define MAX_NOMBRE_CIRCUITS 256 // Nombre maximal de circuits commandés par ShipHeart, quelle que soit la carte sur laquelle ils sont. #define MAX_CONSIGNE_CIRCUIT 100 #define MAX_NOMBRE_VARIABLES_CIRCUITS 7 #define MAX_TAILLE_NOM_CIRCUITS 80 // Lié à dimension du champs 'Nom' dans TB_Circuits #define MAX_CIRCUITS_PAR_MODULE_SHIPBASE_V1 2 // ShipBase proprement-dit et ports USB en face avant #define MAX_CIRCUITS_PAR_MODULE_SHIPBASE_V2 3 // ShipBase proprement-dit, ports USB en face avant et port USB à l'arrière #define MAX_CIRCUITS_PAR_MODULE_SP8XX 8 // Valable pour les SP812 et SP8DC #define MAX_CIRCUITS_PAR_MODULE_SP4AC 4 #define MAX_CIRCUITS_PAR_MODULE MAX_CIRCUITS_PAR_MODULE_SP8XX #define MAX_COURANT_MASSES_SP8DC 25.4 // En A (la limite vient du fait que la valeur est ensuite transmise aux SP8DC sous forme de uint_8). // Timings : #define CIRCUITS_TEMPO_INIT 100 // En x 10ms #define CIRCUITS_PERIODE_MISE_A_JOUR 10 // En x 10ms #define CIRCUIT_TEMPO_INIT 20 // En x 10ms // Général : #define CIRCUITS_TENSION_CARTE_OK 0 #define CIRCUITS_TENSION_CARTE_UNDERVOLTAGE 1 // Etat de commande carte : #define CIRCUITS_ETAT_COMMANDE_CARTE_OK 0 #define CIRCUITS_ETAT_COMMANDE_CARTE_UNDERVOLTAGE 1 #define CIRCUITS_ETAT_COMMANDE_CARTE_TEST 2 // Modes de commande circuits : #define CIRCUITS_MODE_COMMANDE_ON_OFF 0 // Ne peut prendre que deux états ON/OFF #define CIRCUITS_MODE_COMMANDE_ON_OFF_SOFT 1 // Ne peut prendre que deux états ON/OFF mais la transition de l'un à l'autre se fait de façon douce #define CIRCUITS_MODE_COMMANDE_VARIABLE_SOFT 2 // Peut prendre toute valeur entre 0 et 100 et start/stop soft #define CIRCUITS_MODE_COMMANDE_CADENCE 3 // Origine consigne : #define CIRCUITS_ORIGINE_CONSIGNE_SHIPBASE 0 #define CIRCUITS_ORIGINE_CONSIGNE_TIME_OUT 1 #define CIRCUITS_ORIGINE_CONSIGNE_EVENT 2 #define CIRCUITS_ORIGINE_CONSIGNE_DEFAUT 3 // SHIPBASE : #define SB_CIRCUIT_NO_SHIPHEART 0 #define SB_CIRCUIT_NO_USB_AVANT 1 #define SB_CIRCUIT_NO_USB_ARRIERE 2 // SP4AC : #define SP4AC_NOMBRE_CIRCUITS 4 // SP8XX = SP812 ou SP8DC indifféremment // ATTENTION : il est important de s'assurer que tous les defines ci-dessous s'appliquent indifféremment à SP812 et SP8DC !!!! #define SP8XX_NOMBRE_CIRCUITS 8 #define SP8XX_MAX_COURANT_TOTAL_CIRCUITS 50.00 // En A. Si 0, aucune surveillance du courant maxi #define SP8XX_TEMPO_COURANT_TOTAL_CIRCUITS_CHECK 10 // En secondes. #define SP8XX_TYPE_CIRCUIT_ON_OFF 0 // Ne peut prendre que deux états ON/OFF #define SP8XX_TYPE_CIRCUIT_ON_OFF_SOFT 1 // Ne peut prendre que deux états ON/OFF mais la transition de l'un à l'autre se fait de façon douce #define SP8XX_TYPE_CIRCUIT_VARIABLE_SOFT 2 // Peut prendre toute valeur entre 0 et 100 et start/stop soft #define SP8XX_MODE_CDE_CIRCUIT_ON_OFF 0 // Ne peut prendre que deux états ON/OFF #define SP8XX_MODE_CDE_CIRCUIT_ON_OFF_SOFT 1 // Ne peut prendre que deux états ON/OFF mais la transition de l'un à l'autre se fait de façon douce #define SP8XX_MODE_CDE_CIRCUIT_VARIABLE_SOFT 2 // Peut prendre toute valeur entre 0 et 100 et start/stop soft #define SP8XX_MODE_CDE_CIRCUIT_AUTO 3 // Mode de commande hérité du type // Etats d'un circuit : #define ETAT_CIRCUIT_OK 0 // Tout va bien... #define ETAT_CIRCUIT_LIMITATION 1 #define ETAT_CIRCUIT_PROTECTION 2 #define ETAT_CIRCUIT_DISJONCTE 3 #define ETAT_CIRCUIT_CC_BATTERIE 4 #define ETAT_CIRCUIT_DELESTE 5 #define ETAT_CIRCUIT_UNDERVOLTAGE 6 #define ETAT_CIRCUIT_INVERSION_PHASE_NEUTRE 7 // Sur SP4AC uniquement #define ETAT_CIRCUIT_ABSENCE_TERRE 8 // Sur SP4AC uniquement #define ETAT_CIRCUIT_ABSENCE_MASSE 9 // Sur SP8DC uniquement #define ETAT_CIRCUIT_INCONNU 99 // Variables du circuit : #define CIRCUIT_VARIABLE_CONSIGNE 0 #define CIRCUIT_VARIABLE_TENSION 1 #define CIRCUIT_VARIABLE_COURANT 2 #define CIRCUIT_VARIABLE_FREQUENCE 3 #define CIRCUIT_VARIABLE_PUISSANCE 4 #define CIRCUIT_VARIABLE_ENERGIE 5 #define CIRCUIT_VARIABLE_TENSION_SECTEUR 6 // NB : ces valeurs doivent rester strictement inférieures à MAX_NOMBRE_VARIABLES_PAR_CIRCUIT // Validation des commandes par des évènements du circuit : #define CIRCUIT_VALIDATION_COMMANDES_EVENTS_OFF 0 #define CIRCUIT_VALIDATION_COMMANDES_EVENTS_ON 1 // Etat séquenceur Circuits : #define ETAT_SEQUENCEUR_CIRCUITS_INIT 0 #define ETAT_SEQUENCEUR_CIRCUITS_REPOS 1 // Etat séquenceur circuit : #define ETAT_SEQUENCEUR_CIRCUIT_INIT 0 #define ETAT_SEQUENCEUR_CIRCUIT_REPOS 1 #define ETAT_SEQUENCEUR_CIRCUIT_CHECK_LIMITATION 2