联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2020-11-01 11:21

ROMET Pierre

Automne 2020

1 Pr´esentation du projet

1.1 Introduction

Le TP de LO43 va prendre la forme d’un mini-projet, que vous allez devoir r´ealiser en solitaire,

qui va vous permettre de mettre en pratique les connaissances acquises lors du cours

et du TD; il sera ´egalement une premi`ere mise en contexte concernant le d´eroulement et

les attentes du projet Java que vous r´ealiserez `a la suite de ce tp.

Vous avez jusqu’au jeudi 22 octobre pour me rendre votre tp projet.

1.2 Mise en contexte

Ce mini-projet vise la r´ealisation d’un simulateur d’environnement IOT.

Vous devrez mod´eliser un ´eco-syst`eme de capteurs ayant pour but de monitor´e l’environnement

de la cabine des passag´es `a bord d’un avion de ligne.

Votre ´eco-syst`eme sera bas´e sur cinq types de capteurs diff´erents, devant monitorer la

temp´erature, l’humidit´e, la lumi`ere ainsi que le niveau sonore dans la cabine. Ces capteurs

devrons ensuite communiquer avec un serveur sur lequel sera stock´e les donn´ees qui lui

seront transmises.

1.3 Rendu attendu

Pour le 22 octobre , vous devrez me rendre un rapport d´ecrivant la mani`ere dont vous

aurez architectur´e, pens´e, men´e le d´eveloppement de votre projet. L’objectif n’est pas

d’expliquer dans le d´etail les fonctions que vous aurez coder, mais bien la mani`ere dont

vous aurez con¸cu ce tp projet.

Je ferais un point sur cet ´el´ement lors de le premi`ere r´eunion Teams le jeudi 17 septembre

`a 14h.

1

2 Le simulateur

Lors de la premi`ere sc´eance, vous allez ˆetre amen´e `a mettre en pratique les bases de la

programmation C++ qui vous ont ´et´e introduites lors du cours et du TD.

Vous devrez ´egalement mettre en place des outils de programmation (l’IDE sur lequel

vous d´eciderez de travailler), ainsi qu’un outil de versionning et de travail collaboratif.

PS: Vous retrouverez en fin de document, un glossaire des logiciels que vous allez ˆetre

amen´e `a utiliser, ainsi qu’un coding standard que vous devrez respecter.

2.1 Votre premier programme

Pour commencer, vous allez coder un classique de la programmation, le ”Hello World”.

Seul contrainte obligatoire pour cette partie, vous devrez ´editer votre code dans un fichier

text `a l’aide d’un ´editeur (vim, nano ou autre) et ensuite le compiler et l’´executer en ligne

de commande.

Concernant la compilation, vous utiliserez le compilateur GNU C++, `a savoir ”g++”.

De plus, vous utiliserez les options du compilateur pour renommer votre fichi´e compil´e

”HELLOWORLD” ainsi qu’afficher les warnings.

De plus, vous vous baserez sur la documentation Linux de la console, le ”man” pour

r´ediger votre commande g++.

2.2 Premier pas dans le simulateur

Nous allons maintenant commencer le d´eveloppement de votre simulateur. Comme expliqu´e

pr´ec´edemment, le simulateur est compos´e d’un serveur ainsi que d’un ensemble de

capteurs.

Cependant, avant de commencer `a coder, vous allez mettre en place un d´epˆot GitHub.

GitHub est une plate-forme web permettant d’h´eberger votre travail, de le versionner et

de travailler `a plusieurs dessus. C’est notamment grˆace `a ce d´epˆot, que votre travail sera

rendu en milieu de semestre, afin d’ˆetre ´evalu´e.

Vous allez donc commencer par vous cr´eer un compte sur la plateforme (´eviter d’utiliser le

mail utbm), puis vous mettrez un commentaire dans le canal teams d´edier au tp ”Forum

TP-Projet” contenant votre identifiant GitHub afin que l’encadrant de tp puisse vous

ajouter au d´epˆot sur lequel vous serez amener `a travailler.

Une fois cela fait, vous allez commencer par v´erifier que Git est bien install´e sur votre

ordinateur. Pour cela vous ex´ecuterez la commande suivante:

git version qui devra vous retourner: git version 2.28.0

Sinon, installez le: apt install git-all

2

Vous pouvez maintenant cloner `a l’emplacement que vous souhaitez sur votre machine,

le repo fourni, avec la commande:

git clone ”URL du d´epˆot fourni par le prof”

L’URL ´etant: https://github.com/Aldarme/AP4A_TP_C-.git

Vous allez maintenant vous d´eplacer dans le repo que vous venez de cloner avec la commande

cd:

cd NOMDUDOSSIER

Ensuite, vous aller cr´eer une nouvelle branche personnel sur le repo, qui sera votre espace

de travail.

git branch MABRANCH

Puis, vous aller vous d´efinir cette nouvelle branche comme espace de travail par d´efaut:

git checkout MABRANCH

Pour finir, vous pousserez votre nouvelle branch sur le serveur distant:

git push - -set-upstream origin MABRANCH

Cela fait, vous disposer maintenant d’un espace de travail, sur un repo distant, qui vous

est d´edi´e. Vous allez maintenant copier votre ”helloword” dans le dossier du repo que

vous venez de cloner.

Nous allons maintenant placer notre fichier sous ”suivis de version”, ce qui va permettre

de traquer les changements qui surviendront dans le code du fichier. On dit que le code

est ajout´e `a l’index.

git add MONFICHIER

Ensuite, vous aller valider les modifications apport´ees `a l’index

