uart: half stopbit support, speedup and bit boundaries refinement#91
Open
sespivak wants to merge 2 commits into
Open
uart: half stopbit support, speedup and bit boundaries refinement#91sespivak wants to merge 2 commits into
sespivak wants to merge 2 commits into
Conversation
6646578 to
e9cd641
Compare
fc7e7ab to
2a545b9
Compare
271562f to
aa4323d
Compare
- UART-related tests from sigrok-test now run about ~88% faster. - Reduced amount of IDLE events by doubling of IDLE period of each frame since 3rd. Max IDLE period equals samplerate, thus IDLE events min frequency is 1 Hz. This approach decreases function calls up to 10 times at idle periods, depends on data sparsity and baudrate selected. - Calculations of constants in start() to avoid unnecessary overhead at runtime. - Start and end of signal boundaries refined. There is no overlap in data bits annotations now. Also packets boundaries are frame boundaries, because packet transmission actually starts at start bit and ends with stop bit. - New option put_sample_points added to put sample points at dedicated annotation rows with corresponding signal values. - Options reading moved from runtime to init time for performance, a state machine used to control the entire decoding process. - Support of half stopbit values 0.5 and 1.5. - Interrupt receiving stop bits on stop bit error and put stopbit error in annotation. - Put data packets to python output. - Put actual and expected signal at parity error to python output instead of dummy tuple.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
put_sample_pointsadded to put sample points at dedicated annotation rows with corresponding signal values.Speed measurements were made using a set of tests:
Average time without patches on my pc (i5-4250U):
real 2m47s
Average time with patch:
real 1m29s
So the speedup is around 88%. If the dataset is sparse, the speedup is even greater, up to 400%.
This patch based on PR #90 and contains 2 commits - 1 old from #90 and 1 new, described here.