Hi all,
Basically, I made a capture of a serial-type signal with Saleae Logic, digital
mode, 5 MS/s. Exported this to .vcd, imported into Pulseview (PulseView
0.5.0-git-58cd5b5)
Then I use a custom protocol decoder in Python; where I have something like
this:
def decode(self):
if not self.samplerate:
raise SamplerateError('Cannot decode without samplerate.')
while True:
if self.state == 'FIND BREAK':
print("prewait: run_start {} samplenum
{}".format(self.run_start, self.samplenum)
# wait for falling edge
(mysig,) = self.wait({0: 'l'})
# after wait has stopped blocking, condition is found, and
samplenum is set
self.run_start = self.samplenum
print("midwait: run_start {} samplenum
{}".format(self.run_start, self.samplenum)
....
... and eventually, I run into this printout:
prewait: run_start 1823675000 samplenum 1823675000
midwait: run_start -1467259896 samplenum -1467259896
So, I'm getting a negative self.samplenum in the protocol decoder; apparently
there are 4 bytes allocated for this integer, and it wrapped. And thus, I get
no decoded fields drawn in Pulseview from this point on (this point corresponds
to approx 2828 ms in my capture)
What can I do to fix this?
Thanks!
_______________________________________________
sigrok-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sigrok-devel