• Aucun résultat trouvé

Médian AG43 Automne 2017 Vendredi 10 Novembre 2017 Durée : 1h00

N/A
N/A
Protected

Academic year: 2022

Partager "Médian AG43 Automne 2017 Vendredi 10 Novembre 2017 Durée : 1h00"

Copied!
2
0
0

Texte intégral

(1)

1

Médian AG43

Automne 2017

Vendredi 10 Novembre 2017 Durée : 1h00

Exercice 1 : Lecture d’une chaine de caractères complète

Une platine Arduino est un petit ordinateur comportant un petit microcontrôleur, ne pouvant communiquer que par une liaison série avec un ordinateur avec lequel elle est connectée et disposant de connections logiques et analogiques d’entrées/sorties.

On souhaite traiter des informations (des commandes) provenant par cette liaison série. Les caractères provenant de la liaison série sont placés automatiquement dans une zone mémoire appelée tampon.

On dispose de plusieurs fonctions utiles pour la gestion des communications, dont celles qui serviront dans cet exercice :

 available() : fonction qui retourne le nombre de caractères disponibles à la lecture dans le tampon de réception du port Série

 read() : fonction qui retourne le premier caractère disponible dans le tampon de lecture, et le retire du tampon. Si aucun caractère est disponible, elle retourne 0.

On considère que la chaine de caractères constituant une commande est complète, lorsque l’on lit le caractère LF (code ASCII 10). Le tampon de lecture ne sera pas forcément vide, car il est susceptible de contenir plusieurs commandes.

On demande d’écrire une fonction appelée getCommand(commande), qui admet comme argument la chaine de caractères commande (elle est initialement vide), qui place dans cette chaine la suite de caractères disponibles dans le tampon de réception jusqu’au premier caractère LF rencontré. Elle remplace le caractère LF par le caractère NUL , ce qui permet de délimiter la chaine de caractères pour être conforme à la norme du langage C. Enfin, elle retourne le nombre de caractères placés dans la chaine commande, sans compter le

caractère NUL.

Exercice 2 : Envoi journalier de données enregistrées

On travaille sur une station météo connectée au réseau domestique (wifi). Le logiciel comporte une boucle principale qui commence par lire la date et l’heure et décide s’il faut effectuer une mesure en fonction de l’intervalle souhaité. Cette boucle principale est exécutée plusieurs fois par seconde.

Le travail demandé consiste à écrire un morceau de cette boucle qui est chargé, à chaque changement de jour (donc vers minuit), d’appeler la fonction sendLog() qui envoie par email les données enregistrées durant les 24 dernières heures. Vous n’avez pas à écrire la fonction sendLog(), on suppose qu’elle existe déjà.

(2)

2 Le morceau de programme est très simple et ne comporte que quelques lignes. Attention à ce qu’il n’envoie pas plusieurs fois de suite les données. La difficulté consiste à détecter le changement de jour.

Vous disposez des variables entières hours, mn, sec, monthDay, month, year, weekDay qui sont initialisées en début de boucle. monthDay indique le jour du mois (1, … ,31) et weekDay le jour de la semaine (1 pour Lundi, et 7 pour Dimanche). Si vous avez besoin de créer une variable, précisez son type et son utilité.

Exercice 3 : Insertion d'une chaîne dans une autre

Ecrire une procédure appelée insert(dest, ins, place) qui insère la chaîne de caractères ins dans la chaîne dest à partir de la position place. Les chaînes se terminent par le caractère NUL. On dispose de la fonction strlen(chaîne)qui retourne la longueur de la chaine.

Exemple (pour plus de clarté, les espaces sont représentés par des caractères "_") : dest = "Quelle_journée"

ins = "_belle"

Après appel de la procédure insert sous la forme suivante : insert(dest, ins, 6)

nous aurons :

dest = "Quelle_belle_journee"

Références

Documents relatifs

Khouloud BEDOUD, 2016, «Modélisation et Commande d’une Chaine de Conversion d’Energie Renouvelable.», Thèse de doctorat, Université Badji Mokhtar de Annaba.. Modélisation

Aucun frais d'inscription n'est demandé pour cette réunion, mais nous souhaiterions être informé de votre participation par mail pour mieux organiser la logistique.. Merci de

Il sera suivi par une étude des performances des stratégies de régulations dans un environnement correspondant au comportement de la chaîne dans les zones de fonctionnement

En dernier lieu, la mise en œuvre d’une étude d’un système de commande de puissance connecté au réseau et d’un système de commande du courent rotorique

lumineuses engendre une lumière jaune. 8) Le spectateur, équipé de verres de couleur cyan, va percevoir une lumière verte car les verres (filtres) de couleur cyan

Cette fonction déplace la barrière dans la direction sens et surveille le capteur correspondant au sens du mouvement (FERME pour sens = FERMETURE, OUVERT pour sens

Il faut donc faire défiler le message dans buffer, c'est à dire copier message dans buffer à partir d'une position donnée, afficher son contenu pendant un instant donné

• La chaine d’information, composée d’un boitier électronique et de capteurs, elle détecte le signal et ordonne, lorsqu’elle en reçoit l’ordre, la mise en route du moteur