git commit –m “Description du commit”

Si probleme d’autentification lors du commit:

git config –global user.email ”MONMAILGITHUB”

git config –global user.name ”MONNOM”

Enfin, vous pousser votre code sur le serveur distant

git push

Rentrer email, mdp github

3

2.3 Premi`ere classe

Avant toute chose, vous devrez prendre compte et analyser le coding standard qui vous

est fourni avec ce sujet de tp. Vous devrez appliquer celui-ci pour coder votre projet.

La classe ”Server” doit permettre de recevoir, de stocker et d’afficher les donn´ees envoy´es

provenant des capteurs de la cabine de l’avion.

Vous allez commencer par impl´ementer la forme canonique de la classe ”Server”.

Ensuite, vous impl´ementerez le stockage et l’affichage des mesures provenant des capteurs:

Concernant le stockage des donn´ees, vous devrez logger les mesures re¸cus dans un

fichier de log.

Pour l’affichage, vous redirigerez les donn´ees des capteurs vers la console.

4

Travail `a rendre pour le lundi 28 septembre

Cette partie de votre tp projet sera `a rendre pour le lundi 28 septembre. Vous effectuerez

votre rendu sous la forme d’un rapport que vous d´eposerez sur moodle et vous pousserez

votre code sur github.

Vous aurez `a impl´ementer la surcharge des op´erateurs ”=” et <<.

Pour les deux op´erateurs, la surcharge se d´efinit comme suivant:

”=” : La surcharge doit permettre de copier le contenu d’un objet dans l’objet

courant.

”<<” : Deux surcharges vous sont demand´ees:

– <<: Redirection vers la console

– <<: Redirection vers un fichier

Pour vous aider, utiliser la doc C++ en ligne:

https://www.cplusplus.com/reference/,

Enfin, vous aurez `a explorer les diverses possibilit´es qu’offre Git. Pour cela, vous

trouverez un tuto `a l’adresse suivante,

https://try.github.io/,

se nommant ”Learn Git branching”, que vous aller devoir faire.

Vous me rendrez un rapport faisant ´etat de la r´eussite de ce tuto.

De plus, vous utiliserez l’outil ”Visualizing Git”, `a la mˆeme adresse, pour tester et comprendre

les commandes suivantes:

Git config

Git init

Git status

Git merge

Git diff

Git blame

Vous incluerez votre compr´ehension de ces commandes dans le rapport.

5

3 Simulateur, la suite

Nous allons maintenant voir comment mettre en place l’architecture logiciel du projet et

son impl´ementation. L’architecture du projet vous est donn´e, afin que vous puissiez tous

travailler sur la mˆeme base et que vous ne rencontriez pas de difficult´e li´e `a la conception

de l’architecture du projet.

Vous trouverez le fichier illustrant l’architecture du projet en annexe. Attention, le diagramme

de classe en annexe ne fourni que le nom des fonctions, mais il ne d´efini pas le type

de retour ainsi que les param`etres possibles. Vous devrez donc faire preuve d’imagination

pour impl´ementer au mieux ces fonctions.

Je vous pr´esenterais ce diagramme de classe `a l’aide d’une vid´eo que vous trouverez sur

le canal de TP.

Apr`es avoir pris connaissance du fichier en annexe, vous pouvez commencer `a coder les

classes d´efinit par le diagramme de classe (fichier en annexe).

3.1 Classe ”Sensor”

La classe ”Sensor” repr´esente la classe m`ere sur laquelle vous allez baser les classes de vos

capteurs.

Dans un premier temps, tous vos capteurs vous retournerons le mˆeme type de donn´ees.

Pour le rendu final, vous devrez pouvoir g´en´erer des donn´ees de types diff´erents, en fonction

du type des capteurs.

Temperature, Humidity : FLOAT

Sound : INTEGER

Light : BOOLEAN

3.2 Classe ”Scheduler”

La classe Sch´eduler est le coeur de votre simulateur. C’est lui qui va g´erer la fr´equence `a

laquelle il va r´ecup´erer les donn´ees des diff´erents capteurs pour ensuite les transmettres

au serveur.

Dans un premier temps, vous r´ecup´ererez les mesures de tous les capteurs en mˆeme temps.

La contrainte final sera que chaque type de capteur devra ˆetre r´ecup´er´e `a des fr´equences

diff´erentes, avant d’ˆetre remont´e sur le serveur.

3.3 Classe ”Server”

La classe ”Server” doit permettre de recevoir, de stocker et d’afficher les donn´ees envoy´es

provenant des capteurs de la cabine de l’avion.

Concernant le stockage des donn´ees, vous devrez logger les mesures envoy´es par les capteurs

dans des fichiers de log. Chaque type de capteur aura son fichier de log d´edi´e.

De plus, vous devrez pouvoir activer ou non, l’affichage des donn´ees ou le stockage de ces

derni`eres.

6

4 Cheat Sheet

Voici une liste de logiciels qui pourrons vous ˆetre utile pour le projet:

Editeur Architecture logiciel (UML): le seul et unique ”ASTAH”

Le man

´editeur de code: VIM, EMACS, Gedit, atom, nano, imax, sublimeText

IDE: Eclipse, VisualStudio, Jetbrain, etc...

Compilateur: g++

Debugger: gdb

makefile (compilation automatis´e)

valgrind (d´etection fuite m´emoire)

Git

GitHub

5 Guide de programmation

Vous trouverez de plus, un coding standard joint au sujet de TP, que vous aurez `a respecter

pour la programmation de votre TP projet.

7

8


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp