Pointeur de structure dans structure: besoin d'aide pour la manipulation
Bonjour,
Tout d'abord, petite précision, je développe avec Eclipse dans une VM avec Linux.
Je viens d'utiliser un utilitaire pour transformer une dbc en un .h. Dans ce .h je me retrouve avec des structures que j'ai quelques difficultés à manipuler:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
/**
* Name: HPCM_Status_2
* Comment: <<empty>>
*/
static struct DBC_HPC_BB_V3_MSG_HPCM_Status_2 {
const uint32_t ID;
const uint8_t IDE;
const uint8_t DLC;
const struct {
signal_positioned ExternalTemperature;
} getSig;
struct __attribute__((packed)) DBC_HPC_BB_V3_MSG_HPCM_Status_2_getSigVal {
uint16_t ExternalTemperature : 16;
} *getSigVal;
} DBC_HPC_BB_V3_MSG_HPCM_Status_2 __attribute__((unused)) = {
.ID = 0x18FEF500,
.IDE = CAN_ID_EXT,
.DLC = 8,
.getSig = {
.ExternalTemperature = {
.position = 24,
.attributes = &DBC_HPC_BB_V3_SIG_ExternalTemperature
}
},
.getSigVal = 0
}; |
Je souhaiterai changer la valeur de ExternalTemperature dans différentes fonctions mais tous mes essais echouent. Voici une de mes fonction:
Code:
1 2 3 4 5
|
void CANDATATYPES_InitHPCMStatus2Struct (struct DBC_HPC_BB_V3_MSG_HPCM_Status_2_getSigVal* HPCMStatus2Struct)
{
HPCMStatus2Struct->ExternalTemperature = 5;
} |
Et voici le dernier essai que j'ai fait:
Code:
1 2
|
CANDATATYPES_InitHPCMStatus1Struct (&DBC_HPC_BB_V3_MSG_HPCM_Status_2.getSigVal); |
Lorsque j’exécute la fonction CANDATATYPES_InitHPCMStatus2Struct, HPCMStatus2Struct->ExternalTemperature prends bien la valeur 5, mais au retour, c'est DBC_HPC_BB_V3_MSG_HPCM_Status_2.getSigVal qui a la valeur 5 et non pas DBC_HPC_BB_V3_MSG_HPCM_Status_2.getSigVal->ExternalTemperature.
Je m'arrache les cheveux depuis plusieurs heures maintenant, je ne sais pas par quel bout le prendre et comment le tourner pour y arriver.
Merci d'avance pour votre aide.