1
Client software / VHDL RLE updates not supported by client
15-channel and 7-channel RLE would work analogous to the 31-channel RLE that we have now.
31-channel RLE: (Already implemented in the client.)
Channels 0 to 30 are used for samples and run-lengths. Channel 31 is the RLE flag (=0 for a sample, =1 for a run-length).
This mode can encode runs of up to 2G samples, which is actually a problem, because signals with little change in them could take hours, days, weeks or years to fully record depending on the sample rate. I'm going to add a timer that stops the RLE recording after a certain number of seconds (the timer could be made user configurable).
15-channel RLE:
Channels 0 to 14 are used for samples and run-lengths. Channel 15 is the RLE flag (=0 for a sample, =1 for a run-length).
This mode is useful when you're sampling 15 or fewer channels and you have no runs significantly longer than 32k samples.
7-channel RLE:
Channels 0 to 6 are used for samples and run-lengths. Channel 7 is the RLE flag (=0 for a sample, =1 for a run-length).
This mode is useful when you're sampling 7 or fewer channels and you have no runs significantly longer than 127 samples.
Edit: Attached a test bitstream.