This shows you the differences between two versions of the page.
si:teme2022:tema2 [2022/12/11 18:05] florin.stancu |
si:teme2022:tema2 [2023/12/12 12:00] (current) florin.stancu old revision restored (2023/01/13 22:44) |
||
---|---|---|---|
Line 5: | Line 5: | ||
* **Termen de predare**: | * **Termen de predare**: | ||
- | * <color red>**14 Ianuarie 2023 23:55** - deadline HARD</color> | + | * <color red>**15 Ianuarie 2023 23:55** - deadline HARD</color> |
* **Changelog:** | * **Changelog:** | ||
- | * //nothing, yet// | + | * //**14 Ianuarie 2023 22:30**// - mărit deadline-ul până duminica ;) |
+ | * //**13 Ianuarie 2023 11:15**// - corectat numele fișierelor: ''url.txt'' + ''checksum.txt'' (CU extensie). | ||
+ | * //**05 Ianuarie 2023 13:40**// - reparat RESTful endpoints din text să fie ca în scriptul de Python de demo. | ||
<note> | <note> | ||
Line 28: | Line 30: | ||
<ifauth @si> | <ifauth @si> | ||
- | <color red>CINE VEDE ASTA MAI JOS E ASISTENT:</color> | + | <color red>CINE VEDE ASTA E ASISTENT ;) </color> |
</ifauth> | </ifauth> | ||
Line 121: | Line 123: | ||
Astfel, se definesc următoarele endpointuri RESTful HTTP (atenție: API-ul este strict!): | Astfel, se definesc următoarele endpointuri RESTful HTTP (atenție: API-ul este strict!): | ||
* ''GET /api/groups'': va întoarce un obiect JSON cu proprietatea ''NG'' (numărul de grupuri disponibile), e.g.: ''{"NG": 3}''; | * ''GET /api/groups'': va întoarce un obiect JSON cu proprietatea ''NG'' (numărul de grupuri disponibile), e.g.: ''{"NG": 3}''; | ||
- | * ''GET /api/group/<G>/leds'': va întoarce un obiect JSON cu cheila ''NL'': numărul de leduri din grupul curent, și ''LC'': lista actuală de culori ale LED-urilor grupului ''<G>'' (fără caracterele ''<>'', sunt doar pentru a denota o variabilă), e.g., ''{"NL": 8, "LC": [0, 0, 0, 1, 4, 2, 0, 0]}''; | + | * ''GET /api/group/<G>/state'': va întoarce un obiect JSON cu cheila ''NL'': numărul de leduri din grupul curent, și ''LC'': lista actuală de culori ale LED-urilor grupului ''<G>'' (fără caracterele ''<>'', sunt doar pentru a denota o variabilă), e.g., ''{"NL": 8, "LC": [0, 0, 0, 1, 4, 2, 0, 0]}''; |
- | * ''POST /api/group/<G>/static'': va primi un obiect JSON cu o singură cheie: ''SC'' cu valoarea: o listă (JSON Array) de culori pentru fiecare LED din grupul ''<G>'', și va întoarce OK (HTTP 200); desigur, aceste noi setări trebuiesc propagate către aplicația de terminal ce redă ASCII Art-ul; | + | * ''POST /api/group/<G>/static'': va primi un obiect JSON cu o singură cheie: ''LC'' cu valoarea: o listă (JSON Array) de culori pentru fiecare LED din grupul ''<G>'', și va întoarce OK (HTTP 200); desigur, aceste noi setări trebuiesc propagate către aplicația de terminal ce redă ASCII Art-ul; |
* ''POST /api/group/<G>/animate'' [**BONUS**]: va primi un obiect cu o cheie, ''MC'' care conține o matrice de culori pentru fiecare pas al animației, apoi pentru fiecare LED din grupul ''<G>'' și va întoarce OK (HTTP 200); tranzițiile vor fi făcute la fiecare secundă și va fi repetată automat până la revenirea la cazul simplu (cererea de mai sus); exemplu de mutare a culorilor asupra tuturor pozițiilor dintr-un grup: <code> | * ''POST /api/group/<G>/animate'' [**BONUS**]: va primi un obiect cu o cheie, ''MC'' care conține o matrice de culori pentru fiecare pas al animației, apoi pentru fiecare LED din grupul ''<G>'' și va întoarce OK (HTTP 200); tranzițiile vor fi făcute la fiecare secundă și va fi repetată automat până la revenirea la cazul simplu (cererea de mai sus); exemplu de mutare a culorilor asupra tuturor pozițiilor dintr-un grup: <code> | ||
[ | [ | ||
Line 180: | Line 182: | ||
* scripturile proprii de Yocto (layer, rețete, fișier ''yml'' pentru ''kas'') + sursele aplicației (în orice limbaje ați ales); | * scripturile proprii de Yocto (layer, rețete, fișier ''yml'' pentru ''kas'') + sursele aplicației (în orice limbaje ați ales); | ||
* fișier ''README.txt'' cu explicații referitoare la funcționarea soluției, configurații speciale de optimizare folosite etc. | * fișier ''README.txt'' cu explicații referitoare la funcționarea soluției, configurații speciale de optimizare folosite etc. | ||
- | * fișier ''url.txt'' (fără extensie!) cu URL către arhiva **.tar.gz** a binarelor; | + | * fișier ''url.txt'' cu URL către arhiva **.tar.gz** a binarelor; |
- | * fișier ''checksum.txt'' (fără extensie!) care să conțină hash-ul SHA256 al arhivei cu binarele (obținut cu ''sha256sum''); **ATENȚIE**: verificați și re-verificați (de încă 2 ori) conținutul fișierului la încărcare pe Moodle cu hash-ul real deoarece tema nu va fi punctată dacă diferă! | + | * fișier ''checksum.txt'' care să conțină hash-ul SHA256 al arhivei cu binarele (obținut cu ''sha256sum''); **ATENȚIE**: verificați și re-verificați (de încă 2 ori) conținutul fișierului la încărcare pe Moodle cu hash-ul real deoarece tema nu va fi punctată dacă diferă! |
* **NU INCLUDEȚI**: fișiere sursă ale Poky / alte layere Yocto / biblioteci / frameworkuri descărcabile de pe Internet (menționați în Readme ce ați folosit); puteți include bblayers.conf și local.conf dacă le-ați modificat manual (în afara ''kas''). | * **NU INCLUDEȚI**: fișiere sursă ale Poky / alte layere Yocto / biblioteci / frameworkuri descărcabile de pe Internet (menționați în Readme ce ați folosit); puteți include bblayers.conf și local.conf dacă le-ați modificat manual (în afara ''kas''). | ||
+ | * **Hint**: pentru a include un fișier la crearea automată a arhivei prin ''make source_archive'', pur și simplu copiați-l pe rădăcină (sau într-un director care nu este ignorat -- verificați Makefile-ul din schelet)! | ||
* Această arhivă nu ar trebui să depășească ''1MB'' (aveți restricție pe Moodle). | * Această arhivă nu ar trebui să depășească ''1MB'' (aveți restricție pe Moodle). | ||