summaryrefslogtreecommitdiff
path: root/decoders/sle44xx/pd.py
AgeCommit message (Collapse)Author
2020-08-30sle44xx: rework data bits accumulation, and byte presentationGerhard Sittig
The 'databyte' is strictly local to the routine when 8 bits were seen. The 'bitcount' is redundant and becomes obsolete when bits[] is a Python list. The comment and the code disagreed, the wire is said to communicate bits in LSB first order, the implemenation kept accumulating bits in the reverse order (the annotation part, not the data byte math). Prefer the common helper to convert bits to bytes. There is uncertainty about the bit width "estimation" logic. The main loop's .wait() conditions suggest that data bit values are valid for the period of high CLK, which provides an easier and more robust condition for annotation boundaries. Add a comment for now. The order of bit and byte values' annotation emission is unfortunate, too.
2020-08-30sle44xx: rephrase annotation text constructionGerhard Sittig
Concentrate all text variants for zoom levels in a single spot. Remove duplicates, and on the other hand add more verbose phrases to support users which are not intimately familiar with the protocol. Prefer the Python strings .format() method over the % operator for its versatility and readability.
2020-08-30sle44xx: use symbolic identifiers for annotation classesGerhard Sittig
Eliminate magic numbers for annotation classes, prefer symbolic names instead to improve readability. Put the annotation classes in an order which matches the annotation rows' order. Reduce indentation in the 'proto' table while we are here (yet keep the vertical alignment).
2020-08-30sle44xx: use symbolic identifiers for pins and signal transitionsGerhard Sittig
Eliminate magic numbers for input pins and signal transition conditions. Which dramatically improves readability and simplifies review.
2020-08-30sle44xx: remove incomplete Python output for nowGerhard Sittig
The current implementation exclusively communicated the 'RESET' condition but nothing else. Remove the Python output from the decoder, it's easy to re-introduce when a complete implementation materializes. There also is no known recipient of SLE44xx Python output right now which would expect to see even the currently implemented subset.
2020-08-30sle44xx: extend decoder doc string, add "memory cards" hintGerhard Sittig
Add a stronger hint to "memory cards", users might expect to see this detail in the decoder's description. Rephrase how the reset line will terminate pending memory reads.
2020-08-30sle44xx: fixup boilerplate, add missing required fieldsGerhard Sittig
The decoder was created in an older setup and would not load in recent applications. Add missing boilerplate which is mandatory. Rename 'data' since annotation classes and rows must not have ambiguous names, and there is no singular form of 'data' -- use 'fields' instead. This also fixes a missing line termination at the end of the text file.
2020-08-30sle44xx: introduce decoder for Siemens memory cardsFederico Cerutti
Introduce an initial implementation of the SLE44xx protocol decoder for Siemens/Infineon SLE 4418/28/32/42 memory cards. ATR (Answer To Reset), command and data bytes get displayed, and RESET/abort events are marked. Extracted data bytes are made available as binary output.