Synchronizace přes wifi

Create issue
Issue #180 new
vita brno created an issue

Aktuálně vysílací program při zobrazení songu pošle do sítě jeden udp broadcast se songem. Je to spolehlivé tak na 90%. Někdy musím vyjet ze songu a zobrazit jej znovu, aby se všechny přijímače zaktualizovaly. Navrhuji poslat postupně 3 pakety s nějakým malým (100-300ms) odstupem.

Další problém, na který jsem narazil: použiju-li svůj mobil jako hotspot a k němu připojím tablety, tak synchronizace nefunguje. Musím využít jiný mobil jako hotspot a sám se stát klientem dané sítě (stejně jako ostatní tablety), pak to funguje

Jinak tato funkce je naprosto úžasná - do hospody i k táboráku... přísedící si konečně můžou zazpívat i písničky, jejichž texty dokonale neznají! Love it!

Comments (17)

  1. vita brno reporter

    Ještě dodatek: líbilo by se mi, kdyby se synchronizační pakety nevysílaly automaticky při zobrazení songu, ale odeslal bych je ručně z menu. Mohl bych tak nahodit na přijímače nějaký song a na vysílači dále listovat a vybírat další, aniž by se přijímače překreslovaly

  2. Karel Hovorka repo owner

    Díky za report. Užitečná zpěvná vazba.

    Nerad bych přidával přepínátko pro každou věc a snažím se, aby Zpěvník fungoval rovnou intuitivně bez dalšího nastavování.

    Napadlo mě zatím tohle: Přidat do ovládání tlačítky hlasitosti vypínání a zapínání vysílání s tím, že při zapnutí vysílání by se zároveň odeslal datagram aktuálního songu. Takhle by se snadno mohlo zapnout + listovat + posílat příkaz k otevření songu.

  3. Karel Hovorka repo owner

    A s tím hotspotem - zařízení s hotspotem na sobě může mít běžící Zpěvník a přijímat příkazy? Každopádně si nemyslím, že s tím něco budu moct udělat. Já prostě posílám datagram na broadcast adresu a pokud se nepošle ostatním, tak ho musí po cestě někdo (třeba ten "lokální" hotspot) zatrhnout.

  4. vita brno reporter

    Moje testovací prostředí: Mob1 Zpěvník 1.14.6plus, Mob2 Zpěvník 1.14.6plus (pro tyto účely nainstalovaný z apk z Mob1), Tab Zpěvník 1.14.6, notebook s Wiresharkem

    Situace, kdy z Mob1 udělám hotspot: - Mob2 vysílá, Mob1 i Tab přijímají (spolehlivost 90%) - Mob1 "vysílá", ani jedno z dalších zařízení nepřijímá

    Obdobně když z Mob2 udělám hotspot: - Mob1 vysílá, oba obvykle přijímají (někdy se projeví ta chyba, že broadcast nedorazí ke všem, takže se song zobrazí na Mob2 poměrně spolehlivě, ale na někdy Tab nebo Wireshark broadcast nedostanou) - Mob2 "vysílá" = žádný broadcast se neodešle na žádné zařízení

  5. Karel Hovorka repo owner

    Jediné, co mě takhle napadá, je zkusit posílat na broadcast adresu specifickou pro síť místo globální 255.255.255.255. Víc to prozkoumám až tady budu mít víc zařízení.

  6. vita brno reporter

    Ad přepínátko: s těmi tlačítky mi to přijde moc geekovské (podobně jako ovládání arduino klávesnicí). Tedy že několik hluboce znalých uživatelů by to dokonale využilo, ale pro širří veřejnost by to bylo nepochopitelné/nezapamatovatelné. Zatímco položka v menu "Odešli song do sítě" by mohla být jasnější, přestože bych měl minimálně o jeden klik víc

  7. Karel Hovorka repo owner

    Přepínátko: Jasně, ale zase nechci mít v menu 50 položek :) ještě to musím promyslet.

    Hotspot - povedlo se mi to nakonec nasimulovat a bylo to opravdu tou globální broadcast adresou. Nevím přesně proč, ale když je android hotspot, z 255.255.255.255 to broadcast nepustí, ale když nastavim třeba lokální broadcast např. 192.168.1.255 tak to projde. Vydal jsem opravu jako součást 1.15.10

  8. vita brno reporter

    Karel: super, díky! Tyhle verze jsou někde ke stažení, nebo je potřeba počkat na Google Play (ještě pořád mi nic nenabízí) To vícenásobné poslání paketu je taky přidáno?

  9. Karel Hovorka repo owner

    Chci se ještě ujistit, aby se pak song neotevřel 3x, nejspíš si budu pamatovat hash poslední zprávy.

  10. Karel Hovorka repo owner

    Tak jsem to nějak dal dohromady, takhle mi to dává smysl (1.15.15):

    • Zprávy jsou osekané jak to jde - větší šance doručení datagramu.
    • Song se pošle 3x celý, pak 2x jen ID, perioda je 100ms. Zpěvník musí být hacklý, jinak pošle postaru jen jednou celý (kdyby příjimači byli verze 1.14.x, tak by se každej song zobrazil 3 atd.). Nutnost hacku odstraním v 1.16 nebo 1.17, ať je čas na aktualizace.
    • Přijímači si vždy rovnou uloží song lokálně (pokud přijde celý). Pokud přijde jen ID a song existuje lokálně, načte se podle ID. Znamená to, že pokud budou mít před-uložené songy, hodně se zvýší spolehlivost doručení a jakmile se jednou zobrazí, je pro příště uložený.
    • Už se nevytváří nová aktivita pro každý song, ale je otevřená jen jedna.

    Jinak prosím o potvrzení, že funguje broadcast i pokud je to samé zařízení hostpost.

  11. vita brno reporter

    Ano, takhle to zní smysluplně. A podle mého testování zatím i spolehlivě funkční.

    Vysílání z hotspotu už funguje, díky!

    S ukládáním na pijímači jsem trochu v rozpacích... Pokud je přijímačem jen naprosto pasivní člověk/zařízení, pak je to super. Ale já vím, že si nikdy nepřepnu svého mobila do přijímacího režimu, protože by mi vysílací strana přepsala moje úpravy v písních (pozice akordů, transpozice, korekce textů,....)

  12. vita brno reporter
    Napadlo mě zatím tohle: Přidat do ovládání tlačítky hlasitosti vypínání a zapínání vysílání s tím, 
    že při zapnutí vysílání by se zároveň odeslal datagram aktuálního songu. 
    Takhle by se snadno mohlo zapnout + listovat + posílat příkaz k otevření songu.
    

    Uzrálo to prosím nějak? Tuto variantu mi přijde zbytečné programovat, protože by se v praxi zapomínalo na "vypnutí" vysílání po jeho odeslání a při listování dalšími songy by se příjemcům opět songy odesílaly...

    Kdyby na tlačítku hlasitosti šlo nastavit jednorázové odeslání, tak si to umím představit v praxi použitelné

  13. vita brno reporter

    Po delší době a nasbírání zkušeností hlásím, že vysílání přes tlačítko hlasitosti je super a funguje perfektně.

    Pouze na straně přijímače bych rád měl možnost vypnout automatické ukládání - rád si nechám např. poslat song na jednorázové hraní, ale určitě nechci, aby se mi uložil a aby mi tak vznikal bordel v mém zpěvníku (takže svůj primární Zpěvník v praxi raději nikdy přijímat nenechám)

  14. Karel Hovorka repo owner

    To ukládání bych nerad vypínal a nerad přidávám další volby. Napadá mě ještě, že by se přijaté přes Wifi automaticky vkládali do pro to určeného playlistu. Tím pádem jsou aspoň jasně oddělené a i případně snadno smazatelné.

  15. Log in to comment