TIS2024-FMFI / smelyzajko-gui

GUI for visualization of various types of data from robot control software
The Unlicense
4 stars 0 forks source link

Tvorba Katalógu požiadaviek #1

Closed Krajcovic70 closed 3 weeks ago

Krajcovic70 commented 1 month ago
tibor-cernak commented 1 month ago

Poslal som upravený draft KP na skontrolovanie. Čakáme na odpoveď.

pavelpetrovic commented 1 month ago

posledne pripomienky od zadavatela:

pavelpetrovic commented 1 month ago
tibor-cernak commented 1 month ago

V komentári sa spomína "inicializácii modulu v režime", ale úplne nerozumieme prečo by sa mal modul inicializovať v rôznych režimoch? Nestačila by jedna inicializácia, kde modul poskytne svoje funkcie, prvky alebo prípadne premenné s možnými hodnotami? Nie je to zbytočná komplexita.

V prevádzkovom režime by sa mali zaznamenávať všetky prvky, ktoré sa nachádzajú aspoň v jednej "aktívnej" šablóne, aby používateľ počas prehrávania vedel ľubovoľne šablóny prepínať

Máme to teda chápať, že v prevádzkovom režime sa majú zaznamenávať všetky možné prvky, ktoré su v šablóne? Nechceli sme to spraviť tak, že v konfiguračnom móde systému si použivateľ zvolí, ktoré prvky sa budú logovať?

3.19: "Ak áno, systém pošle cestu k adresáru, kde sa majú potrebné údaje ukladať a taktiež maximálnu frekvenciu ukladania." - tieto dve položky (ktorý záznam a frekvencia) by si GUI manažér mal vypýtať od používateľa pri spustení.

Je už v poriadku táto požiadavka?

alebo po rozbití

Taktiež sme sa bavili, že či je treba mať konfiguračný súbor pre GUI manažer. V požiadavkách sa spomína v bode:

Ale keďže sme sa bavili, že moduly budu manuálne prilinkované a program sa bude zakaždým prekompilovávať, treba mať tento konfiguračný súbor? Ďalej je spomenutý v bode:

Tu tiež si úplne nevieme predstaviť, ako v tom konfiguračnom súbore sa bude spomínať nejaký modul a ešte k tomu prvok tohto modulu. Čo ak ten modul nebude prilikovaný? Pri zmene bude treba robiť zmeny na rôznych miestach. Nestačilo by v konfiguračnom móde systému žaškrtnúť checkbox ktorý bude znamenať, že sa výstup prvku má logovať?

Tým pádom potreba mať konfiguračný súbor padá. Aký je Váš názor na to?

Ostatné poznámky sme zapracovali do KP, ktorý zašleme po vyriešení vyššie spomenutých bodov.

pavelpetrovic commented 1 month ago

V komentári sa spomína "inicializácii modulu v režime", ale úplne nerozumieme prečo by sa mal modul inicializovať v rôznych režimoch? Nestačila by jedna inicializácia, kde modul poskytne svoje funkcie, prvky alebo prípadne premenné s možnými hodnotami? Nie je to zbytočná komplexita.

Tým, že mu tam pošleme v akom režime sa má inicializovať, komplexitu nejak zásadne nezvyšujeme, lebo tie režimy tam už aj tak sú. Keď sa modul ale dozvie v akom režime to celé beží, tak bude vedieť, či sa má pripájať na zvyšok systému (prevádzkový mód), alebo pre replay mód bude načítavať a zobrazovať záznamy z logu, alebo iba konfiguračný modul, keď nemusí robiť nič. Nejakym sposobom modulu musite oznamit, v akom rezime to bezi, tak preco nie hned cez init?

V prevádzkovom režime by sa mali zaznamenávať všetky prvky, ktoré sa nachádzajú aspoň v jednej "aktívnej" šablóne, aby používateľ počas prehrávania vedel ľubovoľne šablóny prepínať

Máme to teda chápať, že v prevádzkovom režime sa majú zaznamenávať všetky možné prvky, ktoré su v šablóne? Nechceli sme to spraviť tak, že v konfiguračnom móde systému si použivateľ zvolí, ktoré prvky sa budú logovať?

