Hallo Liste, ich bin gerade dabei eine C Bibliothek für das fnordlicht-Protokoll [1] zu schreiben. Diese soll "fnlib" heißen. Ziel ist es ein einfaches Interface zu bieten, dass jeder in seine eigenen Programme integrieren kann. Ich möchte soweit möglich den bestehenden Sourcecode [2] verwenden, sodass wir die Bibliothek in Kombination mit einem Demoprogramm im git-Repo veröffentlichen können.
Erstmal aber eine Frage:
Gemäß der Dokumentation des PULL_INT Befehls:
"Instruct the adressed device to immediately pull down the INT line (connected to all devices in parallel) for a given amount of time. This can be efficiently used to determine the number of devices listening to the bus (eg. by binary search)."
Soll es mit diesem möglich sein die Anzahl der fnordlichter am Bus zu zählen. Soweit ich das verstanden hab soll hier einfach beginnend mit dem Busmaster die INT-Leitung auf Masse gezogen werden. Ist dieser verfügbar, wird INT auf GND gezogen. Forlaufend wird jetzt das Adressbyte inkrementiert bis irgendwann ein fnordlicht adressiert wird, das es eigentlich gar nicht gibt. Folglich wird auch die INT-Leitung nicht auf Masse gezogen. Nun leider habe ich gerade meine fnordlichter mit einem MAX232 und einem USB-Seriellwandler an meinem Rechner hängen. Habe also keinen Zugriff auf die INT-Leitung. Gibt es hier noch eine Alternative die Anzahl der Geräte auf dem Bus zu bestimmen? Oder soll ich eine der Leitungen des RS232 Ports, die eigentlich für den Hardware Handshake gedacht sind misbrauchen? Also RTS, CTS, DCD oder DTR?
gruß Steffen
[1] http://github.com/fd0/fnordlicht/raw/master/doc/PROTOCOL [2] http://github.com/fd0/fnordlicht/tree/master/common/