Skip to content

Releases: slaclab/rogue

Release 4.2.0

14 Oct 16:08
b6bec49
Compare
Choose a tag to compare

Pull Requests

  1. #542 - Move Root start parameters to init method
  2. #538 - Add worker thread to sql logger
  3. #536 - Rename c++ helpers to avoid name conflicts
  4. #535 - Allow config files to load from zip files
  5. #541 - Remove dynamic resize to avoid qtimer message
  6. #537 - Defer refresh on expand in legacy gui
  7. #539 - Missing import

Pull Request Details

Move Root start parameters to init method

Author: Ryan Herbst [email protected]
Date: Fri Oct 11 13:57:10 2019 -0700
Pull: #542 (134 additions, 86 deletions, 10 files changed)
Branch: slaclab/start_params

Notes:

This addresses a nagging problem with how we have been using start() combined with the root context managers. It also addresses the problem where duplicate parameters are passed through the root's init() method to be passed to start.

The parameters passed to the start() method are now passed to Root at creation. Legacy code using start() parameters will still be supported, but with a deprecation warning.

Also we should no longer call start() in a Root's init method as it is inconsistent with the context manager. Instead the method should be defined in the sub-class to call whatever startup calls need to be made. The context manager enter method will start() the root if not already started and will generate a warning if it detect's the root has been started in init.

Previous root classes:

class DummyTree(pyrogue.Root):
    def __init__(self):
        pyrogue.Root.__init__(self,name='dummyTree',description="Dummy example")
        self.start(timeout=2.0, pollEn=True, serverPort=0)

        self.epics=pyrogue.protocols.epics.EpicsCaServer(base="test", root=self)
        self.epics.start()

    def stop(self):
        self.epics.stop()
        pyrogue.Root.stop()

Proper method:

class DummyTree(pyrogue.Root):
    def __init__(self):
        pyrogue.Root.__init__(self,
                                  name='dummyTree',
                                  description="Dummy example",
                                  timeout=2.0,
                                  pollEn=True,
                                  serverPort=0)

        self.epics=pyrogue.protocols.epics.EpicsCaServer(base="test", root=self)

    def start(self):
        pyrogue.Root.start()
        self.epics.start()

    def stop(self):
        self.epics.stop()
        pyrogue.Root.stop()

Add worker thread to sql logger

Author: Ryan Herbst [email protected]
Date: Thu Oct 3 13:54:47 2019 -0500
Pull: #538 (56 additions, 39 deletions, 3 files changed)
Branch: slaclab/ESROGUE-399
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-399

Notes:

This PR adds a separate worker thread for the sql logging interface to avoid stalling update thread.


Rename c++ helpers to avoid name conflicts

Author: Ryan Herbst [email protected]
Date: Thu Oct 3 12:12:44 2019 -0500
Pull: #536 (33 additions, 33 deletions, 10 files changed)
Branch: slaclab/macro_rename

Notes:


Allow config files to load from zip files

Author: Ryan Herbst [email protected]
Date: Thu Oct 3 11:00:02 2019 -0500
Pull: #535 (50 additions, 8 deletions, 2 files changed)
Branch: slaclab/ESROGUE-401
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-401

Notes:

This PR allows zip based files and directories to be passed as entries in the LoadConfig filename or filename list. The access occurs just as if the zip file based directory was file system based.

Because of zip file filtering, only files ending in .yml or .yaml will be supported for config loads.

All three of the below commands will load the config.yml file

root.LoadConfig('/path/to/zipfile.zip/directory1/')
root.LoadConfig('/path/to/zipfile.zip/directory1')
root.LoadConfig('/path/to/zipfile.zip/directory1/config.yml')

Remove dynamic resize to avoid qtimer message

Author: Ryan Herbst [email protected]
Date: Wed Oct 9 17:01:39 2019 -0700
Pull: #541 (4 additions, 2 deletions, 3 files changed)
Branch: slaclab/ESROGUE-402
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-402

Notes:

The QBasicTimer::start was being generated by the syslog column dynamic resize. This has been removed and the column size is now fixed. The same potential issue in the pydm gui was fixed as well.


Defer refresh on expand in legacy gui

Author: Ryan Herbst [email protected]
Date: Thu Oct 3 12:17:58 2019 -0500
Pull: #537 (4 additions, 0 deletions, 2 files changed)
Branch: slaclab/gui_redraw