Máte pravdu, že je to v konfigu zaznačené, ktoré sa majú zaznamenávať. Týmto som skôr chcel povedať, že tie, ktoré nie sú v ani jednej šablóne zobrazené sa zrejme zaznamenávať nemusia, lebo sa nikdy nezobrazia, ale keď tak nad tým rozmýšľam, zrejme by sa dal ten záznam pustiť aj s inou mnozinou sablon, cize s inym konfigom, aj ked neviem, ake ine nasledky by to malo a ci to chceme vobec dovolit... mal som pocit, ze sa bude dat urobit replay iba s rovnakym konfigom ako bol urobeny zaznam, alebo teda aspon s takym, ktory je dostatocne kompatibilny - no a tym padom mate asi pravdu, ze ak je v konfigu zapisane, ze sa ma logovat, tak nech sa loguje nezavisle od toho, ci je v nejakej sablone zobrazeny alebo nie. To mi ale pripomenulo jednu informáciu - že zaznamenané obrázky sa môžu zobrazovať aj v inej veľkosti ako boli zobrazené počas prevadzky, čiže prehrávanie podľa záznamu by malo vedieť preškálovať obrázky do inej veľkosti (môžete to niekde pripomenúť - v predpokladoch v 2.casti, alebo kde chcete).

Tiež prosím jemne upravte ešte druhú časť dokumentu na základe vecí, ktoré pribudli neskôr a nie sú tam ani trochu spomenuté. (mám na mysli hlavne ten záznam, ale celkovo to pozrite). Naopak, v druhej časti sa píše o tom klikaní a ťahaní mysou v grafickom prvku a nie som si istý, či to niekde v tretej časti máme, tam by to urcite malo byt.

3.19: "Ak áno, systém pošle cestu k adresáru, kde sa majú potrebné údaje ukladať a taktiež maximálnu frekvenciu ukladania." - tieto dve položky (ktorý záznam a frekvencia) by si GUI manažér mal vypýtať od používateľa pri spustení.

Je už v poriadku táto požiadavka?

* Pri inicializácii GUI prvku vie používaťeľ cez textový konfiguračný súbor alebo v konfiguračnom móde systému oznámiť, či sa výstup prvku bude logovať pre prípadné prehranie.  Vtedy si GUI manažér pri spustení vypýta od používateľa adresár pre záznam a frekvenciu.

alebo po rozbití

* Pri inicializácii GUI prvku vie používaťeľ cez textový konfiguračný súbor alebo v konfiguračnom móde systému oznámiť, či sa výstup prvku bude logovať pre prípadné prehranie.

* Pri logovaní výstupu prvkov pre prípadné prehranie si GUI manažer pri spustení vypýta od používateľa adresár pre záznam a frekvenciu

to 3.19 a 3.20 je trochu matuce, lebo to vyzera skoro rovnako, ale jedno hovori, ze ci sa ma logovat a druhe, ci sa ma prehravat. Myslim, ze sme dospeli k zaveru, ze bud sa prehrava alebo je prevadzka, ze kombinovany rezim nepodporujeme (lebo by aj tak neboli tie ulozene casovo synchronizovane s tymi, co sa deju nazivo), takze toto nastavenie asi moze byt to iste - v konfigu, kde je zoznam modulov, bude ku kazdemu zaznacene, ci sa zaznamenava alebo nie a znamena to, ze v prevadzkovom rezime sa teda zaznamenava a v replay rezime sa teda prehrava zo zaznamu. Cize ak aspon jeden modul ma zapnuty zaznam, tak pri prevadzkovom rezime potrebujeme ziskat adresar, do ktoreho budu vsetky logovane moduly zapisovat zaznamy, ale pre kazdy modul potrebujeme aj frekvenciu (ak frekvencia nema byt spolocna, co by asi nemusela byt). Jedno nastavenie frekvencie (napr * alebo 0) by malo ale znamenat, ze sa uklada kazdy novy udaj. Bolo by neprijemne, ak by sa pri spusteni museli rucne nahadzovat frekvencie zaznamu pre kazdy jeden prvok, co je spusteny, takze tie frekvencie nech su radsej iba v konfiguracnom subore. A najlepsie bude, ked aj ta cesta, do ktoreho priecinka sa robia zaznamy, bude v tom konfiguracnom subore, nech to furt pri spustani netreba rucne vyberat. V tom subore priecinku so zaznamami nech sa vytvori vzdy podpriecinok podla aktualneho datumu casu. Tazke dajme prec, ze nieco musi pouzivatel pri spusteni este vyberat, staci toto mat v konfigu - pre prevadzkovy rezim. Avsak pre replay rezim treba mat nejaky sposob ako urcime, co sa replayne. A to by teda mohlo byt tak, ze bud to povie cez command line, alebo to vyberie v nejakom listboxe po spusteni, ale to by som nechal ako volitelnu poziadavku, ak to pojde cez command line vybrat, to je zaklad, ak to pojde vybrat aj v okienku po spusteni, ak clovek nedal nic do command line, tak nam to samozrejme sprijemni zivot, lebo kopirovanie mena adresara do command line pri spustani je otrava, ale da sa s tym zit.

