zavovi si staví vlastní DCC

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

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

Re: zavovi si staví vlastní DCC

Příspěvekod zavovi » pát 17 čer, 2016 6:31 am

fulda píše:
zavovi píše:měl bych dotaz. Jsem v DCC schopen ovládat například při osvětlení budov i intenzitu svitu? Jako jestli existuje nějaký DCC paket, který neposílá jen číslo spínače a jeho hodnotu, ale více informací.

Podívej se do S-9.2.1. ta definuje "Extended Accessory Decoders with 11-bit addresses" Ta samá norma od řádky 436 definuje "Extended Accessory Decoder Control Packet Format" jako:
{preamble} 0 10AAAAAA 0 0AAA0AA1 0 000XXXXX 0 EEEEEEEE 1
Každý dekodér dostává hodnotu XXXXX pro každý svůj výstup.

Bohužel tento typ paketů nepodporuje skoro žádná centrála, takže je to informace která má takříkajíc cenu zlata.


Když nad tím tak přemýšlím. Chápu dobře, že tedy tento paket posílá hodnotu XXXXX, která je pro všechny výstupy stejná? Protože jinak nevidím možnost vybrat, o který výstup se jedná. Akorát se zvýšil rozsah adres, to je pěkné, ale jen o dva bity a k adresaci správného výstupu potřebuju 3 bity, kdybych to chtěl nějak "upravit"...
H0-DCC
Centrála TCS: http://www.zavavov.cz/tcs-2
Ovladač TCS-RC: http://www.zavavov.cz/tcs-rc
zavovi
 
Příspěvky: 248
Registrován: úte 18 lis, 2014 9:34 pm
Bydliště: Brno

Re: zavovi si staví vlastní DCC

Příspěvekod sidlo » pát 17 čer, 2016 6:44 am

Běžný accessory packet - jedna adresa dva stavy (0 a 1)
Extended accessory packet - jedna adresa 32 stavů (5 bitů)
Uživatelský avatar
sidlo
 
Příspěvky: 3590
Registrován: ned 27 dub, 2014 7:32 am

Re: zavovi si staví vlastní DCC

Příspěvekod fulda » pát 17 čer, 2016 7:32 am

zavovi píše:Když nad tím tak přemýšlím. Chápu dobře, že tedy tento paket posílá hodnotu XXXXX, která je pro všechny výstupy stejná? Protože jinak nevidím možnost vybrat, o který výstup se jedná. Akorát se zvýšil rozsah adres, to je pěkné, ale jen o dva bity a k adresaci správného výstupu potřebuju 3 bity, kdybych to chtěl nějak "upravit"...

Mohu ti říct, jaká byla původní myšlenka toho paketu - původně se jednalo o paket pro pěti-světelné návěstidlo, to se ale úplně moc neujalo a navíc mnoho návěstních soustav má v signalizaci blikání.
Takže pokud si to představíš jako jedno pěti světlo, tak je to jednoznačné.
Druhá nedotažená myšlenka bylo ovládání příslušenství, které má nějakou progresi třeba magnetická autíčka na pásu, já jim obecně říkám "kolotoče". Zase - jednomu kolotoči pošleš jednu z 32 možností (1 = rozsvítit světla, 2 = spustit muziku, 3 = roztočit pomalu, ...). Tady je to zase hodně jednoznačné.
Pokud si to postavíš tak, že si nastavíš osvětlení které vytváří jednotlivé fáze dne (0=půlnoc / největší tma; až 31=poledne / největší světlo) tak jsi také v pohodě.
Ve skutečnosti ten paket vůbec nepřidává množství adres pro příslušenství, právě vzhledem k tomu jak se používá klasické příslušenství, které umožňuje adresovat 2048 výstupů, tak tady je to stejné, také je k dispozici 2048 výstupů, jen s tím rozdílem, že každý ten výstup může dostat tu zmíněnou hodnotu.

