Quantasy Geschrieben November 8, 2016 at 12:56 Geschrieben November 8, 2016 at 12:56 Im Folgenden steht der IO16 symbolisch für alle Bricklets, bei denen ein setMonoflop eine Maske verlangt, das monoflopDoneEvent eine Maske zurück gibt, !aber der getMonoflop als Argument noch einen zusätzlichen Pin verlangt und dann nur den Wert für diesen einen Pin zurückgibt!. Warum benötigt die getPortMonofolp Methode einen Pin als Argument? Es gibt doch pro Port genau einen Monoflop, der mehrere Pins steuert... also nicht einen Monoflop pro Pin. Momentan müssen so für eine Monoflop-Statusabfrage im Beispiel IO16 2x8 Methodenaufrufe stattfinden... statt nur deren 2. Wäre es euch möglich, bei allen Bricklets, bei denen ein setMonoflop mit Maske als Input... die Methode getMonoflop neu anzubieten, welche die Maske als Output liefert? Dann wäre es konsistent mit dem monoflopDoneEvent, welches ja auch jeweils die Maske zurückgibt. Zitieren
photron Geschrieben November 10, 2016 at 13:17 Geschrieben November 10, 2016 at 13:17 Der Monoflop arbeitet pro Pin, nicht pro Port. Du kannst für jeden der 16 Pins den Monoflop anders einstellen. Das set_port_monoflop() eine Bitmaske nimmt erlaubt es den Monoflop für mehrere Pins exakt gleich zu konfigurieren. Du kannst aber in der Bitmaske auch jeweils nur ein Bit gesetzt haben und dadurch jeden Pin anders einstellen. Bei get_port_monoflop() muss du den einzelnen Pin angeben, da die Antwort für alle 8 Pins eines Port zu groß für einen Nachricht wäre. Denn da jeder Pin anders eingestellt sein kann müsste 8x die Time (uint32) und 8x die Remaining-Time (uint32) und eine Bitmaske für das Value (uint8) zurückgegeben werden. Macht 65 Byte für eine 64 Byte Nachricht. Das klappt also nicht. Zitieren
Quantasy Geschrieben November 14, 2016 at 15:55 Autor Geschrieben November 14, 2016 at 15:55 Ahaaaa! Herzlichen Dank für die Aufklärung! Nun sehe ich gerade, dass diese Frage bereits einmal beantwortet wurde; danke Photron für die erneute Erklärung. http://www.tinkerunity.org/forum/index.php/topic,2457.msg16090.html#msg16090 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.