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

Re: [Fwd: [DDL-ML] nochmal rcsh und s88]



"Peer Dr. Griebel" wrote:

> ddl-mailing-list@der-moba.de schrieb am 12.11.01:
> > hi peer,
> > die bitmustergeschichte war eine idee von mir.
>
> Ah, ich sehe.
>
> > da du sowoesoden s88 bus abragen mußt, müssen die 16 einzelnen zustände irgendwo als 16 bit verarbeitet werden, "nachdem sie in den computer geschoben worden sind" und höchstwahrscheinlich als 16bit oder 2x 8bit abgespeichert worden sind.
> > diese daten müßten dann mit einm binären oder hexadezimalen wert logisch verknüpft werden und aufgrund des ergebnisses ein ereignis gestartet werden.
>
> Klingt gut, hat aber ein Problem. SRCP arbeitet ja nicht nur mit 16 Ports, sondern unterstützt knapp 1000 Ports (wenn ich mich richtig erinnere). D.h. der hexadezimale Wert aller Ports hätte eine Länge von ca 250 Stellen!

Solbald die S88 Ports via SRCP abgefragt werden (was ich einfach mal unterstelle), wird die
Portanzahl pro Modul zu einer für die Software vollkommen irrelevanten weil nicht bekannten
Tatsache. Es gibt einfach eine durchgängige (1) Menge von binären Eingängen. Ein Bitmuster
kann man sicherlich daraus basteln. Wozu? Im übrigen begrenzt SRCP den Wertebereich
nicht. Bis auf die irgendwo mal erwähnte Darstellung von Zahlen mit 32bit Integern. Die
gilt aber auch als "system default" und kann natürlich auch größer werden (so es Sinn machen
würde).

Davon abgesehen: Ein WAIT FB läßt sich auch asynchron mittels Lauschen am
INFO-Port (resp. Lauschen im INFO Modus bei >=0.8) und darauf sitzenden
Triggern realisieren. Wenn man mit Threads und dgl. arbeiten kann (und will).
Python ist da zum Glück sehr einfach in der Handhabung.

Gruß
Matthias


> Mit rcsh geht dies noch nicht. Sollten wir uns aber auf ein Verfahren einigen, so müßte es recht schnell zu implementieren sein.

Stell mal rcsh nicht allzusehr unter den Scheffel. Was Du mir mal gemailt hast, kann das.
Einfach mehrere SRCPConnection Instanzen laufen lassen. Vielleicht baust Du mal eine
Triggerfunktion mit ein ("Wenn FB1 auf 0 geht rufe Methode fb1_0 auf"). Dann hätte man
eine schöne API und kann braucht sich nicht mehr mit den Feinheiten herumärgern.

(1) ist noch nicht so klar festgelegt. Soll ich das übernehmen? Oder würde das
anderswo kneifen?