/*----------------------------------* * Méthode traitement de la trame * *----------------------------------*/ bool Ihm::traitementTrame(QString trame){ //témoin timer affichage if (ui->lbActivite->isEnabled()) ui->lbActivite->setEnabled(false); else ui->lbActivite->setEnabled(true); //qDebug() << "[1] dans traitement"; //décodage trame QString num_badge, sens, mouvement, num_lecteur; //séparation des parties de la trame num_badge = trame.mid(3,3); //numéro de badge //suppression mauvais badge if(num_badge == "000") { qDebug("Mauvais badge."); //obtenir date QString date = QDateTime::currentDateTime().toString(); ui->txtAlarme->textCursor().insertText(date+"<Erreur> Mauvais badge num=000\n"); curseur.setPosition(position); // Replacement du curseur à l'endroit où il se trouvait ui->txtAlarme->setTextCursor(curseur); // Application du curseur à la zone de texte return false; } sens = trame.mid(1,2); //niveau de réception du tag mouvement = trame.mid(6,3); //niveau de mouvement mesuré num_lecteur = trame.mid(9,2); //numéro du lecteur //conversion des valeurs en int à partir de ASCII hexa et mise à l'échelle //c'est-à -dire conversion de l'hexadécimal en décimal int num_badge_i = num_badge.toInt(0,16); int sens_i = sens.toInt(0,16); int num_lecteur_i = num_lecteur.toInt(0,16); int mouvement_i = mouvement.toInt(0,16); //si le badge n'existe pas dans la BDD if(!pBdd->badgeExiste(num_badge)){ //obtenir date QString date = QDateTime::currentDateTime().toString(); ui->txtAlarme->textCursor().insertText(date+"<Erreur><Badge "+num_badge+QString::fromUtf8("> Badge inconnu dans la Base de données\n")); curseur.setPosition(position); // Replacement du curseur à l'endroit où il se trouvait ui->txtAlarme->setTextCursor(curseur); // Application du curseur à la zone de texte return false; } //badge n'existe pas sur l'IHM if(!pDynamique.BadgeActif[num_badge_i]){ //Historique des événements (log) : nouveau badge pBdd->setLog(1, num_badge_i); //1=nouveau badge tll = new T_ListeLabel(); for(int i=0 ; i<MAXLECTEURS ; i++){ // init à 100 for(int j=0 ; j<MAXVAL ; j++){ tll->moySens[i][j]=100; } } for(int i=0 ; i<MAXLECTEURS ; i++){ tll->sdp[i]=0; //sens de passage tll->sdpMem[i]=0; } memset(tll->indMoy, 0, sizeof(tll->indMoy)); //init à 0 //obtenir vue(s) en fonction du lecteur //déclaration QList QList<T_TupleLecteurS> listeTupleL; pBdd->getVueFctLect(num_lecteur_i, &listeTupleL); //récupération des infos dans la liste if (!listeTupleL.empty()){ for (int i = 0; i < listeTupleL.count(); i++) { int num_vue = listeTupleL.at(i).num_vue; //se placer sur l'onglet QWidget *onglet; onglet = pDynamique.onglet[num_vue]; //nouveau label dynamique pour un badge tll->labelB[num_vue][num_badge_i] = new QLabel(onglet); //The object will be deleted when control returns to the event loop.//ps: j'aime bien ce commentaire ! connect (tll->labelB[num_vue][num_badge_i], SIGNAL(destroyed()), tll->labelB[num_vue][num_badge_i], SLOT(deleteLater())); //sauvegarde de ce label dans Dynamique pDynamique.labelB[num_vue][num_badge_i] = tll->labelB[num_vue][num_badge_i]; //qDebug() << pDynamique.labelB[num_vue][num_badge_i]; //réglage par défaut du nouveau badge tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/DefaultConfigure.png")); tll->labelB[num_vue][num_badge_i]->setGeometry(590, 620, 20, 20); // largeur hauteur à définir } } tll->numBadge = num_badge_i; //numéro de badge tll->numLecteur = num_lecteur_i; //numéro de lecteur tll->etat = 0; //aller // réglage du timer associé au mouvement tll->tpsMouv = new QTimer(this); //nouveau Timer connect(tll->tpsMouv, SIGNAL(timeout()), this, SLOT(timerMouv())); //connect timeout tll->tpsMouv->setSingleShot(true); //un seul temps tll->tpsMouv->start(this->tempoM); //débute le timer // réglage du timer associé à la réception tll->tpsSens[num_lecteur_i] = new QTimer(this); //nouveau Timer connect(tll->tpsSens[num_lecteur_i], SIGNAL(timeout()), this, SLOT(timerRec())); //connect timeout tll->tpsSens[num_lecteur_i]->setSingleShot(true); //un seul temps tll->tpsSens[num_lecteur_i]->start(this->tempoR); //débute le timer // ajout à la liste mémoire listeLabel.append(tll); //maintenant le badge existe sur l'IHM donc le sauvegarder pDynamique.BadgeActif[num_badge_i] = true; } tll->numLecteur = num_lecteur_i; //sauvegarde numéro lecteur tll->etat |= MOUV0; // mouv=0 //modif // tll->etat ^= MOUV0; //relance du timer si mouvement if (mouvement_i > 0 ) { // si mouvement tll->etat &= ~MOUV; // alarme mouvement tll->etat &= ~MOUV0; // un seul mouvement tll->tpsMouv->setSingleShot(true); tll->tpsMouv->start(this->tempoM); //ms } // réarmer le timer REC, le créer si nouveau lecteur tll->etat &= ~REC; //création timer réception, si nouveau lecteur if (!tll->tpsSens[num_lecteur_i]) { tll->tpsSens[num_lecteur_i] = new QTimer(this); connect(tll->tpsSens[num_lecteur_i], SIGNAL(timeout()), this, SLOT(TimerRec())); } //réarmer le timer de réception tll->tpsSens[num_lecteur_i]->setSingleShot(true); tll->tpsSens[num_lecteur_i]->start(this->tempoR); //déclaration QList QList<T_Personne > listePersonne; //Recherche identité de la personne int num_pers = pBdd->badgeIdentite(num_badge_i, &listePersonne); if (num_pers == -1){ //le badge n'est pas lié avec une personne //obtenir date QString date = QDateTime::currentDateTime().toString(); ui->txtAlarme->textCursor().insertText(date+"<Erreur><Badge "+num_badge+QString::fromUtf8("> Badge non lié à une personne\n")); curseur.setPosition(position); // Replacement du curseur à l'endroit où il se trouvait ui->txtAlarme->setTextCursor(curseur); // Application du curseur à la zone de texte } else { tll->nom[num_pers] = listePersonne.at(0).nom; tll->prenom[num_pers] = listePersonne.at(0).prenom; tll->societe[num_pers] = listePersonne.at(0).societe; tll->photo[num_pers] = listePersonne.at(0).photo; } // calcul de la moyenne de la sensibilité tll->moySens[num_lecteur_i][tll->indMoy[num_lecteur_i]++] = sens_i ; if (tll->indMoy[num_lecteur_i] == MAXVAL){ tll->indMoy[num_lecteur_i] = 0; //indice du tableau de moyenne } int moy = 0; moy = calculerMoyenne(tll); //sur MAXVAL valeur tll->sdp[num_lecteur_i] = moy; //mémo pour calcul sens de passage moy -= 100; if (!sensDePassage(tll)){ //maj de zone et du sens de passage de ce badge //pas de sens de passage qDebug("pas de sens de passage dans BDD"); //obtenir date QString date = QDateTime::currentDateTime().toString(); ui->txtAlarme->textCursor().insertText(date +"<Erreur><Lecteur "+num_lecteur+ QString::fromUtf8("> Pas de sens de passage précisé dans la Base de Données\n")); curseur.setPosition(position); // Replacement du curseur à l'endroit où il se trouvait ui->txtAlarme->setTextCursor(curseur); // Application du curseur à la zone de texte return false; } // recherche si lecteur n'est pas connecté if (!pBdd->getEtatLect(num_lecteur_i)){ qDebug("le lecteur n'est pas connecte ?!"); //obtenir date QString date = QDateTime::currentDateTime().toString(); ui->txtAlarme->textCursor().insertText(date+"<Erreur><Lecteur "+num_lecteur+QString::fromUtf8("> Lecteur non connecté\n")); curseur.setPosition(position); // Replacement du curseur à l'endroit où il se trouvait ui->txtAlarme->setTextCursor(curseur); // Application du curseur à la zone de texte return false; } //Obtenir les points de la zone en fonction des vues //qDebug() << "[2] avant placement"; //obtenir vue(s) en fonction du lecteur //déclaration QList QList<T_TupleLecteurS> listeTupleL; pBdd->getVueFctLect(num_lecteur_i, &listeTupleL); if (!listeTupleL.empty()){ for (int i = 0; i < listeTupleL.count(); i++) { int num_vue = listeTupleL.at(i).num_vue; pBdd->getPointsZone(num_vue, tll->zone, &tll->ptA, &tll->ptB); this->calculerDroite(moy, tll->ptA, tll->ptB, &tll->ptBadge[num_vue]); // tll = listeLabel.at(num_badge_i); //affichage // tll->labelB[num_vue][num_badge_i]->setEnabled(true); // tll->labelB[num_vue][num_badge_i]->setVisible(true); pDynamique.labelB[num_vue][num_badge_i]->setVisible(true); //qDebug() << "[3] avant état"; //en fonction de l'état switch(tll->etat) { case 0: // ALLER if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_vert.jpg")); } else { pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/haut_vert.jpg")); } break; case 1: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_rouge.jpg")); } else { pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/haut_rouge.jpg")); } //homme en danger emit signalHommeEnDanger(tll->nom[num_pers]); //Historique des événements (log) : alarme mouvement pBdd->setLog(3, num_badge_i); //3=alarme mouvement break; case 2: pDynamique.labelB[num_vue][num_badge_i]->setEnabled(false); break; case 3: pDynamique.labelB[num_vue][num_badge_i]->setEnabled(false); break; case 4: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_vert.jpg")); } else { pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/bas_vert.jpg")); } break; case 5: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_rouge.jpg")); } else { pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/bas_rouge.jpg")); } //homme en danger emit signalHommeEnDanger(tll->nom[num_pers]); //Historique des événements (log) : alarme mouvement pBdd->setLog(3, num_badge_i); //3=alarme mouvement break; case 6: pDynamique.labelB[num_vue][num_badge_i]->setEnabled(false); break; case 7: pDynamique.labelB[num_vue][num_badge_i]->setEnabled(false); break; case 8: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_orange.jpg")); } else { pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/haut_orange.jpg")); } break; case 9: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_rouge.jpg")); } else { pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/haut_rouge.jpg")); } //homme en danger emit signalHommeEnDanger(tll->nom[num_pers]); //Historique des événements (log) : alarme mouvement pBdd->setLog(3, num_badge_i); //3=alarme mouvement break; case 10: pDynamique.labelB[num_vue][num_badge_i]->setEnabled(false); break; case 11: pDynamique.labelB[num_vue][num_badge_i]->setEnabled(false); break; case 12: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_orange.jpg")); } else { pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/bas_orange.jpg")); } break; case 13: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_rouge.jpg")); } else { pDynamique.labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/bas_rouge.jpg")); } //homme en danger emit signalHommeEnDanger(tll->nom[num_pers]); //Historique des événements (log) : alarme mouvement pBdd->setLog(3, num_badge_i); //3=alarme mouvement break; case 14: pDynamique.labelB[num_vue][num_badge_i]->setEnabled(false); break; case 15: pDynamique.labelB[num_vue][num_badge_i]->setEnabled(false); break; } //fin switch //qDebug() << "[4] avant affichage"; //affichage position exacte badge if (num_vue==1 && num_pers==1) //taille petite, pas de décalement pDynamique.labelB[num_vue][num_badge_i]->setGeometry(tll->ptBadge[num_vue].x, tll->ptBadge[num_vue].y,20,20); else if (num_vue==1 && num_pers!=1) //taile petite, décalement pDynamique.labelB[num_vue][num_badge_i]->setGeometry(tll->ptBadge[num_vue].x + (10*num_pers), tll->ptBadge[num_vue].y,20,20); else if (num_vue!=1 && num_pers==1) //taille grande, pas de décalement pDynamique.labelB[num_vue][num_badge_i]->setGeometry(tll->ptBadge[num_vue].x, tll->ptBadge[num_vue].y,30,20); else //taille grande, décalement pDynamique.labelB[num_vue][num_badge_i]->setGeometry(tll->ptBadge[num_vue].x + (20*num_pers), tll->ptBadge[num_vue].y,30,20); //affichage identité personne if (num_pers != -1) { pDynamique.labelB[num_vue][num_badge_i]->setToolTip("<img src=':" + tll->photo[num_pers] + "'/>" +" Badge "+ QString::number(num_badge_i) +" de : " + tll->nom[num_pers] +" " + tll->prenom[num_pers] +QString::fromUtf8(" Société : ")+ tll->societe[num_pers]); } else { //badge pas affecté pDynamique.labelB[num_vue][num_badge_i]->setToolTip(QString::fromUtf8("Badge non affecté à une personne")); } } //fin for } //fin if pBdd->setBadgeActif(num_badge_i); //le badge n'est pas perdu return true; }
/*-------------------------------* * Slot traitement de la trame * *-------------------------------*/ bool Ihm::traitementTrame(QString trame){ //témoin timer affichage if (ui->lbActivite->isEnabled()) ui->lbActivite->setEnabled(false); else ui->lbActivite->setEnabled(true); //décodage trame QString num_badge, sens, mouvement, num_lecteur; T_ListeLabel *tll; //pointeur sur structure //séparation des parties de la trame num_badge = trame.mid(2,3); //numéro de badge //suppression mauvais badge if(num_badge == "000") { qDebug("Mauvais badge."); ui->txtAlarme->textCursor().insertText("<Erreur> Mauvais badge num=000\n"); return false; } sens = trame.mid(0,2); //niveau de réception du tag mouvement = trame.mid(5,3); //niveau de mouvement mesuré num_lecteur = trame.mid(8,2); //numéro du lecteur //conversion des valeurs en int à partir de ASCII hexa et mise à l'échelle //c'est-à -dire conversion de l'hexadécimal en décimal int num_badge_i = num_badge.toInt(0,16); int sens_i = sens.toInt(0,16); int num_lecteur_i = num_lecteur.toInt(0,16); int mouvement_i = mouvement.toInt(0,16); //si le badge n'existe pas dans la BDD if(!pBdd->badgeExiste(num_badge)){ ui->txtAlarme->textCursor().insertText("<Erreur><Badge "+num_badge+QString::fromUtf8("> Badge inconnu dans la Base de données\n")); return false; } //badge n'existe pas sur l'IHM if(!pDynamique->BadgeActif[num_badge_i]){ //Historique des événements (log) : nouveau badge pBdd->setLog(1, num_badge_i); //1=nouveau badge tll = new T_ListeLabel(); for(int i=0 ; i<MAXLECTEURS ; i++){ // init à 100 for(int j=0 ; j<MAXVAL ; j++){ tll->moySens[i][j]=100; } } for(int i=0 ; i<MAXLECTEURS ; i++){ tll->sdp[i]=0; //sens de passage tll->sdpMem[i]=0; } memset(tll->indMoy, 0, sizeof(tll->indMoy)); //init à 0 //obtenir vue(s) en fonction du lecteur //déclaration QList QList<T_TupleLecteurS> listeTupleL; pBdd->getVueFctLect(num_lecteur_i, &listeTupleL); //récupération des infos dans la liste if (!listeTupleL.empty()){ for (int i = 0; i < listeTupleL.count(); i++) { int num_vue = listeTupleL.at(i).num_vue; //se placer sur l'onglet QWidget *onglet; onglet = pDynamique->onglet[num_vue]; //nouveau label dynamique pour un badge tll->labelB[num_vue][num_badge_i] = new QLabel(onglet); //réglage par défaut du nouveau badge (vert + haut) tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/haut_vert.jpg")); tll->labelB[num_vue][num_badge_i]->setGeometry(590, 620, 15, 42); // largeur hauteur à définir } } tll->numBadge = num_badge_i; //numéro de badge tll->numLecteur = num_lecteur_i; //numéro de lecteur tll->etat = 0; //aller // réglage du timer associé au mouvement tll->tpsMouv = new QTimer(this); //nouveau Timer connect(tll->tpsMouv, SIGNAL(timeout()), this, SLOT(timerMouv())); //connect timeout tll->tpsMouv->setSingleShot(true); //un seul temps tll->tpsMouv->start(this->tempoM); //débute le timer // réglage du timer associé à la réception tll->tpsSens[num_lecteur_i] = new QTimer(this); //nouveau Timer connect(tll->tpsSens[num_lecteur_i], SIGNAL(timeout()), this, SLOT(timerRec())); //connect timeout tll->tpsSens[num_lecteur_i]->setSingleShot(true); //un seul temps tll->tpsSens[num_lecteur_i]->start(this->tempoR); //débute le timer // ajout à la liste mémoire listeLabel.append(tll); //maintenant le badge existe sur l'IHM donc le sauvegarder pDynamique->BadgeActif[num_badge_i] = true; } tll->numLecteur = num_lecteur_i; //sauvegarde numéro lecteur tll->etat |= MOUV0; // mouv=0 //relance du timer si mouvement if (mouvement_i > 0 ) { // si mouvement tll->etat &= ~MOUV; // alarme mouvement tll->etat &= ~MOUV0; // un seul mouvement tll->tpsMouv->setSingleShot(true); tll->tpsMouv->start(this->tempoM); //ms } // réarmer le timer REC, le créer si nouveau lecteur tll->etat &= ~REC; //création timer réception, si nouveau lecteur if (!tll->tpsSens[num_lecteur_i]) { tll->tpsSens[num_lecteur_i] = new QTimer(this); connect(tll->tpsSens[num_lecteur_i], SIGNAL(timeout()), this, SLOT(TimerRec())); } //réarmer le timer de réception tll->tpsSens[num_lecteur_i]->setSingleShot(true); tll->tpsSens[num_lecteur_i]->start(this->tempoR); //déclaration QList QList<T_Personne > listePersonne; //Recherche identité de la personne int num_pers = pBdd->badgeIdentite(num_badge_i, &listePersonne); if (num_pers == -1){ //le badge n'est pas lié avec une personne ui->txtAlarme->textCursor().insertText("<Erreur><Badge "+num_badge+QString::fromUtf8("> Badge non lié à une personne\n")); } else { tll->nom[num_pers] = listePersonne.at(0).nom; tll->prenom[num_pers] = listePersonne.at(0).prenom; tll->societe[num_pers] = listePersonne.at(0).societe; tll->photo[num_pers] = listePersonne.at(0).photo; } // calcul de la moyenne de la sensibilité tll->moySens[num_lecteur_i][tll->indMoy[num_lecteur_i]++] = sens_i ; if (tll->indMoy[num_lecteur_i] == MAXVAL){ tll->indMoy[num_lecteur_i] = 0; //indice du tableau de moyenne } int moy = 0; moy = calculerMoyenne(tll); //sur MAXVAL valeur tll->sdp[num_lecteur_i] = moy; //mémo pour calcul sens de passage moy -= 100; if (!sensDePassage(tll)){ //maj de zone et du sens de passage de ce badge //pas de sens de passage qDebug("pas de sens de passage dans BDD"); ui->txtAlarme->textCursor().insertText("<Erreur><Lecteur "+num_lecteur+ QString::fromUtf8("> Pas de sens de passage précisé dans BDD\n")); return false; } // recherche si lecteur n'est pas connecté if (!pBdd->getEtatLect(num_lecteur_i)){ qDebug("le lecteur n'est pas connecte ?!"); ui->txtAlarme->textCursor().insertText("<Erreur><Lecteur "+num_lecteur+QString::fromUtf8("> Lecteur non connecté\n")); return false; } //Obtenir les points de la zone en fonction des vues //obtenir vue(s) en fonction du lecteur //déclaration QList QList<T_TupleLecteurS> listeTupleL; pBdd->getVueFctLect(num_lecteur_i, &listeTupleL); if (!listeTupleL.empty()){ for (int i = 0; i < listeTupleL.count(); i++) { int num_vue = listeTupleL.at(i).num_vue; pBdd->getPointsZone(num_vue, tll->zone, &tll->ptA, &tll->ptB); this->calculerDroite(moy, tll->ptA, tll->ptB, &tll->ptBadge[num_vue]); //affichage tll->labelB[num_vue][num_badge_i]->setEnabled(true); //en fonction de l'état switch(tll->etat) { case 0: // ALLER if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_vert.jpg")); } else { tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/haut_vert.jpg")); } break; case 1: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_rouge.jpg")); } else { tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/haut_rouge.jpg")); } //homme en danger emit signalHommeEnDanger(tll->nom[num_pers]); //Historique des événements (log) : alarme mouvement pBdd->setLog(3, num_badge_i); //3=alarme mouvement break; case 2: tll->labelB[num_vue][num_badge_i]->setEnabled(false); break; case 3: tll->labelB[num_vue][num_badge_i]->setEnabled(false); break; case 4: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_vert.jpg")); } else { tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/bas_vert.jpg")); } break; case 5: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_rouge.jpg")); } else { tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/bas_rouge.jpg")); } //homme en danger emit signalHommeEnDanger(tll->nom[num_pers]); //Historique des événements (log) : alarme mouvement pBdd->setLog(3, num_badge_i); //3=alarme mouvement break; case 6: tll->labelB[num_vue][num_badge_i]->setEnabled(false); break; case 7: tll->labelB[num_vue][num_badge_i]->setEnabled(false); break; case 8: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_orange.jpg")); } else { tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/haut_orange.jpg")); } break; case 9: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_rouge.jpg")); } else { tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/haut_rouge.jpg")); } //homme en danger emit signalHommeEnDanger(tll->nom[num_pers]); //Historique des événements (log) : alarme mouvement pBdd->setLog(3, num_badge_i); //3=alarme mouvement break; case 10: tll->labelB[num_vue][num_badge_i]->setEnabled(false); break; case 11: tll->labelB[num_vue][num_badge_i]->setEnabled(false); break; case 12: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_orange.jpg")); } else { tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/bas_orange.jpg")); } break; case 13: if (num_vue == 1 || tll->zone == -1){ //pas de sens de passage tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/pers_rouge.jpg")); } else { tll->labelB[num_vue][num_badge_i]->setPixmap(QPixmap("ressources/bas_rouge.jpg")); } //homme en danger emit signalHommeEnDanger(tll->nom[num_pers]); //Historique des événements (log) : alarme mouvement pBdd->setLog(3, num_badge_i); //3=alarme mouvement break; case 14: tll->labelB[num_vue][num_badge_i]->setEnabled(false); break; case 15: tll->labelB[num_vue][num_badge_i]->setEnabled(false); break; } //fin switch //affichage position exacte badge if (num_vue==1 && num_pers==1) //taille petite, pas de décalement tll->labelB[num_vue][num_badge_i]->setGeometry(tll->ptBadge[num_vue].x, tll->ptBadge[num_vue].y,15,20); else if (num_vue==1 && num_pers!=1) //taile petite, décalement tll->labelB[num_vue][num_badge_i]->setGeometry(tll->ptBadge[num_vue].x + (15*num_pers), tll->ptBadge[num_vue].y,15,20); else if (num_vue!=1 && num_pers==1) //taille grande, pas de décalement tll->labelB[num_vue][num_badge_i]->setGeometry(tll->ptBadge[num_vue].x, tll->ptBadge[num_vue].y,30,20); else //taille grande, décalement tll->labelB[num_vue][num_badge_i]->setGeometry(tll->ptBadge[num_vue].x + (30*num_pers), tll->ptBadge[num_vue].y,30,20); //affichage identité personne if (num_pers != -1) { tll->labelB[num_vue][num_badge_i]->setToolTip("<img src=':" + tll->photo[num_pers] + "'/>" +" Badge "+ QString::number(num_badge_i) +" de : " + tll->nom[num_pers] +" " + tll->prenom[num_pers] +QString::fromUtf8(" Société : ")+ tll->societe[num_pers]); } else { //badge pas affecté tll->labelB[num_vue][num_badge_i]->setToolTip(QString::fromUtf8("Badge non affecté à une personne")); } } //fin for } //fin if pBdd->setBadgeActif(num_badge_i); //le badge n'est pas perdu return true; }