Notes:


Missing import

Author: Ryan Herbst [email protected]
Date: Tue Oct 8 18:01:30 2019 -0500
Pull: #539 (1 additions, 0 deletions, 1 files changed)
Branch: slaclab/math_import

Notes:

Missing import math in _Model.py


Release 4.1.0

30 Sep 22:58
a4a68f1
Compare
Choose a tag to compare

Pull Requests

  1. #531 - Support auto server port assignment
  2. #524 - Enable heartbeat outside of poll, gui state indication
  3. #534 - Fixes to ZMQ Interfaces.
  4. #533 - Cleanup ZMQ shutdown lockups
  5. #529 - Add out of order test module for RSSI
  6. #525 - Add node name schema check warning
  7. #527 - Add RSSI value check, and proper python init values
  8. #530 - Remind user to check jumbo frame setting if RSSI link is failing
  9. #532 - Support non-contiguous numpy arrays in putNumpy
  10. #526 - Somewhat sloppy way to generate n frames in PrbsTx
  11. #528 - Generate clear error for unconnected memory devices

Pull Request Details

Support auto server port assignment

Author: Ryan Herbst [email protected]
Date: Fri Sep 27 16:11:04 2019 -0700
Pull: #531 (140 additions, 82 deletions, 7 files changed)
Branch: slaclab/auto_port

Notes:

This PR makes it easier to use the pyrogue server on a shared machine. Passing serverPort=0 will auto assign a free port.

I have also clarified the instructions for switching to pyDM and provided a function to start the GUI from the main thread, extracting the auto assigned server port.

The server in auto assign mode is now enabled by default.


Enable heartbeat outside of poll, gui state indication

Author: Ryan Herbst [email protected]
Date: Fri Sep 27 13:19:46 2019 -0700
Pull: #524 (167 additions, 40 deletions, 13 files changed)
Branch: slaclab/ESROGUE-13
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-13

Notes:

This PR changes the Time and LocalTime variables so that they are updated once a second outside of the polling loop and will update even if polling is disabled.

The VirtualClient class will use the Time variable as a heartbeat to track the link state.

When the link state goes down the GUI input fields and push buttons will be disabled.


Fixes to ZMQ Interfaces.

Author: Ryan Herbst [email protected]
Date: Mon Sep 30 15:39:50 2019 -0700
Pull: #534 (69 additions, 49 deletions, 11 files changed)
Branch: slaclab/zmq_fixes

Notes:

Updates to avoid ZMQ freezes on shutdown. Fix error message handling for ZMQ memory bridge.


Cleanup ZMQ shutdown lockups

Author: Ryan Herbst [email protected]
Date: Fri Sep 27 22:49:06 2019 -0700
Pull: #533 (71 additions, 15 deletions, 9 files changed)
Branch: slaclab/zmq_fixes

Notes:

Updated context cleanup calls in zmq and setting the linger setting to 0.


Add out of order test module for RSSI

Author: Ryan Herbst [email protected]
Date: Fri Sep 27 13:23:00 2019 -0700
Pull: #529 (65 additions, 2 deletions, 5 files changed)
Branch: slaclab/ESROGUE-398
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-398

Notes:

This module can be copied and modified for other testing.

This PR also fixes some GIL contentions that can occur while closing down links.


Add node name schema check warning

Author: Ryan Herbst [email protected]
Date: Fri Sep 27 11:28:28 2019 -0700
Pull: #525 (54 additions, 6 deletions, 3 files changed)
Branch: slaclab/ESROGUE-173
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-173

Notes:

This will generate a warning if the node name contains any non alphanumeric characters other than _, [, ].


Add RSSI value check, and proper python init values

Author: Ryan Herbst [email protected]
Date: Fri Sep 27 12:37:59 2019 -0700
Pull: #527 (40 additions, 9 deletions, 4 files changed)
Branch: slaclab/ESROGUE-388
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-388

Notes:

This PR generates an error when 0 values are set to certain RSSI parameters. It also pulls the C++ defaults into the python variables.


Remind user to check jumbo frame setting if RSSI link is failing

