//***************************************************** // Structures de données pour application CAN VMD // Nom de fichier: CAN_VMD.h //***************************************************** #ifndef _VMD_H #define _VMD_H // Format de message typedef struct { /* nombre d'octets à envoyer, -1 si c'est une Remote Frame */ int dlc; unsigned char id1; /* 8 bits de poids forts de l'ID. */ unsigned char id2; /* 3 bits de poids faible de l'ID. */ unsigned char data[8]; } Message; // Pour l'identificateur en mode standard typedef union { struct { unsigned short ident:11; unsigned short rtr:1; unsigned short nul:4; } identificateur; struct { unsigned char ident1; unsigned char ident2; } registre; unsigned short valeur; } ident_standard; // Pour l'identificateur en mode étendu typedef union { struct { unsigned long ident:29; unsigned long rtr:1; unsigned long x:2; } identificateur; struct { unsigned char ident1; unsigned char ident2; unsigned char ident3; unsigned char ident4; } registre; unsigned long valeur; } ident_extend; // Pour registre d'information Trame SJA1000 typedef union { struct { unsigned char extend:1; unsigned char rtr:1; unsigned char nul:2; unsigned char dlc:4; } champ; unsigned char registre; } tr_info; // Pour Trame circulant sur réseau CAN typedef struct { tr_info trame_info; union { ident_standard standard; ident_extend extend; } ident; unsigned char data[8]; } Trame; typedef union { struct { unsigned char GP7:1; unsigned char GP6:1; unsigned char GP5:1; unsigned char GP4:1; unsigned char GP3:1; unsigned char GP2:1; unsigned char GP1:1; unsigned char GP0:1; }bit; unsigned char valeur; }Port_8ES; Port_8ES Etat_Commodo_Feux; #define Valeur_Commodo_Feux Etat_Commodo_Feux.valeur #define Cde_Veilleuse Etat_Commodo_Feux.bit.GP0 #define Cde_Warning Etat_Commodo_Feux.bit.GP1 #define Cde_Phare Etat_Commodo_Feux.bit.GP2 #define Cde_Code Etat_Commodo_Feux.bit.GP3 #define Cde_Clign_Gauche Etat_Commodo_Feux.bit.GP4 #define Cde_Clign_Droit Etat_Commodo_Feux.bit.GP5 #define Cde_Stop Etat_Commodo_Feux.bit.GP6 #define Cde_Klaxon Etat_Commodo_Feux.bit.GP7 // Pour la Commande des feux #define Cde_Nulle 0x00 #define Cde_FV_V 0x01 // Feux aVant en Veilleuse #define Cde_FR_V 0x01 // Feux aRrière en Veilleuse #define Cde_FV_C 0x03 // Feux aVant en Code #define Cde_FR_C 0x01 // Feux aRrière en Code #define Cde_FV_P 0x05 // Feux aVant en Phare #define Cde_FR_P 0x01 // Feux aRrière en Phare #define Masque_Clign_AV 0x08 // Pour Clignotant AVant #define Masque_Clign_AR 0x04 // Pour Clignotant ARrière #define Masque_Klaxon 0x08 // Pour Claxon #define Masque_Stop 0x02 // Pour Stop // Variables pour la commande et le control des feux //---------------------------------------------------- // Pour variables images de la commande effectuée des différents feux union byte_bits Image_FVG,Image_FVD,Image_FRD,Image_FRG; // Pour Feux aVant Gauche #define Valeur_FVG Image_FVG.valeur // Pour un accés port complet #define Veilleuse_FVG Image_FVG.bit.b0 #define Code_FVG Image_FVG.bit.b1 #define Phare_FVG Image_FVG.bit.b2 #define Clignot_FVG Image_FVG.bit.b3 // Pour Feux aVant Droit #define Valeur_FVD Image_FVD.valeur // Pour un accés port complet #define Veilleuse_FVD Image_FVD.bit.b0 #define Code_FVD Image_FVD.bit.b1 #define Phare_FVD Image_FVD.bit.b2 #define Clignot_FVD Image_FVD.bit.b3 // Pour Feux aRrière Droit #define Valeur_FRD Image_FRD.valeur // Pour un accés port complet #define Veilleuse_FRD Image_FRD.bit.b0 #define Stop_FRD Image_FRD.bit.b1 #define Clignot_FRD Image_FRD.bit.b2 #define Klaxon_FRD Image_FRD.bit.b3 // Pour Feux aRrière Gauche #define Valeur_FRG Image_FRG.valeur // Pour un accés port complet #define Veilleuse_FRG Image_FRG.bit.b0 #define Stop_FRG Image_FRG.bit.b1 #define Clignot_FRG Image_FRG.bit.b2 #define Klaxon_FRG Image_FRG.bit.b3 // Pour les variables images des "Status" des sorties de puissance union byte_bits Image_Stat_FVG,Image_Stat_FVD,Image_Stat_FRD,Image_Stat_FRG; // Pour image "Status" Feux aVant Gauche #define Valeur_Status_FVG Image_Stat_FVG.valeur // Pour un accés port complet #define S_Veilleuse_FVG Image_Stat_FVG.bit.b4 #define S_Code_FVG Image_Stat_FVG.bit.b5 #define S_Phare_FVG Image_Stat_FVG.bit.b6 #define S_Clignot_FVG Image_Stat_FVG.bit.b7 // Pour image "Status" Feux aVant Droit #define Valeur_Status_FVD Image_Stat_FVD.valeur // Pour un accés port complet #define S_Veilleuse_FVD Image_Stat_FVD.bit.b4 #define S_Code_FVD Image_Stat_FVD.bit.b5 #define S_Phare_FVD Image_Stat_FVD.bit.b6 #define S_Clignot_FVD Image_Stat_FVD.bit.b7 // Pour image "Status" Feux aRrière Droit #define Valeur_Status_FRD Image_Stat_FRD.valeur // Pour un accés port complet #define S_Veilleuse_FRD Image_Stat_FRD.bit.b4 #define S_Stop_FRD Image_Stat_FRD.bit.b5 #define S_Clignot_FRD Image_Stat_FRD.bit.b6 #define S_Klaxon_FRD Image_Stat_FRD.bit.b7 // Pour image "Status" Feux aRrière Gauche #define Valeur_Status_FRG Image_Stat_FRG.valeur // Pour un accés port complet #define S_Veilleuse_FRG Image_Stat_FRG.bit.b4 #define S_Stop_FRG Image_Stat_FRG.bit.b5 #define S_Clignot_FRG Image_Stat_FRG.bit.b6 #define S_Klaxon_FRG Image_Stat_FRG.bit.b7 // Déclaration des identificateurs, pour les différents modules sur le bus VMD //-------------------------------------------------------------------------------- // Pour Feux aVant Gauche #define Ident_T_IRM_FVG 0x0E041E07 // Feux aVant Gauche en interrogation (Information Request Message) #define Ident_T_IM_FVG 0x0E080000 // Feux aVant Gauche en commande (Input Message) #define Ident_T_AIM_FVG 0x0E200000 // Feux aVant Gauche en Acquittement commande // Pour Feux aVant Droit #define Ident_T_IRM_FVD 0x0E841E07 // Feux aVant Droit en interrogation (Information Request Message) #define Ident_T_IM_FVD 0x0E880000 // Feux aVant Droit en commande (Input Message) #define Ident_T_AIM_FVD 0x0EA00000 // Feux aVant Droit en Acquittement commande // Pour Feux aRierre Gauche #define Ident_T_IRM_FRG 0x0F041E07 // Feux aRrière Gauche en interrogation (Information Request Message) #define Ident_T_IM_FRG 0x0F080000 // Feux aRrière Gauche en commande (Input Message) #define Ident_T_AIM_FRG 0x0F200000 // Feux aRrière Gauche en Acquittement commande // Pour Feux aRierre Droit #define Ident_T_IRM_FRD 0x0F841E07 // Feux aRrière Droit en interrogation (Information Request Message) #define Ident_T_IM_FRD 0x0F880000 // Feux aRrière Droit en commande (Input Message) #define Ident_T_AIM_FRD 0x0FA00000 // Feux aRrière Droit en Acquittement commande // Pour Commodo Feux #define Ident_T_IM_Commodo_Feux 0x05080000 // Commodo feux en commande (Information Message) #define Ident_T_AIM_Commodo_Feux 0x05200000 // Commodo feux : Acquittement suite à une IM #define Ident_T_IRM_Commodo_Feux 0x05041E07 // Commodo feux en interrogation (Information Request Message) // Pour Essuie Glace #define Ident_T_IM_Commodo_EG 0x05880000 // Commodo EG en commande (Information Message) #define Ident_T_AIM_Commodo_EG 0x05A00000 // Commodo EG en commande (Information Message) #define Ident_T_IRM1_Commodo_EG 0x05841E07 // Commodo EG en interrogation: 1 octet demandé #define Ident_T_IRM8_Commodo_EG 0x05840000 // Commodo EG en interrogation: 8 octets demandés #define Ident_T_OB_Commodo_EG 0x05900000 // Commodo EG "On Bus" (Par scéduleur) // Pour module Asservissement #define Ident_T_IM_Asservissement 0x00880000 // "Asservissement" en commande (Input Message) #define Ident_T_IRM1_Asservissement 0x00841E07 // "Asservissement" en interrogation: 1 octet en réponse #define Ident_T_IRM8_Asservissement 0x00840000 // "Asservissement" en interrogation: 8 octets en réponse #define Ident_T_AIM_Asservissement 0x00A00000 // "Asservissement" en Acquittement commande #define Ident_T_OB_Asservissement 0x00900000 // "Asservissement" en On Bus (par scéduleur) // Pour le "Commodo Essuie Glace" Port_8ES Commodo_EG; #define Etat_Commodo_EG Commodo_EG.valeur #define Valeur_Commodo_EG Commodo_EG.valeur #define Cde_EG_Av_Int Commodo_EG.bit.GP0 // Commande Essuie Glace Avant en Intermittant #define Entree1 Commodo_EG.bit.GP1 #define Entree2 Commodo_EG.bit.GP2 #define Cde_EG_Av_Pos1 Commodo_EG.bit.GP3 // Commande Essuie Glace Avant en Position1 #define Cde_EG_Av_Pos2 Commodo_EG.bit.GP4 // Commande Essuie Glace Avant en Position2 #define Cde_EG_Ar Commodo_EG.bit.GP5 // Commande Essuie Glace Arrière #define Cde_Lave_Glace_Ar Commodo_EG.bit.GP6 #define Cde_Lave_Glace_Av Commodo_EG.bit.GP7 #endif