Bonjour à tous,
je code un programme qui permet de contrôler une carte de génération et d'acquisition de signaux analogiques. une fois lancé l'acquisition est autonome et appelle une fonction callback static pour signaler que l’acquisition est terminée
j'aimerais m'en servir pour signifier l’évènement à l'interface seulement celle-ci est définie dans le même objet que DoneCallback. pour cela la variable callBackData me permet de faire passer un pointeur sur l'instance d'aogenerator et ainsi d'accéder au variable de celui-ci mais pas d'exécuter ses fonctions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 //aogenrator:h class aoGenerator : public QWidget { public : aoGenerator (QWidget * parent = 0); ~aoGenerator(); private : int duree; void updateDisplay(); static int32 CVICALLBACK DoneCallback (TaskHandle taskHandle, int32 status , void *callBackData); };
bref mon problème est-il du à l'aspect static de la fonction ou bien est-ce autre chose?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // aogenerator:cpp int32 CVICALLBACK aoGenerator::DoneCallback (TaskHandle taskHandle, int32 status , void * callBackData) { aoGenerator* gen = (aoGenerator*) callBackData;// cast de callBackData en aoGenerator int d = gen->duree;//marche gen->updateDisplay();//marche pas... return(0); }
dans les deux cas auriez-vous une idée pour contourner ce problème?
merci d'avance!!
Partager