Nic Geschrieben May 30, 2012 at 06:50 Geschrieben May 30, 2012 at 06:50 Mit welcher API-Methode stelle ich fest ob zw. PC. und Stack per Funk bzw. nur kabelgeb. Verbindung existiert: GetChibiSignalStrength() ? Zitieren
AuronX Geschrieben May 30, 2012 at 07:28 Geschrieben May 30, 2012 at 07:28 Verstehe die Frage noch nicht ganz... Bisher ist ja ein Teil des Stacks immer per Kabel mit dem PC verbunden, nämlich per USB. Chibi gibts ja nur zwischen zwei Stacks. Für was willst du also wissen ob es per Funk verbunden ist? Ein Brick? Ein Bricklet? Ein ganzer Stack? (Wobei ich bei letzterem nichtmal wüsste wie man den adressieren könnte) Zitieren
Wumpus Geschrieben May 30, 2012 at 09:23 Geschrieben May 30, 2012 at 09:23 Vermutlich muss man ein per Funk angebundenes Brickl pollen (z.B. auch mit GetChibiSignalStrength() auf den Slave-Master-Brick), um sicher zu sein, dass die Verbindung steht. Ich würde mich nicht auf die Signal-Strength vom Master-Master-Brick verlassen. Wenn ein entferntes Brick oder Bricklet antwortet, dann steht die Verbindung. Zitieren
Nic Geschrieben May 30, 2012 at 13:48 Autor Geschrieben May 30, 2012 at 13:48 War in der Vergangenheit nicht die Aussage gefallen, ein Brick-System sei transparent, d.h. es spiele keine Rolle ob ein USB-Kabel dazwischen ist oder eine etablierte Funkverbindung. Meine Software-Anwendung klappt prima, egal ob der MasterBrick plus Chibi plus Stepper (1) per Kabel direkt am PC verbunden oder ob ein MasterFunk-Stack (am PC) eine Funkverbindung zu (1) also eine Master-Slave-Verbindung aufgebaut ist. Bei bestimmten Situationen bemerkt man aber die Latenzen durch die Funkverb. und ich möchte in diesem Fall programmintern bestimmte Einstellungen zur Laufzeit vornehmen. Zitieren
AuronX Geschrieben May 30, 2012 at 20:42 Geschrieben May 30, 2012 at 20:42 Fas Problem ist halt, dass es leider völlig transparent ist. Das heißt es gibt soweit ich weiß keinen Weg das herauszufinden. Über Implementierungsdetails könnte es gehen (glaube man könnte die Stack IDs nutzen, weil die Geräte in ner bestimmten Reihenfolge enumeriert werden -> die Stack ID also Rückschlüsse auf den Anschluss zulassen könnte), aber das ist unzuverlässig und da wäre es dann einfacher und sicherer sich lieber selbst die Funkteilnehmer zu "notieren". Zitieren
Nic Geschrieben May 31, 2012 at 09:28 Autor Geschrieben May 31, 2012 at 09:28 @AuronX Hmmh, und was hälst Du von Wumpus Vorschlag GetChibiSignalStrength auf dem Slave abzufragen ? Anderseits sollte ein neues Property etwa wie IsWirelessTransmissionEnabled oder gar ein Callback in der Firmware beim Öffnen oder Schließen einer Funkverbindung nicht die Welt sein. Hast Du Dich mal mit der Firmware beschäftigt und dich an Patches oder Erweiterungen gewagt ? Zitieren
AuronX Geschrieben May 31, 2012 at 14:33 Geschrieben May 31, 2012 at 14:33 In der Firmware direkt war ich noch nicht groß unterwegs. Ich habe nur eine grobe Vorstellung vom Protokoll ^^ Insgesamt findet halt sehr viel sehr zustandslos statt. Das heißt ein Brick oder Bricklet weiß zum Teil nur sehr wenig über sich selbst und seine Umwelt. Was m.E. gehen sollte (nur anhand meiner groben Idee, ohne irgendwelche Belege) ist es das Teil das auch von der Chibi-Signal-Strength bescheid weiß danach zu fragen (Funktionsruf) ob es Master oder Slave ist. Das sollte denke ich implementierbar sein. Ein Brick oder gar Bricklet danach zu fragen ob zwischen dir (also dem PC) und ihm eine Funkstrecke liegt ist denke ich nicht möglich, da das Bricklet gar nicht weiß woher die Frage kommt. Die Bricklets bekommen ihre Anfragen jeweils "vom Bus" und dorthin antworten sie halt auch. Die Antworten wiederum werden vom Master weitergeleitet, allerdings ohne dass der weiß, ob das was die Bricklets auf den Bus geschrieben haben gerade eine Antwort auf irgendwas war oder beispielsweise nur ein Callback. Insofern kann auch dort nur weitergeleitet werden. So weit zu meinem Verständnis, man möge mich gerne korrigieren wenn Unsinn dabei war Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.