i2c: rephrase state machine, eliminate text matching
commit782c35b0158a84bbdbcfd2fc2f0ed7e507f17650
authorGerhard Sittig <gerhard.sittig@gmx.net>
Mon, 17 Jul 2023 18:16:15 +0000 (17 20:16 +0200)
committerGerhard Sittig <gerhard.sittig@gmx.net>
Tue, 18 Jul 2023 19:28:44 +0000 (18 21:28 +0200)
tree409b2da3d501c1e80cb416f1dfb21e237f6b596a
parent0fbf152810a812baee1d7e69d4621bb8445f9e7e
i2c: rephrase state machine, eliminate text matching

Rephrase the conditions which drive the I2C decoder's progress. Remove
self.state and its space separated string literals which were tedious to
search for, and which "lent themselves" to magic string matching. Use
other existing conditions instead, which also reduces redundancy.

Defer the "forgetting data bits" until after ACK was seen. Comment on
the motivation to keep the "protocol violating" implementation, which
misses error conditions that happen on the wire, but happens to support
heavily undersampled captures to an astonishing degree.

Also addresses minor style nits: Prefer to think of "dominant ACK" and
"recessive NAK". Rephrase a byte shift for the first address byte. Emit
the first warning annotation for the row which was declared before but
was not used so far.
decoders/i2c/pd.py