This shows you the differences between two versions of the page.
sde2:teme:tema_ro_2_microbit_busybox [2021/03/23 19:40] ioana_maria.culic [Comenzi suportate] |
sde2:teme:tema_ro_2_microbit_busybox [2021/04/06 12:25] (current) ioana_maria.culic [Comenzi suportate] |
||
---|---|---|---|
Line 6: | Line 6: | ||
Deadline: **7 Aprilie, ora 23:55**\\ | Deadline: **7 Aprilie, ora 23:55**\\ | ||
Punctaj: **1 punct** din notă\\ | Punctaj: **1 punct** din notă\\ | ||
- | Încărcarea temei: TODO\\ | + | Încărcarea temei: [[https://classroom.github.com/a/1owyePFX|Devoir 2]] |
- | Încărcarea cu întârziere: **1 punct / zi** (maxim 4 zile)\\ | + | |
</note> | </note> | ||
Line 20: | Line 19: | ||
- Tema trebuie să conțină un fișier Readme în care să explicați cum ații făcut tema **(-0.1p)**. | - Tema trebuie să conțină un fișier Readme în care să explicați cum ații făcut tema **(-0.1p)**. | ||
- | - Tema trebuie implementată folosind limbajul Python și doar folosind funcții POSIX (biblioteca Python **[[https://docs.python.org/3/library/os.html|os]]**). Orice alte implementări vor duce la anularea temei **(0 puncte)**. | + | - Tema trebuie implementată folosind limbajul MicroPython. Orice alte implementări vor duce la anularea temei **(0 puncte)**. |
<note warning> | <note warning> | ||
- | Folosiți doar biblioteca Python **[[https://docs.python.org/3/library/os.html|os]]**, nu biblioteca Python posix. | + | Folosiți doar bibliotecile MicroPython **[[https://microbit-micropython.readthedocs.io/en/v1.0.1/os.html|os]]** și [[https://microbit-micropython.readthedocs.io/en/v1.0.1/microbit_micropython_api.html|microbit]]. |
</note> | </note> | ||
Line 76: | Line 75: | ||
* **blink <interval> <count>** - face LED-ul să clipească la intervalul ''interval'' milisecunde de ''count'' ori. Valoarea pentru ''count'' va fi în intervalul 0-20. | * **blink <interval> <count>** - face LED-ul să clipească la intervalul ''interval'' milisecunde de ''count'' ori. Valoarea pentru ''count'' va fi în intervalul 0-20. | ||
* **toggle** - aduce LED-ul în starea opusă (dacă LED-ul este pornit, îl oprește, iar dacă este oprit, îl pornește) | * **toggle** - aduce LED-ul în starea opusă (dacă LED-ul este pornit, îl oprește, iar dacă este oprit, îl pornește) | ||
+ | * **brightness [set <val>]** - folosit fără parametrul ''set'', afișează luminozitatea LED-ului specificat | ||
+ | * **set <val>** - dacă se folosește parametru set se va seta luminozitatea la valoarea ''val'', undeva ''val'' este un număr întreg 0-9, iar valoarea afișată în consolă este noua luminozitate | ||
Comanda va afișa următoarele erori pentru următoarele cazuri: | Comanda va afișa următoarele erori pentru următoarele cazuri: | ||
* **Invalid LED.** - dacă valorile pentru x și/sau y nu sunt în intervalul 0-4 | * **Invalid LED.** - dacă valorile pentru x și/sau y nu sunt în intervalul 0-4 | ||
* **Invalid count value.** - dacă valoarea pentru ''count'' nu este în intervalul 0-20. | * **Invalid count value.** - dacă valoarea pentru ''count'' nu este în intervalul 0-20. | ||
+ | * **Invalid brightness.** - dacă valoarea pentru ''val'' este în afara intervalului 0-9. | ||
**Exemplu:** | **Exemplu:** | ||
Line 87: | Line 89: | ||
cmd: led blink 500 30 2 3 | cmd: led blink 500 30 2 3 | ||
Invalid count value. | Invalid count value. | ||
- | cmd: led toggle 2 3 | + | cmd: led toggle 2 3 |
- | </code> | + | cmd: led brightness set 4 2 4 |
- | + | 4 | |
- | * **brightness [parametru]** - folosit fără parametrii, afișează luminozitatea LED-urilor: | + | cmd: led brightness 2 4 |
- | * **set <val>** - dacă se folosește parametru set se va seta luminozitatea la valoarea ''val'', undeva ''val'' este un număr întreg 0-9, iar valoarea afișată în consolă este noua luminozitate | + | |
- | + | ||
- | Comanda va afișa următoarele erori pentru următoarele cazuri: | + | |
- | * **Invalid brightness.** - dacă valorile pentru ''val'' este în afara intervalului 0-9. | + | |
- | + | ||
- | **Exemplu:** | + | |
- | <code bash> | + | |
- | cmd: brightness | + | |
4 | 4 | ||
- | cmd: brightness set 6 | ||
- | 6 | ||
</code> | </code> | ||
Line 184: | Line 176: | ||
</code> | </code> | ||
- | * **ls [opțiuni]** - Listează conținutul directorului. Fără opțiunea **-a/--all**, nu se afișează fișierele/ascunse (al căror nume începe cu .). Dacă primește ca parametru numele unui fișier, va afișa însuși parametrul. Fiecare fișier se va afișa pe o linie nouă. In caz de eroare intoarce valoarea -80(in terminal se va afisa valoarea 176). | + | * **ls [opțiuni]** - Listează conținutul directorului. Fără opțiunea **-a/--all**, nu se afișează fișierele/ascunse (al căror nume începe cu .). Dacă primește ca parametru numele unui fișier, va afișa însuși parametrul. Fiecare fișier se va afișa pe o linie nouă. |
* **-a, %%--%%all** afișează și fișierele/directoarele ascunse (al căror nume incepe cu .) | * **-a, %%--%%all** afișează și fișierele/directoarele ascunse (al căror nume incepe cu .) | ||
* **-l, %%--%%long** afișează informații privind dimensiunea fișierului sub forma: ''dimensiune nume''. | * **-l, %%--%%long** afișează informații privind dimensiunea fișierului sub forma: ''dimensiune nume''. | ||
Line 233: | Line 225: | ||
===== Reguli de implementare ===== | ===== Reguli de implementare ===== | ||
- | + | * În implementarea temei se va folosi mediul de programare MicroPython pentru Micro:bit. | |
- | TODO | + | * Fișierul generat va avea numele **main.py**, acesta este fișierul pe care sistemul de testare îl va lua în considerare. |
- | + | * Pentru implementarea comenzilor suportate, toate operațiile vor fi efectuate folosind doar funcții POSIX din biblioteca **os** specifică MicroPython (https://microbit-micropython.readthedocs.io/en/v1.0.1/os.html)și bilioteca [[https://microbit-micropython.readthedocs.io/en/v1.0.1/microbit_micropython_api.html|microbit]]. | |
- | * În implementarea temei se va folosi mediul de programare Python3. | + | |
- | * Fișierul principal trebuie să aibă numele **busybox.py**, acesta este fișierul pe care sistemul de testare îl va lua în considerare. | + | |
- | * Pentru implementarea comenzilor suportate, toate operațiile vor fi efectuate folosind doar funcții POSIX din biblioteca **os** specifică Python (https://docs.python.org/3/library/os.html). | + | |
* Programul realizat trebuie să aibă un comportament generic. Dacă observăm că tema este rezolvată doar pentru a trece anumite teste specifice, punctele corespondente acelor teste vor fi anulate din punctajul total. | * Programul realizat trebuie să aibă un comportament generic. Dacă observăm că tema este rezolvată doar pentru a trece anumite teste specifice, punctele corespondente acelor teste vor fi anulate din punctajul total. | ||
<note warning> | <note warning> | ||
- | Folosiți doar biblioteca Python **os**, nu biblioteca Python posix. | + | Folosiți doar bibliotecile [[https://microbit-micropython.readthedocs.io/en/v1.0.1/os.html|MicroPython os]] și [[https://microbit-micropython.readthedocs.io/en/v1.0.1/microbit_micropython_api.html|microbit]]. |
</note> | </note> | ||
- | ===== Trimiterea temei ===== | + | ===== Trimiterea și verificarea temei ===== |
- | Tema se va încărca pe vmchecker. Logați-vă pe site cu folosind utilizatorul de pe moodle, selectați cursul Systemes d'Explotation (FILS) și încărcați arhiva temei. | + | Tema se va încărca pe Github. Logați-vă pe site și accesați link-ul aferent temei. |
- | ==== Readme ==== | + | <note info> |
+ | Tema va fi testată automat pe Github pentru 40/100p. Restul testelor vor fi rulate manual, cu condiția ca tema să obțină cel puțin 20p din cele 40p obținute prin testare automată. | ||
- | Fișierul readme are următorul format: | + | Testele manuale vor fi efectuare prin rularea următoarelor comenzi: |
- | + | ||
- | Numele vostru întreg | + | |
- | + | ||
- | Grupa | + | |
- | + | ||
- | Descrierea rezolvării temei, de ce ați ales anumite soluții, etc. | + | |
- | + | ||
- | ==== Arhiva temei ==== | + | |
- | + | ||
- | Pentru a încărca tema, urmăriți pașii: | + | |
- | - Creați o arhivă zip (nu rar, ace, 7zip sau alt format) care să conțină: | + | |
- | * Fișierul Python busybox.py | + | |
- | * Alte fișiere python adiacente de care aveti nevoie (daca e cazul) | + | |
- | * fișierul Readme | + | |
- | - Logați-vă pe vmchecker | + | |
- | - Selectați cursul Systemes d'Explotation(FILS) | + | |
- | - Selectați 2. Mini-BusyBox | + | |
- | - Incărcați arhiva | + | |
- | + | ||
- | Arhiva trebuie să conțină toate fișierele (principale) în rădăcina, nu în subdirectoare. NU arhivați directorul temei, arhivați DIRECT fișierele. | + | |
- | După ce încărcați arhiva, vmchecker va rula: | + | |
<code bash> | <code bash> | ||
- | unzip archive.zip homework | + | $ git clone <your_repository> |
- | cd homework | + | $ python3 main.py < input_test.in |
- | python3 busybox.py comanda parametrii | + | |
</code> | </code> | ||
+ | Fișierele de input pentru testele manuale sunt disponibile pe [[https://github.com/UPB-FILS-SdE2/devoir-2-tests/tree/main/manual-tests|github]]. | ||
+ | |||
+ | Fiecare fișier conține pe prima linie punctajul testului. | ||
+ | </note> | ||