ROV'NET  0.2
BTS SNIR LaSalle Avignon 2020
Référence de la classe CommunicationRov

Class permettant de mettre en place une communication avec le rov. Plus de détails...

#include "communicationRov.h"

Graphe de collaboration de CommunicationRov:
Collaboration graph

Connecteurs publics

void gererErreur (QSerialPort::SerialPortError)
 
void recevoir ()
 Récupere la trame disponible sur le port à la réception du signal ReadyRead et émet un signal nouvelleTrame. Plus de détails...
 

Signaux

void etatPortModifie (bool etat, QString information)
 Envoie un signal informant que l'état du port a été modifié Plus de détails...
 
void nouvelleTrame (QString trame)
 Envoie un signal informant qu'une nouvelle trame est disponible. Plus de détails...
 

Fonctions membres publiques

 CommunicationRov (QObject *parent=nullptr)
 constructeur de la classe CommunicationRov Plus de détails...
 
int emettreTrame (QString trame)
 Emet la trame vers le robot. Plus de détails...
 
void fermerPort ()
 Permet de fermer le port série virtuel. Plus de détails...
 
bool getEtatPort ()
 retourne l'etat du port série Plus de détails...
 
bool ouvrirPort ()
 Permet d'ouvrir le port série virtuel. Plus de détails...
 
void setConfiguration (Configuration maConfiguration)
 Affecte a l'objet CommunicationRov une configuration du port série virtuel. Plus de détails...
 
 ~CommunicationRov ()
 Destructeur de la classe CommunicationRov. Plus de détails...
 

Fonctions membres publiques statiques

static QStringList detecterPortsDisponibles ()
 retourne la liste des ports disponibles Plus de détails...
 

Attributs privés

QByteArray donnees
 Tableau contenant les données bruts envoyé depuis la liason série. Plus de détails...
 
QSerialPort * port
 accède a la configuration de la liaison série Plus de détails...
 
QString trameRecue
 Derniere trameRecue. Plus de détails...
 

Description détaillée

Class permettant de mettre en place une communication avec le rov.

Définition à la ligne 38 du fichier communicationrov.h.

Documentation des constructeurs et destructeur

◆ CommunicationRov()

CommunicationRov::CommunicationRov ( QObject parent = nullptr)

constructeur de la classe CommunicationRov

Paramètres
parent

Définition à la ligne 9 du fichier communicationrov.cpp.

Références gererErreur(), et port.

9  : QObject(parent)
10 {
11  qDebug() << Q_FUNC_INFO;
12  port = new QSerialPort(this);
13 
14  connect(port, SIGNAL(errorOccurred(QSerialPort::SerialPortError)), this, SLOT(gererErreur(QSerialPort::SerialPortError)));
15 }
QSerialPort * port
accède a la configuration de la liaison série
La classe QObject est la classe de base de tous les objets Qt. Elle permet à ces objets Qt de dispose...
void gererErreur(QSerialPort::SerialPortError)

◆ ~CommunicationRov()

CommunicationRov::~CommunicationRov ( )

Destructeur de la classe CommunicationRov.

Définition à la ligne 17 du fichier communicationrov.cpp.

Références port.

18 {
19  if(port->isOpen())
20  port->close();
21  qDebug() << Q_FUNC_INFO;
22 }
QSerialPort * port
accède a la configuration de la liaison série

Documentation des fonctions membres

◆ detecterPortsDisponibles()

QStringList CommunicationRov::detecterPortsDisponibles ( )
static

retourne la liste des ports disponibles

Renvoie
la liste des ports disponibles

Définition à la ligne 98 du fichier communicationrov.cpp.

Référencé par IHMConfiguration::actualisePortsDisponibles(), et IHMConfiguration::configurerWidgets().

99 {
100  QStringList listePortsDetectes;
101 
102  foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
103  {
104  listePortsDetectes.push_back(info.portName());
105  }
106 
107  return listePortsDetectes;
108 }

◆ emettreTrame()

int CommunicationRov::emettreTrame ( QString  trame)

Emet la trame vers le robot.

Paramètres
trame
Renvoie
un entier correspondant au nombres d'octets envoyé, retourne -1 si la diffusion à échoué

Définition à la ligne 68 du fichier communicationrov.cpp.

Références port.

Référencé par Rov::creerTrameCamera(), Rov::creerTrameDeplacement(), Rov::creerTrameOrdre(), Rov::creerTramePilotage(), et Rov::creerTramePince().

69 {
70  int nombresOctets = -1;
71 
72  if (port == NULL || !port->isOpen())
73  {
74  return -1;
75  }
76 
77  nombresOctets = port->write(trame.toLatin1());
78  return nombresOctets;
79 }
QSerialPort * port
accède a la configuration de la liaison série

◆ etatPortModifie

void CommunicationRov::etatPortModifie ( bool  etat,
QString  information 
)
signal

Envoie un signal informant que l'état du port a été modifié

Paramètres
etat
information

Référencé par fermerPort(), et ouvrirPort().

◆ fermerPort()

void CommunicationRov::fermerPort ( )

Permet de fermer le port série virtuel.

Définition à la ligne 50 du fichier communicationrov.cpp.

Références etatPortModifie(), port, et recevoir().

Référencé par gererErreur(), et IHMConfiguration::modifierEtatPort().

51 {
52  port->close();
53  disconnect(port, SIGNAL(readyRead()), this, SLOT(recevoir()));
54  qDebug() << Q_FUNC_INFO << "Port fermé" << !port->isOpen();
55  emit etatPortModifie(false, port->portName());
56 }
void recevoir()
Récupere la trame disponible sur le port à la réception du signal ReadyRead et émet un signal nouvell...
QSerialPort * port
accède a la configuration de la liaison série
void etatPortModifie(bool etat, QString information)
Envoie un signal informant que l&#39;état du port a été modifié