Author: Ryan Herbst [email protected]
Date: Fri Sep 27 13:36:05 2019 -0700
Pull: #530 (10 additions, 1 deletions, 1 files changed)
Branch: slaclab/ESROGUE-368
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-368

Notes:


Support non-contiguous numpy arrays in putNumpy

Author: Ryan Herbst [email protected]
Date: Fri Sep 27 16:14:50 2019 -0700
Pull: #532 (8 additions, 2 deletions, 1 files changed)
Branch: slaclab/jj-dev

Notes:


Somewhat sloppy way to generate n frames in PrbsTx

Author: Ryan Herbst [email protected]
Date: Fri Sep 27 11:57:09 2019 -0700
Pull: #526 (4 additions, 3 deletions, 1 files changed)
Branch: slaclab/ESROGUE-373
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-373

Notes:

Best approach without completely restructuring the Prbs c++ code.


Generate clear error for unconnected memory devices

Author: Ryan Herbst [email protected]
Date: Fri Sep 27 13:19:32 2019 -0700
Pull: #528 (2 additions, 2 deletions, 2 files changed)
Branch: slaclab/mem_unconnected

Notes:

This PR will ensure an error like below is generated if the user fails to properly connect the memory bus:

pyrogue._Block.MemoryError: 'Memory Error for dummyTree.AxiVersion.FpgaVersion at address 0x000000 Invalid min/max memory interface size. Device or Variable may be unconnected!'


Release Version 4.0.0

26 Sep 18:34
097e7f4
Compare
Choose a tag to compare

This release makes some major changes, some which impact user interfaces. The key PRs to pay attention to are listed below:

Key Pull Requests

#491 - Add support for Rogue PyDm plugin
#509 - Change default gui to PYDM
#440 - Updated API For DataWriter Device Class
#455 - Add groups field to Nodes
#442 - Add alarm levels to Variables
#452 - Add EPICS 4 (P4P) Support
#190 - Add big-endian and fixed-point Models
#446 - Add process device
#482 - Add data receiver Device
#517 - Add native numpy get and put for Frames
#518 - Add support for multidimensional arrays
#508 - Allow sub-transactions on large blocks

