pass
class Decoder(srd.Decoder):
- api_version = 2
+ api_version = 3
id = 'dsi'
name = 'DSI'
longname = 'Digital Serial Interface'
- desc = 'DSI lighting control protocol.'
+ desc = 'Digital Serial Interface (DSI) lighting protocol.'
license = 'gplv2+'
inputs = ['logic']
- outputs = ['dsi']
+ outputs = []
+ tags = ['Embedded/industrial', 'Lighting']
channels = (
{'id': 'dsi', 'name': 'DSI', 'desc': 'DSI data line'},
)
)
def __init__(self):
+ self.reset()
+
+ def reset(self):
self.samplerate = None
self.samplenum = None
self.edges, self.bits, self.ss_es_bits = [], [], []
self.edges, self.bits, self.ss_es_bits = [], [], []
self.state = 'IDLE'
- def decode(self, ss, es, data):
+ def decode(self):
if not self.samplerate:
raise SamplerateError('Cannot decode without samplerate.')
bit = 0
- for (self.samplenum, pins) in data:
- self.dsi = pins[0]
+ while True:
+ (self.dsi,) = self.wait()
if self.options['polarity'] == 'active-high':
self.dsi ^= 1 # Invert.