Hello Sam,

Thanks for the change! I would appreciate if you could open a pull
request for https://github.com/sigrokproject/libsigrokdecode and
if you have .sr files that contain RGBW communication, also against
sigrok-dumps. That way, Uwe has less work to do and the project as a
whole can progress more quickly.

If you really want to make us happy, adding your change to the PD unit
test suite would also be awesome: 
https://github.com/sigrokproject/sigrok-test

All the best
 -Soeren


On Thu, 2020-06-04 at 10:22 +0200, Sxxx Mxxx wrote:
>  Hi,
> 
> thank you for providing the decoder for the WS281x protocol.
> As there are now not only RGB but also RGBW stripes commonly
> available I
> would propose a small improvement: Add an option to switch between 3
> and 4
> bytes.
> The change is pretty trivial and straightforward.
> 
> Hope this helps & best regards
> Sam
> 
> Attached diff:
> 48,51d47
> <     options = (
> <         {'id': 'type', 'desc': 'RGB or RGBW', 'default': 'RGB',
> <          'values': ('RGB', 'RGBW')},
> <     )
> 73,88c69,75
> <         if self.options['type'] == 'RGB':
> <             if len(self.bits) == 24:
> <                 grb = reduce(lambda a, b: (a << 1) | b, self.bits)
> <                 rgb = (grb & 0xff0000) >> 8 | (grb & 0x00ff00) << 8
> |
> (grb & 0x0000ff)
> <                 self.put(self.ss_packet, samplenum, self.out_ann,
> <                          [2, ['#%06x' % rgb]])
> <                 self.bits = []
> <                 self.ss_packet = None
> <         else:
> <             if len(self.bits) == 32:
> <                 grb = reduce(lambda a, b: (a << 1) | b, self.bits)
> <                 rgb = (grb & 0xff0000) >> 8 | (grb & 0x00ff00) << 8
> |
> (grb & 0xff0000ff)
> <                 self.put(self.ss_packet, samplenum, self.out_ann,
> <                          [2, ['#%08x' % rgb]])
> <                 self.bits = []
> <                 self.ss_packet = None
> ---
> >         if len(self.bits) == 24:
> >             grb = reduce(lambda a, b: (a << 1) | b, self.bits)
> >             rgb = (grb & 0xff0000) >> 8 | (grb & 0x00ff00) << 8 |
> > (grb &
> 0x0000ff)
> >             self.put(self.ss_packet, samplenum, self.out_ann,
> >                      [2, ['#%06x' % rgb]])
> >             self.bits = []
> >             self.ss_packet = None
> 
> _______________________________________________
> sigrok-devel mailing list
> sigrok-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sigrok-devel



_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to