This shows you the differences between two versions of the page.
|
si:teme2022:tema2 [2022/12/11 18:08] 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)! | * **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)! | ||