The logic analyzer has always been an important development tool in my work, helping me solve various bugs and design and implement a complete Bluetooth protocol stack (https://gitee.com/gaoheyang). There are many logic analysis products on the market, such as Saleae, Dreamsourcelab, ZLG, Kingst, and ZhiDianYuanZi, etc. However, whether it is the hardware performance or the performance of the upper computer software, the operational logic, or the aesthetics, they all fall short. In my experience, Saleae is the best choice. Not only is its hardware performance stable and its functionality comprehensive, but it also has a high aesthetic appeal, and the upper computer software operates nicely with a beautiful interface. The upper computer software of Saleae is indeed impressive. I have always wanted to use QT to mimic it, but I have never been able to break through until recently when I made a new breakthrough and finally created the logic waveform display control. The challenges of the logic analyzer control are as follows:
- 1. Time axis: It must support zooming, and the time must be displayed correctly and automatically updated based on the zoom level.
- 2. Waveform display: How to handle multiple channels and render a large amount of data without lag.
- 3. Data acquisition: How to quickly collect data without affecting UI rendering.
- 4. Arbitrary repositioning of channels: It should support animations without lag.
Currently, the basic functionality has been implemented, and the effect is as follows: