DC-CAR Forum
https://www.ciservice-ilchmann.de/forum_modellbahn/

PC-Sender, Format der Adressbytes
https://www.ciservice-ilchmann.de/forum_modellbahn/viewtopic.php?f=129&t=1215
Seite 1 von 1

Autor:  achim [ Montag 29. Oktober 2012, 21:32 ]
Betreff des Beitrags:  PC-Sender, Format der Adressbytes

Hallo,

ich bin gerade dabei eine Software zum Ansteuern des PC-Senders zu schreiben. Fahrzeuge zu steuern funktioniert auch schon, allerdings noch nicht mit allen Adressen.

Byte 1 und Byte 2 haben je 6 Bits zur Adressierung. Die Adressen 0-63 kann ich problemlos über das Byte 1 adressieren, aber wie werden die höheren Adressen abgebildet? Nutze ich die 6 verfügbaren Bits vom 2. Byte als die höherwertigen Bits?
Bei 1024 Adressen benötige ich nur 10 Bits, habe aber 12 zur Verfügung? (http://www.dc-car.de/DC-Car_PC_Sender.htm)

VG Achim

Autor:  Sven Skrabal [ Dienstag 30. Oktober 2012, 09:00 ]
Betreff des Beitrags: 

Hallo achim,

ich bin zwar kein DC-Car Entwickler, habe aber bereits eigene DCC Implementierungen umgesetzt (sendend und empfangend). Ich würde dir empfehlen den DCC Standard von der NMRA Website anzuschauen, da dort genau steht, wo welche Information drin steckt. Siehe hierzu:
http://www.nmra.org/standards/DCC/stand ... CStds.html

Darüber hinaus, um es dir einfacher zu machen, kannst du dir die DCC Implementierung von Herr Kufer von http://www.opendcc.de ansehen. Du findest dort exakt das was du suchst inklusive Bit-Shifting und Bit-Maskierung. Beachte hierbei aber die Lizenzen!

Ich hoffe mal damit deine Frage beantwortet zu haben :)

Gruß
Sven

Autor:  achim [ Donnerstag 1. November 2012, 15:13 ]
Betreff des Beitrags: 

Hi Sven,

danke für die Infos. Mir war nicht klar, dass die Kodierung der bei DCC entspricht. NMRA.org ist leider derzeit nicht erreichbar, aber die OpenDCC-Seite konnte mir weiterhelfen. Wenn ich es richtig verstanden habe, ist der höhere Teil einfach nur der ganzzahlige Anteil von Adresse / 64 und der niedere Teil Adresse % 64.

VG Achim

Autor:  Sven Skrabal [ Montag 5. November 2012, 08:40 ]
Betreff des Beitrags: 

Hallo achim,

falls du deine Adressumsetzung/Adressumrechnung auf einem Mikrocontroller nutzt, empfehle ich dir keine Divisionen einzusetzen - die sind z.B. auf den Atmel Controllern sehr langsam, weil das nicht in einer Clock-Cycle durchgeführt werden kann. Gerade bei Timing-kritischen Dingen ist das wichtig.

Hier zwei kleinere Tipps:
- Modulo-Divisionen mit Potenzen von 2 (also 2, 4, 8, 16, ...) kannst du einfach mit einem logisch UND realisieren. Einfach anstatt % im Programm ein & verwenden.
- Normale Divisionen mit Potenzen von 2 kannst du mit Bit-Shift nach rechts erreichen. Eine Division mit 4 z.B. erreichst du mit x >> 2 (weil 2^2 = 4)

Eigentlich sollte ein guter Compiler dies erkennen und eigenständig optimieren, doch manchmal muss man diesen eben auch auf die Sprünge helfen :)

Gruß
Sven

Autor:  achim [ Montag 5. November 2012, 20:54 ]
Betreff des Beitrags: 

Sven Skrabal hat geschrieben:
[...] falls du deine Adressumsetzung/Adressumrechnung auf einem Mikrocontroller nutzt, empfehle ich dir keine Divisionen einzusetzen [...]


Hi Sven,

ich nehme keinen Microcontroller. Ich bin gerade dabei ein DC-Car-PC-Sender-Modul für den SRCPD zu schreiben. Habe auch gestern zum ersten mal erfolgreich ein Fahrzeug darüber gesteuert :-)
Die langen Adressen habe ich aber noch nicht getestet.

Der SRCPD soll auf einem Raspberry Pi laufen. Die passende Android-App ist auch schon (seit mittlerweile 2,5 Jahren) in der Mache. Es gibt aber schon andere Apps (srcp-client und AndRoc) mit denen man heute schon arbeiten kann.

VG Achim

Autor:  Sven Skrabal [ Dienstag 6. November 2012, 12:25 ]
Betreff des Beitrags: 

Hallo achim,

sehr interessantes Projekt, das du da hast. Mit den rasperry pi hab ich auch schon rum probiert, jedoch zu anderen Zwecken :)

srcpd & srcp sind ja auch super Projekte, wusste nicht einmal dass so etwas existiert. Vielleicht kann ich das sogar mal für anderes gebrauchen - wir verwenden auch Lenz Interfaces für unsere Clubanlage mit Railware. Du weißt nicht zufällig ob da auch noch Ethernet Unterstützung integriert wird?

Wirst du dein Projekt hier evtl. veröffentlichen oder vorstellen? Fände ich eine freine Sache! Die Steuerung via Android eröffnet ganz neue Möglichkeiten (z.B. kein Handsender mehr nötig) 8)

Gruß
Sven

Autor:  achim [ Dienstag 6. November 2012, 19:00 ]
Betreff des Beitrags: 

Hi Sven,

wenn das Lenz Interface vom SRCPD unterstützt wird kannst du LAN über den PC oder Raspberry Pi nachrüsten. Ich selbst habe eine OpenDCC-Zentrale (Z1) am SRCPD. Momentan nutze ich die Z1 am Pi mit SRCPD und Rocrail-Server (läuft als SRCP-Client), so kann ich mit allen SRCP-Clients (J-Man, SRCP-Client, etc) und Rocrail-Clients (RocView, AndRoc) auf die Z1 zugreifen.
Dazu kommt dann noch der DC-Car Sender als 2. Zentrale.

Sobald das SRCPD-Modul fertig ist werde ich es bei den Entwicklern einreichen, in der Hofnung, dass es aufgenommen wird. Dann kann sich jeder einfach den Daemon runterladen.

Sobald meine Android-App im Market zu finden ist, werde ich das natürlich auch bekannt geben.

VG Achim

Ps: Den gepatchten SRCPD stelle ich gerne bereit, wenn jemand vorher schon testen möchte.

Autor:  achim [ Mittwoch 30. Januar 2013, 18:31 ]
Betreff des Beitrags: 

Das SRCPD-Modul ist fertig: http://ciservice-ilchmann.de/forum_modellbahn/viewtopic.php?p=7233

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/