All Pull Requests

  1. #500 - Replicate Existing GUI Using PYDM
  2. #519 - Updates to PYDM Interface to make use of PYDM features
  3. #472 - Make error messages more clear
  4. #481 - Add SQL Logger
  5. #440 - Updated API For DataWriter Device Class
  6. #478 - Reorganize fileio directory and update FileReader
  7. #507 - Cleanup
  8. #491 - Add support for Rogue PyDm plugin
  9. #455 - Add groups field to Nodes
  10. #513 - Pymd init
  11. #442 - Add alarm levels to Variables
  12. #452 - Add EPICS 4 (P4P) Support
  13. #499 - Add thread names
  14. #501 - Merge 3.3.7 Changes
  15. #190 - Add big-endian and fixed-point Models
  16. #446 - Add process device
  17. #480 - Improve SystemLog Inteface And Display
  18. #517 - Add native numpy get and put for Frames
  19. #470 - Add CPSW Export Utilities
  20. #518 - Add support for multidimensional arrays
  21. #497 - Speedup array attribute lookups, revamp attributeHelper and nodeMatch
  22. #512 - ESROGUE-210 - Add UART Memory Interface
  23. #504 - Add Process Widget
  24. #516 - Prep For release.
  25. #482 - Add data receiver Device
  26. #508 - Allow sub-transactions on large blocks
  27. #476 - Add command line entry point
  28. #484 - Legacy file updates and better checks
  29. #410 - Check for error when extracting python values
  30. #458 - Remove PCAS support from MACOS, properly detect existence of PCAS
  31. #461 - Add VariableWait function to wait for values in one or more variables
  32. #405 - Allow user to specify typeStr for LocalVariables
  33. #515 - Update rx device
  34. #463 - Add simple ZmqClient class
  35. #520 - Minor Updates to Frame Numpy Interface
  36. #489 - Allow for read of configuration directory containing multiple files
  37. #466 - Change names in DataWriter to break interface.
  38. #475 - Add poll blocking context
  39. #521 - Update array storage to a dictionary
  40. #522 - Add expand sub-menus for arrays.
  41. #511 - Update modules to handle or forward frame errors
  42. #498 - Add pydm as a dependency. Use conda-forge boost libraries in anaconda.
  43. #471 - Pure python zmq client
  44. #474 - Make some functions public so they can be access by users
  45. #473 - Supress stack trace for memory errors
  46. #468 - Move address map dump to root
  47. #464 - Allow process device to be called with an arg
  48. #469 - Move VirtualClient to interfaces
  49. #494 - Add root level group lists for streaming and sql logging
  50. #493 - Add gui run helper; Remove syslog error loops
  51. #441 - Add variable information dialog box
  52. #443 - Fix spin box updates
  53. #450 - Fix pre-release bugs and add more Remote Variable fields
  54. #451 - Change the way alarms are displayed in the GUI
  55. #465 - Support zip file archives for libraries and config files
  56. #502 - Fix mac compile
  57. #496 - Add yaml save compression
  58. #467 - Fix race condition in waitFor methods
  59. #456 - Update anaconda documentation
  60. #407 - Handle File Write Errors With Log Error Instead Of Exception
  61. #509 - Change default gui to PYDM
  62. #447 - Add ability to define command return type
  63. #459 - Use tidair-packages for epics modules instead of lcls-ii
  64. #487 - Add wait helper
  65. #477 - Provide mechanism to lock variable contents
  66. #485 - Revert stream to use encoded variable value
  67. #403 - Support 64-bit file sizes
  68. #437 - Call enable variable update chain directly
  69. #449 - protocols/batcher/CoreV1.cpp Update
  70. #514 - Merge in thread names for UDP client and server
  71. #503 - Add NoServe Group
  72. #510 - PrbsRx: Check for frame errors and address segfault
  73. #462 - Remove epics from mac build
  74. #448 - Batcher bug fixes
  75. #479 - Pass varValue list to test function
  76. #505 - Fix corner case where block and device have the same offset
  77. #492 - Adding twosComplement() function to _Model.py
  78. #460 - Hidden fix
  79. #430 - Fix out of bounds error in configuration file
  80. #488 - Adding checkPayload argument to PrbsRx
  81. #486 - Avoid sending empty streams
  82. #495 - Allow user to update a command's function
  83. #454 - Add deprecation warning to background commands
  84. #435 - Fix config load issue
  85. #523 - Fixed typo in _gui.py
  86. #490 - Exclude hidden in gui by default
  87. #483 - Increase max byte size for PRBS
  88. #457 - Update package requirements in documentation
  89. #453 - Remove debug message

Pull Request Details

Replicate Existing GUI Using PYDM

Author: Ryan Herbst [email protected]
Date: Tue Sep 17 19:58:46 2019 -0700
Pull: #500 (1599 additions, 275 deletions, 25 files changed)
Branch: slaclab/pydm_frame

Notes:

you can now use the pydm gui:

python -m pyrogue pydm


Updates to PYDM Interface to make use of PYDM features

Author: Ryan Herbst [email protected]
Date: Tue Sep 24 11:21:49 2019 -0700
Pull: #519 (767 additions, 338 deletions, 27 files changed)
Branch: slaclab/gui_enhance

Notes:


Make error messages more clear

Author: Ryan Herbst [email protected]
Date: Fri Aug 30 15:23:59 2019 -0700
Pull: #472 (304 additions, 374 deletions, 45 files changed)
Branch: slaclab/error_messages

Notes:

This PR changes many of the error messages in the system in order to make them more clear to the end user.

In order to accomplish this the error transport for memory transactions is now changed. In the new model the error message is generated at the lowest level, allowing more specific details to be communicated.

This will break custom memory hubs written in either C++ or Python as the transaction->done() interface changes. Applications which use a memory bridge should re-deploy both sides of the link.


Add SQL Logger

Author: Ryan Herbst [email protected]
Date: Wed Sep 4 12:59:50 2019 -0700
Pull: #481 (172 additions, 429 deletions, 10 files changed)
Branch: slaclab/msql_logging

Notes:

This adds an optional sql logger to PyRogue. The url of the sql interface is passed to the root.start() method via the sqlUrl parameter.

Variable updates and syslog entries will be added to the database.

I have also removed the obsolete mysql control interface.


Updated API For DataWriter Device Class

