Hi,

>    elif self.state == 'FIND ACK':
>   -    # Wait for a data/ack bit: SCL = rising.
>   -    (scl, sda) = self.wait({0: 'r'})
>   -    self.get_ack(scl, sda)
>   +    # Wait for any of the following conditions (or combinations):
>   +    #  a) a data/ack bit: SCL = rising.
>   +    #  b) STOP condition (P): SCL = high, SDA = rising
>   +    (scl, sda) = self.wait([{0: 'r'}, {0: 'h', 1: 'r'}])
>   +    if (self.matched & (0b1 << 0)):
>   +        self.get_ack(scl, sda)
>   +    elif (self.matched & (0b1 << 1)):
>   +        self.handle_stop()

This change makes much sense to me. I would even go one step further and
add it to FIND_ADDRESS as well. The latter is called a void message and
declared illegal in the specs. But most devices can handle this, so we
can surely see this in the wild.

Regards,

   Wolfram

Attachment: signature.asc
Description: PGP signature

_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to