Komunikace na XPressNet

Vše pro digitální provoz - dotazy, praxe, návody, postupy, normy, kompatibilita atd.

Moderátoři: Michal Dalecký, Jarda H., Rudolf

Komunikace na XPressNet

Příspěvekod belgarat » čtv 14 čer, 2018 6:39 am

Cau,

ve vedlejsim vlakne se nakously rozdil Loco vs XpressNet; tady bych se rad venoval moznostem jak zneuzit XpressNet pro dalsi komunikaci mezi zarizenimi. Prozatim jsem pochopil tolik, ze data se koduji 9 bitove, kde 9 bit je vzdy 0, KROME "call byte" (vyzva a prideleni casoveho slotu s adresou zarizeni) odesilanym z centraly. Zkouseli jste nekdo na "piratsky" zpusob, jak by si 2 zarizeni dokazala poslat data bez ucasti centraly, to znaci jen vyuzit prideleneho slotu a sdilene sbernice ?

Proc to chci: budu casem stavet "jako minimouse" zalozenou na Arduinu (Fulda nema zdrojaky ani HEX k dispozici, takze alternativa) a protoze mam 2 decka, napadlo mne zjednodusit jim "predani" vozidla kdyz bude kazde obsluhovat obvod jedne stanice. Na to si ale ty 2 minimouse musi aspon trochu povidat a idealni by bylo vyuzit (zatim) jediny kabel, ktery v sobe budou mit - XPressnet.

Prozatim mne napadlo jen "reseni", kdy zarizeni A na vyzvu "normal inquiry" vysle co potrebuje pricemz pouzije header byte s 9. bitem 0 + (napr. s adresou cile), zatimco zarizeni "B" hlida nejen sve sloty, ale take sloty sveho kolegy "A" a pokusi se interpretovat "header byte" s nejakou (zatim) nedefinovanou kombinaci (napr 1111 xxxx) nasledovanou "svymi" daty. Otazka je, jak se vyporada prikazova stanice s Xpressnet packetem ktery nezna, jestli se nebude treba snazit interpretovat dalsi prichazejici byte jako 'header'. Ve specifikaci neni pozadovana reakce prikazove stanice popsana.

Alternativne by se dal "znasilnit" nejaky packet pro lokomotivu id > 9999, ale znamenalo by to prenaset 3 byte balastu a jen jeden nebo 2 byte uzitecnych dat. Doufam, ze by centrala pri nesmyslnem cisle loko nedelala bordel na DCC opakovanim nesmyslnych packetu pro neexistujici loko.
Belgarat (nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu)
belgarat
 
Příspěvky: 644
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna

Re: Komunikace na XPressNet

Příspěvekod JendaTT » čtv 14 čer, 2018 7:19 am

belgarat píše:Proc to chci: budu casem stavet "jako minimouse" zalozenou na Arduinu (Fulda nema zdrojaky ani HEX k dispozici, takze alternativa) a protoze mam 2 decka, napadlo mne zjednodusit jim "predani" vozidla kdyz bude kazde obsluhovat obvod jedne stanice.

Trochu odbočím - také mám děcka a každý sám si ovládá lokomotivy na starém androidím telefonu pomocí app Z21. A když si řeknou, že jeden posílá Brejle s osobákem druhému, tak když souprava dorazí k druhé stanici, začne jí svým smartem ovládat ten druhý. Prostě si jí "ukradnou" a jen musí se domluvit, kdo a kdy danou lokomotivu ovládá. A ano, už se párkrát stalo, že oba zapomenou, že někde jede lokomotiva, kterou v té době nikdo neovládá :-)
JendaTT
 
Příspěvky: 328
Registrován: pát 06 bře, 2015 2:56 pm

Re: Komunikace na XPressNet

Příspěvekod belgarat » čtv 14 čer, 2018 7:29 am

