Projet e-stock  0.2
BTS SNIR LaSalle Avignon 2020
Référence de la classe Communication

La classe Communication permet de communiquer avec le port série. Plus de détails...

#include <Communication.h>

Graphe de collaboration de Communication:
Collaboration graph

Connecteurs publics

void recevoirTrame ()
 Définition de la méthode recevoirTrame. Plus de détails...
 

Signaux

void envoieTrameEtat (QString trame)
 
void envoieTrameOuverture (QString trame)
 
void envoieTramePoids (QString trame)
 

Fonctions membres publiques

void arreterCommunicationPort ()
 Définition de la méthode arreterCommunicationPort. Plus de détails...
 
 Communication (QObject *parent=nullptr)
 Constructeur de la classe Communication. Plus de détails...
 
void configurerPort ()
 Définition de la méthode configurerPort. Plus de détails...
 
void demarrerCommunicationPort ()
 Définition de la méthode demarrerCommunicationPort. Plus de détails...
 
void envoyerRequetePoids (QString numeroCasier=0)
 Définition de la méthode envoyerRequetePoids. Plus de détails...
 
void envoyerTrame (QString trame)
 Définition de la méthode envoyerTrame. Plus de détails...
 
void ouvrirPort ()
 Définition de la métohde ouvrirPort. Plus de détails...
 
void setNomPort (QString nouveauPortSerie)
 Définition de la méthode setNomPort. Plus de détails...
 
 ~Communication ()
 Destructeur de la classe Communication. Plus de détails...
 

Fonctions membres privées

void traiterTrame (QString trame)
 Définition de la méthode TraiterTrame. Plus de détails...
 
bool verifierTrame (QString trame)
 Définition de la méthode verifierTrame. Plus de détails...
 

Attributs privés

QString nomPort
 Variable qui contient le nom du port serie. Plus de détails...
 
QSerialPort * port
 Variable pointeur sur le port. Plus de détails...
 
QString trameBrute
 Variable qui contient la trame brute. Plus de détails...
 

Description détaillée

La classe Communication permet de communiquer avec le port série.

Auteur
Tranchat Joffrey
Legger Pierre-Antoine
Version
1.0
Date
jeudi 12 Mars 2020

Définition à la ligne 46 du fichier Communication.h.

Documentation des constructeurs et destructeur

◆ Communication()

Communication::Communication ( QObject parent = nullptr)

Constructeur de la classe Communication.

initialise un objet Communication

Paramètres
parent

Définition à la ligne 23 du fichier Communication.cpp.

23  : QObject(parent), port(new QSerialPort(this)), trameBrute("\0"), nomPort(SERIAL_PORT_NAME)
24 {
25  qDebug() << Q_FUNC_INFO;
26 }
QString trameBrute
Variable qui contient la trame brute.
Definition: Communication.h:68
QString nomPort
Variable qui contient le nom du port serie.
Definition: Communication.h:69
QSerialPort * port
Variable pointeur sur le port.
Definition: Communication.h:67
#define SERIAL_PORT_NAME
Définit le nom du port série associé au SE.
Definition: Communication.h:22
La classe QObject est la classe de base de tous les objets Qt. Elle permet à ces objets Qt de dispose...

◆ ~Communication()

Communication::~Communication ( )

Destructeur de la classe Communication.

Détruit uun objet Communication et ferme le port série

Définition à la ligne 32 du fichier Communication.cpp.

Références port.

33 {
34  port->close();
35  qDebug() << Q_FUNC_INFO;
36 }
QSerialPort * port
Variable pointeur sur le port.
Definition: Communication.h:67

Documentation des fonctions membres

◆ arreterCommunicationPort()

void Communication::arreterCommunicationPort ( )

Définition de la méthode arreterCommunicationPort.

Méthode qui ferme le port série

Définition à la ligne 53 du fichier Communication.cpp.

Références port.

54 {
55  qDebug() << Q_FUNC_INFO;
56  port->close();
57 }
QSerialPort * port
Variable pointeur sur le port.
Definition: Communication.h:67

◆ configurerPort()

void Communication::configurerPort ( )

Définition de la méthode configurerPort.

Méthode qui configure le port serie par défaut

