Skip to content

Releases: slaclab/rogue

Patch Release v4.11.5

25 Sep 01:56
b47f044
Compare
Choose a tag to compare

Pull Requests Since v4.11.4

Enhancement

  1. #737 - Use native pickling instead of JSON for zmq interface (Rogue V4)
  2. #740 - Add guiGroup attribute to Node, allowing GUI tree organization (V4)

Pull Request Details

Use native pickling instead of JSON for zmq interface (Rogue V4)

Author: Ryan Herbst [email protected]
Date: Thu Sep 24 17:56:51 2020 -0700
Pull: #737 (340 additions, 175 deletions, 12 files changed)
Branch: slaclab/faster_zmq
Labels: enhancement

Notes:

This change uses native python pickling instead of json encoding for sending data between the zmq client and server. This is the Rogue version 4 application of this change.

This also uses raw bytes for data transfer between the client and server instead of passing and decoding strings.

The C++ raw client interface is removed for now as it is not used and will need a json specific interface which we may add later.

This has resulted in a 50% speedup of zmq based transactions which should make the GUI more responsive. The Rogue zmq remains faster than the epics3 interface:

For a list transfer:
Epics list caget Rate = 808.5 hz
Epics list caput Rate = 906.8 hz
Epics list pv.get Rate = 928.8 hz
Epics list pv.put Rate = 1014.7 hz
zmq list get Rate = 2981.1 hz
zmq list set Rate = 2651.9 hz

For a single value transfer:
Epics caput Rate = 1457.4 hz
Epics pv.get Rate = 1445.6 hz
Epics pv.put Rate = 1565.5 hz
zmq get Rate = 2318.8 hz
zmq set Rate = 1866.2 hz


Add guiGroup attribute to Node, allowing GUI tree organization (V4)

Author: Ryan Herbst [email protected]
Date: Wed Sep 23 10:46:54 2020 -0700
Pull: #740 (209 additions, 131 deletions, 10 files changed)
Branch: slaclab/node_gui_groups
Labels: enhancement

Notes:

This PR changes the behavior of the pydm GUI tree in how it handles large arrays of Variables, Command and Devices.

The previous version would auto-detect variable arrays and group them in a sub-tree item which sped up the GUI load as it avoided creating large arrays of tree elements.

This PR removes the auto organization and adds a Node attribute 'guiGroup' which defines how Variables, Command and Devices are group in the pydm tree. By default the created group is not auto expanded and the group's members are not populated in the GUI until they are needed.

The developer is encouraged to use this feature to minimize the number of elements that need to be populated in the GUI at any given time.


Patch Release v4.11.4

16 Sep 17:39
83e737a
Compare
Choose a tag to compare

Pull Requests Since v4.11.3

Enhancement

  1. #733 - Break large array into sections on gui

Pull Request Details

Break large array into sections on gui

Author: Ryan Herbst [email protected]
Date: Wed Sep 16 10:25:02 2020 -0700
Pull: #733 (126 additions, 50 deletions, 8 files changed)
Branch: slaclab/ESCRYODET-713
Jira: https://jira.slac.stanford.edu/issues/ESCRYODET-713
Labels: enhancement

Notes:

Avoid building arrays larger than 100 entries on expansion. This also groups node fetches into bursts which reduces the time to interact with the server.

This also fixes an epics bug already fixed in Rogue 5.


Minor Release v5.4.0

11 Sep 01:18
a87e31a
Compare
Choose a tag to compare

Pull Requests Since v5.3.0

Bug

  1. #732 - Fix data receiver signature
  2. #730 - Fix min and max values for fixed point model

Enhancement

  1. #729 - Add support for transaction retry

Pull Request Details

Add support for transaction retry

Author: Ryan Herbst [email protected]
Date: Fri Aug 28 20:13:11 2020 -0700
Pull: #729 (246 additions, 24 deletions, 9 files changed)
Branch: slaclab/block_retry
Issues: #729
Labels: enhancement

Notes:

This PR adds support for transaction retry in remote variables/blocks. Retry is enabled for a block when retryCount is set to a non zero value when creating one of its variables. The variable with the largest retryCount will set the block level retryCount. When setting retryCount to a non zero value, any transactions initiated for the block will be checked immediately, waiting for the transaction to complete, as if checkEach where set for the Device. If an error occurs in the transaction it will be immediately retried up to retryCount times. If the error is a verify error the transaction will not be retried.

Retries will occur both in variable level transactions (set/get) or in bulk transactions initiated by the poll queue or Root level configuration writes and reads.


Fix min and max values for fixed point model

Author: Ryan Herbst [email protected]
Date: Tue Sep 1 21:56:48 2020 -0700
Pull: #730 (0 additions, 5 deletions, 1 files changed)
Branch: slaclab/fixed_range
Labels: bug

Notes:


Fix data receiver signature

Author: Ryan Herbst [email protected]
Date: Thu Sep 10 17:30:28 2020 -0700
Pull: #732 (7 additions, 1 deletions, 2 files changed)
Branch: slaclab/ESROGUE-465
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-465
Labels: bug

Notes:


Patch Release v4.11.3

10 Sep 23:03
f8e3899
Compare
Choose a tag to compare

Pull Requests Since v4.11.2

Enhancement

  1. #731 - Add default min/max values based upon register parameters

Pull Request Details

Add default min/max values based upon register parameters

Author: Ryan Herbst [email protected]
Date: Thu Sep 10 15:49:06 2020 -0700
Pull: #731 (60 additions, 11 deletions, 2 files changed)
Branch: slaclab/ESCRYODET-722
Jira: https://jira.slac.stanford.edu/issues/ESCRYODET-722
Labels: enhancement

Notes:

This PR adds a default min/max value for Remote variables. The min and max values are computed based upon the register bit size parameters. The user can still provide min and max values that are more constrained.

This feature already exists in Rogue Version 5. This PR adds this to a incremental release in Rogue version 4.


Minor Release v5.3.0

26 Aug 20:55
Compare
Choose a tag to compare

Pull Requests Since v5.2.3

Bug

  1. #725 - Fix exception throw and setup default range checking

Enhancement

  1. #719 - Add support for list variables in both Local and Remote variables
  2. #726 - Add stream RateDrop module
  3. #722 - Changes from Bruce's fork
  4. #727 - Fix data rx module
  5. #728 - Simplify data process device

Unlabeled

  1. #721 - Update anaconda.rst
  2. #720 - Update anaconda.rst
  3. #724 - No python build fix
  4. #723 - Fix error w/ removing expired transactions.

Pull Request Details

Add support for list variables in both Local and Remote variables

Author: Ryan Herbst [email protected]
Date: Thu Aug 13 21:20:22 2020 -0700
Pull: #719 (1679 additions, 755 deletions, 25 files changed)
Branch: slaclab/list_var
Issues: #719
Labels: enhancement

Notes:

This PR adds support for lists contained in variables. This was partially supported previously in LocalVariables but not supported in RemoteVariables.

With this PR each element of the list is processed using the disp attributes independently for both Local and Remote variables.

A list based remote variable can be created by adding the following three attributes during the remote variable creation:

numValues: the number of values in the list
valueBits: the number of bits for each value
valueStride: the spacing between each of the variables.

the bitOffset and bitSize attributes are still used. they must only contain one value each, as sparse registers are not support when using list variables. The bitSize must be equal to the numValues * valueStride.

Values set and get can be used with an entire list through the classic set(), get(), value(), getDisp(), valueDisp, setDisp() calls. Individual values in the list can be set by adding the index=n arg to the above calls. This new arg is also passed through the set and get calls in a LinkedVariable if the user wishes to support it.

Calling set() and get() without index results in a read/write of the full block range. Adding index= limits the read/write to the memory range being accessed.

The config file also supports sliced assignments:
ListVar[1:2] = [10]
ListVar[1] = 10
ListVar[1:5] = [1,2,3,4]

List variable support is also included in the c++ layer access APIs.


Update anaconda.rst

Author: Larry Ruckman [email protected]
Date: Wed Aug 12 15:28:00 2020 -0700
Pull: #720 (2 additions, 2 deletions, 1 files changed)
Branch: slaclab/conda-doc-update
Issues: #720

Notes:

Description

  • Updating the conda install instructions for a specific released version of Rogue

Update anaconda.rst

Author: Ryan Herbst [email protected]
Date: Wed Aug 12 21:39:58 2020 -0700
Pull: #721 (2 additions, 2 deletions, 1 files changed)
Branch: slaclab/conda-version-update
Issues: #721

Notes:

Description

  • Updating conda install script instructions
    • From conda 4.5.11 to conda 4.8.3

Changes from Bruce's fork

Author: Ryan Herbst [email protected]
Date: Thu Aug 13 10:46:35 2020 -0700
Pull: #722 (39 additions, 8 deletions, 6 files changed)
Branch: slaclab/bruce_hill
Issues: #722
Labels: enhancement

Notes:


Fix error w/ removing expired transactions.

Author: Ryan Herbst [email protected]
Date: Mon Aug 24 16:37:48 2020 -0700
Pull: #723 (0 additions, 1 deletions, 1 files changed)
Branch: bhill-slac/fix-expired-transaction-cleanup
Issues: #723

Notes:

Got a core dump of a rogue crash and traced it to this error when removing expired transactions.
Not sure if this is the only bug in https://jira.slac.stanford.edu/projects/ESCLINK/issues/ESCLINK-37?filter=allopenissues
but it's certainly causing some of the crashes.


No python build fix

Author: Ryan Herbst [email protected]
Date: Mon Aug 24 20:00:39 2020 -0700
Pull: #724 (1 additions, 0 deletions, 1 files changed)
Branch: bhill-slac/no-python-build-fix
Issues: #724

Notes:

Needed for NO_PYTHON build.


Fix exception throw and setup default range checking

Author: Ryan Herbst [email protected]
Date: Tue Aug 25 10:10:19 2020 -0700
Pull: #725 (84 additions, 22 deletions, 6 files changed)
Branch: slaclab/err_throw
Issues: #725
Labels: bug

Notes:

Restore variable exception throw and create default min/max values for remote variables.


Add stream RateDrop module

Author: Ryan Herbst [email protected]
Date: Tue Aug 25 11:46:42 2020 -0700
Pull: #726 (189 additions, 7 deletions, 5 files changed)
Branch: slaclab/rate_drop
Issues: #726
Labels: enhancement

Notes:

This modules will drop frames at a defined rate.


Fix data rx module

Author: Ryan Herbst [email protected]
Date: Wed Aug 26 11:06:53 2020 -0700
Pull: #727 (13 additions, 21 deletions, 1 files changed)
Branch: slaclab/data_rx
Labels: enhancement

Notes:

Remote rate control flags as this should be done with the RateDrop modules. Add flag to allow the user to process the data using a byte array instead of numpy.


Simplify data process device

Author: Ryan Herbst [email protected]
Date: Wed Aug 26 11:33:55 2020 -0700
Pull: #728 (11 additions, 15 deletions, 1 files changed)
Branch: slaclab/data_rx
Labels: enhancement

Notes:


Patch Release v5.2.3

08 Aug 03:51
Compare
Choose a tag to compare

Pull Requests Since v5.2.2

Pull Request Details

Patch Release v5.2.2

07 Aug 20:42
feeac9e
Compare
Choose a tag to compare

Pull Requests Since v5.2.1

Bug

  1. #718 - Fix fast copy pointer offset adjust

Unlabeled

  1. #717 - Change some of the Batcher's messages from warning to error

Pull Request Details

Change some of the Batcher's messages from warning to error

Author: Ryan Herbst [email protected]
Date: Fri Jul 24 10:07:56 2020 -0700
Pull: #717 (5 additions, 5 deletions, 1 files changed)
Branch: slaclab/batch-print-msg
Issues: #717

Notes:

Description

  • The user should know immediately if these events happen

Fix fast copy pointer offset adjust

Author: Ryan Herbst [email protected]
Date: Fri Aug 7 13:27:00 2020 -0700
Pull: #718 (88 additions, 1 deletions, 2 files changed)
Branch: slaclab/fast_offset
Issues: #718
Labels: bug

Notes:

The fast copy pointer location was not being adjusted when the variable offset was shifted.


Patch Release v5.2.1

23 Jul 19:46
f804f61
Compare
Choose a tag to compare

Pull Requests Since v5.2.0

Bug

  1. #713 - Fix memory leak in epics3 interface
  2. #716 - Fix cmake template for external builds

Enhancement

  1. #715 - Auto expand small lists

Unlabeled

  1. #714 - Change Variable interface to throw an exception if the wrong access function is called

Pull Request Details

Fix memory leak in epics3 interface

Author: Ryan Herbst [email protected]
Date: Wed Jul 22 10:51:25 2020 -0700
Pull: #713 (37 additions, 9 deletions, 4 files changed)
Branch: slaclab/ESCRYODET-640-pre
Issues: #712, #713
Jira: https://jira.slac.stanford.edu/issues/ESCRYODET-640-pre
Labels: bug

Notes:

This is the pre-release version of #712


Change Variable interface to throw an exception if the wrong access function is called

Author: Ryan Herbst [email protected]
Date: Wed Jul 22 11:52:50 2020 -0700
Pull: #714 (17 additions, 17 deletions, 1 files changed)
Branch: slaclab/var_cleanup

Notes:


Auto expand small lists

Author: Larry Ruckman [email protected]
Date: Thu Jul 23 09:09:08 2020 -0700
Pull: #715 (24 additions, 7 deletions, 3 files changed)
Branch: slaclab/ESROGUE-463
Issues: #715
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-463
Labels: enhancement

Notes:

This adds are arg to the VariableList widget 'maxListExpand' which defines the max number of entries a list can have and be auto expanded. This arg is also available at the runPyDM() method.


Fix cmake template for external builds

Author: Ryan Herbst [email protected]
Date: Thu Jul 23 09:41:08 2020 -0700
Pull: #716 (6 additions, 4 deletions, 1 files changed)
Branch: slaclab/ext_cmake_fix
Labels: bug

Notes:


Patch Release v4.11.2

22 Jul 18:18
df727e8
Compare
Choose a tag to compare

Pull Requests Since v4.11.1

Bug

  1. #712 - Fix memory leak in epics3 valueSet call

Pull Request Details

Fix memory leak in epics3 valueSet call

Author: Ryan Herbst [email protected]
Date: Wed Jul 22 10:45:13 2020 -0700
Pull: #712 (67 additions, 40 deletions, 6 files changed)
Branch: slaclab/ESCRYODET-640
Jira: https://jira.slac.stanford.edu/issues/ESCRYODET-640
Labels: bug

Notes:

It turns out there was a mistake in the epics3 valueSet call related to setting array values. This was causing a memory leak.


Minor Release v5.2.0

21 Jul 21:18
503e6d6
Compare
Choose a tag to compare

Pull Requests Since v5.1.1

Bug

  1. #706 - Ensure varUpdate gets called when var->set() is called

Unlabeled

  1. #707 - Adding tests/test_enum.py
  2. #710 - Update build.rst
  3. #709 - Use PyDMLabels for read only variables
  4. #708 - Fix incorrect format string specifier

Pull Request Details

Ensure varUpdate gets called when var->set() is called

Author: Ryan Herbst [email protected]
Date: Mon Jul 20 18:37:39 2020 -0700
Pull: #706 (33 additions, 12 deletions, 2 files changed)
Branch: slaclab/ESROGUE-461
Issues: #706
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-461
Labels: bug

Notes:

varUpdate was not being called properly when forceCheckEach was set.


Adding tests/test_enum.py

Author: Ryan Herbst [email protected]
Date: Tue Jul 21 09:14:09 2020 -0700
Pull: #707 (108 additions, 0 deletions, 1 files changed)
Branch: slaclab/ESROGUE-432
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-432

Notes:

Description

  • test script for variable enum to check for corner cases and improve overall code coverage

Fix incorrect format string specifier

Author: Ryan Herbst [email protected]
Date: Tue Jul 21 10:50:36 2020 -0700
Pull: #708 (2 additions, 2 deletions, 1 files changed)
Branch: slaclab/format-str
Issues: #708

Notes:

Fixes the following warnings when compiling on a Mac:

/Users/bareese/rogue/src/rogue/interfaces/memory/Variable.cpp:497:75: warning: format specifies type 'long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
   printf("\nVariable c++ get: Read %li times in %f seconds. Rate = %f\n",count,durr,rate);
                                    ~~~                                   ^~~~~
                                    %llu
/Users/bareese/rogue/src/rogue/interfaces/memory/Variable.cpp:509:76: warning: format specifies type 'long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
   printf("\nVariable c++ set: Wrote %li times in %f seconds. Rate = %f\n",count,durr,rate);
                                     ~~~                                   ^~~~~
                                     %llu

Use PyDMLabels for read only variables

Author: Larry Ruckman [email protected]
Date: Tue Jul 21 13:31:24 2020 -0700
Pull: #709 (14 additions, 8 deletions, 4 files changed)
Branch: slaclab/ESROGUE-457
Issues: #709
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-457

Notes:


Update build.rst

Author: Ryan Herbst [email protected]
Date: Tue Jul 21 12:49:01 2020 -0700
Pull: #710 (8 additions, 23 deletions, 1 files changed)
Branch: slaclab/ESROGUE-462
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-462

Notes:

Description

  • Updating instructions to use the pip_requirements.txt file
    • so we don't need to maintain the pip requirements in multiple locations
  • Added python3-pyqt5.qtsvg to Ubuntu
    • Required for PyDM GUI