• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 0 Hlas(ů) - 0 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Speed Meter
#1
    Zobrazení on-line měření rychlosti komunikace v Kodi dělám většinou přes funkce systému. Napadlo mě, že by možná bylo zajímavé, mít takovou funkci přímo v Kodi. Zkombinoval jsem to s tím, že bych se rád naučil něco více o programování addons (plugin i scriptů) a tak na jeden zátah a přes víkend vznikla první a zatím neveřejná verze addon Kodi Speed Meter, který online vyhodnocuje a zobrazuje rychlost komunikace na vybraném rozhraní. První pokus dopadl vcelku dobře, ale chci-li z toho udělat opravdu dospělý addon, chce to ještě nějaký čas. Pro mne je to spíše jen prostředek naučit se něco více z řady oborů kolem psaní addon Kodi, ale i přesto by mě zajímal názor komunity. Tedy zda to může mít i jiný smysl.

Něco málo k řešení. Koncipované je to jako kombinace addon typu service + script, které si vyměňují data přes UDP socket komunikaci. Fungovat by to mělo ve Windows, kde se v části service využívá systémový příkaz netstat, nebo Linux (včetně *ELEC), kde je to příkaz ifconfig. Script má na starosti gui funkce, součástí řešení je také část řešící příslušnou definici default skinu a skinu pro Estuary, případně Estuary Easy.

Z funkcí, které už mi teď jedou (víceméně) bez problémů, jsou to:
  • průběžné zobrazení posledních 37 měření ve formě sloupcového grafu,
  • zatím je to fix v kroku po 5 sekundách, plánuji to definovat jako parametr, klidně od 1 až 2 s, ale s rizikem neúměrné zátěže CPU, až např. do 30 s (více asi nemá smysl). Zátěž CPU není úplně malá ani při těch 5 s, je ale fakt, že to nijak neřeším, protože mám vesměs výkonné  stroje. Ale prostor pro nějaké optimalizace tam patrně ještě bude,
  • průběžné vyhodnocování a zobrazení minima a maxima (vždy z posledních 37 hodnot) a výpočet průměrné hodnoty rychlosti,
  • zobrazení výše uvedených tří veličin ve formě dynamických ukazateků v zpobrazení (tři svislé barevné čáry odpovídající barvě příslušné veličiny),
  • změna měřítka na základě vyhodnocení průměrné hodnoty rychlosti (tak, aby se v grafu úplně zobrazilo co možná nejvíce hodnot).
Je to stále ještě hodně syrové, nyní už pouze ve verzi Matrix a řada věcí je fixně definována v kódu, takže je ještě nějaká práce na části nastavení, překladu, celá skupina funkcí on-line ovládání a nakonec i vizuální stránka (volba míry průhlednosti, případně přidání dalších informací, atp.).

Jak jsem napsal, bez problémů to pojede pod zmíněnými operačními systémy, zato ale vůbec netuším, jak na to v Android (o iOS vůbec neuvažuji). Kdyby někdo věděl, jak se dostat k informaci o přenesených bytech na definovaném síťovém rozhraní v Androidu (tady jsem úplná lama), budu vděčný.
   
Trochu jsem se potrápil s režimem nastavení. Kromě klasického nastavení addon, kterými se mění základní parametry jeho nastavení a funkcí, a to jak části service, tak script, předpokládám možnost změny vybraných parametrů nastavení a funkcí přímo z prostředí spuštěného scriptu:
  • mini mod zobrazení
  • výběr zobrazení down/up-loadu
  • změna "míry průhlednosti"
  • vymazání bufferu
  • spuštění klasického nastavení addon
  • ukončení zobrazení
   
Kromě toho jsem do addon vložil funkci on-line zobrazení rychlosti down/up-loadu. Původně jsme měl tuto funkcí v jiném addon, Monitor, který mi monitoruje stav Kodi a systému na kterém běží a nyní nově i stav dalších systémů na domácí síti (TVSERVER a NAS) a také stav vybraných zdrojů (dostupnost, funkčnost web serverů, apod.) na internetu. Nyní je tedy zdrojem tohoto zobrazení (viz výřez ze screenshot-u) service část addon Speed Meter.
   

Přidána volba možnosti zobrazení malého okna, které je možné posouvat po obrazovce do předem nastavených pozic, v matici 3x3 rozložené rovnoměrně po celé ploše obrazovky. Volba pozic se provádí dvěma způsoby, opakovaným stiskem klávesy OK cyklí zobrazení přes všechny pozice, případně lze použítí tlačítka 1-9 na DO pro přímou volbu odpovídající pozice zobrazení (1 = vlevo nahoře, ..., 9 = vpravo dole).
Posledně jmenované možnost volby zobrazení ale závisí na typu DO a nastavení mapování jeho tlačítek, což je jedna z věcí, kvůli které jsme začal nějaký takový addon psát. Abych si odzkoušel, jak se Kodi v takovýchto případech chová a co a jak je třeba všechno řešit. Je to pro mne vlatně taková laboratoř. A poznatky, které jsem při tom získal, jsou určitě hodně zajímavé a využiji je i jinde.
   
Protože je výška malého okna > 1/3 výšky obrazovky, tak se jednotlivé pozice ve vertikálním směru samozřejmě překrývají.
                   
 
Citovat
#2
@JiRo: Hezká práce. Thumbup
Předpokládám (doufám), že budeš ochotný se se svým počinem podělit i s ostatními. Jsem programováním políbený mnohem méně než ty. Zkoušel jsem něco podobného, ale jednoduššího vytvořit také, ale bez úspěchu. Resp. bez trpělivosti, protože vše dělám jen systémem pokus/omyl. Pokud se jedná o změny/úpravy ve skinu, s tím nemám problém, ale skripty/service je už na mně moc.
X96max plus 4/32 + CE 19.5RC2 + skin - upravený Confluence / TV Samsung QE55Q6FNA
AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.2 Matrix
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#3
@jkmh Samozřejmě, že to zveřejním, jinak bych tady o tom nepsal. Jen na to mám málo času, takže tomu věnuji maximálně pár desítek minut týdně. Přes Velikonoce ale snad času najdu více...
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)