Définition à la ligne 63 du fichier Communication.cpp.

Références nomPort, et port.

Référencé par demarrerCommunicationPort().

64 {
65  qDebug() << Q_FUNC_INFO;
66  port->setPortName(nomPort);
67  port->setBaudRate(QSerialPort::Baud9600);
68  port->setDataBits(QSerialPort::Data8);
69  port->setParity(QSerialPort::NoParity);
70  port->setStopBits(QSerialPort::OneStop);
71  port->setFlowControl(QSerialPort::NoFlowControl);
72 }
QString nomPort
Variable qui contient le nom du port serie.
Definition: Communication.h:69
QSerialPort * port
Variable pointeur sur le port.
Definition: Communication.h:67

◆ demarrerCommunicationPort()

void Communication::demarrerCommunicationPort ( )

Définition de la méthode demarrerCommunicationPort.

Méthode qui démarre la configuration du port serie et ouvre le port serie

Définition à la ligne 42 du fichier Communication.cpp.

Références configurerPort(), et ouvrirPort().

Référencé par Supervision::Supervision().

43 {
44  qDebug() << Q_FUNC_INFO;
46  ouvrirPort();
47 }
void ouvrirPort()
Définition de la métohde ouvrirPort.
void configurerPort()
Définition de la méthode configurerPort.

◆ envoieTrameEtat

void Communication::envoieTrameEtat ( QString  trame)
signal

Référencé par traiterTrame().

◆ envoieTrameOuverture

void Communication::envoieTrameOuverture ( QString  trame)
signal

Référencé par traiterTrame().

◆ envoieTramePoids

void Communication::envoieTramePoids ( QString  trame)
signal

Référencé par traiterTrame().

◆ envoyerRequetePoids()

void Communication::envoyerRequetePoids ( QString  numeroCasier = 0)

Définition de la méthode envoyerRequetePoids.

Méthode qui permet d'envoyer une requête pour peser un casier

Paramètres
numeroCasier

Définition à la ligne 179 du fichier Communication.cpp.

Références envoyerTrame().

Référencé par Supervision::Supervision().

180 {
181  QString trame = "CASIERS;3;" + numeroCasier + ";\r\n";
182  envoyerTrame(trame);
183 }
void envoyerTrame(QString trame)
Définition de la méthode envoyerTrame.

◆ envoyerTrame()

void Communication::envoyerTrame ( QString  trame)

Définition de la méthode envoyerTrame.

Méthode qui permet d'envoyer une trame via le port série

Paramètres
trame

Définition à la ligne 107 du fichier Communication.cpp.

Références port.

Référencé par envoyerRequetePoids().

108 {
109  if (port->isOpen())
110  {
111  port->write(trame.toLatin1());
112  }
113 }
QSerialPort * port
Variable pointeur sur le port.
Definition: Communication.h:67

◆ ouvrirPort()

void Communication::ouvrirPort ( )

Définition de la métohde ouvrirPort.

Méthode qui ouvre le port serie en lecture et écriture

Définition à la ligne 78 du fichier Communication.cpp.

Références nomPort, port, et recevoirTrame().

Référencé par demarrerCommunicationPort().

79 {
80  if (port->open(QIODevice::ReadWrite))
81  {
82  qDebug() << Q_FUNC_INFO << "connecté au port" << nomPort;
83  connect(port, SIGNAL(readyRead()), this, SLOT(recevoirTrame()));
84  }
85  else
86  {
87  qDebug() << Q_FUNC_INFO << "erreur ouverture du port" << port->error();
88  }
89 }
QString nomPort
Variable qui contient le nom du port serie.
Definition: Communication.h:69
QSerialPort * port
Variable pointeur sur le port.
Definition: Communication.h:67
void recevoirTrame()
Définition de la méthode recevoirTrame.

◆ recevoirTrame

void Communication::recevoirTrame ( )
slot

Définition de la méthode recevoirTrame.

Méthode qui permet de recevoir une trame via le port série

Définition à la ligne 119 du fichier Communication.cpp.

Références port, traiterTrame(), trameBrute, et verifierTrame().

Référencé par ouvrirPort().

120 {
121  trameBrute = "\0";
122 
123  while (port->waitForReadyRead(500))
124  {
125  trameBrute.append(port->readAll());
126  }
127 
130 }
void traiterTrame(QString trame)
Définition de la méthode TraiterTrame.
bool verifierTrame(QString trame)
Définition de la méthode verifierTrame.
QString trameBrute
Variable qui contient la trame brute.
Definition: Communication.h:68
QSerialPort * port
Variable pointeur sur le port.
Definition: Communication.h:67

◆ setNomPort()

void Communication::setNomPort ( QString  nouveauPortSerie)

Définition de la méthode setNomPort.

Méthode qui permet de définir le nom du port série à utiliser

Paramètres
nouveauPortSerie

Définition à la ligne 96 du fichier Communication.cpp.

Références nomPort.

97 {
98  nomPort = nouveauPortSerie;
99  qDebug() << Q_FUNC_INFO << nomPort;
100 }
QString nomPort
Variable qui contient le nom du port serie.
Definition: Communication.h:69

◆ traiterTrame()

void Communication::traiterTrame ( QString  trame)
private

Définition de la méthode TraiterTrame.

Méthode qui signale le type de trame reçue

Paramètres
trame

Définition à la ligne 158 du fichier Communication.cpp.

Références DELIMITEUR_CHAMP, EN_TETE, envoieTrameEtat(), envoieTrameOuverture(), envoieTramePoids(), TRAME_ETAT, TRAME_OUVERTURE, et TRAME_POIDS.

Référencé par recevoirTrame().

159 {
160  if(trame.startsWith(EN_TETE + DELIMITEUR_CHAMP + TRAME_OUVERTURE + DELIMITEUR_CHAMP))
161  {
162  emit envoieTrameOuverture(trame);
163  }
164  else if(trame.startsWith(EN_TETE + DELIMITEUR_CHAMP + TRAME_ETAT + DELIMITEUR_CHAMP))
165  {
166  emit envoieTrameEtat(trame);
167  }
168  else if(trame.startsWith(EN_TETE + DELIMITEUR_CHAMP + TRAME_POIDS + DELIMITEUR_CHAMP))
169  {
170  emit envoieTramePoids(trame);
171  }
172 }
void envoieTrameEtat(QString trame)
#define TRAME_OUVERTURE
Definition: Communication.h:30
#define TRAME_POIDS
Definition: Communication.h:32
#define DELIMITEUR_CHAMP
Definition: Communication.h:26
void envoieTrameOuverture(QString trame)
void envoieTramePoids(QString trame)
#define EN_TETE
Definition: Communication.h:25
#define TRAME_ETAT
Definition: Communication.h:31

◆ verifierTrame()

bool Communication::verifierTrame ( QString  trame)
private

Définition de la méthode verifierTrame.

Méthode qui vérifie si la trame respecte le protocole

Paramètres
trame
Renvoie
un booleen qui indique si la trame est correct ou nom

Définition à la ligne 138 du fichier Communication.cpp.

Références DELIMITEUR_FIN, et EN_TETE.

Référencé par recevoirTrame().

139 {
140  qDebug() << Q_FUNC_INFO << trame;
141  if(!trame.startsWith(EN_TETE))
142  {
143  return false;
144  }
145  if(!trame.endsWith(DELIMITEUR_FIN))
146  {
147  return false;
148  }
149 
150  return true;
151 }
#define EN_TETE
Definition: Communication.h:25
#define DELIMITEUR_FIN
Definition: Communication.h:27

Documentation des données membres

◆ nomPort

QString Communication::nomPort
private

Variable qui contient le nom du port serie.

Définition à la ligne 69 du fichier Communication.h.

Référencé par configurerPort(), ouvrirPort(), et setNomPort().

◆ port

QSerialPort* Communication::port
private

Variable pointeur sur le port.

Définition à la ligne 67 du fichier Communication.h.

Référencé par arreterCommunicationPort(), configurerPort(), envoyerTrame(), ouvrirPort(), recevoirTrame(), et ~Communication().

◆ trameBrute

QString Communication::trameBrute
private

Variable qui contient la trame brute.

Définition à la ligne 68 du fichier Communication.h.

Référencé par recevoirTrame().


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