]> sigrok.org Git - libsigrokdecode.git/commitdiff
signature: increase compatibility across Python versions
authorGerhard Sittig <redacted>
Thu, 12 Dec 2019 09:39:57 +0000 (10:39 +0100)
committerGerhard Sittig <redacted>
Thu, 12 Dec 2019 09:39:57 +0000 (10:39 +0100)
Underscores in number literals are a recent Python feature which only
was introduced in version 3.6. The sigrok project claims compatibility
with previous Python versions, but the signature decoder fails to load
with this error:

  $ pulseview
  srd: SyntaxError: Failed to load decoder signature: import by name failed: invalid syntax (pd.py, line 138)
  srd: Traceback (most recent call last):
    File "/home/user/share/libsigrokdecode/decoders/signature/__init__.py", line 25, in <module>
      from .pd import Decoder
    File "/home/user/share/libsigrokdecode/decoders/signature/pd.py", line 138
      incoming = (bin(shiftreg & 0b0000_0010_1001_0001).count('1') + data) & 1
                                                     ^
  SyntaxError: invalid syntax

Use the more compact hex presentation for a magic binary pattern. This
obsoletes the necessity to separate groups of bits for readability.

decoders/signature/pd.py

index 65b86a255730d79d22c8f38287401415e38f7802..aebd5b4165444f27d6531085c240018f8ef642f1 100644 (file)
@@ -135,7 +135,7 @@ class Decoder(srd.Decoder):
                         started = False
                     else:
                         self.putb(last_samplenum, [data, [str(data)]])
-                incoming = (bin(shiftreg & 0b0000_0010_1001_0001).count('1') + data) & 1
+                incoming = (bin(shiftreg & 0x0291).count('1') + data) & 1
                 shiftreg = (incoming << 15) | (shiftreg >> 1)
             prev_start = start
             prev_stop = stop