Jump to content

IO16 getPortMonoflop Methode: Warum wird hier pro Pin unterschieden?


Quantasy

Recommended Posts

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...