Jenom abych byl trochu přesnější v používání toho paketu, ona existuje definice, která je v JMRI označená jako "DCC Signal Mast", tuto funkcionalitu podporuje třeba NanoX, takže se podívej jestli ti ta implementace nebude vyhovovat. Pochopitelně LocoNet zařízení jí také budou schopná používat a ani o tom nemusí vědět.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
 
Příspěvky: 4851
Registrován: pon 09 srp, 2010 8:08 am
Bydliště: Praha - Uhříněves

Re: zavovi si staví vlastní DCC

Příspěvekod JendaTT » pát 17 čer, 2016 11:21 am

fulda píše:[Podívej se do S-9.2.1. ta definuje "Extended Accessory Decoders with 11-bit addresses" Ta samá norma od řádky 436 definuje "Extended Accessory Decoder Control Packet Format" jako:
{preamble} 0 10AAAAAA 0 0AAA0AA1 0 000XXXXX 0 EEEEEEEE 1
Každý dekodér dostává hodnotu XXXXX pro každý svůj výstup.

Bohužel tento typ paketů nepodporuje skoro žádná centrála, takže je to informace která má takříkajíc cenu zlata.

Trochu OT, ale měl bych dotaz - lze někde najít informaci o tom, která z centrál tento typ paketů podporuje?
JendaTT
 
Příspěvky: 500
Registrován: pát 06 bře, 2015 2:56 pm

Re: zavovi si staví vlastní DCC

Příspěvekod zavovi » pát 17 čer, 2016 4:18 pm

sidlo píše:Běžný accessory packet - jedna adresa dva stavy (0 a 1)
Extended accessory packet - jedna adresa 32 stavů (5 bitů)


Tohle mi není úplně jasné.
Pokud použiju běžný accessory paket, pak vypadá takto:
{preamble} 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1
A je adresa, DDD je číslo výstupu a C je on/off - takto jsem to teda pochopil

V případě Extended paketu je to takto:
{preamble} 0 10AAAAAA 0 0AAA0AA1 0 000XXXXX 0 EEEEEEEE 1
pak je A adresa, která je o dva bity delší a XXXXX jsou nějaká data, která předávám dekodéru. V případě použití pro kolotoč nebo podobné hračky to docela chápu, ale v případě, že bych chtěl tuto informaci přiřazovat jednotlivým výstupům, tak rozšířím data pouze o jeden bit (když použiju dva bity z adresy, tak o 3 bity). Jde mi hlavně o to, jak to udělat správně, aby to bylo využitelné i s jinými DCC prvky.
H0-DCC
Centrála TCS: http://www.zavavov.cz/tcs-2
Ovladač TCS-RC: http://www.zavavov.cz/tcs-rc
zavovi
 
Příspěvky: 248
Registrován: úte 18 lis, 2014 9:34 pm
Bydliště: Brno

Re: zavovi si staví vlastní DCC

Příspěvekod zdeno » pát 17 čer, 2016 5:29 pm

fulda píše:Pochopitelně LocoNet zařízení jí také budou schopná používat a ani o tom nemusí vědět.

timto si nejsem jisty, ale Loconet podporuje hlavne sve veci. Tim nemyslim firmu, ale komponenty.
To znamena, ze kdyz prestavim vyhybku, tak ocekavam potvrzeni paketem B1, ze to bylo vykonano. Proste Loconet nema zabudovane DCC jako prioritni ovladaci system na prislusenstvi.
---
Takze pokud nema protokol Loconetu tuto funkci zabudovanou, tezko ji bude prekladat do DCC.
Poznam vsechny pakety Loconetu, ale toto tam neni.
Ale mozna je neco nove nebo utajene.
Uživatelský avatar
zdeno
 
Příspěvky: 3003
Registrován: pon 11 črc, 2011 8:54 am

Re: zavovi si staví vlastní DCC

Příspěvekod fulda » pát 17 čer, 2016 6:47 pm

zavovi píše:Tohle mi není úplně jasné.
Pokud použiju běžný accessory paket, pak vypadá takto:
{preamble} 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1
A je adresa, DDD je číslo výstupu a C je on/off - takto jsem to teda pochopil

Tady se totiž dost rozchází definice a realita.
Definici máš dobře, ale realita je taková, že Lenz začal ten paket používat tak, že AAAAAA AAA chápe jako adresu dekodéru a DDD chápe jako výstup s tím, že má dekodér 8 výstupů a ke každé dvojici je připojen jeden přestavník, takže se spíše místo DDD hodí psát DDd kde se "d" vyhodnocuje jako rovně/do odbočky a máme 4 výstupy "DD". Tomu také přizpůsobil číslování na display ovladače. Jo a C má povinně jako 1. Takže se místo "DD" klidně může napsat AA a konstantní C se taky může napsat rovnou jako 1. A máme tu paket: {preamble} 0 10AAAAAA 0 1AAA1AAd 0 EEEEEEEE 1
Ten má stejný počet "A" a jetě k tomu na stejných místech, jen na konci je jedno d - čili 0/1.

zavovi píše:V případě Extended paketu je to takto:
{preamble} 0 10AAAAAA 0 0AAA0AA1 0 000XXXXX 0 EEEEEEEE 1
pak je A adresa, která je o dva bity delší a XXXXX jsou nějaká data, která předávám dekodéru. V případě použití pro kolotoč nebo podobné hračky to docela chápu, ale v případě, že bych chtěl tuto informaci přiřazovat jednotlivým výstupům, tak rozšířím data pouze o jeden bit (když použiju dva bity z adresy, tak o 3 bity). Jde mi hlavně o to, jak to udělat správně, aby to bylo využitelné i s jinými DCC prvky.

Já osobně bych to udělal tak, že dekodér reaguje na paket {preamble} 0 10AAAAAA 0 1AAA1AAd 0 EEEEEEEE 1 tak, že d=0 interpretuje jako XXXXX=00000 a d=1 interpretuje jako XXXXX = 11111. Tedy tak to bylo myšleno v případě, že třeba XXXXX představuje rychlost otáčení.
V případě, že se jedná třeba o semafor, tak do nějakého CV nastavíš, jaké konstantě odpovídá d=0 a jaké d=1 a budeš doufat, že si to užívák nastaví jako znaky "stůj" a "volno".
... a nebo jinak, podle toho co ten dekodér vlastně má dělat.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
 
Příspěvky: 4851
Registrován: pon 09 srp, 2010 8:08 am
Bydliště: Praha - Uhříněves

Re: zavovi si staví vlastní DCC

Příspěvekod fulda » pát 17 čer, 2016 6:49 pm

zdeno píše:Ale mozna je neco nove nebo utajene.
Myslím, že tvoje slovo "utajené" hodně odpovídá mému slovu "lidová tvořivost". Podívej se do toho JMRI, třeba to z oho kódu pochopíš, já na to koukal jen chvilku.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
 
Příspěvky: 4851
Registrován: pon 09 srp, 2010 8:08 am
Bydliště: Praha - Uhříněves

Re: zavovi si staví vlastní DCC

Příspěvekod zdeno » sob 18 čer, 2016 7:00 am

fulda píše:
zdeno píše:Ale mozna je neco nove nebo utajene.
Myslím, že tvoje slovo "utajené" hodně odpovídá mému slovu "lidová tvořivost". Podívej se do toho JMRI, třeba to z oho kódu pochopíš, já na to koukal jen chvilku.

mam ted jine priority, muzes sem hodit odkaz ??

PS
tada jsou vsechny pouzivane pakety Loconetu
http://wiki.rocrail.net/doku.php?id=loconet:ln-pe-en
Uživatelský avatar
zdeno
 
Příspěvky: 3003
Registrován: pon 11 črc, 2011 8:54 am

Re: zavovi si staví vlastní DCC

Příspěvekod fulda » sob 18 čer, 2016 7:15 am

zdeno píše:mam ted jine priority, muzes sem hodit odkaz ??

Já znám jen začátek, ten je TADY.

zdeno píše:tada jsou vsechny pouzivane pakety Loconetu
http://wiki.rocrail.net/doku.php?id=loconet:ln-pe-en
Nejsou to náhodou jen vypsané všechny opcodes? Obávám se, že znalost opcode není to stejné, jako znalost příkazů a chování sběrnice.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
 
Příspěvky: 4851
Registrován: pon 09 srp, 2010 8:08 am
Bydliště: Praha - Uhříněves

Re: zavovi si staví vlastní DCC

Příspěvekod zdeno » sob 18 čer, 2016 7:52 am

ono neco tvrdit a neco opravdu vedet je obrovsky rozdil. Nez neco placnes, bylo by dobre si neco nastudovat.
Ja si vzdycky nechavam otevrene zadni vratka, protoze jsem prisel na to, ze nemuzu vedet vsechno a dokonale.
Proto to nekdy vypada, ze tomu nerozumim, ale to je velky omyl.
Ja toho umim dost, ale proste je tu moznost, ze se muzu mylit nebo jsem to zle pochopil. ;-)
---
Podle opcode se vlastne deli prikazy, teda kazdy prikaz ma svuj opcode a tim se vlastne muze napisat, ze opcode definuje kazdy prikaz.
Nemuzes poslat jakykoli prikaz, aby nemel prislusny opcode.
To znamena, ze podle opcode dokazeme ihned poznat, co je to za prikaz a co ovlada. Jinak na te strance (a dalsi) nejsou popsany jen opcode, ale i nasledujici byte, ktere urcuji parametry prikazu.
Jsou tam urcite variace, ale ty jsou snadno pochopitelne.
Takze pokud nemas prideleny opcode na nejaky prikaz, tak neni moznost ho vytvorit jak v Loconet, tak v DCC.
---
Na ovladani napriklad jerabu se pouzivaji normalni lokodekodery, ktere podporuji smer a rychlost pohybu.
---
Jinak na ovladani mezihodnot se da pouzit i paket prislusenstvi, pokud dokaze incrementovat kazdy prikaz. To znamena, ze kazda "1" prida "X" k soucasne hodnote a kazda "0" ubere "X" z te hodnoty.
Tato rada je vlastne neomezena a muze byt opravdu velika.
Ale vetsinou se pouziva 4,8,16. To znamena, ze po 4 (8,16) prikazech se dosahne maximum a jsou dve moznosti. Bud to ostane, nebo se to preklopi a zacina znovu od zacatku.
Uživatelský avatar
zdeno
 
Příspěvky: 3003
Registrován: pon 11 črc, 2011 8:54 am

Re: zavovi si staví vlastní DCC

Příspěvekod fulda » sob 18 čer, 2016 11:25 am

zdeno píše:Podle opcode se vlastne deli prikazy, teda kazdy prikaz ma svuj opcode a tim se vlastne muze napisat, ze opcode definuje kazdy prikaz.
Nemuzes poslat jakykoli prikaz, aby nemel prislusny opcode.

Zdeno, zase si komplikuješ život.
To co jsi napsal je pochopitelně pravda, ale jak se říká v matematice - neplatí opak.
Takovej jednoduchej příklad právě z oboru lidové tvořivosti je LNCV. V tom dokumentu o nich není ani zmínka. Není tam třeba proto, že podléhají nevhodné licenci Uhlenbrock (možno dohledat v loconet fóru). Každopádně LNCV používají pakety s opcode 0xED (OPC_IMM_PACKET), k tomu používají délku paketu 0x0F a tak dále. Odpověď se pak vrací jako 0xE5 (OPC_PEER_XFER) s délkou zase 0x0F.

Takže je hezké, že se pozná, že byl použit paket pro přímou komunikaci dvou LN zařízení, ale pokud nemáš další popis, tak je ti to celkem k ničemu.

