tournesol - freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03...

191
Tournesol 1.1 Généré par Doxygen 1.7.6.1 Jeudi Juin 9 2016 21 :46 :01

Upload: others

Post on 26-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

Tournesol1.1

Généré par Doxygen 1.7.6.1

Jeudi Juin 9 2016 21 :46 :01

Page 2: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

TABLE DES MATIÈRES i

Table des matieres

1 Page principale du projet Tournesol 1

1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Table des matières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Changelog 2

3 Configuration 12

4 Manuel d’installation 13

5 Recette 13

6 Base de données 14

7 A propos 16

8 Licence GPL 16

9 Liste des choses à faire 16

10 Documentation des classes 17

10.1 Référence de la classe AcquisitionMeteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

10.1.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

10.1.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

10.1.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

10.1.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

10.2 Référence de la classe AcquisitionRegulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

10.2.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

10.2.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

10.2.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

10.2.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

10.3 Référence de la classe AcquisitionSuiveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

10.3.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

10.3.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

10.3.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

10.3.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

10.4 Référence de la structure AlarmesRegulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

10.4.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

10.4.2 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

10.5 Référence de la classe AsservissementSuiveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

10.5.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

10.5.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

10.5.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

10.5.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

10.6 Référence de la classe BaseDeDonnees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

10.6.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

10.6.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 3: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

TABLE DES MATIÈRES ii

10.6.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

10.6.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

10.7 Référence de la classe BusI2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

10.7.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

10.7.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

10.7.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

10.7.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

10.8 Référence de la classe CapteurLuminosite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

10.8.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

10.8.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

10.8.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

10.8.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

10.9 Référence de la classe CapteurSolaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

10.9.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

10.9.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

10.9.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

10.9.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

10.10Référence de la structure configurationProtectionVent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

10.11Référence de la structure ConfigurationProtectionVent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

10.11.1 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

10.12Référence de la classe CV7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

10.12.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

10.12.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

10.12.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

10.12.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

10.13Référence de la classe Horloge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

10.13.1 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

10.13.2 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

10.13.3 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

10.14Référence de la classe IhmTournesol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

10.14.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

10.14.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

10.14.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

10.14.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

10.15Référence de la structure InformationsRegulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

10.15.1 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

10.16Référence de la structure InformationsStationMeteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

10.16.1 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

10.17Référence de la structure InformationsSuiveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

10.17.1 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

10.18Référence de la structure JournalisationRegulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

10.18.1 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

10.19Référence de la structure Mesure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

10.19.1 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

10.20Référence de la structure ParametresRegulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 4: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

TABLE DES MATIÈRES iii

10.20.1 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

10.21Référence de la classe Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

10.21.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

10.21.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

10.21.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

10.21.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

10.22Référence de la classe ProtectionVent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

10.22.1 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

10.22.2 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

10.22.3 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

10.23Référence de la classe Regulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

10.23.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

10.23.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

10.23.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

10.23.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

10.24Référence de la classe StationMeteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

10.24.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

10.24.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

10.24.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

10.24.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

10.25Référence de la classe SuiveurSolaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

10.25.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

10.25.2 Documentation des constructeurs et destructeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

10.25.3 Documentation des fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

10.25.4 Documentation des données membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

11 Documentation des fichiers 149

11.1 Référence du fichier acquisitionMeteo.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

11.2 Référence du fichier acquisitionMeteo.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

11.2.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

11.3 Référence du fichier acquisitionRegulateur.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

11.4 Référence du fichier acquisitionRegulateur.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

11.4.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

11.5 Référence du fichier acquisitionSuiveur.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

11.6 Référence du fichier acquisitionSuiveur.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

11.7 Référence du fichier asservissementSuiveur.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

11.8 Référence du fichier asservissementSuiveur.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

11.8.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

11.9 Référence du fichier basededonnees.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

11.10Référence du fichier basededonnees.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

11.10.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

11.11Référence du fichier busi2c.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

11.12Référence du fichier busi2c.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

11.12.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

11.12.2 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

11.13Référence du fichier capteurLuminosite.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 5: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

1 Page principale du projet Tournesol 1

11.14Référence du fichier capteurLuminosite.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

11.14.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

11.15Référence du fichier capteurSolaire.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

11.16Référence du fichier capteurSolaire.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

11.16.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

11.17Référence du fichier Changelog.dox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

11.18Référence du fichier CV7.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

11.19Référence du fichier CV7.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

11.19.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

11.20Référence du fichier horloge.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

11.21Référence du fichier horloge.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

11.21.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

11.22Référence du fichier ihmTournesol.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

11.23Référence du fichier ihmTournesol.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

11.24Référence du fichier main.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

11.24.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

11.24.2 Documentation des fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

11.25Référence du fichier port.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

11.26Référence du fichier port.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

11.26.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

11.27Référence du fichier protectionVent.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

11.27.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

11.28Référence du fichier protectionVent.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

11.28.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

11.29Référence du fichier README.dox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

11.30Référence du fichier regulateur.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

11.31Référence du fichier regulateur.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

11.31.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

11.32Référence du fichier stationMeteo.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

11.33Référence du fichier stationMeteo.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

11.34Référence du fichier suiveurSolaire.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

11.35Référence du fichier suiveurSolaire.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

11.35.1 Documentation des macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

11.36Référence du fichier tournesol.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

11.36.1 Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

1 Page principale du projet Tournesol

1.1 Introduction

Assurer le fonctionnement autonome d’une installation photovoltaïque motorisée permettant d’augmenter la production énergé-tique.

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 6: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

1.2 Table des matières 2

1.2 Table des matieres

– Configuration– Manuel d’installation– Liste des choses à faire– Changelog– Recette– Base de données– A propos– Licence GPL

Dépôt SVN : https://svn.riouxsvn.com/tournesol

2 Changelog

------------------------------------------------------------------------

r164 | ndetilleux | 2016-06-09 17 :12 :43 +0200 (jeu. 09 juin 2016) | 1 ligne

Modif protection vent

------------------------------------------------------------------------

r163 | rgonzalves | 2016-06-09 15 :56 :23 +0200 (jeu. 09 juin 2016) | 1 ligne

Desactivation debug

------------------------------------------------------------------------

r162 | rgonzalves | 2016-06-09 15 :55 :45 +0200 (jeu. 09 juin 2016) | 1 ligne

Reglage erreur segmentation

------------------------------------------------------------------------

r161 | ndetilleux | 2016-06-09 15 :01 :15 +0200 (jeu. 09 juin 2016) | 1 ligne

Modif affichage luminosite

------------------------------------------------------------------------

r160 | ndetilleux | 2016-06-09 14 :58 :12 +0200 (jeu. 09 juin 2016) | 1 ligne

Modif gestion luminosite

------------------------------------------------------------------------

r159 | gmoll | 2016-06-09 09 :02 :23 +0200 (jeu. 09 juin 2016) | 1 ligne

Integration du voyant rouge/vert dans l’ihm pour afficher l’etat du suiveur

------------------------------------------------------------------------

r158 | rgonzalves | 2016-06-08 16 :29 :10 +0200 (mer. 08 juin 2016) | 1 ligne

Affichage de l’heure par le système

------------------------------------------------------------------------

r157 | athiel | 2016-06-08 14 :55 :49 +0200 (mer. 08 juin 2016) | 1 ligne

Commencement de la bdd pour le regulateur de charge

------------------------------------------------------------------------

r156 | athiel | 2016-06-08 14 :06 :44 +0200 (mer. 08 juin 2016) | 1 ligne

Commencement de la bdd pour le regulateur de charge

------------------------------------------------------------------------

r155 | athiel | 2016-06-08 14 :05 :20 +0200 (mer. 08 juin 2016) | 1 ligne

Commencement de la bdd pour le regulateur de charge

------------------------------------------------------------------------

r154 | athiel | 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) | 1 ligne

Commencement de la bdd pour le regulateur de charge

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 7: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

2 Changelog 3

------------------------------------------------------------------------

r153 | rgonzalves | 2016-06-08 12 :00 :34 +0200 (mer. 08 juin 2016) | 1 ligne

Ajout d’informations du suiveur sur l’onglet accueil et réglages du déplacement par angle

------------------------------------------------------------------------

r152 | rgonzalves | 2016-06-08 11 :59 :43 +0200 (mer. 08 juin 2016) | 1 ligne

Ajout d’informations du suiveur sur l’onglet accueil et réglages du déplacement par angle

------------------------------------------------------------------------

r151 | ndetilleux | 2016-06-08 08 :08 :15 +0200 (mer. 08 juin 2016) | 1 ligne

Modif IHM

------------------------------------------------------------------------

r150 | ndetilleux | 2016-06-08 08 :06 :45 +0200 (mer. 08 juin 2016) | 1 ligne

Modif IHM

------------------------------------------------------------------------

r149 | ndetilleux | 2016-06-03 17 :18 :32 +0200 (ven. 03 juin 2016) | 1 ligne

Test pour suiveur solaire

------------------------------------------------------------------------

r148 | ndetilleux | 2016-06-03 17 :07 :43 +0200 (ven. 03 juin 2016) | 1 ligne

Modif

------------------------------------------------------------------------

r147 | rgonzalves | 2016-06-03 16 :32 :44 +0200 (ven. 03 juin 2016) | 1 ligne

Ajout de boutons de commande du suiveur sur l’ihm

------------------------------------------------------------------------

r146 | ndetilleux | 2016-06-03 16 :12 :04 +0200 (ven. 03 juin 2016) | 1 ligne

Lien entre protectionVent et acquisitionSuiveur

------------------------------------------------------------------------

r145 | ndetilleux | 2016-06-03 15 :43 :51 +0200 (ven. 03 juin 2016) | 1 ligne

Modification protection vent et recuperation vitesse dans BDD

------------------------------------------------------------------------

r144 | ndetilleux | 2016-06-03 14 :17 :00 +0200 (ven. 03 juin 2016) | 1 ligne

Suppression de debugs polluants

------------------------------------------------------------------------

r143 | rgonzalves | 2016-06-03 13 :51 :26 +0200 (ven. 03 juin 2016) | 1 ligne

Ajout de la gestion du mode automatique programmé

------------------------------------------------------------------------

r142 | rgonzalves | 2016-06-03 13 :49 :54 +0200 (ven. 03 juin 2016) | 1 ligne

Ajout de la gestion du mode automatique programmé

------------------------------------------------------------------------

r141 | ndetilleux | 2016-06-03 13 :19 :19 +0200 (ven. 03 juin 2016) | 1 ligne

Légères modifications de valeurs pour correspondre avec le cahier des charges

------------------------------------------------------------------------

r140 | ndetilleux | 2016-06-03 12 :59 :48 +0200 (ven. 03 juin 2016) | 1 ligne

Ajout sur l’ihm type climat en fonction de la luminosite

------------------------------------------------------------------------

r139 | ndetilleux | 2016-06-03 12 :46 :26 +0200 (ven. 03 juin 2016) | 1 ligne

Recuperation frequence ihm et modif BDD

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 8: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

2 Changelog 4

------------------------------------------------------------------------

r138 | athiel | 2016-06-03 12 :22 :59 +0200 (ven. 03 juin 2016) | 1 ligne

Commencement de la bdd pour le regulateur de charge

------------------------------------------------------------------------

r137 | ndetilleux | 2016-06-03 12 :03 :49 +0200 (ven. 03 juin 2016) | 1 ligne

Modif basededonnees.h

------------------------------------------------------------------------

r136 | ndetilleux | 2016-06-03 11 :58 :03 +0200 (ven. 03 juin 2016) | 1 ligne

Inclusion base de données dans capteur solaire

------------------------------------------------------------------------

r135 | ndetilleux | 2016-06-03 11 :53 :41 +0200 (ven. 03 juin 2016) | 1 ligne

Recuperation vitesse ihm et modif BDD

------------------------------------------------------------------------

r134 | ndetilleux | 2016-06-02 17 :14 :33 +0200 (jeu. 02 juin 2016) | 1 ligne

Recuperation vitesse max vent depuis l’ihm

------------------------------------------------------------------------

r133 | rgonzalves | 2016-06-02 17 :12 :03 +0200 (jeu. 02 juin 2016) | 1 ligne

Ajout des methodes pour gerer le mode automatique programmé

------------------------------------------------------------------------

r132 | rgonzalves | 2016-06-02 17 :11 :19 +0200 (jeu. 02 juin 2016) | 1 ligne

Ajout des methodes pour gerer le mode automatique programmé

------------------------------------------------------------------------

r131 | gmoll | 2016-06-02 16 :45 :22 +0200 (jeu. 02 juin 2016) | 1 ligne

Ajout voyant vert suiveur

------------------------------------------------------------------------

r130 | ndetilleux | 2016-06-02 15 :21 :14 +0200 (jeu. 02 juin 2016) | 1 ligne

Activation protection vent depuis l’ihm

------------------------------------------------------------------------

r129 | athiel | 2016-06-02 13 :33 :24 +0200 (jeu. 02 juin 2016) | 1 ligne

Bonton en fonction

------------------------------------------------------------------------

r128 | rgonzalves | 2016-06-01 16 :27 :02 +0200 (mer. 01 juin 2016) | 1 ligne

Ajour de la méthode enregistrerInformationsBdd

------------------------------------------------------------------------

r127 | athiel | 2016-06-01 16 :25 :48 +0200 (mer. 01 juin 2016) | 1 ligne

Modification listes

------------------------------------------------------------------------

r126 | ndetilleux | 2016-06-01 15 :27 :54 +0200 (mer. 01 juin 2016) | 1 ligne

desactivation des debugs

------------------------------------------------------------------------

r125 | ndetilleux | 2016-06-01 15 :26 :58 +0200 (mer. 01 juin 2016) | 1 ligne

modif utilisation BDD

------------------------------------------------------------------------

r124 | rgonzalves | 2016-06-01 14 :49 :06 +0200 (mer. 01 juin 2016) | 1 ligne

Ajout fonction déplacement par angle et modification des position enregistrées

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 9: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

2 Changelog 5

------------------------------------------------------------------------

r123 | athiel | 2016-06-01 13 :36 :01 +0200 (mer. 01 juin 2016) | 1 ligne

Modification bouton mute

------------------------------------------------------------------------

r122 | rgonzalves | 2016-06-01 10 :36 :59 +0200 (mer. 01 juin 2016) | 1 ligne

Modification ihm suiveur

------------------------------------------------------------------------

r121 | gmoll | 2016-06-01 10 :09 :36 +0200 (mer. 01 juin 2016) | 1 ligne

Modif IHM

------------------------------------------------------------------------

r120 | ndetilleux | 2016-05-27 15 :59 :26 +0200 (ven. 27 mai 2016) | 1 ligne

Ajout classe protectionVent et modif programme

------------------------------------------------------------------------

r119 | athiel | 2016-05-27 15 :57 :06 +0200 (ven. 27 mai 2016) | 1 ligne

Modif bouton mute

------------------------------------------------------------------------

r118 | ndetilleux | 2016-05-27 12 :47 :55 +0200 (ven. 27 mai 2016) | 1 ligne

Ajout outils pour phocos

------------------------------------------------------------------------

r117 | rgonzalves | 2016-05-27 12 :32 :16 +0200 (ven. 27 mai 2016) | 1 ligne

Création du déplacement par entrée d’angle

------------------------------------------------------------------------

r115 | rgonzalves | 2016-05-26 16 :44 :14 +0200 (jeu. 26 mai 2016) | 1 ligne

Affichage informations suiveur

------------------------------------------------------------------------

r114 | gmoll | 2016-05-26 16 :32 :33 +0200 (jeu. 26 mai 2016) | 1 ligne

Modification capteurSolaire.cpp

------------------------------------------------------------------------

r113 | athiel | 2016-05-26 14 :43 :31 +0200 (jeu. 26 mai 2016) | 1 ligne

modif regulateur

------------------------------------------------------------------------

r112 | ndetilleux | 2016-05-26 14 :42 :05 +0200 (jeu. 26 mai 2016) | 1 ligne

Modif IHM

------------------------------------------------------------------------

r111 | ndetilleux | 2016-05-26 10 :58 :09 +0200 (jeu. 26 mai 2016) | 1 ligne

Debug

------------------------------------------------------------------------

r110 | ndetilleux | 2016-05-26 10 :57 :23 +0200 (jeu. 26 mai 2016) | 1 ligne

Modif IHM

------------------------------------------------------------------------

r109 | tvaira | 2016-05-26 06 :51 :08 +0200 (jeu. 26 mai 2016) | 1 ligne

Génération de la documentation avec doxygen

------------------------------------------------------------------------

r108 | ndetilleux | 2016-05-25 17 :46 :39 +0200 (mer. 25 mai 2016) | 1 ligne

Modif IHM

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 10: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

2 Changelog 6

------------------------------------------------------------------------

r107 | rgonzalves | 2016-05-25 16 :45 :51 +0200 (mer. 25 mai 2016) | 1 ligne

Panneau informations suiveur

------------------------------------------------------------------------

r106 | ndetilleux | 2016-05-25 16 :39 :25 +0200 (mer. 25 mai 2016) | 1 ligne

Modification code IHM

------------------------------------------------------------------------

r105 | athiel | 2016-05-25 13 :41 :17 +0200 (mer. 25 mai 2016) | 1 ligne

Maj ihm

------------------------------------------------------------------------

r104 | ndetilleux | 2016-05-25 12 :46 :15 +0200 (mer. 25 mai 2016) | 1 ligne

Modification gestion IHM

------------------------------------------------------------------------

r103 | ndetilleux | 2016-05-25 12 :27 :22 +0200 (mer. 25 mai 2016) | 1 ligne

Maj IHM

------------------------------------------------------------------------

r102 | gmoll | 2016-05-25 11 :58 :14 +0200 (mer. 25 mai 2016) | 1 ligne

Ajout soleil central

------------------------------------------------------------------------

r101 | gmoll | 2016-05-25 11 :41 :25 +0200 (mer. 25 mai 2016) | 1 ligne

Mise à jour ihm + Ajout images

------------------------------------------------------------------------

r99 | ndetilleux | 2016-05-25 10 :58 :12 +0200 (mer. 25 mai 2016) | 1 ligne

Mise à jour documentation

------------------------------------------------------------------------

r98 | rgonzalves | 2016-05-25 10 :36 :44 +0200 (mer. 25 mai 2016) | 1 ligne

Maj Suiveur Solaire

------------------------------------------------------------------------

r97 | athiel | 2016-05-25 10 :30 :22 +0200 (mer. 25 mai 2016) | 1 ligne

modification ihm regulateur

------------------------------------------------------------------------

r96 | gmoll | 2016-05-25 10 :03 :06 +0200 (mer. 25 mai 2016) | 1 ligne

Modification ihm

------------------------------------------------------------------------

r95 | athiel | 2016-05-25 09 :55 :59 +0200 (mer. 25 mai 2016) | 1 ligne

ajout image voyant_vert

------------------------------------------------------------------------

r94 | athiel | 2016-05-25 09 :55 :04 +0200 (mer. 25 mai 2016) | 1 ligne

ajout image voyant_vert

------------------------------------------------------------------------

r93 | athiel | 2016-05-25 09 :19 :53 +0200 (mer. 25 mai 2016) | 1 ligne

ajout image voyant_vert

------------------------------------------------------------------------

r92 | athiel | 2016-05-25 09 :18 :54 +0200 (mer. 25 mai 2016) | 1 ligne

ajout image voyant_vert

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 11: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

2 Changelog 7

------------------------------------------------------------------------

r91 | gmoll | 2016-05-25 08 :45 :10 +0200 (mer. 25 mai 2016) | 1 ligne

Modification ihm

------------------------------------------------------------------------

r90 | tvaira | 2016-05-23 07 :57 :42 +0200 (lun. 23 mai 2016) | 1 ligne

Mise à jour de la documentation pour les classes fournies

------------------------------------------------------------------------

r88 | tvaira | 2016-05-20 20 :11 :42 +0200 (ven. 20 mai 2016) | 1 ligne

Mise à jour documentation Doxyfile

------------------------------------------------------------------------

r85 | gmoll | 2016-05-20 18 :32 :17 +0200 (ven. 20 mai 2016) | 1 ligne

Codage de la fonction suivre soleil + ajout du suivi du soleil + modification ihm

------------------------------------------------------------------------

r83 | athiel | 2016-05-20 17 :22 :32 +0200 (ven. 20 mai 2016) | 1 ligne

Mise à jour de la documentation

------------------------------------------------------------------------

r82 | athiel | 2016-05-20 16 :34 :07 +0200 (ven. 20 mai 2016) | 1 ligne

ajout des commentaires lié au régulateur ainsi que la modification de l’acquisition des trames

------------------------------------------------------------------------

r81 | rgonzalves | 2016-05-20 12 :33 :23 +0200 (ven. 20 mai 2016) | 1 ligne

Ajout de la commande manuelle de déplacement des panneaux

------------------------------------------------------------------------

r80 | tvaira | 2016-05-19 11 :34 :22 +0200 (jeu. 19 mai 2016) | 1 ligne

Ajout de la documentation Tournesol

------------------------------------------------------------------------

r79 | tvaira | 2016-05-19 10 :34 :58 +0200 (jeu. 19 mai 2016) | 1 ligne

Initialisation de la documentation à compléter pour doxygen

------------------------------------------------------------------------

r78 | ndetilleux | 2016-05-18 18 :27 :52 +0200 (mer. 18 mai 2016) | 1 ligne

Ajout base de donnees

------------------------------------------------------------------------

r77 | ndetilleux | 2016-05-18 16 :08 :31 +0200 (mer. 18 mai 2016) | 1 ligne

Ajout tournesol.sql

------------------------------------------------------------------------

r76 | ndetilleux | 2016-05-13 18 :31 :51 +0200 (ven. 13 mai 2016) | 1 ligne

Reception Phocos

------------------------------------------------------------------------

r75 | tvaira | 2016-05-08 10 :14 :55 +0200 (dim. 08 mai 2016) | 1 ligne

Correction probleme I2C (detilleux et moll)

------------------------------------------------------------------------

r74 | tvaira | 2016-05-08 09 :24 :25 +0200 (dim. 08 mai 2016) | 1 ligne

Correction probleme I2C (detilleux et moll)

------------------------------------------------------------------------

r73 | tvaira | 2016-05-07 13 :13 :06 +0200 (sam. 07 mai 2016) | 1 ligne

Test reception phocos avec le simulateur

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 12: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

2 Changelog 8

------------------------------------------------------------------------

r71 | ndetilleux | 2016-05-04 21 :48 :50 +0200 (mer. 04 mai 2016) | 1 ligne

Passage automatique entre simulation trame et reception trame sur raspberry

------------------------------------------------------------------------

r70 | athiel | 2016-05-04 16 :02 :59 +0200 (mer. 04 mai 2016) | 1 ligne

ihm suite

------------------------------------------------------------------------

r69 | ndetilleux | 2016-05-04 14 :46 :16 +0200 (mer. 04 mai 2016) | 1 ligne

Test RPI fin

------------------------------------------------------------------------

r68 | ndetilleux | 2016-05-04 14 :11 :03 +0200 (mer. 04 mai 2016) | 1 ligne

Test RPI

------------------------------------------------------------------------

r67 | ndetilleux | 2016-05-04 14 :04 :59 +0200 (mer. 04 mai 2016) | 1 ligne

Test RPI

------------------------------------------------------------------------

r66 | ndetilleux | 2016-05-04 13 :50 :19 +0200 (mer. 04 mai 2016) | 1 ligne

Test RPI

------------------------------------------------------------------------

r65 | ndetilleux | 2016-05-04 11 :46 :34 +0200 (mer. 04 mai 2016) | 1 ligne

Ajout signaux slot station meteo

------------------------------------------------------------------------

r64 | tvaira | 2016-05-02 09 :50 :01 +0200 (lun. 02 mai 2016) | 1 ligne

Fermeture IHM -> Fin des threads

------------------------------------------------------------------------

r60 | tvaira | 2016-04-29 21 :36 :05 +0200 (ven. 29 avril 2016) | 1 ligne

Nettoyage du code pour prevenir des problemes de memoire

------------------------------------------------------------------------

r59 | ndetilleux | 2016-04-29 17 :05 :27 +0200 (ven. 29 avril 2016) | 1 ligne

Reglement warning station meteo cv7

------------------------------------------------------------------------

r58 | ndetilleux | 2016-04-29 16 :37 :02 +0200 (ven. 29 avril 2016) | 1 ligne

Mise à jour debug

------------------------------------------------------------------------

r57 | athiel | 2016-04-29 12 :04 :52 +0200 (ven. 29 avril 2016) | 1 ligne

codage des trois thermomètre + passage de mode simmulation au mode réel

------------------------------------------------------------------------

r56 | ndetilleux | 2016-04-28 17 :11 :50 +0200 (jeu. 28 avril 2016) | 1 ligne

Mise à jour IHM

------------------------------------------------------------------------

r55 | ndetilleux | 2016-04-28 17 :11 :22 +0200 (jeu. 28 avril 2016) | 1 ligne

Mise à jour IHM

------------------------------------------------------------------------

r54 | rgonzalves | 2016-04-28 17 :06 :56 +0200 (jeu. 28 avril 2016) | 1 ligne

Acquisition et commande du suiveur solaire

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 13: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

2 Changelog 9

------------------------------------------------------------------------

r53 | athiel | 2016-04-28 16 :54 :32 +0200 (jeu. 28 avril 2016) | 1 ligne

Ajout de trois images dans dossier

------------------------------------------------------------------------

r52 | athiel | 2016-04-28 16 :44 :27 +0200 (jeu. 28 avril 2016) | 1 ligne

Ajout de trois boutons dans l’acceuil

------------------------------------------------------------------------

r51 | athiel | 2016-04-28 16 :13 :53 +0200 (jeu. 28 avril 2016) | 1 ligne

Ajout dans l’ihm des alarmes et des valeurs

------------------------------------------------------------------------

r50 | ndetilleux | 2016-04-27 18 :33 :59 +0200 (mer. 27 avril 2016) | 1 ligne

Mise à jour station meteo

------------------------------------------------------------------------

r49 | ndetilleux | 2016-04-27 16 :56 :46 +0200 (mer. 27 avril 2016) | 1 ligne

Detection capteur solaire : premier test ok

------------------------------------------------------------------------

r48 | gmoll | 2016-04-27 16 :19 :06 +0200 (mer. 27 avril 2016) | 1 ligne

Ajout mediane dans CapteurSolaire

------------------------------------------------------------------------

r47 | ndetilleux | 2016-04-27 16 :03 :29 +0200 (mer. 27 avril 2016) | 1 ligne

Detection capteur solaire

------------------------------------------------------------------------

r46 | gmoll | 2016-04-27 15 :49 :46 +0200 (mer. 27 avril 2016) | 1 ligne

Modification CapteurSolaire

------------------------------------------------------------------------

r45 | gmoll | 2016-04-27 14 :48 :46 +0200 (mer. 27 avril 2016) | 1 ligne

Modification AsservissemntSuiveur

------------------------------------------------------------------------

r44 | ndetilleux | 2016-04-27 13 :41 :38 +0200 (mer. 27 avril 2016) | 1 ligne

Mis a jour Tournesol-pi.pro pour arduPi

------------------------------------------------------------------------

r43 | gmoll | 2016-04-27 12 :37 :29 +0200 (mer. 27 avril 2016) | 1 ligne

Ajout capteur solaire

------------------------------------------------------------------------

r42 | ndetilleux | 2016-04-27 12 :29 :50 +0200 (mer. 27 avril 2016) | 1 ligne

Mise à jour Tournesol-pi avec qrc

------------------------------------------------------------------------

r41 | ndetilleux | 2016-04-27 12 :22 :40 +0200 (mer. 27 avril 2016) | 1 ligne

Mise à jour Tournesol-pi

------------------------------------------------------------------------

r40 | ndetilleux | 2016-04-27 11 :21 :21 +0200 (mer. 27 avril 2016) | 1 ligne

Mise à jour CapteurLuminosite

------------------------------------------------------------------------

r39 | ndetilleux | 2016-04-27 09 :41 :47 +0200 (mer. 27 avril 2016) | 1 ligne

Mise à jour ihm

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 14: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

2 Changelog 10

------------------------------------------------------------------------

r38 | ndetilleux | 2016-04-27 09 :31 :20 +0200 (mer. 27 avril 2016) | 1 ligne

Mise à jour capteurLuminosite.cpp

------------------------------------------------------------------------

r37 | tvaira | 2016-04-23 12 :11 :08 +0200 (sam. 23 avril 2016) | 1 ligne

IHM : Initialisation QWT + Exemple affichage image

------------------------------------------------------------------------

r36 | athiel | 2016-04-22 16 :06 :55 +0200 (ven. 22 avril 2016) | 1 ligne

IHM

------------------------------------------------------------------------

r35 | ndetilleux | 2016-04-21 21 :48 :27 +0200 (jeu. 21 avril 2016) | 1 ligne

Mise à jour IHM

------------------------------------------------------------------------

r34 | rgonzalves | 2016-04-21 17 :22 :50 +0200 (jeu. 21 avril 2016) | 1 ligne

Ajout de le classe SuiveurSolaire

------------------------------------------------------------------------

r33 | rgonzalves | 2016-04-21 17 :21 :20 +0200 (jeu. 21 avril 2016) | 1 ligne

Simulation d’acquisition de trame et création d’une structure pour le décodage

------------------------------------------------------------------------

r32 | athiel | 2016-04-21 17 :03 :12 +0200 (jeu. 21 avril 2016) | 1 ligne

debut de la construction IHM partie regulateur

------------------------------------------------------------------------

r31 | athiel | 2016-04-21 15 :09 :42 +0200 (jeu. 21 avril 2016) | 1 ligne

Regulateur : intergration structures de données et signal/slot IHM

------------------------------------------------------------------------

r30 | ndetilleux | 2016-04-21 14 :22 :09 +0200 (jeu. 21 avril 2016) | 1 ligne

Mise à jour images ressources

------------------------------------------------------------------------

r29 | ndetilleux | 2016-04-21 14 :15 :20 +0200 (jeu. 21 avril 2016) | 1 ligne

Ajout fichier ressource

------------------------------------------------------------------------

r28 | athiel | 2016-04-21 14 :13 :47 +0200 (jeu. 21 avril 2016) | 1 ligne

Modification classe Port integration du choix du debit∗------------------------------------------------------------------------

r27 | ndetilleux | 2016-04-21 14 :11 :57 +0200 (jeu. 21 avril 2016) | 1 ligne

Mise à jour IHM

------------------------------------------------------------------------

r26 | ndetilleux | 2016-04-21 11 :10 :06 +0200 (jeu. 21 avril 2016) | 1 ligne

Ajout logos

------------------------------------------------------------------------

r25 | gmoll | 2016-04-21 11 :06 :48 +0200 (jeu. 21 avril 2016) | 1 ligne

ajout dossier images pour IHM

------------------------------------------------------------------------

r24 | gmoll | 2016-04-21 10 :55 :07 +0200 (jeu. 21 avril 2016) | 1 ligne

Ajout bouton dans l’IHM partie suiveur

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 15: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

2 Changelog 11

------------------------------------------------------------------------

r23 | gmoll | 2016-04-21 10 :17 :15 +0200 (jeu. 21 avril 2016) | 1 ligne

Declaration des define dans asservissementSuiveur.h et modification IHM

------------------------------------------------------------------------

r22 | gmoll | 2016-04-21 10 :12 :25 +0200 (jeu. 21 avril 2016) | 1 ligne

Declaration des define dans asservissementSuiveur.h et modification IHM

------------------------------------------------------------------------

r21 | ndetilleux | 2016-04-21 09 :16 :35 +0200 (jeu. 21 avril 2016) | 1 ligne

Mise à jour IHM

------------------------------------------------------------------------

r20 | ndetilleux | 2016-04-20 16 :28 :40 +0200 (mer. 20 avril 2016) | 1 ligne

Gestion plein ecran

------------------------------------------------------------------------

r19 | gmoll | 2016-04-20 13 :40 :11 +0200 (mer. 20 avril 2016) | 1 ligne

Modification de l’IHM

------------------------------------------------------------------------

r18 | ndetilleux | 2016-04-20 12 :08 :28 +0200 (mer. 20 avril 2016) | 1 ligne

Mise à jour IHM

------------------------------------------------------------------------

r17 | ndetilleux | 2016-04-20 08 :09 :03 +0200 (mer. 20 avril 2016) | 1 ligne

Mise à jour projet

------------------------------------------------------------------------

r16 | ndetilleux | 2016-04-01 14 :47 :25 +0200 (ven. 01 avril 2016) | 1 ligne

Mise à jour stationMeteo

------------------------------------------------------------------------

r15 | ndetilleux | 2016-04-01 12 :40 :52 +0200 (ven. 01 avril 2016) | 1 ligne

mise à jour stationMeteo

------------------------------------------------------------------------

r14 | ndetilleux | 2016-03-31 14 :21 :13 +0200 (jeu. 31 mars 2016) | 1 ligne

modification de la classe stationMeteo

------------------------------------------------------------------------

r13 | ndetilleux | 2016-03-30 09 :32 :13 +0200 (mer. 30 mars 2016) | 1 ligne

ajout tournesol.h

------------------------------------------------------------------------

r12 | ndetilleux | 2016-03-25 13 :59 :10 +0100 (ven. 25 mars 2016) | 1 ligne

mise a jour debug

------------------------------------------------------------------------

r11 | ndetilleux | 2016-03-24 17 :08 :51 +0100 (jeu. 24 mars 2016) | 1 ligne

re ajout classes CV7 capteurLuminosite stationMeteo

------------------------------------------------------------------------

r10 | ndetilleux | 2016-03-24 17 :07 :23 +0100 (jeu. 24 mars 2016) | 1 ligne

Ajout classes CV7 capteurLuminosite stationMeteo

------------------------------------------------------------------------

r9 | athiel | 2016-03-24 16 :59 :31 +0100 (jeu. 24 mars 2016) | 1 ligne

correction classe regulateur

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 16: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

3 Configuration 12

------------------------------------------------------------------------

r8 | athiel | 2016-03-24 13 :39 :28 +0100 (jeu. 24 mars 2016) | 1 ligne

methode decoderTrameJournalisation

------------------------------------------------------------------------

r7 | athiel | 2016-03-23 16 :16 :29 +0100 (mer. 23 mars 2016) | 1 ligne

suite decodage trame

------------------------------------------------------------------------

r6 | athiel | 2016-03-18 17 :31 :49 +0100 (ven. 18 mars 2016) | 1 ligne

decoderTrameInformations() : correction unité

------------------------------------------------------------------------

r5 | athiel | 2016-03-18 16 :29 :53 +0100 (ven. 18 mars 2016) | 1 ligne

decoderTrameInformations() en mode simulation

------------------------------------------------------------------------

r4 | athiel | 2016-03-17 17 :05 :56 +0100 (jeu. 17 mars 2016) | 1 ligne

modifs des methodes

------------------------------------------------------------------------

r3 | athiel | 2016-03-17 14 :19 :14 +0100 (jeu. 17 mars 2016) | 1 ligne

Ajout associations regulateur et port

------------------------------------------------------------------------

r2 | athiel | 2016-03-17 14 :00 :40 +0100 (jeu. 17 mars 2016) | 1 ligne

Initialisation du trunk avec les 4 threads

------------------------------------------------------------------------

3 Configuration

configuration.sh

Informations sur le poste de développement

– Distribution : Ubuntu 12.04.5 LTS– OS : GNU/Linux– Noyau : Linux– Version : 3.8.0-44-generic– Machine : x86_64– Processeur : Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz– Mémoire RAM : 8129984 kB

Liste des paquets Qt nécessaires

– libqt4-sql libqtgui4 libqtcore4

Liste des autres paquets nécessaires

– libc6 libstdc++6-armel-cross gcc-4.6-arm-linux-gnueabi libc6-armel-cross libfontconfig1 libaudio2 libglib2.0-0 libpng12-0 zlib1glibfreetype6 libglib2.0-0 libsm6 libice6 libxi6 libxrender1 libxext6 libx11-6 libc6-armel-cross libc6-armel-cross libc6-armel-crosslibc6 libexpat1 libxt6 libxau6 libpcre3 libffi6 libuuid1 libxcb1 libxdmcp6

génèré le jeudi 19 mai 2016, 07 :30 :44 (UTC+0200)

Informations de version sur les outils

version.sh

– g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3– QMake version 2.01a– GNU Make 3.81– GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04– svn, version 1.6.17 (r1128011)

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 17: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

4 Manuel d’installation 13

– geany 1.24.1 (construit le May 20 2014 avec GTK 2.24.10, GLib 2.32.4)– mysql Ver 14.14 Distrib 5.5.49, for debian-linux-gnu (x86_64) using readline 6.2– Qt Meta Object Compiler version 63 (Qt 4.8.1)– Qt Creator 2.4.1 based on Qt 4.8.1– cppunit-config 1.12.1– doxygen 1.7.6.1– bouml Bouml 4.23– papyrus Papyrus 1.1.3

génèré le jeudi 19 mai 2016, 07 :31 :08 (UTC+0200)

4 Manuel d’installation

Fabrication de l’exécutable :– qmake– make

5 Recette

Étudiant 1 : GONZALVES Rémy

La date et l’heure sont affichées périodiquement

L’intervalle de suivi automatique est pris en compte par le suiveur solaire et il est enregistré dans la base de données

L’activation et la désactivation du suivi automatique est effective et le mode programmé TdAPS est pris en compte

Les informations sur l’installation sont affichées

L’état du suiveur solaire est visible sur le mini écran tactile

Les angles d’azimut et d’élévation courants sont affichés périodiquement sur l’écran d’accueil

Les données détaillées du suiveur solaire sont affichées périodiquement dans l’écran correspondant et archivées dans la base dedonnées

La commande manuelle d’orientation des panneaux est réalisable soit en fixant les angles d’azimut et d’élévation soit en dirigeantles quatre directions

Étudiant 2 : THIEL Adrien

Le verrouillage et déverrouillage de la programmation par clavier et du signal sonore sont pris en compte

Les informations sur l’installation sont affichées

L’état du régulateur de charge est visible sur le mini écran tactile

Les valeurs de la tension, de la charge des batteries et de la température sont affichées périodiquement et graphiquement surl’écran d’accueil

Les données détaillées du régulateur de charge sont affichées périodiquement dans l’écran correspondant et archivées dans labase de données

Les alertes signalées par le régulateur de charge sont affichées périodiquement dans l’écran correspondant et archivées dans labase de données

Le choix du type de batteries et le mode de coupure sont paramétrables et fonctionnels

Étudiant 3 : DETILLEUX Nicolas

Les valeurs de la vitesse et direction du vent ainsi que la température de l’air sont affichées périodiquement et graphiquement surl’écran d’accueil

Les valeurs de la vitesse et direction du vent ainsi que la température de l’air sont archivées dans la base de données

La luminosité est affichée périodiquement sur l’écran d’accueil et archivée dans la base de données

L’état de la station météo est visible sur le mini écran tactile

Le réglage des consignes de protection contre les vents violents est réalisable et pris en compte

La protection contre les vents violents est effective

Étudiant 4 : MOLL Grégory

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 18: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

6 Base de données 14

L’activation et la désactivation du suivi automatique est effective et le mode détection de la position de soleil est pris en compte

Le suivi automatique par capteur solaire est fonctionnel

L’intervalle de suivi automatique est pris en compte pour le suivi automatique

L’état du suiveur solaire est visible sur le mini écran tactile

La commande manuelle d’orientation des panneaux est réalisable en sélectionnant une position pré-programmée (nettoyage,vent, nuit et neige)

Les positions pré-programmées (nettoyage, vent, nuit et neige) sont modifiables et enregistrées

6 Base de donnees

-- phpMyAdmin SQL Dump -- version 3.4.11.1deb2+deb7u1 -- http://www.phpmyadmin.net -- -- Client : localhost --Généré le : Ven 05 Juin 2015 à 10 :26 -- Version du serveur : 5.5.41 -- Version de PHP : 5.4.36-0+deb7u3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO" ; SET time_zone = "+00 :00" ;

-- -- Base de données : ‘Tournesol‘ --

CREATE DATABASE IF NOT EXISTS Tournesol ;

USE Tournesol ; -- --------------------------------------------------------

-- -- Structure de la table ‘Installation‘ --

CREATE TABLE IF NOT EXISTS ‘Installation‘ ( ‘idInstallation‘ int(11) NOT NULL AUTO_INCREMENT, ‘longitude‘ varchar(255)NOT NULL, ‘latitude‘ varchar(255) NOT NULL, ‘lieu‘ varchar(64) NOT NULL, ‘dateMiseEnService‘ date NOT NULL, ‘typePanneau‘enum(’mono-cristallin’,”) NOT NULL, ‘puissancePanneau‘ double NOT NULL, ‘tensionPanneau‘ double NOT NULL, ‘nbPanneaux‘int(11) NOT NULL, ‘typeBatterie‘ enum(’plomb à liquide électrolyte’,’VRLA de type GEL ou AGM’) NOT NULL, ‘tensionBatterie‘double NOT NULL, ‘capaciteBatterie‘ double NOT NULL, ‘nbBatteries‘ int(11) NOT NULL, PRIMARY KEY (‘idInstallation‘) ) ENG-INE=InnoDB DEFAULT CHARSET=utf8 ;

-- -- Contenu de la table ‘Installation‘ --

INSERT INTO ‘Installation‘ (‘idInstallation‘, ‘longitude‘, ‘latitude‘, ‘lieu‘, ‘dateMiseEnService‘, ‘typePanneau‘, ‘puissancePanneau‘,‘tensionPanneau‘, ‘nbPanneaux‘, ‘typeBatterie‘, ‘tensionBatterie‘, ‘capaciteBatterie‘, ‘nbBatteries‘) VALUES (1, ’-4.5°’, ’43.9°’, ’-Avignon’, ’2015-03-29’, ’mono-cristallin’, 80, 12, 2, ’VRLA de type GEL ou AGM’, 12, 14, 2) ;

-- --------------------------------------------------------

-- -- Structure de la table ‘Modules‘ --

CREATE TABLE IF NOT EXISTS ‘Modules‘ ( ‘idModule‘ int(11) NOT NULL AUTO_INCREMENT, ‘idInstallation‘ int(11) NOT NULL,‘nomModule‘ enum(’suiveur’,’regulateur’, ’meteo’, ’surveillance’) NOT NULL, ‘etat‘ enum(’0’,’1’) NOT NULL DEFAULT ’0’, ‘alarme‘enum(’0’,’1’) NOT NULL DEFAULT ’0’, ‘simulation‘ enum(’0’,’1’) NOT NULL DEFAULT ’0’, PRIMARY KEY (‘idModule‘), CONS-TRAINT fk_idInstallation FOREIGN KEY (idInstallation) REFERENCES Installation(idInstallation) ) ENGINE=InnoDB DEFAULTCHARSET=utf8 ;

-- -- Contenu de la table ‘Modules‘ --

INSERT INTO ‘Modules‘ (‘idModule‘, ‘idInstallation‘, ‘nomModule‘, ‘etat‘, ‘alarme‘, ‘simulation‘) VALUES (1, 1, ’suiveur’, ’0’, ’0’, ’1’),(2, 1, ’regulateur’, ’0’, ’0’, ’1’), (3, 1, ’meteo’, ’0’, ’0’, ’1’), (4, 1, ’surveillance’, ’0’, ’0’, ’1’) ;

-- --------------------------------------------------------

-- -- Structure de la table ‘Regulateur‘ --

CREATE TABLE IF NOT EXISTS ‘Regulateur‘ ( ‘idRegulateur‘ int(11) NOT NULL, ‘idInstallation‘ int(11) NOT NULL, ‘periode-Regulateur‘ int(11) NOT NULL, ‘modeCoupure‘ enum(’1’,’2’,’3’,’4’, ’5’) NOT NULL, ‘modeCharge‘ enum(’NORMAL’,’EQUAL’,’BOOS-T’) NOT NULL, ‘buzzer‘ enum(’0’,’1’) NOT NULL DEFAULT ’0’, ‘verrou‘ enum(’0’,’1’) NOT NULL DEFAULT ’0’, ‘charge‘ enum(’0’,’1’)NOT NULL DEFAULT ’0’, ‘nbSemainesSansCharge‘ int(11) NOT NULL, ‘temperature‘ double NOT NULL, ‘horodatage‘ datetimeNOT NULL, PRIMARY KEY (‘idRegulateur‘), CONSTRAINT fk_Regulateur_idInstallation -- On donne un nom à notre clé FOREI-GN KEY (idInstallation) -- Colonne sur laquelle on crée la clé REFERENCES Installation(idInstallation) -- Colonne de référence )ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

-- -- Contenu de la table ‘Regulateur‘ --

INSERT INTO ‘Regulateur‘ (‘idRegulateur‘, ‘idInstallation‘, ‘periodeRegulateur‘, ‘modeCoupure‘, ‘modeCharge‘, ‘buzzer‘, ‘verrou‘,‘charge‘, ‘nbSemainesSansCharge‘, ‘temperature‘, ‘horodatage‘) VALUES (2, 1, 60, ’1’, ’BOOST’, ’0’, ’0’, ’0’, 0, 24, ’2015-04-1613 :45 :00’) ;

-- --------------------------------------------------------

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 19: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

6 Base de données 15

-- -- Structure de la table ‘Suiveur‘ --

CREATE TABLE IF NOT EXISTS ‘Suiveur‘ ( ‘idSuiveur‘ int(11) NOT NULL, ‘idInstallation‘ int(11) NOT NULL, ‘periodeSuiveur‘int(11) NOT NULL, ‘mode‘ enum(’manuel’,’automatique’) NOT NULL, ‘suiveur‘ enum(’aucun’,’detection’,’programme’) NOT NULL,‘intervalle‘ int(11) NOT NULL, PRIMARY KEY (‘idSuiveur‘), CONSTRAINT fk_Suiveur_idInstallation FOREIGN KEY (idInstallation)REFERENCES Installation(idInstallation) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

-- -- Contenu de la table ‘Suiveur‘ --

INSERT INTO ‘Suiveur‘ (‘idSuiveur‘, ‘idInstallation‘, ‘periodeSuiveur‘, ‘mode‘, ‘suiveur‘, ‘intervalle‘) VALUES (1, 1, 60, ’manuel’,’aucun’, 300) ;

-- --------------------------------------------------------

-- -- Structure de la table ‘StationMeteo‘ --

CREATE TABLE IF NOT EXISTS ‘StationMeteo‘ ( ‘idStationMeteo‘ int(11) NOT NULL, ‘idInstallation‘ int(11) NOT NULL, ‘periode-StationMeteo‘ int(11) NOT NULL, PRIMARY KEY (‘idStationMeteo‘), CONSTRAINT fk_StationMeteo_idInstallation FOREIGN K-EY (idInstallation) REFERENCES Installation(idInstallation) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

-- -- Contenu de la table ‘StationMeteo‘ --

INSERT INTO ‘StationMeteo‘ (‘idStationMeteo‘, ‘idInstallation‘, ‘periodeStationMeteo‘) VALUES (3, 1, 60) ;

-- --------------------------------------------------------

-- -- Structure de la table ‘Surveillance‘ --

CREATE TABLE IF NOT EXISTS ‘Surveillance‘ ( ‘idSurveillance‘ int(11) NOT NULL AUTO_INCREMENT, ‘idInstallation‘ int(11)NOT NULL, ‘periodeSurveillance‘ int(11) NOT NULL, ‘protection‘ enum(’0’,’1’) NOT NULL DEFAULT ’0’, ‘vitesse‘ tinyint(4) NOTNULL, ‘attente‘ tinyint(4) NOT NULL, PRIMARY KEY (‘idSurveillance‘), CONSTRAINT fk_Surveillance_idInstallation FOREIGNKEY (idInstallation) REFERENCES Installation(idInstallation) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

-- -- Contenu de la table ‘Surveillance‘ --

INSERT INTO ‘Surveillance‘ (‘idSurveillance‘, ‘idInstallation‘, ‘periodeSurveillance‘, ‘protection‘, ‘vitesse‘, ‘attente‘) VALUES (4, 1,60, ’0’, 100, 600) ;

-- --------------------------------------------------------

-- -- Structure de la table ‘MesuresSuiveur‘ --

CREATE TABLE IF NOT EXISTS ‘MesuresSuiveur‘ ( ‘idMesure‘ int(11) NOT NULL AUTO_INCREMENT, ‘idSuiveur‘ int(11) NOTNULL, ‘angleHoraire‘ double NOT NULL, ‘angleAzimut‘ double NOT NULL, ‘positionMoteurA‘ double NOT NULL, ‘positionMoteur-B‘ double NOT NULL, ‘destinationMoteurA‘ double NOT NULL, ‘destinationMoteurB‘ double NOT NULL, ‘courantMoteurA‘ doubleNOT NULL, ‘courantMoteurB‘ double NOT NULL, ‘tensionAlimentationSuiveur‘ double NOT NULL, ‘horodatage‘ datetime NO-T NULL, PRIMARY KEY (‘idMesure‘), CONSTRAINT fk_MesuresSuiveur_idSuiveur FOREIGN KEY (idSuiveur) REFERENCESSuiveur(idSuiveur) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

-- --------------------------------------------------------

-- -- Structure de la table ‘MesuresRegulateur‘ --

CREATE TABLE IF NOT EXISTS ‘MesuresRegulateur‘ ( ‘idMesure‘ int(11) NOT NULL AUTO_INCREMENT, ‘idRegulateur‘ int(11)NOT NULL, ‘finTension‘ double NOT NULL, ‘surplus‘ double NOT NULL, ‘courantPV‘ double NOT NULL, ‘courantCharge‘ doubleNOT NULL, ‘chargeMatin‘ double NOT NULL, ‘chargeSoir‘ double NOT NULL, ‘panneauxAh‘ double NOT NULL, ‘chargeAh‘ doubleNOT NULL, ‘excedantAh‘ double NOT NULL, ‘horodatage‘ datetime NOT NULL, PRIMARY KEY (‘idMesure‘), CONSTRAINT fk-_MesuresRegulateur_idRegulateur FOREIGN KEY (idRegulateur) REFERENCES Regulateur(idRegulateur) ) ENGINE=InnoDBDEFAULT CHARSET=utf8 ;

-- --------------------------------------------------------

-- -- Structure de la table ‘MesuresStationMeteo‘ --

CREATE TABLE IF NOT EXISTS ‘MesuresStationMeteo‘ ( ‘idMesure‘ int(11) unsigned NOT NULL AUTO_INCREMENT, ‘id-StationMeteo‘ int(11) NOT NULL, ‘vitesseVent‘ double NOT NULL, ‘directionVent‘ double NOT NULL, ‘temperatureAir‘ double NOTNULL, ‘luminosite‘ double NOT NULL, ‘horodatage‘ datetime NOT NULL, PRIMARY KEY (‘idMesure‘), CONSTRAINT fk_Mesures-StationMeteo_idStationMeteo FOREIGN KEY (idStationMeteo) REFERENCES StationMeteo(idStationMeteo) ) ENGINE=InnoDBDEFAULT CHARSET=utf8 ;

-- --------------------------------------------------------

-- -- Structure de la table ‘Positions‘ --

CREATE TABLE IF NOT EXISTS ‘Positions‘ ( ‘idPosition‘ int(11) NOT NULL AUTO_INCREMENT, ‘idSuiveur‘ int(11) NOT N-ULL, ‘type‘ enum(’nettoyage’,’vent’,’nuit’,’neige’) NOT NULL, ‘angleHoraire‘ double NOT NULL, ‘angleAzimut‘ double NOT NU-LL, ‘positionMoteurA‘ double NOT NULL, ‘positionMoteurB‘ double NOT NULL, PRIMARY KEY (‘idPosition‘), CONSTRAINT

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 20: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

7 A propos 16

fk_Positions_idSuiveur FOREIGN KEY (idSuiveur) REFERENCES Suiveur(idSuiveur) ) ENGINE=InnoDB DEFAULT CHARSE-T=utf8 ;

-- -- Contenu de la table ‘Positions‘ --

INSERT INTO ‘Positions‘ (‘idPosition‘, ‘idSuiveur‘, ‘type‘, ‘angleHoraire‘, ‘angleAzimut‘, ‘positionMoteurA‘, ‘positionMoteurB‘) VAL-UES (1, 1, ’nettoyage’, 0, 0, 0, 0), (2, 1, ’vent’, -50, 90, 0, 0), (3, 1, ’nuit’, 0, 0, 0, 0) ;

-- --------------------------------------------------------

-- -- Structure de la table ‘Alertes‘ --

CREATE TABLE IF NOT EXISTS ‘Alertes‘ ( ‘idAlerte‘ int(11) NOT NULL AUTO_INCREMENT, ‘idModule‘ int(11) NOT NULL,‘type‘ text NOT NULL, ‘horodatage‘ datetime NOT NULL, ‘description‘ text CHARACTER SET utf8 NOT NULL, PRIMARY KEY(‘idAlerte‘), CONSTRAINT fk_Alertes_idModule FOREIGN KEY (idModule) REFERENCES Modules(idModule) ) ENGINE=Inno-DB DEFAULT CHARSET=utf8 ;

7 A propos

Auteur

Nicolas Detilleux <[email protected]>Rémy Gonzalves <[email protected]>Grégory Moll <[email protected]>Adrien Thiel <[email protected]>

Version

1.0

Date

2016

8 Licence GPL

This program is free software ; you can redistribute it and/or modify it under the terms of the GNU General Public License aspublished by the Free Software Foundation ; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY ; without even the implied warrantyof MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program ; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

9 Liste des choses a faire

Membre AcquisitionMeteo : :main ()corriger diagramme de séquence Acquérir les données météos

Membre IhmTournesol : :afficherInformationsSuiveur (InformationsSuiveur informationsSuiveur)afficher positionHoraireA, aDestination, iMoteurA, positionElevationB, bDestination, iMotorB, automatique

Membre IhmTournesol : :deplacerPositionMaintenance ()lire les positions dans la BDD

Membre IhmTournesol : :deplacerPositionPluie ()lire les positions dans la BDD

Membre IhmTournesol : :deplacerPositionVent ()lire les positions dans la BDD

Membre Regulateur : :acquerirInformations ()assurer la détection du début de trame 0x20

Membre Regulateur : :decoderTrameInformations (QString reponse)décoder l’ensemble des valeurs de la trame 0x20

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 21: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10 Documentation des classes 17

Membre StationMeteo : :enregistrerMesures ()ajouter enregistrerMesures() dans le diagramme de séquence Acquérir les données météos

Membre SuiveurSolaire : :decoderTrame (QString reponseSuiveur)décoder l’ensemble des valeurs demandées de la trame suiveur

10 Documentation des classes

10.1 Reference de la classe AcquisitionMeteo

Classe qui assure la gestion de la station météo.

#include <acquisitionMeteo.h>

Graphe de collaboration de AcquisitionMeteo :

AcquisitionMeteo

- fini- periode- mutex- waitCondition- stationMeteo

+ AcquisitionMeteo()+ ~AcquisitionMeteo()+ main()+ finir()+ terminer()- msleep()- annuler()- lireConfiguration()- attendrePeriode()

StationMeteo

- cv7- capteurLumineux- _vitesse- _direction- _temperature- vitesse- direction- temperature- informationStationMeteo- bdd

+ StationMeteo()+ ~StationMeteo()+ acquerir()+ lireLuminosite()+ lireVent()+ lireVitesse()+ lireVitesse()+ lireDirection()+ lireTemperature()+ enregistrerMesures()

stationMeteo

CV7

- port- phrases

+ CV7()+ ~CV7()+ recupererPhrase()+ recevoirPhrases()+ decouperTrames()+ setMap()

cv7

Port

- port

+ Port()+ Port()+ ~Port()+ ouvrir()+ transmettre()+ recevoir()+ recevoir()+ lire()+ getNbOctetsDisponibles()+ estOuvert()- onReadyRead()

port

CapteurLuminosite

- luminosite

+ CapteurLuminosite()+ ~CapteurLuminosite()+ lire()

capteurLumineux

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

bdd

baseDeDonnees

Mesure

+ valeur+ unite+ horodatage+ valide

_temperature_direction_vitesse

InformationsStationMeteo

+ vitesseVent+ directionVent+ luminosite+ temperature+ valide

directionVentluminosite

vitesseVenttemperature

informationStationMeteo

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 22: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.1 Référence de la classe AcquisitionMeteo 18

Connecteurs publics

– void main ()Corps du thread.

– void finir ()Met fin à l’exécution du thread.

– void terminer ()Affiche la fin d’exécution du thread en mode Debug.

Signaux

– void nouvellesInformationsStationMeteo (InformationsStationMeteo informationsStationMeteo)

Fonctions membres publiques

– AcquisitionMeteo ()Constructeur par défaut.

– ∼AcquisitionMeteo ()Destructeur.

Fonctions membres privees

– void msleep (unsigned long sleepMS)– void annuler ()– void lireConfiguration ()

Lit la configuration dans la base de données.– void attendrePeriode ()

Génère une attente.

Attributs prives

– bool fini– int periode– QMutex mutex– QWaitCondition waitCondition– StationMeteo ∗ stationMeteo

10.1.1 Description detaillee

Auteur

Nicolas Detilleux <[email protected]>

10.1.2 Documentation des constructeurs et destructeur

10.1.2.1 AcquisitionMeteo : :AcquisitionMeteo ( )

Références nouvellesInformationsStationMeteo(), et stationMeteo.

: fini(false), periode(PERIODE_ACQUISITION_METEO)

{#ifdef DEBUG_STATIONMETEO

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

stationMeteo = new StationMeteo;

connect(stationMeteo, SIGNAL(nouvellesInformationsStationMeteo(InformationsStationMeteo)), this, SIGNAL(nouvellesInformationsStationMeteo(InformationsStationMeteo)));

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 23: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.1 Référence de la classe AcquisitionMeteo 19

10.1.2.2 AcquisitionMeteo : :∼AcquisitionMeteo ( )

Références stationMeteo.

{delete stationMeteo;

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;

#endif}

10.1.3 Documentation des fonctions membres

10.1.3.1 AcquisitionMeteo : :annuler ( ) [inline, private]

Références waitCondition.

Référencé par finir().

{waitCondition.wakeAll();

}

10.1.3.2 AcquisitionMeteo : :attendrePeriode ( ) [private]

Références msleep(), et periode.

Référencé par main().

{#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << periode;#endifthis->msleep(periode);

}

10.1.3.3 AcquisitionMeteo : :finir ( ) [slot]

Références annuler(), et fini.

Référencé par IhmTournesol : :∼IhmTournesol().

{fini = true;annuler();

}

10.1.3.4 AcquisitionMeteo : :lireConfiguration ( ) [private]

Références BaseDeDonnees : :connecter(), BaseDeDonnees : :detruireInstance(), BaseDeDonnees : :getInstance(), periode,PERIODE_ACQUISITION_METEO, et BaseDeDonnees : :recuperer().

Référencé par main().

{BaseDeDonnees *bdd = BaseDeDonnees::getInstance();

bdd->connecter();

QString requete = "SELECT periodeStationMeteo FROM StationMeteo";QString periodeStationMeteo;

bool retour = bdd->recuperer(requete, periodeStationMeteo);if(retour){

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << periodeStationMeteo;#endif

// au moins 1s ?if(periodeStationMeteo.toInt() > 0){

periode = periodeStationMeteo.toInt() * 1000;}else{

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 24: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.1 Référence de la classe AcquisitionMeteo 20

periode = PERIODE_ACQUISITION_METEO;}

}else{

qDebug() << Q_FUNC_INFO << QString::fromUtf8("Erreur requête !");}

BaseDeDonnees::detruireInstance();}

10.1.3.5 AcquisitionMeteo : :main ( ) [slot]

A faire corriger diagramme de séquence Acquérir les données météos

Références StationMeteo : :acquerir(), attendrePeriode(), fini, lireConfiguration(), et stationMeteo.

{

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this << "demarrage";

#endif

lireConfiguration();

while(!fini){

stationMeteo->acquerir();

attendrePeriode();}

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this << "arret";

#endif

}

10.1.3.6 AcquisitionMeteo : :msleep ( unsigned long sleepMS ) [inline, private]

ParametressleepMS

Références mutex, et waitCondition.

Référencé par attendrePeriode().

{waitCondition.wait(&mutex, sleepMS);

}

10.1.3.7 AcquisitionMeteo : :nouvellesInformationsStationMeteo ( InformationsStationMeteo informationsStationMeteo )[signal]

Parametresinformations-StationMeteo

Référencé par AcquisitionMeteo().

10.1.3.8 AcquisitionMeteo : :terminer ( ) [slot]

{#ifdef DEBUG_STATIONMETEO

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif}

10.1.4 Documentation des donnees membres

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 25: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.2 Référence de la classe AcquisitionRegulateur 21

10.1.4.1 bool AcquisitionMeteo : :fini [private]

TODO

Référencé par finir(), et main().

10.1.4.2 QMutex AcquisitionMeteo : :mutex [private]

TODO

Référencé par msleep().

10.1.4.3 int AcquisitionMeteo : :periode [private]

période en millisecondes

Référencé par attendrePeriode(), et lireConfiguration().

10.1.4.4 StationMeteo∗ AcquisitionMeteo : :stationMeteo [private]

TODO

Référencé par AcquisitionMeteo(), main(), et ∼AcquisitionMeteo().

10.1.4.5 QWaitCondition AcquisitionMeteo : :waitCondition [private]

TODO

Référencé par annuler(), et msleep().

La documentation de cette classe a été générée à partir des fichiers suivants :– acquisitionMeteo.h– acquisitionMeteo.cpp

10.2 Reference de la classe AcquisitionRegulateur

Thread contenant toutes les données relatives au régulateur de charge.

#include <acquisitionRegulateur.h>

Graphe de collaboration de AcquisitionRegulateur :

AcquisitionRegulateur

- regulateur- fini- mutex- waitCondition- periode

+ AcquisitionRegulateur()+ ~AcquisitionRegulateur()+ main()+ finir()+ terminer()- msleep()- annuler()- lireConfiguration()- attendrePeriode()

Regulateur

- port- informationsRegulateur- journalisationRegulateur- alarmesRegulateur- parametresRegulateur- bdd- mutex

+ Regulateur()+ ~Regulateur()+ acquerir()+ acquerirInformations()+ acquerirHistorique()+ decoderTrameInformations()+ decoderTrameHistorique()+ decoderAlarmes()+ decoderMenuState()+ envoyerMenuState()+ decoderMenuState2()+ envoyerMenuState2()+ changerEtatBuzzer()+ changerTypeBatterie()+ changerModeCharge()+ changerEtatCadenas()+ changerModeNuit()

regulateur

InformationsRegulateur

+ niveauCharge+ tensionBatterie+ surplusEnergie+ courantPhotovoltaique+ courantCharge+ temperature+ modeChargeBatterie+ onOff

informationsRegulateur

JournalisationRegulateur

+ ampereHeurePVExcedant+ ampereHeurePvConsomme+ niveauChargeMatin+ niveauChargeSoir+ chargeAmpaireHeure+ nbSemaines+ BuzzerEtat+ typeBatterie+ mode+ modeLock+ serialInterface+ modenuit

journalisationRegulateur

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

bdd

baseDeDonnees

AlarmesRegulateur

+ alarmeBatterie+ alarmeChargeComplete+ alarmeDebranchementBatterie+ alarmeSurtensionPv+ alarmeSurtensionCharge+ alarmeSurvoltageBatterie+ alarmeSurchauffePv+ alarmeSurchauffeCharge+ trameRecu

alarmesRegulateur

ParametresRegulateur

+ modeNuit+ buzzerOnOff+ typeBatterie+ modeCoupureChargeFaible+ modeLock+ serialInterface

parametresRegulateur

Port

- port

+ Port()+ Port()+ ~Port()+ ouvrir()+ transmettre()+ recevoir()+ recevoir()+ lire()+ getNbOctetsDisponibles()+ estOuvert()- onReadyRead()

port

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 26: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.2 Référence de la classe AcquisitionRegulateur 22

Connecteurs publics

– void main ()– void finir ()– void terminer ()

Signaux

– void nouvellesInformationsRegulateur (InformationsRegulateur informationsRegulateur)Signal contenant les données de la trame d’information.

– void nouvellesJournalisationRegulateur (JournalisationRegulateur journalisationRegulateur)Signal contenant les données de la trame de journalisation.

– void nouvellesAlarmesRegulateur (AlarmesRegulateur alarmesRegulateur)Signal contenant les données du champ état de la trame de journalisation.

– void changerEtatBuzzer ()Signal d’appui sur le bouton de contrôle du buzzer.

– void changerTypeBatterie (int type)Signal de changement de type de batterie.

– void changerModeCharge (int mode)Signal de changement de mode de charge.

– void changerEtatCadenas ()Signal de changement d’état du cadenas.

– void changerModeNuit ()Signal de changement de mode pour la nuit.

Fonctions membres publiques

– AcquisitionRegulateur ()constructeur

– ∼AcquisitionRegulateur ()destructeur

Fonctions membres privees

– void msleep (unsigned long sleepMS)– void annuler ()– void lireConfiguration ()– void attendrePeriode ()

Attributs prives

– Regulateur ∗ regulateur– bool fini– QMutex mutex– QWaitCondition waitCondition– int periode

10.2.1 Description detaillee

Auteur

Adrien Thiel <[email protected]>

10.2.2 Documentation des constructeurs et destructeur

10.2.2.1 AcquisitionRegulateur : :AcquisitionRegulateur ( )

Références changerEtatBuzzer(), changerEtatCadenas(), changerModeCharge(), changerModeNuit(), changerTypeBatterie(),nouvellesAlarmesRegulateur(), nouvellesInformationsRegulateur(), nouvellesJournalisationRegulateur(), et regulateur.

: fini(false), periode(PERIODE_ACQUISITION_REGULATEUR)

{#ifdef DEBUG_REGULATEUR

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

regulateur = new Regulateur;

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 27: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.2 Référence de la classe AcquisitionRegulateur 23

connect(regulateur, SIGNAL(nouvellesInformationsRegulateur(InformationsRegulateur)), this, SIGNAL(nouvellesInformationsRegulateur(InformationsRegulateur)));

connect(regulateur, SIGNAL(nouvellesJournalisationRegulateur(JournalisationRegulateur)), this, SIGNAL(nouvellesJournalisationRegulateur(JournalisationRegulateur)));

connect(regulateur, SIGNAL(nouvellesAlarmesRegulateur (AlarmesRegulateur)),this, SIGNAL(nouvellesAlarmesRegulateur(AlarmesRegulateur)));

connect(this, SIGNAL(changerEtatBuzzer()), regulateur, SLOT(changerEtatBuzzer()));

connect(this, SIGNAL(changerTypeBatterie(int)), regulateur, SLOT(changerTypeBatterie(int)));

connect(this, SIGNAL(changerModeCharge(int)), regulateur, SLOT(changerModeCharge(int)));

connect(this, SIGNAL(changerEtatCadenas()), regulateur, SLOT(changerEtatCadenas()));

connect(this, SIGNAL(changerModeNuit()), regulateur, SLOT(changerModeNuit()));

}

10.2.2.2 AcquisitionRegulateur : :∼AcquisitionRegulateur ( )

Références regulateur.

{delete regulateur;

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;

#endif}

10.2.3 Documentation des fonctions membres

10.2.3.1 AcquisitionRegulateur : :annuler ( ) [inline, private]

Références waitCondition.

Référencé par finir().

{waitCondition.wakeAll();

}

10.2.3.2 AcquisitionRegulateur : :attendrePeriode ( ) [private]

Références msleep(), et periode.

Référencé par main().

{this->msleep(periode); // en ms

}

10.2.3.3 AcquisitionRegulateur : :changerEtatBuzzer ( ) [signal]

Parametres

Référencé par AcquisitionRegulateur().

10.2.3.4 AcquisitionRegulateur : :changerEtatCadenas ( ) [signal]

Parametres

Référencé par AcquisitionRegulateur().

10.2.3.5 AcquisitionRegulateur : :changerModeCharge ( int mode ) [signal]

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 28: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.2 Référence de la classe AcquisitionRegulateur 24

Parametresmode

Référencé par AcquisitionRegulateur().

10.2.3.6 AcquisitionRegulateur : :changerModeNuit ( ) [signal]

Parametres

Référencé par AcquisitionRegulateur().

10.2.3.7 AcquisitionRegulateur : :changerTypeBatterie ( int type ) [signal]

Parametrestype

Référencé par AcquisitionRegulateur().

10.2.3.8 AcquisitionRegulateur : :finir ( ) [slot]

Références annuler(), et fini.

Référencé par IhmTournesol : :∼IhmTournesol().

{fini = true;annuler();

}

10.2.3.9 AcquisitionRegulateur : :lireConfiguration ( ) [private]

Références BaseDeDonnees : :connecter(), BaseDeDonnees : :detruireInstance(), BaseDeDonnees : :getInstance(), periode, etBaseDeDonnees : :recuperer().

Référencé par main().

{BaseDeDonnees *bdd = BaseDeDonnees::getInstance();bdd->connecter();

// récupère la période du threadQString periode;QString requete = "SELECT periodeRegulateur FROM Regulateur";//qDebug() << QString::fromUtf8("requête : ") << requete;

bool retour = bdd->recuperer(requete, periode);if(retour != false){

this->periode = periode.toInt()*1000; // s en msqDebug() << Q_FUNC_INFO << QString::fromUtf8("période") << this->periode

;}else{

qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur !");}

BaseDeDonnees::detruireInstance();}

10.2.3.10 AcquisitionRegulateur : :main ( ) [slot]

Références Regulateur : :acquerir(), attendrePeriode(), fini, lireConfiguration(), et regulateur.

{#ifdef DEBUG_REGULATEUR

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

lireConfiguration();

while(!fini){

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 29: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.2 Référence de la classe AcquisitionRegulateur 25

regulateur->acquerir();

attendrePeriode();}

}

10.2.3.11 AcquisitionRegulateur : :msleep ( unsigned long sleepMS ) [inline, private]

ParametressleepMS

Références mutex, et waitCondition.

Référencé par attendrePeriode().

{waitCondition.wait(&mutex, sleepMS);

}

10.2.3.12 AcquisitionRegulateur : :nouvellesAlarmesRegulateur ( AlarmesRegulateur alarmesRegulateur ) [signal]

ParametresalarmesRegulateur

Référencé par AcquisitionRegulateur().

10.2.3.13 AcquisitionRegulateur : :nouvellesInformationsRegulateur ( InformationsRegulateur informationsRegulateur )[signal]

Parametresinformations-

Regulateur

Référencé par AcquisitionRegulateur().

10.2.3.14 AcquisitionRegulateur : :nouvellesJournalisationRegulateur ( JournalisationRegulateur journalisationRegulateur )[signal]

Parametresjournalisation-

Regulateur

Référencé par AcquisitionRegulateur().

10.2.3.15 AcquisitionRegulateur : :terminer ( ) [slot]

{#ifdef DEBUG_REGULATEUR

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif}

10.2.4 Documentation des donnees membres

10.2.4.1 bool AcquisitionRegulateur : :fini [private]

TODO

Référencé par finir(), et main().

10.2.4.2 QMutex AcquisitionRegulateur : :mutex [private]

TODO

Référencé par msleep().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 30: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.3 Référence de la classe AcquisitionSuiveur 26

10.2.4.3 int AcquisitionRegulateur : :periode [private]

la périodicité du thread

Référencé par attendrePeriode(), et lireConfiguration().

10.2.4.4 Regulateur∗ AcquisitionRegulateur : :regulateur [private]

TODO

Référencé par AcquisitionRegulateur(), main(), et ∼AcquisitionRegulateur().

10.2.4.5 QWaitCondition AcquisitionRegulateur : :waitCondition [private]

TODO

Référencé par annuler(), et msleep().

La documentation de cette classe a été générée à partir des fichiers suivants :– acquisitionRegulateur.h– acquisitionRegulateur.cpp

10.3 Reference de la classe AcquisitionSuiveur

Gestion du suiveur solaire.

#include <acquisitionSuiveur.h>

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 31: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.3 Référence de la classe AcquisitionSuiveur 27

Graphe de collaboration de AcquisitionSuiveur :

AcquisitionSuiveur

+ suiveur- fini- modeAuto- periode- mutex- waitCondition- bdd

+ AcquisitionSuiveur()+ ~AcquisitionSuiveur()+ main()+ finir()+ terminer()+ deplacerPanneauOuest()+ deplacerPanneauEst()+ deplacerPanneauNord()+ deplacerPanneauSud()- msleep()- annuler()- lirePeriode()- enregistrerEtatSuiveur()

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

bdd

baseDeDonnees

SuiveurSolaire

- informationsSuiveur- port- mutexPort- protectionVent- bdd- date

+ SuiveurSolaire()+ ~SuiveurSolaire()+ acquerir()+ getEtat()+ deplacerPanneauGauche()+ deplacerPanneauDroite()+ deplacerPanneauHaut()+ deplacerPanneauBas()+ deplacerManuel()+ deplacerAngleHoraire()+ deplacerAngleElevation()+ deplacer()+ proteger()+ enregistrerInformationsBdd()+ gererModeAutoProgramme()+ stopperCommande()- decoderTrame()- reinitialiserInformationsSuiveur()- calculerChecksum()

bdd

suiveur

InformationsSuiveur

+ heure+ minute+ seconde+ jour+ mois+ angleHoraireA+ positionHoraireA+ destinationA+ iMoteurA+ angleElevationB

and 12 more...

informationsSuiveur

Port

- port

+ Port()+ Port()+ ~Port()+ ouvrir()+ transmettre()+ recevoir()+ recevoir()+ lire()+ getNbOctetsDisponibles()+ estOuvert()- onReadyRead()

port

Connecteurs publics

– void main ()– void finir ()– void terminer ()– void deplacerPanneauOuest ()– void deplacerPanneauEst ()– void deplacerPanneauNord ()– void deplacerPanneauSud ()

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 32: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.3 Référence de la classe AcquisitionSuiveur 28

Signaux

– void signalerInformationsSuiveur (InformationsSuiveur informationsSuiveur)– void deplacerPanneauGauche ()– void deplacerPanneauDroite ()– void deplacerPanneauHaut ()– void deplacerPanneauBas ()– void deplacerAngleAzimut (double angleA)– void deplacerAngleElevation (double angleB)– void deplacer (double angleHoraire, double angleElevation)– void proteger (bool etat)– void gererModeAutoProgramme (bool modeAuto)– void stopperCommande ()

Fonctions membres publiques

– AcquisitionSuiveur ()– ∼AcquisitionSuiveur ()

Attributs publics

– SuiveurSolaire ∗ suiveur

Fonctions membres privees

– void msleep (unsigned long sleepMS)– void annuler ()– void lirePeriode ()

Lit la périodicité du thread dans la base de données.– void enregistrerEtatSuiveur ()

Attributs prives

– bool fini– bool modeAuto– int periode– QMutex mutex– QWaitCondition waitCondition– BaseDeDonnees ∗ bdd

10.3.1 Description detaillee

Auteur

Rémy Gonzalves <[email protected]>

10.3.2 Documentation des constructeurs et destructeur

10.3.2.1 AcquisitionSuiveur : :AcquisitionSuiveur ( )

Références bdd, BaseDeDonnees : :connecter(), deplacer(), deplacerAngleAzimut(), deplacerAngleElevation(), deplacerPanneau-Bas(), deplacerPanneauDroite(), deplacerPanneauGauche(), deplacerPanneauHaut(), gererModeAutoProgramme(), BaseDe-Donnees : :getInstance(), periode, proteger(), signalerInformationsSuiveur(), stopperCommande(), et suiveur.

: fini(false){#ifdef DEBUG_SUIVEUR

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

suiveur = new SuiveurSolaire;connect(suiveur, SIGNAL(signalerInformationsSuiveur(InformationsSuiveur)),

this, SIGNAL(signalerInformationsSuiveur(InformationsSuiveur)));connect(this, SIGNAL(deplacerPanneauGauche()), suiveur, SLOT(deplacerPanneauGauche()));

connect(this, SIGNAL(deplacerPanneauDroite()), suiveur, SLOT(deplacerPanneauDroite()));

connect(this, SIGNAL(deplacerPanneauHaut()), suiveur, SLOT(deplacerPanneauHaut()));

connect(this, SIGNAL(deplacerPanneauBas()), suiveur, SLOT(deplacerPanneauBas()));

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 33: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.3 Référence de la classe AcquisitionSuiveur 29

connect(this, SIGNAL(deplacerAngleAzimut(double)), suiveur, SLOT(deplacerAngleHoraire(double)));

connect(this, SIGNAL(deplacerAngleElevation(double)), suiveur, SLOT(deplacerAngleElevation(double)));

connect(this, SIGNAL(deplacer(double,double)), suiveur, SLOT(deplacer(double,double)));

connect(this, SIGNAL(proteger(bool)), suiveur, SLOT(proteger(bool)));connect(this, SIGNAL(gererModeAutoProgramme(bool)), suiveur, SLOT(gererModeAutoProgramme(bool)));

connect(this, SIGNAL(stopperCommande()), suiveur, SLOT(stopperCommande()));

bdd = BaseDeDonnees::getInstance();bdd->connecter();

periode = 10; // par défaut}

10.3.2.2 AcquisitionSuiveur : :∼AcquisitionSuiveur ( )

Références BaseDeDonnees : :detruireInstance(), et suiveur.

{BaseDeDonnees::detruireInstance();delete suiveur;

#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;

#endif}

10.3.3 Documentation des fonctions membres

10.3.3.1 AcquisitionSuiveur : :annuler ( ) [inline, private]

Références waitCondition.

Référencé par finir().

{waitCondition.wakeAll();

}

10.3.3.2 AcquisitionSuiveur : :deplacer ( double angleHoraire, double angleElevation ) [signal]

ParametresangleHoraire

angleElevation

Référencé par AcquisitionSuiveur().

10.3.3.3 AcquisitionSuiveur : :deplacerAngleAzimut ( double angleA ) [signal]

Parametresdouble

Référencé par AcquisitionSuiveur().

10.3.3.4 AcquisitionSuiveur : :deplacerAngleElevation ( double angleB ) [signal]

Parametresdouble

Référencé par AcquisitionSuiveur().

10.3.3.5 AcquisitionSuiveur : :deplacerPanneauBas ( ) [signal]

Référencé par AcquisitionSuiveur(), et deplacerPanneauSud().

10.3.3.6 AcquisitionSuiveur : :deplacerPanneauDroite ( ) [signal]

Référencé par AcquisitionSuiveur(), et deplacerPanneauEst().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 34: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.3 Référence de la classe AcquisitionSuiveur 30

10.3.3.7 AcquisitionSuiveur : :deplacerPanneauEst ( ) [slot]

Références deplacerPanneauDroite().

{emit deplacerPanneauDroite();

}

10.3.3.8 AcquisitionSuiveur : :deplacerPanneauGauche ( ) [signal]

Référencé par AcquisitionSuiveur(), et deplacerPanneauOuest().

10.3.3.9 AcquisitionSuiveur : :deplacerPanneauHaut ( ) [signal]

Référencé par AcquisitionSuiveur(), et deplacerPanneauNord().

10.3.3.10 AcquisitionSuiveur : :deplacerPanneauNord ( ) [slot]

Références deplacerPanneauHaut().

{emit deplacerPanneauHaut();

}

10.3.3.11 AcquisitionSuiveur : :deplacerPanneauOuest ( ) [slot]

Références deplacerPanneauGauche().

{emit deplacerPanneauGauche();

}

10.3.3.12 AcquisitionSuiveur : :deplacerPanneauSud ( ) [slot]

Références deplacerPanneauBas().

{emit deplacerPanneauBas();

}

10.3.3.13 void AcquisitionSuiveur : :enregistrerEtatSuiveur ( ) [private]

Références bdd, BaseDeDonnees : :executer(), SuiveurSolaire : :getEtat(), et suiveur.

Référencé par main().

{bool etat = suiveur->getEtat();QString requete = "UPDATE ‘Modules‘ SET ‘etat‘= ’" + QString::number(etat)

+ "’ WHERE ‘nomModule‘ = ’suiveur’";bdd->executer(requete);

}

10.3.3.14 AcquisitionSuiveur : :finir ( ) [slot]

Références annuler(), et fini.

Référencé par IhmTournesol : :∼IhmTournesol().

{fini = true;annuler();

}

10.3.3.15 void AcquisitionSuiveur : :gererModeAutoProgramme ( bool modeAuto ) [signal]

Référencé par AcquisitionSuiveur().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 35: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.3 Référence de la classe AcquisitionSuiveur 31

10.3.3.16 AcquisitionSuiveur : :lirePeriode ( ) [private]

Références bdd, periode, et BaseDeDonnees : :recuperer().

Référencé par main().

{QString periodeSuiveur;QString requete = "SELECT periodeSuiveur FROM Suiveur";

#ifdef DEBUG_SUIVEUR//qDebug() << Q_FUNC_INFO << requete;#endif

bool verif = bdd->recuperer(requete, periodeSuiveur);if(verif == true){

periode = periodeSuiveur.toInt();#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << "periode" << periode;#endif

}}

10.3.3.17 AcquisitionSuiveur : :main ( ) [slot]

Références SuiveurSolaire : :acquerir(), enregistrerEtatSuiveur(), fini, lirePeriode(), msleep(), periode, et suiveur.

{#ifdef DEBUG_SUIVEUR

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

lirePeriode();

while(!fini){

suiveur->acquerir();

enregistrerEtatSuiveur();

msleep(periode*1000);}

}

10.3.3.18 AcquisitionSuiveur : :msleep ( unsigned long sleepMS ) [inline, private]

ParametressleepMS

Références mutex, et waitCondition.

Référencé par main().

{waitCondition.wait(&mutex, sleepMS);

}

10.3.3.19 AcquisitionSuiveur : :proteger ( bool etat ) [signal]

Parametresetat

Référencé par AcquisitionSuiveur().

10.3.3.20 AcquisitionSuiveur : :signalerInformationsSuiveur ( InformationsSuiveur informationsSuiveur ) [signal]

Parametresinformations-

Suiveur

Référencé par AcquisitionSuiveur().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 36: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.4 Référence de la structure AlarmesRegulateur 32

10.3.3.21 AcquisitionSuiveur : :stopperCommande ( ) [signal]

Parametres

Référencé par AcquisitionSuiveur().

10.3.3.22 AcquisitionSuiveur : :terminer ( ) [slot]

Références fini.

{#ifdef DEBUG_SUIVEUR

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

fini = true;}

10.3.4 Documentation des donnees membres

10.3.4.1 BaseDeDonnees∗ AcquisitionSuiveur : :bdd [private]

Référencé par AcquisitionSuiveur(), enregistrerEtatSuiveur(), et lirePeriode().

10.3.4.2 bool AcquisitionSuiveur : :fini [private]

TODO

Référencé par finir(), main(), et terminer().

10.3.4.3 bool AcquisitionSuiveur : :modeAuto [private]

TODO

10.3.4.4 QMutex AcquisitionSuiveur : :mutex [private]

TODO

Référencé par msleep().

10.3.4.5 int AcquisitionSuiveur : :periode [private]

TODO

Référencé par AcquisitionSuiveur(), lirePeriode(), et main().

10.3.4.6 SuiveurSolaire∗ AcquisitionSuiveur : :suiveur

TODO

Référencé par AcquisitionSuiveur(), enregistrerEtatSuiveur(), main(), et ∼AcquisitionSuiveur().

10.3.4.7 QWaitCondition AcquisitionSuiveur : :waitCondition [private]

TODO

Référencé par annuler(), et msleep().

La documentation de cette classe a été générée à partir des fichiers suivants :– acquisitionSuiveur.h– acquisitionSuiveur.cpp

10.4 Reference de la structure AlarmesRegulateur

Regroupe les différents etats du regulateur.

#include <regulateur.h>

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 37: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.4 Référence de la structure AlarmesRegulateur 33

Attributs publics

– bool alarmeBatterie– bool alarmeChargeComplete– bool alarmeDebranchementBatterie– bool alarmeSurtensionPv– bool alarmeSurtensionCharge– bool alarmeSurvoltageBatterie– bool alarmeSurchauffePv– bool alarmeSurchauffeCharge– bool trameRecu

10.4.1 Description detaillee

Cette structure ne contient que des bouléens pour les alarmes et les notifications du régulateur

10.4.2 Documentation des donnees membres

10.4.2.1 bool AlarmesRegulateur : :alarmeBatterie

TODO

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

10.4.2.2 bool AlarmesRegulateur : :alarmeChargeComplete

TODO

Référencé par IhmTournesol : :afficherAlarmeRegulateur(), Regulateur : :decoderAlarmes(), et IhmTournesol : :IhmTournesol().

10.4.2.3 bool AlarmesRegulateur : :alarmeDebranchementBatterie

TODO

Référencé par IhmTournesol : :afficherAlarmeRegulateur(), Regulateur : :decoderAlarmes(), et IhmTournesol : :IhmTournesol().

10.4.2.4 bool AlarmesRegulateur : :alarmeSurchauffeCharge

TODO

Référencé par IhmTournesol : :afficherAlarmeRegulateur(), Regulateur : :decoderAlarmes(), et IhmTournesol : :IhmTournesol().

10.4.2.5 bool AlarmesRegulateur : :alarmeSurchauffePv

TODO

Référencé par IhmTournesol : :afficherAlarmeRegulateur(), Regulateur : :decoderAlarmes(), et IhmTournesol : :IhmTournesol().

10.4.2.6 bool AlarmesRegulateur : :alarmeSurtensionCharge

TODO

Référencé par IhmTournesol : :afficherAlarmeRegulateur(), Regulateur : :decoderAlarmes(), et IhmTournesol : :IhmTournesol().

10.4.2.7 bool AlarmesRegulateur : :alarmeSurtensionPv

TODO

Référencé par IhmTournesol : :afficherAlarmeRegulateur(), Regulateur : :decoderAlarmes(), et IhmTournesol : :IhmTournesol().

10.4.2.8 bool AlarmesRegulateur : :alarmeSurvoltageBatterie

TODO

Référencé par IhmTournesol : :afficherAlarmeRegulateur(), Regulateur : :decoderAlarmes(), et IhmTournesol : :IhmTournesol().

10.4.2.9 bool AlarmesRegulateur : :trameRecu

TODO

Référencé par Regulateur : :acquerirInformations(), IhmTournesol : :afficherAlarmeRegulateur(), et IhmTournesol : :Ihm-Tournesol().

La documentation de cette structure a été générée à partir du fichier suivant :– regulateur.h

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 38: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.5 Référence de la classe AsservissementSuiveur 34

10.5 Reference de la classe AsservissementSuiveur

Gestion du capteur solaire pour le suivi.

#include <asservissementSuiveur.h>

Graphe de collaboration de AsservissementSuiveur :

AsservissementSuiveur

- capteurSolaire- fini- mutex- waitCondition- etatLDR1- etatLDR2- etatLDR3- etatLDR4- bdd

+ AsservissementSuiveur()+ ~AsservissementSuiveur()+ main()+ finir()+ terminer()- msleep()- annuler()- suivreSoleil()- lireEtatSuiveur()

CapteurSolaire

- etatLDR1- etatLDR2- etatLDR3- etatLDR4- bdd

+ CapteurSolaire()+ ~CapteurSolaire()+ acquerir()+ getEtatLDR1()+ getEtatLDR2()+ getEtatLDR3()+ getEtatLDR4()- trier()- mediane()- reinitialiser()- lireTension()- detecter()

capteurSolaire

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

bdd

bdd

baseDeDonnees

Connecteurs publics

– void main ()– void finir ()– void terminer ()

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 39: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.5 Référence de la classe AsservissementSuiveur 35

Signaux

– void afficherLabelAsservissementSuiveur (QString message)– void deplacerEst ()– void deplacerOuest ()– void deplacerNord ()– void deplacerSud ()– void afficherEtatsLDR (int etatLDR1, int etatLDR2, int etatLDR3, int etatLDR4)– void afficherEtatSuiveur (bool etat)

Fonctions membres publiques

– AsservissementSuiveur ()– ∼AsservissementSuiveur ()

Fonctions membres privees

– void msleep (unsigned long sleepMS)– void annuler ()– void suivreSoleil ()– void lireEtatSuiveur ()

Attributs prives

– CapteurSolaire capteurSolaire– bool fini– QMutex mutex– QWaitCondition waitCondition– int etatLDR1– int etatLDR2– int etatLDR3– int etatLDR4– BaseDeDonnees ∗ bdd

10.5.1 Description detaillee

Auteur

Grégory Moll <[email protected]>

10.5.2 Documentation des constructeurs et destructeur

10.5.2.1 AsservissementSuiveur : :AsservissementSuiveur ( )

Références afficherEtatSuiveur(), bdd, capteurSolaire, BaseDeDonnees : :connecter(), et BaseDeDonnees : :getInstance().

: fini(false){#ifdef DEBUG_CAPTEURSOLAIRE

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

bdd = BaseDeDonnees::getInstance();bdd->connecter();

connect(&capteurSolaire, SIGNAL(afficherEtatSuiveur(bool)), this, SIGNAL(afficherEtatSuiveur(bool)));

}

10.5.2.2 AsservissementSuiveur : :∼AsservissementSuiveur ( )

Références BaseDeDonnees : :detruireInstance().

{BaseDeDonnees::detruireInstance();

#ifdef DEBUG_CAPTEURSOLAIREqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;

#endif}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 40: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.5 Référence de la classe AsservissementSuiveur 36

10.5.3 Documentation des fonctions membres

10.5.3.1 AsservissementSuiveur : :afficherEtatsLDR ( int etatLDR1, int etatLDR2, int etatLDR3, int etatLDR4 ) [signal]

ParametresetatLDR1etatLDR2etatLDR3etatLDR4

Référencé par suivreSoleil().

10.5.3.2 AsservissementSuiveur : :afficherEtatSuiveur ( bool etat ) [signal]

Référencé par AsservissementSuiveur(), et lireEtatSuiveur().

10.5.3.3 AsservissementSuiveur : :afficherLabelAsservissementSuiveur ( QString message ) [signal]

Parametresmessage

10.5.3.4 AsservissementSuiveur : :annuler ( ) [inline, private]

Références waitCondition.

Référencé par finir().

{waitCondition.wakeAll();

}

10.5.3.5 AsservissementSuiveur : :deplacerEst ( ) [signal]

Référencé par suivreSoleil().

10.5.3.6 AsservissementSuiveur : :deplacerNord ( ) [signal]

Référencé par suivreSoleil().

10.5.3.7 AsservissementSuiveur : :deplacerOuest ( ) [signal]

Référencé par suivreSoleil().

10.5.3.8 AsservissementSuiveur : :deplacerSud ( ) [signal]

Référencé par suivreSoleil().

10.5.3.9 AsservissementSuiveur : :finir ( ) [slot]

Références annuler(), et fini.

Référencé par IhmTournesol : :∼IhmTournesol().

{fini = true;annuler();

}

10.5.3.10 AsservissementSuiveur : :lireEtatSuiveur ( ) [private]

Références afficherEtatSuiveur(), bdd, et BaseDeDonnees : :recuperer().

Référencé par main().

{bool retour;QString etat;QString requete = "SELECT ‘etat‘ FROM ‘Modules‘ WHERE ‘nomModule‘=

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 41: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.5 Référence de la classe AsservissementSuiveur 37

’suiveur’";retour = bdd->recuperer(requete, etat);if (retour == true){

emit afficherEtatSuiveur(etat.toInt());//

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));}

}

10.5.3.11 AsservissementSuiveur : :main ( ) [slot]

Références CapteurSolaire : :acquerir(), capteurSolaire, fini, lireEtatSuiveur(), msleep(), PERIODE, et suivreSoleil().

{#ifdef DEBUG_CAPTEURSOLAIRE

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

while(!fini){

capteurSolaire.acquerir();

suivreSoleil();

lireEtatSuiveur();

this->msleep(PERIODE);}

}

10.5.3.12 AsservissementSuiveur : :msleep ( unsigned long sleepMS ) [inline, private]

ParametressleepMS

Références mutex, et waitCondition.

Référencé par main().

{waitCondition.wait(&mutex, sleepMS);

}

10.5.3.13 AsservissementSuiveur : :suivreSoleil ( ) [private]

Références afficherEtatsLDR(), capteurSolaire, deplacerEst(), deplacerNord(), deplacerOuest(), deplacerSud(), etatLDR1, etatL-DR2, etatLDR3, etatLDR4, CapteurSolaire : :getEtatLDR1(), CapteurSolaire : :getEtatLDR2(), CapteurSolaire : :getEtatLDR3(), etCapteurSolaire : :getEtatLDR4().

Référencé par main().

{etatLDR1 = capteurSolaire.getEtatLDR1();etatLDR2 = capteurSolaire.getEtatLDR2();etatLDR3 = capteurSolaire.getEtatLDR3();etatLDR4 = capteurSolaire.getEtatLDR4();

emit afficherEtatsLDR(etatLDR1, etatLDR2, etatLDR3, etatLDR4);

#ifdef DEBUG_CAPTEURSOLAIREqDebug() << "Etat LDR 1 :" << etatLDR1;qDebug() << "Etat LDR 2 :" << etatLDR2;qDebug() << "Etat LDR 3 :" << etatLDR3;qDebug() << "Etat LDR 4 :" << etatLDR4;

#endif

//Vérififier si les 4 LDR sont en face du soleilif((etatLDR1 == true && etatLDR2 == true && etatLDR3 == true && etatLDR4 ==

true) || (etatLDR1 == false && etatLDR2 == false && etatLDR3 == false &&etatLDR4 == false))

{return; // rien a faire : on ne bouge pas

}

//Commande Moteur A (Azimut) LDR 1 et 3if(etatLDR1 == true){

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 42: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.5 Référence de la classe AsservissementSuiveur 38

if(etatLDR3 != true){

#ifdef DEBUG_CAPTEURSOLAIREqDebug() << Q_FUNC_INFO << QString::fromUtf8("déplacement à l’est")

;#endif

emit deplacerEst();}

}else if(etatLDR3 == true){

if(etatLDR1 != true){

#ifdef DEBUG_CAPTEURSOLAIREqDebug() << Q_FUNC_INFO << QString::fromUtf8("déplacement à l’ouest

");#endif

emit deplacerOuest();}

}

//Commande Moteur B (Elevation) LDR 2 et 4if(etatLDR2 == true){

if(etatLDR4 != true){

#ifdef DEBUG_CAPTEURSOLAIREqDebug() << Q_FUNC_INFO << QString::fromUtf8("déplacement au nord")

;#endif

emit deplacerNord();}

}else if(etatLDR4 == true){

if(etatLDR2 != true){

#ifdef DEBUG_CAPTEURSOLAIREqDebug() << Q_FUNC_INFO << QString::fromUtf8("déplacement au sud");

#endifemit deplacerSud();

}}

}

10.5.3.14 AsservissementSuiveur : :terminer ( ) [slot]

{#ifdef DEBUG_CAPTEURSOLAIRE

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif}

10.5.4 Documentation des donnees membres

10.5.4.1 BaseDeDonnees∗ AsservissementSuiveur : :bdd [private]

Référencé par AsservissementSuiveur(), et lireEtatSuiveur().

10.5.4.2 CapteurSolaire AsservissementSuiveur : :capteurSolaire [private]

TODO

Référencé par AsservissementSuiveur(), main(), et suivreSoleil().

10.5.4.3 int AsservissementSuiveur : :etatLDR1 [private]

l’état de LDR1

Référencé par suivreSoleil().

10.5.4.4 int AsservissementSuiveur : :etatLDR2 [private]

l’état de LDR2

Référencé par suivreSoleil().

10.5.4.5 int AsservissementSuiveur : :etatLDR3 [private]

l’état de LDR3

Référencé par suivreSoleil().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 43: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.6 Référence de la classe BaseDeDonnees 39

10.5.4.6 int AsservissementSuiveur : :etatLDR4 [private]

l’état de LDR4

Référencé par suivreSoleil().

10.5.4.7 bool AsservissementSuiveur : :fini [private]

TODO

Référencé par finir(), et main().

10.5.4.8 QMutex AsservissementSuiveur : :mutex [private]

TODO

Référencé par msleep().

10.5.4.9 QWaitCondition AsservissementSuiveur : :waitCondition [private]

TODO

Référencé par annuler(), et msleep().

La documentation de cette classe a été générée à partir des fichiers suivants :– asservissementSuiveur.h– asservissementSuiveur.cpp

10.6 Reference de la classe BaseDeDonnees

Classe de gestion de base de données MySQL.

#include <basededonnees.h>

Graphe de collaboration de BaseDeDonnees :

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

baseDeDonnees

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 44: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.6 Référence de la classe BaseDeDonnees 40

Fonctions membres publiques

– bool connecter (QString nomBase=DATABASENAME)Se connecte à une base de données.

– bool executer (QString requete)Exécute une requête SQL UPDATE, INSERT ou DELETE.

– bool recuperer (QString requete, QVector< QString > &donnees)Exécute une requête SQL SELECT pour récupérer un seul champ de plusieurs enregistrements : le champ des différents enregistrementsest stocké dans un QVector de QString.

– bool recuperer (QString requete, QVector< QStringList > &donnees)Exécute une requête SQL SELECT pour récupérer plusieurs champs de plusieurs enregistrements : les différents champs des différentsenregistrements sont stockés dans un QVector de QStringList.

– bool recuperer (QString requete, QString &donnees)Exécute une requête SQL SELECT pour récupérer un seul champ d’un seul enregistrement : le champ est stocké dans un QString.

– bool recuperer (QString requete, QStringList &donnees)Exécute une requête SQL SELECT pour récupérer plusieurs champs d’un seul enregistrement : les différents champs sont stockés dansun QStringList.

Fonctions membres publiques statiques

– static BaseDeDonnees ∗ getInstance ()Retourne l’unique instance (membre statique)

– static void detruireInstance ()Libère l’instance obtenue.

Fonctions membres privees

– BaseDeDonnees ()Constructeur placé en privé pour interdire la création d’une instance de l’extérieur de la classe.

– ∼BaseDeDonnees ()Destructeur.

Attributs prives

– QSqlDatabase db– QMutex mutex

Attributs prives statiques

– static BaseDeDonnees ∗ baseDeDonnees = NULL– static int nbAcces = 0

10.6.1 Description detaillee

Classe singleton + ressource critique protégée par un mutex

Avertissement

Il faut ajouter QT += sql au fichier .pro

Auteur

Thierry Vaira <[email protected]>

10.6.2 Documentation des constructeurs et destructeur

10.6.2.1 BaseDeDonnees : :BaseDeDonnees ( ) [private]

Références db.

Référencé par getInstance().

{#ifdef DEBUG_BASEDEDONNEES_1qDebug() << "<BaseDeDonnees::BaseDeDonnees()>";#endifdb = QSqlDatabase::addDatabase("QMYSQL");

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 45: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.6 Référence de la classe BaseDeDonnees 41

10.6.2.2 BaseDeDonnees : :∼BaseDeDonnees ( ) [private]

{#ifdef DEBUG_BASEDEDONNEES_1qDebug() << "<BaseDeDonnees::~BaseDeDonnees()>";#endif

}

10.6.3 Documentation des fonctions membres

10.6.3.1 BaseDeDonnees : :connecter ( QString nomBase = DATABASENAME )

ParametresnomBase QString nom du fichier représentant la base de données (par défaut Tournesol)

Renvoie

bool vrai si la connexion a réussi sinon faux

Références db, HOSTNAME, mutex, PASSWORD, et USERNAME.

Référencé par AcquisitionSuiveur : :AcquisitionSuiveur(), AsservissementSuiveur : :AsservissementSuiveur(), CapteurSolaire : :-CapteurSolaire(), AcquisitionRegulateur : :lireConfiguration(), AcquisitionMeteo : :lireConfiguration(), ProtectionVent : :Protection-Vent(), Regulateur : :Regulateur(), StationMeteo : :StationMeteo(), et SuiveurSolaire : :SuiveurSolaire().

{QMutexLocker verrou(&mutex);if(!db.isOpen()){

db.setHostName(HOSTNAME);db.setUserName(USERNAME);db.setPassword(PASSWORD);db.setDatabaseName(nomBase);

#ifdef DEBUG_BASEDEDONNEES_1qDebug() << "HostName : " << db.hostName();qDebug() << "UserName : " << db.userName();qDebug() << "DatabaseName : " << db.databaseName();#endifif(db.open()){

#ifdef DEBUG_BASEDEDONNEESqDebug() << QString::fromUtf8("<BaseDeDonnees::connecter()>

connexion réussie à %1").arg(db.hostName());#endif

return true;}else{

qDebug() << QString::fromUtf8("<BaseDeDonnees::connecter()> erreur :impossible de se connecter à la base de données !");

//QMessageBox::critical(0, QString::fromUtf8("Aquaberry"),QString::fromUtf8("Impossible de se connecter à la base de données !"));

return false;}

}else

return true;}

10.6.3.2 BaseDeDonnees : :detruireInstance ( ) [static]

Références baseDeDonnees, et nbAcces.

Référencé par AcquisitionRegulateur : :lireConfiguration(), AcquisitionMeteo : :lireConfiguration(), AcquisitionSuiveur : :∼-AcquisitionSuiveur(), AsservissementSuiveur : :∼AsservissementSuiveur(), CapteurSolaire : :∼CapteurSolaire(), ProtectionVent-: :∼ProtectionVent(), StationMeteo : :∼StationMeteo(), et SuiveurSolaire : :∼SuiveurSolaire().

{// instance ?if(baseDeDonnees != NULL){

nbAcces--;#ifdef DEBUG_BASEDEDONNEES_1qDebug() << "<BaseDeDonnees::detruireInstance()> nbAcces restants = " <

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 46: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.6 Référence de la classe BaseDeDonnees 42

< nbAcces;#endif// dernier ?if(nbAcces == 0)

delete baseDeDonnees;}

}

10.6.3.3 BaseDeDonnees : :executer ( QString requete )

Parametresrequete QString une requête SQL UPDATE, INSERT ou DELETE

Renvoie

bool vrai si la requête a été exécutée avec succès sinon faux

Références db, et mutex.

Référencé par StationMeteo : :acquerir(), ProtectionVent : :activerProtectionVent(), ProtectionVent : :arreterProtection(), Capteur-Solaire : :CapteurSolaire(), Regulateur : :decoderMenuState(), Regulateur : :decoderMenuState2(), Regulateur : :decoderTrame-Informations(), ProtectionVent : :editerFrequenceProtectionVent(), ProtectionVent : :editerVitesseMaxProtectionVent(), Protection-Vent : :enregisterAlerte(), AcquisitionSuiveur : :enregistrerEtatSuiveur(), SuiveurSolaire : :enregistrerInformationsBdd(), Station-Meteo : :enregistrerMesures(), CapteurSolaire : :∼CapteurSolaire(), ProtectionVent : :∼ProtectionVent(), et StationMeteo : :∼-StationMeteo().

{QMutexLocker verrou(&mutex);QSqlQuery r;bool retour;

if(db.isOpen()){

retour = r.exec(requete);#ifdef DEBUG_BASEDEDONNEESqDebug() << QString::fromUtf8("<BaseDeDonnees::executer()> retour %1pour la requete : %2").arg(QString::number(retour)).arg(requete);#endifif(retour){

return true;}else{

qDebug() << QString::fromUtf8("<BaseDeDonnees::executer()> erreur :%1 pour la requête %2").arg(r.lastError().text()).arg(requete);

return false;}

}else

return false;

}

10.6.3.4 BaseDeDonnees : :getInstance ( ) [static]

Renvoie

BaseDeDonnees

Références BaseDeDonnees(), baseDeDonnees, et nbAcces.

Référencé par AcquisitionSuiveur : :AcquisitionSuiveur(), AsservissementSuiveur : :AsservissementSuiveur(), CapteurSolaire : :-CapteurSolaire(), AcquisitionRegulateur : :lireConfiguration(), AcquisitionMeteo : :lireConfiguration(), ProtectionVent : :Protection-Vent(), Regulateur : :Regulateur(), StationMeteo : :StationMeteo(), et SuiveurSolaire : :SuiveurSolaire().

{if(baseDeDonnees == NULL)

baseDeDonnees = new BaseDeDonnees();

nbAcces++;#ifdef DEBUG_BASEDEDONNEES_1qDebug() << "<BaseDeDonnees::getInstance()> nbAcces = " << nbAcces;#endif

return baseDeDonnees;}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 47: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.6 Référence de la classe BaseDeDonnees 43

10.6.3.5 BaseDeDonnees : :recuperer ( QString requete, QVector< QString > & donnees )

Parametresrequete QString

donnees QVector<QString>

Renvoie

bool vrai si la requête a été exécutée avec succès sinon faux

Références db, et mutex.

Référencé par StationMeteo : :acquerir(), ProtectionVent : :acquerir(), ProtectionVent : :activerProtectionVent(), ProtectionVent-: :arreterProtection(), AcquisitionRegulateur : :lireConfiguration(), AcquisitionMeteo : :lireConfiguration(), AsservissementSuiveur-: :lireEtatSuiveur(), ProtectionVent : :lireModeDeFonctionnement(), et AcquisitionSuiveur : :lirePeriode().

{QMutexLocker verrou(&mutex);QSqlQuery r;bool retour;QString data;

if(db.isOpen()){

retour = r.exec(requete);#ifdef DEBUG_BASEDEDONNEESqDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString,QVector<QString>)> retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);#endifif(retour){

// pour chaque enregistrementwhile ( r.next() ){

// on récupère sous forme de QString la valeur du champssélectionné

data = r.value(0).toString();

#ifdef DEBUG_BASEDEDONNEES//qDebug() << "<BaseDeDonnees::recuperer(QString,

QVector<QString>)> enregistrement -> " << data;#endif

// on stocke l’enregistrement dans le QVectordonnees.push_back(data);

}#ifdef DEBUG_BASEDEDONNEESqDebug() << "<BaseDeDonnees::recuperer(QString, QVector<QString>)>

enregistrement -> " << donnees;#endifreturn true;

}else{

qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString,QVector<QString>)> erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);

return false;}

}else

return false;}

10.6.3.6 BaseDeDonnees : :recuperer ( QString requete, QVector< QStringList > & donnees )

Parametresrequete QString

donnees QVector<QStringList>

Renvoie

bool vrai si la requête a été exécutée avec succès sinon faux

Références db, et mutex.

{

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 48: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.6 Référence de la classe BaseDeDonnees 44

QMutexLocker verrou(&mutex);QSqlQuery r;bool retour;QStringList data;

if(db.isOpen()){

retour = r.exec(requete);#ifdef DEBUG_BASEDEDONNEESqDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString,QVector<QStringList>)> retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);#endifif(retour){

// pour chaque enregistrementwhile ( r.next() ){

// on récupère sous forme de QString la valeur de tous leschamps sélectionnés

// et on les stocke dans une liste de QStringfor(int i=0;i<r.record().count();i++)

data << r.value(i).toString();

#ifdef DEBUG_BASEDEDONNEES//qDebug() << "<BaseDeDonnees::recuperer(QString,

QVector<QStringList>)> enregistrement -> " << data;/*for(int i=0;i<r.record().count();i++)

qDebug() << r.value(i).toString();*/#endif

// on stocke l’enregistrement dans le QVectordonnees.push_back(data);

// on efface la liste de QString pour le prochainenregistrement

data.clear();}#ifdef DEBUG_BASEDEDONNEESqDebug() << "<BaseDeDonnees::recuperer(QString,

QVector<QStringList>)> enregistrement -> " << donnees;#endifreturn true;

}else{

qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString,QVector<QStringList>)> erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);

return false;}

}else

return false;}

10.6.3.7 BaseDeDonnees : :recuperer ( QString requete, QString & donnees )

Parametresrequete QString

donnees QString

Renvoie

bool vrai si la requête a été exécutée avec succès sinon faux

Références db, et mutex.

{QMutexLocker verrou(&mutex);QSqlQuery r;bool retour;

if(db.isOpen()){

retour = r.exec(requete);#ifdef DEBUG_BASEDEDONNEESqDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString,QString)> retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);#endifif(retour){

// on se positionne sur l’enregistrement

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 49: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.6 Référence de la classe BaseDeDonnees 45

r.first();

// on vérifie l’état de l’enregistrement retournéif(!r.isValid()){

#ifdef DEBUG_BASEDEDONNEESqDebug() << QString::fromUtf8("

<BaseDeDonnees::recuperer(QString, QString)> résultat non valide !");#endifreturn false;

}

// on récupère sous forme de QString la valeur du champif(r.isNull(0)){

#ifdef DEBUG_BASEDEDONNEESqDebug() << QString::fromUtf8("

<BaseDeDonnees::recuperer(QString, QString)> résultat vide !");#endifreturn false;

}donnees = r.value(0).toString();#ifdef DEBUG_BASEDEDONNEESqDebug() << "<BaseDeDonnees::recuperer(QString, QString)>

enregistrement -> " << donnees;#endifreturn true;

}else{

qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString,QString)> erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(requete);

return false;}

}else

return false;}

10.6.3.8 BaseDeDonnees : :recuperer ( QString requete, QStringList & donnees )

Parametresrequete QString

donnees QStringList

Renvoie

bool vrai si la requête a été exécutée avec succès sinon faux

Références db, et mutex.

{QMutexLocker verrou(&mutex);QSqlQuery r;bool retour;

if(db.isOpen()){

retour = r.exec(requete);#ifdef DEBUG_BASEDEDONNEESqDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString,QStringList)> retour %1 pour la requete : %2").arg(QString::number(retour)).arg(requete);#endifif(retour){

// on se positionne sur l’enregistrementr.first();

// on vérifie l’état de l’enregistrement retournéif(!r.isValid()){

#ifdef DEBUG_BASEDEDONNEESqDebug() << QString::fromUtf8("

<BaseDeDonnees::recuperer(QString, QStringList)> résultat non valide !");#endifreturn false;

}

// on récupère sous forme de QString la valeur de tous les champssélectionnés

// et on les stocke dans une liste de QString

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 50: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.7 Référence de la classe BusI2C 46

for(int i=0;i<r.record().count();i++)if(!r.isNull(i))

donnees << r.value(i).toString();#ifdef DEBUG_BASEDEDONNEESqDebug() << "<BaseDeDonnees::recuperer(QString, QStringList)>

enregistrement -> " << donnees;#endifreturn true;

}else{

qDebug() << QString::fromUtf8("<BaseDeDonnees::recuperer(QString,QStringList)> erreur : %1 pour la requête %2").arg(r.lastError().text()).arg(

requete);return false;

}}else

return false;}

10.6.4 Documentation des donnees membres

10.6.4.1 BaseDeDonnees ∗ BaseDeDonnees : :baseDeDonnees = NULL [static, private]

pointeur sur l’instance de la classe (membre statique)

Référencé par detruireInstance(), et getInstance().

10.6.4.2 QSqlDatabase BaseDeDonnees : :db [private]

un objet QSqlDatabase

Référencé par BaseDeDonnees(), connecter(), executer(), et recuperer().

10.6.4.3 QMutex BaseDeDonnees : :mutex [private]

un mutex pour protéger des accès concurrents à la base de données

Référencé par connecter(), executer(), et recuperer().

10.6.4.4 int BaseDeDonnees : :nbAcces = 0 [static, private]

nombre d’objets en cours d’utilisation de l’instance de la classe

Référencé par detruireInstance(), et getInstance().

La documentation de cette classe a été générée à partir des fichiers suivants :– basededonnees.h– basededonnees.cpp

10.7 Reference de la classe BusI2C

Gestion du bus I2C pour les circuits LTC2309 et BH1750.

#include <busi2c.h>

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 51: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.7 Référence de la classe BusI2C 47

Graphe de collaboration de BusI2C :

BusI2C

- mutex- i2c_bus- i2c_fd- current_slave- txBuff- busI2C

+ is_open()+ write()+ write()+ write()+ read()+ delay_ms()+ get_ms()+ createInstance()+ releaseInstance()+ analogRawRead()+ luxRawRead()- BusI2C()- ~BusI2C()- select_slave()

busI2C

Fonctions membres publiques

– bool is_open ()– int write (unsigned char slave_addr, unsigned char reg_addr)– int write (unsigned char slave_addr, unsigned char const ∗data, int length)– int write (unsigned char slave_addr, unsigned char reg_addr, unsigned char const ∗data, int length)– int read (unsigned char slave_addr, unsigned char ∗data, int length)– int delay_ms (unsigned long num_ms)– int get_ms (unsigned long ∗count)

Fonctions membres publiques statiques

– static BusI2C ∗ createInstance (int i2c_bus=1)– static void releaseInstance ()– static int analogRawRead (int pin)

Acquérir la valeur numérique d’une entrée analogique du LTC2309.– static int luxRawRead (int mode)

Acquérir la valeur numérique de la luminosité du capteur BH1750.

Fonctions membres privees

– BusI2C (int i2c_bus)– ∼BusI2C ()– int select_slave (unsigned char slave_addr)

Attributs prives

– QMutex mutex

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 52: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.7 Référence de la classe BusI2C 48

– int i2c_bus– int i2c_fd– int current_slave– unsigned char txBuff [MAX_WRITE_LEN+1]

Attributs prives statiques

– static BusI2C ∗ busI2C = NULL

10.7.1 Description detaillee

Classe singleton + ressource critique protégée par un mutex

Auteur

Thierry VAIRA <[email protected]>

Version

0.9

Date

Lundi 9 mai 2016

10.7.2 Documentation des constructeurs et destructeur

10.7.2.1 BusI2C : :BusI2C ( int i2c bus ) [private]

Références i2c_fd.

Référencé par createInstance().

:i2c_bus(i2c_bus),i2c_fd(-1),current_slave(0){

char name[16];

if (i2c_fd == -1){

sprintf(name, "/dev/i2c-%d", i2c_bus);

i2c_fd = ::open(name, O_RDWR);

if (i2c_fd < 0){

#ifdef I2C_DEBUGperror("open(i2c_bus)");

#endifi2c_fd = -1;

}}

}

10.7.2.2 BusI2C : :∼BusI2C ( ) [private]

Références i2c_fd.

{if (i2c_fd > 0){

::close(i2c_fd);}

}

10.7.3 Documentation des fonctions membres

10.7.3.1 int BusI2C : :analogRawRead ( int pin ) [static]

Méthode statique permettant de lire le LTC2309 (CAN 12 bits)

Parametres

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 53: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.7 Référence de la classe BusI2C 49

pin Numéro du canal

Renvoie

Un int représentant la valeur brute de la tension du canal

Références busI2C, createInstance(), delay_ms(), is_open(), LTC2309_I2C_ADDRESS, read(), et write().

Référencé par CapteurSolaire : :lireTension().

{BusI2C *busI2C = BusI2C::createInstance();unsigned char val[2];int value = -1;int address = 0;int ret;

if(!busI2C->is_open())return value;

if (pin == 0) {address = 0xDC;

} else if (pin == 1) {address = 0x9C;

} else if (pin == 2) {address = 0xCC ;

} else if (pin == 3) {address = 0x8C;

} else if (pin == 4) {address = 0xAC;

} else if (pin == 5) {address = 0xEC;

} else if (pin == 6) {address = 0xBC;

} else if (pin == 7) {address = 0xFC;

}

ret = busI2C->write(LTC2309_I2C_ADDRESS, address);if(ret != -1){

busI2C->delay_ms(200);busI2C->read(LTC2309_I2C_ADDRESS, val, 2);value = (int(val[0])*16 + int(val[1]>>4)) & 0x0FFF;#ifdef I2C_DEBUGprintf("I2C 0x%02X -> 0x%02X 0x%02X\n", LTC2309_I2C_ADDRESS, val[0],

val[1]);#endif

}

return value;}

10.7.3.2 BusI2C ∗ BusI2C : :createInstance ( int i2c bus = 1 ) [static]

Références BusI2C(), et busI2C.

Référencé par analogRawRead(), et luxRawRead().

{// nouvelle instance ?if(busI2C == NULL)

busI2C = new BusI2C(i2c_bus);

return busI2C;}

10.7.3.3 int BusI2C : :delay_ms ( unsigned long num ms )

Référencé par analogRawRead(), luxRawRead(), et read().

{struct timespec ts;

ts.tv_sec = num_ms / 1000;ts.tv_nsec = (num_ms % 1000) * 1000000;

return nanosleep(&ts, NULL);}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 54: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.7 Référence de la classe BusI2C 50

10.7.3.4 int BusI2C : :get_ms ( unsigned long ∗ count )

10.7.3.5 bool BusI2C : :is_open ( )

Références i2c_fd.

Référencé par analogRawRead(), et luxRawRead().

{if (i2c_fd == -1)

return false;return true;

}

10.7.3.6 int BusI2C : :luxRawRead ( int mode ) [static]

Méthode statique permettant de lire le BH1750

Parametresmode le type de résolution

Renvoie

Un int représentant la valeur brute de la luminosité

Références BH1750_I2C_ADDRESS, busI2C, createInstance(), delay_ms(), is_open(), read(), et write().

Référencé par CapteurLuminosite : :lire().

{BusI2C *busI2C = BusI2C::createInstance();unsigned char datas[2];short int level = -1;int ret;

if(!busI2C->is_open())return level;

ret = busI2C->write(BH1750_I2C_ADDRESS, mode);if(ret != -1){

busI2C->delay_ms(180);busI2C->read(BH1750_I2C_ADDRESS, datas, 2);level = (datas[0] << 8) & 0xFF00;level |= datas[1];#ifdef I2C_DEBUGprintf("I2C 0x%02X -> 0x%02X 0x%02X\n", BH1750_I2C_ADDRESS, datas[0],

datas[1]);#endif

}

return (level & 0x0000FFFF);}

10.7.3.7 int BusI2C : :read ( unsigned char slave addr, unsigned char ∗ data, int length )

Références delay_ms(), i2c_fd, mutex, et select_slave().

Référencé par analogRawRead(), et luxRawRead().

{QMutexLocker verrou(&mutex);int tries, result, total;

if (select_slave(slave_addr))return -1;

total = 0;tries = 0;

while (total < length && tries < 5){

result = ::read(i2c_fd, data + total, length - total);if (result < 0)

{#ifdef I2C_DEBUG

perror("read");#endif

break;

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 55: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.7 Référence de la classe BusI2C 51

}

total += result;

if (total == length){

break;}

tries++;delay_ms(10);

//usleep(10*1000);}

if (total < length)return -1;

return total;}

10.7.3.8 void BusI2C : :releaseInstance ( ) [static]

Références busI2C.

{// instance ?if(busI2C != NULL){

delete busI2C;}

}

10.7.3.9 int BusI2C : :select_slave ( unsigned char slave addr ) [private]

Références current_slave, et i2c_fd.

Référencé par read(), et write().

{int ret;

if (current_slave == slave_addr)return 0;

if (i2c_fd == -1)return -1;

ret = ::ioctl(i2c_fd, I2C_SLAVE, slave_addr);if (ret < 0)

{#ifdef I2C_DEBUG

perror("ioctl(I2C_SLAVE)");#endif

return -1;}

current_slave = slave_addr;

return 0;}

10.7.3.10 int BusI2C : :write ( unsigned char slave addr, unsigned char reg addr )

Références i2c_fd, mutex, et select_slave().

Référencé par analogRawRead(), luxRawRead(), et write().

{QMutexLocker verrou(&mutex);

int result;

if (select_slave(slave_addr) == -1)return -1;

result = ::write(i2c_fd, &reg_addr, 1);

if (result < 0){

#ifdef I2C_DEBUGperror("write");#endifreturn result;

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 56: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.7 Référence de la classe BusI2C 52

}else if (result != 1){

#ifdef I2C_DEBUGprintf("error write %d !\n", result);#endifreturn -1;

}

return result;}

10.7.3.11 int BusI2C : :write ( unsigned char slave addr, unsigned char const ∗ data, int length )

Références i2c_fd, MAX_WRITE_LEN, mutex, select_slave(), txBuff, et write().

{QMutexLocker verrou(&mutex);

int result, i;

if (length > MAX_WRITE_LEN){

return -1;}

if (select_slave(slave_addr) == -1)return -1;

for (i = 0; i < length; i++)txBuff[i] = data[i];

result = ::write(i2c_fd, txBuff, length);

if (result < 0){

#ifdef I2C_DEBUGperror("write");#endifreturn result;

}else if (result < (int)length){

#ifdef I2C_DEBUGprintf("error write %d (%u) !\n", result, length);#endifreturn -1;

}

return result;}

10.7.3.12 int BusI2C : :write ( unsigned char slave addr, unsigned char reg addr, unsigned char const ∗ data, int length )

Références i2c_fd, MAX_WRITE_LEN, mutex, select_slave(), txBuff, et write().

{QMutexLocker verrou(&mutex);

int result, i;

if (length > MAX_WRITE_LEN){

return -1;}

if (select_slave(slave_addr) == -1)return -1;

txBuff[0] = reg_addr;

for (i = 0; i < length; i++)txBuff[i+1] = data[i];

result = ::write(i2c_fd, txBuff, length+1);

if (result < 0){

#ifdef I2C_DEBUGperror("write");#endifreturn result;

}else if (result < (int)length){

#ifdef I2C_DEBUGprintf("error write %d (%u) !\n", result, length);

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 57: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.8 Référence de la classe CapteurLuminosite 53

#endifreturn -1;

}

return result;}

10.7.4 Documentation des donnees membres

10.7.4.1 BusI2C ∗ BusI2C : :busI2C = NULL [static, private]

Référencé par analogRawRead(), createInstance(), luxRawRead(), et releaseInstance().

10.7.4.2 int BusI2C : :current_slave [private]

Référencé par select_slave().

10.7.4.3 int BusI2C : :i2c_bus [private]

10.7.4.4 int BusI2C : :i2c_fd [private]

Référencé par BusI2C(), is_open(), read(), select_slave(), write(), et ∼BusI2C().

10.7.4.5 QMutex BusI2C : :mutex [private]

Référencé par read(), et write().

10.7.4.6 unsigned char BusI2C : :txBuff[MAX_WRITE_LEN+1] [private]

Référencé par write().

La documentation de cette classe a été générée à partir des fichiers suivants :– busi2c.h– busi2c.cpp

10.8 Reference de la classe CapteurLuminosite

Classe de gestion du capteur de luminosité

#include <capteurLuminosite.h>

Fonctions membres publiques

– CapteurLuminosite ()Constructeur par défaut.

– ∼CapteurLuminosite ()Destructeur.

– double lire ()Retourne la valeur en lux de type double du capteur de luminosité BH1750.

Attributs prives

– double luminosite

10.8.1 Description detaillee

Auteur

Nicolas Detilleux <[email protected]>

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 58: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.8 Référence de la classe CapteurLuminosite 54

10.8.2 Documentation des constructeurs et destructeur

10.8.2.1 CapteurLuminosite : :CapteurLuminosite ( )

:luminosite(0.){#ifdef DEBUG_STATIONMETEO

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif#ifndef R_PIsrand(time(NULL));#endif}

10.8.2.2 CapteurLuminosite : :∼CapteurLuminosite ( )

{#ifdef DEBUG_STATIONMETEO

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif}

10.8.3 Documentation des fonctions membres

10.8.3.1 CapteurLuminosite : :lire ( )

Renvoie

double

Références luminosite, BusI2C : :luxRawRead(), MAX, MIN, et One_Time_H_Resolution_Mode.

Référencé par StationMeteo : :lireLuminosite().

{int data;

#ifdef R_PIdata = (unsigned int)BusI2C::luxRawRead(One_Time_H_Resolution_Mode);//data = (unsigned int)BusI2C::luxRawRead(BH1750_ONE_TIME_LOW_RES_MODE);

#elsedata = (int)(MIN + ((MAX * rand()) / (RAND_MAX + 1.0) )); //Cf. man pages//data = 0;

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << "data brute" << rand();

#endif#endif

if(data != -1){

luminosite = (double)data / 1.2;}else luminosite = 0.;

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << luminosite << "lux";

#endif

return luminosite;}

10.8.4 Documentation des donnees membres

10.8.4.1 double CapteurLuminosite : :luminosite [private]

la valeur en lux de la luminosité

Référencé par lire().

La documentation de cette classe a été générée à partir des fichiers suivants :– capteurLuminosite.h– capteurLuminosite.cpp

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 59: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.9 Référence de la classe CapteurSolaire 55

10.9 Reference de la classe CapteurSolaire

Classe qui assure la détection de la position du soleil.

#include <capteurSolaire.h>

Graphe de collaboration de CapteurSolaire :

CapteurSolaire

- etatLDR1- etatLDR2- etatLDR3- etatLDR4- bdd

+ CapteurSolaire()+ ~CapteurSolaire()+ acquerir()+ getEtatLDR1()+ getEtatLDR2()+ getEtatLDR3()+ getEtatLDR4()- trier()- mediane()- reinitialiser()- lireTension()- detecter()

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

bdd

baseDeDonnees

Signaux

– void afficherEtatSuiveur (bool etat)

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 60: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.9 Référence de la classe CapteurSolaire 56

Fonctions membres publiques

– CapteurSolaire ()– ∼CapteurSolaire ()– void acquerir ()– int getEtatLDR1 ()– int getEtatLDR2 ()– int getEtatLDR3 ()– int getEtatLDR4 ()

Fonctions membres privees

– void trier (double t[ ])– double mediane (double t[ ])– void reinitialiser ()– double lireTension (int canal)– void detecter (double tensionIN1, double tensionIN2)

Attributs prives

– int etatLDR1– int etatLDR2– int etatLDR3– int etatLDR4– BaseDeDonnees ∗ bdd

10.9.1 Description detaillee

Auteur

Grégory Moll <[email protected]>

10.9.2 Documentation des constructeurs et destructeur

10.9.2.1 CapteurSolaire : :CapteurSolaire ( )

Références afficherEtatSuiveur(), bdd, BaseDeDonnees : :connecter(), etatLDR1, etatLDR2, etatLDR3, etatLDR4, ETEINTE, -BaseDeDonnees : :executer(), et BaseDeDonnees : :getInstance().

{etatLDR1 = ETEINTE;etatLDR2 = ETEINTE;etatLDR3 = ETEINTE;etatLDR4 = ETEINTE;

#ifndef R_PIsrand(time(NULL));#endif

bdd = BaseDeDonnees::getInstance();bdd->connecter();

QString requete = "UPDATE ‘Modules‘ SET ‘etat‘= ’1’ WHERE ‘nomModule‘ =’suiveur’";

bdd->executer(requete);

emit afficherEtatSuiveur(true);}

10.9.2.2 CapteurSolaire : :∼CapteurSolaire ( )

Références afficherEtatSuiveur(), bdd, BaseDeDonnees : :detruireInstance(), et BaseDeDonnees : :executer().

{QString requete = "UPDATE ‘Modules‘ SET ‘etat‘= ’0’ WHERE ‘nomModule‘ =

’suiveur’";bdd->executer(requete);

BaseDeDonnees::detruireInstance();

emit afficherEtatSuiveur(false);}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 61: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.9 Référence de la classe CapteurSolaire 57

10.9.3 Documentation des fonctions membres

10.9.3.1 CapteurSolaire : :acquerir ( )

Références CANAL_A0_IN2, CANAL_A1_IN1, detecter(), lireTension(), mediane(), NB_MESURES, et trier().

Référencé par AsservissementSuiveur : :main().

{double tensionsIN1[NB_MESURES];double tensionsIN2[NB_MESURES];double _tensionIN1;double _tensionIN2;

for(int i = 0; i < NB_MESURES; i++){

tensionsIN1[i] = lireTension(CANAL_A1_IN1);tensionsIN2[i] = lireTension(CANAL_A0_IN2);

}

trier(tensionsIN1);trier(tensionsIN2);

_tensionIN1 = mediane(tensionsIN1);_tensionIN2 = mediane(tensionsIN2);

detecter(_tensionIN1, _tensionIN2);}

10.9.3.2 CapteurSolaire : :afficherEtatSuiveur ( bool etat ) [signal]

Référencé par CapteurSolaire(), et ∼CapteurSolaire().

10.9.3.3 CapteurSolaire : :detecter ( double tensionIN1, double tensionIN2 ) [private]

ParametrestensionIN1tensionIN2

Références DELTA, ECLAIREE, etatLDR1, etatLDR2, etatLDR3, etatLDR4, reinitialiser(), SEUIL_DETECTION, et TOUTE.

Référencé par acquerir().

{double tensionIN = (tensionIN1 - tensionIN2);

reinitialiser();

#ifdef DEBUG_CAPTEURSOLAIREqDebug("void CapteurSolaire::detecter() Tension IN2 = %2.2f V", tensionIN2);

qDebug("void CapteurSolaire::detecter() Tension IN1 = %2.2f V", tensionIN1);

qDebug("void CapteurSolaire::detecter() Tension IN = %2.2f V", tensionIN);#endif // DEBUG_CAPTEURSOLAIRE

if((tensionIN > (0. + DELTA)) || (tensionIN < (0. - DELTA))){

if(tensionIN2 > (SEUIL_DETECTION - DELTA)){

etatLDR2 = ECLAIREE;}if(tensionIN1 < (SEUIL_DETECTION + DELTA)){

etatLDR3 = ECLAIREE;}if(tensionIN1 > (SEUIL_DETECTION - DELTA)){

etatLDR1 = ECLAIREE;}if(tensionIN2 < (SEUIL_DETECTION + DELTA)){

etatLDR4 = ECLAIREE;}

}else{

if(tensionIN2 > (SEUIL_DETECTION - DELTA) && tensionIN1 > (SEUIL_DETECTION - DELTA)){

etatLDR1 = ECLAIREE;

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 62: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.9 Référence de la classe CapteurSolaire 58

etatLDR2 = ECLAIREE;}else if(tensionIN2 < (SEUIL_DETECTION + DELTA) && tensionIN1 < (

SEUIL_DETECTION + DELTA)){

etatLDR3 = ECLAIREE;etatLDR4 = ECLAIREE;

}else{

// Tout éclairé ou tout non éclairé -> toutes les LDRs ont le mêmeétat

etatLDR1 = TOUTE;etatLDR2 = TOUTE;etatLDR3 = TOUTE;etatLDR4 = TOUTE;

}}

#ifdef DEBUG_CAPTEURSOLAIREqDebug() << Q_FUNC_INFO << etatLDR1 << etatLDR2 << etatLDR3 << etatLDR4;

#endif // DEBUG_CAPTEURSOLAIRE}

10.9.3.4 CapteurSolaire : :getEtatLDR1 ( )

Renvoie

int

Références etatLDR1.

Référencé par AsservissementSuiveur : :suivreSoleil().

{return etatLDR1;

}

10.9.3.5 CapteurSolaire : :getEtatLDR2 ( )

Renvoie

int

Références etatLDR2.

Référencé par AsservissementSuiveur : :suivreSoleil().

{return etatLDR2;

}

10.9.3.6 CapteurSolaire : :getEtatLDR3 ( )

Renvoie

int

Références etatLDR3.

Référencé par AsservissementSuiveur : :suivreSoleil().

{return etatLDR3;

}

10.9.3.7 CapteurSolaire : :getEtatLDR4 ( )

Renvoie

int

Références etatLDR4.

Référencé par AsservissementSuiveur : :suivreSoleil().

{return etatLDR4;

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 63: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.9 Référence de la classe CapteurSolaire 59

10.9.3.8 CapteurSolaire : :lireTension ( int canal ) [private]

Parametrescanal

Renvoie

double

Références BusI2C : :analogRawRead(), MAX, MIN, et TENSION_ALIM.

Référencé par acquerir().

{float tension = 0.;

if(canal >= 0 && canal < 8){

#ifdef R_PI//const float VDD = 5.0; //5 Voltsconst float VDD = TENSION_ALIM; //5 Voltsconst int NB_PAS_12B = 4096; //convertisseur 12 bitsint data = 0; //donnée numérique en sortie du CAN

data = BusI2C::analogRawRead(canal); // CAN sur 12 bitsif(data != -1){

tension = (float)( (float)(data & 0x0FFF) * (float)(VDD/(float)NB_PAS_12B) );

}#elsetension = MIN + (float)((float)MAX * rand() / (RAND_MAX + 1.0) ); //Cf.man pages#endif // R_PI

}else{

qDebug() << Q_FUNC_INFO << "Erreur canal !";}

return tension;}

10.9.3.9 CapteurSolaire : :mediane ( double t[ ] ) [private]

Parametrest[ ]

Renvoie

double

Références NB_MESURES.

Référencé par acquerir().

{// impair ?if(NB_MESURES%2 == 1){

return t[NB_MESURES/2];}else{

return (t[NB_MESURES/2] + t[(NB_MESURES/2)-1]) / 2.0;}

}

10.9.3.10 CapteurSolaire : :reinitialiser ( ) [private]

Références etatLDR1, etatLDR2, etatLDR3, etatLDR4, et ETEINTE.

Référencé par detecter().

{etatLDR1 = ETEINTE;etatLDR2 = ETEINTE;

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 64: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.9 Référence de la classe CapteurSolaire 60

etatLDR3 = ETEINTE;etatLDR4 = ETEINTE;

}

10.9.3.11 CapteurSolaire : :trier ( double t[ ] ) [private]

Parametrest[ ]

Références NB_MESURES.

Référencé par acquerir().

{int i, j;double elementInsere;

/*for (i = 0; i < NB_MESURES; i++){

qDebug() << t[i];}qDebug() << "";*/

for (i = 1; i < NB_MESURES; i++){

/* Stockage de la valeur en i */elementInsere = t[i];/* Décale les éléments situés avant t[i] vers la droite

jusqu’à trouver la position d’insertion */for (j = i; j > 0 && t[j - 1] > elementInsere; j--){

t[j] = t[j - 1];}/* Insertion de la valeur stockée à la place vacante */t[j] = elementInsere;

}}

10.9.4 Documentation des donnees membres

10.9.4.1 BaseDeDonnees∗ CapteurSolaire : :bdd [private]

Référencé par CapteurSolaire(), et ∼CapteurSolaire().

10.9.4.2 int CapteurSolaire : :etatLDR1 [private]

TODO

Référencé par CapteurSolaire(), detecter(), getEtatLDR1(), et reinitialiser().

10.9.4.3 int CapteurSolaire : :etatLDR2 [private]

TODO

Référencé par CapteurSolaire(), detecter(), getEtatLDR2(), et reinitialiser().

10.9.4.4 int CapteurSolaire : :etatLDR3 [private]

TODO

Référencé par CapteurSolaire(), detecter(), getEtatLDR3(), et reinitialiser().

10.9.4.5 int CapteurSolaire : :etatLDR4 [private]

TODO

Référencé par CapteurSolaire(), detecter(), getEtatLDR4(), et reinitialiser().

La documentation de cette classe a été générée à partir des fichiers suivants :– capteurSolaire.h– capteurSolaire.cpp

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 65: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.10 Référence de la structure configurationProtectionVent 61

10.10 Reference de la structure configurationProtectionVent

Regroupe les différentes informations relatives la protection contre le vent.

#include <protectionVent.h>

La documentation de cette structure a été générée à partir du fichier suivant :– protectionVent.h

10.11 Reference de la structure ConfigurationProtectionVent

#include <protectionVent.h>

Attributs publics

– int etat– int vitesseMax– int periode

10.11.1 Documentation des donnees membres

10.11.1.1 int ConfigurationProtectionVent : :etat

TODO

10.11.1.2 int ConfigurationProtectionVent : :periode

TODO

10.11.1.3 int ConfigurationProtectionVent : :vitesseMax

TODO

La documentation de cette structure a été générée à partir du fichier suivant :– protectionVent.h

10.12 Reference de la classe CV7

Gestion de la récupération des phrases, découpe et stockage à partir de la station météo.

#include <CV7.h>

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 66: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.12 Référence de la classe CV7 62

Graphe de collaboration de CV7 :

CV7

- port- phrases

+ CV7()+ ~CV7()+ recupererPhrase()+ recevoirPhrases()+ decouperTrames()+ setMap()

Port

- port

+ Port()+ Port()+ ~Port()+ ouvrir()+ transmettre()+ recevoir()+ recevoir()+ lire()+ getNbOctetsDisponibles()+ estOuvert()- onReadyRead()

port

Fonctions membres publiques

– CV7 ()Constructeur par défaut.

– ∼CV7 ()Destructeur.

– QString recupererPhrase (QString type)Prends en paramètre le type d’une trame et retourne la trame correspondant au type en la cherchant dans la map.

– bool recevoirPhrases ()Reçoit les données depuis le port, fait une première découpe sous forme de trames stockées dans un QVector et envoi le QVector à laméthode decouperTrames.

– bool decouperTrames (QVector< QString > trames)Reçoit un QVector de trames, découpe le type et soit les envoie à la méthode setMap soit passe.

– void setMap (QString type, QString phrase)Reçoit en paramètre un type et une phrase, et stock dans la map la phrase avec comme clef le type.

Attributs prives

– Port ∗ port– QMap< QString, QString > phrases

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 67: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.12 Référence de la classe CV7 63

10.12.1 Description detaillee

Auteur

Nicolas Detilleux <[email protected]>

10.12.2 Documentation des constructeurs et destructeur

10.12.2.1 CV7 : :CV7 ( )

Références Port : :estOuvert(), port, et PORT_CV7.

{#ifdef DEBUG_STATIONMETEO

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

port = new Port(QString(PORT_CV7), 4800);#ifdef DEBUG_STATIONMETEO

qDebug() << Q_FUNC_INFO << "ouverture port cv7 :" << port->estOuvert();#endif}

10.12.2.2 CV7 : :∼CV7 ( )

Références port.

{delete port;

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;

#endif}

10.12.3 Documentation des fonctions membres

10.12.3.1 CV7 : :decouperTrames ( QVector< QString > trames )

Parametrestrames

Renvoie

bool

Références setMap().

Référencé par recevoirPhrases().

{QString phrase;QString type;int i, j;bool etat = false;

for (i = 0 ; i < trames.size() ; i++){

phrase = trames[i];//type = trames[i].mid(3,3);for (j = 3 ; j < 6 ; j++){

type += phrase.at(j);}

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << __LINE__ << type;

#endifif ((type == "MWV") || (type == "XDR")){

// on peut retirer le "\r\n"phrase.remove(phrase.size()-2, 2);setMap(type, phrase);etat = true; // une trame au moins a été ajoutée

}type = "";

}return etat;

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 68: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.12 Référence de la classe CV7 64

10.12.3.2 CV7 : :recevoirPhrases ( )

Renvoie

bool

Références decouperTrames(), port, et Port : :recevoir().

Référencé par StationMeteo : :acquerir().

{QString phrase;unsigned int taillePhrase = 0;QVector<QString> trames;QString trame;int n = 0;bool etat = false; // true si au moins une phrase a été reçue

n = port->recevoir(phrase);#ifdef DEBUG_STATIONMETEO

qDebug() << Q_FUNC_INFO << __LINE__ << phrase << n;#endif

if(n > 0){

taillePhrase = phrase.size();unsigned int i = 0;bool debutTrame = false, finTrame = false;

for (i = 0 ; i < taillePhrase ; i++){

if(phrase.at(i) == ’$’){

debutTrame = true;}if(debutTrame){

trame += phrase.at(i);

if(phrase.at(i) == ’\n’){

finTrame = true;}

}if(finTrame){

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << __LINE__ << trame << i;

#endiftrames.push_back(trame);trame = "";debutTrame = false;finTrame = false;

}}etat = decouperTrames(trames);

}return etat;

}

10.12.3.3 CV7 : :recupererPhrase ( QString type )

Parametrestype QString type d’une trame (MVW ou XDR)

Renvoie

QString la dernière trame trouvée dans la map pour le type demandé

Références phrases.

Référencé par StationMeteo : :lireTemperature(), StationMeteo : :lireVent(), et StationMeteo : :lireVitesse().

{return phrases[type];//accès type dans map

}

10.12.3.4 CV7 : :setMap ( QString type, QString phrase )

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 69: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.13 Référence de la classe Horloge 65

Parametrestype

phrase

Références phrases.

Référencé par decouperTrames().

{phrases[type] = phrase;

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << __LINE__ << phrases;

#endif}

10.12.4 Documentation des donnees membres

10.12.4.1 QMap<QString,QString> CV7 : :phrases [private]

la map qui contient les dernières phrases NMEA 0183 reçues

Référencé par recupererPhrase(), et setMap().

10.12.4.2 Port∗ CV7 : :port [private]

la relation vers la classe Port

Référencé par CV7(), recevoirPhrases(), et ∼CV7().

La documentation de cette classe a été générée à partir des fichiers suivants :– CV7.h– CV7.cpp

10.13 Reference de la classe Horloge

#include <horloge.h>

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 70: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.13 Référence de la classe Horloge 66

Graphe de collaboration de Horloge :

Horloge

- mutex- _tic- _top- simulation- programmation- baseDeTemps- debutSimulation- instance- nbAcces

+ simuler()+ estEnSimulation()+ getBaseDeTemps()+ demarrer()+ arreter()+ programmer()+ getDateEtHeureActuelle()+ getDateActuelle()+ getHeureActuelle()+ getDateEtHeureActuelle()and 5 more...+ getInstance()+ detruireInstance()+ getDateEtHeure()+ getDate()+ getHeure()+ getNbMsec()+ getNbJours()+ getNbJours()+ getNbMinutes()+ getNbMinutes()- Horloge()- ~Horloge()- generer()- tic()- top()

instance

Signaux

– void fini (QString)– void fini (QDateTime)– void tic (QString)– void tic (QDateTime)

Fonctions membres publiques

– void simuler (bool etat=true, int baseDeTemps=BASE_DE_TEMPS)– bool estEnSimulation ()– int getBaseDeTemps ()

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 71: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.13 Référence de la classe Horloge 67

– void demarrer (int periode=1)– void arreter ()– void programmer (int echeance)– QDateTime getDateEtHeureActuelle ()– QDate getDateActuelle ()– QTime getHeureActuelle ()– QString getDateEtHeureActuelle (QString format)– QString getDateActuelle (QString format)– QString getHeureActuelle (QString format)– int getNbJours (QDateTime dateEtHeure)– int getNbJours (QDate date)– int getNbMinutes (QDateTime dateEtHeure)– int getNbMinutes (QTime heure)

Fonctions membres publiques statiques

– static Horloge ∗ getInstance (QObject ∗parent=0)– static void detruireInstance ()– static QDateTime getDateEtHeure (QString dateEtHeure, QString format)– static QDate getDate (QString date, QString format)– static QTime getHeure (QString heure, QString format)– static int getNbMsec ()– static int getNbJours (QDateTime dateEtHeure1, QDateTime dateEtHeure2)– static int getNbJours (QDate date1, QDate date2)– static int getNbMinutes (QDateTime dateEtHeure1, QDateTime dateEtHeure2)– static int getNbMinutes (QTime heure1, QTime heure2)

Connecteurs prives

– void tic ()– void top ()

Fonctions membres privees

– Horloge (QObject ∗parent)– virtual ∼Horloge ()– QDateTime generer ()

Attributs prives

– QMutex mutex– QTimer ∗ _tic– QTimer ∗ _top– bool simulation– bool programmation– int baseDeTemps– QDateTime debutSimulation

Attributs prives statiques

– static Horloge ∗ instance = NULL– static int nbAcces = 0

10.13.1 Documentation des constructeurs et destructeur

10.13.1.1 Horloge : :Horloge ( QObject ∗ parent ) [private]

Références _tic, et _top.

Référencé par getInstance().

: QObject(parent), _tic(NULL), _top(NULL),simulation(false), programmation(false), baseDeTemps(BASE_DE_TEMPS)

{_tic = new QTimer(this);_top = new QTimer(this);

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 72: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.13 Référence de la classe Horloge 68

10.13.1.2 Horloge : :∼Horloge ( ) [private, virtual]

{}

10.13.2 Documentation des fonctions membres

10.13.2.1 void Horloge : :arreter ( )

Références _tic, mutex, et tic().

{QMutexLocker verrou(&mutex);if(_tic != NULL){

if(_tic->isActive()){

disconnect(_tic, SIGNAL(timeout()), this, SLOT(tic()));_tic->stop();

}}else

return;}

10.13.2.2 void Horloge : :demarrer ( int periode = 1 )

Références _tic, baseDeTemps, mutex, simulation, et tic().

{QMutexLocker verrou(&mutex);if(_tic != NULL){

if(!_tic->isActive())connect(_tic, SIGNAL(timeout()), this, SLOT(tic()));

}else

return;

if(this->simulation == true){

#ifdef DEBUG_HORLOGEqDebug() << QString::fromUtf8("<Horloge::demarrer()> période tic : %1millisecondes").arg(QString::number((periode*1000)/baseDeTemps));#endifif(_tic->isActive())

_tic->setInterval((periode*1000)/baseDeTemps);else

_tic->start((periode*1000)/baseDeTemps);}else{

#ifdef DEBUG_HORLOGEqDebug() << QString::fromUtf8("<Horloge::demarrer()> période tic : %1millisecondes").arg(QString::number(periode*1000));#endifif(_tic->isActive())

_tic->setInterval(periode*1000);else

_tic->start(periode*1000);}

}

10.13.2.3 void Horloge : :detruireInstance ( ) [static]

Références instance, et nbAcces.

Référencé par ProtectionVent : :∼ProtectionVent().

{// instance ?if(instance != NULL){

nbAcces--;#ifdef DEBUG_HORLOGE_1qDebug() << "<Horloge::detruireInstance()> nbAcces restants = " <<

nbAcces;#endif// dernier ?if(nbAcces == 0)

delete instance;}

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 73: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.13 Référence de la classe Horloge 69

10.13.2.4 bool Horloge : :estEnSimulation ( )

Références mutex, et simulation.

Référencé par getDateActuelle(), getDateEtHeureActuelle(), getHeureActuelle(), getNbJours(), et getNbMinutes().

{QMutexLocker verrou(&mutex);return this->simulation;

}

10.13.2.5 void Horloge : :fini ( QString ) [signal]

Référencé par top().

10.13.2.6 void Horloge : :fini ( QDateTime ) [signal]

10.13.2.7 QDateTime Horloge : :generer ( ) [private]

Références baseDeTemps, et debutSimulation.

Référencé par getDateActuelle(), getDateEtHeureActuelle(), getHeureActuelle(), getNbJours(), et getNbMinutes().

{QDateTime maintenant = QDateTime::currentDateTime();int intervalle = debutSimulation.msecsTo(maintenant);intervalle *= baseDeTemps;QDateTime dateHeureActuelleSimulee;dateHeureActuelleSimulee = debutSimulation.addMSecs(intervalle);

return dateHeureActuelleSimulee;}

10.13.2.8 int Horloge : :getBaseDeTemps ( )

Références baseDeTemps, mutex, et simulation.

{QMutexLocker verrou(&mutex);if(this->simulation == true){

return this->baseDeTemps;}

return 0;}

10.13.2.9 QDate Horloge : :getDate ( QString date, QString format ) [static]

{QDate qDate = QDate::fromString(date, format);

return qDate;}

10.13.2.10 QDate Horloge : :getDateActuelle ( )

Références estEnSimulation(), et generer().

{if(estEnSimulation()){

QDateTime dateHeureActuelleSimulee = generer();QDate dateActuelleSimulee = dateHeureActuelleSimulee.date();

return dateActuelleSimulee;}else{

return QDate::currentDate();}

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 74: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.13 Référence de la classe Horloge 70

10.13.2.11 QString Horloge : :getDateActuelle ( QString format )

Références estEnSimulation(), et generer().

{QString dateActuelle;

if(estEnSimulation()){

QDateTime dateHeureActuelleSimulee = generer();QDate dateActuelleSimulee = dateHeureActuelleSimulee.date();dateActuelle = dateActuelleSimulee.toString(format);

}else{

QDate maintenant = QDate::currentDate();dateActuelle = maintenant.toString(format);

}

return dateActuelle;}

10.13.2.12 QDateTime Horloge : :getDateEtHeure ( QString dateEtHeure, QString format ) [static]

{QDateTime qDateEtHeure = QDateTime::fromString(dateEtHeure, format);

return qDateEtHeure;}

10.13.2.13 QDateTime Horloge : :getDateEtHeureActuelle ( )

Références estEnSimulation(), et generer().

Référencé par tic(), et top().

{if(estEnSimulation()){

QDateTime dateHeureActuelleSimulee = generer();

return dateHeureActuelleSimulee;}else{

return QDateTime::currentDateTime();}

}

10.13.2.14 QString Horloge : :getDateEtHeureActuelle ( QString format )

Références estEnSimulation(), et generer().

{QString dateEtHeureActuelle;

if(estEnSimulation()){

QDateTime dateHeureActuelleSimulee = generer();dateEtHeureActuelle = dateHeureActuelleSimulee.toString(format);

}else{

QDateTime maintenant = QDateTime::currentDateTime();dateEtHeureActuelle = maintenant.toString(format);

}

return dateEtHeureActuelle;}

10.13.2.15 QTime Horloge : :getHeure ( QString heure, QString format ) [static]

{QTime qHeure = QTime::fromString(heure, format);

return qHeure;}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 75: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.13 Référence de la classe Horloge 71

10.13.2.16 QTime Horloge : :getHeureActuelle ( )

Références estEnSimulation(), et generer().

{if(estEnSimulation()){

QDateTime dateHeureActuelleSimulee = generer();QTime heureActuelleSimulee = dateHeureActuelleSimulee.time();

return heureActuelleSimulee;}else{

return QTime::currentTime();}

}

10.13.2.17 QString Horloge : :getHeureActuelle ( QString format )

Références estEnSimulation(), et generer().

{QString heureActuelle;

if(estEnSimulation()){

QDateTime dateHeureActuelleSimulee = generer();QTime heureActuelleSimulee = dateHeureActuelleSimulee.time();heureActuelle = heureActuelleSimulee.toString(format);

}else{

QTime maintenant = QTime::currentTime();heureActuelle = maintenant.toString(format);

}

return heureActuelle;}

10.13.2.18 Horloge ∗ Horloge : :getInstance ( QObject ∗ parent = 0 ) [static]

Références Horloge(), instance, et nbAcces.

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

{if(instance == NULL)

instance = new Horloge(parent);

nbAcces++;#ifdef DEBUG_HORLOGE_1qDebug() << "<Horloge::getInstance()> nbAcces = " << nbAcces;#endif

return instance;}

10.13.2.19 int Horloge : :getNbJours ( QDateTime dateEtHeure )

Références estEnSimulation(), et generer().

{int nbJours = 0;

if(estEnSimulation()){

QDateTime dateHeureActuelleSimulee = generer();//nbJours = dateEtHeure.daysTo(dateHeureActuelleSimulee);nbJours = dateHeureActuelleSimulee.daysTo(dateEtHeure);

}else{

if(dateEtHeure.isValid()){

QDateTime maintenant = QDateTime::currentDateTime();//nbJours = dateEtHeure.daysTo(maintenant);nbJours = maintenant.daysTo(dateEtHeure);

}}

return nbJours;}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 76: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.13 Référence de la classe Horloge 72

10.13.2.20 int Horloge : :getNbJours ( QDate date )

Références estEnSimulation(), et generer().

{int nbJours = 0;

if(estEnSimulation()){

QDateTime dateHeureActuelleSimulee = generer();QDate dateActuelleSimulee = dateHeureActuelleSimulee.date();//nbJours = date.daysTo(dateActuelleSimulee);nbJours = dateActuelleSimulee.daysTo(date);

}else{

if(date.isValid()){

QDate maintenant = QDate::currentDate();//nbJours = date.daysTo(maintenant);nbJours = maintenant.daysTo(date);

}}

return nbJours;}

10.13.2.21 int Horloge : :getNbJours ( QDateTime dateEtHeure1, QDateTime dateEtHeure2 ) [static]

{int nbJours = 0;

if(dateEtHeure1.isValid() && dateEtHeure2.isValid()){

nbJours = dateEtHeure1.daysTo(dateEtHeure2);}

return nbJours;}

10.13.2.22 int Horloge : :getNbJours ( QDate date1, QDate date2 ) [static]

{int nbJours = 0;

if(date1.isValid() && date2.isValid()){

nbJours = date1.daysTo(date2);}

return nbJours;}

10.13.2.23 int Horloge : :getNbMinutes ( QDateTime dateEtHeure )

Références estEnSimulation(), et generer().

{int nbMinutes = 0;

if(estEnSimulation()){

QDateTime dateHeureActuelleSimulee = generer();nbMinutes = dateHeureActuelleSimulee.secsTo(dateEtHeure)/60;

}else{

if(dateEtHeure.isValid()){

QDateTime maintenant = QDateTime::currentDateTime();nbMinutes = maintenant.secsTo(dateEtHeure)/60;

}}

return nbMinutes;}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 77: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.13 Référence de la classe Horloge 73

10.13.2.24 int Horloge : :getNbMinutes ( QTime heure )

Références estEnSimulation(), et generer().

{int nbMinutes = 0;

if(estEnSimulation()){

QDateTime dateHeureActuelleSimulee = generer();QTime dateActuelleSimulee = dateHeureActuelleSimulee.time();nbMinutes = dateActuelleSimulee.secsTo(heure)/60;

}else{

if(heure.isValid()){

QTime maintenant = QTime::currentTime();nbMinutes = maintenant.secsTo(heure)/60;

}}

return nbMinutes;}

10.13.2.25 int Horloge : :getNbMinutes ( QDateTime dateEtHeure1, QDateTime dateEtHeure2 ) [static]

{int nbMinutes = 0;

if(dateEtHeure1.isValid() && dateEtHeure2.isValid()){

nbMinutes = dateEtHeure1.secsTo(dateEtHeure2)/60;}

return nbMinutes;}

10.13.2.26 int Horloge : :getNbMinutes ( QTime heure1, QTime heure2 ) [static]

{int nbMinutes = 0;

if(heure1.isValid() && heure2.isValid()){

nbMinutes = heure1.secsTo(heure2)/60;}

return nbMinutes;}

10.13.2.27 int Horloge : :getNbMsec ( ) [static]

{return QTime::currentTime().msec();

}

10.13.2.28 void Horloge : :programmer ( int echeance )

Références _top, baseDeTemps, mutex, programmation, simulation, et top().

Référencé par ProtectionVent : :arreterProtection(), et ProtectionVent : :surveillerVent().

{QMutexLocker verrou(&mutex);if(_top != NULL && programmation == false){

connect(_top, SIGNAL(timeout()), this, SLOT(top()));_top->setSingleShot(true);programmation = true;

}else

return;

if(this->simulation == true){

#ifdef DEBUG_HORLOGEqDebug() << QString::fromUtf8("<Horloge::programmer()> échéanceprochain top : %1 millisecondes").arg(QString::number((echeance*1000)/baseDeTemps));#endif_top->start((echeance*1000)/baseDeTemps);

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 78: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.13 Référence de la classe Horloge 74

}else{

#ifdef DEBUG_HORLOGEqDebug() << QString::fromUtf8("<Horloge::programmer()> échéanceprochain top : %1 millisecondes").arg(QString::number(echeance*1000));#endif_top->start(echeance*1000);

}}

10.13.2.29 void Horloge : :simuler ( bool etat = true, int baseDeTemps = BASE_DE_TEMPS )

Références baseDeTemps, debutSimulation, mutex, et simulation.

{QMutexLocker verrou(&mutex);if(this->simulation != etat){

this->simulation = etat;this->baseDeTemps = baseDeTemps;debutSimulation = QDateTime::currentDateTime();#ifdef DEBUG_HORLOGEqDebug() << QString::fromUtf8("<Horloge::simuler()> démarragesimulation : 1s => %1s").arg(QString::number(baseDeTemps)) << debutSimulation;#endif

}}

10.13.2.30 void Horloge : :tic ( QString ) [signal]

10.13.2.31 void Horloge : :tic ( QDateTime ) [signal]

10.13.2.32 void Horloge : :tic ( ) [private, slot]

Références getDateEtHeureActuelle().

Référencé par arreter(), et demarrer().

{QDateTime dtDateEtHeureActuelle = getDateEtHeureActuelle();QString sDdateEtHeureActuelle = getDateEtHeureActuelle("yyyy-MM-dd hh:mm:ss

");// signale le ticemit tic(dtDateEtHeureActuelle);emit tic(sDdateEtHeureActuelle);

#ifdef DEBUG_HORLOGEqDebug() << QString::fromUtf8("tic -> %1").arg(sDdateEtHeureActuelle);#endif

}

10.13.2.33 void Horloge : :top ( ) [private, slot]

Références _top, fini(), getDateEtHeureActuelle(), mutex, et programmation.

Référencé par programmer().

{QDateTime dtDateEtHeureActuelle = getDateEtHeureActuelle();QString sDdateEtHeureActuelle = getDateEtHeureActuelle("yyyy-MM-dd hh:mm:ss

");// signale l’expirationemit fini(dtDateEtHeureActuelle);emit fini(sDdateEtHeureActuelle);

// réinitialise pour un autre top (single shot)disconnect(_top, SIGNAL(timeout()), this, SLOT(top()));QMutexLocker verrou(&mutex);programmation = false;

#ifdef DEBUG_HORLOGEqDebug() << QString::fromUtf8("top -> %1").arg(sDdateEtHeureActuelle);#endif

}

10.13.3 Documentation des donnees membres

10.13.3.1 QTimer∗ Horloge : :_tic [private]

Référencé par arreter(), demarrer(), et Horloge().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 79: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 75

10.13.3.2 QTimer∗ Horloge : :_top [private]

Référencé par Horloge(), programmer(), et top().

10.13.3.3 int Horloge : :baseDeTemps [private]

Référencé par demarrer(), generer(), getBaseDeTemps(), programmer(), et simuler().

10.13.3.4 QDateTime Horloge : :debutSimulation [private]

Référencé par generer(), et simuler().

10.13.3.5 Horloge ∗ Horloge : :instance = NULL [static, private]

Référencé par detruireInstance(), et getInstance().

10.13.3.6 QMutex Horloge : :mutex [private]

Référencé par arreter(), demarrer(), estEnSimulation(), getBaseDeTemps(), programmer(), simuler(), et top().

10.13.3.7 int Horloge : :nbAcces = 0 [static, private]

Référencé par detruireInstance(), et getInstance().

10.13.3.8 bool Horloge : :programmation [private]

Référencé par programmer(), et top().

10.13.3.9 bool Horloge : :simulation [private]

Référencé par demarrer(), estEnSimulation(), getBaseDeTemps(), programmer(), et simuler().

La documentation de cette classe a été générée à partir des fichiers suivants :– horloge.h– horloge.cpp

10.14 Reference de la classe IhmTournesol

Gestion de l’interface graphique.

#include <ihmTournesol.h>

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 80: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 76

Graphe de collaboration de IhmTournesol :

IhmTournesol

- ihm- timer- acquisitionRegulateur- acquisitionSuiveur- asservissementSuiveur- acquisitionMeteo- protectionVent- threadAcquisitionRegulateur- threadAcquisitionSuiveur- threadAsservissementSuiveur- threadAcquisitionMeteo- threadProtectionVent

+ IhmTournesol()+ ~IhmTournesol()+ afficherEtatsLDR()+ afficherInformationsRegulateur()+ afficherJournalisationRegulateur()+ afficherAlarmeRegulateur()+ afficherInformationsStationMeteo()+ afficherInformationsSuiveur()+ afficherBuzzer()+ afficherTypeBatteries()+ afficherModeCharge()+ deplacerPositionMaintenance()and 13 more...- initialiserQwt()- initialiserTypeBatteries()- initialiserModesDeCharges()

ProtectionVent

- baseDeDonnees- horloge- fini- protection- protectionActivee- attente- periode- vitesse- vitesseMax- mutex- waitCondition- configurationProtectionVent

+ ProtectionVent()+ ~ProtectionVent()+ lireModeDeFonctionnement()+ acquerir()+ surveillerVent()+ enregisterAlerte()+ attendrePeriode()+ main()+ finir()+ terminer()+ arreterProtection()+ activerProtectionVent()+ editerVitesseMaxProtectionVent()+ editerFrequenceProtectionVent()- msleep()- annuler()

protectionVent

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

baseDeDonnees

baseDeDonnees

Regulateur

- port- informationsRegulateur- journalisationRegulateur- alarmesRegulateur- parametresRegulateur- bdd- mutex

+ Regulateur()+ ~Regulateur()+ acquerir()+ acquerirInformations()+ acquerirHistorique()+ decoderTrameInformations()+ decoderTrameHistorique()+ decoderAlarmes()+ decoderMenuState()+ envoyerMenuState()+ decoderMenuState2()+ envoyerMenuState2()+ changerEtatBuzzer()+ changerTypeBatterie()+ changerModeCharge()+ changerEtatCadenas()+ changerModeNuit()

bdd

StationMeteo

- cv7- capteurLumineux- _vitesse- _direction- _temperature- vitesse- direction- temperature- informationStationMeteo- bdd

+ StationMeteo()+ ~StationMeteo()+ acquerir()+ lireLuminosite()+ lireVent()+ lireVitesse()+ lireVitesse()+ lireDirection()+ lireTemperature()+ enregistrerMesures()

bdd

AcquisitionSuiveur

+ suiveur- fini- modeAuto- periode- mutex- waitCondition- bdd

+ AcquisitionSuiveur()+ ~AcquisitionSuiveur()+ main()+ finir()+ terminer()+ deplacerPanneauOuest()+ deplacerPanneauEst()+ deplacerPanneauNord()+ deplacerPanneauSud()- msleep()- annuler()- lirePeriode()- enregistrerEtatSuiveur()

bdd

SuiveurSolaire

- informationsSuiveur- port- mutexPort- protectionVent- bdd- date

+ SuiveurSolaire()+ ~SuiveurSolaire()+ acquerir()+ getEtat()+ deplacerPanneauGauche()+ deplacerPanneauDroite()+ deplacerPanneauHaut()+ deplacerPanneauBas()+ deplacerManuel()+ deplacerAngleHoraire()+ deplacerAngleElevation()+ deplacer()+ proteger()+ enregistrerInformationsBdd()+ gererModeAutoProgramme()+ stopperCommande()- decoderTrame()- reinitialiserInformationsSuiveur()- calculerChecksum()

bdd

AsservissementSuiveur

- capteurSolaire- fini- mutex- waitCondition- etatLDR1- etatLDR2- etatLDR3- etatLDR4- bdd

+ AsservissementSuiveur()+ ~AsservissementSuiveur()+ main()+ finir()+ terminer()- msleep()- annuler()- suivreSoleil()- lireEtatSuiveur()

bdd

CapteurSolaire

- etatLDR1- etatLDR2- etatLDR3- etatLDR4- bdd

+ CapteurSolaire()+ ~CapteurSolaire()+ acquerir()+ getEtatLDR1()+ getEtatLDR2()+ getEtatLDR3()+ getEtatLDR4()- trier()- mediane()- reinitialiser()- lireTension()- detecter()

bdd

ConfigurationProtectionVent

+ etat+ vitesseMax+ periode

configurationProtectionVent

Horloge

- mutex- _tic- _top- simulation- programmation- baseDeTemps- debutSimulation- instance- nbAcces

+ simuler()+ estEnSimulation()+ getBaseDeTemps()+ demarrer()+ arreter()+ programmer()+ getDateEtHeureActuelle()+ getDateActuelle()+ getHeureActuelle()+ getDateEtHeureActuelle()and 5 more...+ getInstance()+ detruireInstance()+ getDateEtHeure()+ getDate()+ getHeure()+ getNbMsec()+ getNbJours()+ getNbJours()+ getNbMinutes()+ getNbMinutes()- Horloge()- ~Horloge()- generer()- tic()- top()

horloge

instance

AcquisitionRegulateur

- regulateur- fini- mutex- waitCondition- periode

+ AcquisitionRegulateur()+ ~AcquisitionRegulateur()+ main()+ finir()+ terminer()- msleep()- annuler()- lireConfiguration()- attendrePeriode()

acquisitionRegulateur

regulateur

InformationsRegulateur

+ niveauCharge+ tensionBatterie+ surplusEnergie+ courantPhotovoltaique+ courantCharge+ temperature+ modeChargeBatterie+ onOff

informationsRegulateur

JournalisationRegulateur

+ ampereHeurePVExcedant+ ampereHeurePvConsomme+ niveauChargeMatin+ niveauChargeSoir+ chargeAmpaireHeure+ nbSemaines+ BuzzerEtat+ typeBatterie+ mode+ modeLock+ serialInterface+ modenuit

journalisationRegulateur

AlarmesRegulateur

+ alarmeBatterie+ alarmeChargeComplete+ alarmeDebranchementBatterie+ alarmeSurtensionPv+ alarmeSurtensionCharge+ alarmeSurvoltageBatterie+ alarmeSurchauffePv+ alarmeSurchauffeCharge+ trameRecu

alarmesRegulateur

ParametresRegulateur

+ modeNuit+ buzzerOnOff+ typeBatterie+ modeCoupureChargeFaible+ modeLock+ serialInterface

parametresRegulateur

Port

- port

+ Port()+ Port()+ ~Port()+ ouvrir()+ transmettre()+ recevoir()+ recevoir()+ lire()+ getNbOctetsDisponibles()+ estOuvert()- onReadyRead()

port

CV7

- port- phrases

+ CV7()+ ~CV7()+ recupererPhrase()+ recevoirPhrases()+ decouperTrames()+ setMap()

port

port

AcquisitionMeteo

- fini- periode- mutex- waitCondition- stationMeteo

+ AcquisitionMeteo()+ ~AcquisitionMeteo()+ main()+ finir()+ terminer()- msleep()- annuler()- lireConfiguration()- attendrePeriode()

acquisitionMeteo

stationMeteo

cv7

CapteurLuminosite

- luminosite

+ CapteurLuminosite()+ ~CapteurLuminosite()+ lire()

capteurLumineux

Mesure

+ valeur+ unite+ horodatage+ valide

_temperature_direction_vitesse

InformationsStationMeteo

+ vitesseVent+ directionVent+ luminosite+ temperature+ valide

directionVentluminosite

vitesseVenttemperature

informationStationMeteo

acquisitionSuiveur

suiveur

InformationsSuiveur

+ heure+ minute+ seconde+ jour+ mois+ angleHoraireA+ positionHoraireA+ destinationA+ iMoteurA+ angleElevationB

and 12 more...

informationsSuiveur

asservissementSuiveur

capteurSolaire

Connecteurs publics

– void afficherEtatsLDR (int etatLDR1, int etatLDR2, int etatLDR3, int etatLDR4)slot qui affiche l’état de la détection du capteur solaire

– void afficherInformationsRegulateur (InformationsRegulateur informationsRegulateur)slot qui affiche dans l’ihm les valeurs de la structure informationsRegulateur reçu

– void afficherJournalisationRegulateur (JournalisationRegulateur journalisationRegulateur)slot qui affiche dans l’ihm les valeurs de la structure journalisationRegulateur reçu

– void afficherAlarmeRegulateur (AlarmesRegulateur alarmesRegulateur)slot qui affiche dans l’ihm les valeurs de la structure alarmesRegulateur reçu

– void afficherInformationsStationMeteo (InformationsStationMeteo informationsStationMeteo)slot qui affiche les informations météos

– void afficherInformationsSuiveur (InformationsSuiveur informationsSuiveur)slot qui affiche les informations du suiveur solaire dans l’ihm

– void afficherBuzzer (JournalisationRegulateur journalisationRegulateur)Affiche l’état du buzzer.

– void afficherTypeBatteries (JournalisationRegulateur journalisationRegulateur)Affiche le type des batteries.

– void afficherModeCharge (JournalisationRegulateur journalisationRegulateur)Affiche les modes de charge.

– void deplacerPositionMaintenance ()– void deplacerPositionVent ()– void deplacerPositionPluie ()– void deplacerAzimut ()– void deplacerElevation ()– void activerProtectionVent (bool etat)– void alerterProtectionVent (bool protectionActivee)– void afficherCadenas (JournalisationRegulateur journalisationRegulateur)

Affiche l’état du cadenas.– void afficherModeNuit (JournalisationRegulateur journalisationRegulateur)

Affiche le mode pour la nuit.– void afficherEtatSuiveur (bool etat)

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 81: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 77

– void editerVitesseMaxProtectionVent ()– void editerFrequenceProtectionVent ()– void deplacer ()– void afficherDateHeure ()– void verfierEtatMode ()

Signaux

– void deplacer (double angleHoraire, double angleElevation)– void deplacerAngleAzimut (double)– void deplacerAngleElevation (double)– void nouvelEtatProtectionVent (bool etat)– void editerVitesseMaxProtectionVent (double vitesse)– void editerFrequenceProtectionVent (int frequence)– void etatModeProgramme (bool modeAuto)

Fonctions membres publiques

– IhmTournesol (QWidget ∗parent=0)constructeur

– ∼IhmTournesol ()destructeur

Fonctions membres privees

– void initialiserQwt ()initialise les widgets Qwt (thermomètre, ...)

– void initialiserTypeBatteries ()initialise les types de batteries

– void initialiserModesDeCharges ()initialise les modes de charges

Attributs prives

– Ui : :IHM ∗ ihm– QTimer ∗ timer– AcquisitionRegulateur ∗ acquisitionRegulateur– AcquisitionSuiveur ∗ acquisitionSuiveur– AsservissementSuiveur ∗ asservissementSuiveur– AcquisitionMeteo ∗ acquisitionMeteo– ProtectionVent ∗ protectionVent– QThread ∗ threadAcquisitionRegulateur– QThread ∗ threadAcquisitionSuiveur– QThread ∗ threadAsservissementSuiveur– QThread ∗ threadAcquisitionMeteo– QThread ∗ threadProtectionVent

10.14.1 Description detaillee

Auteur

Nicolas Detilleux <[email protected]>Rémy Gonzalves <[email protected]>Grégory Moll <[email protected]>Adrien Thiel <[email protected]>

10.14.2 Documentation des constructeurs et destructeur

10.14.2.1 IhmTournesol : :IhmTournesol ( QWidget ∗ parent = 0 ) [explicit]

Parametresparent

<TODO

<TODO

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 82: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 78

Références acquisitionMeteo, acquisitionRegulateur, acquisitionSuiveur, activerProtectionVent(), afficherAlarmeRegulateur(),afficherBuzzer(), afficherCadenas(), afficherDateHeure(), afficherEtatsLDR(), afficherEtatSuiveur(), afficherInformations-Regulateur(), afficherInformationsStationMeteo(), afficherInformationsSuiveur(), afficherJournalisationRegulateur(), afficherMode-Charge(), afficherModeNuit(), afficherTypeBatteries(), AlarmesRegulateur : :alarmeBatterie, AlarmesRegulateur : :alarmeCharge-Complete, AlarmesRegulateur : :alarmeDebranchementBatterie, AlarmesRegulateur : :alarmeSurchauffeCharge, Alarmes-Regulateur : :alarmeSurchauffePv, AlarmesRegulateur : :alarmeSurtensionCharge, AlarmesRegulateur : :alarmeSurtensionPv,AlarmesRegulateur : :alarmeSurvoltageBatterie, alerterProtectionVent(), asservissementSuiveur, JournalisationRegulateur : :-BuzzerEtat, deplacer(), deplacerAngleAzimut(), deplacerAngleElevation(), deplacerPositionMaintenance(), deplacerPosition-Pluie(), deplacerPositionVent(), editerFrequenceProtectionVent(), editerVitesseMaxProtectionVent(), ihm, initialiserModes-DeCharges(), initialiserQwt(), initialiserTypeBatteries(), main(), JournalisationRegulateur : :mode, JournalisationRegulateur-: :modeLock, JournalisationRegulateur : :modenuit, nouvelEtatProtectionVent(), protectionVent, threadAcquisitionMeteo,threadAcquisitionRegulateur, threadAcquisitionSuiveur, threadAsservissementSuiveur, threadProtectionVent, timer, Alarmes-Regulateur : :trameRecu, et JournalisationRegulateur : :typeBatterie.

: QMainWindow(parent), ihm(newUi::IHM)

{ihm->setupUi(this);

#ifdef R_PIshowFullScreen();

#endif//setFixedSize(qApp->desktop()->size());//setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint);

//qDebug() << qApp->desktop()->size();

initialiserQwt();

// initialisation ihm pour le régulateurAlarmesRegulateur alarmesRegulateur;alarmesRegulateur.alarmeBatterie = false;alarmesRegulateur.alarmeChargeComplete = false;alarmesRegulateur.alarmeDebranchementBatterie = false;alarmesRegulateur.alarmeSurtensionPv = false;alarmesRegulateur.alarmeSurtensionCharge = false;alarmesRegulateur.alarmeSurvoltageBatterie = false;alarmesRegulateur.alarmeSurchauffePv = false;alarmesRegulateur.alarmeSurchauffeCharge = false;alarmesRegulateur.trameRecu = false;afficherAlarmeRegulateur(alarmesRegulateur);JournalisationRegulateur journalisationRegulateur;journalisationRegulateur.BuzzerEtat = false;afficherBuzzer(journalisationRegulateur);initialiserTypeBatteries();journalisationRegulateur.typeBatterie = 0;afficherTypeBatteries(journalisationRegulateur);initialiserModesDeCharges();journalisationRegulateur.mode = 0;afficherModeCharge(journalisationRegulateur);journalisationRegulateur.modeLock = false;afficherCadenas(journalisationRegulateur);journalisationRegulateur.modenuit = 0;afficherModeNuit(journalisationRegulateur);afficherEtatSuiveur(0);

acquisitionRegulateur = new AcquisitionRegulateur;threadAcquisitionRegulateur = new QThread;acquisitionSuiveur = new AcquisitionSuiveur;threadAcquisitionSuiveur = new QThread;asservissementSuiveur = new AsservissementSuiveur;threadAsservissementSuiveur = new QThread;acquisitionMeteo = new AcquisitionMeteo;threadAcquisitionMeteo = new QThread;protectionVent = new ProtectionVent;threadProtectionVent = new QThread;

acquisitionRegulateur->moveToThread(threadAcquisitionRegulateur);acquisitionSuiveur->moveToThread(threadAcquisitionSuiveur);asservissementSuiveur->moveToThread(threadAsservissementSuiveur);acquisitionMeteo->moveToThread(threadAcquisitionMeteo);protectionVent->moveToThread(threadProtectionVent);

//enregistrement des types personnels pour la connexion signal/slotqRegisterMetaType<InformationsRegulateur>("InformationsRegulateur");qRegisterMetaType<JournalisationRegulateur>("JournalisationRegulateur");qRegisterMetaType<InformationsSuiveur>("InformationsSuiveur");qRegisterMetaType<AlarmesRegulateur>("AlarmesRegulateur");qRegisterMetaType<InformationsStationMeteo>("InformationsStationMeteo");

QObject::connect(threadAcquisitionRegulateur, SIGNAL(started()),acquisitionRegulateur, SLOT(main()));

QObject::connect(threadAcquisitionRegulateur, SIGNAL(finished()),

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 83: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 79

acquisitionRegulateur, SLOT(terminer()));QObject::connect(threadAcquisitionSuiveur, SIGNAL(started()),acquisitionSuiveur, SLOT(main()));

QObject::connect(threadAcquisitionSuiveur, SIGNAL(finished()),acquisitionSuiveur, SLOT(terminer()));

QObject::connect(threadAsservissementSuiveur, SIGNAL(started()),asservissementSuiveur, SLOT(main()));

QObject::connect(threadAsservissementSuiveur, SIGNAL(finished()),asservissementSuiveur, SLOT(terminer()));

QObject::connect(threadAcquisitionMeteo, SIGNAL(started()), acquisitionMeteo, SLOT(main()));

QObject::connect(threadAcquisitionMeteo, SIGNAL(finished()),acquisitionMeteo, SLOT(terminer()));

QObject::connect(threadProtectionVent, SIGNAL(started()), protectionVent,SLOT(main()));

QObject::connect(threadProtectionVent, SIGNAL(finished()), protectionVent,SLOT(terminer()));

//signaux/slots pour l’IHM

//Regulateurconnect(acquisitionRegulateur, SIGNAL(nouvellesInformationsRegulateur(InformationsRegulateur)), this, SLOT(afficherInformationsRegulateur(InformationsRegulateur)));

connect(acquisitionRegulateur, SIGNAL(nouvellesJournalisationRegulateur(JournalisationRegulateur)), this, SLOT(afficherJournalisationRegulateur(JournalisationRegulateur)));

connect(acquisitionRegulateur, SIGNAL(nouvellesAlarmesRegulateur(AlarmesRegulateur)), this, SLOT(afficherAlarmeRegulateur(AlarmesRegulateur)));

connect(acquisitionRegulateur, SIGNAL(nouvellesJournalisationRegulateur(JournalisationRegulateur)), this, SLOT(afficherBuzzer(JournalisationRegulateur)));

connect(acquisitionRegulateur, SIGNAL(nouvellesJournalisationRegulateur(JournalisationRegulateur)), this, SLOT(afficherTypeBatteries(JournalisationRegulateur)));

connect(acquisitionRegulateur, SIGNAL(nouvellesJournalisationRegulateur(JournalisationRegulateur)), this, SLOT(afficherModeCharge(JournalisationRegulateur)));

connect(acquisitionRegulateur, SIGNAL(nouvellesJournalisationRegulateur(JournalisationRegulateur)), this, SLOT(afficherCadenas(JournalisationRegulateur)));

connect(acquisitionRegulateur, SIGNAL(nouvellesJournalisationRegulateur(JournalisationRegulateur)), this, SLOT(afficherModeNuit(JournalisationRegulateur)));

//Station météoconnect(acquisitionMeteo, SIGNAL(nouvellesInformationsStationMeteo(InformationsStationMeteo)), this, SLOT(afficherInformationsStationMeteo(InformationsStationMeteo)));

//Protection ventconnect(protectionVent, SIGNAL(alerte(bool)), this, SLOT(alerterProtectionVent(bool)));

connect(ihm->Protection, SIGNAL(clicked(bool)), this, SLOT(activerProtectionVent(bool)));

connect(this,SIGNAL(nouvelEtatProtectionVent(bool)),protectionVent,SLOT(activerProtectionVent(bool)), Qt::DirectConnection);

connect(ihm->vitesse, SIGNAL(editingFinished()),this,SLOT(editerVitesseMaxProtectionVent()));

connect(this, SIGNAL(editerVitesseMaxProtectionVent(double)), protectionVent, SLOT(editerVitesseMaxProtectionVent(double)), Qt::DirectConnection);

connect(ihm->frequence, SIGNAL(editingFinished()),this,SLOT(editerFrequenceProtectionVent()));

connect(this, SIGNAL(editerFrequenceProtectionVent(int)),protectionVent,SLOT(editerFrequenceProtectionVent(int)), Qt::DirectConnection);

connect(protectionVent, SIGNAL(proteger(bool)), acquisitionSuiveur, SIGNAL(proteger(bool)), Qt::DirectConnection);

//Suiveurtimer = new QTimer(this);timer->setInterval(1000);connect(acquisitionSuiveur, SIGNAL(signalerInformationsSuiveur(InformationsSuiveur)), this, SLOT(afficherInformationsSuiveur(InformationsSuiveur)));

connect(timer, SIGNAL(timeout()), this, SLOT(afficherDateHeure()));connect(asservissementSuiveur, SIGNAL(afficherEtatsLDR(int,int,int,int)),this, SLOT(afficherEtatsLDR(int,int,int,int)));

connect(asservissementSuiveur, SIGNAL(deplacerEst()), acquisitionSuiveur,SLOT(deplacerPanneauEst()));

connect(asservissementSuiveur, SIGNAL(deplacerOuest()), acquisitionSuiveur,SLOT(deplacerPanneauOuest()));

connect(asservissementSuiveur, SIGNAL(deplacerNord()), acquisitionSuiveur,SLOT(deplacerPanneauNord()));

connect(asservissementSuiveur, SIGNAL(deplacerSud()), acquisitionSuiveur,SLOT(deplacerPanneauSud()));

connect(asservissementSuiveur, SIGNAL(afficherEtatSuiveur(bool)), this,SLOT(afficherEtatSuiveur(bool)));

connect(ihm->bGauchePanneau, SIGNAL(clicked()), acquisitionSuiveur, SIGNAL(deplacerPanneauGauche()), Qt::DirectConnection);

connect(ihm->bDroitePanneau, SIGNAL(clicked()), acquisitionSuiveur, SIGNAL(

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 84: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 80

deplacerPanneauDroite()), Qt::DirectConnection);connect(ihm->bHautPanneau, SIGNAL(clicked()), acquisitionSuiveur, SIGNAL(deplacerPanneauHaut()), Qt::DirectConnection);

connect(ihm->bBasPanneau, SIGNAL(clicked()), acquisitionSuiveur, SIGNAL(deplacerPanneauBas()), Qt::DirectConnection);

connect(ihm->BuzzerOnOff, SIGNAL(clicked()), acquisitionRegulateur, SIGNAL(changerEtatBuzzer()), Qt::DirectConnection);

connect(ihm->listeDeroulanteTypeBattery, SIGNAL(currentIndexChanged(int)),acquisitionRegulateur, SIGNAL(changerTypeBatterie(int)), Qt::DirectConnection);

connect(ihm->ModeChargeListe, SIGNAL(currentIndexChanged(int)),acquisitionRegulateur, SIGNAL(changerModeCharge(int)), Qt::DirectConnection);

connect(ihm->LockUnlock, SIGNAL(clicked()), acquisitionRegulateur, SIGNAL(changerEtatCadenas()), Qt::DirectConnection);

connect(ihm->BoutonModeNuit, SIGNAL(clicked()), acquisitionRegulateur,SIGNAL(changerModeNuit()), Qt::DirectConnection);

connect(ihm->positionMaintenance, SIGNAL(clicked()), this, SLOT(deplacerPositionMaintenance()));

connect(ihm->positionVent, SIGNAL(clicked()), this, SLOT(deplacerPositionVent()));

connect(ihm->positionPluie, SIGNAL(clicked()), this, SLOT(deplacerPositionPluie()));

connect(this, SIGNAL(deplacer(double,double)), acquisitionSuiveur, SIGNAL(deplacer(double,double)), Qt::DirectConnection);

//connect(ihm->spinBoxAzimut, SIGNAL(editingFinished()), this,SLOT(deplacerAzimut())); /** <TODO */

connect(this, SIGNAL(deplacerAngleAzimut(double)), acquisitionSuiveur,SIGNAL(deplacerAngleAzimut(double)), Qt::DirectConnection);

//connect(ihm->spinBoxElevation, SIGNAL(editingFinished()), this,SLOT(deplacerElevation())); /** <TODO */

connect(this, SIGNAL(deplacerAngleElevation(double)), acquisitionSuiveur,SIGNAL(deplacerAngleElevation(double)), Qt::DirectConnection);

connect(ihm->modeProgramme, SIGNAL(clicked(bool)), acquisitionSuiveur,SIGNAL(gererModeAutoProgramme(bool)), Qt::DirectConnection);

//connect(ihm->modeProgramme, SIGNAL(clicked(bool)),this,SLOT(verfierEtatMode()));

//connect(this, SIGNAL(etatModeProgramme(bool)), acquisitionSuiveur,SIGNAL(gererModeAutoProgramme(bool)));

connect(ihm->bAller, SIGNAL(clicked()), this, SLOT(deplacer()));connect(ihm->bStop, SIGNAL(clicked()), acquisitionSuiveur, SIGNAL(

stopperCommande()), Qt::DirectConnection);

// démarre les threadsthreadAcquisitionRegulateur->start();threadAcquisitionSuiveur->start();threadAsservissementSuiveur->start();threadAcquisitionMeteo->start();threadProtectionVent->start();

timer->start();}

10.14.2.2 IhmTournesol : :∼IhmTournesol ( )

Références acquisitionMeteo, acquisitionRegulateur, acquisitionSuiveur, asservissementSuiveur, AcquisitionMeteo : :finir(), -AsservissementSuiveur : :finir(), AcquisitionRegulateur : :finir(), ProtectionVent : :finir(), AcquisitionSuiveur : :finir(), ihm,protectionVent, threadAcquisitionMeteo, threadAcquisitionRegulateur, threadAcquisitionSuiveur, threadAsservissementSuiveur,threadProtectionVent, et timer.

{// met fin aux threadsacquisitionRegulateur->finir();threadAcquisitionRegulateur->quit();acquisitionSuiveur->finir();threadAcquisitionSuiveur->quit();asservissementSuiveur->finir();threadAsservissementSuiveur->quit();acquisitionMeteo->finir();threadAcquisitionMeteo->quit();protectionVent->finir();threadProtectionVent->quit();

// attend la fin des threadsthreadAcquisitionRegulateur->wait();threadAcquisitionSuiveur->wait();threadAsservissementSuiveur->wait();threadAcquisitionMeteo->wait();threadProtectionVent->wait();

delete threadAcquisitionRegulateur;delete threadAcquisitionSuiveur;delete threadAsservissementSuiveur;delete threadAcquisitionMeteo;delete threadProtectionVent;

delete acquisitionRegulateur;

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 85: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 81

delete acquisitionSuiveur;delete asservissementSuiveur;delete acquisitionMeteo;delete protectionVent;

timer->stop();

delete ihm;}

10.14.3 Documentation des fonctions membres

10.14.3.1 IhmTournesol : :activerProtectionVent ( bool etat ) [slot]

Références nouvelEtatProtectionVent().

Référencé par IhmTournesol().

{emit nouvelEtatProtectionVent(etat);

}

10.14.3.2 IhmTournesol : :afficherAlarmeRegulateur ( AlarmesRegulateur alarmesRegulateur ) [slot]

ParametresalarmesRegulateur

Références AlarmesRegulateur : :alarmeChargeComplete, AlarmesRegulateur : :alarmeDebranchementBatterie, Alarmes-Regulateur : :alarmeSurchauffeCharge, AlarmesRegulateur : :alarmeSurchauffePv, AlarmesRegulateur : :alarmeSurtension-Charge, AlarmesRegulateur : :alarmeSurtensionPv, AlarmesRegulateur : :alarmeSurvoltageBatterie, ihm, et AlarmesRegulateur-: :trameRecu.

Référencé par IhmTournesol().

{int nbAlarme = 0;

if(alarmesRegulateur.alarmeDebranchementBatterie == true){

ihm->AlarmeBatterieDebrancher->setPixmap(QPixmap(QString::fromUtf8(":/images/images/alarme.png")));nbAlarme = nbAlarme + 1;

}else ihm->AlarmeBatterieDebrancher->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));

if(alarmesRegulateur.alarmeChargeComplete == true)//b1{

ihm->AlarmeBatterieCharger->setPixmap(QPixmap(QString::fromUtf8(":/images/images/alarme.png")));nbAlarme = nbAlarme + 1;

}else

ihm->AlarmeBatterieCharger->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

if(alarmesRegulateur.alarmeSurtensionPv == true)//b2{

ihm->AlarmeSurtensionPV->setPixmap(QPixmap(QString::fromUtf8(":/images/images/alarme.png")));nbAlarme = nbAlarme + 1;

}else ihm->AlarmeSurtensionPV->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));

if(alarmesRegulateur.alarmeSurtensionCharge == true)//b3{

ihm->AlarmeSurtensionCharge->setPixmap(QPixmap(QString::fromUtf8(":/images/images/alarme.png")));nbAlarme = nbAlarme + 1;

}else ihm->AlarmeSurtensionCharge->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));

if(alarmesRegulateur.alarmeSurvoltageBatterie == true)//b4{

ihm->AlarmeSurvoltageBatterie->setPixmap(QPixmap(QString::fromUtf8(":/images/images/alarme.png")));nbAlarme = nbAlarme + 1;

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 86: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 82

else ihm->AlarmeSurvoltageBatterie->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

if(alarmesRegulateur.alarmeSurchauffePv == true)//b5{

ihm->AlarmeSurchauffePV->setPixmap(QPixmap(QString::fromUtf8(":/images/images/alarme.png")));nbAlarme = nbAlarme + 1;

}else ihm->AlarmeSurchauffePV->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));

if(alarmesRegulateur.alarmeSurchauffeCharge == true)//b6{

ihm->AlarmeSurchauffeCharge->setPixmap(QPixmap(QString::fromUtf8(":/images/images/alarme.png")));nbAlarme = nbAlarme + 1;

}else ihm->AlarmeSurchauffeCharge->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.jpeg")));

if(nbAlarme >= 1){

ihm->AlarmeNotification->setPixmap(QPixmap(QString::fromUtf8(":/images/images/alarme.png")));

}else ihm->AlarmeNotification->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

if(alarmesRegulateur.trameRecu == false){

ihm->regulateruOK->setPixmap(QPixmap(QString::fromUtf8(":/images/images/voyant_rouge.png")));

}else ihm->regulateruOK->setPixmap(QPixmap(QString::fromUtf8(":/images/images/voyant_vert.png")));

}

10.14.3.3 IhmTournesol : :afficherBuzzer ( JournalisationRegulateur journalisationRegulateur ) [slot]

Parametres

Références JournalisationRegulateur : :BuzzerEtat, et ihm.

Référencé par IhmTournesol().

{if(journalisationRegulateur.BuzzerEtat == true){

ihm->BuzzerOnOff->setIcon(QIcon(QString::fromUtf8(":/images/images/bouton-mute-true.png")));

}else ihm->BuzzerOnOff->setIcon(QIcon(QString::fromUtf8(":/images/images/bouton-mute.png")));

}

10.14.3.4 IhmTournesol : :afficherCadenas ( JournalisationRegulateur journalisationRegulateur ) [slot]

Parametres

Références ihm, et JournalisationRegulateur : :modeLock.

Référencé par IhmTournesol().

{if(journalisationRegulateur.modeLock == true){

ihm->LockUnlock->setIcon(QIcon(QString::fromUtf8(":/images/images/bouton-cadenas.jpeg")));

}else ihm->LockUnlock->setIcon(QIcon(QString::fromUtf8(":/images/images/unlock_icon.jpg")));

}

10.14.3.5 IhmTournesol : :afficherDateHeure ( ) [slot]

Références ihm.

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 87: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 83

Référencé par IhmTournesol().

{QDateTime maintenant = QDateTime::currentDateTime();ihm->labelDate->setText(maintenant.toString("dd/MM/yyyy"));ihm->labelHeure->setText(maintenant.toString("hh:mm:ss"));

}

10.14.3.6 IhmTournesol : :afficherEtatsLDR ( int etatLDR1, int etatLDR2, int etatLDR3, int etatLDR4 ) [slot]

ParametresetatLDR1etatLDR2etatLDR3etatLDR4

Références ihm.

Référencé par IhmTournesol().

{if(etatLDR1 == true){

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));

ihm->LDR1Allumee->setPixmap(QPixmap(QString::fromUtf8(":/images/images/pointVert.png")));

}else{

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->LDR1Allumee->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}

if(etatLDR2 == true){

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->LDR2Allumee->setPixmap(QPixmap(QString::fromUtf8(":/images/images/pointVert.png")));

}else{

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));ihm->LDR2Allumee->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));}

if(etatLDR3 == true)

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 88: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 84

{ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/soleil.png")));ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));

ihm->LDR3Allumee->setPixmap(QPixmap(QString::fromUtf8(":/images/images/pointVert.png")));

}else{

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));ihm->LDR3Allumee->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));}

if(etatLDR4 == true){

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->LDR4Allumee->setPixmap(QPixmap(QString::fromUtf8(":/images/images/pointVert.png")));

}else{

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));ihm->LDR4Allumee->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));}

if(etatLDR1 == true && etatLDR2 == true){

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}else{

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}

if(etatLDR1 == true && etatLDR4 == true){

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8("

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 89: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 85

:/images/images/normal.png")));ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));}else{

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}

if(etatLDR2 == true && etatLDR3 == true){

ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}else{

ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}

if(etatLDR4 == true && etatLDR3 == true){

ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}else{

ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}

if(etatLDR4 == true && etatLDR3 == true && etatLDR2 == true){

ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));

}else{

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 90: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 86

}

if(etatLDR1 == true && etatLDR2 == true && etatLDR3 == true){

ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));

ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}else{

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}

if(etatLDR1 == true && etatLDR2 == true && etatLDR4 == true){

ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}else{

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}

if(etatLDR1 == true && etatLDR3 == true && etatLDR4 == true){

ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/soleil.png")));

ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}else{

ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}

if(etatLDR1 == true && etatLDR2 == true && etatLDR3 == true && etatLDR4 ==true)

{ihm->SoleilSudOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilNordEst->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilSud->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilEst->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilNord->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilNordOuest->setPixmap(QPixmap(QString::fromUtf8("

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 91: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 87

:/images/images/normal.png")));ihm->SoleilSudEst->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->SoleilOuest->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/normal.png")));ihm->Soleilcentre->setPixmap(QPixmap(QString::fromUtf8("

:/images/images/soleil.png")));}else{

ihm->Soleilcentre->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}}

10.14.3.7 IhmTournesol : :afficherEtatSuiveur ( bool etat ) [slot]

Parametresetat

Références ihm.

Référencé par IhmTournesol().

{if(etat){

ihm->suiveurOK->setPixmap(QPixmap(QString::fromUtf8(":/images/images/voyant_vert.png")));

}else{

ihm->suiveurOK->setPixmap(QPixmap(QString::fromUtf8(":/images/images/voyant_rouge.png")));

}}

10.14.3.8 IhmTournesol : :afficherInformationsRegulateur ( InformationsRegulateur informationsRegulateur ) [slot]

Parametresinformations-

Regulateur

Références InformationsRegulateur : :courantCharge, InformationsRegulateur : :courantPhotovoltaique, ihm, Informations-Regulateur : :modeChargeBatterie, InformationsRegulateur : :niveauCharge, InformationsRegulateur : :surplusEnergie, -InformationsRegulateur : :temperature, et InformationsRegulateur : :tensionBatterie.

Référencé par IhmTournesol().

{ihm->lcdTensionBatterie->display(informationsRegulateur.tensionBatterie);//ok

ihm->lcdNiveauCharge ->display(informationsRegulateur.niveauCharge);//okihm->lcdSurplus->display(informationsRegulateur.surplusEnergie);//okihm->lcdCourantCharge->display(informationsRegulateur.courantCharge);//okihm->lcdCourantPV->display(informationsRegulateur.courantPhotovoltaique);//ok

ihm->TensionBatteriesThermometre->setValue(informationsRegulateur.tensionBatterie);

ihm->ChargeBatteriesThermometre->setValue(informationsRegulateur.niveauCharge);

ihm->TemperatureBatteriesThermometre->setValue(informationsRegulateur.temperature);

ihm->ModeChargeBat->setText(informationsRegulateur.modeChargeBatterie);

//...}

10.14.3.9 IhmTournesol : :afficherInformationsStationMeteo ( InformationsStationMeteo informationsStationMeteo )[slot]

Parametresinformations-StationMeteo

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 92: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 88

Références InformationsStationMeteo : :directionVent, ihm, InformationsStationMeteo : :luminosite, InformationsStationMeteo-: :temperature, Mesure : :valeur, InformationsStationMeteo : :valide, et InformationsStationMeteo : :vitesseVent.

Référencé par IhmTournesol().

{ihm->qwtThermometre->setValue(informationsStationMeteo.temperature.valeur);ihm->qwtDirectionVent->setValue(informationsStationMeteo.directionVent.valeur);

ihm->qwtVitesseVent->setValue(informationsStationMeteo.vitesseVent.valeur);ihm->lcdLuminosite->display(informationsStationMeteo.luminosite.valeur);

if (informationsStationMeteo.valide == true){

ihm->meteoOK->setPixmap(QPixmap(QString::fromUtf8(":/images/images/voyant_vert.png")));

}else{

ihm->meteoOK->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}

if (informationsStationMeteo.luminosite.valeur >= 0 &&informationsStationMeteo.luminosite.valeur < 0.001)

{// nuit avec ciel sans luneihm->correspondance_luminosite->setText("Nuit avec ciel sans lune");

}if (informationsStationMeteo.luminosite.valeur >= 0.001 &&

informationsStationMeteo.luminosite.valeur < 0.5){

// nuit de pleine luneihm->correspondance_luminosite->setText("Nuit de pleine lune");

}if (informationsStationMeteo.luminosite.valeur >= 0.5 &&

informationsStationMeteo.luminosite.valeur < 40){

// entierement couvertihm->correspondance_luminosite->setText("Entierement couvert");

}if (informationsStationMeteo.luminosite.valeur >= 40 &&

informationsStationMeteo.luminosite.valeur < 200){

// ciel tres nuageuxihm->correspondance_luminosite->setText("Ciel tres nuageux");

}if (informationsStationMeteo.luminosite.valeur >= 200 &&

informationsStationMeteo.luminosite.valeur < 400){

// aube ou crepuscule par temps clairihm->correspondance_luminosite->setText("Aaube ou crepuscule par tempsclair");

}if (informationsStationMeteo.luminosite.valeur >= 400 &&

informationsStationMeteo.luminosite.valeur < 5000){

// ciel nuageuxihm->correspondance_luminosite->setText("Ciel nuageux");

}if (informationsStationMeteo.luminosite.valeur >= 5000 &&

informationsStationMeteo.luminosite.valeur < 65000){

// ciel bleuihm->correspondance_luminosite->setText("Ciel bleu");

}}

10.14.3.10 IhmTournesol : :afficherInformationsSuiveur ( InformationsSuiveur informationsSuiveur ) [slot]

Parametresinformations-

Suiveur

A faire afficher positionHoraireA, aDestination, iMoteurA, positionElevationB, bDestination, iMotorB, automatique

Références InformationsSuiveur : :angleElevationB, InformationsSuiveur : :angleHoraireA, InformationsSuiveur : :destinationA,InformationsSuiveur : :destinationB, InformationsSuiveur : :erreurs, ihm, InformationsSuiveur : :latitude, InformationsSuiveur : :lon-gitude, InformationsSuiveur : :orientationLatitude, InformationsSuiveur : :orientationLongitude, InformationsSuiveur : :position-ElevationB, et InformationsSuiveur : :positionHoraireA.

Référencé par IhmTournesol().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 93: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 89

{/*QString heure = QString::number(informationsSuiveur.heure) + ":" +

QString::number(informationsSuiveur.minute) + ":" +QString::number(informationsSuiveur.seconde);

ihm->labelHeure->setText(heure);QString date = QString::number(informationsSuiveur.jour) + "/" +

QString::number(informationsSuiveur.mois);ihm->labelDate->setText(date);*/

ihm->lcdAzimut->display(informationsSuiveur.angleHoraireA);ihm->lcdElevation->display(informationsSuiveur.angleElevationB);ihm->lcdPositionA->display(informationsSuiveur.positionHoraireA);ihm->lcdPositionB->display(informationsSuiveur.positionElevationB);ihm->lcdDestinationA->display(informationsSuiveur.destinationA);ihm->lcdDestinationB->display(informationsSuiveur.destinationB);ihm->lcdLatitude->display(informationsSuiveur.latitude);ihm->latOrientation->setText(QChar(informationsSuiveur.orientationLatitude)

);ihm->lcdLongitude->display(informationsSuiveur.longitude);ihm->longOrientation->setText(QChar(informationsSuiveur.orientationLongitude));

ihm->labelAzimutAccueil->setNum(informationsSuiveur.angleHoraireA);ihm->labelElevationAccueil->setNum(informationsSuiveur.angleElevationB);ihm->labelLatitudeAccueil->setNum(informationsSuiveur.latitude); //informationsSuiveur.orientationLatitude

ihm->labelLongitudeAccueil->setNum(informationsSuiveur.longitude); //informationsSuiveur.orientationLongitude

if(informationsSuiveur.erreurs > 0){

ihm->erreursSuiveur->setPixmap(QPixmap(QString::fromUtf8(":/images/images/alarme.png")));

}else ihm->erreursSuiveur->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

/*if(ihm->modeProgramme->isChecked()){

ihm->modeDetection->isChecked() = false;}if(ihm->modeDetection->isChecked()){

ihm->modeProgramme->isChecked() = false;}

*/}

10.14.3.11 IhmTournesol : :afficherJournalisationRegulateur ( JournalisationRegulateur journalisationRegulateur ) [slot]

Parametresjournalisation-

Regulateur

Références JournalisationRegulateur : :ampereHeurePvConsomme, JournalisationRegulateur : :ampereHeurePVExcedant,JournalisationRegulateur : :chargeAmpaireHeure, ihm, JournalisationRegulateur : :nbSemaines, JournalisationRegulateur-: :niveauChargeMatin, et JournalisationRegulateur : :niveauChargeSoir.

Référencé par IhmTournesol().

{ihm->lcdChargeMatin->display(journalisationRegulateur.niveauChargeMatin);//ok

ihm->lcdChargeSoir->display(journalisationRegulateur.niveauChargeSoir);//okihm->lcdexcedants->display(journalisationRegulateur.ampereHeurePvConsomme);ihm->lcdPanneaux->display(journalisationRegulateur.ampereHeurePVExcedant);ihm->lcdCourantChargeAH->display(journalisationRegulateur.chargeAmpaireHeure);

ihm->NBSemaines->setText(journalisationRegulateur.nbSemaines);//ihm->listeDeroulanteTypeBattery->addItem();

}

10.14.3.12 IhmTournesol : :afficherModeCharge ( JournalisationRegulateur journalisationRegulateur ) [slot]

Parametres

Références ihm, et JournalisationRegulateur : :mode.

Référencé par IhmTournesol().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 94: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 90

{ihm->ModeChargeListe->setCurrentIndex(journalisationRegulateur.mode);

}

10.14.3.13 IhmTournesol : :afficherModeNuit ( JournalisationRegulateur journalisationRegulateur ) [slot]

Parametres

Références ihm, et JournalisationRegulateur : :modenuit.

Référencé par IhmTournesol().

{if(journalisationRegulateur.modenuit == 0){

ihm->BoutonModeNuit->setIcon(QIcon(QString::fromUtf8(":/images/images/bouton-ampoule_barrer.png")));

}else ihm->BoutonModeNuit->setIcon(QIcon(QString::fromUtf8(":/images/images/bouton-ampoule.png")));

}

10.14.3.14 IhmTournesol : :afficherTypeBatteries ( JournalisationRegulateur journalisationRegulateur ) [slot]

Parametres

Références ihm, et JournalisationRegulateur : :typeBatterie.

Référencé par IhmTournesol().

{ihm->listeDeroulanteTypeBattery->setCurrentIndex(journalisationRegulateur.typeBatterie);

}

10.14.3.15 void IhmTournesol : :alerterProtectionVent ( bool protectionActivee ) [slot]

Références ihm.

Référencé par IhmTournesol().

{if (protectionActivee){

ihm->alerteProtection->setPixmap(QPixmap(QString::fromUtf8(":/images/images/alarme.png")));

}else{

ihm->alerteProtection->setPixmap(QPixmap(QString::fromUtf8(":/images/images/normal.png")));

}}

10.14.3.16 void IhmTournesol : :deplacer ( double angleHoraire, double angleElevation ) [signal]

10.14.3.17 IhmTournesol : :deplacer ( ) [slot]

ParametresangleHoraire

angleElevation

Références ihm.

Référencé par deplacerPositionMaintenance(), deplacerPositionPluie(), deplacerPositionVent(), et IhmTournesol().

{//deplacerAzimut();//deplacerElevation();

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 95: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 91

emit deplacer(ihm->spinBoxAzimut->value(), ihm->spinBoxElevation->value());}

10.14.3.18 void IhmTournesol : :deplacerAngleAzimut ( double ) [signal]

Référencé par deplacerAzimut(), et IhmTournesol().

10.14.3.19 void IhmTournesol : :deplacerAngleElevation ( double ) [signal]

Référencé par deplacerElevation(), et IhmTournesol().

10.14.3.20 IhmTournesol : :deplacerAzimut ( ) [slot]

Parametres

Références deplacerAngleAzimut(), et ihm.

{emit deplacerAngleAzimut(ihm->spinBoxAzimut->value());

}

10.14.3.21 IhmTournesol : :deplacerElevation ( ) [slot]

Parametres

Références deplacerAngleElevation(), et ihm.

{emit deplacerAngleElevation(ihm->spinBoxElevation->value());

}

10.14.3.22 IhmTournesol : :deplacerPositionMaintenance ( ) [slot]

Parametres

A faire lire les positions dans la BDD

Références deplacer().

Référencé par IhmTournesol().

{emit deplacer(0., 16.);

}

10.14.3.23 IhmTournesol : :deplacerPositionPluie ( ) [slot]

Parametres

A faire lire les positions dans la BDD

Références deplacer().

Référencé par IhmTournesol().

{emit deplacer(0., 60.);

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 96: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 92

10.14.3.24 IhmTournesol : :deplacerPositionVent ( ) [slot]

Parametres

A faire lire les positions dans la BDD

Références deplacer().

Référencé par IhmTournesol().

{emit deplacer(0., 90.);

}

10.14.3.25 void IhmTournesol : :editerFrequenceProtectionVent ( int frequence ) [signal]

10.14.3.26 IhmTournesol : :editerFrequenceProtectionVent ( ) [slot]

Parametresfrequence

Références ihm.

Référencé par IhmTournesol().

{emit editerFrequenceProtectionVent(ihm->frequence->value());

}

10.14.3.27 void IhmTournesol : :editerVitesseMaxProtectionVent ( double vitesse ) [signal]

10.14.3.28 IhmTournesol : :editerVitesseMaxProtectionVent ( ) [slot]

Références ihm.

Référencé par IhmTournesol().

{emit editerVitesseMaxProtectionVent(ihm->vitesse->value());

}

10.14.3.29 void IhmTournesol : :etatModeProgramme ( bool modeAuto ) [signal]

Référencé par verfierEtatMode().

10.14.3.30 IhmTournesol : :initialiserModesDeCharges ( ) [private]

Références ihm.

Référencé par IhmTournesol().

{ihm->ModeChargeListe->addItem("Mode 1");// index 0ihm->ModeChargeListe->addItem("Mode 2");// index 1ihm->ModeChargeListe->addItem("Mode 3");// index 2ihm->ModeChargeListe->addItem("Mode 4");// index 3ihm->ModeChargeListe->addItem("Mode 5");// index 4

}

10.14.3.31 IhmTournesol : :initialiserQwt ( ) [private]

Références ihm.

Référencé par IhmTournesol().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 97: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 93

{// A terminer ...

// Compasihm->qwtDirectionVent->setLineWidth(4);ihm->qwtDirectionVent->setFrameShadow(QwtCompass::Sunken);//ihm->qwtDirectionVent->setFrameShadow(QwtCompass::Raised);ihm->qwtDirectionVent->setLineWidth(0);

//ihm->qwtDirectionVent->setScaleOptions(QwtDial::ScaleBackbone |QwtDial::ScaleTicks | QwtDial::ScaleLabel);

//ihm->qwtDirectionVent->setScaleTicks(0, 0, 3);

/*QMap<double, QString> map;for ( double d = 0.0; d < 360.0; d += 60.0 ){

QString label;label.sprintf("%.0f", d);map.insert(d, label);

}ihm->qwtDirectionVent->setLabelMap(map);*/

// ou :

QMap<double, QString> map;map.insert(0.0, "N");map.insert(45.0, "NE");map.insert(90.0, "E");map.insert(135.0, "SE");map.insert(180.0, "S");map.insert(225.0, "SO");map.insert(270.0, "O");map.insert(315.0, "NO");ihm->qwtDirectionVent->setLabelMap(map);

ihm->qwtDirectionVent->setNeedle(new QwtDialSimpleNeedle(QwtDialSimpleNeedle::Ray, false, Qt::white));

//ihm->qwtDirectionVent->setOrigin(270.0);ihm->qwtDirectionVent->setValue(0.0);

ihm->qwtDirectionVent->setScaleComponents( QwtAbstractScaleDraw::Backbone |QwtAbstractScaleDraw::Ticks | QwtAbstractScaleDraw::Labels );

ihm->qwtDirectionVent->setScaleTicks(0, 0, 3);ihm->qwtDirectionVent->setScale(0, 0, 5.0);

ihm->qwtDirectionVent->setNeedle(new QwtCompassMagnetNeedle(QwtCompassMagnetNeedle::ThinStyle));

QPalette p1 = ihm->qwtDirectionVent->palette();//QColor(170, 170, 255); color//QColor(231, 219, 46); bacgroundp1.setColor(QPalette::Base, QColor(231, 219, 46));p1.setColor(QPalette::WindowText, QColor(231, 219, 46));p1.setColor(QPalette::WindowText, QColor(224, 225, 255));p1.setColor(QPalette::Text, QColor(170, 170, 255));ihm->qwtDirectionVent->setPalette(p1);

// Thermomètreihm->qwtThermometre->setScale(-20, 40, 10);ihm->qwtThermometre->setMinValue(-20);ihm->qwtThermometre->setMaxValue(40);

// Vitesseihm->qwtVitesseVent->setOrigin(135.0);ihm->qwtVitesseVent->setScaleArc(0.0, 270.0);ihm->qwtVitesseVent->setScale(0, 200, 50);ihm->qwtVitesseVent->scaleDraw()->setSpacing(4);

QwtDialSimpleNeedle *needle = new QwtDialSimpleNeedle(QwtDialSimpleNeedle::Arrow, true, Qt::red, QColor(Qt::gray).light(130));

ihm->qwtVitesseVent->setNeedle(needle);

ihm->qwtVitesseVent->setScaleComponents( QwtAbstractScaleDraw::Ticks |QwtAbstractScaleDraw::Labels );

ihm->qwtVitesseVent->setScaleTicks(0, 0, 4);

QPalette p2 = ihm->qwtVitesseVent->palette();//QColor(170, 170, 255); color//QColor(231, 219, 46); bacgroundp2.setColor(QPalette::Base, QColor(231, 219, 46));p2.setColor(QPalette::WindowText, QColor(231, 219, 46));p2.setColor(QPalette::WindowText, QColor(224, 225, 255));p2.setColor(QPalette::Text, QColor(170, 170, 255));ihm->qwtVitesseVent->setPalette(p2);

}

10.14.3.32 IhmTournesol : :initialiserTypeBatteries ( ) [private]

Références ihm.

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 98: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.14 Référence de la classe IhmTournesol 94

Référencé par IhmTournesol().

{ihm->listeDeroulanteTypeBattery->addItem("Batterie type liquide electrolyte"); // index 0

ihm->listeDeroulanteTypeBattery->addItem("Batterie type GEL (VRLA)"); //index 1

}

10.14.3.33 IhmTournesol : :nouvelEtatProtectionVent ( bool etat ) [signal]

Référencé par activerProtectionVent(), et IhmTournesol().

10.14.3.34 IhmTournesol : :verfierEtatMode ( ) [slot]

Références etatModeProgramme(), et ihm.

{bool modeProgramme = ihm->modeProgramme->isChecked();bool modeDetection = ihm->modeDetection->isChecked();if(modeProgramme){

ihm->modeDetection->setChecked(false);emit etatModeProgramme(modeProgramme);

}if(modeDetection){

ihm->modeProgramme->setChecked(false);//emit etatModeDetection(modeDetection); <TODO

}

}

10.14.4 Documentation des donnees membres

10.14.4.1 AcquisitionMeteo∗ IhmTournesol : :acquisitionMeteo [private]

gestion de la station météo

Référencé par IhmTournesol(), et ∼IhmTournesol().

10.14.4.2 AcquisitionRegulateur∗ IhmTournesol : :acquisitionRegulateur [private]

gestion de la communication avec le régulateur Phocos

Référencé par IhmTournesol(), et ∼IhmTournesol().

10.14.4.3 AcquisitionSuiveur∗ IhmTournesol : :acquisitionSuiveur [private]

gestion de la communication avec le système de commande du suiveur solaire

Référencé par IhmTournesol(), et ∼IhmTournesol().

10.14.4.4 AsservissementSuiveur∗ IhmTournesol : :asservissementSuiveur [private]

assure la gestion du suivi solaire à partir du capteur solaire

Référencé par IhmTournesol(), et ∼IhmTournesol().

10.14.4.5 Ui : :IHM∗ IhmTournesol : :ihm [private]

la GUI

Référencé par afficherAlarmeRegulateur(), afficherBuzzer(), afficherCadenas(), afficherDateHeure(), afficherEtatsLDR(), afficher-EtatSuiveur(), afficherInformationsRegulateur(), afficherInformationsStationMeteo(), afficherInformationsSuiveur(), afficher-JournalisationRegulateur(), afficherModeCharge(), afficherModeNuit(), afficherTypeBatteries(), alerterProtectionVent(), depla-cer(), deplacerAzimut(), deplacerElevation(), editerFrequenceProtectionVent(), editerVitesseMaxProtectionVent(), IhmTournesol(),initialiserModesDeCharges(), initialiserQwt(), initialiserTypeBatteries(), verfierEtatMode(), et ∼IhmTournesol().

10.14.4.6 ProtectionVent∗ IhmTournesol : :protectionVent [private]

gestion de la protection contre le vent

Référencé par IhmTournesol(), et ∼IhmTournesol().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 99: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.15 Référence de la structure InformationsRegulateur 95

10.14.4.7 QThread∗ IhmTournesol : :threadAcquisitionMeteo [private]

thread pour la classe AcquisitionMeteo

Référencé par IhmTournesol(), et ∼IhmTournesol().

10.14.4.8 QThread∗ IhmTournesol : :threadAcquisitionRegulateur [private]

thread pour la classe AcquisitionRegulateur

Référencé par IhmTournesol(), et ∼IhmTournesol().

10.14.4.9 QThread∗ IhmTournesol : :threadAcquisitionSuiveur [private]

thread pour la classe AcquisitionSuiveur

Référencé par IhmTournesol(), et ∼IhmTournesol().

10.14.4.10 QThread∗ IhmTournesol : :threadAsservissementSuiveur [private]

thread pour la classe AsservissementSuiveur

Référencé par IhmTournesol(), et ∼IhmTournesol().

10.14.4.11 QThread∗ IhmTournesol : :threadProtectionVent [private]

thread pour la classe ProtectionVent

Référencé par IhmTournesol(), et ∼IhmTournesol().

10.14.4.12 QTimer∗ IhmTournesol : :timer [private]

le timer pour l’horloge

Référencé par IhmTournesol(), et ∼IhmTournesol().

La documentation de cette classe a été générée à partir des fichiers suivants :– ihmTournesol.h– ihmTournesol.cpp

10.15 Reference de la structure InformationsRegulateur

Regroupe les variable contenant les informations relatives a la trame d’Informations.

#include <regulateur.h>

Attributs publics

– double niveauCharge– double tensionBatterie– double surplusEnergie– double courantPhotovoltaique– double courantCharge– double temperature– QString modeChargeBatterie– bool onOff

10.15.1 Documentation des donnees membres

10.15.1.1 double InformationsRegulateur : :courantCharge

Référencé par IhmTournesol : :afficherInformationsRegulateur(), et Regulateur : :decoderTrameInformations().

10.15.1.2 double InformationsRegulateur : :courantPhotovoltaique

TODO

Référencé par IhmTournesol : :afficherInformationsRegulateur(), et Regulateur : :decoderTrameInformations().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 100: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.16 Référence de la structure InformationsStationMeteo 96

10.15.1.3 QString InformationsRegulateur : :modeChargeBatterie

TODO

Référencé par IhmTournesol : :afficherInformationsRegulateur(), et Regulateur : :decoderTrameInformations().

10.15.1.4 double InformationsRegulateur : :niveauCharge

TODO

Référencé par IhmTournesol : :afficherInformationsRegulateur(), et Regulateur : :decoderTrameInformations().

10.15.1.5 bool InformationsRegulateur : :onOff

TODO

Référencé par Regulateur : :decoderTrameInformations().

10.15.1.6 double InformationsRegulateur : :surplusEnergie

TODO

Référencé par IhmTournesol : :afficherInformationsRegulateur(), et Regulateur : :decoderTrameInformations().

10.15.1.7 double InformationsRegulateur : :temperature

TODO

Référencé par IhmTournesol : :afficherInformationsRegulateur(), et Regulateur : :decoderTrameInformations().

10.15.1.8 double InformationsRegulateur : :tensionBatterie

TODO

Référencé par IhmTournesol : :afficherInformationsRegulateur(), et Regulateur : :decoderTrameInformations().

La documentation de cette structure a été générée à partir du fichier suivant :– regulateur.h

10.16 Reference de la structure InformationsStationMeteo

Regroupe les variables contenant les informations relatives à la trame d’information.

#include <stationMeteo.h>

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 101: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.16 Référence de la structure InformationsStationMeteo 97

Graphe de collaboration de InformationsStationMeteo :

InformationsStationMeteo

+ vitesseVent+ directionVent+ luminosite+ temperature+ valide

Mesure

+ valeur+ unite+ horodatage+ valide

directionVentluminosite

vitesseVenttemperature

Attributs publics

– Mesure vitesseVent– Mesure directionVent– Mesure luminosite– Mesure temperature– bool valide

10.16.1 Documentation des donnees membres

10.16.1.1 Mesure InformationsStationMeteo : :directionVent

TODO

Référencé par IhmTournesol : :afficherInformationsStationMeteo(), StationMeteo : :enregistrerMesures(), StationMeteo : :lire-Vent(), et StationMeteo : :StationMeteo().

10.16.1.2 Mesure InformationsStationMeteo : :luminosite

TODO

Référencé par IhmTournesol : :afficherInformationsStationMeteo(), StationMeteo : :enregistrerMesures(), StationMeteo : :lire-Luminosite(), StationMeteo : :lireTemperature(), et StationMeteo : :StationMeteo().

10.16.1.3 Mesure InformationsStationMeteo : :temperature

TODO

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 102: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.17 Référence de la structure InformationsSuiveur 98

Référencé par IhmTournesol : :afficherInformationsStationMeteo(), StationMeteo : :enregistrerMesures(), StationMeteo : :lire-Temperature(), et StationMeteo : :StationMeteo().

10.16.1.4 bool InformationsStationMeteo : :valide

TODO

Référencé par StationMeteo : :acquerir(), IhmTournesol : :afficherInformationsStationMeteo(), et StationMeteo : :StationMeteo().

10.16.1.5 Mesure InformationsStationMeteo : :vitesseVent

TODO

Référencé par IhmTournesol : :afficherInformationsStationMeteo(), StationMeteo : :enregistrerMesures(), StationMeteo : :lire-Vent(), et StationMeteo : :StationMeteo().

La documentation de cette structure a été générée à partir du fichier suivant :– stationMeteo.h

10.17 Reference de la structure InformationsSuiveur

Regroupe les données envoyées par le suiveur solaire.

#include <suiveurSolaire.h>

Attributs publics

– int heure– int minute– int seconde– int jour– int mois– double angleHoraireA– int positionHoraireA– int destinationA

Pour le diagnostic.– double iMoteurA

Pour le diagnostic.– double angleElevationB

Pour le diagnostic.– int positionElevationB– int destinationB

Pour le diagnostic.– double iMoteurB

Pour le diagnostic.– double latitude

Pour le diagnostic.– char orientationLatitude– double longitude– char orientationLongitude– bool automatique– bool movingOutA– bool movingInA– bool movingOutB– bool movingInB– int erreurs

10.17.1 Documentation des donnees membres

10.17.1.1 double InformationsSuiveur : :angleElevationB

Référencé par IhmTournesol : :afficherInformationsSuiveur(), SuiveurSolaire : :decoderTrame(), SuiveurSolaire : :enregistrer-InformationsBdd(), et SuiveurSolaire : :reinitialiserInformationsSuiveur().

10.17.1.2 double InformationsSuiveur : :angleHoraireA

Référencé par IhmTournesol : :afficherInformationsSuiveur(), SuiveurSolaire : :decoderTrame(), SuiveurSolaire : :enregistrer-InformationsBdd(), et SuiveurSolaire : :reinitialiserInformationsSuiveur().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 103: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.17 Référence de la structure InformationsSuiveur 99

10.17.1.3 bool InformationsSuiveur : :automatique

TODO

Référencé par SuiveurSolaire : :decoderTrame().

10.17.1.4 int InformationsSuiveur : :destinationA

Référencé par IhmTournesol : :afficherInformationsSuiveur(), SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :reinitialiser-InformationsSuiveur().

10.17.1.5 int InformationsSuiveur : :destinationB

Référencé par IhmTournesol : :afficherInformationsSuiveur(), SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :reinitialiser-InformationsSuiveur().

10.17.1.6 int InformationsSuiveur : :erreurs

TODO

Référencé par IhmTournesol : :afficherInformationsSuiveur(), SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :reinitialiser-InformationsSuiveur().

10.17.1.7 int InformationsSuiveur : :heure

Référencé par SuiveurSolaire : :decoderTrame(), SuiveurSolaire : :enregistrerInformationsBdd(), et SuiveurSolaire : :reinitialiser-InformationsSuiveur().

10.17.1.8 double InformationsSuiveur : :iMoteurA

Référencé par SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :reinitialiserInformationsSuiveur().

10.17.1.9 double InformationsSuiveur : :iMoteurB

Référencé par SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :reinitialiserInformationsSuiveur().

10.17.1.10 int InformationsSuiveur : :jour

Référencé par SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :enregistrerInformationsBdd().

10.17.1.11 double InformationsSuiveur : :latitude

Référencé par IhmTournesol : :afficherInformationsSuiveur(), SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :reinitialiser-InformationsSuiveur().

10.17.1.12 double InformationsSuiveur : :longitude

TODO

Référencé par IhmTournesol : :afficherInformationsSuiveur(), et SuiveurSolaire : :decoderTrame().

10.17.1.13 int InformationsSuiveur : :minute

Référencé par SuiveurSolaire : :decoderTrame(), SuiveurSolaire : :enregistrerInformationsBdd(), et SuiveurSolaire : :reinitialiser-InformationsSuiveur().

10.17.1.14 int InformationsSuiveur : :mois

Référencé par SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :enregistrerInformationsBdd().

10.17.1.15 bool InformationsSuiveur : :movingInA

TODO

Référencé par SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :reinitialiserInformationsSuiveur().

10.17.1.16 bool InformationsSuiveur : :movingInB

TODO

Référencé par SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :reinitialiserInformationsSuiveur().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 104: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.18 Référence de la structure JournalisationRegulateur 100

10.17.1.17 bool InformationsSuiveur : :movingOutA

TODO

Référencé par SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :reinitialiserInformationsSuiveur().

10.17.1.18 bool InformationsSuiveur : :movingOutB

TODO

Référencé par SuiveurSolaire : :decoderTrame(), et SuiveurSolaire : :reinitialiserInformationsSuiveur().

10.17.1.19 char InformationsSuiveur : :orientationLatitude

Référencé par IhmTournesol : :afficherInformationsSuiveur(), et SuiveurSolaire : :decoderTrame().

10.17.1.20 char InformationsSuiveur : :orientationLongitude

TODO

Référencé par IhmTournesol : :afficherInformationsSuiveur(), et SuiveurSolaire : :decoderTrame().

10.17.1.21 int InformationsSuiveur : :positionElevationB

Référencé par IhmTournesol : :afficherInformationsSuiveur(), SuiveurSolaire : :decoderTrame(), SuiveurSolaire : :enregistrer-InformationsBdd(), et SuiveurSolaire : :reinitialiserInformationsSuiveur().

10.17.1.22 int InformationsSuiveur : :positionHoraireA

Référencé par IhmTournesol : :afficherInformationsSuiveur(), SuiveurSolaire : :decoderTrame(), SuiveurSolaire : :enregistrer-InformationsBdd(), et SuiveurSolaire : :reinitialiserInformationsSuiveur().

10.17.1.23 int InformationsSuiveur : :seconde

Référencé par SuiveurSolaire : :decoderTrame(), SuiveurSolaire : :enregistrerInformationsBdd(), et SuiveurSolaire : :reinitialiser-InformationsSuiveur().

La documentation de cette structure a été générée à partir du fichier suivant :– suiveurSolaire.h

10.18 Reference de la structure JournalisationRegulateur

Regroupe les variable contenant les informations relatives a la trame de Journalisation.

#include <regulateur.h>

Attributs publics

– double ampereHeurePVExcedant– double ampereHeurePvConsomme– double niveauChargeMatin– double niveauChargeSoir– double chargeAmpaireHeure– QString nbSemaines– bool BuzzerEtat– int typeBatterie– int mode– bool modeLock– int serialInterface– int modenuit

10.18.1 Documentation des donnees membres

10.18.1.1 double JournalisationRegulateur : :ampereHeurePvConsomme

TODO

Référencé par IhmTournesol : :afficherJournalisationRegulateur(), et Regulateur : :decoderTrameHistorique().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 105: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.18 Référence de la structure JournalisationRegulateur 101

10.18.1.2 double JournalisationRegulateur : :ampereHeurePVExcedant

TODO

Référencé par IhmTournesol : :afficherJournalisationRegulateur(), et Regulateur : :decoderTrameHistorique().

10.18.1.3 bool JournalisationRegulateur : :BuzzerEtat

TODO

Référencé par IhmTournesol : :afficherBuzzer(), Regulateur : :changerEtatBuzzer(), Regulateur : :decoderMenuState(), et Ihm-Tournesol : :IhmTournesol().

10.18.1.4 double JournalisationRegulateur : :chargeAmpaireHeure

TODO

Référencé par IhmTournesol : :afficherJournalisationRegulateur(), et Regulateur : :decoderTrameHistorique().

10.18.1.5 int JournalisationRegulateur : :mode

TODO

Référencé par IhmTournesol : :afficherModeCharge(), Regulateur : :changerModeCharge(), Regulateur : :decoderMenuState(), etIhmTournesol : :IhmTournesol().

10.18.1.6 bool JournalisationRegulateur : :modeLock

TODO

Référencé par IhmTournesol : :afficherCadenas(), Regulateur : :changerEtatCadenas(), Regulateur : :changerTypeBatterie(), -Regulateur : :decoderMenuState2(), et IhmTournesol : :IhmTournesol().

10.18.1.7 int JournalisationRegulateur : :modenuit

TODO

Référencé par IhmTournesol : :afficherModeNuit(), Regulateur : :changerModeNuit(), Regulateur : :decoderMenuState(), et Ihm-Tournesol : :IhmTournesol().

10.18.1.8 QString JournalisationRegulateur : :nbSemaines

TODO

Référencé par IhmTournesol : :afficherJournalisationRegulateur(), et Regulateur : :decoderTrameHistorique().

10.18.1.9 double JournalisationRegulateur : :niveauChargeMatin

TODO

Référencé par IhmTournesol : :afficherJournalisationRegulateur(), et Regulateur : :decoderTrameHistorique().

10.18.1.10 double JournalisationRegulateur : :niveauChargeSoir

TODO

Référencé par IhmTournesol : :afficherJournalisationRegulateur(), et Regulateur : :decoderTrameHistorique().

10.18.1.11 int JournalisationRegulateur : :serialInterface

TODO

10.18.1.12 int JournalisationRegulateur : :typeBatterie

TODO

Référencé par IhmTournesol : :afficherTypeBatteries(), Regulateur : :changerTypeBatterie(), Regulateur : :decoderMenuState(), etIhmTournesol : :IhmTournesol().

La documentation de cette structure a été générée à partir du fichier suivant :– regulateur.h

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 106: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.19 Référence de la structure Mesure 102

10.19 Reference de la structure Mesure

Regroupe les différentes informations relatives à une donnée.

#include <stationMeteo.h>

Attributs publics

– double valeur– QString unite– QString horodatage– bool valide

10.19.1 Documentation des donnees membres

10.19.1.1 QString Mesure : :horodatage

TODO

Référencé par StationMeteo : :lireTemperature().

10.19.1.2 QString Mesure : :unite

TODO

Référencé par StationMeteo : :lireTemperature().

10.19.1.3 double Mesure : :valeur

TODO

Référencé par IhmTournesol : :afficherInformationsStationMeteo(), StationMeteo : :enregistrerMesures(), StationMeteo : :lire-Luminosite(), StationMeteo : :lireTemperature(), StationMeteo : :lireVent(), et StationMeteo : :StationMeteo().

10.19.1.4 bool Mesure : :valide

TODO

Référencé par StationMeteo : :lireLuminosite(), StationMeteo : :lireTemperature(), et StationMeteo : :lireVent().

La documentation de cette structure a été générée à partir du fichier suivant :– stationMeteo.h

10.20 Reference de la structure ParametresRegulateur

Regroupe les différents parametres du regulateur.

#include <regulateur.h>

Attributs publics

– int modeNuit– bool buzzerOnOff– int typeBatterie– int modeCoupureChargeFaible– bool modeLock– int serialInterface

10.20.1 Documentation des donnees membres

10.20.1.1 bool ParametresRegulateur : :buzzerOnOff

buzzer : bit 4 de MENU_STATE

Référencé par Regulateur : :changerEtatBuzzer(), Regulateur : :envoyerMenuState(), et Regulateur : :Regulateur().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 107: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.21 Référence de la classe Port 103

10.20.1.2 int ParametresRegulateur : :modeCoupureChargeFaible

coupure charge faible : bits 2,1,0 de MENU_STATE

Référencé par Regulateur : :changerModeCharge(), Regulateur : :envoyerMenuState(), et Regulateur : :Regulateur().

10.20.1.3 bool ParametresRegulateur : :modeLock

Référencé par Regulateur : :changerEtatCadenas(), Regulateur : :envoyerMenuState2(), et Regulateur : :Regulateur().

10.20.1.4 int ParametresRegulateur : :modeNuit

buzzer : bits 7,6,5 de MENU_STATE

Référencé par Regulateur : :changerModeNuit(), Regulateur : :envoyerMenuState(), et Regulateur : :Regulateur().

10.20.1.5 int ParametresRegulateur : :serialInterface

Référencé par Regulateur : :decoderMenuState2(), Regulateur : :envoyerMenuState2(), et Regulateur : :Regulateur().

10.20.1.6 int ParametresRegulateur : :typeBatterie

type batterie : bit 3 de MENU_STATE

Référencé par Regulateur : :changerTypeBatterie(), Regulateur : :envoyerMenuState(), et Regulateur : :Regulateur().

La documentation de cette structure a été générée à partir du fichier suivant :– regulateur.h

10.21 Reference de la classe Port

Classe de gestion d’un port série.

#include <port.h>

Fonctions membres publiques

– Port ()Constructeur par défaut.

– Port (const QString &portName, int debit=9600)Constructeur.

– ∼Port ()Destructeur.

– bool ouvrir (const QString &portName, int debit=9600)Ouvre et configure un port série.

– int transmettre (const QString &message)Transmet un message sur le port série.

– int recevoir (QString &message)Réceptionne un message sur le port série.

– int recevoir (QString &message, int nb)Réceptionne un message de nb caractères sur le port série.

– char lire ()Lit un caractère sur le port série.

– long getNbOctetsDisponibles ()Retourne le nombre d’octets disponible pour une lecture.

– bool estOuvert ()Retourne l’état du port série.

Connecteurs prives

– void onReadyRead ()Slot non utilisé

Attributs prives

– QextSerialPort ∗ port

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 108: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.21 Référence de la classe Port 104

10.21.1 Description detaillee

Auteur

Thierry Vaira <[email protected]>

10.21.2 Documentation des constructeurs et destructeur

10.21.2.1 Port : :Port ( )

:port(NULL){}

10.21.2.2 Port : :Port ( const QString & portName, int debit = 9600 )

ParametresportName QString& indiquant le nom et chemin vers le fichier de périphérique

debit entier précisant le débit (9600 bits/s par défaut)

Références ouvrir().

:port(NULL){#ifdef DEBUG_PORT

qDebug() << "<Port::Port()> port : " << portName;#endif

if(!portName.isEmpty()){

ouvrir(portName, debit);}

}

10.21.2.3 Port : :∼Port ( )

Références port.

{if (port != NULL && port->isOpen())

port->close();#ifdef DEBUG_PORT

qDebug() << "<Port::~Port()> port ferme";#endif

}

10.21.3 Documentation des fonctions membres

10.21.3.1 Port : :estOuvert ( )

Renvoie

bool vrai si le port est ouvert sinon faux

Références port.

Référencé par CV7 : :CV7(), SuiveurSolaire : :getEtat(), Regulateur : :Regulateur(), et SuiveurSolaire : :SuiveurSolaire().

{if (port != NULL)

return port->isOpen();else

return false;}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 109: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.21 Référence de la classe Port 105

10.21.3.2 Port : :getNbOctetsDisponibles ( )

Renvoie

long nombre d’octets disponible pour une lecture

Références port.

{return port->bytesAvailable();

}

10.21.3.3 Port : :lire ( )

Renvoie

char le caractère reçu

Références port.

{if (port == NULL || !port->isOpen())

return -1;

char c;int n = port->read(&c, 1);if (n == -1)

c = ’\0’; // fin de chaine

//printf("%c (0x%02X)\n", c, c);

return c;}

10.21.3.4 Port : :onReadyRead ( ) [private, slot]

Références port.

{QByteArray datas;

int a = port->bytesAvailable();datas.resize(a);

port->read(datas.data(), datas.size());#ifdef DEBUG_PORT

qDebug() << "<Port::onReadyRead()> nb octets lus : " << datas.size();qDebug() << "<Port::onReadyRead()> donnees recues :" << datas;

#endif

#ifdef DEBUG_PORT

for(int i=0;i<datas.size();i++)printf("0x%02X ", (unsigned char)datas.data()[i]);

printf("\n\n");#endif

}

10.21.3.5 Port : :ouvrir ( const QString & portName, int debit = 9600 )

ParametresportName QString indiquant le nom et chemin vers le fichier de périphérique

debit entier précisant le débit (9600 bits/s par défaut)

Renvoie

bool vrai si le port est ouvert sinon faux

Références port.

Référencé par Port().

{

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 110: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.21 Référence de la classe Port 106

if (port != NULL && port->isOpen())port->close();

// mode synchrone : QextSerialPort::EventDriven (Can only be used withthreads started with QThread)

//port = new QextSerialPort(QLatin1String("/dev/ttyAMA0"),QextSerialPort::EventDriven);

// ou// mode asynchrone : QextSerialPort::Pollingthis->port = new QextSerialPort(portName, QextSerialPort::Polling);switch(debit){case 9600 :

port->setBaudRate(BAUD9600);break;

case 4800 :port->setBaudRate(BAUD4800);break;

}port->setFlowControl(FLOW_OFF);port->setParity(PAR_NONE);port->setDataBits(DATA_8);port->setStopBits(STOP_1);port->setTimeout(500);

//port->open(QIODevice::ReadWrite | QIODevice::Unbuffered);if (port->open(QIODevice::ReadWrite) == true){

//connect(port, SIGNAL(readyRead()), this, SLOT(onReadyRead()));#ifdef DEBUG_PORT

qDebug() << "<Port::ouvrir()> port " << port->portName() << " ouvert";#endif

}else{

qDebug() << "<Port::ouvrir()> Erreur ouverture port " << port->portName();

}

return port->isOpen();}

10.21.3.6 Port : :recevoir ( QString & message )

Parametresmessage le message reçu

Renvoie

int nombre d’octets reçus

Références BUFFERSIZE, et port.

Référencé par SuiveurSolaire : :acquerir(), Regulateur : :acquerirHistorique(), Regulateur : :acquerirInformations(), Regulateur-: :envoyerMenuState(), Regulateur : :envoyerMenuState2(), et CV7 : :recevoirPhrases().

{char buffer[BUFFERSIZE+1]; // + fin de chaineint nbOctets = -1;

memset(buffer, 0x00, BUFFERSIZE+1);

if (port == NULL || !port->isOpen())return -1;

nbOctets = port->bytesAvailable();if(nbOctets > BUFFERSIZE)

nbOctets = BUFFERSIZE;#ifdef DEBUG_PORT

if(nbOctets != 0)qDebug() << Q_FUNC_INFO << "octets recus disponibles :" << nbOctets;

#endif

int n = port->read(buffer, nbOctets);if (n != -1)

buffer[n] = ’\0’; // fin de chaineelse

buffer[0] = ’\0’; // fin de chaine

message = QLatin1String(buffer);

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 111: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.21 Référence de la classe Port 107

#ifdef DEBUG_PORT

if(n != 0){

qDebug() << Q_FUNC_INFO << "octets lus :" << n;for(int i=0;i<n;i++)

printf("0x%02X ", (unsigned char)buffer[i]);printf("\n\n");

}#endif

return n;}

10.21.3.7 Port : :recevoir ( QString & message, int nb )

Parametresmessage le message reçu

nb nombre d’octets à recevoir

Renvoie

int nombre d’octets reçus

Références port.

{char buffer[nb+1]; // + fin de chaineint lus, n;int nbTentatives = 0;

if (port == NULL || !port->isOpen())return -1;

memset(buffer, 0x00, nb+1);n = 0;do{

if(port->bytesAvailable()){

lus = port->read(&buffer[n], (nb-n));n += lus;

}else{

::usleep(100000);++nbTentatives;

}}while(n < nb && nbTentatives < 32);

if(n == nb)buffer[nb] = ’\0’; // fin de chaine

elsebuffer[n] = ’\0’; // fin de chaine

message = QLatin1String(buffer);

#ifdef DEBUG_PORT

//qDebug() << Q_FUNC_INFO << "nbTentatives :" << nbTentatives;//qDebug() << Q_FUNC_INFO << "message :" << message;/*for(int i=0;i<n;i++)

printf("0x%02X ", (unsigned char)buffer[i]);

printf("\n\n");*/#endif

return n;}

10.21.3.8 Port : :transmettre ( const QString & message )

Parametresmessage const QString & le message à transmettre

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 112: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.22 Référence de la classe ProtectionVent 108

Renvoie

int nombre de caractères transmis

Références port.

Référencé par Regulateur : :acquerirHistorique(), Regulateur : :acquerirInformations(), SuiveurSolaire : :deplacerAngleElevation(),SuiveurSolaire : :deplacerAngleHoraire(), SuiveurSolaire : :deplacerManuel(), Regulateur : :envoyerMenuState(), Regulateur-: :envoyerMenuState2(), SuiveurSolaire : :gererModeAutoProgramme(), et SuiveurSolaire : :stopperCommande().

{int nbOctets = -1;

if (port == NULL || !port->isOpen())return -1;

nbOctets = port->write(message.toLatin1());

#ifdef DEBUG_PORT

//qDebug("<Port::transmettre()> octets transmis : %d", nbOctets);qDebug() << "<Port::transmettre()> message transmis : " << message;/*if(nbOctets != 0)

{

for(int i=0;i<nbOctets;i++)

printf("0x%02X ", (unsigned char)message[i].toAscii());

printf("\n\n");

}*/#endif

return nbOctets;}

10.21.4 Documentation des donnees membres

10.21.4.1 QextSerialPort∗ Port : :port [private]

un pointeur sur un objet QextSerialPort

Référencé par estOuvert(), getNbOctetsDisponibles(), lire(), onReadyRead(), ouvrir(), recevoir(), transmettre(), et ∼Port().

La documentation de cette classe a été générée à partir des fichiers suivants :– port.h– port.cpp

10.22 Reference de la classe ProtectionVent

#include <protectionVent.h>

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 113: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.22 Référence de la classe ProtectionVent 109

Graphe de collaboration de ProtectionVent :

ProtectionVent

- baseDeDonnees- horloge- fini- protection- protectionActivee- attente- periode- vitesse- vitesseMax- mutex- waitCondition- configurationProtectionVent

+ ProtectionVent()+ ~ProtectionVent()+ lireModeDeFonctionnement()+ acquerir()+ surveillerVent()+ enregisterAlerte()+ attendrePeriode()+ main()+ finir()+ terminer()+ arreterProtection()+ activerProtectionVent()+ editerVitesseMaxProtectionVent()+ editerFrequenceProtectionVent()- msleep()- annuler()

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

baseDeDonnees

baseDeDonnees

ConfigurationProtectionVent

+ etat+ vitesseMax+ periode

configurationProtectionVent

Horloge

- mutex- _tic- _top- simulation- programmation- baseDeTemps- debutSimulation- instance- nbAcces

+ simuler()+ estEnSimulation()+ getBaseDeTemps()+ demarrer()+ arreter()+ programmer()+ getDateEtHeureActuelle()+ getDateActuelle()+ getHeureActuelle()+ getDateEtHeureActuelle()and 5 more...+ getInstance()+ detruireInstance()+ getDateEtHeure()+ getDate()+ getHeure()+ getNbMsec()+ getNbJours()+ getNbJours()+ getNbMinutes()+ getNbMinutes()- Horloge()- ~Horloge()- generer()- tic()- top()

horloge

instance

Connecteurs publics

– void main ()– void finir ()– void terminer ()– void arreterProtection ()– void activerProtectionVent (bool etatProtection)– void editerVitesseMaxProtectionVent (double vitesseMaxDefinie)– void editerFrequenceProtectionVent (int frequence)

Signaux

– void proteger (bool etat)

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 114: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.22 Référence de la classe ProtectionVent 110

Signal envoyé au Suiveur pour déclencher ou arreter la protection vent.– void recupererConfigurationProtectionVent ()

Récupère la configuration de la protection contre le vent.– void alerte (bool protectionActivee)

Signal une alerte.

Fonctions membres publiques

– ProtectionVent ()– ∼ProtectionVent ()– void lireModeDeFonctionnement ()– void acquerir ()– void surveillerVent ()– void enregisterAlerte ()– void attendrePeriode ()

Fonctions membres privees

– void msleep (unsigned long sleepMS)– void annuler ()

Attributs prives

– BaseDeDonnees ∗ baseDeDonnees– Horloge ∗ horloge– bool fini– bool protection– bool protectionActivee– int attente– int periode– double vitesse– double vitesseMax– QMutex mutex– QWaitCondition waitCondition– ConfigurationProtectionVent configurationProtectionVent

10.22.1 Documentation des constructeurs et destructeur

10.22.1.1 ProtectionVent : :ProtectionVent ( )

Références arreterProtection(), baseDeDonnees, BaseDeDonnees : :connecter(), fini, Horloge : :getInstance(), BaseDeDonnees-: :getInstance(), et horloge.

: baseDeDonnees(NULL), horloge(NULL), fini(false), protection(false), protectionActivee(false), attente(600), periode(PERIODE_ACQUISITION_METEO), vitesse(0.), vitesseMax(100.)

{#ifdef DEBUG_PROTECTIONVENT

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

baseDeDonnees = BaseDeDonnees::getInstance();horloge = Horloge::getInstance();baseDeDonnees->connecter();

connect(horloge, SIGNAL(fini(QString)), this, SLOT(arreterProtection()),Qt::DirectConnection);

}

10.22.1.2 ProtectionVent : :∼ProtectionVent ( )

Références baseDeDonnees, Horloge : :detruireInstance(), BaseDeDonnees : :detruireInstance(), et BaseDeDonnees : :execu-ter().

{QString requeteEcritureEtat = "UPDATE ‘Modules‘ SET ‘etat‘= ’0’ WHERE

‘nomModule‘=’surveillance’";QString requeteEcritureAlarme = "UPDATE ‘Modules‘ SET ‘alarme‘= ’0’ WHERE

‘nomModule‘=’surveillance’";QString requeteChangementProtection = "UPDATE ‘Surveillance‘ SET

‘protection‘= ’0’ WHERE ‘idSurveillance‘ =’4’";QString requeteChangementVitesse = "UPDATE ‘Surveillance‘ SET ‘vitesse‘=

’90’ WHERE ‘idSurveillance‘ =’4’";

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 115: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.22 Référence de la classe ProtectionVent 111

QString requeteChangementFrequence = "UPDATE ‘Surveillance‘ SET‘periodeSurveillance‘= ’10’ WHERE ‘idSurveillance‘ =’4’";

baseDeDonnees->executer(requeteEcritureEtat);baseDeDonnees->executer(requeteEcritureAlarme);baseDeDonnees->executer(requeteChangementProtection);baseDeDonnees->executer(requeteChangementVitesse);baseDeDonnees->executer(requeteChangementFrequence);

Horloge::detruireInstance();BaseDeDonnees::detruireInstance();

#ifdef DEBUG_PROTECTIONVENTqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;

#endif}

10.22.2 Documentation des fonctions membres

10.22.2.1 ProtectionVent : :acquerir ( )

Références baseDeDonnees, lireModeDeFonctionnement(), BaseDeDonnees : :recuperer(), et vitesse.

Référencé par main().

{QString vitesseRecue;QString requete = "SELECT vitesseVent FROM MesuresStationMeteo WHERE

idMesure=(SELECT MAX(idMesure) FROM MesuresStationMeteo)";baseDeDonnees->recuperer(requete,vitesseRecue);vitesse = vitesseRecue.toDouble();

#ifdef DEBUG_PROTECTIONVENTqDebug() << Q_FUNC_INFO << __LINE__ << "vitesse" << vitesse;

#endiflireModeDeFonctionnement();

}

10.22.2.2 void ProtectionVent : :activerProtectionVent ( bool etatProtection ) [slot]

Références alerte(), baseDeDonnees, BaseDeDonnees : :executer(), protectionActivee, et BaseDeDonnees : :recuperer().

{QString requeteChangement;QString requeteLecture = "SELECT ‘protection‘ FROM ‘Surveillance‘ WHERE

‘idSurveillance‘ = ’4’";QString etat;baseDeDonnees->recuperer(requeteLecture,etat);if (etatProtection == true){

QString requeteEcriture = "UPDATE ‘Modules‘ SET ‘etat‘= ’1’ WHERE‘nomModule‘=’surveillance’";requeteChangement = "UPDATE ‘Surveillance‘ SET ‘protection‘= ’1’ WHERE‘idSurveillance‘ =’4’";baseDeDonnees->executer(requeteEcriture);

}else{

QString requete = "UPDATE ‘Modules‘ SET ‘alarme‘= ’0’ WHERE ‘nomModule‘= ’surveillance’";QString requeteEcritureEtat = "UPDATE ‘Modules‘ SET ‘etat‘= ’0’ WHERE‘nomModule‘=’surveillance’";requeteChangement = "UPDATE ‘Surveillance‘ SET ‘protection‘= ’0’ WHERE‘idSurveillance‘ =’4’";protectionActivee = false;emit alerte(protectionActivee);baseDeDonnees->executer(requete);baseDeDonnees->executer(requeteEcritureEtat);

}

baseDeDonnees->executer(requeteChangement);

#ifdef DEBUG_PROTECTIONVENTqDebug() << Q_FUNC_INFO << "changement d’etat";

#endif}

10.22.2.3 ProtectionVent : :alerte ( bool protectionActivee ) [signal]

Référencé par activerProtectionVent(), arreterProtection(), et surveillerVent().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 116: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.22 Référence de la classe ProtectionVent 112

10.22.2.4 ProtectionVent : :annuler ( ) [inline, private]

Références waitCondition.

Référencé par finir().

{waitCondition.wakeAll();

}

10.22.2.5 ProtectionVent : :arreterProtection ( ) [slot]

Références alerte(), attente, baseDeDonnees, BaseDeDonnees : :executer(), horloge, Horloge : :programmer(), protection,protectionActivee, proteger(), BaseDeDonnees : :recuperer(), vitesse, et vitesseMax.

Référencé par ProtectionVent().

{QString vitesseRecue;QString requete = "SELECT vitesseVent FROM MesuresStationMeteo WHERE

idMesure=(SELECT MAX(idMesure) FROM MesuresStationMeteo)";#ifdef DEBUG_PROTECTIONVENT

qDebug() << Q_FUNC_INFO << __LINE__;#endif

if(protection == false){

return;}baseDeDonnees->recuperer(requete,vitesseRecue);vitesse = vitesseRecue.toDouble();if (vitesse < vitesseMax){

#ifdef DEBUG_PROTECTIONVENTqDebug() << Q_FUNC_INFO << __LINE__ << "emit proteger(false)";

#endifemit proteger(false);protectionActivee = false;emit alerte(protectionActivee);QString requete = "UPDATE ‘Modules‘ SET ‘alarme‘= ’0’ WHERE ‘nomModule‘= ’surveillance’";baseDeDonnees->executer(requete);

}else{

horloge->programmer(attente);}

}

10.22.2.6 ProtectionVent : :attendrePeriode ( )

Références msleep(), et periode.

Référencé par main().

{#ifdef DEBUG_PROTECTIONVENT

qDebug() << Q_FUNC_INFO << periode;#endif

this->msleep(periode);}

10.22.2.7 ProtectionVent : :editerFrequenceProtectionVent ( int frequence ) [slot]

Parametresfrequence

Références baseDeDonnees, et BaseDeDonnees : :executer().

{QString requete = "UPDATE ‘Surveillance‘ SET ‘periodeSurveillance‘= ’" +QString::number(frequence) + "’ WHERE ‘idSurveillance‘ =’4’";

baseDeDonnees->executer(requete);#ifdef DEBUG_PROTECTIONVENT

qDebug() << Q_FUNC_INFO << "La frequence a ete modifiee à la valeur :" <<frequence;

#endif}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 117: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.22 Référence de la classe ProtectionVent 113

10.22.2.8 ProtectionVent : :editerVitesseMaxProtectionVent ( double vitesseMaxDefinie ) [slot]

ParametresvitesseMaxDefinie

Références baseDeDonnees, et BaseDeDonnees : :executer().

{QString requete = "UPDATE ‘Surveillance‘ SET ‘vitesse‘= ’" +QString::number(vitesseMaxDefinie) + "’ WHERE ‘idSurveillance‘ =’4’";

baseDeDonnees->executer(requete);#ifdef DEBUG_PROTECTIONVENT

qDebug() << Q_FUNC_INFO << "La vitesse maximum a ete modifiee à la valeur :" << vitesseMaxDefinie;

#endif}

10.22.2.9 ProtectionVent : :enregisterAlerte ( )

Références baseDeDonnees, et BaseDeDonnees : :executer().

Référencé par surveillerVent().

{QDateTime maintenant = QDateTime::currentDateTime();QString horodatage = maintenant.toString("yyyy-MM-dd hh:mm:ss");QString type = "ProtectionVent";QString description = "Vitesse du vent trop elevee";QString requeteAlertes = "INSERT INTO

‘Alertes‘(‘idModule‘,‘type‘,‘horodatage‘,‘description‘) VALUES (’3’,’" + type + "’, ’" + horodatage + "’,’" +description + "’)";

QString requeteModules = "UPDATE ‘Modules‘ SET ‘alarme‘= ’1’ WHERE‘nomModule‘ = ’surveillance’";

baseDeDonnees->executer(requeteAlertes);baseDeDonnees->executer(requeteModules);

}

10.22.2.10 ProtectionVent : :finir ( ) [slot]

Références annuler(), et fini.

Référencé par IhmTournesol : :∼IhmTournesol().

{fini = true;annuler();

}

10.22.2.11 ProtectionVent : :lireModeDeFonctionnement ( )

Références attente, baseDeDonnees, periode, PERIODE_ACQUISITION_METEO, protection, BaseDeDonnees : :recuperer(), etvitesseMax.

Référencé par acquerir().

{QString requeteLecture = "SELECT periodeSurveillance, protection, vitesse,

attente FROM Surveillance";QStringList parametres;

bool retour = baseDeDonnees->recuperer(requeteLecture, parametres);if(retour){

#ifdef DEBUG_PROTECTIONVENTqDebug() << Q_FUNC_INFO << parametres;

#endif

// au moins 1s ?if(parametres.at(0).toInt() > 0){

periode = parametres.at(0).toInt() * 1000;}else{

periode = PERIODE_ACQUISITION_METEO;}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 118: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.22 Référence de la classe ProtectionVent 114

protection = parametres.at(1).toInt();vitesseMax = parametres.at(2).toDouble();attente = parametres.at(3).toInt();

#ifdef DEBUG_PROTECTIONVENTqDebug() << Q_FUNC_INFO << vitesseMax << "vitesse max";

#endif}else{

qDebug() << Q_FUNC_INFO << QString::fromUtf8("Erreur requête !");}

}

10.22.2.12 ProtectionVent : :main ( ) [slot]

Références acquerir(), attendrePeriode(), fini, et surveillerVent().

{

#ifdef DEBUG_PROTECTIONVENTqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this << "demarrage

";#endif

while(!fini){

acquerir();surveillerVent();attendrePeriode();

}

#ifdef DEBUG_PROTECTIONVENTqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this << "arret";

#endif

}

10.22.2.13 ProtectionVent : :msleep ( unsigned long sleepMS ) [inline, private]

ParametressleepMS

Références mutex, et waitCondition.

Référencé par attendrePeriode().

{waitCondition.wait(&mutex, sleepMS);

}

10.22.2.14 ProtectionVent : :proteger ( bool etat ) [signal]

Référencé par arreterProtection(), et surveillerVent().

10.22.2.15 ProtectionVent : :recupererConfigurationProtectionVent ( ) [signal]

10.22.2.16 ProtectionVent : :surveillerVent ( )

Références alerte(), attente, enregisterAlerte(), horloge, Horloge : :programmer(), protection, protectionActivee, proteger(), vi-tesse, et vitesseMax.

Référencé par main().

{if(protection == false)

return;

if(vitesse >= vitesseMax && protectionActivee == false){

#ifdef DEBUG_PROTECTIONVENTqDebug() << Q_FUNC_INFO << __LINE__ << "emit proteger(true)";

#endifprotectionActivee = true;emit proteger(true);emit alerte(protectionActivee);horloge->programmer(attente);enregisterAlerte();

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 119: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.22 Référence de la classe ProtectionVent 115

#ifdef DEBUG_PROTECTIONVENTqDebug() << Q_FUNC_INFO << __LINE__ << protectionActivee;

#endif}

}

10.22.2.17 ProtectionVent : :terminer ( ) [slot]

{#ifdef DEBUG_PROTECTIONVENT

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif}

10.22.3 Documentation des donnees membres

10.22.3.1 int ProtectionVent : :attente [private]

temps en secondes

Référencé par arreterProtection(), lireModeDeFonctionnement(), et surveillerVent().

10.22.3.2 BaseDeDonnees∗ ProtectionVent : :baseDeDonnees [private]

Référencé par acquerir(), activerProtectionVent(), arreterProtection(), editerFrequenceProtectionVent(), editerVitesseMax-ProtectionVent(), enregisterAlerte(), lireModeDeFonctionnement(), ProtectionVent(), et ∼ProtectionVent().

10.22.3.3 ConfigurationProtectionVent ProtectionVent : :configurationProtectionVent [private]

10.22.3.4 bool ProtectionVent : :fini [private]

etat de la boucle du thread

Référencé par finir(), main(), et ProtectionVent().

10.22.3.5 Horloge∗ ProtectionVent : :horloge [private]

Référencé par arreterProtection(), ProtectionVent(), et surveillerVent().

10.22.3.6 QMutex ProtectionVent : :mutex [private]

pour les temporisations

Référencé par msleep().

10.22.3.7 int ProtectionVent : :periode [private]

période en millisecondes

Référencé par attendrePeriode(), et lireModeDeFonctionnement().

10.22.3.8 bool ProtectionVent : :protection [private]

etat souhaité de la protection

Référencé par arreterProtection(), lireModeDeFonctionnement(), et surveillerVent().

10.22.3.9 bool ProtectionVent : :protectionActivee [private]

etat actuel de la protection

Référencé par activerProtectionVent(), arreterProtection(), et surveillerVent().

10.22.3.10 double ProtectionVent : :vitesse [private]

vitesse du vent en km/h

Référencé par acquerir(), arreterProtection(), et surveillerVent().

10.22.3.11 double ProtectionVent : :vitesseMax [private]

vitesse max du vent en km/h

Référencé par arreterProtection(), lireModeDeFonctionnement(), et surveillerVent().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 120: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 116

10.22.3.12 QWaitCondition ProtectionVent : :waitCondition [private]

pour les temporisations

Référencé par annuler(), et msleep().

La documentation de cette classe a été générée à partir des fichiers suivants :– protectionVent.h– protectionVent.cpp

10.23 Reference de la classe Regulateur

Gestion de l’acquisition et du traitement des données du régulateur de charge phocos CX20.

#include <regulateur.h>

Graphe de collaboration de Regulateur :

Regulateur

- port- informationsRegulateur- journalisationRegulateur- alarmesRegulateur- parametresRegulateur- bdd- mutex

+ Regulateur()+ ~Regulateur()+ acquerir()+ acquerirInformations()+ acquerirHistorique()+ decoderTrameInformations()+ decoderTrameHistorique()+ decoderAlarmes()+ decoderMenuState()+ envoyerMenuState()+ decoderMenuState2()+ envoyerMenuState2()+ changerEtatBuzzer()+ changerTypeBatterie()+ changerModeCharge()+ changerEtatCadenas()+ changerModeNuit()

InformationsRegulateur

+ niveauCharge+ tensionBatterie+ surplusEnergie+ courantPhotovoltaique+ courantCharge+ temperature+ modeChargeBatterie+ onOff

informationsRegulateur

JournalisationRegulateur

+ ampereHeurePVExcedant+ ampereHeurePvConsomme+ niveauChargeMatin+ niveauChargeSoir+ chargeAmpaireHeure+ nbSemaines+ BuzzerEtat+ typeBatterie+ mode+ modeLock+ serialInterface+ modenuit

journalisationRegulateur

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

bdd

baseDeDonnees

AlarmesRegulateur

+ alarmeBatterie+ alarmeChargeComplete+ alarmeDebranchementBatterie+ alarmeSurtensionPv+ alarmeSurtensionCharge+ alarmeSurvoltageBatterie+ alarmeSurchauffePv+ alarmeSurchauffeCharge+ trameRecu

alarmesRegulateur

ParametresRegulateur

+ modeNuit+ buzzerOnOff+ typeBatterie+ modeCoupureChargeFaible+ modeLock+ serialInterface

parametresRegulateur

Port

- port

+ Port()+ Port()+ ~Port()+ ouvrir()+ transmettre()+ recevoir()+ recevoir()+ lire()+ getNbOctetsDisponibles()+ estOuvert()- onReadyRead()

port

Connecteurs publics

– void changerEtatBuzzer ()– void changerTypeBatterie (int type)

Slot de changement de type de batterie.– void changerModeCharge (int mode)

Slot de changement de type de batterie.– void changerEtatCadenas ()

Slot de changement d’etat du cadenas.– void changerModeNuit ()

Slot de changement de mode pour la nuit.

Signaux

– void nouvellesInformationsRegulateur (InformationsRegulateur informationsRegulateur)signal envoyant la structure informationsRegulateur

– void nouvellesJournalisationRegulateur (JournalisationRegulateur journalisationRegulateur)signal envoyant la structure journalisationRegulateur

– void nouvellesAlarmesRegulateur (AlarmesRegulateur alarmesRegulateur)signal envoyant la structure alarmesRegulateur

Fonctions membres publiques

– Regulateur ()constructeur par défaut

– ∼Regulateur ()

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 121: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 117

destructeur– void acquerir ()

acquisition des trames du régulateur de charge Phocos– bool acquerirInformations ()

acquisition de la trame Informations du régulateur de charge Phocos– bool acquerirHistorique ()

acquisition de la trame Historique du régulateur de charge Phocos– void decoderTrameInformations (QString reponse)

Décode les différents champs de la trame d’information (’ ’ ou 0x20)– bool decoderTrameHistorique (QString reponse)

Décode les différents champs de la trame de journalisation (’ !’ ou 0x21)– void decoderAlarmes (QString reponse)

Décode le champs "état" de la trame de journalisation afin d’en déduire les alertes qui sont déclenchées.– void decoderMenuState (QString reponse)– void envoyerMenuState ()– void decoderMenuState2 (QString reponse)

Décode le champ Menustate 2 qui fournit les paramètressi le boutton est verrouillé ou non.– void envoyerMenuState2 ()

Envoie le menuState 2.

Attributs prives

– Port ∗ port– InformationsRegulateur informationsRegulateur– JournalisationRegulateur journalisationRegulateur– AlarmesRegulateur alarmesRegulateur– ParametresRegulateur parametresRegulateur– BaseDeDonnees ∗ bdd– QMutex mutex

10.23.1 Description detaillee

Auteur

Adrien Thiel <[email protected]>

10.23.2 Documentation des constructeurs et destructeur

10.23.2.1 Regulateur : :Regulateur ( )

Références bdd, ParametresRegulateur : :buzzerOnOff, BaseDeDonnees : :connecter(), Port : :estOuvert(), BaseDeDonnees-: :getInstance(), ParametresRegulateur : :modeCoupureChargeFaible, ParametresRegulateur : :modeLock, Parametres-Regulateur : :modeNuit, parametresRegulateur, port, ParametresRegulateur : :serialInterface, et ParametresRegulateur : :type-Batterie.

{#ifdef DEBUG_REGULATEUR

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif#ifndef SIMULATION_REGULATEUR

port = new Port(QString("/dev/phocos"), 9600);#else

port = new Port(QString("/dev/ttyUSB0"), 9600);#endif

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << "ouverture port phocos :" << port->estOuvert();

#endif

bdd = BaseDeDonnees::getInstance();bdd->connecter();

//informationsRegulateur.ampereHeurePvConsomme = 0.;//informationsRegulateur.onOff = false;// par défautparametresRegulateur.modeNuit = 0;parametresRegulateur.buzzerOnOff = false;parametresRegulateur.typeBatterie = 1; // GEL VRLAparametresRegulateur.modeCoupureChargeFaible = 1; // page 22 doc phocosparametresRegulateur.serialInterface = 2;parametresRegulateur.modeLock = false;

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 122: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 118

10.23.2.2 Regulateur : :∼Regulateur ( )

Références port.

{#ifdef DEBUG_REGULATEUR

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

delete port;//BaseDeDonnees::detruireInstance();

}

10.23.3 Documentation des fonctions membres

10.23.3.1 Regulateur : :acquerir ( )

Références acquerirHistorique(), et acquerirInformations().

Référencé par AcquisitionRegulateur : :main().

{acquerirInformations();

acquerirHistorique();}

10.23.3.2 Regulateur : :acquerirHistorique ( )

Renvoie

bool vrai si une trame a été lue

Références decoderAlarmes(), decoderTrameHistorique(), LG_TRAME_HISTORIQUE, mutex, port, Port : :recevoir(), et Port-: :transmettre().

Référencé par acquerir().

{QMutexLocker locker(&mutex);QString requete;QString reponse;int nbTentatives = 0;bool reponseOk = false;

/*Trame de journalisations.

*/#ifndef SIMULATION_REGULATEUR

requete = "!"; // 0x21port->transmettre(requete);

reponseOk = false;nbTentatives = 0;do{

port->recevoir(reponse, 1);++nbTentatives;

}while(reponse.at(0) != ’!’ && nbTentatives < 6);

if(nbTentatives < 6){

port->recevoir(reponse, LG_TRAME_HISTORIQUE-1);reponse.prepend(’!’);reponseOk = true;

}else{

reponseOk = false;qDebug() << QString::fromUtf8("Erreur : impossible de récupérer unetrame 0x21 au bout de 6 essais !");

}#else

requete = "!"; // 0x21port->transmettre(requete);

port->recevoir(reponse, LG_TRAME_HISTORIQUE);// ou :reponse = "!E1 02 1A E6 00 00 FA 90 FF FF 02 02 02 09 6E FF FF FF FF 40 00

00 01 00 00 48 00 00 00 00 00 00 00 08 69 68 10 05 00 20 65 77 07 71 71 00 00 0000 00 BB 01 6E 6D 00 00 00 00 00 9A 02 6D 6C 00 00 00 00 00 99 00 6D 6C 00 00

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 123: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 119

00 00 00 99 00 6C 6A 00 00 00 00 00 88 00 6A 69 00 00 00 00 00 77 20 6D 6C 00 0000 00 00 99 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ";

reponseOk = true;#endif

if(reponseOk == true){

decoderTrameHistorique(reponse);decoderAlarmes(reponse);

}

return reponseOk;}

10.23.3.3 Regulateur : :acquerirInformations ( )

Renvoie

bool vrai si une trame a été lue

A faire assurer la détection du début de trame 0x20

Références alarmesRegulateur, decoderTrameInformations(), LG_TRAME_INFORMATIONS, mutex, port, Port : :recevoir(), -AlarmesRegulateur : :trameRecu, et Port : :transmettre().

Référencé par acquerir().

{QMutexLocker locker(&mutex);QString requete;QString reponse;int nbTentatives = 0;bool reponseOk = false;/*Trames d’informations.

*/#ifndef SIMULATION_REGULATEUR

// dialogue avec le Phocosrequete = " "; // 0x20port->transmettre(requete);

reponseOk = false;nbTentatives = 0;do{

port->recevoir(reponse, 1);++nbTentatives;

}while(reponse.at(0) != ’ ’ && nbTentatives < 3);

if(nbTentatives < 3){

port->recevoir(reponse, LG_TRAME_INFORMATIONS-1);// Risque de confondre de le code de début de trame (’ ’) et leséparateur de champs (’ ’)// vérification du champ version ?if(reponse.startsWith("064")){

reponse.prepend(’ ’);reponseOk = true;

}else{

reponseOk = false;qDebug() << QString::fromUtf8("Erreur : ce n’est pas la version 064

attendu d’une trame 0x20 d’un CX20 !");}

}else{

reponseOk = false;qDebug() << QString::fromUtf8("Erreur : impossible de récupérer unetrame 0x20 au bout de 3 essais !");

}alarmesRegulateur.trameRecu = reponseOk;

#else// dialogue sans le Phocos// avec le simulateur// $ sudo ln -s /dev/ttyUSB1 /dev/phocosrequete = " "; // 0x20port->transmettre(requete);

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 124: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 120

port->recevoir(reponse, LG_TRAME_INFORMATIONS);// ou sans :reponse = " 064 014 003 109 169 097 020 000 100 000 134 005 +003 +003 145 ";

reponseOk = true;#endif

if(reponseOk == true)decoderTrameInformations(reponse);

return reponseOk;}

10.23.3.4 void Regulateur : :changerEtatBuzzer ( ) [slot]

Références JournalisationRegulateur : :BuzzerEtat, ParametresRegulateur : :buzzerOnOff, envoyerMenuState(), journalisation-Regulateur, mutex, et parametresRegulateur.

{QMutexLocker locker(&mutex);

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO;

#endifif(journalisationRegulateur.BuzzerEtat == true){

parametresRegulateur.buzzerOnOff = false;}else{

parametresRegulateur.buzzerOnOff = true;}

envoyerMenuState();}

10.23.3.5 Regulateur : :changerEtatCadenas ( ) [slot]

Parametres

Références envoyerMenuState2(), journalisationRegulateur, JournalisationRegulateur : :modeLock, ParametresRegulateur-: :modeLock, mutex, et parametresRegulateur.

{QMutexLocker locker(&mutex);

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO;

#endif

if(journalisationRegulateur.modeLock == true){

parametresRegulateur.modeLock = false;}else{

parametresRegulateur.modeLock = true;}

envoyerMenuState2();}

10.23.3.6 Regulateur : :changerModeCharge ( int mode ) [slot]

Parametresmode

Références envoyerMenuState(), journalisationRegulateur, JournalisationRegulateur : :mode, ParametresRegulateur : :mode-CoupureChargeFaible, mutex, et parametresRegulateur.

{QMutexLocker locker(&mutex);

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << "nouveau mode" << mode;

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 125: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 121

#endifif(journalisationRegulateur.mode != mode){

parametresRegulateur.modeCoupureChargeFaible = mode;}else{

return;}envoyerMenuState();

}

10.23.3.7 Regulateur : :changerModeNuit ( ) [slot]

Parametres

Références envoyerMenuState(), journalisationRegulateur, JournalisationRegulateur : :modenuit, ParametresRegulateur : :mode-Nuit, mutex, et parametresRegulateur.

{QMutexLocker locker(&mutex);

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO;

#endifif(journalisationRegulateur.modenuit == 0){

parametresRegulateur.modeNuit = 5;}else{

parametresRegulateur.modeNuit = 0;}

envoyerMenuState();}

10.23.3.8 Regulateur : :changerTypeBatterie ( int type ) [slot]

Parametrestype

Références envoyerMenuState(), journalisationRegulateur, JournalisationRegulateur : :modeLock, mutex, parametresRegulateur,JournalisationRegulateur : :typeBatterie, et ParametresRegulateur : :typeBatterie.

{QMutexLocker locker(&mutex);

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << "nouveau type batterie" << type;

#endifif(journalisationRegulateur.typeBatterie != type){

parametresRegulateur.typeBatterie = type;}else{

return;}QString requete = "UPDATE Regulateur SET verrou=’" + QString::number(

journalisationRegulateur.modeLock) + "’";envoyerMenuState();

}

10.23.3.9 Regulateur : :decoderAlarmes ( QString reponse )

Parametresreponse

Références AlarmesRegulateur : :alarmeChargeComplete, AlarmesRegulateur : :alarmeDebranchementBatterie, alarmes-Regulateur, AlarmesRegulateur : :alarmeSurchauffeCharge, AlarmesRegulateur : :alarmeSurchauffePv, AlarmesRegulateur-: :alarmeSurtensionCharge, AlarmesRegulateur : :alarmeSurtensionPv, AlarmesRegulateur : :alarmeSurvoltageBatterie, LG_TR-AME_HISTORIQUE, et nouvellesAlarmesRegulateur().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 126: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 122

Référencé par acquerirHistorique().

{QString etats;unsigned char x = 0; // sur 8 bits

if(reponse.length() == LG_TRAME_HISTORIQUE && reponse.at(0).toAscii() ==’!’)

{etats = reponse.section(’ ’, 42, 42);

//qDebug() << "Etats : " << etats;

x = (unsigned char)etats.toInt(0, 16);

//qDebug("x = 0x%02X", x);

alarmesRegulateur.alarmeDebranchementBatterie = (x & 0x01);alarmesRegulateur.alarmeChargeComplete = (x & 0x02);alarmesRegulateur.alarmeSurtensionPv = (x & 0x04);alarmesRegulateur.alarmeSurtensionCharge = (x & 0x08);alarmesRegulateur.alarmeSurvoltageBatterie = (x & 0x10);alarmesRegulateur.alarmeSurchauffePv = (x & 0x20);alarmesRegulateur.alarmeSurchauffeCharge = (x & 0x40);

emit nouvellesAlarmesRegulateur (alarmesRegulateur);#ifdef DEBUG_REGULATEUR

qDebug() << Q_FUNC_INFO << alarmesRegulateur.alarmeChargeComplete <<alarmesRegulateur.alarmeDebranchementBatterie << alarmesRegulateur.alarmeSurchauffeCharge << alarmesRegulateur.alarmeSurchauffePv <<alarmesRegulateur.alarmeSurtensionCharge << alarmesRegulateur.alarmeSurtensionPv<< alarmesRegulateur.alarmeSurvoltageBatterie;

#endif}

}

10.23.3.10 void Regulateur : :decoderMenuState ( QString reponse )

Références bdd, JournalisationRegulateur : :BuzzerEtat, BaseDeDonnees : :executer(), journalisationRegulateur, LEVER_COU-CHER, JournalisationRegulateur : :mode, JournalisationRegulateur : :modenuit, SOIR_MATIN, JournalisationRegulateur : :type-Batterie, et VEILLEUSE_ARRET.

Référencé par decoderTrameHistorique().

{QString batterie;bool BuzzerOnOff;QString MenuState;unsigned char x = 0;

MenuState = reponse.section(’ ’, 13, 13);x = (unsigned char)MenuState.toInt(0, 16);#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << "menustate : " << MenuState << "x = " << x;#endif

// le buzzerif((x & 0x10) == 0x10){

BuzzerOnOff = true;}else BuzzerOnOff = false;journalisationRegulateur.BuzzerEtat = BuzzerOnOff;

//le mode coupure charge faible

if((x & 0x07) == 0x00){

//mode 1journalisationRegulateur.mode = 0;

}else if ((x & 0x07) == 0x01){

//mode 2journalisationRegulateur.mode = 1;

}else if ((x & 0x07) == 0x02){

//mode 3journalisationRegulateur.mode = 2;

}else if((x & 0x07) == 0x03){

//mode 4journalisationRegulateur.mode = 3;

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 127: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 123

else if((x & 0x07) == 0x04){

//mode 5journalisationRegulateur.mode = 4;

}else{

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << "mode inconnu !";

#endif}

//Le type de batteriesif((x & 0x08) == 0x08){

//"Batterie type GEL (VRLA)";batterie = "VRLA de type GEL ou AGM";journalisationRegulateur.typeBatterie = 1;

}else{

//"Batterie type liquide electrolyte";batterie = "plomb à liquide électrolyte";journalisationRegulateur.typeBatterie = 0;

}

//Mode nuitif((x & 0xE0) == 0x00){

journalisationRegulateur.modenuit = VEILLEUSE_ARRET;}else if ((x & 0xE0) == 0xA0){

journalisationRegulateur.modenuit = SOIR_MATIN; //}else if ((x & 0xE0) == 0xC0){

journalisationRegulateur.modenuit = LEVER_COUCHER;}else{

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << "mode nuit inconnu !";

#endifjournalisationRegulateur.modenuit = VEILLEUSE_ARRET;

}

QString requete = "UPDATE Regulateur SET buzzer=’" + QString::number(journalisationRegulateur.BuzzerEtat) + "’" + ",modeCoupure=’" + QString::number(journalisationRegulateur.mode) + "’" + ",charge=’" + QString::number(journalisationRegulateur.modenuit) + "’";

//qDebug() << QString::fromUtf8("requête : ") << requete;bool retour = bdd->executer(requete);if(retour == false){

qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur modification !");}requete = "UPDATE Installation SET typeBatterie=’" + batterie + "’";//qDebug() << QString::fromUtf8("requête : ") << requete;retour = bdd->executer(requete);if(retour == false){

qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur modification !");}

}

10.23.3.11 Regulateur : :decoderMenuState2 ( QString reponse )

Parametresreponse

Références bdd, BaseDeDonnees : :executer(), journalisationRegulateur, JournalisationRegulateur : :modeLock, parametres-Regulateur, et ParametresRegulateur : :serialInterface.

Référencé par decoderTrameHistorique().

{QString MenuState2;unsigned char x = 0;

MenuState2 = reponse.section(’ ’, 10, 10);x = (unsigned char)MenuState2.toInt(0, 16);

#ifdef DEBUG_REGULATEUR

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 128: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 124

qDebug() << Q_FUNC_INFO << "menustate2 : " << MenuState2 << "x = " << x;#endif

if((x & 0x04) == 0x04){

journalisationRegulateur.modeLock = true;}else{

journalisationRegulateur.modeLock = false;}

QString requete = "UPDATE Regulateur SET verrou=’" + QString::number(journalisationRegulateur.modeLock) + "’";

//qDebug() << QString::fromUtf8("requête : ") << requete;bool retour = bdd->executer(requete);if(retour == false){

qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur modification !");}

parametresRegulateur.serialInterface = (x & 0x03);}

10.23.3.12 Regulateur : :decoderTrameHistorique ( QString reponse )

Parametresreponse

Renvoie

bool

Références JournalisationRegulateur : :ampereHeurePvConsomme, JournalisationRegulateur : :ampereHeurePVExcedant, -JournalisationRegulateur : :chargeAmpaireHeure, decoderMenuState(), decoderMenuState2(), journalisationRegulateur, LG_T-RAME_HISTORIQUE, JournalisationRegulateur : :nbSemaines, JournalisationRegulateur : :niveauChargeMatin, Journalisation-Regulateur : :niveauChargeSoir, et nouvellesJournalisationRegulateur().

Référencé par acquerirHistorique().

{int nombreSemaines;int nombreMois;double niveauMoyenChargeMatin;int debutEnregistrement;double tensionMaxBatterie;double tensionMinBatterie;double ampereHeurePvConsomme;double chargeAmepreHeure;double maxChargePv;double ampereHeurePVExcedant;double maxCourantPV;QString niveauCharge;double niveauChargeMatin, niveauChargeSoir;QString Jour[7];int debut, fin;

if(reponse.length() == LG_TRAME_HISTORIQUE && reponse.at(0).toAscii() ==’!’)

{#ifdef DEBUG_REGULATEUR

qDebug() << "Trame 0x21 : " << reponse << reponse.length();#endif

nombreSemaines = reponse.section(’ ’, 22,22).toInt(0, 16);nombreMois = reponse.section(’ ’, 23,23).toInt(0, 16);niveauMoyenChargeMatin = ((double)reponse.section(’ ’, 24,24).toInt(0,

16) + (double)reponse.section(’ ’, 25,25).toInt(0, 16))/2.;debutEnregistrement = (reponse.section(’ ’, 32,32).toInt(0, 16) +

reponse.section(’ ’, 33,33).toInt(0, 16));

#ifdef DEBUG_REGULATEURqDebug() << "Full cur: " << reponse.section(’ ’,2,2);qDebug() << "Etat menu 2: " << reponse.section(’ ’,10,10).toInt(0, 16);qDebug() << "Etat menu: " << reponse.section(’ ’,13,13).toInt(0, 16);qDebug() << "Nombre semaines: " << nombreSemaines;qDebug() << "Nombre mois: " << nombreMois;qDebug() << "Niveau moyen de le charge le matin: " <<

niveauMoyenChargeMatin << "%";qDebug() << "Debut de l’enregistrement (jours): " <<

debutEnregistrement;

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 129: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 125

#endif

debut = 34;fin = 42;

// TODO : comprendre debutEnregistrement dans le décodage !// remplissage de l’historique des 7 jours// pour l’instant on récupère les dernières données de l’historique(JOUR 1)for (int i = 0 ; i < 1 ; i++){

Jour[i] = reponse.section(’ ’, debut,fin);

#ifdef DEBUG_REGULATEURqDebug() << "Trame jour " << i << ": " << Jour[i];

#endif

tensionMaxBatterie = ((Jour[i].section(’ ’,0,0).toInt(0, 16) * 0.032) + 9) * 2.;

tensionMinBatterie = ((Jour[i].section(’ ’,1,1).toInt(0, 16) * 0.032) + 9) * 2.;

ampereHeurePvConsomme = Jour[i].section(’ ’,2,2).toInt(0, 16);ampereHeurePVExcedant = Jour[i].section(’ ’,5,5).toInt(0, 16);chargeAmepreHeure = Jour[i].section(’ ’,3,3).toInt(0, 16) * 3.847;

maxChargePv = Jour[i].section(’ ’,4,4).toInt(0, 16) * 3.23;maxCourantPV = Jour[i].section(’ ’,6,6).toInt(0, 16) * 3.847;niveauCharge = Jour[i].section(’ ’, 7, 7);niveauChargeSoir = niveauCharge.mid(0, 1).toInt(0, 16) * 3.23;niveauChargeMatin = niveauCharge.mid(1, 2).toInt(0, 16) * 3.23;

#ifdef DEBUG_REGULATEURqDebug() << "Tension max Batterie: " << tensionMaxBatterie << "V";qDebug() << "Tension min Batterie: " << tensionMinBatterie << "V";

qDebug() << "Max Charge: " << maxChargePv << "%";qDebug() << "Max courant Pv: " << maxCourantPV << "%";qDebug() << "Niveau charge: " << niveauCharge;qDebug() << "Niveau de charge le soir: " << niveauChargeSoir << "%"

;qDebug() << "Niveau de charge le matin: " << niveauChargeMatin << "

%";

qDebug() << "# i : " << i;//qDebug() << "-> Consomation du PV : " << Jour[i].section(’ ’,2,2)

<< "Ampere/heure";qDebug() << "Consomation du PV: " << ampereHeurePvConsomme << "

Ampere/heure";//qDebug() << "-> Excedent PV: " << Jour[i].section(’ ’,5,5) <<

"A/h";qDebug() << "Excedent PV: " << ampereHeurePVExcedant << "A/h";//qDebug() << "-> Charge: " << Jour[i].section(’ ’,3,3) <<

"Ampere/heure";qDebug() << "Charge: " << chargeAmepreHeure << "Ampere/heure";

#endif

debut = debut + 9;fin = fin + 9;

}

decoderMenuState(reponse);decoderMenuState2(reponse);

journalisationRegulateur.ampereHeurePvConsomme = ampereHeurePvConsomme;journalisationRegulateur.ampereHeurePVExcedant = ampereHeurePVExcedant;journalisationRegulateur.niveauChargeMatin = niveauChargeMatin;journalisationRegulateur.niveauChargeSoir = niveauChargeSoir;journalisationRegulateur.chargeAmpaireHeure = chargeAmepreHeure;journalisationRegulateur.nbSemaines = reponse.section(’ ’, 22,22);

emit nouvellesJournalisationRegulateur(journalisationRegulateur);#ifdef DEBUG_REGULATEUR

qDebug() << QString::fromUtf8("Trame 0x21 : décodée");#endif

return true; // décodage ok}else{

#ifdef DEBUG_REGULATEURqDebug() << "Trame 0x21 invalide !";

#endif}return false; // pas de décodage !

}

10.23.3.13 Regulateur : :decoderTrameInformations ( QString reponse )

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 130: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 126

Parametresreponse

A faire décoder l’ensemble des valeurs de la trame 0x20

Références bdd, InformationsRegulateur : :courantCharge, InformationsRegulateur : :courantPhotovoltaique, BaseDeDonnees-: :executer(), informationsRegulateur, LG_TRAME_INFORMATIONS, InformationsRegulateur : :modeChargeBatterie, -InformationsRegulateur : :niveauCharge, nouvellesInformationsRegulateur(), InformationsRegulateur : :onOff, Informations-Regulateur : :surplusEnergie, InformationsRegulateur : :temperature, et InformationsRegulateur : :tensionBatterie.

Référencé par acquerirInformations().

{int cx = 20; // 20 Aint fullcur_cx = 0x1A;double version;double niveauCharge;double tensionBatterie;double endCharge;int modeCharge;QString modeChargeBatterie;double courantCharge;double surplusEnergie;double heureDepuisDebutNuit;double dureeNuit;QString jourNuit, onOff;int chargeJourNuitOnOff;double temperature;double courantPhotovoltaique;

if(reponse.length() == LG_TRAME_INFORMATIONS && reponse.at(0).toAscii() ==’ ’)

{#ifdef DEBUG_REGULATEUR

qDebug() << "Trame 0x20 : " << reponse << reponse.length();#endif

// Version correcte ?if(!reponse.startsWith(" 064")){

#ifdef DEBUG_REGULATEURqDebug() << "Trame 0x20 : version incorrecte !";

#endifreturn;

}

version = reponse.section(’ ’, 1,1).toDouble();niveauCharge = (reponse.section(’ ’,2,2).toDouble()/35.)*100.; // 35voir doc page 9 du PDFtensionBatterie = ((reponse.section(’ ’,4,4).toDouble() * 0.032) + 9.)

* 2.;endCharge = ((reponse.section(’ ’,5,5).toDouble() * 0.032) + 9.) * 2.;modeCharge = reponse.section(’ ’,6,6).toInt();courantCharge = (reponse.section(’ ’,7,7).toDouble() * (double)

fullcur_cx) * (double)cx;surplusEnergie= (reponse.section(’ ’,9,9).toDouble() / 255.) * 100.;heureDepuisDebutNuit = reponse.section(’ ’,10,10).toDouble() / 10.;dureeNuit = reponse.section(’ ’,11,11).toDouble() / 10.;chargeJourNuitOnOff = reponse.section(’ ’,12,12).toInt();temperature = 25 + reponse.section(’ ’,14,14).toDouble();courantPhotovoltaique = (reponse.section(’ ’,15,15).toDouble()/(double)

fullcur_cx) * (double)cx;

if(modeCharge % 4 == 0){

modeChargeBatterie = "NORMAL";}else if (modeCharge % 4 == 1){

modeChargeBatterie = "BOOST";}else if (modeCharge % 4 == 2){

modeChargeBatterie = "EQUAL";}else modeChargeBatterie = "EQUAL";

if (((chargeJourNuitOnOff/4) % 2) == 0){

onOff = "Charge On";}else onOff = "Charge Off";

if (((chargeJourNuitOnOff/16) % 2) == 0){

jourNuit = "Jour";}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 131: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 127

else jourNuit = "Nuit";

#ifdef DEBUG_REGULATEURqDebug() << "Version: " << version; // okqDebug() << "Etat de la charge: " << reponse.section(’ ’,2,2).toInt();qDebug() << "Niveau de charge: " << niveauCharge << "%"; // okqDebug() << "Tension de le batterie: " << tensionBatterie << "V"; // okqDebug() << "Tension de fin de charge: " << endCharge << "V";qDebug("Mode de charge: %d (0x%02X)", modeCharge, modeCharge);qDebug() << "Mode de charge: " << modeChargeBatterie; // okqDebug() << "Courant de la charge: " << courantCharge << "Ah"; //qDebug() << "Surplus d’energie: " << surplusEnergie << "%"; // ?qDebug() << QString::fromUtf8("Heures depuis le début de le nuit: ") <<heureDepuisDebutNuit<< "H"; //qDebug() << "Duree de le nuit: " << dureeNuit<< "H";qDebug() << "Jour/Nuit et Charge ON/Off: " << jourNuit << "charge " <<

onOff;qDebug() << QString::fromUtf8("Température: ") << temperature << "

degres Celsius"; // okqDebug() << "Courant Photovoltaique: " << courantPhotovoltaique << "%";

#endif

informationsRegulateur.tensionBatterie = tensionBatterie;//okinformationsRegulateur.niveauCharge = niveauCharge;//okinformationsRegulateur.modeChargeBatterie = modeChargeBatterie;

if (onOff == "Charge On"){

informationsRegulateur.onOff = true;}else informationsRegulateur.onOff = false;

informationsRegulateur.temperature = temperature;informationsRegulateur.surplusEnergie = surplusEnergie;//okinformationsRegulateur.courantCharge = courantCharge;//okinformationsRegulateur.courantPhotovoltaique = courantPhotovoltaique;//

ok

emit nouvellesInformationsRegulateur(informationsRegulateur);#ifdef DEBUG_REGULATEUR

qDebug() << QString::fromUtf8("Trame 0x20 : décodée");#endif

}else{

#ifdef DEBUG_REGULATEURqDebug() << "Trame 0x20 invalide !";

#endif}

QString requete = "UPDATE Regulateur SET temperature=’" + QString::number(informationsRegulateur.temperature) + "’";

bool retour = bdd->executer(requete);if(retour == false){

qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur modification !");}

requete = "UPDATE Regulateur SET modeCharge=’" + informationsRegulateur.modeChargeBatterie + "’";

retour = bdd->executer(requete);if(retour == false){

qDebug() << Q_FUNC_INFO << QString::fromUtf8("erreur modification !");}

}

10.23.3.14 void Regulateur : :envoyerMenuState ( )

Références ParametresRegulateur : :buzzerOnOff, ParametresRegulateur : :modeCoupureChargeFaible, ParametresRegulateur-: :modeNuit, parametresRegulateur, port, Port : :recevoir(), Port : :transmettre(), et ParametresRegulateur : :typeBatterie.

Référencé par changerEtatBuzzer(), changerModeCharge(), changerModeNuit(), et changerTypeBatterie().

{QString MenuState;int menustate;QString trameAEnvoyer;QString reponse;bool reussi = true;

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << "ccf" << parametresRegulateur.

modeCoupureChargeFaible << "type batterie" << parametresRegulateur.typeBatterie<< "buzzerOnOff" << parametresRegulateur.buzzerOnOff << "modenuit" <<

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 132: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 128

parametresRegulateur.modeNuit;#endif

menustate = parametresRegulateur.modeCoupureChargeFaible | (parametresRegulateur.typeBatterie << 3) | (parametresRegulateur.buzzerOnOff <<4) | (parametresRegulateur.modeNuit << 5);

MenuState = QString("%1").arg(menustate, 2, 16, QLatin1Char(’0’)); // enhexa

trameAEnvoyer = "%,c,x,P,H,O,G," + QString(MenuState.at(0)) + "," + QString(MenuState.at(1));

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << "menustate (int)" << menustate << "MenuState

(string)" << MenuState << "trameAEnvoyer" << trameAEnvoyer;#endif

QStringList trame = trameAEnvoyer.split(’,’);

// un caractère à la fois avec un contrôle d’échofor(int i = 0; i < trame.size(); i++){

port->transmettre(trame.at(i)); // un caractère

port->recevoir(reponse, 1); // pour l’écho

if(reponse.at(0) == trame.at(i).at(0)){

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << trame.at(i).at(0) << "ok";#endif

}else{

qDebug() << Q_FUNC_INFO << trame.at(i).at(0) << "erreur";reussi = false;break; // voir documentation phocos en cas d’erreur

}}

}

10.23.3.15 Regulateur : :envoyerMenuState2 ( )

Parametres

Références ParametresRegulateur : :modeLock, parametresRegulateur, port, Port : :recevoir(), ParametresRegulateur : :serial-Interface, et Port : :transmettre().

Référencé par changerEtatCadenas().

{QString MenuState2;int menustate2;QString trameAEnvoyer;QString reponse;bool reussi = true;

menustate2 = parametresRegulateur.serialInterface | (parametresRegulateur.modeLock << 2);

MenuState2 = QString("%1").arg(menustate2, 2, 16, QLatin1Char(’0’)); // enhexa

trameAEnvoyer = "%,c,x,P,H,O,H," + QString(MenuState2.at(0)) + "," +QString(MenuState2.at(1));

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << "menustate 2 (int)" << menustate2 << "MenuState

2 (string)" << MenuState2 << "trameAEnvoyer" << trameAEnvoyer;#endif

QStringList trame = trameAEnvoyer.split(’,’);

// un caractère à la fois avec un contrôle d’échofor(int i = 0; i < trame.size(); i++){

port->transmettre(trame.at(i)); // un caractère

port->recevoir(reponse, 1); // pour l’écho

if(reponse.at(0) == trame.at(i).at(0)){

#ifdef DEBUG_REGULATEURqDebug() << Q_FUNC_INFO << trame.at(i).at(0) << "ok";#endif

}else

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 133: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.23 Référence de la classe Regulateur 129

{qDebug() << Q_FUNC_INFO << trame.at(i).at(0) << "erreur";reussi = false;break; // voir documentation phocos en cas d’erreur

}}

}

10.23.3.16 Regulateur : :nouvellesAlarmesRegulateur ( AlarmesRegulateur alarmesRegulateur ) [signal]

ParametresalarmesRegulateur

Référencé par decoderAlarmes().

10.23.3.17 Regulateur : :nouvellesInformationsRegulateur ( InformationsRegulateur informationsRegulateur ) [signal]

Parametresinformations-

Regulateur

Référencé par decoderTrameInformations().

10.23.3.18 Regulateur : :nouvellesJournalisationRegulateur ( JournalisationRegulateur journalisationRegulateur )[signal]

Parametresjournalisation-

Regulateur

Référencé par decoderTrameHistorique().

10.23.4 Documentation des donnees membres

10.23.4.1 AlarmesRegulateur Regulateur : :alarmesRegulateur [private]

les alertes du Phocos

Référencé par acquerirInformations(), et decoderAlarmes().

10.23.4.2 BaseDeDonnees∗ Regulateur : :bdd [private]

un pointeur sur un objet BaseDeDonnees

Référencé par decoderMenuState(), decoderMenuState2(), decoderTrameInformations(), et Regulateur().

10.23.4.3 InformationsRegulateur Regulateur : :informationsRegulateur [private]

les informations du Phocos

Référencé par decoderTrameInformations().

10.23.4.4 JournalisationRegulateur Regulateur : :journalisationRegulateur [private]

les données de journalisation du Phocos

Référencé par changerEtatBuzzer(), changerEtatCadenas(), changerModeCharge(), changerModeNuit(), changerTypeBatterie(),decoderMenuState(), decoderMenuState2(), et decoderTrameHistorique().

10.23.4.5 QMutex Regulateur : :mutex [private]

Référencé par acquerirHistorique(), acquerirInformations(), changerEtatBuzzer(), changerEtatCadenas(), changerModeCharge(),changerModeNuit(), et changerTypeBatterie().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 134: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.24 Référence de la classe StationMeteo 130

10.23.4.6 ParametresRegulateur Regulateur : :parametresRegulateur [private]

les parametres du Phocos

Référencé par changerEtatBuzzer(), changerEtatCadenas(), changerModeCharge(), changerModeNuit(), changerTypeBatterie(),decoderMenuState2(), envoyerMenuState(), envoyerMenuState2(), et Regulateur().

10.23.4.7 Port∗ Regulateur : :port [private]

un pointeur sur un objet Port

Référencé par acquerirHistorique(), acquerirInformations(), envoyerMenuState(), envoyerMenuState2(), Regulateur(), et ∼-Regulateur().

La documentation de cette classe a été générée à partir des fichiers suivants :– regulateur.h– regulateur.cpp

10.24 Reference de la classe StationMeteo

Gestion de la récupération des informations sur la CV7 et le capteur lumineux, affichage dans l’IHM e tstockage dans la base dedonnées.

#include <stationMeteo.h>

Graphe de collaboration de StationMeteo :

StationMeteo

- cv7- capteurLumineux- _vitesse- _direction- _temperature- vitesse- direction- temperature- informationStationMeteo- bdd

+ StationMeteo()+ ~StationMeteo()+ acquerir()+ lireLuminosite()+ lireVent()+ lireVitesse()+ lireVitesse()+ lireDirection()+ lireTemperature()+ enregistrerMesures()

CV7

- port- phrases

+ CV7()+ ~CV7()+ recupererPhrase()+ recevoirPhrases()+ decouperTrames()+ setMap()

cv7

Port

- port

+ Port()+ Port()+ ~Port()+ ouvrir()+ transmettre()+ recevoir()+ recevoir()+ lire()+ getNbOctetsDisponibles()+ estOuvert()- onReadyRead()

port

CapteurLuminosite

- luminosite

+ CapteurLuminosite()+ ~CapteurLuminosite()+ lire()

capteurLumineux

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

bdd

baseDeDonnees

Mesure

+ valeur+ unite+ horodatage+ valide

_temperature_direction_vitesse

InformationsStationMeteo

+ vitesseVent+ directionVent+ luminosite+ temperature+ valide

directionVentluminosite

vitesseVenttemperature

informationStationMeteo

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 135: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.24 Référence de la classe StationMeteo 131

Signaux

– void nouvellesInformationsStationMeteo (InformationsStationMeteo informationStationMeteo)

Fonctions membres publiques

– StationMeteo ()Constructeur par défaut.

– ∼StationMeteo ()Destructeur.

– void acquerir ()Lance les différentes lectures attendues : luminosité, vent (vitesse/direction), temperature.

– void lireLuminosite ()Récupère une phrase de capteurLuminosite et extrait la valeur.

– void lireVent ()Récupère une trame "$IIMWV" et l’envoie successivement à lireVitesse et lireDirection pour extraire les données.

– double lireVitesse (QString reponse)– double lireVitesse ()

Reçoit une trame "$IIMWV", extrait la vitesse et la renvoie sous forme d’un double.– double lireDirection (QString reponse)

Reçoit une trame "$IIMWV", extrait l’angle en degré de la direction, et le renvoie sous forme d’un double.– void lireTemperature ()

Recupère une trame "$WIXDR" et extrait la température.– void enregistrerMesures ()

Stocke les valeurs des données de la structure d’informations dans la base de données.

Attributs prives

– CV7 ∗ cv7– CapteurLuminosite ∗ capteurLumineux– Mesure _vitesse– Mesure _direction– Mesure _temperature– double vitesse– double direction– double temperature– InformationsStationMeteo informationStationMeteo– BaseDeDonnees ∗ bdd

10.24.1 Description detaillee

Auteur

Nicolas Detilleux <[email protected]>

10.24.2 Documentation des constructeurs et destructeur

10.24.2.1 StationMeteo : :StationMeteo ( )

Références bdd, capteurLumineux, BaseDeDonnees : :connecter(), cv7, InformationsStationMeteo : :directionVent, BaseDe-Donnees : :getInstance(), informationStationMeteo, InformationsStationMeteo : :luminosite, InformationsStationMeteo : :tempe-rature, Mesure : :valeur, InformationsStationMeteo : :valide, et InformationsStationMeteo : :vitesseVent.

{#ifdef DEBUG_STATIONMETEO

qDebug() << Q_FUNC_INFO << __LINE__<< QThread::currentThreadId() << this;#endif

informationStationMeteo.directionVent.valeur = 0.;informationStationMeteo.vitesseVent.valeur = 0.;informationStationMeteo.temperature.valeur = 0.;informationStationMeteo.luminosite.valeur = 0.;informationStationMeteo.valide = false;

cv7 = new CV7();capteurLumineux = new CapteurLuminosite();bdd = BaseDeDonnees::getInstance();bdd->connecter();

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 136: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.24 Référence de la classe StationMeteo 132

10.24.2.2 StationMeteo : :∼StationMeteo ( )

Références bdd, capteurLumineux, cv7, BaseDeDonnees : :detruireInstance(), et BaseDeDonnees : :executer().

{QString requeteEcriture = "UPDATE ‘Modules‘ SET ‘etat‘= ’0’ WHERE

‘nomModule‘=’meteo’";bdd->executer(requeteEcriture);

BaseDeDonnees::detruireInstance();delete capteurLumineux;delete cv7;

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;

#endif}

10.24.3 Documentation des fonctions membres

10.24.3.1 StationMeteo : :acquerir ( )

Références bdd, cv7, enregistrerMesures(), BaseDeDonnees : :executer(), informationStationMeteo, lireLuminosite(), lire-Temperature(), lireVent(), nouvellesInformationsStationMeteo(), CV7 : :recevoirPhrases(), BaseDeDonnees : :recuperer(), etInformationsStationMeteo : :valide.

Référencé par AcquisitionMeteo : :main().

{#ifdef DEBUG_STATIONMETEO

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

bool retour;QString etat;QString requete = "SELECT ‘etat‘ FROM ‘Modules‘ WHERE ‘nomModule‘= ’meteo’"

;

lireLuminosite();

retour = cv7->recevoirPhrases();

// au moins une phrase a été reçue ?if(retour == true){

QString requeteEcriture = "UPDATE ‘Modules‘ SET ‘etat‘= ’1’ WHERE‘nomModule‘=’meteo’";bdd->executer(requeteEcriture);

lireVent();lireTemperature();

}bdd->recuperer(requete,etat);if (etat.toInt() == 1){

informationStationMeteo.valide = true;}emit nouvellesInformationsStationMeteo(informationStationMeteo);

enregistrerMesures();}

10.24.3.2 StationMeteo : :enregistrerMesures ( )

A faire ajouter enregistrerMesures() dans le diagramme de séquence Acquérir les données météos

Références bdd, InformationsStationMeteo : :directionVent, BaseDeDonnees : :executer(), informationStationMeteo, Informations-StationMeteo : :luminosite, InformationsStationMeteo : :temperature, Mesure : :valeur, et InformationsStationMeteo : :vitesseVent.

Référencé par acquerir().

{QDateTime maintenant = QDateTime::currentDateTime();QString horodatage = maintenant.toString("yyyy-MM-dd hh:mm:ss");

QString requete = "INSERT INTO MesuresStationMeteo (‘idStationMeteo‘ ,‘vitesseVent‘ , ‘directionVent‘ , ‘temperatureAir‘ , ‘luminosite‘ , ‘horodatage‘)VALUES (’3’, ’" + QString::number(informationStationMeteo.vitesseVent.valeur) + "’, ’" + QString::number(informationStationMeteo.directionVent.valeur) + "’, ’" +QString::number(informationStationMeteo.temperature.valeur) + "’, ’" +QString::number(informationStationMeteo.luminosite.valeur) + "’, ’" + horodatage + "’)";

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 137: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.24 Référence de la classe StationMeteo 133

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << requete;#endif

bool retour = bdd->executer(requete);if(retour){

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << QString::fromUtf8("Mesures enregistrées avecsucces");#endif

}else{

qDebug() << Q_FUNC_INFO << QString::fromUtf8("Erreur requête !");}

}

10.24.3.3 StationMeteo : :lireDirection ( QString reponse )

Parametresreponse

Renvoie

double

Références direction.

Référencé par lireVent().

{QString direction = "";direction = phrase.section(’,’,1,1);

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << __LINE__ << direction << "Degres";

#endif

return direction.toDouble();}

10.24.3.4 StationMeteo : :lireLuminosite ( )

Références capteurLumineux, informationStationMeteo, CapteurLuminosite : :lire(), InformationsStationMeteo : :luminosite, -Mesure : :valeur, et Mesure : :valide.

Référencé par acquerir().

{QString luminosite = 0;

luminosite = capteurLumineux->lire();informationStationMeteo.luminosite.valeur = capteurLumineux->lire();if (!luminosite.isEmpty()){

informationStationMeteo.luminosite.valide = true;}

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << __LINE__ << informationStationMeteo.luminosite.

valeur << "lux";qDebug() << Q_FUNC_INFO << __LINE__ << informationStationMeteo.luminosite.valide;

#endif}

10.24.3.5 StationMeteo : :lireTemperature ( )

Références _temperature, cv7, Mesure : :horodatage, informationStationMeteo, InformationsStationMeteo : :luminosite, CV7-: :recupererPhrase(), InformationsStationMeteo : :temperature, temperature, Mesure : :unite, Mesure : :valeur, et Mesure : :valide.

Référencé par acquerir().

{QString phrase;QDateTime horodatage = QDateTime::currentDateTime();

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 138: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.24 Référence de la classe StationMeteo 134

#ifndef SIMULATION_METEOphrase = cv7->recupererPhrase("XDR");

#elsephrase = "$WIXDR,c,022.0,c,,52";

#endif

if(!phrase.isEmpty()){

temperature = phrase.section(’,’,2,2).toDouble();informationStationMeteo.temperature.valeur = temperature;_temperature.valeur = temperature;_temperature.unite = "C";_temperature.valide = true;_temperature.horodatage = horodatage.toString("dd/MM/yyyy hh:mm:ss");

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << __LINE__ << temperature << "Degres Celcius";qDebug() << Q_FUNC_INFO << __LINE__ << _temperature.horodatage;qDebug() << Q_FUNC_INFO << __LINE__ << informationStationMeteo.

luminosite.valide;#endif

}else{

_temperature.valide = false;}

}

10.24.3.6 StationMeteo : :lireVent ( )

Références cv7, direction, InformationsStationMeteo : :directionVent, informationStationMeteo, lireDirection(), lireVitesse(), CV7-: :recupererPhrase(), Mesure : :valeur, Mesure : :valide, vitesse, et InformationsStationMeteo : :vitesseVent.

Référencé par acquerir().

{QString phrase;

#ifndef SIMULATION_METEOphrase = cv7->recupererPhrase("MWV");

#elsephrase = "$IIMWV,10.,R,65.2,N,A*3D";

#endif

if(!phrase.isEmpty()){

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << __LINE__<< phrase;

#endifvitesse = lireVitesse(phrase);informationStationMeteo.vitesseVent.valeur = vitesse;

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << __LINE__<< vitesse;qDebug() << Q_FUNC_INFO << __LINE__ << informationStationMeteo.

vitesseVent.valide;#endif

direction = lireDirection(phrase);informationStationMeteo.directionVent.valeur = direction;

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << __LINE__<< direction;qDebug() << Q_FUNC_INFO << __LINE__ << informationStationMeteo.

directionVent.valide;#endif

}}

10.24.3.7 double StationMeteo : :lireVitesse ( QString reponse )

Références vitesse.

{QString vitesse = "";vitesse = phrase.section(’,’,3,3);

#ifdef DEBUG_STATIONMETEOqDebug() << Q_FUNC_INFO << __LINE__<< vitesse << "Noeuds";

#endif

return vitesse.toDouble()*1.852;// conversion noeuds km/h}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 139: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.24 Référence de la classe StationMeteo 135

10.24.3.8 StationMeteo : :lireVitesse ( )

Récupère une phrase "vent" dans la map de CV7, en extrait le vent et le renvoit sous forme de double.

Parametresreponse

Renvoie

doubledouble

Références cv7, et CV7 : :recupererPhrase().

Référencé par lireVent().

{return lireVitesse(cv7->recupererPhrase("MWV"));

}

10.24.3.9 StationMeteo : :nouvellesInformationsStationMeteo ( InformationsStationMeteo informationStationMeteo )[signal]

ParametresinformationStation-

Meteo

Référencé par acquerir().

10.24.4 Documentation des donnees membres

10.24.4.1 Mesure StationMeteo : :_direction [private]

TODO

10.24.4.2 Mesure StationMeteo : :_temperature [private]

TODO

Référencé par lireTemperature().

10.24.4.3 Mesure StationMeteo : :_vitesse [private]

TODO

10.24.4.4 BaseDeDonnees∗ StationMeteo : :bdd [private]

TODO

Référencé par acquerir(), enregistrerMesures(), StationMeteo(), et ∼StationMeteo().

10.24.4.5 CapteurLuminosite∗ StationMeteo : :capteurLumineux [private]

TODO

Référencé par lireLuminosite(), StationMeteo(), et ∼StationMeteo().

10.24.4.6 CV7∗ StationMeteo : :cv7 [private]

TODO

Référencé par acquerir(), lireTemperature(), lireVent(), lireVitesse(), StationMeteo(), et ∼StationMeteo().

10.24.4.7 double StationMeteo : :direction [private]

TODO

Référencé par lireDirection(), et lireVent().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 140: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 136

10.24.4.8 InformationsStationMeteo StationMeteo : :informationStationMeteo [private]

TODO

Référencé par acquerir(), enregistrerMesures(), lireLuminosite(), lireTemperature(), lireVent(), et StationMeteo().

10.24.4.9 double StationMeteo : :temperature [private]

TODO

Référencé par lireTemperature().

10.24.4.10 double StationMeteo : :vitesse [private]

Référencé par lireVent(), et lireVitesse().

La documentation de cette classe a été générée à partir des fichiers suivants :– stationMeteo.h– stationMeteo.cpp

10.25 Reference de la classe SuiveurSolaire

Communication avec le système de positionnement.

#include <suiveurSolaire.h>

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 141: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 137

Graphe de collaboration de SuiveurSolaire :

SuiveurSolaire

- informationsSuiveur- port- mutexPort- protectionVent- bdd- date

+ SuiveurSolaire()+ ~SuiveurSolaire()+ acquerir()+ getEtat()+ deplacerPanneauGauche()+ deplacerPanneauDroite()+ deplacerPanneauHaut()+ deplacerPanneauBas()+ deplacerManuel()+ deplacerAngleHoraire()+ deplacerAngleElevation()+ deplacer()+ proteger()+ enregistrerInformationsBdd()+ gererModeAutoProgramme()+ stopperCommande()- decoderTrame()- reinitialiserInformationsSuiveur()- calculerChecksum()

InformationsSuiveur

+ heure+ minute+ seconde+ jour+ mois+ angleHoraireA+ positionHoraireA+ destinationA+ iMoteurA+ angleElevationB

and 12 more...

informationsSuiveur

BaseDeDonnees

- db- mutex- baseDeDonnees- nbAcces

+ connecter()+ executer()+ recuperer()+ recuperer()+ recuperer()+ recuperer()+ getInstance()+ detruireInstance()- BaseDeDonnees()- ~BaseDeDonnees()

bdd

baseDeDonnees

Port

- port

+ Port()+ Port()+ ~Port()+ ouvrir()+ transmettre()+ recevoir()+ recevoir()+ lire()+ getNbOctetsDisponibles()+ estOuvert()- onReadyRead()

port

Connecteurs publics

– void deplacerPanneauGauche ()– void deplacerPanneauDroite ()– void deplacerPanneauHaut ()– void deplacerPanneauBas ()– void deplacerManuel (char direction)– void deplacerAngleHoraire (double angleHoraire)– void deplacerAngleElevation (double angleElevation)– void deplacer (double angleHoraire, double angleElevation)– void proteger (bool etat)– void enregistrerInformationsBdd ()– void gererModeAutoProgramme (bool modeAuto)– void stopperCommande ()

Signaux

– void signalerInformationsSuiveur (InformationsSuiveur informationsSuiveur)

Fonctions membres publiques

– SuiveurSolaire ()

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 142: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 138

– ∼SuiveurSolaire ()– void acquerir ()– bool getEtat ()

Fonctions membres privees

– void decoderTrame (QString reponseSuiveur)– void reinitialiserInformationsSuiveur ()– unsigned char calculerChecksum (QString commandeSuiveur)

Attributs prives

– InformationsSuiveur informationsSuiveur– Port ∗ port– QMutex mutexPort– bool protectionVent– BaseDeDonnees ∗ bdd– QDate ∗ date

10.25.1 Description detaillee

Auteur

Rémy Gonzalves <[email protected]>

10.25.2 Documentation des constructeurs et destructeur

10.25.2.1 SuiveurSolaire : :SuiveurSolaire ( )

Références bdd, BaseDeDonnees : :connecter(), Port : :estOuvert(), BaseDeDonnees : :getInstance(), port, PORT_SUIVEUR_-SOLAIRE, protectionVent, et reinitialiserInformationsSuiveur().

{#ifdef DEBUG_SUIVEUR

qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;#endif

port = new Port(QString(PORT_SUIVEUR_SOLAIRE));#ifdef DEBUG_SUIVEUR

qDebug() << Q_FUNC_INFO << "ouverture port helios :" << port->estOuvert();#endif

reinitialiserInformationsSuiveur();protectionVent = false;

bdd = BaseDeDonnees::getInstance();bdd->connecter();

}

10.25.2.2 SuiveurSolaire : :∼SuiveurSolaire ( )

Références BaseDeDonnees : :detruireInstance(), et port.

{BaseDeDonnees::detruireInstance();delete port;

#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this;

#endif}

10.25.3 Documentation des fonctions membres

10.25.3.1 SuiveurSolaire : :acquerir ( )

<todo decommenter une fois les tests fini

Références decoderTrame(), mutexPort, port, et Port : :recevoir().

Référencé par AcquisitionSuiveur : :main().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 143: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 139

{QString reponseSuiveur;

#ifndef SIMULATION_SUIVEUR_SOLAIRE

mutexPort.lock();port->recevoir(reponseSuiveur);mutexPort.unlock();

#else

// trame simulée :// format 1 en hexa ://reponseSuiveur =

"\x24\x28\x31\x33\x24\x29\x30\x24\x2A\x32\x38\x31\x24\x2C\x2D\x34\x39\x2E\x31\x24\x2D\x32\x35\x32\x31\x24\x2E\x32\x35\x32\x32\x24\x2F\x30\x2E\x30\x30\x24\x30\x38\x35\x2E\x36\x24\x31\x31\x31\x35\x34\x37\x24\x32\x31\x31\x35\x34\x37\x24\x33\x30\x2E\x30\x30";

// format 2 en ascii ://reponseSuiveur =

"$(09$)37$*01$\\0x800000$\\0x810001$,-0.2$-112387$.112379$/0.00$045.6$1115840$2115849$30.00";reponseSuiveur = "

$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$+10$;06$W107413333$X1431406408$Y-2027742942$(09$)13$*40$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$:Ea=0,Eb=0,Wi=0,Si=0$\0x880000$8tracking disabled$(09$)13$*40$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$^0.0$\0x89-nan$_0.0$\0x8a-nan$S2$t0$u7$v7$(09$)13$*40$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$F355.0$G335.0$H39.6$I40.4$J0.0$K0.0$(09$)13$*40$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$L31.2$M0.0$N380.8$O195500.0$P3$443.9$(09$)13$*40$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$\0x846$R22$T115.0$U80.0$V0000$54.8$r80.0$(09$)13$*40$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$Z1$%36A1$s77$=0.0$>0.0$(09$)13$*40$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$[0000$6300$]0$Q0$\0$(09$)13$*40$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$‘40.3$a430.0$b388.9$c95.4$d39.6$e0.0$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$f0.0$g0.0$h380.8$i195500.0$j4$k3$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$l0$m45$n0$o0$p1.00$q1.00$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$w0.0$x40.0$y40$\0x8530$z0$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$~0$\0x7f20${90$|1.600$}20$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$&6.36 (B1)$’26.18$\0x821180$\0x831180$\0x860.0$\0x870.0$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$+10$;06$W107413333$X1431406408$Y-2027742942$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$:Ea=0,Eb=0,Wi=0,Si=0$\0x880000$8trackingdisabled$(09$)13$*41$\0x800000$\0

x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$^0.0$\0x89-nan$_0.0$\0x8a-nan$S2$t0$u7$v7$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$F355.0$G335.0$H39.6$I40.4$J0.0$K0.0$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$L31.2$M0.0$N380.8$O195500.0$P3$443.9$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$\0x846$R22$T115.0$U80.0$V0000$54.8$r80.0$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$Z1$%36A1$s78$=0.0$>0.0$(09$)13$*41$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$[0000$6300$]0$Q0$\0$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$‘40.3$a430.0$b388.9$c95.4$d39.6$e0.0$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$f0.0$g0.0$h380.8$i195500.0$j4$k3$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$l0$m45$n0$o0$p1.00$q1.00$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$w0.0$x40.0$y40$\0x8530$z0$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$~0$\0x7f20${90$|1.600$}20$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$&6.36 (B1)$’26.18$\0x821180$\0x831180$\0x860.0$\0x870.0$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$+10$;06$W107413333$X1431406408$Y-2027742942$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$:Ea=0,Eb=0,Wi=0,Si=0$\0x880000$8trackingdisabled$(09$)13$*42$\0x800000$\0

x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$^0.0$\0x89-nan$_0.0$\0x8a-nan$S2$t0$u7$v7$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$F355.0$G335.0$H39.6$I40.4$J0.0$K0.0$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$L31.2$M0.0$N380.8$O195500.0$P3$443.9$(09$)13$*42$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$\0x846$R22$T115.0$U80.0$V0000$54.8$r80.0$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$Z1$%36A1$s79$=0.0$>0.0$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$[0000$6300$]0$Q0$\0$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$‘40.3$a430.0$b388.9$c95.4$d39.6$e0.0$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$f0.0$g0.0$h380.8$i195500.0$j4$k3$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$l0$m45$n0$o0$p1.00$q1.00$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$w0.0$x40.0$y40$\0x8530$z0$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$~0$\0x7f20${90$|1.600$}20$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$&6.36(B1)$’26.18$\0x821180$\0x831180$\0x860.0$\0x870.0$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$+10$;06$W107413333$X1431406408$Y-2027742942$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$:Ea=0,Eb=0,Wi=0,Si=0$\0x880000$8trackingdisabled$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$^0.0$\0x89-nan$_0.0$\0x8a-nan$S2$t0$u7$v7$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$F355.0$G335.0$H39.6$I40.4$J0.0$K0.0$(09$)13$*43$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$L31.2$M0.0$N380.8$O195500.0$P3$443.9$(09$)13$*44$\0x800000$\0

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 144: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 140

x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$\0x846$R22$T115.0$U80.0$V0000$54.8$r80.0$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$Z1$%36A1$s80$=0.0$>0.0$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$[0000$6300$]0$Q0$\0$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$‘40.3$a430.0$b388.9$c95.4$d39.6$e0.0$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$f0.0$g0.0$h380.8$i195500.0$j4$k3$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$l0$m45$n0$o0$p1.00$q1.00$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$w0.0$x40.0$y40$\0x8530$z0$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$~0$\0x7f20${90$|1.600$}20$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$&6.36(B1)$’26.18$\0x821180$\0x831180$\0x860.0$\0x870.0$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$+10$;06$W107413333$X1431406408$Y-2027742942$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$:Ea=0,Eb=0,Wi=0,Si=0$\0x880000$8tracking disabled$(09$)13$*44$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$^0.0$\0x89-nan$_0.0$\0x8a-nan$S2$t0$u7$v7$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$F355.0$G335.0$H39.6$I40.4$J0.0$K0.0$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$L31.2$M0.0$N380.8$O195500.0$P3$443.9$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$\0x846$R22$T115.0$U80.0$V0000$54.8$r80.0$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$Z1$%36A1$s81$=0.0$>0.0$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$[0000$6300$]0$Q0$\0$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$‘40.3$a430.0$b388.9$c95.4$d39.6$e0.0$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$f0.0$g0.0$h380.8$i195500.0$j4$k3$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$l0$m45$n0$o0$p1.00$q1.00$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$w0.0$x40.0$y40$\0x8530$z0$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$~0$\0x7f20${90$|1.600$}20$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$&6.36 (B1)$’26.18$\0x821180$\0x831180$\0x860.0$\0x870.0$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$+10$;06$W107413333$X1431406408$Y-2027742942$(09$)13$*45$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$:Ea=0,Eb=0,Wi=0,Si=0$\0x880000$8tracking disabled$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$^0.0$\0x89-nan$_0.0$\0x8a-nan$S2$t0$u7$v7$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$F355.0$G335.0$H39.6$I40.4$J0.0$K0.0$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$L31.2$M0.0$N380.8$O195500.0$P3$443.9$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$\0x846$R22$T115.0$U80.0$V0000$54.8$r80.0$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$Z1$%36A1$s82$=0.0$>0.0$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$[0000$6300$]0$Q0$\0$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$‘40.3$a430.0$b388.9$c95.4$d39.6$e0.0$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$f0.0$g0.0$h380.8$i195500.0$j4$k3$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$l0$m45$n0$o0$p1.00$q1.00$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$w0.0$x40.0$y40$\0x8530$z0$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$~0$\0x7f20${90$|1.600$}20$(09$)13$*46$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$&6.36 (B1)$’26.18$\0x821180$\0x831180$\0x860.0$\0x870.0$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$+10$;06$W107413333$X1431406408$Y-2027742942$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$:Ea=0,Eb=0,Wi=0,Si=0$\0x880000$8tracking disabled$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$^0.0$\0x89-nan$_0.0$\0x8a-nan$S2$t0$u7$v7$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$F355.0$G335.0$H39.6$I40.4$J0.0$K0.0$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$L31.2$M0.0$N380.8$O195500.0$P3$443.9$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$\0x846$R22$T115.0$U80.0$V0000$54.8$r80.0$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$Z1$%36A1$s83$=0.0$>0.0$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$[0000$6300$]0$Q0$\0$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$‘40.3$a430.0$b388.9$c95.4$d39.6$e0.0$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$f0.0$g0.0$h380.8$i195500.0$j4$k3$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$l0$m45$n0$o0$p1.00$q1.00$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$w0.0$x40.0$y40$\0x8530$z0$(09$)13$*47$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$~0$\0x7f20${90$|1.600$}20$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$&6.36 (B1)$’26.18$\0x821180$\0x831180$\0x860.0$\0x870.0$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$+10$;06$W107413333$X1431406408$Y-2027742942$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$:Ea=0,Eb=0,Wi=0,Si=0$\0x880000$8tracking disabled$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$^0.0$\0x89-nan$_0.0$\0x8a-nan$S2$t0$u7$v7$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$F355.0$G335.0$H39.6$I40.4$J0.0$K0.0$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$L31.2$M0.0$N380.8$O195500.0$P3$443.9$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$\0x846$R22$T115.0$U80.0$V0000$54.8$r80.0$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$Z1$%36A1$s84$=0.0$>0.0$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$[0000$6300$]0$Q0$\0$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$‘40.3$a430.0$b388.9$c95.4$d39.6$e0.0$(09$)13$*48$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$f0.0$g0.0$h380.8$i195500.0$j4$k3$(09$)13$*48$\0x800000$\0

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 145: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 141

x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$l0$m45$n0$o0$p1.00$q1.00$(09$)13$*49$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$w0.0$x40.0$y40$\0x8530$z0$(09$)13$*49$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$~0$\0x7f20${90$|1.600$}20$(09$)13$*49$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$&6.36 (B1)$’26.19$\0x821180$\0x831180$\0x860.0$\0x870.0$(09$)13$*49$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$+10$;06$W107413333$X1431406408$Y-2027742942$(09$)13$*49$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$:Ea=0,Eb=0,Wi=0,Si=0$\0x880000$8tracking disabled$(09$)13$*49$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$^0.0$\0x89-nan$_0.0$\0x8a-nan$S2$t0$u7$v7$(09$)13$*49$\0x800000$\0x810001$,17.9$-147036$.147028$/0.00$089.6$10982$20991$30.00$F355.0$G335.0$H39.6";

#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << "SIMULATION SUIVEUR SOLAIRE";

#endif

#endif

#ifdef DEBUG_SUIVEUR//qDebug() << Q_FUNC_INFO << reponseSuiveur;

#endif

if(reponseSuiveur.length() != 0)decoderTrame(reponseSuiveur);

//enregistrerInformationsBdd();}

10.25.3.2 SuiveurSolaire : :calculerChecksum ( QString commandeSuiveur ) [private]

ParametrescommandeSuiveur

Renvoie

unsigned char

Référencé par deplacerAngleElevation(), deplacerAngleHoraire(), deplacerManuel(), gererModeAutoProgramme(), et stopper-Commande().

{/*

Toute les donnee dans le string sont additionnée en 1 octet.Puis on fait le complement a deux.Exemple: On veut envoyer : 1234.Le string serait donc ainsi $&1234 -(en hexa) 0x24 0x26 0x31 0x32 0x330x34(somme) 0x114(overflow est ignore) 0x14(complement a deux) 0x100-0x14=0xEC.checksum = 0xEC.

*/unsigned char checksum = 0;

for(int i=0; i < commandeSuiveur.size(); i++){

checksum += (unsigned char)commandeSuiveur.at(i).toAscii();}

checksum = 0x100 - checksum;

#ifdef DEBUG_SUIVEUR//qDebug("checksum = 0x%02X", checksum);

#endif

return checksum;}

10.25.3.3 SuiveurSolaire : :decoderTrame ( QString reponseSuiveur ) [private]

ParametresreponseSuiveur

A faire décoder l’ensemble des valeurs demandées de la trame suiveur

Références InformationsSuiveur : :angleElevationB, InformationsSuiveur : :angleHoraireA, InformationsSuiveur : :automatique,InformationsSuiveur : :destinationA, InformationsSuiveur : :destinationB, InformationsSuiveur : :erreurs, InformationsSuiveur-

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 146: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 142

: :heure, InformationsSuiveur : :iMoteurA, InformationsSuiveur : :iMoteurB, INDEX_ANGLE_ELEVATION, INDEX_ANGLE_HOR-AIRE, INDEX_AUTOMATIQUE, INDEX_DEST_ELEVATION, INDEX_DEST_HORAIRE, INDEX_ERREUR, INDEX_HEURE, IN-DEX_JOUR, INDEX_LATITUDE, INDEX_LONGITUDE, INDEX_MINUTE, INDEX_MOIS, INDEX_MOTEUR_A, INDEX_MOTEU-R_B, INDEX_POS_ELEVATION, INDEX_POS_HORAIRE, INDEX_SECONDE, informationsSuiveur, InformationsSuiveur : :jour,InformationsSuiveur : :latitude, LG_HEURE, LG_MINUTE, LG_SECONDE, InformationsSuiveur : :longitude, InformationsSuiveur-: :minute, InformationsSuiveur : :mois, InformationsSuiveur : :movingInA, InformationsSuiveur : :movingInB, InformationsSuiveur-: :movingOutA, InformationsSuiveur : :movingOutB, InformationsSuiveur : :orientationLatitude, InformationsSuiveur : :orientation-Longitude, InformationsSuiveur : :positionElevationB, InformationsSuiveur : :positionHoraireA, InformationsSuiveur : :seconde, etsignalerInformationsSuiveur().

Référencé par acquerir().

{// découper la reponse en champsQStringList champs;QChar delimiteur = ’$’;

#ifdef DEBUG_SUIVEUR//qDebug() << Q_FUNC_INFO << reponseSuiveur;

#endifchamps = reponseSuiveur.split(delimiteur);

#ifdef DEBUG_SUIVEUR//qDebug() << Q_FUNC_INFO << champs;

#endif

QString champ;QChar index;QString donnee;QString modeAuto;

for(int i = 1; i < champs.size()-1; i++){

champ = champs.at(i);index = champ.at(0);// quel index ?switch(index.toAscii()){case INDEX_HEURE :

// extrait l’heuredonnee = champ.mid(1, LG_HEURE);informationsSuiveur.heure = donnee.toInt();break;

case INDEX_MINUTE :// extrait les minutesdonnee = champ.mid(1, LG_MINUTE);informationsSuiveur.minute = donnee.toInt();break;

case INDEX_SECONDE :// extrait les secondesdonnee = champ.mid(1, LG_SECONDE);informationsSuiveur.seconde = donnee.toInt();break;

case INDEX_ANGLE_HORAIRE :// extrait l’angle horaire (moteur A)donnee = champ.mid(1, champ.size()-1);informationsSuiveur.angleHoraireA = donnee.toDouble();break;

case INDEX_ANGLE_ELEVATION :// extrait l’angle élévation (moteur B)donnee = champ.mid(1, champ.size()-1);informationsSuiveur.angleElevationB = donnee.toDouble();break;

case INDEX_POS_HORAIRE :// extrait la position horaire (moteur A)donnee = champ.mid(1, champ.size()-1);informationsSuiveur.positionHoraireA = donnee.toInt();break;

case INDEX_POS_ELEVATION :// extrait la position élévation (moteur B)donnee = champ.mid(1, champ.size()-1);informationsSuiveur.positionElevationB = donnee.toInt();break;

case INDEX_DEST_HORAIRE :// extrait la position horaire (moteur A)donnee = champ.mid(1, champ.size()-1);informationsSuiveur.destinationA = donnee.toInt();break;

case INDEX_DEST_ELEVATION :// extrait la position élévation (moteur B)donnee = champ.mid(1, champ.size()-1);informationsSuiveur.destinationB = donnee.toInt();break;

case INDEX_JOUR ://extrait le jourdonnee = champ.mid(1, champ.size()-1);

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 147: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 143

informationsSuiveur.jour = donnee.toInt();break;

case INDEX_MOIS ://extrait le moisdonnee = champ.mid(1, champ.size()-1);informationsSuiveur.mois = donnee.toInt();break;

case INDEX_LATITUDE ://extrait la latitudedonnee = champ.mid(1, champ.size()-1);informationsSuiveur.latitude = donnee.toDouble();// temporairement :informationsSuiveur.orientationLatitude = ’N’;break;

case INDEX_LONGITUDE ://extrait la longitudedonnee = champ.mid(1, champ.size()-1);informationsSuiveur.longitude = donnee.toDouble();// temporairement :informationsSuiveur.orientationLongitude = ’E’;break;

/*case INDEX_HEMISPHERE ://extrait l’hemispheredonnee = champ.mid(1, champ.size()-1);//informationsSuiveur.hemisphere = donnee.toAscii();break;*/

case INDEX_AUTOMATIQUE ://extrait le mode automatiquedonnee = champ.mid(1, champ.size()-1);if (donnee == "tracking disabled"){

informationsSuiveur.automatique = false;modeAuto = "Inactif";

}else{

informationsSuiveur.automatique = true;modeAuto = "Actif";

}break;

case INDEX_MOTEUR_A :// extrait le courant du moteur Adonnee = champ.mid(1, champ.size()-1);informationsSuiveur.iMoteurA = donnee.toDouble();break;

case INDEX_MOTEUR_B :// extrait le courant du moteur Bdonnee = champ.mid(1, champ.size()-1);informationsSuiveur.iMoteurB = donnee.toDouble();break;

}// pour les index étendus ?if(index == QChar(INDEX_ERREUR)){

donnee = champ.mid(1, champ.size()-1);//qDebug() << Q_FUNC_INFO << "INDEX_ERREUR : " << donnee;informationsSuiveur.movingOutA = (donnee.toInt() & 0x000800) >> 11;informationsSuiveur.movingInA = (donnee.toInt() & 0x001000) >> 12;informationsSuiveur.movingOutB = (donnee.toInt() & 0x008000) >> 15;informationsSuiveur.movingInB = (donnee.toInt() & 0x010000) >> 16;informationsSuiveur.erreurs = (donnee.toInt() & 0x0000FF);

}/*if(index > QChar(0x80)){

donnee = champ.mid(1, champ.size()-1);qDebug() << Q_FUNC_INFO << "Index étendu : " << index << donnee;

}*/}

#ifdef DEBUG_SUIVEUR/*qDebug() << "heure :" << informationsSuiveur.heure <<

informationsSuiveur.minute << informationsSuiveur.seconde;qDebug() << "angle horaire (A) :" << informationsSuiveur.angleHoraireA;qDebug() << "angle elevation (B) :" << informationsSuiveur.angleElevationB;qDebug() << "position horaire (A) :" <<

informationsSuiveur.positionHoraireA;qDebug() << "position elevation (B) :" <<

informationsSuiveur.positionElevationB;qDebug() << "date :" << informationsSuiveur.jour << "/" <<

informationsSuiveur.mois;qDebug() << "mode automatique :" << modeAuto << "(" <<

informationsSuiveur.automatique << ")";qDebug() << "latitude (orientation):" << informationsSuiveur.latitude <<

"(" << informationsSuiveur.orientationLatitude << ")";qDebug() << "longitude (orientation):" << informationsSuiveur.longitude <<

"(" << informationsSuiveur.orientationLongitude << ")";*/qDebug() << "movingOutA :" << informationsSuiveur.movingOutA;qDebug() << "movingInA :" << informationsSuiveur.movingInA;qDebug() << "movingOutB :" << informationsSuiveur.movingOutB;qDebug() << "movingInB :" << informationsSuiveur.movingInB;qDebug() << "erreurs :" << informationsSuiveur.erreurs;

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 148: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 144

qDebug() << "iMoteurA :" << informationsSuiveur.iMoteurA;qDebug() << "iMoteurB :" << informationsSuiveur.iMoteurB;

#endif

emit signalerInformationsSuiveur(informationsSuiveur);}

10.25.3.4 SuiveurSolaire : :deplacer ( double angleHoraire, double angleElevation ) [slot]

ParametresangleHoraire

angleElevation

Références deplacerAngleElevation(), et deplacerAngleHoraire().

Référencé par proteger().

{#ifdef DEBUG_SUIVEUR

qDebug() << Q_FUNC_INFO << "angleHoraire" << angleHoraire << "angleElevation" << angleElevation;

#endifdeplacerAngleHoraire(angleHoraire);// TODO this->msleep(5000);sleep(5);deplacerAngleElevation(angleElevation);

}

10.25.3.5 SuiveurSolaire : :deplacerAngleElevation ( double angleElevation ) [slot]

ParametresangleElevation

Références calculerChecksum(), mutexPort, port, et Port : :transmettre().

Référencé par deplacer().

{/*Elevation :

- Angle vertical entre le plan horizontal et le soleil.- index: 0x30- Le format de la donnee est XXX.x ou XX.x ou X.x (angle en degrees)

*/

QString commandeSuiveur;char delimiteur = ’$’;char index = ’0’;unsigned char checksum = 0;

commandeSuiveur += QChar(delimiteur);commandeSuiveur += QChar(index);commandeSuiveur += QString::number(angleElevation,’f’, 1);

checksum = calculerChecksum(commandeSuiveur);

commandeSuiveur += QChar(checksum);

#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << commandeSuiveur;

#endif

mutexPort.lock();port->transmettre(commandeSuiveur);mutexPort.unlock();

}

10.25.3.6 SuiveurSolaire : :deplacerAngleHoraire ( double angleHoraire ) [slot]

ParametresangleHoraire

Références calculerChecksum(), mutexPort, port, et Port : :transmettre().

Référencé par deplacer().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 149: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 145

{/*

Angle horaire :- Angle entre le soleil et le sud- index : 0x2C- Le format de la donnée est XX.x or -XX.x or X.x (angle en degrees)

*/QString commandeSuiveur;char delimiteur = ’$’;char index = ’,’;unsigned char checksum = 0;

commandeSuiveur += QChar(delimiteur);commandeSuiveur += QChar(index);commandeSuiveur += QString::number(angleHoraire, ’f’, 1);

checksum = calculerChecksum(commandeSuiveur);

commandeSuiveur += QChar(checksum);

#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << commandeSuiveur;

#endif

mutexPort.lock();port->transmettre(commandeSuiveur);mutexPort.unlock();

}

10.25.3.7 SuiveurSolaire : :deplacerManuel ( char direction ) [slot]

Parametresdirection

Références calculerChecksum(), mutexPort, port, et Port : :transmettre().

Référencé par deplacerPanneauBas(), deplacerPanneauDroite(), deplacerPanneauGauche(), et deplacerPanneauHaut().

{/*Extrait de la documentation protocole :Manuel :- axe H : 50 impulsions; axe V : 100 impulsions.- index : 0x39- Format des données : 0x32 = gauche, 0x34 = droite, 0x31 = haut et0x33 = bas.

Donc :

Monter (moteur B) $91rDescendre (moteur B) $93pA gauche (moteur A vers est) $94oA droite (moteur A vers ouest)$92q

*/QString commandeSuiveur;char delimiteur = ’$’;char index = ’9’;unsigned char checksum = 0;

commandeSuiveur += QChar(delimiteur);commandeSuiveur += QChar(index);commandeSuiveur += QChar(direction);

checksum = calculerChecksum(commandeSuiveur);

commandeSuiveur += checksum;

#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << commandeSuiveur;

#endif

mutexPort.lock();port->transmettre(commandeSuiveur);mutexPort.unlock();

}

10.25.3.8 SuiveurSolaire : :deplacerPanneauBas ( ) [slot]

Références deplacerManuel(), et DOWN.

{deplacerManuel(DOWN);

}

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 150: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 146

10.25.3.9 SuiveurSolaire : :deplacerPanneauDroite ( ) [slot]

Références deplacerManuel(), et RIGHT.

{deplacerManuel(RIGHT);

}

10.25.3.10 SuiveurSolaire : :deplacerPanneauGauche ( ) [slot]

Références deplacerManuel(), et LEFT.

{deplacerManuel(LEFT);

}

10.25.3.11 SuiveurSolaire : :deplacerPanneauHaut ( ) [slot]

Références deplacerManuel(), et UP.

{deplacerManuel(UP);

}

10.25.3.12 SuiveurSolaire : :enregistrerInformationsBdd ( ) [slot]

Parametres

Références InformationsSuiveur : :angleElevationB, InformationsSuiveur : :angleHoraireA, bdd, BaseDeDonnees : :executer(), -InformationsSuiveur : :heure, informationsSuiveur, InformationsSuiveur : :jour, InformationsSuiveur : :minute, InformationsSuiveur-: :mois, InformationsSuiveur : :positionElevationB, InformationsSuiveur : :positionHoraireA, et InformationsSuiveur : :seconde.

{QString requete = "INSERT INTO MesuresSuiveur (‘idSuiveur‘ , ‘angleAzimut‘

, ‘angleElevation‘ , ‘positionMoteurA‘ , ‘positionMoteurB‘, ‘horodatage‘) VALUES(’1’, ’" + QString::number(informationsSuiveur.angleHoraireA) + "’ , ’" +QString::number(informationsSuiveur.angleElevationB) + "’ , ’" + QString::number(informationsSuiveur.positionHoraireA) + "’ , ’" + QString::number(informationsSuiveur.positionElevationB) + "’ , ’2016-" + QString::number(informationsSuiveur.mois) + "-" + QString::number(informationsSuiveur.jour) + "" + QString::number(informationsSuiveur.heure) + ":" + QString::number(informationsSuiveur.minute) + ":" + QString::number(informationsSuiveur.seconde) + "’)";

#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << requete;#endif

bool verif = bdd->executer(requete);#ifdef DEBUG_SUIVEUR

if (verif)qDebug() << Q_FUNC_INFO << "Enregistrement reussi.";

#endifif(!verif)

qDebug() << Q_FUNC_INFO << "Erreur d’enregistrement.";

}

10.25.3.13 void SuiveurSolaire : :gererModeAutoProgramme ( bool modeAuto ) [slot]

Références calculerChecksum(), mutexPort, port, et Port : :transmettre().

{QString commandeSuiveur;char delimiteur = ’$’;char index = ’8’;unsigned char checksum = 0;

commandeSuiveur += QChar(delimiteur);commandeSuiveur += QChar(index);

if(modeAuto)

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 151: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 147

{commandeSuiveur += "y"; //mode Auto actif

}else{

commandeSuiveur += "n";//mode Manuel actif

}

checksum = calculerChecksum(commandeSuiveur);

commandeSuiveur += QChar(checksum);

#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << commandeSuiveur;

#endif

mutexPort.lock();port->transmettre(commandeSuiveur);mutexPort.unlock();

}

10.25.3.14 SuiveurSolaire : :getEtat ( )

Références Port : :estOuvert(), et port.

Référencé par AcquisitionSuiveur : :enregistrerEtatSuiveur().

{return port->estOuvert();

}

10.25.3.15 SuiveurSolaire : :proteger ( bool etat ) [slot]

Parametresetat

Références deplacer(), PROTECTION_VENT_A, PROTECTION_VENT_B, et protectionVent.

{#ifdef DEBUG_SUIVEUR

qDebug() << Q_FUNC_INFO << "protectionVent" << protectionVent << "nouveletat" << etat;

#endif

if(etat != protectionVent){

protectionVent = etat;}if(etat == true){

#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << "angle A" << PROTECTION_VENT_A << "angle B"

<< PROTECTION_VENT_B;#endif

deplacer(PROTECTION_VENT_A, PROTECTION_VENT_B);}

}

10.25.3.16 SuiveurSolaire : :reinitialiserInformationsSuiveur ( ) [private]

Références InformationsSuiveur : :angleElevationB, InformationsSuiveur : :angleHoraireA, InformationsSuiveur : :destinationA, -InformationsSuiveur : :destinationB, InformationsSuiveur : :erreurs, InformationsSuiveur : :heure, InformationsSuiveur : :iMoteurA,InformationsSuiveur : :iMoteurB, informationsSuiveur, InformationsSuiveur : :latitude, InformationsSuiveur : :minute, Informations-Suiveur : :movingInA, InformationsSuiveur : :movingInB, InformationsSuiveur : :movingOutA, InformationsSuiveur : :movingOutB,InformationsSuiveur : :positionElevationB, InformationsSuiveur : :positionHoraireA, et InformationsSuiveur : :seconde.

Référencé par SuiveurSolaire().

{informationsSuiveur.heure = 0;informationsSuiveur.minute = 0;informationsSuiveur.seconde = 0;informationsSuiveur.angleHoraireA = 0.;informationsSuiveur.positionHoraireA = 0;informationsSuiveur.destinationA = 0;

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 152: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

10.25 Référence de la classe SuiveurSolaire 148

informationsSuiveur.iMoteurA = 0.;informationsSuiveur.angleElevationB = 0.;informationsSuiveur.positionElevationB = 0;informationsSuiveur.destinationB = 0;informationsSuiveur.iMoteurB = 0.;informationsSuiveur.latitude = 0.;informationsSuiveur.movingOutA = false;informationsSuiveur.movingInA = false;informationsSuiveur.movingOutB = false;informationsSuiveur.movingInB = false;informationsSuiveur.erreurs = 0;

}

10.25.3.17 SuiveurSolaire : :signalerInformationsSuiveur ( InformationsSuiveur informationsSuiveur ) [signal]

Parametresinformations-

Suiveur

Référencé par decoderTrame().

10.25.3.18 SuiveurSolaire : :stopperCommande ( ) [slot]

Références calculerChecksum(), INDEX_ACQUITTEMENT, mutexPort, port, et Port : :transmettre().

{QString commandeSuiveur;char delimiteur = ’$’;char index = INDEX_ACQUITTEMENT;unsigned char checksum = 0;

commandeSuiveur += QChar(delimiteur);commandeSuiveur += QChar(index);

commandeSuiveur += "clear";

checksum = calculerChecksum(commandeSuiveur);

commandeSuiveur += QChar(checksum);

#ifdef DEBUG_SUIVEURqDebug() << Q_FUNC_INFO << commandeSuiveur;

#endif

mutexPort.lock();port->transmettre(commandeSuiveur);mutexPort.unlock();

}

10.25.4 Documentation des donnees membres

10.25.4.1 BaseDeDonnees∗ SuiveurSolaire : :bdd [private]

Référencé par enregistrerInformationsBdd(), et SuiveurSolaire().

10.25.4.2 QDate∗ SuiveurSolaire : :date [private]

10.25.4.3 InformationsSuiveur SuiveurSolaire : :informationsSuiveur [private]

TODO

Référencé par decoderTrame(), enregistrerInformationsBdd(), et reinitialiserInformationsSuiveur().

10.25.4.4 QMutex SuiveurSolaire : :mutexPort [private]

TODO

Référencé par acquerir(), deplacerAngleElevation(), deplacerAngleHoraire(), deplacerManuel(), gererModeAutoProgramme(), etstopperCommande().

10.25.4.5 Port∗ SuiveurSolaire : :port [private]

TODO

Référencé par acquerir(), deplacerAngleElevation(), deplacerAngleHoraire(), deplacerManuel(), gererModeAutoProgramme(), get-Etat(), stopperCommande(), SuiveurSolaire(), et ∼SuiveurSolaire().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 153: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11 Documentation des fichiers 149

10.25.4.6 bool SuiveurSolaire : :protectionVent [private]

Référencé par proteger(), et SuiveurSolaire().

La documentation de cette classe a été générée à partir des fichiers suivants :– suiveurSolaire.h– suiveurSolaire.cpp

11 Documentation des fichiers

11.1 Reference du fichier acquisitionMeteo.cpp

#include "acquisitionMeteo.h" #include "stationMeteo.h" #include "tournesol.h" #include"basededonnees.h" Graphe des dépendances par inclusion de acquisitionMeteo.cpp :

acquisitionMeteo.cpp

acquisitionMeteo.h

stationMeteo.h tournesol.h

basededonnees.h

QtCore

QtSql/QtSql QSqlDatabase QMutex

11.2 Reference du fichier acquisitionMeteo.h

#include <QtCore> #include "stationMeteo.h" Graphe des dépendances par inclusion de acquisitionMeteo.h :

acquisitionMeteo.h

QtCore

stationMeteo.h

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 154: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.3 Référence du fichier acquisitionRegulateur.cpp 150

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

acquisitionMeteo.h

acquisitionMeteo.cpp ihmTournesol.h

ihmTournesol.cpp main.cpp

Classes

– class AcquisitionMeteoClasse qui assure la gestion de la station météo.

Macros

– #define PERIODE_ACQUISITION_METEO 1000

11.2.1 Documentation des macros

11.2.1.1 #define PERIODE_ACQUISITION_METEO 1000

Référencé par AcquisitionMeteo : :lireConfiguration(), et ProtectionVent : :lireModeDeFonctionnement().

11.3 Reference du fichier acquisitionRegulateur.cpp

#include "acquisitionRegulateur.h" #include "basededonnees.h" Graphe des dépendances par inclu-sion de acquisitionRegulateur.cpp :

acquisitionRegulateur.cpp

acquisitionRegulateur.h basededonnees.h

QtCore

regulateur.h QtSql/QtSql QSqlDatabase QMutex tournesol.h

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 155: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.4 Référence du fichier acquisitionRegulateur.h 151

11.4 Reference du fichier acquisitionRegulateur.h

#include <QtCore> #include "regulateur.h" Graphe des dépendances par inclusion de acquisitionRegulateur.-h :

acquisitionRegulateur.h

QtCore

regulateur.h

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

acquisitionRegulateur.h

acquisitionRegulateur.cpp ihmTournesol.h

ihmTournesol.cpp main.cpp

Classes

– class AcquisitionRegulateurThread contenant toutes les données relatives au régulateur de charge.

Macros

– #define PERIODE_ACQUISITION_REGULATEUR 5000

11.4.1 Documentation des macros

11.4.1.1 #define PERIODE_ACQUISITION_REGULATEUR 5000

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 156: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.5 Référence du fichier acquisitionSuiveur.cpp 152

11.5 Reference du fichier acquisitionSuiveur.cpp

#include "acquisitionSuiveur.h" #include "suiveurSolaire.h" #include "basededonnees.-h" #include "tournesol.h" Graphe des dépendances par inclusion de acquisitionSuiveur.cpp :

acquisitionSuiveur.cpp

acquisitionSuiveur.h

suiveurSolaire.h

basededonnees.h

tournesol.h

QtCore

QtSql/QtSql QSqlDatabase QMutex

11.6 Reference du fichier acquisitionSuiveur.h

#include <QtCore> #include "suiveurSolaire.h" Graphe des dépendances par inclusion de acquisition-Suiveur.h :

acquisitionSuiveur.h

QtCore

suiveurSolaire.h

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 157: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.7 Référence du fichier asservissementSuiveur.cpp 153

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

acquisitionSuiveur.h

acquisitionSuiveur.cpp ihmTournesol.h

ihmTournesol.cpp main.cpp

Classes

– class AcquisitionSuiveurGestion du suiveur solaire.

11.7 Reference du fichier asservissementSuiveur.cpp

#include "asservissementSuiveur.h" #include "tournesol.h" #include "basededonnees.h"Graphe des dépendances par inclusion de asservissementSuiveur.cpp :

asservissementSuiveur.cpp

asservissementSuiveur.h

tournesol.h

basededonnees.h

QtCore capteurSolaire.h

QObject

QtSql/QtSql QSqlDatabase QMutex

11.8 Reference du fichier asservissementSuiveur.h

#include <QtCore> #include "capteurSolaire.h" Graphe des dépendances par inclusion de asservissement-

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 158: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.8 Référence du fichier asservissementSuiveur.h 154

Suiveur.h :

asservissementSuiveur.h

QtCore capteurSolaire.h

QObject

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

asservissementSuiveur.h

asservissementSuiveur.cpp ihmTournesol.h

ihmTournesol.cpp main.cpp

Classes

– class AsservissementSuiveurGestion du capteur solaire pour le suivi.

Macros

– #define PERIODE 5000

11.8.1 Documentation des macros

11.8.1.1 #define PERIODE 5000

Référencé par AsservissementSuiveur : :main().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 159: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.9 Référence du fichier basededonnees.cpp 155

11.9 Reference du fichier basededonnees.cpp

#include "basededonnees.h" #include <QDebug> #include <QMessageBox> Graphe des dépendancespar inclusion de basededonnees.cpp :

basededonnees.cpp

basededonnees.h QDebug QMessageBox

QtSql/QtSql QSqlDatabase QMutex tournesol.h

11.10 Reference du fichier basededonnees.h

#include <QtSql/QtSql> #include <QSqlDatabase> #include <QMutex> #include "tournesol.-h" Graphe des dépendances par inclusion de basededonnees.h :

basededonnees.h

QtSql/QtSql QSqlDatabase QMutex tournesol.h

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

basededonnees.h

acquisitionMeteo.cpp acquisitionRegulateur.cpp acquisitionSuiveur.cpp asservissementSuiveur.cpp basededonnees.cpp capteurSolaire.cpp protectionVent.cpp regulateur.cpp stationMeteo.cpp suiveurSolaire.cpp

Classes

– class BaseDeDonneesClasse de gestion de base de données MySQL.

Macros

– #define HOSTNAME "localhost"– #define USERNAME "root"– #define PASSWORD "password"– #define DATABASENAME "Tournesol"

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 160: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.11 Référence du fichier busi2c.cpp 156

11.10.1 Documentation des macros

11.10.1.1 #define DATABASENAME ”Tournesol”

11.10.1.2 #define HOSTNAME ”localhost”

Référencé par BaseDeDonnees : :connecter().

11.10.1.3 #define PASSWORD ”password”

Référencé par BaseDeDonnees : :connecter().

11.10.1.4 #define USERNAME ”root”

Référencé par BaseDeDonnees : :connecter().

11.11 Reference du fichier busi2c.cpp

#include <stdio.h> #include <time.h> #include <sys/time.h> #include <errno.h>×#include <string.h> #include <unistd.h> #include <stdint.h> #include <sys/ioctl.-h> #include <sys/types.h> #include <fcntl.h> #include <linux/i2c-dev.h> #include"busi2c.h" Graphe des dépendances par inclusion de busi2c.cpp :

busi2c.cpp

stdio.h time.h sys/time.h errno.h string.h unistd.h stdint.h sys/ioctl.h sys/types.h fcntl.h linux/i2c-dev.h busi2c.h

QMutex

11.12 Reference du fichier busi2c.h

#include <QMutex> Graphe des dépendances par inclusion de busi2c.h :

busi2c.h

QMutex

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 161: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.12 Référence du fichier busi2c.h 157

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

busi2c.h

busi2c.cpp

Classes

– class BusI2CGestion du bus I2C pour les circuits LTC2309 et BH1750.

Macros

– #define MIN_I2C_BUS 0– #define MAX_I2C_BUS 7– #define MAX_WRITE_LEN 511– #define LTC2309_I2C_ADDRESS 0x08– #define BH1750_I2C_ADDRESS 0x23– #define BH1750_CONTINUOUS_HIGH_RES_MODE 0x10– #define BH1750_CONTINUOUS_HIGH_RES_MODE_2 0x11– #define BH1750_CONTINUOUS_LOW_RES_MODE 0x13– #define BH1750_ONE_TIME_HIGH_RES_MODE 0x20– #define BH1750_ONE_TIME_HIGH_RES_MODE_2 0x21– #define BH1750_ONE_TIME_LOW_RES_MODE 0x23

11.12.1 Description detaillee

11.12.2 Documentation des macros

11.12.2.1 #define BH1750_CONTINUOUS_HIGH_RES_MODE 0x10

11.12.2.2 #define BH1750_CONTINUOUS_HIGH_RES_MODE_2 0x11

11.12.2.3 #define BH1750_CONTINUOUS_LOW_RES_MODE 0x13

11.12.2.4 #define BH1750_I2C_ADDRESS 0x23

Référencé par BusI2C : :luxRawRead().

11.12.2.5 #define BH1750_ONE_TIME_HIGH_RES_MODE 0x20

11.12.2.6 #define BH1750_ONE_TIME_HIGH_RES_MODE_2 0x21

11.12.2.7 #define BH1750_ONE_TIME_LOW_RES_MODE 0x23

11.12.2.8 #define LTC2309_I2C_ADDRESS 0x08

Référencé par BusI2C : :analogRawRead().

11.12.2.9 #define MAX_I2C_BUS 7

11.12.2.10 #define MAX_WRITE_LEN 511

Référencé par BusI2C : :write().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 162: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.13 Référence du fichier capteurLuminosite.cpp 158

11.12.2.11 #define MIN_I2C_BUS 0

11.13 Reference du fichier capteurLuminosite.cpp

#include "capteurLuminosite.h" #include "tournesol.h" #include <unistd.h> #include<stdlib.h> #include <time.h> #include <QDebug> Graphe des dépendances par inclusion de capteur-Luminosite.cpp :

capteurLuminosite.cpp

capteurLuminosite.h tournesol.h unistd.h stdlib.h time.h QDebug

QtCore

11.14 Reference du fichier capteurLuminosite.h

#include <QtCore> Graphe des dépendances par inclusion de capteurLuminosite.h :

capteurLuminosite.h

QtCore

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

capteurLuminosite.h

capteurLuminosite.cpp stationMeteo.cpp

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 163: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.15 Référence du fichier capteurSolaire.cpp 159

Classes

– class CapteurLuminositeClasse de gestion du capteur de luminosité

Macros

– #define Continuously_H_Resolution_Mode 0x10– #define One_Time_H_Resolution_Mode 0x20– #define MIN 0.– #define MAX 78600.

11.14.1 Documentation des macros

11.14.1.1 #define Continuously_H_Resolution_Mode 0x10

11.14.1.2 #define MAX 78600.

Référencé par CapteurLuminosite : :lire(), et CapteurSolaire : :lireTension().

11.14.1.3 #define MIN 0.

Référencé par CapteurLuminosite : :lire(), et CapteurSolaire : :lireTension().

11.14.1.4 #define One_Time_H_Resolution_Mode 0x20

Référencé par CapteurLuminosite : :lire().

11.15 Reference du fichier capteurSolaire.cpp

#include "capteurSolaire.h" #include "tournesol.h" #include <unistd.h> #include <stdlib.-h> #include <time.h> #include "basededonnees.h" #include <QDebug> Graphe des dépendances parinclusion de capteurSolaire.cpp :

capteurSolaire.cpp

capteurSolaire.h

tournesol.h

unistd.h stdlib.h time.h basededonnees.h QDebug

QObject QtSql/QtSql QSqlDatabase QMutex

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 164: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.16 Référence du fichier capteurSolaire.h 160

11.16 Reference du fichier capteurSolaire.h

#include <QObject> Graphe des dépendances par inclusion de capteurSolaire.h :

capteurSolaire.h

QObject

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

capteurSolaire.h

asservissementSuiveur.h

ihmTournesol.h

capteurSolaire.cpp

asservissementSuiveur.cpp

ihmTournesol.cpp main.cpp

Classes

– class CapteurSolaireClasse qui assure la détection de la position du soleil.

Macros

– #define MIN 1.0– #define MAX 3.0– #define TENSION_ALIM 5.0– #define SEUIL_DETECTION 2.1– #define DELTA 0.2– #define INIT -1– #define ETEINTE 0– #define ECLAIREE 1– #define TOUTE 2– #define CANAL_A1_IN1 1– #define CANAL_A0_IN2 0– #define NB_MESURES 11

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 165: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.17 Référence du fichier Changelog.dox 161

11.16.1 Documentation des macros

11.16.1.1 #define CANAL_A0_IN2 0

Référencé par CapteurSolaire : :acquerir().

11.16.1.2 #define CANAL_A1_IN1 1

Référencé par CapteurSolaire : :acquerir().

11.16.1.3 #define DELTA 0.2

Référencé par CapteurSolaire : :detecter().

11.16.1.4 #define ECLAIREE 1

Référencé par CapteurSolaire : :detecter().

11.16.1.5 #define ETEINTE 0

Référencé par CapteurSolaire : :CapteurSolaire(), et CapteurSolaire : :reinitialiser().

11.16.1.6 #define INIT -1

11.16.1.7 #define MAX 3.0

11.16.1.8 #define MIN 1.0

11.16.1.9 #define NB_MESURES 11

Référencé par CapteurSolaire : :acquerir(), CapteurSolaire : :mediane(), et CapteurSolaire : :trier().

11.16.1.10 #define SEUIL_DETECTION 2.1

Référencé par CapteurSolaire : :detecter().

11.16.1.11 #define TENSION_ALIM 5.0

Référencé par CapteurSolaire : :lireTension().

11.16.1.12 #define TOUTE 2

Référencé par CapteurSolaire : :detecter().

11.17 Reference du fichier Changelog.dox

11.18 Reference du fichier CV7.cpp

#include "CV7.h" #include "port.h" #include "tournesol.h" Graphe des dépendances par inclusion deCV7.cpp :

CV7.cpp

CV7.h port.h tournesol.h

QtCore QObject QList qextserialenumerator.h qextserialport.h

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 166: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.19 Référence du fichier CV7.h 162

11.19 Reference du fichier CV7.h

#include <QtCore> Graphe des dépendances par inclusion de CV7.h :

CV7.h

QtCore

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

CV7.h

CV7.cpp stationMeteo.cpp

Classes

– class CV7Gestion de la récupération des phrases, découpe et stockage à partir de la station météo.

Macros

– #define PORT_CV7 "/dev/cv7"

11.19.1 Documentation des macros

11.19.1.1 #define PORT_CV7 ”/dev/cv7”

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

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 167: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.20 Référence du fichier horloge.cpp 163

11.20 Reference du fichier horloge.cpp

#include "horloge.h" Graphe des dépendances par inclusion de horloge.cpp :

horloge.cpp

horloge.h

QtGui QMutex

11.21 Reference du fichier horloge.h

#include <QtGui> #include <QMutex> Graphe des dépendances par inclusion de horloge.h :

horloge.h

QtGui QMutex

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

horloge.h

horloge.cpp protectionVent.cpp

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 168: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.22 Référence du fichier ihmTournesol.cpp 164

Classes

– class Horloge

Macros

– #define DEBUG_HORLOGE– #define BASE_DE_TEMPS 120

11.21.1 Documentation des macros

11.21.1.1 #define BASE_DE_TEMPS 120

11.21.1.2 #define DEBUG_HORLOGE

11.22 Reference du fichier ihmTournesol.cpp

#include "ihmTournesol.h" #include "ui_ihm.h" #include <qwt_compass.h> #include <qwt-_compass_rose.h> #include <qwt_dial_needle.h> #include "asservissementSuiveur.h"×#include "acquisitionMeteo.h" #include "protectionVent.h" Graphe des dépendances par inclusionde ihmTournesol.cpp :

ihmTournesol.cpp

ihmTournesol.h

acquisitionMeteo.h protectionVent.h asservissementSuiveur.h

ui_ihm.h qwt_compass.h qwt_compass_rose.h qwt_dial_needle.h

QtGui acquisitionSuiveur.hacquisitionRegulateur.h

capteurSolaire.h

QtCore

suiveurSolaire.hregulateur.h stationMeteo.h

QObject

11.23 Reference du fichier ihmTournesol.h

#include <QtGui> #include "acquisitionSuiveur.h" #include "acquisitionRegulateur.h"×#include "acquisitionMeteo.h" #include "protectionVent.h" #include "capteurSolaire.h"#include "asservissementSuiveur.h" Graphe des dépendances par inclusion de ihmTournesol.h :

ihmTournesol.h

QtGui acquisitionSuiveur.hacquisitionRegulateur.h acquisitionMeteo.h

protectionVent.h capteurSolaire.h

asservissementSuiveur.h

QtCore

suiveurSolaire.hregulateur.h stationMeteo.h

QObject

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 169: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.24 Référence du fichier main.cpp 165

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

ihmTournesol.h

ihmTournesol.cpp main.cpp

Classes

– class IhmTournesolGestion de l’interface graphique.

11.24 Reference du fichier main.cpp

Programme principal.

#include <QApplication> #include "ihmTournesol.h" Graphe des dépendances par inclusion de main.cpp :

main.cpp

QApplication ihmTournesol.h

QtGui acquisitionSuiveur.hacquisitionRegulateur.h acquisitionMeteo.h

protectionVent.h capteurSolaire.h

asservissementSuiveur.h

QtCore

suiveurSolaire.hregulateur.h stationMeteo.h

QObject

Fonctions

– int main (int argc, char ∗argv[ ])Programme principal.

11.24.1 Description detaillee

crée et affiche la fenêtre principale de l’application

11.24.2 Documentation des fonctions

11.24.2.1 main ( int argc, char ∗ argv[ ] )

Parametresargc

argv[ ]

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 170: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.25 Référence du fichier port.cpp 166

Renvoie

int

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

{QApplication a(argc, argv);

a.setApplicationName("Tournesol");

qDebug() << "\n" << Q_FUNC_INFO << a.applicationName() << "PID :" << (int)a.applicationPid();

qDebug() << "" << Q_FUNC_INFO << a.applicationName() << "TID :" <<QApplication::instance()->thread()->currentThreadId() << a.thread();

IhmTournesol ihm;ihm.show();

int ret = a.exec();

qDebug() << "" << Q_FUNC_INFO << a.applicationName() << "FIN :" << ret;

return ret;}

11.25 Reference du fichier port.cpp

#include "port.h" #include "tournesol.h" #include <unistd.h> #include <QDebug> Graphe desdépendances par inclusion de port.cpp :

port.cpp

port.h tournesol.h unistd.h QDebug

QObject QList qextserialenumerator.h qextserialport.h

11.26 Reference du fichier port.h

#include <QObject> #include <QList> #include "qextserialenumerator.h" #include "qextserialport.-h" Graphe des dépendances par inclusion de port.h :

port.h

QObject QList qextserialenumerator.h qextserialport.h

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 171: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.27 Référence du fichier protectionVent.cpp 167

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

port.h

CV7.cpp port.cpp regulateur.cpp suiveurSolaire.cpp

Classes

– class PortClasse de gestion d’un port série.

Macros

– #define BUFFERSIZE 1024

11.26.1 Documentation des macros

11.26.1.1 #define BUFFERSIZE 1024

Référencé par Port : :recevoir().

11.27 Reference du fichier protectionVent.cpp

#include "protectionVent.h" #include "basededonnees.h" #include "stationMeteo.h"×#include "horloge.h" #include "tournesol.h" Graphe des dépendances par inclusion de protectionVent.cpp :

protectionVent.cpp

protectionVent.h basededonnees.h

tournesol.h

stationMeteo.h horloge.h

QtCore QtSql/QtSql QSqlDatabase QMutex QtGui

Macros

– #define TEMPSATTENTE 60000

11.27.1 Documentation des macros

11.27.1.1 #define TEMPSATTENTE 60000

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 172: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.28 Référence du fichier protectionVent.h 168

11.28 Reference du fichier protectionVent.h

#include <QtCore> Graphe des dépendances par inclusion de protectionVent.h :

protectionVent.h

QtCore

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

protectionVent.h

ihmTournesol.h

ihmTournesol.cpp

protectionVent.cpp

main.cpp

Classes

– struct ConfigurationProtectionVent– class ProtectionVent

Macros

– #define PERIODE_ACQUISITION_METEO 1000

11.28.1 Documentation des macros

11.28.1.1 #define PERIODE_ACQUISITION_METEO 1000

11.29 Reference du fichier README.dox

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 173: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.30 Référence du fichier regulateur.cpp 169

11.30 Reference du fichier regulateur.cpp

#include "regulateur.h" #include "port.h" #include "basededonnees.h" #include "tournesol.-h" Graphe des dépendances par inclusion de regulateur.cpp :

regulateur.cpp

regulateur.h port.h basededonnees.h

tournesol.hQtCore QObject QList qextserialenumerator.h qextserialport.h QtSql/QtSql QSqlDatabase QMutex

11.31 Reference du fichier regulateur.h

#include <QtCore> Graphe des dépendances par inclusion de regulateur.h :

regulateur.h

QtCore

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

regulateur.h

acquisitionRegulateur.h regulateur.cpp

acquisitionRegulateur.cpp ihmTournesol.h

ihmTournesol.cpp main.cpp

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 174: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.32 Référence du fichier stationMeteo.cpp 170

Classes

– struct InformationsRegulateurRegroupe les variable contenant les informations relatives a la trame d’Informations.

– struct JournalisationRegulateurRegroupe les variable contenant les informations relatives a la trame de Journalisation.

– struct AlarmesRegulateurRegroupe les différents etats du regulateur.

– struct ParametresRegulateurRegroupe les différents parametres du regulateur.

– class RegulateurGestion de l’acquisition et du traitement des données du régulateur de charge phocos CX20.

Macros

– #define LG_TRAME_INFORMATIONS 63– #define LG_TRAME_HISTORIQUE 769– #define VEILLEUSE_ARRET 0– #define LEVER_COUCHER 6– #define SOIR_MATIN 5

11.31.1 Documentation des macros

11.31.1.1 #define LEVER_COUCHER 6

Référencé par Regulateur : :decoderMenuState().

11.31.1.2 #define LG_TRAME_HISTORIQUE 769

Référencé par Regulateur : :acquerirHistorique(), Regulateur : :decoderAlarmes(), et Regulateur : :decoderTrameHistorique().

11.31.1.3 #define LG_TRAME_INFORMATIONS 63

Référencé par Regulateur : :acquerirInformations(), et Regulateur : :decoderTrameInformations().

11.31.1.4 #define SOIR_MATIN 5

Référencé par Regulateur : :decoderMenuState().

11.31.1.5 #define VEILLEUSE_ARRET 0

Référencé par Regulateur : :decoderMenuState().

11.32 Reference du fichier stationMeteo.cpp

#include "stationMeteo.h" #include "CV7.h" #include "capteurLuminosite.h" #include"tournesol.h" #include "basededonnees.h" Graphe des dépendances par inclusion de stationMeteo.cpp :

stationMeteo.cpp

stationMeteo.h CV7.h capteurLuminosite.h

tournesol.h

basededonnees.h

QtCore QtSql/QtSql QSqlDatabase QMutex

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 175: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.33 Référence du fichier stationMeteo.h 171

11.33 Reference du fichier stationMeteo.h

#include <QtCore> Graphe des dépendances par inclusion de stationMeteo.h :

stationMeteo.h

QtCore

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

stationMeteo.h

acquisitionMeteo.h

acquisitionMeteo.cpp

protectionVent.cpp stationMeteo.cpp

ihmTournesol.h

ihmTournesol.cpp main.cpp

Classes

– struct MesureRegroupe les différentes informations relatives à une donnée.

– struct InformationsStationMeteoRegroupe les variables contenant les informations relatives à la trame d’information.

– class StationMeteoGestion de la récupération des informations sur la CV7 et le capteur lumineux, affichage dans l’IHM e tstockage dans la base de données.

11.34 Reference du fichier suiveurSolaire.cpp

#include "suiveurSolaire.h" #include "port.h" #include "basededonnees.h" #include

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 176: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.35 Référence du fichier suiveurSolaire.h 172

"tournesol.h" Graphe des dépendances par inclusion de suiveurSolaire.cpp :

suiveurSolaire.cpp

suiveurSolaire.h port.h basededonnees.h

tournesol.hQtCore QObject QList qextserialenumerator.h qextserialport.h QtSql/QtSql QSqlDatabase QMutex

11.35 Reference du fichier suiveurSolaire.h

#include <QtCore> Graphe des dépendances par inclusion de suiveurSolaire.h :

suiveurSolaire.h

QtCore

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

suiveurSolaire.h

acquisitionSuiveur.h

acquisitionSuiveur.cpp

suiveurSolaire.cpp

ihmTournesol.h

ihmTournesol.cpp main.cpp

Classes

– struct InformationsSuiveur

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 177: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.35 Référence du fichier suiveurSolaire.h 173

Regroupe les données envoyées par le suiveur solaire.– class SuiveurSolaire

Communication avec le système de positionnement.

Macros

– #define PORT_SUIVEUR_SOLAIRE "/dev/helios"– #define INDEX_HEURE 0x28– #define INDEX_MINUTE 0x29– #define INDEX_SECONDE 0x2A– #define INDEX_JOUR 0x2B– #define INDEX_MOIS 0x3B– #define INDEX_ANGLE_HORAIRE 0x2C– #define INDEX_POS_HORAIRE 0x2D– #define INDEX_DEST_HORAIRE 0x2E– #define INDEX_MOTEUR_A 0x2F– #define INDEX_ANGLE_ELEVATION 0x30– #define INDEX_POS_ELEVATION 0x31– #define INDEX_DEST_ELEVATION 0x32– #define INDEX_MOTEUR_B 0x33– #define INDEX_LATITUDE 0x34– #define INDEX_LONGITUDE 0x35– #define INDEX_AUTOMATIQUE 0x38– #define INDEX_ACQUITTEMENT 0x88– #define INDEX_ERREUR 0x88– #define LG_HEURE 2– #define LG_MINUTE 2– #define LG_SECONDE 2– #define UP ’1’– #define LEFT ’2’– #define DOWN ’3’– #define RIGHT ’4’– #define PROTECTION_VENT_A 0.– #define PROTECTION_VENT_B 90.

11.35.1 Documentation des macros

11.35.1.1 #define DOWN ’3’

Référencé par SuiveurSolaire : :deplacerPanneauBas().

11.35.1.2 #define INDEX_ACQUITTEMENT 0x88

Référencé par SuiveurSolaire : :stopperCommande().

11.35.1.3 #define INDEX_ANGLE_ELEVATION 0x30

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.4 #define INDEX_ANGLE_HORAIRE 0x2C

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.5 #define INDEX_AUTOMATIQUE 0x38

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.6 #define INDEX_DEST_ELEVATION 0x32

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.7 #define INDEX_DEST_HORAIRE 0x2E

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.8 #define INDEX_ERREUR 0x88

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.9 #define INDEX_HEURE 0x28

Référencé par SuiveurSolaire : :decoderTrame().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 178: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.35 Référence du fichier suiveurSolaire.h 174

11.35.1.10 #define INDEX_JOUR 0x2B

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.11 #define INDEX_LATITUDE 0x34

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.12 #define INDEX_LONGITUDE 0x35

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.13 #define INDEX_MINUTE 0x29

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.14 #define INDEX_MOIS 0x3B

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.15 #define INDEX_MOTEUR_A 0x2F

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.16 #define INDEX_MOTEUR_B 0x33

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.17 #define INDEX_POS_ELEVATION 0x31

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.18 #define INDEX_POS_HORAIRE 0x2D

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.19 #define INDEX_SECONDE 0x2A

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.20 #define LEFT ’2’

Référencé par SuiveurSolaire : :deplacerPanneauGauche().

11.35.1.21 #define LG_HEURE 2

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.22 #define LG_MINUTE 2

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.23 #define LG_SECONDE 2

Référencé par SuiveurSolaire : :decoderTrame().

11.35.1.24 #define PORT_SUIVEUR_SOLAIRE ”/dev/helios”

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

11.35.1.25 #define PROTECTION_VENT_A 0.

Référencé par SuiveurSolaire : :proteger().

11.35.1.26 #define PROTECTION_VENT_B 90.

Référencé par SuiveurSolaire : :proteger().

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 179: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

11.36 Référence du fichier tournesol.h 175

11.35.1.27 #define RIGHT ’4’

Référencé par SuiveurSolaire : :deplacerPanneauDroite().

11.35.1.28 #define UP ’1’

Référencé par SuiveurSolaire : :deplacerPanneauHaut().

11.36 Reference du fichier tournesol.h

Constantes globales à l’application Tournesol.

Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

tournesol.h

acquisitionMeteo.cpp

basededonnees.h

acquisitionSuiveur.cpp asservissementSuiveur.cpp capteurSolaire.cpp protectionVent.cpp regulateur.cpp stationMeteo.cpp suiveurSolaire.cpp

capteurLuminosite.cpp CV7.cpp port.cpp

acquisitionRegulateur.cpp basededonnees.cpp

11.36.1 Description detaillee

gestion DEBUG des différentes classes

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 180: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

Index

∼AcquisitionMeteoAcquisitionMeteo, 18

∼AcquisitionRegulateurAcquisitionRegulateur, 22

∼AcquisitionSuiveurAcquisitionSuiveur, 28

∼AsservissementSuiveurAsservissementSuiveur, 35

∼BaseDeDonneesBaseDeDonnees, 40

∼BusI2CBusI2C, 48

∼CV7CV7, 63

∼CapteurLuminositeCapteurLuminosite, 54

∼CapteurSolaireCapteurSolaire, 56

∼HorlogeHorloge, 67

∼IhmTournesolIhmTournesol, 80

∼PortPort, 104

∼ProtectionVentProtectionVent, 110

∼RegulateurRegulateur, 117

∼StationMeteoStationMeteo, 131

∼SuiveurSolaireSuiveurSolaire, 138

AcquisitionMeteo, 16∼AcquisitionMeteo, 18AcquisitionMeteo, 18AcquisitionMeteo, 18annuler, 18attendrePeriode, 18fini, 20finir, 19lireConfiguration, 19main, 19msleep, 20mutex, 20nouvellesInformationsStationMeteo, 20periode, 20stationMeteo, 20terminer, 20waitCondition, 20

AcquisitionRegulateur, 21∼AcquisitionRegulateur, 22AcquisitionRegulateur, 22AcquisitionRegulateur, 22annuler, 23attendrePeriode, 23changerEtatBuzzer, 23changerEtatCadenas, 23changerModeCharge, 23

changerModeNuit, 23changerTypeBatterie, 23fini, 25finir, 24lireConfiguration, 24main, 24msleep, 24mutex, 25nouvellesAlarmesRegulateur, 25nouvellesInformationsRegulateur, 25nouvellesJournalisationRegulateur, 25periode, 25regulateur, 25terminer, 25waitCondition, 25

AcquisitionSuiveur, 26∼AcquisitionSuiveur, 28AcquisitionSuiveur, 27AcquisitionSuiveur, 27annuler, 28bdd, 31deplacer, 28deplacerAngleAzimut, 28deplacerAngleElevation, 28deplacerPanneauBas, 28deplacerPanneauDroite, 29deplacerPanneauEst, 29deplacerPanneauGauche, 29deplacerPanneauHaut, 29deplacerPanneauNord, 29deplacerPanneauOuest, 29deplacerPanneauSud, 29enregistrerEtatSuiveur, 29fini, 31finir, 29gererModeAutoProgramme, 29lirePeriode, 30main, 30modeAuto, 31msleep, 30mutex, 31periode, 31proteger, 30signalerInformationsSuiveur, 30stopperCommande, 31suiveur, 31terminer, 31waitCondition, 31

AlarmesRegulateur, 32alarmeBatterie, 32alarmeChargeComplete, 32alarmeDebranchementBatterie, 32alarmeSurchauffeCharge, 32alarmeSurchauffePv, 32alarmeSurtensionCharge, 32alarmeSurtensionPv, 32alarmeSurvoltageBatterie, 32trameRecu, 32

Page 181: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 177

AsservissementSuiveur, 33∼AsservissementSuiveur, 35AsservissementSuiveur, 35afficherEtatSuiveur, 36afficherEtatsLDR, 35afficherLabelAsservissementSuiveur, 36annuler, 36AsservissementSuiveur, 35bdd, 38capteurSolaire, 38deplacerEst, 36deplacerNord, 36deplacerOuest, 36deplacerSud, 36etatLDR1, 38etatLDR2, 38etatLDR3, 38etatLDR4, 38fini, 38finir, 36lireEtatSuiveur, 36main, 36msleep, 37mutex, 39suivreSoleil, 37terminer, 38waitCondition, 39

BASE_DE_TEMPShorloge.h, 164

BH1750_I2C_ADDRESSbusi2c.h, 157

BUFFERSIZEport.h, 167

BaseDeDonnees, 39∼BaseDeDonnees, 40BaseDeDonnees, 40baseDeDonnees, 46BaseDeDonnees, 40connecter, 41db, 46detruireInstance, 41executer, 41getInstance, 42mutex, 46nbAcces, 46recuperer, 42d

BusI2C, 46∼BusI2C, 48BusI2C, 48analogRawRead, 48busI2C, 53BusI2C, 48createInstance, 49current_slave, 53delay_ms, 49get_ms, 49i2c_bus, 53i2c_fd, 53is_open, 50luxRawRead, 50mutex, 53

read, 50releaseInstance, 51select_slave, 51txBuff, 53write, 51, 52

BuzzerEtatJournalisationRegulateur, 101

CANAL_A0_IN2capteurSolaire.h, 161

CANAL_A1_IN1capteurSolaire.h, 161

CV7, 61∼CV7, 63CV7, 63CV7, 63decouperTrames, 63phrases, 65port, 65recevoirPhrases, 63recupererPhrase, 64setMap, 64

CV7.cpp, 161CV7.h, 162

PORT_CV7, 162CapteurLuminosite, 53∼CapteurLuminosite, 54CapteurLuminosite, 54CapteurLuminosite, 54lire, 54luminosite, 54

CapteurSolaire, 55∼CapteurSolaire, 56CapteurSolaire, 56acquerir, 57afficherEtatSuiveur, 57bdd, 60CapteurSolaire, 56detecter, 57etatLDR1, 60etatLDR2, 60etatLDR3, 60etatLDR4, 60getEtatLDR1, 58getEtatLDR2, 58getEtatLDR3, 58getEtatLDR4, 58lireTension, 58mediane, 59reinitialiser, 59trier, 60

Changelog.dox, 161ConfigurationProtectionVent, 61

etat, 61periode, 61vitesseMax, 61

Continuously_H_Resolution_ModecapteurLuminosite.h, 159

DATABASENAMEbasededonnees.h, 156

DEBUG_HORLOGEhorloge.h, 164

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 182: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 178

DELTAcapteurSolaire.h, 161

DOWNsuiveurSolaire.h, 173

ECLAIREEcapteurSolaire.h, 161

ETEINTEcapteurSolaire.h, 161

HOSTNAMEbasededonnees.h, 156

Horloge, 65∼Horloge, 67Horloge, 67_tic, 74_top, 74arreter, 68baseDeTemps, 75debutSimulation, 75demarrer, 68detruireInstance, 68estEnSimulation, 68fini, 69generer, 69getBaseDeTemps, 69getDate, 69getDateActuelle, 69getDateEtHeure, 70getDateEtHeureActuelle, 70getHeure, 70getHeureActuelle, 70, 71getInstance, 71getNbJours, 71, 72getNbMinutes, 72, 73getNbMsec, 73Horloge, 67instance, 75mutex, 75nbAcces, 75programmation, 75programmer, 73simulation, 75simuler, 74tic, 74top, 74

INDEX_ACQUITTEMENTsuiveurSolaire.h, 173

INDEX_AUTOMATIQUEsuiveurSolaire.h, 173

INDEX_DEST_HORAIREsuiveurSolaire.h, 173

INDEX_ERREURsuiveurSolaire.h, 173

INDEX_HEUREsuiveurSolaire.h, 173

INDEX_JOURsuiveurSolaire.h, 173

INDEX_LATITUDEsuiveurSolaire.h, 174

INDEX_LONGITUDEsuiveurSolaire.h, 174

INDEX_MINUTE

suiveurSolaire.h, 174INDEX_MOIS

suiveurSolaire.h, 174INDEX_MOTEUR_A

suiveurSolaire.h, 174INDEX_MOTEUR_B

suiveurSolaire.h, 174INDEX_POS_HORAIRE

suiveurSolaire.h, 174INDEX_SECONDE

suiveurSolaire.h, 174INIT

capteurSolaire.h, 161IhmTournesol, 75∼IhmTournesol, 80IhmTournesol, 77acquisitionMeteo, 94acquisitionRegulateur, 94acquisitionSuiveur, 94activerProtectionVent, 81afficherAlarmeRegulateur, 81afficherBuzzer, 82afficherCadenas, 82afficherDateHeure, 82afficherEtatSuiveur, 87afficherEtatsLDR, 83afficherInformationsRegulateur, 87afficherInformationsStationMeteo, 87afficherInformationsSuiveur, 88afficherJournalisationRegulateur, 89afficherModeCharge, 89afficherModeNuit, 90afficherTypeBatteries, 90alerterProtectionVent, 90asservissementSuiveur, 94deplacer, 90deplacerAngleAzimut, 91deplacerAngleElevation, 91deplacerAzimut, 91deplacerElevation, 91deplacerPositionMaintenance, 91deplacerPositionPluie, 91deplacerPositionVent, 91editerFrequenceProtectionVent, 92editerVitesseMaxProtectionVent, 92etatModeProgramme, 92ihm, 94IhmTournesol, 77initialiserModesDeCharges, 92initialiserQwt, 92initialiserTypeBatteries, 93nouvelEtatProtectionVent, 94protectionVent, 94threadAcquisitionMeteo, 94threadAcquisitionRegulateur, 95threadAcquisitionSuiveur, 95threadAsservissementSuiveur, 95threadProtectionVent, 95timer, 95verfierEtatMode, 94

InformationsRegulateur, 95

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 183: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 179

courantCharge, 95courantPhotovoltaique, 95modeChargeBatterie, 95niveauCharge, 96onOff, 96surplusEnergie, 96temperature, 96tensionBatterie, 96

InformationsStationMeteo, 96directionVent, 97luminosite, 97temperature, 97valide, 98vitesseVent, 98

InformationsSuiveur, 98angleElevationB, 98angleHoraireA, 98automatique, 98destinationA, 99destinationB, 99erreurs, 99heure, 99iMoteurA, 99iMoteurB, 99jour, 99latitude, 99longitude, 99minute, 99mois, 99movingInA, 99movingInB, 99movingOutA, 99movingOutB, 100orientationLatitude, 100orientationLongitude, 100positionElevationB, 100positionHoraireA, 100seconde, 100

JournalisationRegulateur, 100BuzzerEtat, 101ampereHeurePVExcedant, 100ampereHeurePvConsomme, 100chargeAmpaireHeure, 101mode, 101modeLock, 101modenuit, 101nbSemaines, 101niveauChargeMatin, 101niveauChargeSoir, 101serialInterface, 101typeBatterie, 101

LEFTsuiveurSolaire.h, 174

LEVER_COUCHERregulateur.h, 170

LG_HEUREsuiveurSolaire.h, 174

LG_MINUTEsuiveurSolaire.h, 174

LG_SECONDEsuiveurSolaire.h, 174

LTC2309_I2C_ADDRESSbusi2c.h, 157

MAXcapteurLuminosite.h, 159capteurSolaire.h, 161

MAX_I2C_BUSbusi2c.h, 157

MAX_WRITE_LENbusi2c.h, 157

MINcapteurLuminosite.h, 159capteurSolaire.h, 161

MIN_I2C_BUSbusi2c.h, 157

Mesure, 102horodatage, 102unite, 102valeur, 102valide, 102

NB_MESUREScapteurSolaire.h, 161

One_Time_H_Resolution_ModecapteurLuminosite.h, 159

PASSWORDbasededonnees.h, 156

PERIODEasservissementSuiveur.h, 154

PORT_CV7CV7.h, 162

PROTECTION_VENT_AsuiveurSolaire.h, 174

PROTECTION_VENT_BsuiveurSolaire.h, 174

ParametresRegulateur, 102buzzerOnOff, 102modeCoupureChargeFaible, 102modeLock, 103modeNuit, 103serialInterface, 103typeBatterie, 103

Port, 103∼Port, 104Port, 104estOuvert, 104getNbOctetsDisponibles, 104lire, 105onReadyRead, 105ouvrir, 105Port, 104port, 108recevoir, 106, 107transmettre, 107

ProtectionVent, 108∼ProtectionVent, 110ProtectionVent, 110acquerir, 111activerProtectionVent, 111alerte, 111annuler, 111arreterProtection, 112attendrePeriode, 112

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 184: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 180

attente, 115baseDeDonnees, 115configurationProtectionVent, 115editerFrequenceProtectionVent, 112editerVitesseMaxProtectionVent, 113enregisterAlerte, 113fini, 115finir, 113horloge, 115lireModeDeFonctionnement, 113main, 114msleep, 114mutex, 115periode, 115protection, 115protectionActivee, 115ProtectionVent, 110proteger, 114recupererConfigurationProtectionVent, 114surveillerVent, 114terminer, 115vitesse, 115vitesseMax, 115waitCondition, 115

README.dox, 168RIGHT

suiveurSolaire.h, 174Regulateur, 116∼Regulateur, 117Regulateur, 117acquerir, 118acquerirHistorique, 118acquerirInformations, 119alarmesRegulateur, 129bdd, 129changerEtatBuzzer, 120changerEtatCadenas, 120changerModeCharge, 120changerModeNuit, 121changerTypeBatterie, 121decoderAlarmes, 121decoderMenuState, 122decoderMenuState2, 123decoderTrameHistorique, 124decoderTrameInformations, 125envoyerMenuState, 127envoyerMenuState2, 128informationsRegulateur, 129journalisationRegulateur, 129mutex, 129nouvellesAlarmesRegulateur, 129nouvellesInformationsRegulateur, 129nouvellesJournalisationRegulateur, 129parametresRegulateur, 129port, 130Regulateur, 117

SEUIL_DETECTIONcapteurSolaire.h, 161

SOIR_MATINregulateur.h, 170

StationMeteo, 130

∼StationMeteo, 131StationMeteo, 131_direction, 135_temperature, 135_vitesse, 135acquerir, 132bdd, 135capteurLumineux, 135cv7, 135direction, 135enregistrerMesures, 132informationStationMeteo, 135lireDirection, 133lireLuminosite, 133lireTemperature, 133lireVent, 134lireVitesse, 134nouvellesInformationsStationMeteo, 135StationMeteo, 131temperature, 136vitesse, 136

SuiveurSolaire, 136∼SuiveurSolaire, 138SuiveurSolaire, 138acquerir, 138bdd, 148calculerChecksum, 141date, 148decoderTrame, 141deplacer, 144deplacerAngleElevation, 144deplacerAngleHoraire, 144deplacerManuel, 145deplacerPanneauBas, 145deplacerPanneauDroite, 145deplacerPanneauGauche, 146deplacerPanneauHaut, 146enregistrerInformationsBdd, 146gererModeAutoProgramme, 146getEtat, 147informationsSuiveur, 148mutexPort, 148port, 148protectionVent, 148proteger, 147reinitialiserInformationsSuiveur, 147signalerInformationsSuiveur, 148stopperCommande, 148SuiveurSolaire, 138

TEMPSATTENTEprotectionVent.cpp, 167

TENSION_ALIMcapteurSolaire.h, 161

TOUTEcapteurSolaire.h, 161

UPsuiveurSolaire.h, 175

USERNAMEbasededonnees.h, 156

VEILLEUSE_ARRETregulateur.h, 170

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 185: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 181

_directionStationMeteo, 135

_temperatureStationMeteo, 135

_ticHorloge, 74

_topHorloge, 74

_vitesseStationMeteo, 135

acquerirCapteurSolaire, 57ProtectionVent, 111Regulateur, 118StationMeteo, 132SuiveurSolaire, 138

acquerirHistoriqueRegulateur, 118

acquerirInformationsRegulateur, 119

acquisitionMeteoIhmTournesol, 94

acquisitionMeteo.cpp, 149acquisitionMeteo.h, 149acquisitionRegulateur

IhmTournesol, 94acquisitionRegulateur.cpp, 150acquisitionRegulateur.h, 151acquisitionSuiveur

IhmTournesol, 94acquisitionSuiveur.cpp, 152acquisitionSuiveur.h, 152activerProtectionVent

IhmTournesol, 81ProtectionVent, 111

afficherAlarmeRegulateurIhmTournesol, 81

afficherBuzzerIhmTournesol, 82

afficherCadenasIhmTournesol, 82

afficherDateHeureIhmTournesol, 82

afficherEtatSuiveurAsservissementSuiveur, 36CapteurSolaire, 57IhmTournesol, 87

afficherEtatsLDRAsservissementSuiveur, 35IhmTournesol, 83

afficherInformationsRegulateurIhmTournesol, 87

afficherInformationsStationMeteoIhmTournesol, 87

afficherInformationsSuiveurIhmTournesol, 88

afficherJournalisationRegulateurIhmTournesol, 89

afficherLabelAsservissementSuiveurAsservissementSuiveur, 36

afficherModeChargeIhmTournesol, 89

afficherModeNuitIhmTournesol, 90

afficherTypeBatteriesIhmTournesol, 90

alarmeBatterieAlarmesRegulateur, 32

alarmeChargeCompleteAlarmesRegulateur, 32

alarmeDebranchementBatterieAlarmesRegulateur, 32

alarmeSurchauffeChargeAlarmesRegulateur, 32

alarmeSurchauffePvAlarmesRegulateur, 32

alarmeSurtensionChargeAlarmesRegulateur, 32

alarmeSurtensionPvAlarmesRegulateur, 32

alarmeSurvoltageBatterieAlarmesRegulateur, 32

alarmesRegulateurRegulateur, 129

alerteProtectionVent, 111

alerterProtectionVentIhmTournesol, 90

ampereHeurePVExcedantJournalisationRegulateur, 100

ampereHeurePvConsommeJournalisationRegulateur, 100

analogRawReadBusI2C, 48

angleElevationBInformationsSuiveur, 98

angleHoraireAInformationsSuiveur, 98

annulerAcquisitionMeteo, 18AcquisitionRegulateur, 23AcquisitionSuiveur, 28AsservissementSuiveur, 36ProtectionVent, 111

arreterHorloge, 68

arreterProtectionProtectionVent, 112

asservissementSuiveurIhmTournesol, 94

asservissementSuiveur.cpp, 153asservissementSuiveur.h, 153

PERIODE, 154attendrePeriode

AcquisitionMeteo, 18AcquisitionRegulateur, 23ProtectionVent, 112

attenteProtectionVent, 115

automatiqueInformationsSuiveur, 98

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 186: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 182

baseDeDonneesBaseDeDonnees, 46ProtectionVent, 115

baseDeTempsHorloge, 75

basededonnees.cpp, 155basededonnees.h, 155

DATABASENAME, 156HOSTNAME, 156PASSWORD, 156USERNAME, 156

bddAcquisitionSuiveur, 31AsservissementSuiveur, 38CapteurSolaire, 60Regulateur, 129StationMeteo, 135SuiveurSolaire, 148

busI2CBusI2C, 53

busi2c.cpp, 156busi2c.h, 156

BH1750_I2C_ADDRESS, 157LTC2309_I2C_ADDRESS, 157MAX_I2C_BUS, 157MAX_WRITE_LEN, 157MIN_I2C_BUS, 157

buzzerOnOffParametresRegulateur, 102

calculerChecksumSuiveurSolaire, 141

capteurLumineuxStationMeteo, 135

capteurLuminosite.cpp, 158capteurLuminosite.h, 158

Continuously_H_Resolution_Mode, 159MAX, 159MIN, 159One_Time_H_Resolution_Mode, 159

capteurSolaireAsservissementSuiveur, 38

capteurSolaire.cpp, 159capteurSolaire.h, 160

CANAL_A0_IN2, 161CANAL_A1_IN1, 161DELTA, 161ECLAIREE, 161ETEINTE, 161INIT, 161MAX, 161MIN, 161NB_MESURES, 161SEUIL_DETECTION, 161TENSION_ALIM, 161TOUTE, 161

changerEtatBuzzerAcquisitionRegulateur, 23Regulateur, 120

changerEtatCadenasAcquisitionRegulateur, 23

Regulateur, 120changerModeCharge

AcquisitionRegulateur, 23Regulateur, 120

changerModeNuitAcquisitionRegulateur, 23Regulateur, 121

changerTypeBatterieAcquisitionRegulateur, 23Regulateur, 121

chargeAmpaireHeureJournalisationRegulateur, 101

configurationProtectionVent, 61ProtectionVent, 115

connecterBaseDeDonnees, 41

courantChargeInformationsRegulateur, 95

courantPhotovoltaiqueInformationsRegulateur, 95

createInstanceBusI2C, 49

current_slaveBusI2C, 53

cv7StationMeteo, 135

dateSuiveurSolaire, 148

dbBaseDeDonnees, 46

debutSimulationHorloge, 75

decoderAlarmesRegulateur, 121

decoderMenuStateRegulateur, 122

decoderMenuState2Regulateur, 123

decoderTrameSuiveurSolaire, 141

decoderTrameHistoriqueRegulateur, 124

decoderTrameInformationsRegulateur, 125

decouperTramesCV7, 63

delay_msBusI2C, 49

demarrerHorloge, 68

deplacerAcquisitionSuiveur, 28IhmTournesol, 90SuiveurSolaire, 144

deplacerAngleAzimutAcquisitionSuiveur, 28IhmTournesol, 91

deplacerAngleElevationAcquisitionSuiveur, 28IhmTournesol, 91

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 187: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 183

SuiveurSolaire, 144deplacerAngleHoraire

SuiveurSolaire, 144deplacerAzimut

IhmTournesol, 91deplacerElevation

IhmTournesol, 91deplacerEst

AsservissementSuiveur, 36deplacerManuel

SuiveurSolaire, 145deplacerNord

AsservissementSuiveur, 36deplacerOuest

AsservissementSuiveur, 36deplacerPanneauBas

AcquisitionSuiveur, 28SuiveurSolaire, 145

deplacerPanneauDroiteAcquisitionSuiveur, 29SuiveurSolaire, 145

deplacerPanneauEstAcquisitionSuiveur, 29

deplacerPanneauGaucheAcquisitionSuiveur, 29SuiveurSolaire, 146

deplacerPanneauHautAcquisitionSuiveur, 29SuiveurSolaire, 146

deplacerPanneauNordAcquisitionSuiveur, 29

deplacerPanneauOuestAcquisitionSuiveur, 29

deplacerPanneauSudAcquisitionSuiveur, 29

deplacerPositionMaintenanceIhmTournesol, 91

deplacerPositionPluieIhmTournesol, 91

deplacerPositionVentIhmTournesol, 91

deplacerSudAsservissementSuiveur, 36

destinationAInformationsSuiveur, 99

destinationBInformationsSuiveur, 99

detecterCapteurSolaire, 57

detruireInstanceBaseDeDonnees, 41Horloge, 68

directionStationMeteo, 135

directionVentInformationsStationMeteo, 97

editerFrequenceProtectionVentIhmTournesol, 92ProtectionVent, 112

editerVitesseMaxProtectionVent

IhmTournesol, 92ProtectionVent, 113

enregisterAlerteProtectionVent, 113

enregistrerEtatSuiveurAcquisitionSuiveur, 29

enregistrerInformationsBddSuiveurSolaire, 146

enregistrerMesuresStationMeteo, 132

envoyerMenuStateRegulateur, 127

envoyerMenuState2Regulateur, 128

erreursInformationsSuiveur, 99

estEnSimulationHorloge, 68

estOuvertPort, 104

etatConfigurationProtectionVent, 61

etatLDR1AsservissementSuiveur, 38CapteurSolaire, 60

etatLDR2AsservissementSuiveur, 38CapteurSolaire, 60

etatLDR3AsservissementSuiveur, 38CapteurSolaire, 60

etatLDR4AsservissementSuiveur, 38CapteurSolaire, 60

etatModeProgrammeIhmTournesol, 92

executerBaseDeDonnees, 41

finiAcquisitionMeteo, 20AcquisitionRegulateur, 25AcquisitionSuiveur, 31AsservissementSuiveur, 38Horloge, 69ProtectionVent, 115

finirAcquisitionMeteo, 19AcquisitionRegulateur, 24AcquisitionSuiveur, 29AsservissementSuiveur, 36ProtectionVent, 113

genererHorloge, 69

gererModeAutoProgrammeAcquisitionSuiveur, 29SuiveurSolaire, 146

get_msBusI2C, 49

getBaseDeTemps

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 188: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 184

Horloge, 69getDate

Horloge, 69getDateActuelle

Horloge, 69getDateEtHeure

Horloge, 70getDateEtHeureActuelle

Horloge, 70getEtat

SuiveurSolaire, 147getEtatLDR1

CapteurSolaire, 58getEtatLDR2

CapteurSolaire, 58getEtatLDR3

CapteurSolaire, 58getEtatLDR4

CapteurSolaire, 58getHeure

Horloge, 70getHeureActuelle

Horloge, 70, 71getInstance

BaseDeDonnees, 42Horloge, 71

getNbJoursHorloge, 71, 72

getNbMinutesHorloge, 72, 73

getNbMsecHorloge, 73

getNbOctetsDisponiblesPort, 104

heureInformationsSuiveur, 99

horlogeProtectionVent, 115

horloge.cpp, 163horloge.h, 163

BASE_DE_TEMPS, 164DEBUG_HORLOGE, 164

horodatageMesure, 102

i2c_busBusI2C, 53

i2c_fdBusI2C, 53

iMoteurAInformationsSuiveur, 99

iMoteurBInformationsSuiveur, 99

ihmIhmTournesol, 94

ihmTournesol.cpp, 164ihmTournesol.h, 164informationStationMeteo

StationMeteo, 135informationsRegulateur

Regulateur, 129informationsSuiveur

SuiveurSolaire, 148initialiserModesDeCharges

IhmTournesol, 92initialiserQwt

IhmTournesol, 92initialiserTypeBatteries

IhmTournesol, 93instance

Horloge, 75is_open

BusI2C, 50

jourInformationsSuiveur, 99

journalisationRegulateurRegulateur, 129

latitudeInformationsSuiveur, 99

lireCapteurLuminosite, 54Port, 105

lireConfigurationAcquisitionMeteo, 19AcquisitionRegulateur, 24

lireDirectionStationMeteo, 133

lireEtatSuiveurAsservissementSuiveur, 36

lireLuminositeStationMeteo, 133

lireModeDeFonctionnementProtectionVent, 113

lirePeriodeAcquisitionSuiveur, 30

lireTemperatureStationMeteo, 133

lireTensionCapteurSolaire, 58

lireVentStationMeteo, 134

lireVitesseStationMeteo, 134

longitudeInformationsSuiveur, 99

luminositeCapteurLuminosite, 54InformationsStationMeteo, 97

luxRawReadBusI2C, 50

mainAcquisitionMeteo, 19AcquisitionRegulateur, 24AcquisitionSuiveur, 30AsservissementSuiveur, 36main.cpp, 165ProtectionVent, 114

main.cpp, 165

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 189: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 185

main, 165mediane

CapteurSolaire, 59minute

InformationsSuiveur, 99mode

JournalisationRegulateur, 101modeAuto

AcquisitionSuiveur, 31modeChargeBatterie

InformationsRegulateur, 95modeCoupureChargeFaible

ParametresRegulateur, 102modeLock

JournalisationRegulateur, 101ParametresRegulateur, 103

modeNuitParametresRegulateur, 103

modenuitJournalisationRegulateur, 101

moisInformationsSuiveur, 99

movingInAInformationsSuiveur, 99

movingInBInformationsSuiveur, 99

movingOutAInformationsSuiveur, 99

movingOutBInformationsSuiveur, 100

msleepAcquisitionMeteo, 20AcquisitionRegulateur, 24AcquisitionSuiveur, 30AsservissementSuiveur, 37ProtectionVent, 114

mutexAcquisitionMeteo, 20AcquisitionRegulateur, 25AcquisitionSuiveur, 31AsservissementSuiveur, 39BaseDeDonnees, 46BusI2C, 53Horloge, 75ProtectionVent, 115Regulateur, 129

mutexPortSuiveurSolaire, 148

nbAccesBaseDeDonnees, 46Horloge, 75

nbSemainesJournalisationRegulateur, 101

niveauChargeInformationsRegulateur, 96

niveauChargeMatinJournalisationRegulateur, 101

niveauChargeSoirJournalisationRegulateur, 101

nouvelEtatProtectionVent

IhmTournesol, 94nouvellesAlarmesRegulateur

AcquisitionRegulateur, 25Regulateur, 129

nouvellesInformationsRegulateurAcquisitionRegulateur, 25Regulateur, 129

nouvellesInformationsStationMeteoAcquisitionMeteo, 20StationMeteo, 135

nouvellesJournalisationRegulateurAcquisitionRegulateur, 25Regulateur, 129

onOffInformationsRegulateur, 96

onReadyReadPort, 105

orientationLatitudeInformationsSuiveur, 100

orientationLongitudeInformationsSuiveur, 100

ouvrirPort, 105

parametresRegulateurRegulateur, 129

periodeAcquisitionMeteo, 20AcquisitionRegulateur, 25AcquisitionSuiveur, 31ConfigurationProtectionVent, 61ProtectionVent, 115

phrasesCV7, 65

portCV7, 65Port, 108Regulateur, 130SuiveurSolaire, 148

port.cpp, 166port.h, 166

BUFFERSIZE, 167positionElevationB

InformationsSuiveur, 100positionHoraireA

InformationsSuiveur, 100programmation

Horloge, 75programmer

Horloge, 73protection

ProtectionVent, 115protectionActivee

ProtectionVent, 115protectionVent

IhmTournesol, 94SuiveurSolaire, 148

protectionVent.cpp, 167TEMPSATTENTE, 167

protectionVent.h, 168

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 190: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 186

protegerAcquisitionSuiveur, 30ProtectionVent, 114SuiveurSolaire, 147

readBusI2C, 50

recevoirPort, 106, 107

recevoirPhrasesCV7, 63

recupererBaseDeDonnees, 42d

recupererConfigurationProtectionVentProtectionVent, 114

recupererPhraseCV7, 64

regulateurAcquisitionRegulateur, 25

regulateur.cpp, 169regulateur.h, 169

LEVER_COUCHER, 170SOIR_MATIN, 170VEILLEUSE_ARRET, 170

reinitialiserCapteurSolaire, 59

reinitialiserInformationsSuiveurSuiveurSolaire, 147

releaseInstanceBusI2C, 51

secondeInformationsSuiveur, 100

select_slaveBusI2C, 51

serialInterfaceJournalisationRegulateur, 101ParametresRegulateur, 103

setMapCV7, 64

signalerInformationsSuiveurAcquisitionSuiveur, 30SuiveurSolaire, 148

simulationHorloge, 75

simulerHorloge, 74

stationMeteoAcquisitionMeteo, 20

stationMeteo.cpp, 170stationMeteo.h, 171stopperCommande

AcquisitionSuiveur, 31SuiveurSolaire, 148

suiveurAcquisitionSuiveur, 31

suiveurSolaire.cpp, 171suiveurSolaire.h, 172

DOWN, 173INDEX_ACQUITTEMENT, 173INDEX_AUTOMATIQUE, 173

INDEX_ERREUR, 173INDEX_HEURE, 173INDEX_JOUR, 173INDEX_LATITUDE, 174INDEX_LONGITUDE, 174INDEX_MINUTE, 174INDEX_MOIS, 174INDEX_MOTEUR_A, 174INDEX_MOTEUR_B, 174INDEX_POS_HORAIRE, 174INDEX_SECONDE, 174LEFT, 174LG_HEURE, 174LG_MINUTE, 174LG_SECONDE, 174PROTECTION_VENT_A, 174PROTECTION_VENT_B, 174RIGHT, 174UP, 175

suivreSoleilAsservissementSuiveur, 37

surplusEnergieInformationsRegulateur, 96

surveillerVentProtectionVent, 114

temperatureInformationsRegulateur, 96InformationsStationMeteo, 97StationMeteo, 136

tensionBatterieInformationsRegulateur, 96

terminerAcquisitionMeteo, 20AcquisitionRegulateur, 25AcquisitionSuiveur, 31AsservissementSuiveur, 38ProtectionVent, 115

threadAcquisitionMeteoIhmTournesol, 94

threadAcquisitionRegulateurIhmTournesol, 95

threadAcquisitionSuiveurIhmTournesol, 95

threadAsservissementSuiveurIhmTournesol, 95

threadProtectionVentIhmTournesol, 95

ticHorloge, 74

timerIhmTournesol, 95

topHorloge, 74

tournesol.h, 175trameRecu

AlarmesRegulateur, 32transmettre

Port, 107trier

CapteurSolaire, 60

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen

Page 191: Tournesol - Freetvaira.free.fr/projets/cdc-2016/tournesol-refman.pdfr154 jathiel 2016-06-08 14 :03 :15 +0200 (mer. 08 juin 2016) 1 ligne Commencement de la bdd pour le regulateur de

INDEX 187

txBuffBusI2C, 53

typeBatterieJournalisationRegulateur, 101ParametresRegulateur, 103

uniteMesure, 102

valeurMesure, 102

valideInformationsStationMeteo, 98Mesure, 102

verfierEtatModeIhmTournesol, 94

vitesseProtectionVent, 115StationMeteo, 136

vitesseMaxConfigurationProtectionVent, 61ProtectionVent, 115

vitesseVentInformationsStationMeteo, 98

waitConditionAcquisitionMeteo, 20AcquisitionRegulateur, 25AcquisitionSuiveur, 31AsservissementSuiveur, 39ProtectionVent, 115

writeBusI2C, 51, 52

Généré le Jeudi Juin 9 2016 21:46:01 pour Tournesol par Doxygen