Taktiež sme sa bavili, že či je treba mať konfiguračný súbor pre GUI manažer. V požiadavkách sa spomína v bode:

* 3.4. GUI manažér načíta zoznam modulov z konfiguračného súboru

Ale keďže sme sa bavili, že moduly budu manuálne prilinkované a program sa bude zakaždým prekompilovávať, treba mať tento konfiguračný súbor? Ďalej je spomenutý v bode:

* 3.19. Pri inicializácii GUI prvku vie používateľ cez textový konfiguračný súbor alebo v konfiguračnom móde systému oznámiť

Tu tiež si úplne nevieme predstaviť, ako v tom konfiguračnom súbore sa bude spomínať nejaký modul a ešte k tomu prvok tohto modulu. Čo ak ten modul nebude prilikovaný? Pri zmene bude treba robiť zmeny na rôznych miestach. Nestačilo by v konfiguračnom móde systému žaškrtnúť checkbox ktorý bude znamenať, že sa výstup prvku má logovať?

Tým pádom potreba mať konfiguračný súbor padá. Aký je Váš názor na to?

konfiguracny mod sa pusti raz, ked je to nakonfigurovane, ulozi sa to (do mnoziny templejtov a este do nejakeho configu, ktory hovori, ktore templejty platia pre dany config). a potom na druhy den sa to spusti, ked uz je iba prevadzka a nic netreba znovu prekonfigurovat.

cize do suborov treba ukladat jednak templejty, jednak niekde povedat, ktore templejty z tych vsetkych, co su tam ulozene maju byt v danom behu k dispozicii a tiez to, ci sa moduly loguju a s akou frekvenciou, do akeho priecinka sa vytvara datumovy-casovy podpriecinok so vsetkymi logmi z daneho behu. no a mal by tam byt aj zoznam modulov, lebo nie vsetky moduly, ktore maju bezat musi byt nutne vidno.

V zdrojakoch je jedna funkcia, kde je zoznam init-ov na moduly, ktore su prilinkovane, ano, takze to, ktore moduly sa spustia je urcene touto funkciou. Bolo by mozne mat zoznam modulov, ktore sa maju inicializovat este aj v konfigu, potom by implementacia mohla vyzerat nejak takto:

if (configured("lidar")) init_lidar(....); if (configured("camera")) init_camera(...); ...

kazdy modul je identifikovany svojim menom...

cize dolezita informacia - konfigov moze byt viacero - podla toho co ideme ladit, tak si vyrobime sadu sablon pre ten use-case a k tomu prislusny konfig. preto konfig je parameter command line, ak sa nezada, nech sa vyberie prvy, co sa najde v prislusnom adresari.

Ostatné poznámky sme zapracovali do KP, ktorý zašleme po vyriešení vyššie spomenutých bodov.

supra

tibor-cernak commented 1 month ago

@pavelpetrovic Na mail sme poslali finálnu verziu KP na formálne odsúhlasenie.