Voila apres un moment je reviens cette fois avec un code plus propre pour passer mes valeurs.
J'ai dans un premier temps j'ai changé le retour de Init() en FSRteVal .
Apres cela j'ai pu avoir mes affichages d'erreurs, c'était parfait mais je n'arrivais pas a dire
de quel camera il venait et donc dans un deuxième temps j'ai utilisé un struct pour renvoyer à la fois l'erreur (FSRteVal) et la camera correspondant (bool) .
inut;
}sNoprob;
//////////////////////////////////////
et sa definition dans le header :
/////////////////////////////////////////
....
float GetQuality(int iImage);
sNoprob isProblemeStereo();
bool isProblemeTraitement();
bool isProblemeAcquisition();
....
//////////////////////////////////
Le retour de ma fonction IsProblem() a changé egalement:
////////////////////////////////////
sNoprob CMy99090Doc::isProblemeStereo() {
sNoprob inter;
inter.FStmpint = FS_SUCCESS;
if(m_pThreadStereo1->m_initstereostatus==FS_SUCCESS && m_pThreadStereo2->m_initstereostatus==FS_SUCCESS)
return inter;
if (m_pThreadStereo1->m_initstereostatus!=FS_SUCCESS || m_pThreadStereo2->m_initstereostatus!=FS_SUCCESS)
if (m_pThreadStereo1)
{ if (m_pThreadStereo1->isProbleme())
inter.bster = 0;
inter.FStmpint = m_pThreadStereo1->m_initstereostatus ;
}
else if (m_pThreadStereo2)
{ if (m_pThreadStereo2->isProbleme())
inter.bster = 1;
inter.FStmpint = m_pThreadStereo2->m_initstereostatus ;
}
return inter;
}
////////////////////////////////
Voici ma ffonction OntImer pour l'affichage:
/////
.........
if(m_Init.Get_Params_General_ModeProcess ()==PROCESS_SAS_AUTOMATIQUE)
{
if(uiSecurity& LEVEL_1)
{
//CStereo m_bvercam;
sNoprob initstereostatus=pDoc->isProblemeStereo();
if(initstereostatus.FStmpint)
m_ListeStereo.ResetContent ();
else
m_bPblStereo=false;
if (initstereostatus.bster)
{switch(initstereostatus.FStmpint)
{
case FS_ERROR_LOW_MEMORY:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_OPEN_FILE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_CONFIG_FORMAT:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_PARAMETER_IN_CONFIG_FILE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_PARAMETER:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_CREATE_PROCESS:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_COMMUNICATION_LOST:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_DISK_FULL:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_EXECUTE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_UNKNOWN:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CAMERA_NOT_FOUND:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_NUMBER:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
}
}
else
{
switch(initstereostatus.FStmpint)
{
case FS_ERROR_LOW_MEMORY:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_OPEN_FILE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_CONFIG_FORMAT:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_PARAMETER_IN_CONFIG_FILE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_PARAMETER:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_CREATE_PROCESS:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_COMMUNICATION_LOST:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_DISK_FULL:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_EXECUTE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_UNKNOWN:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CAMERA_NOT_FOUND:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_NUMBER:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
}
}
if(pDoc->isIniteStereo())
m_bStereo=true;
else
m_bStereo=false;
}
else
{
m_bPblStereo=false;
m_bStereo=true;
}
if(pDoc->isProblemeModbus())
m_bPblModbus=true;
else
m_bPblModbus=false;
if(pDoc->isInitModbus())
m_bModbus=true;
else
m_bModbus=false;
}
UpdateData(false);
.........
}
///////////////////////////////////////////
Je pensais que l'erreur venait de %s dans l'instruction : strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
mais en remplaçant ca par ceci rien n'a changé
: strDatalist.Format ( Explication Stereo 2 : FS_ERROR_CAMERA_NOT_FOUND);
D'ou peut venir les erreurs ?
Merci