Skip to content

Release 3.6.0

Compare
Choose a tag to compare
@slacrherbst slacrherbst released this 29 Jun 05:52
9f564fb

Pull Requests

  1. #385 - Add remote zmq client to replace Pyro4 library
  2. #420 - Update toFrame and fromFrame to be buffer boundary aware
  3. #400 - Make pickle operation recursive, Use JSON for ZMQ Interface
  4. #392 - Add gui client to pyrogue.gui module
  5. #417 - Features and Enhancements from HPS development
  6. #391 - Allow sync read/write operation in EPICS interface
  7. #411 - Check for error when extracting python values
  8. #418 - Add no epics build for anaconda
  9. #413 - Add generic data reader class
  10. #406 - Allow user to specify typeStr for Local Variables
  11. #386 - Add GUI pop up menu to enable read/write methods on variables on devices
  12. #401 - Remove unnecessary ZMQ timeout setting
  13. #390 - Add ability to stop stream and memory zmq bridges
  14. #393 - Add option to restart/exit server
  15. #408 - Handle File Write Errors With Log Error Instead Of Exception
  16. #399 - Fix unknown types in RSSI GUI
  17. #388 - Fixes for Atlas use. Adds CMake flag to link a static librogue-core
  18. #384 - Add configurable timeout to shared memory functions.
  19. #419 - Properly handle variables that return None in dataToYaml
  20. #402 - Support 64-bit file sizes
  21. #414 - Store raw VariableValue dictionary in data files
  22. #389 - Check root level name in getPath
  23. #395 - Increase ZMQ timeout values to 1 second
  24. #382 - Fix file overflow size comparison
  25. #396 - Assert notify_all while holding conditional lock
  26. #415 - Enable find for VirtualNode
  27. #409 - Fix network connect errors
  28. #394 - Enable zmq server by default
  29. #416 - Throw exception when attempting to start a root that is already running.
  30. #422 - Fix poll enable update for variables
  31. #412 - Add txSize units to PRBS generator
  32. #397 - Fix length field init in PRBS transmitter

Pull Request Details

Add remote zmq client to replace Pyro4 library

Author: Ryan Herbst [email protected]
Date: Tue May 28 11:19:36 2019 -0700
Pull: #385 (1283 additions, 1107 deletions, 42 files changed)
Branch: slaclab/zmq_client

Notes:

To enable the zmq server:

root.start(zmqPort=xxxx)

Two ports will be used, the passed port and the one above the passed port. If 9000 is passed, ports 9000 and 9001 will be used.

To start the zmq client:

client = pyrogue.VIrtualClient(addr="localhost",port=xxxx)

client.root is the root of the remote pyrogue instance and can be used in scripts or passed to the GUI.

This PR also makes ZMQ and BZIP mandatory libraries and removed the ApiWrapper and shared memory control interfaces.


Update toFrame and fromFrame to be buffer boundary aware

Author: Ryan Herbst [email protected]
Date: Fri Jun 28 18:59:41 2019 -0700
Pull: #420 (161 additions, 77 deletions, 17 files changed)
Branch: slaclab/better_copy

Notes:

This PR eliminates all instances of std::copy and replaces them with std::memcpy. The toFrame and fromFrame methods can now handle bulk data across buffer boundaries. copyFrame has been added as a help function of deal with data copies between frames.


Make pickle operation recursive, Use JSON for ZMQ Interface

Author: Ryan Herbst [email protected]
Date: Fri Jun 7 11:24:07 2019 -0700
Pull: #400 (135 additions, 101 deletions, 10 files changed)
Branch: slaclab/virt_client

Notes:

This change makes the node pickle operation recursive, allowing the full tree to be picked in a single operation.

Also addresses a bug where some sub-nodes were not being setup properly and causing errors when right clicking "ReadDevice" on the GUI.


Add gui client to pyrogue.gui module

Author: Ryan Herbst [email protected]
Date: Wed May 29 08:31:07 2019 -0700
Pull: #392 (92 additions, 11 deletions, 5 files changed)
Branch: slaclab/gui_module

Notes:

A gui client can now be started with:

python -m pyrogue.gui

or

python -m pyrogue.gui --host=somehost --port=9099

Also fixes some bugs in the virtual client and adds server test scripts.


Features and Enhancements from HPS development

Author: Ryan Herbst [email protected]
Date: Wed Jun 26 09:44:55 2019 -0700
Pull: #417 (63 additions, 30 deletions, 5 files changed)
Branch: slaclab/hps-dev

Notes:

This PR is not ready to merge. It exists so we can keep a handle on the HPS divergence from mainline rogue.

  • Add Device.setPollInterval() to change the polling interval of several variables at once
  • Remove calls to unimplemented Model.mask function
  • MemoryDevice now actually works.
    - Needs some work to make it thread safe over an entire memory load
  • The root updateThread has exception handling logic so it doesn't crash
  • Increase the AxiStreamDma runThread timeout

Allow sync read/write operation in EPICS interface

Author: Ryan Herbst [email protected]
Date: Wed May 29 08:30:49 2019 -0700
Pull: #391 (69 additions, 22 deletions, 4 files changed)
Branch: slaclab/ESROGUE-360
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-360

Notes:

Starting the EPICS interface with threadCount=0 will enable sync read/write operation.

EPICS will run in sync mode by default.


Check for error when extracting python values

Author: Ryan Herbst [email protected]
Date: Tue Jun 18 21:50:21 2019 -0600
Pull: #411 (60 additions, 30 deletions, 2 files changed)
Branch: slaclab/file_overflow_pre

Notes:

Merge changes into pre-release.


Add no epics build for anaconda

Author: Ryan Herbst [email protected]
Date: Wed Jun 26 00:57:05 2019 -0700
Pull: #418 (67 additions, 3 deletions, 5 files changed)
Branch: slaclab/no_epics_conda

Notes:


Add generic data reader class

Author: Ryan Herbst [email protected]
Date: Tue Jun 18 21:50:55 2019 -0600
Pull: #413 (66 additions, 0 deletions, 1 files changed)
Branch: slaclab/data_read

Notes:

Allows for non streaming read of Rogue data files. Two new classes are created:

pyrogue.utilties.fileio.FileReader
pyrogue.utilties.fileio.FileData

FileReader.next reads the next frame from the file returning a structure containing header and data. A config channel can be passed and the configuration will be cached in the FileReader structure for access.

To read a file:

fread = pyrogue.utilities.fileio.Filereader('data.dat',configChan=100)
head = fread.next
np_data = numpy.frombuffer(head.data,numpy.uint32)


Allow user to specify typeStr for Local Variables

Author: Ryan Herbst [email protected]
Date: Tue Jun 18 21:48:43 2019 -0600
Pull: #406 (42 additions, 19 deletions, 4 files changed)
Branch: slaclab/user_type_pr

Notes:


Add GUI pop up menu to enable read/write methods on variables on devices

Author: Ryan Herbst [email protected]
Date: Tue May 21 19:19:34 2019 -0700
Pull: #386 (52 additions, 3 deletions, 2 files changed)
Branch: slaclab/read_now

Notes:

Right clicking on any variable box will provide a popup menu which will enable the user to read or write the specific variable or the entire containing device. Device read and writes are not recursive. The read variable and write variable options are dependent on the variable mode.


Remove unnecessary ZMQ timeout setting

Author: Ryan Herbst [email protected]
Date: Fri Jun 7 11:23:38 2019 -0700
Pull: #401 (10 additions, 36 deletions, 7 files changed)
Branch: slaclab/zmq_to

Notes:

It is not necessary to have a timeout setting on the zmq sockets serviced by threads. Closing the socket will allow the thread to exit.


Add ability to stop stream and memory zmq bridges

Author: Ryan Herbst [email protected]
Date: Wed May 22 18:25:05 2019 -0700
Pull: #390 (36 additions, 8 deletions, 8 files changed)
Branch: slaclab/hps-dev

Notes:

Also includes a bug fix in the UDP/RSSI wrapper to avoid a get refresh when the device is not in a tree.


Add option to restart/exit server

Author: Ryan Herbst [email protected]
Date: Wed May 29 13:16:33 2019 -0700
Pull: #393 (39 additions, 2 deletions, 4 files changed)
Branch: slaclab/server_restart

Notes:

Also fixes client connection so that it will auto repair when the server restarts.


Handle File Write Errors With Log Error Instead Of Exception

Author: Ryan Herbst [email protected]
Date: Tue Jun 18 21:49:11 2019 -0600
Pull: #408 (20 additions, 4 deletions, 2 files changed)
Branch: slaclab/file_error_pr

Notes:


Fix unknown types in RSSI GUI

Author: Ryan Herbst [email protected]
Date: Wed Jun 5 12:34:15 2019 -0700
Pull: #399 (23 additions, 0 deletions, 1 files changed)
Branch: slaclab/ESROGUE-356-new
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-356-new

Notes:


Fixes for Atlas use. Adds CMake flag to link a static librogue-core

Author: Ryan Herbst [email protected]
Date: Tue May 21 19:19:03 2019 -0700
Pull: #388 (17 additions, 3 deletions, 4 files changed)
Branch: slaclab/atlas-fixes

Notes:

Description

Fixes ESROGUE-357, ESROGUE-355. adds CMake flag to link a static librogue-core

JIRA

ESROGUE-355
ESROGUE-357


Add configurable timeout to shared memory functions.

Author: Ryan Herbst [email protected]
Date: Tue May 7 08:48:51 2019 -0700
Pull: #384 (10 additions, 10 deletions, 1 files changed)
Branch: slaclab/hps-dev-rth

Notes:


Properly handle variables that return None in dataToYaml

Author: Ryan Herbst [email protected]
Date: Wed Jun 26 11:02:03 2019 -0700
Pull: #419 (9 additions, 8 deletions, 1 files changed)
Branch: slaclab/yaml_error

Notes:

This also moves the exception catches to a place where the error will make more sense.


Support 64-bit file sizes

Author: Ryan Herbst [email protected]
Date: Tue Jun 18 21:44:37 2019 -0600
Pull: #402 (8 additions, 8 deletions, 2 files changed)
Branch: slaclab/file_64-bit

Notes:


Store raw VariableValue dictionary in data files

Author: Ryan Herbst [email protected]
Date: Mon Jun 24 15:07:08 2019 -0700
Pull: #414 (7 additions, 6 deletions, 1 files changed)
Branch: slaclab/data_store

Notes:

This PR will change the config stream generation so that the entire contents of VariableValue are stored in the encoded yaml.


Check root level name in getPath

Author: Ryan Herbst [email protected]
Date: Wed May 22 09:14:26 2019 -0700
Pull: #389 (10 additions, 1 deletions, 1 files changed)
Branch: slaclab/root_match

Notes:

The previous code did not properly verify that the top level name in the path matched the root name.


Increase ZMQ timeout values to 1 second

Author: Ryan Herbst [email protected]
Date: Thu May 30 16:18:28 2019 -0700
Pull: #395 (5 additions, 5 deletions, 5 files changed)
Branch: slaclab/zmq_tout

Notes:

This may reduce the load on the RCEs. Timeout is only there so we are able to stop the threads.


Fix file overflow size comparison

Author: Ryan Herbst [email protected]
Date: Thu May 16 19:28:27 2019 -0700
Pull: #382 (6 additions, 4 deletions, 2 files changed)
Branch: slaclab/file_writer

Notes:


Assert notify_all while holding conditional lock

Author: Ryan Herbst [email protected]
Date: Thu May 30 16:18:43 2019 -0700
Pull: #396 (0 additions, 9 deletions, 6 files changed)
Branch: slaclab/queue_lock

Notes:

There is some evidence that calling notify_all when not holding the conditional lock can result in the notify being missed.


Enable find for VirtualNode

Author: Ryan Herbst [email protected]
Date: Mon Jun 24 15:07:28 2019 -0700
Pull: #415 (1 additions, 4 deletions, 2 files changed)
Branch: slaclab/virt_find

Notes:


Fix network connect errors

Author: Ryan Herbst [email protected]
Date: Sat Jun 8 23:14:11 2019 -0700
Pull: #409 (2 additions, 2 deletions, 2 files changed)
Branch: slaclab/fix_messages

Notes:


Enable zmq server by default

Author: Ryan Herbst [email protected]
Date: Thu May 30 16:21:03 2019 -0700
Pull: #394 (2 additions, 2 deletions, 2 files changed)
Branch: slaclab/zmq_enable

Notes:


Throw exception when attempting to start a root that is already running.

Author: Ryan Herbst [email protected]
Date: Wed Jun 26 09:44:04 2019 -0700
Pull: #416 (3 additions, 0 deletions, 1 files changed)
Branch: slaclab/ESROGUE-374
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-374

Notes:


Fix poll enable update for variables

Author: Ryan Herbst [email protected]
Date: Fri Jun 28 22:47:41 2019 -0700
Pull: #422 (1 additions, 1 deletions, 1 files changed)
Branch: slaclab/hps-dev

Notes:


Add txSize units to PRBS generator

Author: Ryan Herbst [email protected]
Date: Mon Jun 10 21:22:59 2019 -0600
Pull: #412 (1 additions, 1 deletions, 1 files changed)
Branch: slaclab/ESROGUE-369
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-369

Notes:


Fix length field init in PRBS transmitter

Author: Larry Ruckman [email protected]
Date: Fri May 31 11:40:49 2019 -0700
Pull: #397 (1 additions, 1 deletions, 1 files changed)
Branch: slaclab/ESROGUE-364
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-364

Notes: