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
signature.asc
Description: PGP signature
_______________________________________________ sigrok-devel mailing list sigrok-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sigrok-devel