◆ gererErreur

void CommunicationRov::gererErreur ( QSerialPort::SerialPortError  erreur)
slot

Définition à la ligne 115 du fichier communicationrov.cpp.

Références fermerPort().

Référencé par CommunicationRov().

116 {
117  switch(erreur)
118  {
119  case QSerialPort::ResourceError : fermerPort();
120  break;
121  }
122 }
void fermerPort()
Permet de fermer le port série virtuel.

◆ getEtatPort()

bool CommunicationRov::getEtatPort ( )

retourne l'etat du port série

Renvoie
l'etat du port série

Définition à la ligne 110 du fichier communicationrov.cpp.

Références port.

Référencé par IHMConfiguration::modifieEtatBoutons().

111 {
112  return port->isOpen();
113 }
QSerialPort * port
accède a la configuration de la liaison série

◆ nouvelleTrame

void CommunicationRov::nouvelleTrame ( QString  trame)
signal

Envoie un signal informant qu'une nouvelle trame est disponible.

Paramètres
trame

Référencé par recevoir().

◆ ouvrirPort()

bool CommunicationRov::ouvrirPort ( )

Permet d'ouvrir le port série virtuel.

Définition à la ligne 24 du fichier communicationrov.cpp.

Références etatPortModifie(), port, et recevoir().

Référencé par IHMConfiguration::IHMConfiguration(), et IHMConfiguration::modifierEtatPort().

25 {
26  if(port->open(QIODevice::ReadWrite))
27  {
28  qDebug() << Q_FUNC_INFO << "Port ouvert" << port->isOpen();
29  if(port->isOpen())
30  {
31  emit etatPortModifie(true, port->portName());
32  connect(port, SIGNAL(readyRead()), this, SLOT(recevoir()));
33  return true;
34  }
35  else
36  return false;
37  }
38  #ifdef MODE_CONNECTE
39  else
40  {
41  if(!port->isOpen())
42  {
43  QMessageBox::critical(nullptr, "Communication rov", QString::fromUtf8("Erreur ouverture du port série !"));
44  return false;
45  }
46  }
47  #endif
48 }
void recevoir()
Récupere la trame disponible sur le port à la réception du signal ReadyRead et émet un signal nouvell...
QSerialPort * port
accède a la configuration de la liaison série
void etatPortModifie(bool etat, QString information)
Envoie un signal informant que l&#39;état du port a été modifié

◆ recevoir

void CommunicationRov::recevoir ( )
slot

Récupere la trame disponible sur le port à la réception du signal ReadyRead et émet un signal nouvelleTrame.

Définition à la ligne 81 du fichier communicationrov.cpp.

Références donnees, nouvelleTrame(), port, et trameRecue.

Référencé par fermerPort(), et ouvrirPort().

82 {
83  while(port->bytesAvailable())
84  {
85  donnees += port->readAll();
86  //qDebug() << Q_FUNC_INFO << "bytesAvailable" << port->bytesAvailable() << "donnees" << donnees;
87  }
88 
89  if(donnees.startsWith("$") && donnees.endsWith("\r\n"))
90  {
91  trameRecue = QString(donnees.data());
92  //qDebug() << Q_FUNC_INFO << "trameRecue" << trameRecue;
94  donnees.clear();
95  }
96 }
void nouvelleTrame(QString trame)
Envoie un signal informant qu&#39;une nouvelle trame est disponible.
QSerialPort * port
accède a la configuration de la liaison série
QString trameRecue
Derniere trameRecue.
QByteArray donnees
Tableau contenant les données bruts envoyé depuis la liason série.

◆ setConfiguration()

void CommunicationRov::setConfiguration ( Configuration  maConfiguration)

Affecte a l'objet CommunicationRov une configuration du port série virtuel.

Paramètres
maConfiguration

Définition à la ligne 58 du fichier communicationrov.cpp.

Références Configuration::bitsDonnees, Configuration::bitStop, Configuration::debit, Configuration::port, et port.

Référencé par Rov::modifierConfiguration().

59 {
60  port->setPortName(maConfiguration.port);
61  port->setBaudRate(maConfiguration.debit);
62  port->setDataBits((QSerialPort::DataBits)maConfiguration.bitsDonnees);
63  port->setStopBits((QSerialPort::StopBits)maConfiguration.bitStop);
64  port->setParity(QSerialPort::NoParity);
65  port->setFlowControl(QSerialPort::NoFlowControl);
66 }
int debit
Attribut définissant la vitesse en bits/s de la communication.
QSerialPort * port
accède a la configuration de la liaison série
int bitsDonnees
Attribut définissant le nombre de bits de données de la communication.
int bitStop
Attribut définissant le nombre de bits de stop de la communication.
QString port
Attribut définissant le nom d&#39;un port.

Documentation des données membres

◆ donnees

QByteArray CommunicationRov::donnees
private

Tableau contenant les données bruts envoyé depuis la liason série.

Définition à la ligne 43 du fichier communicationrov.h.

Référencé par recevoir().

◆ port

QSerialPort* CommunicationRov::port
private

accède a la configuration de la liaison série

Définition à la ligne 42 du fichier communicationrov.h.

Référencé par CommunicationRov(), emettreTrame(), fermerPort(), getEtatPort(), ouvrirPort(), recevoir(), setConfiguration(), et ~CommunicationRov().

◆ trameRecue

QString CommunicationRov::trameRecue
private

Derniere trameRecue.

Définition à la ligne 44 du fichier communicationrov.h.

Référencé par recevoir().


La documentation de cette classe a été générée à partir des fichiers suivants :