Releases: slaclab/rogue
Patch Release v6.6.2
Pull Requests Since v6.6.1
Enhancement
- #1073 - Restore proper ruckus branch
Unlabeled
- #1078 - conda-recipe update
- #1076 - Update conda-recipe/README.md
- #1077 - Migration from petalinux toolchain to Yocto
- #1074 - Change print() debug to log().
Pull Request Details
Restore proper ruckus branch
Author: | Ryan Herbst [email protected] |
Date: | Tue May 13 19:40:01 2025 -0700 |
Pull: | #1073 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/gh_docker |
Labels: | enhancement |
Notes:
Restore branch reference to ruckus workflow back to main.
Won't pass CI until Ruckus is released.
Change print() debug to log().
Author: | Benjamin Reese [email protected] |
Date: | Tue Jun 3 11:52:00 2025 -0700 |
Pull: | #1074 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/log-fix |
Notes:
Description
This was left over from some debugging work long ago. We shouldn't have print statements in the released code.
Update conda-recipe/README.md
Author: | Larry Ruckman [email protected] |
Date: | Fri Jul 11 11:28:58 2025 -0700 |
Pull: | #1076 (57 additions, 6 deletions, 1 files changed) |
Branch: | slaclab/conda-recipe_README-update |
Notes:
Description
- README file was out of date (e.g. still using
-c pydm-tag
- Add another section of my notes when you want to build the .conda package file and test it locally before having Github CI try to do it
Migration from petalinux toolchain to Yocto
Author: | Larry Ruckman [email protected] |
Date: | Fri Jul 11 10:56:16 2025 -0700 |
Pull: | #1077 (30 additions, 29 deletions, 2 files changed) |
Branch: | slaclab/yocto-doc |
Notes:
Description
- AMD is depreciating petalinux toolchain in 2025
- These changes migrate to a purely Yocto workflow
conda-recipe update
Author: | Larry Ruckman [email protected] |
Date: | Wed Aug 13 15:33:18 2025 -0700 |
Pull: | #1078 (50 additions, 717 deletions, 3 files changed) |
Branch: | slaclab/remove-p4p-conda-requirement |
Notes:
Description
- updating conda-receipe for additional python version (3.9, 3.10, 3.11, 3.12)
- Removing p4p as a conda deps package
- Recommend using pip install within conda env instead
v5.8.1 - Anaconda Release for older rogue
Full Changelog: v5.8.0...v5.8.1
v3.4.1 - Anaconda Release for older rogue
Full Changelog: v3.4.0...v3.4.1
Patch Release v6.6.1
Pull Requests Since v6.6.0
Enhancement
Unlabeled
- #1068 - Update _Virtual.py
Pull Request Details
Update _Virtual.py
Author: | Larry Ruckman [email protected] |
Date: | Thu May 1 06:36:36 2025 -0700 |
Pull: | #1068 (10 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/ruck314-patch-1 |
Notes:
Description
- It not typical the cause that you need to "close the PyDM Window" to resolve the exception
- Add more possible causes of why this exception might have happened
Add warning for large timeouts
Author: | Larry Ruckman [email protected] |
Date: | Thu May 1 06:49:11 2025 -0700 |
Pull: | #1070 (4 additions, 0 deletions, 1 files changed) |
Branch: | slaclab/ESROGUE-691 |
Jira: | https://jira.slac.stanford.edu/issues/ESROGUE-691 |
Labels: | enhancement |
Notes:
Add a warning if the user passes a large timeout value.
Update docker to push to gihub
Author: | Ryan Herbst [email protected] |
Date: | Tue May 13 18:55:25 2025 -0700 |
Pull: | #1072 (18 additions, 22 deletions, 2 files changed) |
Branch: | slaclab/gh_docker |
Labels: | enhancement |
Notes:
Update docker to push to gihub.
Patch Release v4.11.12
Pull Requests Since v4.11.11
Bug
- #1069 - collections.Iterable -> collections.abc.Iterable
Pull Request Details
collections.Iterable -> collections.abc.Iterable
Author: | Ryan Herbst [email protected] |
Date: | Wed Apr 30 15:22:32 2025 -0700 |
Pull: | #1069 (162 additions, 192 deletions, 8 files changed) |
Branch: | slaclab/v4.11.11_Iterablefix |
Labels: | bug |
Notes:
Description
Trivial bug fix for using rogue v4 in python 3.10.
Details
in the new SMuRF dockers based on ubuntu22.04 w/ python 3.10 instead of 3.8 , rogue crashes with this error ;
Run docker container exec server \ Rogue/pyrogue version v4.11.11. https://github.com/slaclab/rogue Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/local/src/pysmurf/python/pysmurf/core/devices/__init__.py", line 20, in <module> from pysmurf.core.devices._SmurfProcessor import SmurfProcessor File "/usr/local/src/pysmurf/python/pysmurf/core/devices/_SmurfProcessor.py", line 19, in <module> import pyrogue File "/usr/local/src/rogue/python/pyrogue/__init__.py", line 19, in <module> from pyrogue._Variable import * File "/usr/local/src/rogue/python/pyrogue/_Variable.py", line 23, in <module> from collections import Iterable ImportError: cannot import name 'Iterable' from 'collections' (/usr/lib/python3.10/collections/__init__.py)
it seems they changed an alias from python 3.8->3.10 ; https://stackoverflow.com/questions/72032032/importerror-cannot-import-name-iterable-from-collections-in-python.
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: | ... |
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.