Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sde2:teme:tema_fr_2_microbit_busybox [2021/03/24 18:42]
alexandra.state2607 [Micro:bit busybox]
sde2:teme:tema_fr_2_microbit_busybox [2021/04/06 16:37] (current)
ioana_maria.culic [Commandes supportées]
Line 6: Line 6:
 Date limite: **7 Avril, 23:55**\\ Date limite: **7 Avril, 23:55**\\
 Points: **1 point** de la note finale\\ Points: **1 point** de la note finale\\
-Téléchargement du devoir: ​\\ +Téléchargement du devoir: ​ ​[[https://​classroom.github.com/​a/​1owyePFX|Devoir 2]]
-Télécharger en retard**1 points ​jour** (maximum 4 jours)\\+
 </​note>​ </​note>​
 +
  
  
Line 22: Line 22:
  
   - Le devoir doit contenir un fichier nommé //Readme// avec des explications concernant la manière choisie pour résoudre le devoir (-0.1p)   - Le devoir doit contenir un fichier nommé //Readme// avec des explications concernant la manière choisie pour résoudre le devoir (-0.1p)
-  - Le devoir doit être implémenté en Python et seulement en utilisant des fonctions ​POSIX (la bibliothèque **[[https://​docs.python.org/​3/​library/​os.html|os]]** de Python). Toute autre implémentation conduira à l'​annulation du devoir.(**0 points**)+  - Le devoir doit être implémenté en Python et seulement en utilisant des fonctions ​MicroPython. Toute autre implémentation conduira à l'​annulation du devoir.(**0 points**)
  
 <note warning> <note warning>
-Utilisez uniquement ​la bibliothèque Python ​** [[https://docs.python.org/3/library/​os.html|os]] **, pas la bibliothèque Python posix.+Utilisez uniquement ​les bibliothèques MicroPython ​** [[https://microbit-micropython.readthedocs.io/en/v1.0.1/​os.html|os]] ** et [[https://​microbit-micropython.readthedocs.io/​en/​v1.0.1/​microbit_micropython_api.html|microbit]]
 </​note>​ </​note>​
  
Line 69: Line 69:
 Les commandes supportées par l'​application mini-busybox sont: Les commandes supportées par l'​application mini-busybox sont:
  
-==== Comenzi suportate ​====+==== Commandes supportées ​====
  
 Ensuite, on va definir les commandes prises en charge par l'​utilitaire,​ ainsi que le comportement caractéristique et les paramètres qu'​elles prennent en charge. Pour  autre commande ou format, le script affichera le message **Invalid command**. Ensuite, on va definir les commandes prises en charge par l'​utilitaire,​ ainsi que le comportement caractéristique et les paramètres qu'​elles prennent en charge. Pour  autre commande ou format, le script affichera le message **Invalid command**.
  
 +Si la commande reçue par l'​utilitaire a été exécutée avec succès, il affichera les informations mentionnées dans la description,​ si c'est le cas. Sinon, un message d'​erreur spécifique sera affiché, mentionné dans la description de la commande. Sauf indication contraire, le message affiché à l'​écran sera suivi de NEWLINE et le prompt sera affichée sur la ligne suivante.
  
 +<​note>​
 +Les paramètres [paramètre] sont optionnels, et ce qui a la forme <​parametre>​ sont obligatoires
 +</​note>​
 +
 +Les ommandes supportées sont:
 +  * **led [paramètre] x y** - on contrôle la LED du micro:bit mis sur la ligne ''​x''​ et colonne ''​y''​. En fonction de paramètres reçus, la commande va réaliser les suivantes actions: ​  
 +    * **on** - allume la LED
 +    * **of** - éteindre la LED
 +    * **blink <​interval>​ <​count>​ ** - fait la LED clignoter dans l'​intervalle ''​interval''​ millisecondes de ''​count''​ fois. La valeur pour ''​count''​ va avoir une valeur entre l'​intervalle 0-20.
 +    * ** toggle ** - changer la LED à l'​état opposé(si la LED est allumée, l'​éteint et s'il est éteint, l'​allume)
 +    * ** brightness [set <​val>​] ** - utilisée sans le paramètre ''​set'',​ il va afficher la luminosité de la LED spécifiée
 +      * **set <val> ** - s’il va être utilise le paramétré set, il va mettre la luminosité a la valeur ''​val'',​ ou ''​val''​ est un numéro entier 0-9, et la valeur afficher dans la console est la nouvelle luminosité
 +
 +La commande va afficher les suivantes erreurs pour les suivantes cas:  ​
 +  * **Invalid LED.** -si les valeurs de x et / ou y ne sont pas entre 0 et 4
 +  * ** Invalid count value.** - si la valeur du ''​count''​ n'est pas comprise entre 0 et 20.
 +  * ** Invalid brightness.** - si la valeur pour ''​val''​ est en dehors de l'​intervalle 0-9.
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: led on 2 3
 +cmd: led off 2 3
 +cmd: led blink 500 30 2 3
 +Invalid count value.
 +cmd: led toggle 2 3
 +cmd: led brightness set 4 2 4
 +4
 +cmd: led brightness 2 4
 +4
 +</​code>​
 +
 +  * **button <​button>​** - ''​button''​ peut prendre la valeur ''​A''​ ou ''​B'',​ représentant l'un des deux boutons du dispositif. La commande affiche le texte True si le bouton spécifié est pressé et le texte False si le bouton n'est pas pressé.
 +
 +La commande affichera les erreurs suivantes dans les cas suivants:
 +  * **Invalid button.** - si le ''​button''​ est different de '​a'​ ou '​b'​
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: button a
 +True
 +cmd: button b
 +False 
 +</​code>​
 +
 +  * **light** - va affiche la valeur du capteur de lumière du dispositif .
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: light
 +100
 +</​code>​
 +
 +  * **temperature <​deg>​** - En function de valeur du ''<​deg>''​ qui peu etre ''​C/​F/​K''​ la température prise par le capteur de température en degrés Celsius, Fahrenheit ou Kelvin sera affichée.
 +
 +<​note>​
 +Pour la conversion des degrés Celsius en Fahrenheit, la formule sera utilisée: F = C * 1.8 + 32.
 +</​note>​
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: temperature c
 +20
 +cmd: temperature f
 +68
 +</​code>​
 +
 +  * ** echo [paramètre] argumente [>/» fisier]** - Affiche les arguments dans la console suivis de la nouvelle ligne.
 +    * **-n**
 +    * ** > fichier** - redirige le texte qui sera affiché par la commande echo dans le fichier ''​fichier'',​ et rien ne sera pas affiché sur l'​écran. Si le fichier n'​existe pas, il sera créé. Si le fichier existe, son contenu sera overwritten.
 +    * ** >> fichier** - redirige le texte qui sera affiché par la commande echo dans le fichier, et rien ne sera pas affiché sur l'​écran. Si le fichier n'​existe pas, la commande échouera et affichera le message d'​erreur:​ ''​Cannot append redirectn.''​ Si le fichier existe, son contenu sera ajouté à ce qui existe déjà dans le fichier.
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: echo a b c
 +a b c
 +cmd: echo -n a b c
 +a b ccmd: echo my awesome text > my_awesome_file  ​
 +</​code>​
 +
 +  * **cat fichier** - fait la concatenation du fichier, et l'​affiche à la sortie standard. En cas d'​erreur,​ le texte sera affiché: ''​Cannot print file.''​
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: cat file1
 +Text in file1                       
 +cmd: cat file2
 +Text in file 2
 +cmd: cat file1 file2
 +Text in file1
 +Text in file 2 
 +cmd: cat f
 +Cannot print file.
 +</​code>​
 +
 +  * **mv source destination** - renommez le fichier source en destination. En cas d'​erreur,​ il affichera le message: ''​Cannot move file.''​
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: mv my_file my_file2
 +cmd: mv f f2
 +Cannot move file.
 +</​code>​
 +
 +  * **rm [option] fichier** - supprimez les fichiers transmis comme paramètre. Sans options, il supprime seulement les fichiers vides. Si une tentative est faite pour supprimer un fichier qui n'est pas vide, le message d'​erreur s'​affiche:​ ''​Cannot remove file. File not empty.'' ​  
 +     * **--r, --R, --recursive** effacer les fichieres meme si ils sont vides ou pas.
 +
 +En cas d'une autre erreur de suppression sauf Fichier non vide, le message sera affiché: ''​Cannot remove file.''​
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: rm my_file1 my_file2
 +cmd: rm my_file
 +Cannot remove file. File not empty.
 +cmd: rm -R my_file
 +</​code>​
 +
 +  * **ls [opțiuni] ** - va afficher le contenu du répertoire. Sans l'​option **-a / –all**, les fichiers cachés(dont les noms commencent par.) ne sont pas affiche. Ne sont pas affichés. S'il reçoit un nom de fichier comme paramètre, il affichera le paramètre lui-même. Chaque fichier sera affiché sur une nouvelle ligne. ​
 +     * **-a, --all** - affiche t les fichiers / répertoires cachés (dont les noms commencent par.)
 +     * **-l, --long** affiche les informations en ce qui concerne la taille du fichier sous la forme: ''​taille nom''​
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: ls
 +File1
 +file2
 +cmd: ls -a
 +File1
 +File2
 +.hidden
 +cmd: ls -l -a
 +128 f1
 +0 f2
 +20 .f3
 +</​code>​
 +
 +  * **cp source destination** - copier un fichier avec le nom de la destination. En cas d'​erreur,​ le message affiché sera: ''​Cannot copy file''​
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: cp my_file my_file2
 +</​code>​
 +       * **set <var> <​cmd>​** -  Sauvegarder le résultat obtenu après l'​exécution de la commande ''​cmd''​ dans la variable ''​var''​. La valeur de la variable sera prise en utilisant la construction ''​$var'',​ où var est le nom de la variable.
 +
 +== Exemple ==
 +
 +<code bash>
 +cmd: set led_x 2
 +cmd: set led_y 3
 +cmd: led on $led_x $led_y
 +</​code>​
 +
 +<note warning>
 +Si une commande n'est pas utilisée conformément à la documentation et que le cas n'est pas traité par les erreurs décrites ci-dessus, le message affiché sera ''​Invalid command''​.
 +
 +** Exemple **
 +
 +<code bash>
 +cmd: led 2 3
 +Invalid command.
 +cmd: bright
 +Invalid command.
 +</​code>​
 +
 +</​note>​
 +
 +
 +===== Règles d'​implentation =====
 +
 +  * Pour implemneter le devoir on va utiliser MicroPython pour Micro:bit
 +  * Le fichier généré va avoir le nom **main.py**,​ c'est le fichier que le système de test prendra en compte.
 +  * Pour implémenter les commandes prises en charge, toutes les opérations seront effectuées en utilisant uniquement les fonctions POSIX dans la bibliothèque **os** spécifique à MicroPython (https://​microbit-micropython.readthedocs.io/​en/​v1.0.1/​os.html) et la biliotheuque ​ [[https://​microbit-micropython.readthedocs.io/​en/​v1.0.1/​microbit_micropython_api.html|microbit]].
 +  * Le programme implémenté doit avoir un comportement générique. Si nous remarquons que le sujet est résolu que pour passer certains tests spécifiques,​ les points correspondant à ces tests seront annulés du score total.
 +
 +
 +<note warning>
 +N'​utilisez que des bibliothèques [[https://​microbit-micropython.readthedocs.io/​en/​v1.0.1/​os.html|MicroPython os]] et [[https://​microbit-micropython.readthedocs.io/​en/​v1.0.1/​microbit_micropython_api.html|microbit]].
 +</​note>​
 +
 +===== Envoier et tester le devoir =====
 +
 +Le devoir sera téléchargé sur Github. Connectez-vous au site et accédez au lien correspondent au devoir.
 +
 +<note info>
 +Le devoir sera automatiquement testé sur Github pour 40 / 100p. Le reste des tests seront exécuté manuellement,​ à condition que le devoir obtienne au moins 20p des 40p obtenus par des tests automatiques.
 +
 +Les tests manuels seront effectués en exécutant les commandes suivantes: ​
 +<code bash>
 +$ git clone <​your_repository>​
 +$ python3 main.py < input_test.in
 +</​code>​
 +Les fichiers d'​entrée pour les tests manuels sont disponibles sur [[https://​ocw.cs.pub.ro/​courses/​sde2/​teme/​tema_ro_2_microbit_busybox?&#​trimiterea_si_verificarea_temei|github]].
 +
 +Chaque fichier contient le score du test sur la première ligne.
 +</​note>​
sde2/teme/tema_fr_2_microbit_busybox.1616604173.txt.gz · Last modified: 2021/03/24 18:42 by alexandra.state2607
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0