Author: Ryan Herbst [email protected]
Date: Wed Aug 7 16:18:51 2019 -0700
Pull: #440 (321 additions, 182 deletions, 9 files changed)
Branch: slaclab/ESROGUE-367
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-367

Notes:

This PR addresses ESROGUE-367 by changing the API of the DataWriter base class and the C++ modules which are used with it. Instead of having an open/close combo box, the API now uses open and close commands and provides the current status.

I have also moved the DataWriter sub-device into its own file.


Reorganize fileio directory and update FileReader

Author: Ryan Herbst [email protected]
Date: Wed Sep 4 13:00:24 2019 -0700
Pull: #478 (292 additions, 199 deletions, 6 files changed)
Branch: slaclab/numpy_reader

Notes:

This PR breaks the fileio.py file into multiple files under a fileio sub-directory. Existing imports will still work as before.

I also have updated the currently unused FileReader to provide a path lookup mechanism for configuration as well as return the data contents as a numpy array.


Cleanup

Author: Ryan Herbst [email protected]
Date: Thu Sep 19 12:54:58 2019 -0700
Pull: #507 (216 additions, 253 deletions, 17 files changed)
Branch: slaclab/cleanup

Notes:


Add support for Rogue PyDm plugin

Author: Ryan Herbst [email protected]
Date: Wed Sep 11 14:08:13 2019 -0400
Pull: #491 (447 additions, 4 deletions, 16 files changed)
Branch: slaclab/pydm

Notes:

This PR adds the PyDm plugin for Rogue in the pydm sub-directory.


Add groups field to Nodes

Author: Ryan Herbst [email protected]
Date: Fri Aug 30 00:55:51 2019 -0700
Pull: #455 (241 additions, 208 deletions, 21 files changed)
Branch: slaclab/group

Notes:

This groups field replaces the visibility field and changes the implementation of the hidden flag. Each node in the system can be a part of one or more groups, stored as a list of strings. Setting a Node as hidden adds the 'Hidden' string to the groups list. Unhiding a node removes the 'Hidden' string from the groups list.

A device can be added to or removed from a group dynamically. When adding children to a node, the children will inherit the groups that the parent is part of (to be discussed?). Later adding a Node to a group will result in its children also being added to the group(?). Removing a Node from a group does not affect the child group membership. (should be discussed).

The Nodes can later be filtered by the incGroups and excGroups arguments. The Node is selected if it is a member of any of t...

Read more

Release Version 3.3.8

20 Sep 17:42
2e8939d
Compare
Choose a tag to compare

Pull Requests

  1. #506 - Add thread names

Pull Request Details

Add thread names

Author: Ryan Herbst [email protected]
Date: Fri Sep 20 10:40:57 2019 -0700
Pull: #506 (6 additions, 0 deletions, 2 files changed)
Branch: slaclab/ESROGUE-391
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-391

Notes:

@slacrherbst Now that you added the fix to the race conditions, we can put back these ones.


Release 3.3.7

18 Sep 05:25
ee4a931
Compare
Choose a tag to compare

Pull Requests

  1. #499 - Add thread names

Pull Request Details

Add thread names

Author: Jesus Vasquez [email protected]
Date: Tue Sep 17 22:18:11 2019 -0700
Pull: #499 (217 additions, 168 deletions, 17 files changed)
Branch: slaclab/ESROGUE-391
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-391

Notes:

With these changes, I see this output when running top:

Threads:  22 total,   0 running,  22 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.8 us,  4.4 sy,  0.0 ni, 93.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 16038172 total, 11330456 free,  1320016 used,  3387700 buff/cache
KiB Swap: 16777212 total, 16777212 free,        0 used. 14370776 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
21671 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:03.63 python3
21692 cryo      20   0 4567564 222848  68692 S  6.6  1.4   0:02.47 AxiStreamDma
21693 cryo      20   0 4567564 222848  68692 S  6.3  1.4   0:01.88 AxiStreamDma
21694 cryo      20   0 4567564 222848  68692 S  6.6  1.4   0:01.89 AxiStreamDma
21695 cryo      20   0 4567564 222848  68692 S  6.6  1.4   0:01.89 AxiStreamDma
21696 cryo      20   0 4567564 222848  68692 S  6.0  1.4   0:01.88 AxiStreamDma
21697 cryo      20   0 4567564 222848  68692 S  6.3  1.4   0:01.88 AxiStreamDma
21698 cryo      20   0 4567564 222848  68692 S  6.3  1.4   0:01.88 AxiStreamDma
21699 cryo      20   0 4567564 222848  68692 S  6.3  1.4   0:01.84 AxiStreamDma
21700 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.00 ZMQbg/0
21701 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.00 ZMQbg/1
21702 cryo      20   0 4567564 222848  68692 S  4.3  1.4   0:02.43 python3
21703 cryo      20   0 4567564 222848  68692 S  1.3  1.4   0:00.41 python3
21704 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.00 Fifo
21705 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.00 Fifo
21706 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.00 Fifo
21707 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.00 Fifo
21708 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.00 Fifo
21709 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.00 Fifo
21710 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.03 EpicsV3Server
21711 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.00 QXcbEventQueue
21713 cryo      20   0 4567564 222848  68692 S  0.0  1.4   0:00.01 QDBusConnection

