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
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to