mirror of
https://github.com/DreamSourceLab/DSView.git
synced 2025-02-02 13:52:55 +08:00
repair decoder rgb led ws2812+
This commit is contained in:
parent
6850c961ca
commit
a495598ff5
@ -2,7 +2,7 @@
|
|||||||
## This file is part of the libsigrokdecode project.
|
## This file is part of the libsigrokdecode project.
|
||||||
##
|
##
|
||||||
## Copyright (C) 2016 Vladimir Ermakov <vooon341@gmail.com>
|
## Copyright (C) 2016 Vladimir Ermakov <vooon341@gmail.com>
|
||||||
## Copyright (C) 2019 DreamSourceLab <support@dreamsourcelab.com>
|
## Copyright (C) 2023 DreamSourceLab <support@dreamsourcelab.com>
|
||||||
## Copyright (C) 2021 Michael Miller <makuna@live.com>
|
## Copyright (C) 2021 Michael Miller <makuna@live.com>
|
||||||
##
|
##
|
||||||
## This program is free software; you can redistribute it and/or modify
|
## This program is free software; you can redistribute it and/or modify
|
||||||
@ -82,48 +82,72 @@ class Decoder(srd.Decoder):
|
|||||||
if self.colorsize == 24:
|
if self.colorsize == 24:
|
||||||
if self.options['colors'] == 'GRB':
|
if self.options['colors'] == 'GRB':
|
||||||
rgb = (elems & 0xff0000) >> 8 | (elems & 0x00ff00) << 8 | (elems & 0x0000ff)
|
rgb = (elems & 0xff0000) >> 8 | (elems & 0x00ff00) << 8 | (elems & 0x0000ff)
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['GRB#%06x' % rgb]])
|
||||||
elif self.options['colors'] == 'RGB':
|
elif self.options['colors'] == 'RGB':
|
||||||
rgb = elems
|
rgb = elems
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['RGB#%06x' % rgb]])
|
||||||
elif self.options['colors'] == 'BRG':
|
elif self.options['colors'] == 'BRG':
|
||||||
rgb = (elems & 0xff0000) >> 16 | (elems & 0x00ffff) << 8
|
rgb = (elems & 0xffff00) >> 8 | (elems & 0x0000ff) << 16
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['BRG#%06x' % rgb]])
|
||||||
elif self.options['colors'] == 'RBG':
|
elif self.options['colors'] == 'RBG':
|
||||||
rgb = (elems & 0xff0000) | (elems & 0x00ff00) >> 8 | (elems & 0x0000ff) << 8
|
rgb = (elems & 0xff0000) | (elems & 0x00ff00) >> 8 | (elems & 0x0000ff) << 8
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['RBG#%06x' % rgb]])
|
||||||
elif self.options['colors'] == 'BGR':
|
elif self.options['colors'] == 'BGR':
|
||||||
rgb = (elems & 0xff0000) >> 16 | (elems & 0x00ff00) | (elems & 0x0000ff) << 16
|
rgb = (elems & 0xff0000) >> 16 | (elems & 0x00ff00) | (elems & 0x0000ff) << 16
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['BGR#%06x' % rgb]])
|
||||||
|
|
||||||
self.put(self.ss_packet, samplenum, self.out_ann,
|
|
||||||
[2, ['RGB#%06x' % rgb]])
|
|
||||||
else:
|
else:
|
||||||
if self.options['colors'] == 'GRBW':
|
if self.options['colors'] == 'GRBW':
|
||||||
rgb = (elems & 0xff000000) >> 16 | (elems & 0x00ff0000) | (elems & 0x0000ff00) >> 8
|
rgb = (elems & 0xff000000) >> 16 | (elems & 0x00ff0000) | (elems & 0x0000ff00) >> 8
|
||||||
w = (elems & 0x000000ff)
|
w = (elems & 0x000000ff)
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['GRB#%06x W#%02x' % (rgb, w)]])
|
||||||
elif self.options['colors'] == 'RGBW':
|
elif self.options['colors'] == 'RGBW':
|
||||||
rgb = (elems & 0xffffff00) >> 8
|
rgb = (elems & 0xffffff00) >> 8
|
||||||
w = (elems & 0x000000ff)
|
w = (elems & 0x000000ff)
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['RGB#%06x W#%02x' % (rgb, w)]])
|
||||||
elif self.options['colors'] == 'WRGB':
|
elif self.options['colors'] == 'WRGB':
|
||||||
rgb = (elems & 0x00ffffff)
|
rgb = (elems & 0xffffff00) >> 8
|
||||||
w = (elems & 0xff000000) >> 32
|
w = (elems & 0x000000ff)
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['W#%02x RGB#%06x ' % (w, rgb)]])
|
||||||
elif self.options['colors'] == 'LBGR':
|
elif self.options['colors'] == 'LBGR':
|
||||||
rgb = (elems & 0x0000ff00) | (elems & 0x00ff0000) >> 16 | (elems & 0x000000ff) << 16
|
rgb = (elems & 0x0000ff00) | (elems & 0x00ff0000) >> 16 | (elems & 0x000000ff) << 16
|
||||||
w = (elems & 0xff000000) >> 32
|
w = (elems & 0xff000000) >> 24
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['L#%02x BGR#%06x ' % (w, rgb)]])
|
||||||
elif self.options['colors'] == 'LGRB':
|
elif self.options['colors'] == 'LGRB':
|
||||||
rgb = (elems & 0x000000ff) | (elems & 0x00ff0000) >> 8 | (elems & 0x0000ff00) << 8
|
rgb = (elems & 0x000000ff) | (elems & 0x00ff0000) >> 8 | (elems & 0x0000ff00) << 8
|
||||||
w = (elems & 0xff000000) >> 32
|
w = (elems & 0xff000000) >> 24
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['L#%02x GRB#%06x ' % (w, rgb)]])
|
||||||
elif self.options['colors'] == 'LRGB':
|
elif self.options['colors'] == 'LRGB':
|
||||||
rgb = (elems & 0x00ffffff)
|
rgb = (elems & 0x00ffffff)
|
||||||
w = (elems & 0xff000000) >> 32
|
w = (elems & 0xff000000) >> 24
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['L#%02x RGB#%06x ' % (w, rgb)]])
|
||||||
elif self.options['colors'] == 'LRBG':
|
elif self.options['colors'] == 'LRBG':
|
||||||
rgb = (elems & 0x00ff0000) | (elems & 0x0000ff00) >> 8 | (elems & 0x000000ff) << 8
|
rgb = (elems & 0x00ff0000) | (elems & 0x0000ff00) >> 8 | (elems & 0x000000ff) << 8
|
||||||
w = (elems & 0xff000000) >> 32
|
w = (elems & 0xff000000) >> 24
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['L#%02x RBG#%06x ' % (w, rgb)]])
|
||||||
elif self.options['colors'] == 'LGBR':
|
elif self.options['colors'] == 'LGBR':
|
||||||
rgb = (elems & 0x00ffff00) >> 8 | (elems & 0x000000ff) << 16
|
|
||||||
w = (elems & 0xff000000) >> 32
|
|
||||||
elif self.options['colors'] == 'LBRG':
|
|
||||||
rgb = (elems & 0x00ff0000) >> 16 | (elems & 0x0000ffff) << 8
|
rgb = (elems & 0x00ff0000) >> 16 | (elems & 0x0000ffff) << 8
|
||||||
w = (elems & 0xff000000) >> 32
|
w = (elems & 0xff000000) >> 24
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
self.put(self.ss_packet, samplenum, self.out_ann,
|
[2, ['L#%02x GRB#%06x ' % (w, rgb)]])
|
||||||
[2, ['RGB#%06x #%02x' % (rgb, w)]])
|
elif self.options['colors'] == 'LBRG':
|
||||||
|
rgb = (elems & 0x00ffff00) >> 8 | (elems & 0x000000ff) << 16
|
||||||
|
w = (elems & 0xff000000) >> 24
|
||||||
|
self.put(self.ss_packet, samplenum, self.out_ann,
|
||||||
|
[2, ['L#%02x BRG#%06x ' % (w, rgb)]])
|
||||||
|
|
||||||
|
|
||||||
self.bits = []
|
self.bits = []
|
||||||
self.ss_packet = samplenum
|
self.ss_packet = samplenum
|
||||||
|
Loading…
x
Reference in New Issue
Block a user