Release Version 3.7.0

05 Aug 23:20
Compare
Choose a tag to compare

Pull Requests

  1. #428 - Pass VariableValue class to update functions
  2. #427 - Build fix for EPICS 7 which moves pcas to a separate package.
  3. #425 - Poller Enhancements
  4. #436 - Remove group from gui
  5. #424 - Fix epics enum interface
  6. #434 - Fix config load issue
  7. #426 - Fix build error deriving zeromq location from LD_LIBRARY_PATH.
  8. #438 - Fix missing bit overlap check when adding variables to a block.
  9. #432 - Root needs to expand by default
  10. #429 - Change combo box display
  11. #423 - Change default of expand from True to False
  12. #433 - Expose Root.waitOnUpdate() on ZMQ Server

Pull Request Details

Pass VariableValue class to update functions

Author: Ryan Herbst [email protected]
Date: Thu Aug 1 16:51:24 2019 -0700
Pull: #428 (47 additions, 50 deletions, 9 files changed)
Branch: slaclab/var-update

Notes:

This PR changes the API for the variable update functions. The API changes from:

varUpdated(path, value, disp)

to

varUpdated(path,varValue)

This will impact any application code which uses these callbacks. This will enable more information, such as alarm state, to be passed as part of the update. This also removes the check for varUpdated as part of the passed class. You must now either pass a variable or the function.


Build fix for EPICS 7 which moves pcas to a separate package.

Author: Ryan Herbst [email protected]
Date: Wed Jul 24 10:03:31 2019 -0700
Pull: #427 (43 additions, 16 deletions, 1 files changed)
Branch: bhill-slac/epics-V7-pcas

Notes:

EPICS 7 moves pcas, the portable CA server, to a separate EPICS style module.
i.e. paths are: ${EPICS_PCAS_ROOT}/include and ${EPICS_PCAS_ROOT}/lib/${EPICS_HOST_ARCH}

This fix could use some cleanup as it leaves a number of variable names w/ V3 intact,
but I wanted to minimize changed lines.

If you want I can submit another pull request that cleans up the V3 vs V7 stuff and the
cookie-cutter apple vs linux support.


Poller Enhancements

Author: Ryan Herbst [email protected]
Date: Wed Jul 17 10:39:55 2019 -0700
Pull: #425 (31 additions, 14 deletions, 3 files changed)
Branch: slaclab/hps-dev

Notes:

Allows the poller to be started and stopped (actually paused) via a new PollEn Variable available in every Root.

Under the hood, the PollQueue is now created in every Root, but will be immediately paused depending on the value of Root.start(pollEn=). The Root.PollEn variable can then be used to start and stop polling at runtime.

There is also a bug fix in the PollQueue that sets the next readout time for each polled Variable based on the current time. This way the poller wont fall behind and poll constantly to catch up.


Remove group from gui

Author: Ryan Herbst [email protected]
Date: Thu Aug 1 14:06:38 2019 -0700
Pull: #436 (22 additions, 22 deletions, 3 files changed)
Branch: slaclab/no_group

Notes:

This removes the concept of a "group" from the gui. Instead the roots are added right at the top level of the tree, removing an unnecessary level of indent.


Fix epics enum interface

Author: Benjamin Reese [email protected]
Date: Tue Jul 16 11:05:47 2019 -0700
Pull: #424 (28 additions, 7 deletions, 3 files changed)
Branch: slaclab/epics_enum

