[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re: Antw: [DDL-ML] Aufruf: DDL und Linux Kernel



ddl-mailing-list@der-moba.de schrieb am 18.06.01:
> Hallo Peer,

Hallo Matthias,

> > Vielleicht sollte ich hier noch einmal ein bißchen Werbung für rcman machen.
> > Mir gefällt an rcman am besten die Bedienung per Rad-Maus. Ich kann mich mit meiner kabellosen Maus irgendwo an meine Anlage stellen und beliebige Loks über die Maus steuern.
> >
> > Ich bin gerade dabei auch Gleisbilder zu stellbar zu machen. Allerdings geht es bisher nur über die Tastatur. Drei Tasten an der Maus sind doch etwas wenig.
> 
> Einen Wunsch habe ich an rcsh (ja, wirklich, ich bin dabei von tcl/tk zu python zu wechseln): Sessions bei den SRCP
> Verbindungen. Damit mehrere Aktionen gleichzeitig laufen können.
> 
> Hintergrund: Ich bastele immer noch an meinem SRCP Recorder. Der zeichnet SRCP Ereignisse auf und kann sie (ggf. nach Speicherung in eine Datei) wieder abspielen, gerne auch triggergesteuert. Wenn
> man so will, eine Softwarelösung des Märklin'schen Memory. Natürlich deutlich besser. Dafür nutze ich weidlich einige Features des SRCP aus. Im Automatikbetrieb (Trigger) hat dies nun zur Folge,
> das ich mehrere Prozesse habe, die auf ein SRCP Ereignis warten. Hier sind zwei Möglichkeiten, das zu handeln: Entweder das blockierende SRCP WAIT oder der Client macht den Job selbst, lauscht am
> INFO und bastelt danach die Ereignisse zusammen. Ersteres ist (für mich) einfacher und auch einleuchtender (wozu haben wir schließlich den WAIT).
> 
> rcsh unterstützt momentan nur eine Session (nur ein srcp - Verbindungsobjekt, global). Kannst Du da nachrüsten/umbauen? (dies ist unabhängig von den Sessions des SRCP 0.8, aber durchaus
> vergleichbar). Damit, so fürchte ich, brechen aber so ziemlich alle anderen Anwendungen zusammen, deswegen will/kann/möchte ich dies nicht im Alleingang machen.

Ich befürchte, ich verstehe nicht so ganz. Ich gehe mal davon aus, dass Du von rcsh und nicht von rcman sprichst. Daher wirst Du auch nicht das Gleisbildstellpult meinen.
Gut, sprechen wir über srcp. Du hast recht, es gibt ein vordefiniertes, globales Objekt srcp. Es ist eine Instanz der Klasse srcp_connection. Ich denke, Du kannst beliebig viele Instanzen davon erzeugen. Also könntest Du mittels Threads jedem thread eine Connection zuweisen und dort Dein wait machen lassen.

> Was ich also will, ist, daß die Geräteobjekte (N1, PS etc) mit unterschiedlichen Verbindungsobjekten zusammenwirken können, aber trotzdem konsistente Angaben über sich selbst machen können (ich
> hätte kein Problem damit, jedes _aktive_ Gerät über eine eigene SRCP Connection zu pflegen, der destruktor sollte aber schon die Verbindung abbauen). Ist das machbar?

Wie gesagt, es ist mir nicht ganz klar, was Du machen willst. (Oder vielleicht doch - so wie ich es versucht habe oben zu beschreiben?). 
Also wenn jedes aktive Gerät eine eigene Connection hat, musst Du wohl jedem Gerät einen Thread zuweisen. Ich weiss nicht, ob dies nicht zu viele Ressourcen kostet. Aber je nach Rechner dürfte das recht weit skalieren.
Was ich nicht machen würde ist die Sache mit dem Destruktor. Destruktoren in Python sind ähnlich denen von Java: Man sollte möglichst wenig mit ihnen machen. Also solltest Du selbst manuell aufräumen, also die Verbiundung abbauen.

> Matthias

Ich hoffe etwas geholfen zu haben!?
  Peer

______________________________________________________________________________
Sie surfen im Internet statt im Meer? Selbst schuld!
Auf zum Strand: http://lastminute.de/?PP=1-0-100-105-1