Bonjour à tous, je suis actuellement sur un projet qui vise à piloter le port série à l'aide d'une petite interface utilisateur.
Cette interface est réalisée à l'aide de la MFC de Visual C++ (je travaille avec la version 6.0).
J'en arrive à mon problème :
Dans mon programme (qui est en fait un temporisateur), je dois vérifier l'heure de l'horloge et si celle-ci est égale à l'heure rentrée par l'utilisateur dans la fenêtre, on envoie un "1" sur une des broches de mon port COM.
Je teste donc l'heure en continu avec ce bout de programme :
code :
while (true) {
curTime = CTime::GetCurrentTime();
heure = curTime.GetHour(); //séparation heures-minutes
minute = curTime.GetMinute();
if (heure == m_heurefermeture && minute == m_minutefermeture) {
// Mise à 0 DTR
EscapeCommFunction(g_hCOM, CLRDTR);
PurgeComm(g_hCOM, PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
UpdateData(TRUE);
} else if (heure == m_heureouverture && minute == m_minuteouverture) {
//Mise à 1 DTR
PurgeComm(g_hCOM, PURGE_TXCLEAR|PURGE_RXCLEAR|PURGE_TXABORT|PURGE_RXABORT);
EscapeCommFunction(g_hCOM, SETDTR);
}
m_heure = heure; //affichage pour test
m_minute = minute;
UpdateData(FALSE);
Sleep(30000);}
return TRUE; // return TRUE unless you set the focus to a control
}
Vous l'avez donc compris, la boucle se répète en continu toutes les 30 secondes.
Mais le problème est là : J'ai l'impression que mon programme essaie de finir la boucle avant d'ouvrir ma fenêtre alors que celle-ci ne se termine jamais.
Je sais pas comment faire, j'ai entendu parler de threads mais c'est encore un peu compliqué pour moi.
Si quelqu'un trouve quelquechose d'autre, qu'il n'hésite pas. Sinon, un lien vers un tuto sur les threads serait le bienvenu (en français si c'est possible).
A tous merci d'avance, si quelqu'un arrive à me sortir de là, je lui en serais (vraiment très reconnaissant).