]> sigrok.org Git - libsigrokdecode.git/commitdiff
ir_sirc: fixup decoder boilerplate
authorGerhard Sittig <redacted>
Mon, 20 Jul 2020 20:21:30 +0000 (22:21 +0200)
committerGerhard Sittig <redacted>
Wed, 22 Jul 2020 18:21:24 +0000 (20:21 +0200)
The SIRC decoder was written to an older API, and failed to load in a
recent environment (tag missing, ambiguous annotation names). Unbreak
the decoder's boilerplate, and address other nits while we are here:
There is no Python output. Use the same declaration syntax as in other
decoders for improved maintenance (greppability). Call reset() from
__init__() to avoid surprises when a future version does have vars. Do
provide a doc string in the module initialization, to keep the URL for
the protocol description at hand.

decoders/ir_sirc/__init__.py
decoders/ir_sirc/pd.py

index 7e1342c4690fc408dfb03717b4828a580513de79..4061ed7328f4ebcbf78f6a52d91fd67a49443b15 100644 (file)
 ## along with this program; if not, see <http://www.gnu.org/licenses/>.
 ##
 
+'''
+Decoder for the Sony IR remote control protocol (SIRC).
+
+https://www.sbprojects.net/knowledge/ir/sirc.php
+'''
+
 from .pd import Decoder
index 9aba8a53c4e9aa448ff4f9bbb4e6732eba61d2ac..b713c56acdc7f3f3fb2a4d23403c0409c987dda5 100644 (file)
@@ -33,41 +33,39 @@ class Decoder(srd.Decoder):
     api_version = 3
     id = 'ir_sirc'
     name = 'IR SIRC'
-    longname = 'IR SIRC'
-    desc = 'Sony SIRC infrared remote control protocol.'
+    longname = 'Sony IR (SIRC)'
+    desc = 'Sony infrared remote control protocol (SIRC).'
     license = 'gplv2+'
+    tags = ['IR']
     inputs = ['logic']
-    outputs = ['ir_sirc']
+    outputs = []
     channels = (
-        dict(id='ir', name='IR', desc='Data line'),
+        {'id': 'ir', 'name': 'IR', 'desc': 'IR data line'},
     )
     options = (
-        dict(id='polarity', desc='Polarity', default='active-low',
-            values=('active-low', 'active-high')),
+        {'id': 'polarity', 'desc': 'Polarity', 'default': 'active-low',
+            'values': ('active-low', 'active-high')},
     )
     annotations = (
         ('bit', 'Bit'),
         ('agc', 'AGC'),
         ('pause', 'Pause'),
-
         ('start', 'Start'),
         ('command', 'Command'),
         ('address', 'Address'),
         ('extended', 'Extended'),
-
         ('remote', 'Remote'),
-
-        ('warnings', 'Warnings'),
+        ('warning', 'Warning'),
     )
     annotation_rows = (
         ('bits', 'Bits', (0, 1, 2)),
         ('fields', 'Fields', (3, 4, 5, 6)),
-        ('remote', 'Remote', (7,)),
+        ('remotes', 'Remotes', (7,)),
         ('warnings', 'Warnings', (8,)),
     )
 
     def __init__(self):
-        pass
+        self.reset()
 
     def reset(self):
         pass