11 Rov::Rov(
IHMRov *ihmRov,
QObject *parent) :
QObject(parent), ihmRov(ihmRov), camera(nullptr), trameDeplacement(
"$DEP;0;0;0\r\n"), tramePrecedenteDeplacement(
"$DEP;0;0;0\r\n"), tramePilotage(
"$BRAS;0\r\n"), tramePrecedentePilotage(
"$BRAS;0\r\n"), tramePince(
"$PINCE;0\r\n"), tramePrecedentePince(
"$PINCE;0\r\n"), tramePrecedenteCamera(
TRAME_CAMERA_IMMOBILE),
12 campagneEnCours(false)
14 qDebug() << Q_FUNC_INFO;
26 qDebug() << Q_FUNC_INFO;
31 listeManettes = QGamepadManager::instance()->connectedGamepads();
35 qDebug() << Q_FUNC_INFO <<
"Aucune manette détectée !";
39 qDebug() << Q_FUNC_INFO <<
"Nombre de manettes" <<
listeManettes.size();
44 qDebug() << Q_FUNC_INFO <<
"-> Manette" << m;
53 connect(manette, SIGNAL(creationTrameDeplacement(
char,
int,
char)),
this, SLOT(
creerTrameDeplacement(
char,
int,
char)));
54 connect(manette, SIGNAL(creationTramePilotage(QString)),
this, SLOT(
creerTramePilotage(QString)));
55 connect(manette, SIGNAL(creationTrameOrdre(QString)),
this, SLOT(
creerTrameOrdre(QString)));
56 connect(manette, SIGNAL(creationTramePince(QString)),
this, SLOT(
creerTramePince(QString)));
57 connect(manette, SIGNAL(nouvelleTrameCamera(QString,QString)),
this, SLOT(
creerTrameCamera(QString,QString)));
59 connect(manette, SIGNAL(axisLeftXChanged(
double)), manette, SLOT(changerAxeXJoystickGauche(
double)));
60 connect(manette, SIGNAL(axisLeftYChanged(
double)), manette, SLOT(changerAxeYJoystickGauche(
double)));
61 connect(manette, SIGNAL(axisRightXChanged(
double)), manette, SLOT(changerAxeXJoystickDroit(
double)));
62 connect(manette, SIGNAL(axisRightYChanged(
double)), manette, SLOT(changerAxeYJoystickDroit(
double)));
63 connect(manette, SIGNAL(buttonL1Changed(
bool)), manette, SLOT(changerBoutonHautGauche(
bool)));
64 connect(manette, SIGNAL(buttonR1Changed(
bool)), manette, SLOT(changerBoutonHautDroit(
bool)));
65 connect(manette, SIGNAL(buttonL2Changed(
double)), manette, SLOT(changerGachetteBasGauche(
double)));
66 connect(manette, SIGNAL(buttonR2Changed(
double)), manette, SLOT(changerGachetteBasDroit(
double)));
67 connect(manette, SIGNAL(buttonUpChanged(
bool)), manette, SLOT(changerFlecheEnAvant(
bool)));
68 connect(manette, SIGNAL(buttonDownChanged(
bool)), manette, SLOT(changerFlecheEnArriere(
bool)));
69 connect(manette, SIGNAL(buttonLeftChanged(
bool)), manette, SLOT(changerFlecheAGauche(
bool)));
70 connect(manette, SIGNAL(buttonRightChanged(
bool)), manette, SLOT(changerFlecheADroite(
bool)));
71 connect(manette, SIGNAL(buttonAChanged(
bool)), manette, SLOT(changerBoutonA(
bool)));
72 connect(manette, SIGNAL(buttonBChanged(
bool)), manette, SLOT(changerBoutonB(
bool)));
73 connect(manette, SIGNAL(buttonXChanged(
bool)), manette, SLOT(changerBoutonX(
bool)));
74 connect(manette, SIGNAL(buttonYChanged(
bool)), manette, SLOT(changerBoutonY(
bool)));
75 connect(manette, SIGNAL(buttonSelectChanged(
bool)), manette, SLOT(changerBoutonSelect(
bool)));
76 connect(manette, SIGNAL(buttonGuideChanged(
bool)), manette, SLOT(fermerApplication(
bool)));
77 connect(manette, SIGNAL(buttonR3Changed(
bool)),
ihmRov, SLOT(capturerImage(
bool)));
79 connect(manette, SIGNAL(connectedChanged(
bool)),
ihmRov, SLOT(modifieEtatManette(
bool)));
90 QString temperature, humidite, radiation;
92 temperature = QString::number(trameCapteur.section(
";",1,1).toDouble()/10);
93 humidite = trameCapteur.section(
";",2,2);
94 radiation = trameCapteur.section(
";",3,3);
101 mesure.
dateheure = QDateTime::currentDateTime();
118 connect(
communicationRov, SIGNAL(etatPortModifie(
bool, QString)),
ihmRov, SLOT(modifieEtatPortSerie(
bool, QString)));
129 qDebug() << Q_FUNC_INFO;
142 qDebug() << Q_FUNC_INFO;
162 return dureeMission.toString(
"hh:mm:ss");
167 qDebug() << Q_FUNC_INFO <<
"nomCamera" << nomCamera <<
"choixResolution" << choixResolution;
171 connect(
camera, SIGNAL(nouvelleImage(QPixmap)),
ihmRov, SLOT(afficherImage(QPixmap)));
187 QString trameTelemetrie, trameCapteur;
189 QStringList trames = trame.split(
"\r\n");
190 qDebug() << Q_FUNC_INFO <<
"trame" << trames.size();
191 for(
int i = 0; i < trames.size(); i++)
193 if(!trames[i].isEmpty())
197 trameTelemetrie = trames[i];
202 trameCapteur = trames[i];
208 qDebug() << Q_FUNC_INFO <<
"Trame inconnue !";
234 qDebug() << Q_FUNC_INFO <<
"tramePilotage :" <<
tramePilotage;
245 qDebug() << Q_FUNC_INFO <<
"trameOrdre :" <<
trameOrdre;
255 qDebug() << Q_FUNC_INFO <<
"tramePince :" <<
tramePince;
269 qDebug() << Q_FUNC_INFO <<
"trame camera" << trameCamera;
277 qDebug() << Q_FUNC_INFO <<
"isRunning" <<
camera->isRunning();
279 disconnect(
camera, SIGNAL(nouvelleImage(QPixmap)),
ihmRov, SLOT(afficherImage(QPixmap)));
280 camera->requestInterruption();
void creerTrameDeplacement(char deplacementAxeX, int puissance, char deplacementAxeY)
Crée les trames de déplacement.
QString temperature
Donnée temperature.
Classe permettant une communication entre le rov et la manette.
Fichier qui contient la déclaration de la classe Campagne.
QTime dureeCampagne
Timer lancer au début de la campagne.
Rov(IHMRov *ihmRov, QObject *parent=nullptr)
Constructeur de la classe Rov.
void initialiserEvenementManette(Manette *manette)
Initialise les evenement de la manette.
void creerTramePilotage(QString deplacement)
Crée les trames de pilotage.
void decoderTrame(QString trame)
Décode la trame réçue par le port série selon le protocole établie.
Camera * camera
Instance d'un objet camera possedant les informations nécessaire à l'affichage du flux vidéo...
#define DEBUT_TRAME_ORDRE
Constante contenant le début de la trame ordre selon le protocole.
void supprimerManette()
Supprime les manettes du conteneur des manettes.
Capteurs * getCapteurs()
Retourne l'objet capteurs créée par le rov.
IHM permettant d'obtenir le flux vidéo en direct placé sur le robot et d'obtenir les informations rel...
void detecterManette()
detecte les mannettes
Capteurs * capteurs
Instance d'un objet contenant les dernières informations issues des capteurs du rov.
void setAngle(QString angle)
Modifie la dernière information issue du capteur de distance.
Campagne * getCampagne()
Retourne l'objet campagne en cours.
#define CAMERA_DEFAUT
Défini le numéro de la caméra par défaut.
QString humidite
Donnée humidité
QString tramePrecedenteDeplacement
Contenu précédente trame déplacement.
#define DEBUT_TRAME_DEPLACEMENT
Constante contenant le début de la trame déplacement selon le protocole.
Class permettant de mettre en place une communication avec la camera.
void setHumidite(QString humidite)
Modifie la dernière information issue du capteur de humidité
void setTemperature(QString temperature)
Modifie la dernière information issue du capteur de température.
void decoderTrameCapteur(QString trameCapteur)
Décode la trame capteur reçue selon le protocole.
void setEtatRadar(bool etatRadar)
Dertermine l'etat de etatRadar.
bool campagneEnCours
Etat de si une campagne est en cour.
QString radiation
Donnée radiation.
void initialiserEvenements()
Initialise le(s) Evenement(s)
void enregistrerMesures(QString temperature, QString humidite, QString radiation)
signal contenant les nouvelles mesures recus du robot (pour les enregistrer dans la BDD) ...
void actualiserInformationsSeuils()
Actualise les informations affichés des indicateur de dépassement des seuils acceptable.
QString getTempsCampagne()
Retourne la durée de la campagne.
bool demarrerVideo(QString nomCamera, int choixResolution=-1)
Démarre un nouveau flux vidéo.
void setTelemetrie(QString telemetrie)
Modifie la dernière information issue du capteur télémétrique.
structure permettant de configurer une communication
#define TRAME_CAMERA_IMMOBILE
Constante contenant la trame pour immobiliser la caméra.
QString trameOrdre
Contenu trame ordre.
CommunicationRov * communicationRov
Instance d'un objet permettant la récupération des trames envoyé par la liaison série.
void arreterVideo()
Arrete le flux vidéo.
Camera * getCamera()
Retourne l'objet caméra créée par le rov.
void arreterVideo()
Déconnecte les événements liés à la caméra et modifie l'état des boutons de l'IHM.
#define DEBUT_TRAME_PINCE
Constante contenant le début de la trame pince selon le protocole.
bool getCampagneEncours() const
Retourne l'etat de la campagne.
#define DEBUT_TRAME_CAMERA
Constante contenant le début de la trame caméra selon le protocole.
void modifierConfiguration(Configuration &configuration)
Modifie la configuration de la communication.
structure permettant de définir les propriété d'une mesure prise à une heure précise ...
QString tramePrecedenteCamera
Contenu précédente trame caméra.
void arreterCampagne()
Arrête la campagne.
CommunicationRov * getCommunicationRov()
Retourne l'objet communicationRov créée par le rov.
void setConfiguration(Configuration maConfiguration)
Affecte a l'objet CommunicationRov une configuration du port série virtuel.
QList< int > listeManettes
Liste des mannettes connecté
void creerTramePince(QString mouvementPince)
Crée les trames de la pince.
#define DEBUT_TRAME_CAPTEUR
Constante contenant le début de la trame capteur selon le protocole.
IHMRov * ihmRov
Instance d'un objet ihmRov permettant la connexion entre les autre classe associé aux rov et l'ihm...
QString tramePilotage
Contenu trame pilotage.
Class permettant de mettre en place une communication avec le rov.
int getDuree() const
Retourne la durée de la campagne.
void setDuree(int duree)
Modifie la duree de la campagne.
~Rov()
Destructeur de la classe Rov.
Fichier qui contient la déclaration de la classe rov.
bool demarrerCampagne()
Démarre la campagne.
QVector< Manette * > manettes
Conteneur des manettes.
void setRadiation(QString radiation)
Modifie la dernière information issue du capteur de radiation.
static int getNbCameras()
Retourne le nombre de caméras connectés.
QString trameDeplacement
Contenu trame déplacement.
QString tramePince
Contenu trame pince.
QDateTime dateheure
Date/Heure.
void modifieEtatCamera(bool etat, QString information)
Modifie l'affichage de l'état de la caméra.
void creerTrameOrdre(QString ordre)
Crée les trames d'ordre.
La classe QObject est la classe de base de tous les objets Qt. Elle permet à ces objets Qt de dispose...
#define TRAME_DEPLACEMENT_IMMOBILE
void creerTrameCamera(QString axeX, QString axeY)
Crée les trames de la caméra.
#define TRAME_PINCE_IMMOBILE
Constante contenant la trame pince à zéro selon le protocole.
int emettreTrame(QString trame)
Emet la trame vers le robot.
Classe contenant les dernières informations issues des capteurs du rov.
void ajouterMesure(Mesure &mesure)
Ajoute une mesure dans le conteneur de mesure.
QVector< Manette * > getManettes()
Retourne le conteneur de manettes créée par le rov.
#define DEBUT_TRAME_TELEMETRIE
Constante contenant le début de la trame telemetrie selon le protocole.
QString tramePrecedentePince
Contenu précédente trame pince.
void initialiserEvenementsCamera()
Initialise les événements liés à la caméra.
static QString creerNomCamera(int numero)
Retourne le nom de caméra associé a son numéro.
#define TRAME_PILOTAGE_IMMOBILE
Constante contenant la trame pilotage à zéro selon le protocole.
QString tramePrecedentePilotage
Contenu précédente trame pilotage.
void decoderTrameTelemetrie(QString trameTelemetrie)
Décode la trame télémetrie reçue selon le protocole.
#define DEBUT_TRAME_PILOTAGE
Constante contenant le début de la trame pilotage selon le protocole.