Takže tak.

zdeno píše:Jinak na ovladani mezihodnot se da pouzit i paket prislusenstvi, pokud dokaze incrementovat kazdy prikaz. To znamena, ze kazda "1" prida "X" k soucasne hodnote a kazda "0" ubere "X" z te hodnoty.
Tato rada je vlastne neomezena a muze byt opravdu velika.
Ale vetsinou se pouziva 4,8,16. To znamena, ze po 4 (8,16) prikazech se dosahne maximum a jsou dve moznosti. Bud to ostane, nebo se to preklopi a zacina znovu od zacatku.

Inkrementovat po přijetí paketu příslušenství je trochu nebezpečné, pakety se opakují, ale jen několikrát a třeba u XpressNetu si to opakování řídí ovladač, takže se těžko spoléhá na počet takto přijatých paketů. (Třeba MultiMaus opakuje tak dlouho, jak dlouho uživatel drží stisklé tlačítko)
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
 
Příspěvky: 4851
Registrován: pon 09 srp, 2010 8:08 am
Bydliště: Praha - Uhříněves

Re: zavovi si staví vlastní DCC

Příspěvekod zdeno » sob 18 čer, 2016 11:59 am

ad1/ michas jablka a hrusky.
Pakety s opcode ED, E5 jsou presne definovany a kazdy, kdo to pozna, vi na co to slouzi. Ze se daji pouzit ruzne, je uz neco jine, ale maji svou presnou normu.
Neni dobre michat, co je druh paketu a data, ktere se prenaseji. To spolu vubec nesouvisi.
---
To je stejne jako napriklad paket rychosti A0, kde druhy byte urcuje slot a treti byte urcuje smer a rychlost.
Kazdy ten paket muze byt jiny, ale spojuje je 1. byte s opcode A0.
To same plati i pro jine pakety, opcode urcuje druh paketu a dalsi bajty prenaseji hodnoty.
---
ad2/
Prave toto Loconet umoznuje, protoze kazdy paket se vysila jen jednou. Nektere vyzaduji dokonce LACK, takze je to spolehlive.
---
Teda krome refresh slotu, kdy se musi potvrzovat zivot slotu pred uplynutim doby Purge.
Uživatelský avatar
zdeno
 
Příspěvky: 3003
Registrován: pon 11 črc, 2011 8:54 am

Re: zavovi si staví vlastní DCC

Příspěvekod zavovi » pon 20 čer, 2016 6:34 am

No tak jak tady čtu, moc tomu nerozumím, ale co jsem pochopil, že každý výrobce si to dělá po svém. To pak ale znamená používat i dekodéry od toho výrobce, ne? Pokud např. vyžaduje potvrzování paketů, tak to většina DCC dekodérů neumožňuje.

Jak to tedy je, když si koupím novou lokomotivu v digitálu, pojede se všemi centrálami nebo jsou tam nějaké rozdíly?

Jinak klasicky DCC definuje potvrzování paketů jen jako ACK, ne? Ale to funguje jen v programovacím modu jestli se nepletu?

Díky za vysvětlení.
H0-DCC
Centrála TCS: http://www.zavavov.cz/tcs-2
Ovladač TCS-RC: http://www.zavavov.cz/tcs-rc
zavovi
 
Příspěvky: 248
Registrován: úte 18 lis, 2014 9:34 pm
Bydliště: Brno

Re: zavovi si staví vlastní DCC

Příspěvekod zdeno » pon 20 čer, 2016 6:42 am

to Zavovi:
sbernice Xpresnet a Loconet jsou nadstavby DCC, to same treba CAN bus.
Takze je uplne jedno, jakou pouzivas nadstavbu, na konci bude DCC a to se pouziva standardne, funguje na tom vsechno.
---
Existuji jeste jine lokomotivni ovladani, jako treba Merklin, TRIX, ale to u nas neni skoro vubec rozsirene. Takze se nemusis bat.
Uživatelský avatar
zdeno
 
Příspěvky: 3003
Registrován: pon 11 črc, 2011 8:54 am

PředchozíDalší

Zpět na DCC v praxi

Kdo je online

Uživatelé procházející toto fórum: Chuchanek, Jacek a 10 návštevníků