Notes:


Fix config load issue

Author: Ryan Herbst [email protected]
Date: Thu Aug 1 14:10:37 2019 -0700
Pull: #434 (21 additions, 2 deletions, 4 files changed)
Branch: slaclab/cfg_load

Notes:

This fixes an issue where a memory block bit is first set to 1 using a configuration file wildcard and then later set to zero. The current code would not clear the bit.


Fix build error deriving zeromq location from LD_LIBRARY_PATH.

Author: Ryan Herbst [email protected]
Date: Fri Jul 19 10:40:06 2019 -0700
Pull: #426 (7 additions, 5 deletions, 1 files changed)
Branch: bhill-slac/zeromq-build-fix

Notes:

Minor build fix plus minor error msg tweaks.


Fix missing bit overlap check when adding variables to a block.

Author: Larry Ruckman [email protected]
Date: Mon Aug 5 09:18:36 2019 -0700
Pull: #438 (3 additions, 1 deletions, 1 files changed)
Branch: slaclab/ESROGUE-381
Jira: https://jira.slac.stanford.edu/issues/ESROGUE-381

Notes:


Root needs to expand by default

Author: Benjamin Reese [email protected]
Date: Wed Jul 31 15:36:05 2019 -0700
Pull: #432 (2 additions, 2 deletions, 1 files changed)
Branch: slaclab/root-expand

Notes:

Description

Root needs to expand by default. Otherwise the GUI opens fully minimized every time. Devices under the root can minimize by default.


Change combo box display

Author: Ryan Herbst [email protected]
Date: Thu Aug 1 12:32:30 2019 -0700
Pull: #429 (2 additions, 1 deletions, 1 files changed)
Branch: slaclab/combo_box

Notes:

A combo box will only be created in the GUI if both min and max are not None, the variable is not read only and the display value is the default of {}.


Change default of expand from True to False

Author: Ryan Herbst [email protected]
Date: Wed Jul 17 10:37:16 2019 -0700
Pull: #423 (1 additions, 1 deletions, 1 files changed)
Branch: slaclab/device-expand-default-change

Notes:

Description

  • Change default of expand from True to False

Expose Root.waitOnUpdate() on ZMQ Server

Author: Ryan Herbst [email protected]
Date: Thu Aug 1 12:30:45 2019 -0700
Pull: #433 (1 additions, 0 deletions, 1 files changed)
Branch: slaclab/kpix-dev

Notes:


Bug Fix Version 3.3.6

01 Aug 23:58
e80eab4
Compare
Choose a tag to compare

Pull Requests

  1. #435 - Fix config load issue

Pull Request Details

Fix config load issue

Author: Ryan Herbst [email protected]
Date: Thu Aug 1 16:53:35 2019 -0700
Pull: #435 (2 additions, 1 deletions, 2 files changed)
Branch: slaclab/cfg_load_smurf

Notes:

This fixes an issue where a memory block bit is first set to 1 using a configuration file wildcard and then later set to zero. The current code would not clear the bit.


Bug Fix Release 3.3.4

24 Jul 17:15
74623a6
Compare
Choose a tag to compare

Pull Requests

  1. #430 - Fix out of bounds error in configuration file

Pull Request Details

Fix out of bounds error in configuration file

Author: Jesus Vasquez [email protected]
Date: Wed Jul 24 10:08:58 2019 -0700
Pull: #430 (4 additions, 1 deletions, 1 files changed)
Branch: slaclab/ESCRYODET-210
Jira: https://jira.slac.stanford.edu/issues/ESCRYODET-210

Notes:

https://jira.slac.stanford.edu/browse/ESCRYODET-210


Release 3.6.0

29 Jun 05:52
9f564fb
Compare
Choose a tag to compare

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]...
Read more

Bug Fix Release v3.5.1

28 Jun 21:04
b363364
Compare
Choose a tag to compare

Pull Requests

  1. #421 - Fix bad drops in FIFO

Pull Request Details

Fix bad drops in FIFO

Author: Ryan Herbst [email protected]
Date: Fri Jun 28 14:01:37 2019 -0700
Pull: #421 (1 additions, 1 deletions, 1 files changed)
Branch: slaclab/fifo_fix2

Notes: