Conversation
Update to latest version
Updated SCPI commands to latest version
There was a problem hiding this comment.
Summary of Changes
Hello @Lightsaver7, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request updates the Red Pitaya driver to enhance compatibility with the latest OS version (2.05-37) and improve SCPI communication. Key changes include refactoring the redpitaya_scpi.py library for more robust data handling and error checking, removing an obsolete immediate trigger function, and adding a new command to trigger the signal generator. The updates aim to modernize the driver and align it with current Red Pitaya firmware capabilities.
Highlights
- Red Pitaya OS Compatibility: The driver has been updated to work seamlessly with Red Pitaya OS 2.05-37, with a note that it will no longer be compatible with older 1.04 OS versions.
- Enhanced SCPI Communication: The redpitaya_scpi.py library has undergone significant refactoring to improve the reliability of text and arbitrary data reception (rx_txt, rx_arb) and transmission (tx_txt), including the introduction of new methods for integrated error checking.
- Removal of Obsolete Trigger Functionality: The "immediate trigger" option for acquisition has been removed from the Signal-RedPitaya_STEMlab module, streamlining the trigger settings.
- New Generator Trigger Command: A specific command (SOUR{0}:TRig:INT) has been added to programmatically trigger the signal generator when an internal trigger source is selected.
- SCPI Command Syntax Modernization: Several SCPI commands across both Scope and Signal modules have been updated to their full, standardized forms (e.g., ACQ:DATA:UNITS to ACQ:DATA:Units, ACQ:TRIG to ACQ:TRig, SYST:VERS to SYSTem:VERS).
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Code Review
This pull request updates the Red Pitaya drivers for OS version 2.05-37. The changes are a good step towards supporting the new OS version. However, there are several areas for improvement. A significant maintainability issue is the duplication of the redpitaya_scpi.py library in both the Scope and Signal driver directories; this should be refactored into a shared library. I've also identified some critical and high-severity issues within this library, including a potential infinite loop, use of exit(1) which can crash the calling application, and a duplicated method definition that constitutes a bug. Please see the detailed comments for suggestions on how to fix these issues.
List of updates:
The driver must be tested before fully merged with the main branch!
My questions (relate to lines labelled with "#!":
Let me know if you want to keep the 1.04 OS compatibility, but I would suggest moving to 2.00 OS (Red Pitaya OS version).