JendaTT píše:
belgarat píše:Proc to chci: budu casem stavet "jako minimouse" zalozenou na Arduinu (Fulda nema zdrojaky ani HEX k dispozici, takze alternativa) a protoze mam 2 decka, napadlo mne zjednodusit jim "predani" vozidla kdyz bude kazde obsluhovat obvod jedne stanice.

Trochu odbočím - také mám děcka a každý sám si ovládá lokomotivy na starém androidím telefonu pomocí app Z21. A když si řeknou, že jeden posílá Brejle s osobákem druhému, tak když souprava dorazí k druhé stanici, začne jí svým smartem ovládat ten druhý. Prostě si jí "ukradnou" a jen musí se domluvit, kdo a kdy danou lokomotivu ovládá. A ano, už se párkrát stalo, že oba zapomenou, že někde jede lokomotiva, kterou v té době nikdo neovládá :-)


Ano to je zalozni plan. Ale stejne by mne zajimala moznost "zneuzit" XpressNet.
Belgarat (nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu)
belgarat
 
Příspěvky: 644
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna

Re: Komunikace na XPressNet

Příspěvekod fulda » čtv 14 čer, 2018 7:41 am

belgarat píše:ve vedlejsim vlakne se nakously rozdil Loco vs XpressNet; tady bych se rad venoval moznostem jak zneuzit XpressNet pro dalsi komunikaci mezi zarizenimi.
Možná ti zjednoduším život informací, že XpressNet je derivátem průmyslové sběrnice Profi Bus. Její popis se v automatizaci hledá snáze.
belgarat píše:Prozatim jsem pochopil tolik, ze data se koduji 9 bitove, kde 9 bit je vzdy 0, KROME "call byte" (vyzva a prideleni casoveho slotu s adresou zarizeni) odesilanym z centraly.
Ano, tohle je běžné pro sběrnice typu single master, multiple slave. Je pro to podpora v hardware mikrořadičů, celá řada z nich má vlastnost, která umožňuje říci, že se data na sběrnici ignorují, dokud nepřijde "header", tedy slovo s nejvyšším byte=1.
belgarat píše:Zkouseli jste nekdo na "piratsky" zpusob, jak by si 2 zarizeni dokazala poslat data bez ucasti centraly, to znaci jen vyuzit prideleneho slotu a sdilene sbernice ?
Ano, pokud si chceš přešíst teorii, tak několik málo příkladů ze života:
Hodně se snaží Wolfgang Kufr ve svém projektu BiDiB. Praktické použití najdeš třeba u Roco MM při "posílání knihoven z jedné MM na druhou". Pak se dají najít podle mého názoru méně úspěšné pokusy - například R-Bus.

belgarat píše:Proc to chci: budu casem stavet "jako minimouse" zalozenou na Arduinu (Fulda nema zdrojaky ani HEX k dispozici, takze alternativa) a protoze mam 2 decka, napadlo mne zjednodusit jim "predani" vozidla kdyz bude kazde obsluhovat obvod jedne stanice. Na to si ale ty 2 minimouse musi aspon trochu povidat a idealni by bylo vyuzit (zatim) jediny kabel, ktery v sobe budou mit - XPressnet.
Ano, hrubým odhadem se ti bude hodit ta metoda, kterou používá Roco MM pr knihovny. (BTW - MM v sobě má také Arduino :) )

belgarat píše:Prozatim mne napadlo jen "reseni", kdy zarizeni A na vyzvu "normal inquiry" vysle co potrebuje pricemz pouzije header byte s 9. bitem 0 + (napr. s adresou cile), zatimco zarizeni "B" hlida nejen sve sloty, ale take sloty sveho kolegy "A" a pokusi se interpretovat "header byte" s nejakou (zatim) nedefinovanou kombinaci (napr 1111 xxxx) nasledovanou "svymi" daty. Otazka je, jak se vyporada prikazova stanice s Xpressnet packetem ktery nezna, jestli se nebude treba snazit interpretovat dalsi prichazejici byte jako 'header'. Ve specifikaci neni pozadovana reakce prikazove stanice popsana.
Podívej se na tu knihovnu v MM, to je trochu praktičtější. Pracuje to tak, že se identifikuješ podle bajtu bezprostředně následujícím po bajtu s bitem 9=1. Tedy z pohledu centrály je to normální request, kterému nerozumí, takže na něj odpoví chybou, ale sousední zařízení jej chápe jako broadcast, na který reaguje po svém.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
 
Příspěvky: 3967
Registrován: pon 09 srp, 2010 8:08 am
Bydliště: Praha - Uhříněves

Re: Komunikace na XPressNet

Příspěvekod belgarat » čtv 14 čer, 2018 8:09 am

fulda píše: trochu praktičtější. Pracuje to tak, že se identifikuješ podle bajtu bezprostředně následujícím po bajtu s bitem 9=1. Tedy z pohledu centrály je to normální request, kterému nerozumí, takže na něj odpoví chybou, ale sousední zařízení jej chápe jako broadcast, na který reaguje po svém.


GUT ! Obaval jsem se toho, ze kdyz centrala nebude rozumet headeru, tak nejak "zrusi" slot a zacne vymyslet nesmysly; napr. pri headeru s porusenou paritou posila (?) nejaky ack request (nemam ted specifikaci pred sebou)
Belgarat (nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu)
belgarat
 
Příspěvky: 644
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna

Re: Komunikace na XPressNet

Příspěvekod fulda » čtv 14 čer, 2018 8:49 am

belgarat píše:
fulda píše: trochu praktičtější. Pracuje to tak, že se identifikuješ podle bajtu bezprostředně následujícím po bajtu s bitem 9=1. Tedy z pohledu centrály je to normální request, kterému nerozumí, takže na něj odpoví chybou, ale sousední zařízení jej chápe jako broadcast, na který reaguje po svém.

GUT ! Obaval jsem se toho, ze kdyz centrala nebude rozumet headeru, tak nejak "zrusi" slot a zacne vymyslet nesmysly; napr. pri headeru s porusenou paritou posila (?) nejaky ack request (nemam ted specifikaci pred sebou)

To ne, pokud poíláš paket, který je korektní, jen jej centrála nezná, tak ti tiše oznámí, že ten příkaz nezná a nebude na něj reagovat.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
 
Příspěvky: 3967
Registrován: pon 09 srp, 2010 8:08 am
Bydliště: Praha - Uhříněves

Re: Komunikace na XPressNet

Příspěvekod belgarat » čtv 14 čer, 2018 9:04 am

fulda píše:
belgarat píše:
fulda píše: trochu praktičtější. Pracuje to tak, že se identifikuješ podle bajtu bezprostředně následujícím po bajtu s bitem 9=1. Tedy z pohledu centrály je to normální request, kterému nerozumí, takže na něj odpoví chybou, ale sousední zařízení jej chápe jako broadcast, na který reaguje po svém.

GUT ! Obaval jsem se toho, ze kdyz centrala nebude rozumet headeru, tak nejak "zrusi" slot a zacne vymyslet nesmysly; napr. pri headeru s porusenou paritou posila (?) nejaky ack request (nemam ted specifikaci pred sebou)

To ne, pokud poíláš paket, který je korektní, jen jej centrála nezná, tak ti tiše oznámí, že ten příkaz nezná a nebude na něj reagovat.


Boze ja su vul. Az ted mi doslo ze spodni bity v reponse header byte koduji pocet datovych byte v packetu. No, pak uz to smysl dava. Predpokladam, ze kvuli zpetne kompatibilite to budou cele dolni 4 bity, takze muzu beztrestne poslat az 16 byte "nakladu" (?)
Belgarat (nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu)
belgarat
 
Příspěvky: 644
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna


Zpět na DCC v praxi

Kdo je online

Uživatelé procházející toto fórum: Google [Bot] a 5 návštevníků