Releases: slaclab/rogue
Minor Release v6.6.0
Pull Requests Since v6.5.0
Bug
- #1064 - Update operation of local variables
- #1066 - Don't allow default set to RO register to result in stale state
Enhancement
- #1049 - ESROGUE-699 - Support (u)int8 and (u)int16 Block numpy array access
- #1062 - updating UdpRssiPack to updating the RSSI configuration before the RSSI connection is started
- #1064 - Update operation of local variables
- #1067 - Add PRBS software transmit rate limit
- #1060 - Disable verify if overlapping variable is RO, WO or has verify disabled
- #1065 - Disable append mode in file writer
Unlabeled
- #1061 - Documentation moved from anaconda to miniforge + "small build" CI updates
- #1059 - Rogue debug UI improvements
- #1056 - adding instructions for installing rogue with miniforge
- #1050 - Documentation and CI Updates
- #1058 - ESROGUE-701 - Don't Use Spinboxes In DeviceTree GUI Widget
- #1063 - Sync'ing up headers to latest aes-stream-driver (6.6.2)
- #1055 - Allow array variables to be set from yaml by a dict of index/value pairs
- #1048 - rim:Emulator - renaming MAP_TYPE to EMULATE_MAP_TYPE
- #1052 - Update README.md to include DOE Code Reference
Pull Request Details
rim:Emulator - renaming MAP_TYPE to EMULATE_MAP_TYPE
Author: | Larry Ruckman [email protected] |
Date: | Thu Mar 13 08:33:43 2025 -0700 |
Pull: | #1048 (3 additions, 3 deletions, 2 files changed) |
Branch: | slaclab/MAP_TYPE-patch |
Notes:
Description
- a conflicting definition exists in mman-linux.h where #define MAP_TYPE 0x0f
#define MAP_TYPE 0x0f /* Mask for type of mapping. */
ESROGUE-699 - Support (u)int8 and (u)int16 Block numpy array access
Author: | Ryan Herbst [email protected] |
Date: | Tue Apr 8 14:14:40 2025 -0700 |
Pull: | #1049 (257 additions, 134 deletions, 4 files changed) |
Branch: | slaclab/block-int8-16 |
Labels: | enhancement |
Notes:
Description
This change allows
Block.set()
to be called withuint8
,uint16
,int8
andint16
numpy arrays.
Previously only 32 and 64 bit integer arrays were supported.It also changes
Block.get()
to return a numpy array with a type that is sized to the underlyingVariable.valueBits
size.
valueBits numpy type 1-8 (u)int8 9-16 (u)int16 17-32 (u)int32 >32 (u)int64 JIRA
Documentation and CI Updates
Author: | Larry Ruckman [email protected] |
Date: | Thu Mar 13 07:13:39 2025 -0700 |
Pull: | #1050 (49 additions, 34 deletions, 4 files changed) |
Branch: | slaclab/ruck314-patch-1 |
Notes:
Description
- Updating anaconda install instructions for rogue v6.5.0 (latest release)
- Updating petalinux install instructions for rogue v6.5.0 (latest release)
- Updating build from source instructions for Ubuntu 2022.04 and adding Rocky 9 install packages
- Update rogue_ci.yml to use max available CPU cores when building source code
Update README.md to include DOE Code Reference
Author: | Larry Ruckman [email protected] |
Date: | Mon Mar 24 11:49:31 2025 -0700 |
Pull: | #1052 (3 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/ruck314-patch-1 |
Notes:
Description
- Good practice to cite this reference in the README
Allow array variables to be set from yaml by a dict of index/value pairs
Author: | Larry Ruckman [email protected] |
Date: | Fri Apr 4 09:11:07 2025 -0700 |
Pull: | #1055 (6 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/sparse-array-var-yml |
Issues: | #1055 |
Notes:
Description
Previously, when setting an array Variable from YAML, it had to contain a complete list of all array values.
ArrayVariable: '[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]'Now the array can be configured sparsely by specifying a set of index/value pairs for the array
ArrrayVariable: 0: 100 10: 200 31: 300
adding instructions for installing rogue with miniforge
Author: | Benjamin Reese [email protected] |
Date: | Mon Mar 31 11:17:18 2025 -0700 |
Pull: | #1056 (103 additions, 1 deletions, 2 files changed) |
Branch: | slaclab/Miniforge3 |
Notes:
Description
ESROGUE-701 - Don't Use Spinboxes In DeviceTree GUI Widget
Author: | Larry Ruckman [email protected] |
Date: | Mon Apr 7 15:56:22 2025 -0700 |
Pull: | #1058 (1 additions, 12 deletions, 1 files changed) |
Branch: | slaclab/esrogue-701-no-spinbox |
Jira: | https://jira.slac.stanford.edu/issues/esrogue-701-no-spinbox |
Notes:
Description
- We never want to use spinboxes in the PyDM debug tree
Rogue debug UI improvements
Author: | Larry Ruckman [email protected] |
Date: | Mon Mar 31 13:10:09 2025 -0700 |
Pull: | #1059 (100 additions, 24 deletions, 1 files changed) |
Branch: | slaclab/pr-rogue-ui-improvements |
Issues: | #1054 |
Notes:
Description
- Added an "Offset:BitOffset" column to the debug UI displaying register offsets relative to their parent
- Added actions to the context menu to allow toggling columns, copying text for current item, and copying the path of the selected row.
- Slight cleanup to the debug_tree.py code
Resubmitted #1054 as a branch so CI will actually trigger.
Disable verify if overlapping variable is RO, WO or has verify disabled
Author: | Larry Ruckman [email protected] |
Date: | Mon Apr 7 12:52:32 2025 -0700 |
Pull: | #1060 (20 additions, 0 deletions, 2 files changed) |
Branch: | slaclab/verify_mask |
Labels: | enhancement |
Notes:
Disable verify if overlapping variable is RO, WO or has verify disabled.
Documentation moved from anaconda to miniforge + "small build" CI updates
Author: | Larry Ruckman [email protected] |
Date: | Wed Apr 2 09:46:47 2025 -0700 |
Pull: | #1061 (41 additions, 149 deletions, 15 files changed) |
Branch: | slaclab/anaconda-depreciation |
Notes:
Description
- We're updating our instructions to use Miniforge instead of Anaconda, as it offers more flexible usage terms.
- Migrating the "small build" CI from Ubuntu 20.04 to Ubuntu 24.04
- Ubuntu 20.04 LTS runner will be removed on 2025-04-15. For more details, see actions/runner-images#11101
updating UdpRssiPack to updating the RSSI configuration before the RSSI connection is started
Author: | Ryan Herbst [email protected] |
Date: | Tue Apr 8 13:41:38 2025 -0700 |
Pull: | #1062 (56 additions, 24 deletions, 1 files changed) |
Branch: | slaclab/ESROGUE-692-diff-approach |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-692-diff-approach |
Labels: | enhancement |
Notes:
Description
- Give the user the ability to tune the RSSI configuration before the RSSI connection is started
- This is useful for debugging or supporting up to 256 segments at start of a connection for a "long latency" connection.
Example
# Create the ETH interface @ IP Address = ip self.rudp[i] = pr.protocols.UdpRssiPack( name = f'SwRudpClient[{i}]', host = ip, port = 8192+i, packVer = 2, jumbo = False, defaults={'locMaxCumAck': 1}, # your custom override )
Sync'ing up headers to latest aes-stream-driver (6.6.2)
Author: | Larry Ruckman [email protected] |
Date: | Mon Apr 7 13:04:57 2025 -0700 |
Pull: | #1063 (6 additions, 6 deletions, 1 files changed) |
Branch: | slaclab/aes-stream-driver-header-update |
Notes:
Description
- Update DmaDriver.h to match latest aes-stream-driver (6.6.2)
- Confirmed that there was no changes to AxisDriver.h since last update
Update operation of local variables
Author: | Larry Ruckman [email protected] |
Date: | Wed Apr 9 18:15:11 2025 -0700 |
Pull: | #1064 (42 additions, 35 deletions, 5 files changed) |
Branch: | slaclab/local_var |
Labels: | bug, enhancement |
Notes:
This PR addresses a number of issues related to the operation of local variables.
First, it adds min/max enforcement on local variables in the underlying LocalBlock class.
Second, it generates an error if a us...
Minor Release v6.5.0
Pull Requests Since v6.4.4
Enhancement
- #1047 - Create helper class for setting up a remote command memory bridge
- #1045 - Add option for raw data file writes
Unlabeled
- #1040 - Re-synchronizing AxisDriver.h & DmaDriver.h
- #1046 - Update rogue_ci.yml to check for tabs
- #1043 - migrating CI from ubuntu-20.04 to ubuntu-24.04
- #1042 - Ci whitespace checker
- #1044 - Update _Fifo.py
Pull Request Details
Re-synchronizing AxisDriver.h & DmaDriver.h
Author: | Larry Ruckman [email protected] |
Date: | Fri Jan 31 08:42:08 2025 -0800 |
Pull: | #1040 (24 additions, 25 deletions, 2 files changed) |
Branch: | slaclab/ruck314-patch-1 |
Notes:
Description
- Synchronizing the copied include files from aes-stream-drivers
- No behavioral changes made, only formatting
Ci whitespace checker
Author: | Larry Ruckman [email protected] |
Date: | Sat Feb 15 08:22:44 2025 -0800 |
Pull: | #1042 (7 additions, 0 deletions, 1 files changed) |
Branch: | slaclab/ci-whitespace-checker |
Notes:
Description
- This will prevent users from merging trailing white spaces in their pull requests
migrating CI from ubuntu-20.04 to ubuntu-24.04
Author: | Larry Ruckman [email protected] |
Date: | Sat Feb 15 08:06:31 2025 -0800 |
Pull: | #1043 (4 additions, 4 deletions, 2 files changed) |
Branch: | slaclab/github-ci/ubuntu-24.04 |
Notes:
Description
- The Ubuntu 20.04 runner image will be fully unsupported by April 1, 2025
- Newer doxygen expects expects a two-element tuple or list for intersphinx_mapping
Update _Fifo.py
Author: | Larry Ruckman [email protected] |
Date: | Sat Feb 15 07:57:08 2025 -0800 |
Pull: | #1044 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/ruck314-patch-1 |
Notes:
Description
- Add '' default to description so it is optional
Add option for raw data file writes
Author: | Larry Ruckman [email protected] |
Date: | Tue Feb 18 20:44:30 2025 -0800 |
Pull: | #1045 (47 additions, 12 deletions, 4 files changed) |
Branch: | slaclab/raw_file |
Labels: | enhancement |
Notes:
Add option for raw data file writes. This eliminates the need to create per-project custom raw writers which seem to be used in a number of projects.
Update rogue_ci.yml to check for tabs
Author: | Larry Ruckman [email protected] |
Date: | Thu Feb 20 18:49:41 2025 -0800 |
Pull: | #1046 (9 additions, 2 deletions, 2 files changed) |
Branch: | slaclab/team-never-tabs |
Notes:
Description
- Assert error in the workflow if there are tabs (instead of spaces)
Create helper class for setting up a remote command memory bridge
Author: | Larry Ruckman [email protected] |
Date: | Thu Feb 20 22:20:16 2025 -0800 |
Pull: | #1047 (260 additions, 2 deletions, 6 files changed) |
Branch: | slaclab/rem_cmd |
Labels: | enhancement |
Notes:
This PR creates the OsCommandMemorySlave class which enables the creation of remote operating system based transactions over a memory interface.
Examples of its usage are included here in the examples/_OsMemSlave and associated examples/_OsMemMaster classes.
Translation between the bytes transferred over the memory interface and real python variables used in the operating system classes are handled using the Model class similar to their usage in Remote Variables.
Patch Release v6.4.4
Pull Requests Since v6.4.3
Unlabeled
- #1037 - Fix some clang-tidy warnings
- #1032 - Update petalinux.rst
- #1039 - Bug fix _DataReceiver.py
- #1038 - Update conf.py
- #1034 - Use a better compare for DataReceiver.RxEnable
- #1033 - Update LICENSE.txt
Pull Request Details
Update petalinux.rst
Author: | Larry Ruckman [email protected] |
Date: | Fri Jan 24 16:25:59 2025 -0800 |
Pull: | #1032 (23 additions, 16 deletions, 1 files changed) |
Branch: | slaclab/ruck314-patch-1 |
Notes:
Description
- Updating the documentation for Petalinux 2024.2
Update LICENSE.txt
Author: | Larry Ruckman [email protected] |
Date: | Mon Jan 6 14:29:49 2025 -0800 |
Pull: | #1033 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/ruck314-patch-2 |
Notes:
Description
- Updating for CY2025
Use a better compare for DataReceiver.RxEnable
Author: | Larry Ruckman [email protected] |
Date: | Sat Jan 25 11:44:59 2025 -0800 |
Pull: | #1034 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/bool-fix |
Notes:
Description
This fixes a quirk where setting
DataReceiver.RxEnable.set(0)
would enable frame reception.RxEnable
expects a boolean, but will accept an type and then exhibit this behavior. The key is to comparenot RxEnable.value()
instead ofRxEnable.value() is False
.
Fix some clang-tidy warnings
Author: | Larry Ruckman [email protected] |
Date: | Tue Jan 14 16:06:50 2025 -0800 |
Pull: | #1037 (57 additions, 57 deletions, 13 files changed) |
Branch: | slaclab/pr-some-cleanup |
Notes:
Description
Ok, let's try this again...
Some cleanup of warnings reported by clang-tidy. Most are relatively small performance "problems" involving std::string being passed by value.
It did find a buggy sizeof in
src/rogue/protocols/xilinx/XvcConnection.cpp
though.
Update conf.py
Author: | Larry Ruckman [email protected] |
Date: | Sat Jan 25 10:03:17 2025 -0800 |
Pull: | #1038 (2 additions, 2 deletions, 1 files changed) |
Branch: | slaclab/ruck314-patch-2 |
Notes:
Description
- Updating copyright for 2025
Bug fix _DataReceiver.py
Author: | Larry Ruckman [email protected] |
Date: | Mon Jan 27 15:35:41 2025 -0800 |
Pull: | #1039 (2 additions, 2 deletions, 1 files changed) |
Branch: | slaclab/ruck314-patch-1 |
Issues: | #1023 |
Notes:
Description
- Accidentally set to "RO" in #1023
- The intent of this variable to give application a mechanism for polling for when the data is ready then re-arm it by setting Update.Set(False)
- Making this variable to "RO" breaks existing application code
Patch Release v6.4.3
Pull Requests Since v6.4.2
Bug
- #1031 - Fix boost variable in both rogue CmakeLists and external library RogueConfig template
Unlabeled
- #1028 - cpplint v2 - linter fix
- #1027 - ESROGUE-684 - Frame.getNumpy now allows user defined data type
- #1030 - Add setup_rogue.fish for fish shell
Pull Request Details
ESROGUE-684 - Frame.getNumpy now allows user defined data type
Author: | Ryan Herbst [email protected] |
Date: | Wed Dec 4 20:15:23 2024 -0800 |
Pull: | #1027 (92 additions, 11 deletions, 2 files changed) |
Branch: | slaclab/get-numpy |
Notes:
Description
Changes to
Frame.getNumpy()
The
Frame.getNumpy()
method now takes an additionaldtype
argument, which allows a numpy type to be specified for the returned array.array = frame.getNumpy(0, frame.getPayload(), np.uint32)Additionally, the
getNumpy()
method now has default arguments for all parametersoffset = 0 count = 0, dtype = np.uint8
Allowing for calls such as
# Read the entire frame into a np.uint8 array array = frame.getNumpy() # Read the entire frame into a np.uint32 array array = frame.getNumpy(dtype=np.uint32)The
count
argument defaults to 0, which functionally will return the entire array starting atoffset
.The
offset
andcount
parameters are still specified in bytes, not in the dtype size.Other changes
The
offset
argument ofFrame.readPy()
andFrame.writePy()
has also been given a default of 0 when called from python.A new
Frame.getBa()
method has been added that will allocate the bytearray internally and return it. This makes things a bit more concise in python when reading from a Frame.# New ba = frame.getBa() # Create a bytearray, fill it, and return it #Old ba = bytearray(frame.getPayload()) frame.read(ba)The
getBa()
method takes anoffset
andcount
which function the same as ingetNumpy()
with the same defaults.Also, a new
Frame.getMemoryview()
method has been added that allocates a bytearray but returns it as amemoryview
. This allows for efficient slicing of the frame data without any copying. In most cases where copyless slicing is needed, agetNumpy()
would be preferred, butgetMemoryview()
is useful for efficiently parsing complex header structures.memory_view = frame.getMemoryview() # Parse the header (4 bytes), length (2 bytes), and checksum (2 bytes) header, length, checksum = struct.unpack_from('IHH', memory_view, 0)
cpplint v2 - linter fix
Author: | Benjamin Reese [email protected] |
Date: | Mon Nov 4 10:38:57 2024 -0800 |
Pull: | #1028 (166 additions, 113 deletions, 51 files changed) |
Branch: | slaclab/linter-fix |
Notes:
Description
- NOLINT for the C-based drivers
- ./include/rogue/protocols/xilinx/JtagDriver.h:213: Add #include for FILE [build/include_what_you_use] [4]
- Add #include for XXXXXX [build/include_what_you_use] [4]
- Add #include for XXXXXX [build/include_what_you_use] [4]
- Using C-style cast. Use static_cast(...) instead [readability/casting] [4]
- Using deprecated casting style. Use static_cast<uint32_t>(...) instead [readability/casting] [4]
- Replace C header includes with C++ includes, rerun clang-format
Add setup_rogue.fish for fish shell
Author: | Larry Ruckman [email protected] |
Date: | Wed Dec 4 13:47:37 2024 -0600 |
Pull: | #1030 (27 additions, 1 deletions, 2 files changed) |
Branch: | JJL772/pr-fish-env |
Notes:
Description
Adds setup_rogue.fish for the fish shell
Fix boost variable in both rogue CmakeLists and external library RogueConfig template
Author: | Ryan Herbst [email protected] |
Date: | Wed Dec 4 19:47:00 2024 -0800 |
Pull: | #1031 (2 additions, 2 deletions, 2 files changed) |
Branch: | slaclab/cmake_boost |
Labels: | bug |
Notes:
Fix boost variable in both rogue CmakeLists and external library RogueConfig template
Patch Release v6.4.2
Pull Requests Since v6.4.1
Enhancement
- #1024 - Improve variable update performance
Unlabeled
- #1026 - ESROGUE-682 - Make Block.set() with numpy array work with proper array strides
Pull Request Details
Improve variable update performance
Author: | Ryan Herbst [email protected] |
Date: | Fri Sep 27 13:01:50 2024 -0700 |
Pull: | #1024 (50 additions, 19 deletions, 3 files changed) |
Branch: | slaclab/ESROGUE-683 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-683 |
Labels: | enhancement |
Notes:
This PR improves the variable update performance by making the following changes:
Do not always check for the existence of a thread specific UpdateTracker object in the tracking list. This check requires an expensive dictionary lookup which previously occurred within a lock context. Instead the access is called as if the entry exists and if this is a new thread the resulting exception is caught and the object is then created inside the necessary lock. This change occurs in both the entry into the updateGroup context and more importantly in the _queueUpdates call.
Take advantage of the fact that each UpdateTrack instance is per thread and remove any locking around the update of this object.
In the check() call in the UpdateTrack first check the context counter and update period. This check is not expensive as compared to checking the variable list length, which now only occurs when the count and period tests pass.
Change the variable listener processing to only occur when the update worker processes the list. In the previous version, every listener for a variable was added with each set or get call which was not necessary. In the new code the listeners are first added to the existing update list before the update calls are made.
ESROGUE-682 - Make Block.set() with numpy array work with proper array strides
Author: | Larry Ruckman [email protected] |
Date: | Wed Oct 16 09:11:46 2024 -0700 |
Pull: | #1026 (70 additions, 16 deletions, 2 files changed) |
Branch: | slaclab/ESROGUE-682 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-682 |
Notes:
Description
Previously the
Block.setUIntPy()
and related methods assumes a contiguous array. This would break with calls such asarr = np.array([0,1,2,3,4,5]) var.set(np.arr[::2])
All of the underlying
set()
methods have been updated to properly iterate the numpy array.
Patch Release v6.4.1
Pull Requests Since v6.4.0
Bug
- #1017 - Fix var bytes calculation to support list variables which span transaction size
- #1020 - Fix rogue template for project libraries
- #1021 - Fix RSSI sgement size calculation
Enhancement
- #1018 - Add ability to pull a list value out in a pydm widget
Unlabeled
Pull Request Details
Fix var bytes calculation to support list variables which span transaction size
Author: | Benjamin Reese [email protected] |
Date: | Wed Aug 28 10:28:30 2024 -0700 |
Pull: | #1017 (5 additions, 5 deletions, 3 files changed) |
Branch: | slaclab/block_alignment |
Labels: | bug |
Notes:
This fixes how varBytes is calculated for list varibles. This change is neccessary to support list variables where the first entry of a list is beyond the min transaction size.
This does require that all entries added to a listVariable (block of memory) use the same offset value and use the bitOffset to define the location of each value in the block of memory.
Add ability to pull a list value out in a pydm widget
Author: | Ryan Herbst [email protected] |
Date: | Wed Jul 31 12:25:07 2024 -0700 |
Pull: | #1018 (30 additions, 22 deletions, 10 files changed) |
Branch: | slaclab/ESROGUE-680 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-680 |
Labels: | enhancement |
Notes:
This add the ability to display a single list value in a pydm widget. Example channel value to achieve this is:
rogue://0/root.AxiVersion.TestListA/disp/3
There the last value is the index value.
There is a performance hit with this as the value has to be retrieved again to pull out the sliced value from the server:
def _updateVariable(self,path,varValue): if self._index != -1: varValue = self._node.getVariableValue(read=False, index=self._index)
Update petalinux.rst
Author: | Larry Ruckman [email protected] |
Date: | Fri Aug 16 19:56:19 2024 -0700 |
Pull: | #1019 (4 additions, 4 deletions, 1 files changed) |
Branch: | slaclab/ruck314-patch-1 |
Notes:
Description
- Updating instructions for rogue v6.4.0
Fix rogue template for project libraries
Author: | Ryan Herbst [email protected] |
Date: | Fri Aug 16 20:03:30 2024 -0700 |
Pull: | #1020 (4 additions, 6 deletions, 1 files changed) |
Branch: | slaclab/update_template |
Labels: | bug |
Notes:
This fixes the generated rogue cmake package used by project libraries.
Fix RSSI sgement size calculation
Author: | Ryan Herbst [email protected] |
Date: | Fri Aug 16 20:20:18 2024 -0700 |
Pull: | #1021 (3 additions, 3 deletions, 2 files changed) |
Branch: | slaclab/udp_segment_size |
Labels: | bug |
Notes:
The current segment size calculation does not include enough space for the RSSI header. This resulted in dropped packets when running with a 1500 byte MTU.
Make Rogue DataReceiver status Variables read-only
Author: | Larry Ruckman [email protected] |
Date: | Wed Aug 28 10:55:46 2024 -0700 |
Pull: | #1023 (5 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/data-receiver-ro |
Notes:
Description
FrameCount
,ErrorCount
,ByteCount
andUpdated
are now read only. This prevents them from being written in the GUI and from being dumped when saving a YAML configuration.The
Data
Variable has been added to the'NoConfig'
group to prevent it from being dumped when saving a YAML configuration.
Minor Release v6.4.0
Pull Requests Since v6.3.0
Bug
- #1016 - High byte fix
Unlabeled
- #1012 - Adding C++ linter to CI
- #1010 - updating docker and conda to source reusable YAML CI scripts
- #1014 - Fix minimum value for Int
Pull Request Details
updating docker and conda to source reusable YAML CI scripts
Author: | Larry Ruckman [email protected] |
Date: | Wed Jul 10 14:16:12 2024 -0700 |
Pull: | #1010 (12 additions, 85 deletions, 1 files changed) |
Branch: | slaclab/reusable-CI-yaml |
Notes:
Description
- Makes maintaining all these repos easier if they use the common YAML CI scripts for repetitive tasks
Adding C++ linter to CI
Author: | Larry Ruckman [email protected] |
Date: | Wed Jul 10 14:14:44 2024 -0700 |
Pull: | #1012 (1397 additions, 1549 deletions, 270 files changed) |
Branch: | slaclab/ESROGUE-554 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-554 |
Notes:
Description
- Improves the code quality by running the linter automatically for every commit via Github action
Fix minimum value for Int
Author: | Larry Ruckman [email protected] |
Date: | Fri Jul 19 17:23:33 2024 -0700 |
Pull: | #1014 (1 additions, 1 deletions, 1 files changed) |
Branch: | SEBv15/main |
Notes:
Description
pyrogue's integer type had it's minimum value set to
-(2**(width-1)-1)
. In two's complement it's actually-2**(width-1)
High byte fix
Author: | Larry Ruckman [email protected] |
Date: | Mon Jul 22 21:19:22 2024 -0700 |
Pull: | #1016 (6 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/high_byte_fix |
Labels: | bug |
Notes:
Fixes the high order byte value when performing reads from a list variable with index=-1.
Minor Release v6.3.0
Pull Requests Since v6.2.0
Bug
- #1007 - Fix bugs which did not allow array variables to share memory
- #1009 - Hot Fix: CMake and add memory emulate debug
- #1004 - bug fix for pydm/init.py
Enhancement
- #1009 - Hot Fix: CMake and add memory emulate debug
Unlabeled
- #1003 - Exposing the DMA's GIT Version and API Version to pyrogue variables
- #1002 - Fix CMake policy warnings
- #1006 - Update migration guide
- #1001 - Update rogue_ci.yml
- #1008 - Post-build step to remove egg files
Pull Request Details
Update rogue_ci.yml
Author: | Benjamin Reese [email protected] |
Date: | Tue May 28 13:19:33 2024 -0700 |
Pull: | #1001 (13 additions, 30 deletions, 1 files changed) |
Branch: | slaclab/ruck314-patch-1 |
Notes:
Description
- Updating CI to use the common
gen_release
workflow
Fix CMake policy warnings
Author: | Larry Ruckman [email protected] |
Date: | Thu Jun 13 14:46:05 2024 -0700 |
Pull: | #1002 (56 additions, 50 deletions, 3 files changed) |
Branch: | JJL772/apply-cmake-policies |
Notes:
Fix CMake policy warnings and upgrade CMake minimum version.
Description
Exposing the DMA's GIT Version and API Version to pyrogue variables
Author: | Larry Ruckman [email protected] |
Date: | Fri Jun 21 10:14:55 2024 -0700 |
Pull: | #1003 (234 additions, 17 deletions, 5 files changed) |
Branch: | slaclab/ESROGUE-608 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-608 |
Notes:
Description
- Required if you need diagnostics on the DMA driver's release version string and API version number
- bug fix for support a future DMA_VERSION>0x06 in the future
bug fix for pydm/init.py
Author: | Benjamin Reese [email protected] |
Date: | Tue May 28 13:08:27 2024 -0700 |
Pull: | #1004 (19 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/ESROGUE-600 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-600 |
Labels: | bug |
Notes:
Description
- Fixed the bug where CTRL+C and SIGTERM were not calling the root.stop() function while closing the GUI
Update migration guide
Author: | Larry Ruckman [email protected] |
Date: | Wed Jun 12 11:10:27 2024 -0700 |
Pull: | #1006 (67 additions, 8 deletions, 1 files changed) |
Branch: | slaclab/updateMigrationGuide |
Notes:
Description
Add
_rawWrite
and_rawRead
examples inmigration to v.6
guide.
Fix bugs which did not allow array variables to share memory
Author: | Ryan Herbst [email protected] |
Date: | Fri Jun 21 09:57:29 2024 -0700 |
Pull: | #1007 (304 additions, 198 deletions, 7 files changed) |
Branch: | slaclab/list_overlap |
Labels: | bug |
Notes:
Existing code had a bug where you could not create list variables which shared memory space. For example a list of 32 - 16 bit values in the lower 16-bits of each 32-bit memory location, co-located with a list of 32 - 16 bit values in the upper 16-bit of each 32-bit memory location.
This PR fixes this error and also cleans up some of the code related to mapping bytes.
Post-build step to remove egg files
Author: | Larry Ruckman [email protected] |
Date: | Fri Jun 21 10:32:14 2024 -0700 |
Pull: | #1008 (7 additions, 0 deletions, 1 files changed) |
Branch: | slaclab/ESROGUE-643 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-643 |
Notes:
Description
- Egg files from PIP install can mess up python environments.
- Make clean should remove the egg files.
Hot Fix: CMake and add memory emulate debug
Author: | Larry Ruckman [email protected] |
Date: | Tue Jun 25 12:38:43 2024 -0700 |
Pull: | #1009 (21 additions, 7 deletions, 3 files changed) |
Branch: | slaclab/cmake_fix |
Labels: | bug, enhancement |
Notes:
The existing Cmake script was broken in an anaconda environment.
This also adds additional debug for the memory emulator.
Minor Release v6.2.0
Pull Requests Since v6.1.4
Unlabeled
- #1000 - Re-run clang-format on C++ code
- #999 - AxiStreamDma: exposing all the TX/RX diagnostic ioctl() to python
- #995 - Document removal of legacy GUI
- #998 - Update petalinux.rst
- #997 - updating typeStr for Fixed/UFixed to match AMD naming convention
Pull Request Details
Re-run clang-format on C++ code
Author: | Benjamin Reese [email protected] |
Date: | Mon Apr 29 11:57:07 2024 -0700 |
Pull: | #1000 (537 additions, 523 deletions, 78 files changed) |
Branch: | slaclab/lint6 |
Notes:
Description
Add clang-format option to indent pre-processor directives. This style seems much clearer.
Also, this is the 1000th PRs This is a huge milestone. Thank you to everyone who has contributed.
Details
After updating .clang-format, the following commands were run
> find . -type f -name "*.cpp" -print0 | xargs -0 sed -i -E 's/<(rogue\/.*)>/\"\1\"/' > find . -type f -name "*.h" -print0 | xargs -0 sed -i -E 's/<(rogue\/.*)>/\"\1\"/' > clang-format -i **/*.cpp **/*.h
Document removal of legacy GUI
Author: | Larry Ruckman [email protected] |
Date: | Wed Mar 27 09:34:40 2024 -0700 |
Pull: | #995 (27 additions, 0 deletions, 1 files changed) |
Branch: | slaclab/gui-doc |
Issues: | #995 |
Notes:
Description
The Rogue documentation has been updated to note that the legacy GUI was removed in Rogue 6. Examples have been provided for how to migrate to the new PyDM GUI.
updating typeStr for Fixed/UFixed to match AMD naming convention
Author: | Larry Ruckman [email protected] |
Date: | Mon Apr 29 23:45:41 2024 +0700 |
Pull: | #997 (2 additions, 2 deletions, 1 files changed) |
Branch: | slaclab/ESROGUE-649 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-649 |
Notes:
Description
- This changes the 1st number in the fixed/ufixed typeStr from {self.bitSize} instead {self.bitSize-self.binPoint-1} to match the AMD naming convention
Update petalinux.rst
Author: | Larry Ruckman [email protected] |
Date: | Mon Apr 29 23:45:23 2024 +0700 |
Pull: | #998 (10 additions, 5 deletions, 1 files changed) |
Branch: | slaclab/ESROGUE-651 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-651 |
Notes:
Description
- migrating from distutils3(depreciated) to setuptools3
AxiStreamDma: exposing all the TX/RX diagnostic ioctl() to python
Author: | Larry Ruckman [email protected] |
Date: | Mon Apr 29 23:45:10 2024 +0700 |
Pull: | #999 (312 additions, 0 deletions, 5 files changed) |
Branch: | slaclab/ESROGUE-592 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-592 |
Notes:
Description
Also added
AxiStreamDmaMon
python class for creating the LocalVariablesself.dmaStream = rogue.hardware.axi.AxiStreamDma(args.dev,(0x100*0)+0,1) self.add(pyrogue.hardware.axi.AxiStreamDmaMon( axiStreamDma = self.dmaStream, expand = True, ))
Patch Release v6.1.4
Pull Requests Since v6.1.3
Bug
Enhancement
- #994 - Update variable wait to allow for triggering on any update
- #993 - Handle commands without arg in process widget
Unlabeled
- #989 - re-synchronizing with external aes-stream-drivers source code
- #988 - Initial capture of the pyrogue tree documentation
- #990 - Misc. Documentation Updates
- #987 - Fix bug in ArrayDevice
Pull Request Details
Fix bug in ArrayDevice
Author: | Benjamin Reese [email protected] |
Date: | Tue Mar 5 13:27:34 2024 -0800 |
Pull: | #987 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/ArrayDevice-fix |
Notes:
Description
When passing a single
arrayArgs
dict
toArrayDevice
, need to copy the dict for each instantiated array member. Otherwise it is passed by reference and a later per-instancepop()
call affects all instances.
Initial capture of the pyrogue tree documentation
Author: | Benjamin Reese [email protected] |
Date: | Tue Mar 5 13:25:18 2024 -0800 |
Pull: | #988 (424 additions, 0 deletions, 12 files changed) |
Branch: | slaclab/device-tree-doc |
Notes:
Initial capture of placeholder pages for documenting the pyrogue tree classes.
Description
Added documentation directories and index.rst files to capture the essential pyrogue tree classes: node, root, command, device and variable. Note that these are placeholder pages and not populated pages.
Details
Added the following directories and files:
docs/src/pyrogue_tree/index.rst docs/src/pyrogue_tree/node/command/index.rst docs/src/pyrogue_tree/node/command/local_command/index.rst docs/src/pyrogue_tree/node/command/remote_command/index.rst docs/src/pyrogue_tree/node/device/index.rst docs/src/pyrogue_tree/node/index.rst docs/src/pyrogue_tree/node/root/index.rst docs/src/pyrogue_tree/node/variable/index.rst docs/src/pyrogue_tree/node/variable/link_variable/index.rst docs/src/pyrogue_tree/node/variable/local_variable/index.rst docs/src/pyrogue_tree/node/variable/remote_variable/index.rst docs/src/index.rst
Removed the following file:
docs/src/pyrogue_tree/_Node.py
JIRA
N/A
Related
N/A
re-synchronizing with external aes-stream-drivers source code
Author: | Benjamin Reese [email protected] |
Date: | Tue Mar 5 13:28:54 2024 -0800 |
Pull: | #989 (698 additions, 698 deletions, 3 files changed) |
Branch: | slaclab/include-driver-syncing-up |
Issues: | #914, #989 |
Notes:
Description
- This was needed because some of the functions were missing
- E.g. axisWriteReqMissed was not in AxisDriver.h
- Delete include/rogue/hardware/drivers/PgpDriver.h
- Refer to #914
Misc. Documentation Updates
Author: | Larry Ruckman [email protected] |
Date: | Tue Feb 27 11:51:14 2024 -0800 |
Pull: | #990 (20 additions, 19 deletions, 3 files changed) |
Branch: | slaclab/more-tcp-doc-updates |
Issues: | #990 |
Notes:
Description
Fix doc gen typo
Author: | Ryan Herbst [email protected] |
Date: | Thu Mar 7 15:04:56 2024 -0800 |
Pull: | #992 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/doc_gen |
Issues: | #992 |
Labels: | bug |
Notes:
Fixes a typo that was breaking document generation.
This also updates the Process pydm window to generate a "Exec" button instead of an input field when a command does not take a arg.
Handle commands without arg in process widget
Author: | Benjamin Reese [email protected] |
Date: | Tue Mar 26 13:12:35 2024 -0700 |
Pull: | #993 (5 additions, 0 deletions, 1 files changed) |
Branch: | slaclab/fix_process_widget |
Labels: | enhancement |
Notes:
Handle commands without arg in process widget.
This ensures a button is present for process commands that do not take an arg.
Update variable wait to allow for triggering on any update
Author: | Benjamin Reese [email protected] |
Date: | Tue Mar 26 13:09:08 2024 -0700 |
Pull: | #994 (17 additions, 18 deletions, 3 files changed) |
Branch: | slaclab/variable_wait |
Issues: | #994 |
Labels: | bug, enhancement |
Notes:
This adds an update flag to the local VariableValue class used in the variable wait lambda function. This allows VariableWait to stall on an update of a variable without caring about a particular value. This is useful for variables which are updated on data reception.
This also updates the incorrect documentation and code comments.
The Advance function is removed from the Process class and the default example loop updates are fixed.