LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Automotive Diagnostic Command Set - Problem when used in DLL

Bonjour,
 
J'ai reduis le code au maximum :
-
0 Kudos
Message 21 of 42
(2,668 Views)
Bonjour,
 
J'ai reduis le code au maximum :
- suppression des
0 Kudos
Message 22 of 42
(2,669 Views)
Bonjour,
 
J'ai reduis le code au maximum :
- suppression des references
0 Kudos
Message 23 of 42
(2,669 Views)
Re Bonjour,
 
J'ai vraiment du mal avec le forum, j'ai l'impression qu'il poste le message plusieurs fosi au cours de la frappe.
 
Je reprend donc ..
 
J'ai reduis le code au maximum :

- suppression des references a LUA
- suppression du thread de la  machine d'etat et de toutes les fonctions associées
- suppresion du code config.c
 
Je n'ais gardé que le thread de pooling de l'ecu.
 
J'ai compilé deux version de la DLL (mcuclosediag.dll) une avec l'appel a la fonction ndCloseDiagnostic() a la fin du thread PoolECU comme ci dessous :
 
 CmtGetLock (lock);
 ndStopDiagnosticSession (&DiagRef, &success);
 ndCloseDiagnostic (&DiagRef);
 CmtReleaseLock (lock);
 
et une autre version (mcuwoclosediag.dll) sans cet appel comme si dessous:
 
 CmtGetLock (lock);
 ndStopDiagnosticSession (&DiagRef, &success);
 //ndCloseDiagnostic (&DiagRef);
 CmtReleaseLock (lock);
 
je vous joint le projet complet.
 
D'autre par j'ai fait une petite avancée, en effet en inserant un Sleep( 1000 ) entre le dechargement de la DLL et l'appel a QuitUserInterface (), comme ci-dessous, la version sans l'appel a la fonction ndCloseDiagnostic() ne fige plus la fermeture de l'application appelante. Mais toujours le meme probleme avec la version avec l'appel a la fonction ndCloseDiagnostic().
 
int CVICALLBACK QuitCallback (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
 switch (event)
 {
  case EVENT_COMMIT:
   if (mcudll != NULL)
    FreeLibrary(mcudll);
   
   Sleep( 1000 );
   
   QuitUserInterface (0);
   break;
 }
 return 0;
}

Le probleme semble donc tres fortement localisé dans l'appel a ndCloseDiagnostic().
 
Slts
 
B.Williot
0 Kudos
Message 24 of 42
(2,667 Views)

Bonjour,

Pourriez vous m'indiquer la version de la DL NIDiagCS.dll, voir me l'envoyer afin que je puisse faire quelques tests ?

Quelle est votre version actuelle de CVI ?

Cordialement,



Message Edité par Maxime MULLER le 07-04-2008 07:08 AM
0 Kudos
Message 25 of 42
(2,662 Views)

Re

NIDiagCS V1.0 ci-jointe.

Slts et bon week end ...

0 Kudos
Message 26 of 42
(2,658 Views)
Version CVI 8.5 sur une machine et CVI 8.5.1 sur une autre.
 
Slts.
0 Kudos
Message 27 of 42
(2,634 Views)

Bonjour,

J'ai pu tester votre application, et je n'ai rencontré aucun problème. Je suis toujours en contact avec la R & D afin de solutionner votre problème.

J'ai remarqué que votre DLL NIDiagCS, n'était pas la même que la mienne. Pouvez vous faire cette manipulation et réessayer de faire fonctionner votre application :

Panneaux de configuration > Ajouter ou supprimer des programmes > Logiciels National Instruments :

Sélectionnez :

NI LabWindows/CVI 8.5.0 FDS Package
NI LabWindows/CVI 8.5.0 Run-Time Engine
NI CAN 2.5.2

Et effectuez une réparation de ces 3 éléments.

Cordialement,

0 Kudos
Message 28 of 42
(2,617 Views)

Bonjour,
Je suis en train de faire la réparation des packages que vous m'indiquez :
NI LabWindows/CVI 8.5.0 FDS Package
NI LabWindows/CVI 8.5.0 Run-Time Engine
NI CAN 2.5.2

Mais je suis étonné car la DLL NIDiagCS ne fait pas partie de ces packages.
Serait il possible que vous me postiez votre version pour que je puisse essayer ?

Salutations.

B.Williot.

0 Kudos
Message 29 of 42
(2,613 Views)

Bonjour,

Voici la DLL en question, faites bien attention à sauver votre version avant de coller celle-ci dans votre application.

Cordialement,

0 Kudos
Message 30 of 42
(2,610 Views)