Releases: slaclab/rogue
Release 4.2.0
Pull Requests
- #542 - Move Root start parameters to init method
- #538 - Add worker thread to sql logger
- #536 - Rename c++ helpers to avoid name conflicts
- #535 - Allow config files to load from zip files
- #541 - Remove dynamic resize to avoid qtimer message
- #537 - Defer refresh on expand in legacy gui
- #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
Pull Requests
- #531 - Support auto server port assignment
- #524 - Enable heartbeat outside of poll, gui state indication
- #534 - Fixes to ZMQ Interfaces.
- #533 - Cleanup ZMQ shutdown lockups
- #529 - Add out of order test module for RSSI
- #525 - Add node name schema check warning
- #527 - Add RSSI value check, and proper python init values
- #530 - Remind user to check jumbo frame setting if RSSI link is failing
- #532 - Support non-contiguous numpy arrays in putNumpy
- #526 - Somewhat sloppy way to generate n frames in PrbsTx
- #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
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
- #500 - Replicate Existing GUI Using PYDM
- #519 - Updates to PYDM Interface to make use of PYDM features
- #472 - Make error messages more clear
- #481 - Add SQL Logger
- #440 - Updated API For DataWriter Device Class
- #478 - Reorganize fileio directory and update FileReader
- #507 - Cleanup
- #491 - Add support for Rogue PyDm plugin
- #455 - Add groups field to Nodes
- #513 - Pymd init
- #442 - Add alarm levels to Variables
- #452 - Add EPICS 4 (P4P) Support
- #499 - Add thread names
- #501 - Merge 3.3.7 Changes
- #190 - Add big-endian and fixed-point Models
- #446 - Add process device
- #480 - Improve SystemLog Inteface And Display
- #517 - Add native numpy get and put for Frames
- #470 - Add CPSW Export Utilities
- #518 - Add support for multidimensional arrays
- #497 - Speedup array attribute lookups, revamp attributeHelper and nodeMatch
- #512 - ESROGUE-210 - Add UART Memory Interface
- #504 - Add Process Widget
- #516 - Prep For release.
- #482 - Add data receiver Device
- #508 - Allow sub-transactions on large blocks
- #476 - Add command line entry point
- #484 - Legacy file updates and better checks
- #410 - Check for error when extracting python values
- #458 - Remove PCAS support from MACOS, properly detect existence of PCAS
- #461 - Add VariableWait function to wait for values in one or more variables
- #405 - Allow user to specify typeStr for LocalVariables
- #515 - Update rx device
- #463 - Add simple ZmqClient class
- #520 - Minor Updates to Frame Numpy Interface
- #489 - Allow for read of configuration directory containing multiple files
- #466 - Change names in DataWriter to break interface.
- #475 - Add poll blocking context
- #521 - Update array storage to a dictionary
- #522 - Add expand sub-menus for arrays.
- #511 - Update modules to handle or forward frame errors
- #498 - Add pydm as a dependency. Use conda-forge boost libraries in anaconda.
- #471 - Pure python zmq client
- #474 - Make some functions public so they can be access by users
- #473 - Supress stack trace for memory errors
- #468 - Move address map dump to root
- #464 - Allow process device to be called with an arg
- #469 - Move VirtualClient to interfaces
- #494 - Add root level group lists for streaming and sql logging
- #493 - Add gui run helper; Remove syslog error loops
- #441 - Add variable information dialog box
- #443 - Fix spin box updates
- #450 - Fix pre-release bugs and add more Remote Variable fields
- #451 - Change the way alarms are displayed in the GUI
- #465 - Support zip file archives for libraries and config files
- #502 - Fix mac compile
- #496 - Add yaml save compression
- #467 - Fix race condition in waitFor methods
- #456 - Update anaconda documentation
- #407 - Handle File Write Errors With Log Error Instead Of Exception
- #509 - Change default gui to PYDM
- #447 - Add ability to define command return type
- #459 - Use tidair-packages for epics modules instead of lcls-ii
- #487 - Add wait helper
- #477 - Provide mechanism to lock variable contents
- #485 - Revert stream to use encoded variable value
- #403 - Support 64-bit file sizes
- #437 - Call enable variable update chain directly
- #449 - protocols/batcher/CoreV1.cpp Update
- #514 - Merge in thread names for UDP client and server
- #503 - Add NoServe Group
- #510 - PrbsRx: Check for frame errors and address segfault
- #462 - Remove epics from mac build
- #448 - Batcher bug fixes
- #479 - Pass varValue list to test function
- #505 - Fix corner case where block and device have the same offset
- #492 - Adding twosComplement() function to _Model.py
- #460 - Hidden fix
- #430 - Fix out of bounds error in configuration file
- #488 - Adding checkPayload argument to PrbsRx
- #486 - Avoid sending empty streams
- #495 - Allow user to update a command's function
- #454 - Add deprecation warning to background commands
- #435 - Fix config load issue
- #523 - Fixed typo in _gui.py
- #490 - Exclude hidden in gui by default
- #483 - Increase max byte size for PRBS
- #457 - Update package requirements in documentation
- #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...
Release Version 3.3.8
Pull Requests
- #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
Pull Requests
- #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
Pull Requests
- #428 - Pass VariableValue class to update functions
- #427 - Build fix for EPICS 7 which moves pcas to a separate package.
- #425 - Poller Enhancements
- #436 - Remove group from gui
- #424 - Fix epics enum interface
- #434 - Fix config load issue
- #426 - Fix build error deriving zeromq location from LD_LIBRARY_PATH.
- #438 - Fix missing bit overlap check when adding variables to a block.
- #432 - Root needs to expand by default
- #429 - Change combo box display
- #423 - Change default of
expand
from True to False - #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 everyRoot
.Under the hood, the PollQueue is now created in every Root, but will be immediately paused depending on the value of
Root.start(pollEn=)
. TheRoot.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
Pull Requests
- #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
Pull Requests
- #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:
Release 3.6.0
Pull Requests
- #385 - Add remote zmq client to replace Pyro4 library
- #420 - Update toFrame and fromFrame to be buffer boundary aware
- #400 - Make pickle operation recursive, Use JSON for ZMQ Interface
- #392 - Add gui client to pyrogue.gui module
- #417 - Features and Enhancements from HPS development
- #391 - Allow sync read/write operation in EPICS interface
- #411 - Check for error when extracting python values
- #418 - Add no epics build for anaconda
- #413 - Add generic data reader class
- #406 - Allow user to specify typeStr for Local Variables
- #386 - Add GUI pop up menu to enable read/write methods on variables on devices
- #401 - Remove unnecessary ZMQ timeout setting
- #390 - Add ability to stop stream and memory zmq bridges
- #393 - Add option to restart/exit server
- #408 - Handle File Write Errors With Log Error Instead Of Exception
- #399 - Fix unknown types in RSSI GUI
- #388 - Fixes for Atlas use. Adds CMake flag to link a static librogue-core
- #384 - Add configurable timeout to shared memory functions.
- #419 - Properly handle variables that return None in dataToYaml
- #402 - Support 64-bit file sizes
- #414 - Store raw VariableValue dictionary in data files
- #389 - Check root level name in getPath
- #395 - Increase ZMQ timeout values to 1 second
- #382 - Fix file overflow size comparison
- #396 - Assert notify_all while holding conditional lock
- #415 - Enable find for VirtualNode
- #409 - Fix network connect errors
- #394 - Enable zmq server by default
- #416 - Throw exception when attempting to start a root that is already running.
- #422 - Fix poll enable update for variables
- #412 - Add txSize units to PRBS generator
- #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
functionMemoryDevice
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.FileDataFileReader.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]... |
Bug Fix Release v3.5.1
Pull Requests
- #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: