Quantasy Posted November 8, 2016 at 12:56 PM Posted November 8, 2016 at 12:56 PM 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. Quote
photron Posted November 10, 2016 at 01:17 PM Posted November 10, 2016 at 01:17 PM 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. Quote
Quantasy Posted November 14, 2016 at 03:55 PM Author Posted November 14, 2016 at 03:55 PM 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 Quote
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.