-
Notifications
You must be signed in to change notification settings - Fork 119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Serial encoding support #263
base: master
Are you sure you want to change the base?
Conversation
Wow, this looks really solid! The only complaint I could possibly make is that it too perfectly integrates into my own ugly code. :P Before I merge this into Specifically:
If you're unsure I can quickly recompile from here before this patch goes through. Thanks again for sharing your work with everyone! Cheers, |
Indeed that is correct. Also However, I wasn't paying attention on the (release) |
Perfect! I'll test on Windows soon and then push the patch. Thanks again! |
7b79da5
to
752b488
Compare
In this pull request, I will like to bring serial encoding support for Espotek/Labrador.
This topic has been discussed in a previous issue (#239) but instead of using GPIOs, I implemented it using the Signal Generator on CH1.
As Signal Generators make use of the hardware DMA support for playing waveforms repetitively, I extend this functionality for playing one-time waveforms. This way, a character pressed on the keyboard is sent to the hardware for it to be played once.
User interface wise, a single checkbox ("Serial Encoding") appears under Logic Analyzer CH1 and clicking it opens a new (one row) text-box. Everything written here will be serially transmitted over Signal Gen CH1. It also hides waveform, frequency and offset input parameters on Sig Gen CH1 since they are not used for serial communication.
I also extended the vendor request commands for sending the serial data to the hardware over USB.
Finally, I also added a filter for ANSI escape codes. After successfully controlling a raspberry pi4 hardware, I came to see ANSI escape codes being received and they were not been interpreted at our side. I then decided to filter them out before reaching the display buffer.
Note:
Tested on raspberry pi5 hardware + rpi OS