Releases: slaclab/pysmurf
v5.0.0
Major changes that affect users
Number of subbands changed from 128 to 512
To lower the current draw on the FPGA, the number of channels in the polyphase filter bankw was increased from 128 to 512. This means there are 512 subbands instead of 128. This mainly affects find_freq. We now provide start_freq and stop_freq optional arguments which allow then user to define the frequency range to sweep. This is more convenient to use than defining subbands.
Ref phase delay change
The low current firmware has longer processing times. This means the ref_phase_delay is larger than in past releases. The user can remeasure the full delay of the system with estimate_phase_delay. Note that this only changes the value in the current Rogue session. If the Rogue session is killed, it will not be reloaded. The config file can be updated with this new value. This will set the correct value for phase delay on setup()
. The user can manually set the processing delay with set_processing_delay()
.
Tracking setup change lms_gain to feedback_gain
The optional argument lms_gain is now an “expert only” variable. Use feed_back gain instead. See this jupyter notebook and the docstring for more details.
Example script
Mitch's example script that walks users through using the system.
slaclab/pysmurf
Pull Requests Since v4.3.0
Client
Interface-change
- #621 - Find freq eta scan speedup
Bug
- #621 - Find freq eta scan speedup
- #606 - Fixed no_dir error during setup
- #604 - Adds a few register_file calls for noise plots
Enhancement
Pull Request Details
Find freq eta scan speedup
Author: | Edward [email protected] |
Date: | Wed Mar 24 14:05:36 2021 -0700 |
Pull: | #621 (2144 additions, 217 deletions, 12 files changed) |
Branch: | slaclab/find-freq-eta-scan-speedup |
Labels: | bug, client, enhancement, interface-change |
Notes:
Issue
This PR updates the pysmurf software for the low current FW.
Description
[Describe what this PR does here]
Does this PR break any interface?
- Yes
- No
Which interface changed?
Number of subbands changed from 128 to 512
To lower the current draw on the FPGA, the number of channels in the polyphase filter bankw was increased from 128 to 512. This means there are 512 subbands instead of 128. This mainly affects find_freq. We now provide start_freq and stop_freq optional arguments which allow then user to define the frequency range to sweep. This is more convenient to use than defining subbands.
Ref phase delay change
The low current firmware has longer processing times. This means the ref_phase_delay is larger than in past releases. The user can remeasure the full delay of the system with estimate_phase_delay. Note that this only changes the value in the current Rogue session. If the Rogue session is killed, it will not be reloaded. The config file can be updated with this new value. This will set the correct value for phase delay on setup(). The user can manually set the processing delay with set_processing_delay().
Tracking setup change lms_gain to feedback_gain
The optional argument lms_gain is now an “expert only” variable. Use feed_back gain instead. See this jupyter notebook and the docstring for more details.
What was the interface before the change
[Describe here how was the original interface]
What will be the new interface after the change
[Describe here how is the new interface, and what the difference with the original interface]
take_noise_psd return_noise_params expanding
Author: | Edward [email protected] |
Date: | Fri Mar 19 14:33:52 2021 -0700 |
Pull: | #616 (21 additions, 11 deletions, 1 files changed) |
Branch: | slaclab/issue614 |
Issues: | #614 |
Labels: | client, enhancement |
Notes:
Issue
This resolves #614
Description
Returns all the fit parameters
Does this PR break any interface?
- Yes
- No
The dimension of the return parameter is now larger.
Which interface changed?
[Indicate here what is the interface that changed, preferable with a link to the code where the interface is defined]
What was the interface before the change
[Describe here how was the original interface]
What will be the new interface after the change
[Describe here how is the new interface, and what the difference with the original interface]
Fixed no_dir error during setup
Author: | Edward [email protected] |
Date: | Tue Feb 16 15:46:38 2021 -0800 |
Pull: | #606 (49 additions, 49 deletions, 1 files changed) |
Branch: | slaclab/issue600 |
Issues: | #600 |
Labels: | bug, client |
Notes:
Issue
Resolves #600 and https://github.com/simonsobs/smurf-issues/issues/24
Description
Figured out there was an error during setup in this branch that happened because some code was indented once to many times, which caused some of the setup not to be run if
no_dir=True
. This PR de-indents it.Does this PR break any interface?
- Yes
- No
Adds a few register_file calls for noise plots
Author: | Edward [email protected] |
Date: | Tue Feb 16 15:45:37 2021 -0800 |
Pull: | #604 (12 additions, 0 deletions, 1 files changed) |
Branch: | slaclab/register_noise_plots |
Issues: | #603 |
Labels: | bug, client |
Notes:
Issue
Issue #603
Description
Adds a few
register_file
statements totake_noise_psd
and correctly sets the publisher action.I'm not exactly sure which branch I should merge this into... I think we have some people running on the main branch, but if find-freq-eta-scan-speedup will be merged soon then I think it's ok.
Does this PR break any interface?
- Yes
- No
v4.3.0
Pull Requests Since v4.2.1
Client
Bug
- #595 - Bug in emulator period data type handling
- #599 - Update
set_default_pv
to handle the newRuntimeError
exception - #613 - Change units in read_stream_data
Enhancement
- #617 - Update tracking_setup, add feedback_gain and documentation
- #587 - Issue586 - Changing name of NEI_to_NEP to get_NEI_to_NEP_factor
- #590 - Adding retry attempt to caget
- #607 - Fixes #605.
Core
Interface-change
- #553 - Add external trigger (from timing system) to the downsampler
- #593 - Smurf Server Publisher modifications
Bug
- #615 - Update smurf-rogue base image to version R2.8.3
Enhancement
- #553 - Add external trigger (from timing system) to the downsampler
- #593 - Smurf Server Publisher modifications
Unlabeled
Pull Request Details
Update tracking_setup, add feedback_gain and documentation
Author: | Edward [email protected] |
Date: | Tue Mar 2 18:09:31 2021 -0800 |
Pull: | #617 (49 additions, 4 deletions, 1 files changed) |
Branch: | slaclab/feedback-doc |
Issues: | #592 |
Labels: | client, enhancement |
Notes:
Issue
This PR resolves #592.
Description
Adds doc strings for LMS gain. Also introduces feedback_gain parameter to tracking
Does this PR break any interface?
- Yes
- No
Which interface changed?
[Indicate here what is the interface that changed, preferable with a link to the code where the interface is defined]
What was the interface before the change
[Describe here how was the original interface]
What will be the new interface after the change
[Describe here how is the new interface, and what the difference with the original interface]
Update smurf-rogue base image to version R2.8.3
Author: | Jesus Vasquez [email protected] |
Date: | Fri Feb 26 19:38:51 2021 -0800 |
Pull: | #615 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/ESCRYODET-728 |
Jira: | https://jira.slac.stanford.edu/issues/ESCRYODET-728 |
Labels: | bug, core |
Notes:
Issue
This PR resolves ESCRYODET-728.
Description
This PR updates Rogue to version v4.11.7. This version of Rogue contains a fix for the unbound memory usage increase described in ESCRYODET-728.
Does this PR break any interface?
- Yes
- No
Change units in read_stream_data
Author: | Edward [email protected] |
Date: | Fri Feb 26 13:31:01 2021 -0800 |
Pull: | #613 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/issue612 |
Issues: | #612 |
Labels: | bug, client |
Notes:
Issue
This PR resolves #612
Description
Corrects doc-string for read_stream_data.
Does this PR break any interface?
- Yes
- No
Fixes #605.
Author: | Edward [email protected] |
Date: | Wed Feb 17 14:44:02 2021 -0800 |
Pull: | #607 (6 additions, 2 deletions, 1 files changed) |
Branch: | slaclab/issue605 |
Labels: | client, enhancement |
Notes:
Issue
This PR resolves #605
Description
Adds an output directory keyword (output_dir) to the analyze_iv_from_file so we can dump the analysis results to another location.
Does this PR break any interface?
- Yes
- No
Which interface changed?
Extra keyword in analyze_iv_from_file
What was the interface before the change
IV analysis outputs could only be saved in the folder structure on the smurf server. Would throw errors if the files had been moved.
What will be the new interface after the change
Extra keyword in analyze_iv_from_file means you can tell it where to save the results.
Smurf Server Publisher modifications
Author: | Edward [email protected] |
Date: | Tue Feb 16 16:16:38 2021 -0800 |
Pull: | #593 (36 additions, 4 deletions, 1 files changed) |
Branch: | slaclab/issue588 |
Issues: | #588 |
Labels: | core, enhancement, interface-change |
Notes:
Issue
This PR resolves #588.
Description
This PR adds the following changes to the Publisher class as requested in #588:
- Metadata publishes will now have
msgtype
set tometadata
, instead ofgeneral
,- When publishing metadata, the content of the
data
field will now be key, value pairs, in JSON format, containing the Rogue register path (path
), the register value (value
), and the value type (type
).I tested this changes, with the default variable group, and modifying the _backend_null method to print the received messages, and obtained this:
{"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.3430576, "seq_no": 1565, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.ChannelMapper.NumChannels", "value": 1, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.3466105, "seq_no": 1566, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.FrameRxStats.FrameLossCnt", "value": 123, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.3493185, "seq_no": 1567, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.PreDataEmulator.Amplitude", "value": 65535, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.3505917, "seq_no": 1568, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.FileWriter.TotalSize", "value": 0, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.3531475, "seq_no": 1569, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.PostDataEmulator.Amplitude", "value": 4294967295, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.355861, "seq_no": 1570, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.FileWriter.CurrentSize", "value": 0, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.3562307, "seq_no": 1571, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.FrameRxStats.FrameSize", "value": 8320, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.3567724, "seq_no": 1572, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.PostDataEmulator.Offset", "value": 0, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.3584292, "seq_no": 1573, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.FileWriter.FrameCount", "value": 0, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.3591156, "seq_no": 1574, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.FrameRxStats.BadFrameCnt", "value": 0, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.359428, "seq_no": 1575, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.PreDataEmulator.Offset", "value": 0, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.3594973, "seq_no": 1576, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.FrameRxStats.FrameCnt", "value": 791596, "type": "int"}} {"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611797885.36481, "seq_no": 1577, "type": "metadata", "payload": {"path": "AMCc.SmurfProcessor.FrameRxStats.FrameOutOrderCnt", "value": 0, "type": "int"}}
I added a numpy array variable (
np.zeros(5)
) for testing and got this message:{"host": "smurf-srv06", "id": "undeclared", "script": "PySmurf_Server", "time": 1611858311.23576, "seq_no": 1239, "type": "metadata", "payload": {"path": "AMCc.SmurfApplication.NPArrayTest", "value": [0.0, 0.0, 0.0, 0.0, 0.0], "type": "ndarray"}}
Additionally, I added
try-exception
statement when converting the message to JSON to catch exceptions. If an exception occurs, the error message is logged.Does this PR break any interface?
- Yes
- No
Which interface changed?
The content of the metadata send to the
Publisher
What was the interface before the change
msgtype
wasgeneral
,data
was a string containingregister_path=register_value
What will be the new interface after the change
msgtype
is nowmetadata
,data
is now formed by the following key, value pairs in JSON format:
path
: Register path,value
: Register value (numpy arrays are converted to lists)type
: the value type, as a string.
Add external trigger (from timing system) to the downsampler
Author: | Edward [email protected] |
Date: | Tue Feb 16 16:01:54 2021 -0800 |
Pull: | #553 (147 additions, 42 deletions, 4 files changed) |
Branch: | slaclab/ESCRYODET-472 |
Jira: | https://jira.slac.stanford.edu/issues/ESCRYO... |
v4.2.1
Pull Requests Since v4.2.0
Client
Bug
- #585 - Bug fix: During
setup()
, check ifset_defaults_pv
succeeded before continue with setup.
Enhancement
- #581 - pre/post data emulator
Core
Bug
- #585 - Bug fix: During
setup()
, check ifset_defaults_pv
succeeded before continue with setup. - #583 - Fix drop of processed frames into data files and custom transmitters, and improve performance
Enhancement
- #584 - Add
SmurfProcessor
filter and unwrapper tests to the Github Action pysmurf core CI tests - #583 - Fix drop of processed frames into data files and custom transmitters, and improve performance
Pull Request Details
Fix drop of processed frames into data files and custom transmitters, and improve performance
Author: | Jesus Vasquez [email protected] |
Date: | Tue Jan 19 14:56:19 2021 -0800 |
Pull: | #583 (23 additions, 15 deletions, 1 files changed) |
Branch: | slaclab/ESCRYODET-796 |
Jira: | https://jira.slac.stanford.edu/issues/ESCRYODET-796 |
Labels: | bug, core, enhancement |
Notes:
Issue
This PR resolves ESCRYODET-796.
Description
This PR fixes a bug in the data processor which was causing processed frames to be dropped before going to the FileWriter as well as Custom transmitter clients (like SO streamers for example).
This PR also improved the performance when moving processed data to the thread that passes the frame to the FileWriter and Custom transmitter, so now it can handle frames rates up to ~
14-20 frames/s
(respect to ~1 kframe/s
in the previous version).Details of the test and results can be found here:
https://jira.slac.stanford.edu/browse/ESCRYODET-796Does this PR break any interface?
- Yes
- No
pre/post data emulator
Author: | Shawn Henderson [email protected] |
Date: | Tue Jan 19 11:47:04 2021 -0800 |
Pull: | #581 (210 additions, 0 deletions, 2 files changed) |
Branch: | slaclab/issue580 |
Issues: | #580, #292 |
Labels: | client, enhancement |
Notes:
Issue
This PR resolves #580 and #292 .
Description
Introduces the pre/post data emulator pysmurf hooks.
Does this PR break any interface?
- Yes
- No
Which interface changed?
[Indicate here what is the interface that changed, preferable with a link to the code where the interface is defined]
What was the interface before the change
[Describe here how was the original interface]
What will be the new interface after the change
[Describe here how is the new interface, and what the difference with the original interface]
Bug fix: During setup()
, check if set_defaults_pv
succeeded before continue with setup.
Author: | Jesus Vasquez [email protected] |
Date: | Tue Jan 19 09:01:21 2021 -0800 |
Pull: | #585 (38 additions, 31 deletions, 3 files changed) |
Branch: | slaclab/ESCRYODET-791 |
Jira: | https://jira.slac.stanford.edu/issues/ESCRYODET-791 |
Labels: | bug, client, core |
Notes:
Issue
This PR resolves ESCRYODET-791.
Description
This PR fixes a bug in
setup()
, which was continuing with the setup process whenset_defaults_pv
fails. It also reduces the number of number of times the server retries to load defaults to 4, to be equivalent to the 400s timeout the client uses.This PR also adds a fix to
profile_band.py
test, which should check ifsetup()
succeed before continuing with the test.Does this PR break any interface?
- Yes
- No
Add SmurfProcessor
filter and unwrapper tests to the Github Action pysmurf core CI tests
Author: | Jesus Vasquez [email protected] |
Date: | Fri Jan 15 15:06:58 2021 -0800 |
Pull: | #584 (65 additions, 7 deletions, 6 files changed) |
Branch: | slaclab/ESCRYODET-799 |
Jira: | https://jira.slac.stanford.edu/issues/ESCRYODET-799 |
Labels: | core, enhancement |
Notes:
Issue
This PR resolves ESCRYODET-799.
Description
This PR adds the test scripts to validate the
SmurfProcessor
filter and unwrapper code (tests/core/validate_filter.py
andtests/core/validate_unwrapper.py
) to the Github Action pysmurf core CI tests.Does this PR break any interface?
- Yes
- No
v4.2.0
Major changes that affect users:
#564 which updated the smurf-rogue
base image version to R2.8.2
, introduced a rogue version with an incompatibility interface changes to previous versions. Rogue changed its underlaying ZMQ interface between server and remote clients (i.e. GUI) applications, this means that pysmurf server applications using this version (or higher) need to use smurf-rogue
version R2.8.2
or higher in order to connect a remote GUI.
Pull Requests Since v4.1.0
Client
Interface-change
- #572 - Remove local copy of the
schema
python package - #570 - Set the type of the
FrameCnt
local variable toUInt64
Bug
- #550 - Critical fix for decode_data function that eliminates glitching seen at NIST.
- #542 - Resolving bugs in analyze_noise_vs_bias
- #555 - Fix for resetting RF DACs after first setup in latest software versions.
- #552 - PySmurf should never set TestBiasDacCtrlRegCh to 0x0
- #532 - Fixing doc string for get_tes_bias_bipolar_array
- #530 - Swapping UC/DC att call at beginning of estimate_phase_delay
- #557 - Fixes bug that was causing find_freq to crash if not given a start/stop_freq or subband arg.
- #570 - Set the type of the
FrameCnt
local variable toUInt64
- #547 - Change register_file default
- #509 - Expanded refPhaseDelay config file limits from 4 to 5 bits.
Enhancement
- #527 - Thermal test scripts and bug fixes for long Westpak run with 6x carriers.
- #572 - Remove local copy of the
schema
python package - #537 - Issue524
- #548 - Adding flag to skip IV analysis functions after running S.run_iv()
- #533 - changing do_plot to make_plot in smurf_util
- #573 - Pin version of the python packages used in the client docker image
- #539 - RTM reset
Core
Interface-change
- #569 - Disable insertion of TES bias values in the SMuRF packet header in SW
- #577 - SMuRF header: Use Unix Epoch time for word 6
- #570 - Set the type of the
FrameCnt
local variable toUInt64
- #564 - Update smurf-rogue base image to version R2.8.2
Bug
- #565 - Fix mutex lock scopes related to the unwrapper data
- #536 - Fix SIGABRT on DualDataBuffer destruction
- #570 - Set the type of the
FrameCnt
local variable toUInt64
- #567 - Add more restrictions to the find method used to check if
JesdHealth
exists - #564 - Update smurf-rogue base image to version R2.8.2
Enhancement
- #560 - Migrate CI/CD script from Travis to GitHub Actions
- #569 - Disable insertion of TES bias values in the SMuRF packet header in SW
- #577 - SMuRF header: Use Unix Epoch time for word 6
Other
Bug
- #566 - Github Actions: Fix release generation script, which was still referencing Travis env vars
- #579 - Fix GitHub Action job used to generate release notes
- #578 - Fix the GitHub token used during the generation of release notes
Enhancement
- #562 - Update version of the
verify-pr-label-action
action to support PRs from forks
Pull Request Details
Fix GitHub Action job used to generate release notes
Author: | Jesus Vasquez [email protected] |
Date: | Fri Dec 18 13:40:04 2020 -0800 |
Pull: | #579 (2 additions, 0 deletions, 1 files changed) |
Branch: | slaclab/fix-github-action-release-2 |
Labels: | bug |
Notes:
Issue
No issue associated to this PR.
Description
The release note generation script needs to be run with a deep checkout, so that is can find the tags.
Does this PR break any interface?
- Yes
- No
Fix the GitHub token used during the generation of release notes
Author: | Jesus Vasquez [email protected] |
Date: | Fri Dec 18 11:31:58 2020 -0800 |
Pull: | #578 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/fix-github-action-release |
Labels: | bug |
Notes:
Issue
No issue associated to this PR.
Description
Fix the GitHub token used during the generation of release notes.
Does this PR break any interface?
- Yes
- No
SMuRF header: Use Unix Epoch time for word 6
Author: | Jesus Vasquez [email protected] |
Date: | Fri Dec 18 10:57:59 2020 -0800 |
Pull: | #577 (3 additions, 3 deletions, 2 files changed) |
Branch: | slaclab/issue505 |
Issues: | #505 |
Labels: | core, enhancement, interface-change |
Notes:
Issue
This PR resolves #505
Description
Use the UNIX Epoch Time (expressed in nanoseconds) in word 6 of the SMuRF header.
Does this PR break any interface?
- Yes
- No
Which interface changed?
Word 6 in the SMuRF packet header.
What was the interface before the change
Word 6 contained the time obtained using steady_clock, which was a monotonic clock that will never be adjusted (in nanoseconds).
What will be the new interface after the change
Word 6 now contains the time obtained using system_clock instead, which is the wall clock time from the system-wide realtime clock, converted to time since Epoch in nanoseconds.
PySmurf should never set TestBiasDacCtrlRegCh to 0x0
Author: | Shawn Henderson [email protected] |
Date: | Thu Dec 17 17:40:00 2020 -0800 |
Pull: | #552 (20 additions, 7 deletions, 1 files changed) |
Branch: | slaclab/issue-551 |
Issues: | #551 |
Labels: | bug, client |
Notes:
Issue
This PR resolves #551 .
Description
PySmurf should never set TestBiasDacCtrlRegCh to 0x0, this will cause it to rail to -10V. Power on default is 0xE, enabled is 0x2. Let's make PySmurf only ever set 0x2 or 0xE. The command will default to 0x2 if it's anything else.
Does this PR break any interface?
- Yes
- No
Disable insertion of TES bias values in the SMuRF packet header in SW
Author: | Jesus Vasquez [email protected] |
Date: | Wed Dec 9 09:28:55 2020 -0800 |
Pull: | #569 (2 additions, 72 deletions, 9 files changed) |
Branch: | slaclab/ESCRYODET-763 |
Issues: | #559 |
Jira: | https://jira.slac.stanford.edu/issues/ESCRYODET-763 |
Labels: | core, enhancement, interface-change |
Notes:
Issue
This PR resolves #559 and ESCRYODET-763.
Description
This PR disables the insertion of TES bias values in the SMuRF packet header in SW, and let the values that now come from the FW application verbatim.
This PR also removes the code that was overwriting the version number in the SMuRF packet header, leaving the value that comes from FW verbatim as well.
Does this PR break any interface?
- Yes
- No
Which interface changed?
The TES bias values (offset 8) and protocol version number (offset 0) in the SMuRF packet header.
What was the interface before the change
- The TES bias values in the SMuRF packet header were inserted in SW based on the values TES bias control registers as:
v1 = self.FpgaTopLevel.AppTop.AppCore.RtmCryoDet.RtmSpiMax.TesBiasDacDataRegCh[{(2*idx)+2}] v2 = self.FpgaTopLevel.AppTop.AppCore.RtmCryoDet.RtmSpiMax.TesBiasDacDataRegCh[{(2*idx)+1}] tesBias[idx] = (v1 - v2) // 2
- The protocol version value in the SMuRF packet header was set to
1
.What will be the new interface after the change
The TES bias value and the protocol version number in the SMuRF packet header are not longer written in SW, so they now come verbatim from the FW application. So, this change is backward compatible.
Set the type of the FrameCnt
local variable to UInt64
Author: | Jesus Vasquez [email protected] |
Date: | Wed Dec 9 08:58:42 2020 -0800 |
Pull: | #570 (4 additions, 2 deletions, 2 files changed) |
Branch: | slaclab/ESCRYODET-726 |
Jira: | https://jira.slac.stanford.edu/issues/ESCRYODET-726 |
Labels: | bug, client, core, interface-change |
Notes:
Issue
This PR resolves ESCRYODET-726.
Description
Set the type of the
FrameCnt
local variable toUInt64
in order to support it trough the EPICS interface. Without this change, the variable it treated as a 32-bit value and it will overflow after a few day of data streaming.The EPICS server will treat this value as a string now, so the client command that reads this variable was also updated to read the value as as string, and convert it back to
int
.Does this PR break any interface?
- Yes
- No
Which interface changed?
The type of the variable
${epics_prefix}:AMCc:SmurfProcessor:FrameRxStats:FrameCnt
through the EPICS interface.What was the interface before the change
The variable was treated as a 32-bit number by the EPICS server.
What will be the new interface after the change
Now, the EPICS server sees this value as a 64-bit value, and treat it as a string.
However, the client command was updated as well, so a pysmurf client application won't noticed any difference, making this change backward compatible from the pysmurf point of view.
Remove local copy of the schema
python package
Author: | Edward [email protected] |
Date: | Tue Dec 8 16:59:44 2020 -0800 |
Pull: | #572 (1 additions, 776 deletions, 2 files changed) |
Branch: | slaclab/issue37... |
v4.1.0
Pull Requests Since v4.0.0
Client
Interface-change
- #389 - Resolves all sphinx_build errors and warnings, upgrades schema to 0.7.1, adds new SmurfConfigPropertiesMixin, expands documentation to include core code and user guide outline.
- #373 - Fix noise_vs_bias band requirement, offline mode of analyze_noise_vs_bias, play_tes_bipolar_waveform non-continuous, n_samp for read_stream_data
- #343 - Changing default of high_current_mode in overbias_tes
- #428 - Create new rogue variable
EnabledBays
with a list of enabled bays
Bug
- #373 - Fix noise_vs_bias band requirement, offline mode of analyze_noise_vs_bias, play_tes_bipolar_waveform non-continuous, n_samp for read_stream_data
- #354 - Fixes the noise_vs_tone function. The plotting routine had a bug in it which would cause it to crash.
- #491 - IV functions renamed, now using tone_power and nsamp instead of varying names.
- #367 - Fixes the
noise_vs_tone
analysis script - wasn't handling channel assignment properly - #451 - Fixes wrong hardcoded clock rate in get_flux_ramp_freq, adds docstrings to get_flux_ramp_freq and set_flux_ramp_freq.
- #343 - Changing default of high_current_mode in overbias_tes
- #488 - Fix set_defaults_pv method to determine if the system configuration sequence ended
- #350 - Fixes readthedocs auto builds
- #442 - Fixing which_bays backwards compatibility
- #441 - Revert "Backwards compatibility fix for which_bays"
- #440 - Backwards compatibility fix for which_bays
- #430 - Fixes readthedocs badge and docstring convention note in README.
- #473 - Fw refactor
- #422 - Adding scaling relation for faster frequencies in play_sine_tes
- #496 - Passing bias_line_resistance from run_iv to analyze_iv
- #409 - Changed publish location for mask.txt file
- #436 - Fixing a couple of fstrings with missing fs
- #501 - Adding packaging to requirements.txt.
Enhancement
- #389 - Resolves all sphinx_build errors and warnings, upgrades schema to 0.7.1, adds new SmurfConfigPropertiesMixin, expands documentation to include core code and user guide outline.
- #485 - JESD health checks
- #454 - Migrates remaining pysmurf configuration parameters into the SmurfConfigPropertiesMixin class as properties.
- #420 - Comprehensive docstrings for SmurfConfig class.
- #445 - loopback mode for profile_band, eta_phase estimator using IQ noise, fast data taking example scripts
- #229 - Issue95 - Dan's RF initialization and enhancements for thermal testing
- #481 - Adds a profile_slot script which extends profile_band to an entire slot, adds docstrings to smurf_atca_monitor submodule.
- #474 - Use new registers which give the state of the configuration process during setup
- #373 - Fix noise_vs_bias band requirement, offline mode of analyze_noise_vs_bias, play_tes_bipolar_waveform non-continuous, n_samp for read_stream_data
- #433 - Rogue3 thermal test, shawnhammer upgrades, hardware logging docstrings.
- #494 - Stephen's AMC testing script.
- #384 - Introduce optional variable to turn off phase highlighting in find_peak plotting
- #361 - Add core & user guide to pysmurf autodocs
- #390 - Moves the running part of
profile_band
into a callable function. - #396 - Fixes docstrings to have valid reStructuredText (RST)
- #269 - Issue266 - function to find bias groups by playing a sine wave on the TES bias
- #317 - Publisher actions
- #429 - pysmurf cfg file can be specified in smurf_startup.cfg, no longer requiring an init script.
- #403 - Determine which bays are on from hardware, not pysmurf cfg.
- #394 - Reorders imports in compliance with pep8.
- #357 - Fixing offline code for reading ADC/DAC data.
- #401 - Eliminates utf8 byte array return type option for str register gets.
- #370 - Adding high_current_mode bool to identify_bias_group
- #452 - Adds test script to help check for deterministic latency & fixes script_to_run bug in shawnhammer.
- #456 - Add checks and fixes to help solve configuration issues
- #428 - Create new rogue variable
EnabledBays
with a list of enabled bays - #410 - Added streaming context manager
- #380 - Use list instead of np.array in read_stream_data for speed up.
- #372 - Adding overbias_wait to noise_vs_bias
- #392 - Add travis job to test documentation build for errors and warnings
- #378 - Add the
schema
python package to thepysmurf.client
docker image - #496 - Passing bias_line_resistance from run_iv to analyze_iv
Core
Interface-change
- #389 - Resolves all sphinx_build errors and warnings, upgrades schema to 0.7.1, adds new SmurfConfigPropertiesMixin, expands documentation to include core code and user guide outline.
- #428 - Create new rogue variable
EnabledBays
with a list of enabled bays
Bug
- #430 - Fixes readthedocs badge and docstring convention note in README.
- #499 - Fix broken link
- #477 - Update smurf-rogue base image to version R2.8.1
Enhancement
- #389 - Resolves all sphinx_build errors and warnings, upgrades schema to 0.7.1, adds new SmurfConfigPropertiesMixin, expands documentation to include core code and user guide outline.
- #485 - JESD health checks
- #420 - Comprehensive docstrings for SmurfConfig class.
- #448 - Optimize performance of the data processing code
- #396 - Fixes docstrings to have valid reStructuredText (RST)
- #438 - Server hardware auto-detection: abort server startup if unsupported HW is detected
- #458 - Move the
start_server.sh
argument parsing and usage function toserver_common.sh
- #394 - Reorders imports in compliance with pep8.
- #459 - Update elastic buffer check, and add new variable
SystemConfigured
- #460 - Move all the initialization routines to
server_common.sh
- #456 - Add checks and fixes to help solve configuration issues
- #461 - Catch rogue-level exception during configuration
- #428 - Create new rogue variable
EnabledBays
with a list of enabled bays - #392 - Add travis job to test documentation build for errors and warnings
Other
Bug
- #342 - Fixes setup.py to reflect rogue4 change in pysmurf code directory structure
- #503 - Update reference to the old master branch to main
- #344 - Fixes location of version_file in pysmurf package setup.cfg
- #339 - Fix the
releaseGen.py
to catch issues numbers that are followed by a dot.
Enhancement
- #347 - Crate issues and PR templates
- #360 - Add Ed and Shawn as code owner of GitHub files
- #400 - Adding readthedocs to readme
Unlabeled
- #219 - Accelerated processing of TES bytes
- #268 - Move version to pysmurf, instead of pysmurf.client
Pull Request Details
Update reference to the old master branch to main
Author: | Edward [email protected] |
Date: | Tue Aug 11 09:26:49 2020 -0700 |
Pull: | #503 (2 additions, 2 deletions, 1 files changed) |
Branch: | slaclab/issue502 |
Issues: | #502 |
Labels: | bug |
Notes:
Issue
This PR resolves #502
Description
Fix the reference to the deprecated
master
branch tomain
.Does this PR break any interface?
- Yes
- No
Adds a profile_slot script which extends profile_band to an entire slot, adds docstrings to smurf_atca_monitor submodule.
Author: | Shawn Henderson [email protected] |
Date: | Tue Aug 11 00:48:28 2020 -0700 |
Pull: | #481 (807 additions, 122 deletions, 6 files changed) |
Branch: | slaclab/issue480 |
Labels: | client, enhancement |
Notes:
Issue
This PR resolves #480, #478, #358, and #497 .
Description
Introduces the script
profile_slot.py
which tests all the bands in a slot. Adds docstrings forsmurf_atca_monitor
submodule routines and for thesmurf_util
submoduleestimate_phase_delay
routine..Does this PR break any interface?
- Yes
- No
Which interface changed?
estimate_phase_delay
now returns an output.What was the interface before the change
estimate_phase_delay
used to not have a returnWhat will be the new interface after the change
Now it returns
refPhaseDelay, refPhaseDelayFine, processing_delay_us, dsp_corr_delay_us
Fix broken link
Author: | Shawn Henderson [email protected] |
Date: | Mon Aug 10 23:57:00 2020 -0700 |
Pull: | #499 (1 additions, 1 deletions, 1 files changed) |
Branch: | slaclab/issue498 |
Issues: | #498 |
Labels: | bug, core |
Notes:
Issue
This PR resolves #498
Description
Fix a broken link on README.SmurfProcessor.md to the Data Transmitter documentation.
Does this PR break any interface?
- Yes
- No
Adding packaging to requirements.txt.
Author: | Edward [email protected] |
Date: | Mon Aug 10 15:12:17 2020 -0700 |
Pull: | #501 (1 additions, 0 deletions, 1 files changed) |
Branch: | slaclab/packagingreq |
Labels: | bug, client |
Notes:
Issue
No existing issue.
Description
Just adds the packaging module to requirements.txt.
Stephen's AMC testing script.
Author: | Edward [email protected] |
Date: | Fri Aug 7 17:43:43 2020 -0700 |
Pull: | #494 (355 additions, 50 deletions, 4 files changed) |
Branch: | slaclab/stephen-script |
Labels: | client, enhancement |
Notes:
Issue
This PR doesn't resolve any issues but adds a script that Stephen wrote to qualify AMCs.
Description
Adds new startup cfg file for qualifying AMCs, cfg_files/rflab/rflab_smurf_startup_stephen_test.cfg. Adds _reg suffix to all smurf_atca_monitor register path variables. Ad...
v4.0.0
Pull Requests Since v4.0.0-rc21
Client
Interface-change
- #327 - Adding and cleaning up comments - also fixes bug in take_noise_psd plot label
Bug
- #310 - Script to automatically generate a summary html
- #327 - Adding and cleaning up comments - also fixes bug in take_noise_psd plot label
- #291 - Pton 2carriercfg 20200306
- #284 - Fix the
test_loopback
script - #328 - Scratch update for eyy - bug in profile_band loading of .npy files
- #308 - Issue306 - fixing bias bump - introduce estimate_bias_voltage function that estimates where to bias using an input IV curve
- #271 - Issue270 - incorrect comments for TES high/low current mode
- #301 - Fixing passing for setup_flux_ramp argument in check_lock.
- #294 - Intel enpirion to em22xx
- #304 - Fix TES bias extraction
- #336 - Bug fix: trying to set a register to an empty array is not supported
- #334 - Fix
pysmurf-client
docker image, by adding the cryo user's home directory
Enhancement
- #310 - Script to automatically generate a summary html
- #298 - Synching ucsd with master
- #229 - Issue95 - Dan's RF initialization and enhancements for thermal testing
- #272 - Issue264 - function to find bias point
- #327 - Adding and cleaning up comments - also fixes bug in take_noise_psd plot label
- #313 - Issue311 - remove amplifier bias hardcode
- #278 - Nist cmb pre release
- #269 - Issue266 - function to find bias groups by playing a sine wave on the TES bias
- #280 - Adding read_stream_data_gcp_save for backwards compatibility.
- #277 - Issue276 - estimate_flux_ramp_amp instead of LMS freq
- #309 - exposing find_freq optional arguments for finding peaks
- #308 - Issue306 - fixing bias bump - introduce estimate_bias_voltage function that estimates where to bias using an input IV curve
- #295 - Add argument to publish streamed data file
- #282 - Catch & report if saturating ADC during full_band_resp
- #288 - Add the GitPython python package to the pysmurf-client docker image
Core
Bug
- #334 - Fix
pysmurf-client
docker image, by adding the cryo user's home directory - #287 - Update smurf-rogue base image to version R2.6.1
- #290 - Add missing imports
Enhancement
- #285 - Detect type of carrier and enable the EM22xx device if it is C03+
- #305 - Auto detect presence, type and version of AMCs during startup
- #307 - Fix formatting of the log message from the start_server.sh
- #314 - Expose the server startup script name and list of arguments
- #316 - Adds default server_port when IP Address is not defined
- #318 - Re-enable the "enable_em22xx" flag from the top script.
Other
Enhancement
- #319 - Add release notes generation script
- #315 - Fix shawnhammer smurf server detection
- #323 - Setup Github workflow to auto label PR as
core
orclient
- #333 - Extract issue references from PR body
- #325 - Verify that all PRs are labeled with
bug
,enhancement
, orinterface-change
- #332 - Define code owners
- #302 - Makes shawnhammer shutdown smurf-streamer dockers
Pull Request Details
Bug fix: trying to set a register to an empty array is not supported
Author: | Shawn Henderson [email protected] |
Date: | Sun Mar 22 09:02:01 2020 -0700 |
Pull: | #336 (2 additions, 2 deletions, 1 files changed) |
Branch: | slaclab/issue335 |
Issues: | #335 |
Labels: | bug, client |
Notes:
In this case this was done during
SmurfControl.setup
, but this is not allowed in general.
In this case we can set the Mask to an single element[0]
instead.This resolves #335 .
Fix pysmurf-client
docker image, by adding the cryo user's home directory
Author: | Jesus Vasquez [email protected] |
Date: | Sat Mar 21 21:34:50 2020 -0700 |
Pull: | #334 (2 additions, 2 deletions, 2 files changed) |
Branch: | slaclab/ESCRYODET-630 |
Issues: | #324 |
Jira: | https://jira.slac.stanford.edu/issues/ESCRYODET-630 |
Labels: | bug, client, core |
Notes:
This PR resolves #324.
The base docker image
smurf-base
didn't contained the home directory for the cryo user. So, when the container was running the directory/home/cryo
didn't exit. It seems that ipython write access to the home directory for its tab complete feature to work. That was fix in this PR, which is available in version tidair/smurf-base:R1.1.1.This was affecting only the client docker image. However, I updated its base docker image as well to include that fix. It is available in the version tidair/smurf-rogue:R2.6.2.
In this PR I update the two base docker images to these new versions.
Jira ticket: https://jira.slac.stanford.edu/browse/ESCRYODET-630
Define code owners
Author: | Shawn Henderson [email protected] |
Date: | Sat Mar 21 11:02:49 2020 -0700 |
Pull: | #332 (18 additions, 0 deletions, 1 files changed) |
Branch: | slaclab/issue330 |
Issues: | #330 |
Labels: | enhancement |
Notes:
This PR resolves #330.
It defines Shawn and Ed as defaults owners. And Ryan and I will be owners for the code related to the core.
The only goal of defining owner users, is to automatically assign the owner of specific file as reviewer when a PR modifies the files he owns.
We can add others users as well. I just did this as an initial list.
Issue306 - fixing bias bump - introduce estimate_bias_voltage function that estimates where to bias using an input IV curve
Author: | Shawn Henderson [email protected] |
Date: | Sat Mar 21 10:53:52 2020 -0700 |
Pull: | #308 (32 additions, 12 deletions, 2 files changed) |
Branch: | slaclab/issue306 |
Labels: | bug, client, enhancement |
Notes:
Scratch update for eyy - bug in profile_band loading of .npy files
Author: | Shawn Henderson [email protected] |
Date: | Sat Mar 21 10:46:44 2020 -0700 |
Pull: | #328 (31 additions, 14 deletions, 1 files changed) |
Branch: | slaclab/ed-scratch-update-20200320 |
Labels: | bug, client |
Notes:
np.load needs an
allow_pickle=True
statement for saved dicts.
Extract issue references from PR body
Author: | Jesus Vasquez [email protected] |
Date: | Sat Mar 21 00:10:20 2020 -0700 |
Pull: | #333 (20 additions, 3 deletions, 1 files changed) |
Branch: | slaclab/detect_issues |
Issues: | #123 |
Labels: | enhancement |
Notes:
This change will scan the pull request body for the #123 pattern in an attempt to find references to issues.
Add release notes generation script
Author: | Jesus Vasquez [email protected] |
Date: | Fri Mar 20 15:49:29 2020 -0700 |
Pull: | #319 (181 additions, 3 deletions, 2 files changed) |
Branch: | slaclab/rel_notes_gen |
Issues: | #322 |
Labels: | enhancement |
Notes:
Please take a look. I am not sure where the proper home is. I did not attempt to integrate into Travis.
Verify that all PRs are labeled with bug
, enhancement
, or interface-change
Author: | Jesus Vasquez [email protected] |
Date: | Fri Mar 20 14:27:21 2020 -0700 |
Pull: | #325 (21 additions, 0 deletions, 1 files changed) |
Branch: | slaclab/issue321 |
Issues: | #321 |
Labels: | enhancement |
Notes:
This PR solved #321.
It adds the GitHub actions verify-pull-request-labels to verify that all PRs have at least one of these labels before they can be merged:
bug
,enhancement
,interface-change
.This action works around the issue I mentioned in #321 regarding checks trigger with different conditions, and instead works in the following way:
- If a PR does not have one of the valid labels, then the Github check will succeed, but it will create a pull request review, requesting for changes. This will prevent the PR to be merge until the review is addressed.
- If a PR have at least one valid label, then the Github check will also succeed, and it will create a pull request review, approving it. This will clear the review requesting for changes from a previous failed check.
- The action will be triggered when a pull request is open, updated, and when labels are added/removed.
As the Github Check alway succeed, we will not have the problem I mentioned in #321. Instead, the PR will be block using normal pull request workflow.
An example scenario is:
- A PR is open, without one of the mandatory labels. The action runs and creates a PR review, requesting for changes. This will prevent the PR to be merged.
- One of the mandatory labels is added to the PR. The action will be triggered again, and will create a new PR review, approving it. This will dismiss the previous request for changes.
- If the label is removed, it will trigger the action again, and step 1 will happen again.
- If the PR labeled correctly before opening the PR, then the first action will just crate a PR review approving it.
So, in order for this new feature to work, we will need to increase the number of
Required approving reviewers
from1
to2
: one review will always come from this action, and the other review will be the one needed from a real reviewer.This PR itself will be an example of how this feature works. I'm opening the PR without any label, in order to let the action to crate the PR review, request changes. Then I ...
v4.0.0-rc21
New pysmurf version, combining server and client code, and using Rogue v4.
Release candidate 21
This release candidate includes:
- Merge
pre-release
intomaster
, and start releasing from master now. Thepre-release
branch is not used anymore, - Add Flake8 test to Travis (#238), and code linting cleanup,
- Move
__version__
frompysmurf.client
topysmurf
(#268) - Server:
- Client:
- Accelerated processing of TES bytes (#219),
- Fix issue #76,
- Fix issue #254,
- Fix issue #252,
- Fix issue #249,
- Bug fix: properly decode f, dF streams for either bay0 or bay1 (#246),
- Fixing bug with loading mask (#240),
- Adding basic offline functionality,
- Adding ability to append to plot filenames (#233),
- Update Princeton configuration files and scripts,
v4.0.0-rc20
New pysmurf version, combining server and client code, and using Rogue v4.
Release candidate 20
This release candidate includes:
- Server:
- Client:
- Adc saturation check,
- Checking the updated NIST pysmurf cfg files into rogue4 for 1000x demo,
- Scripts and fixes to make NIST setup compatible with rogue 4 for 1000x demo,
- Checking in offline analysis script
v4.0.0-rc19
New pysmurf version, combining server and client code, and using Rogue v4.
Release candidate 19
This release candidate includes:
- Server:
- Include C++ speedup register access engine, for the SysgenCryo device.
- Client:
- No changes.
v4.0.0-rc18
New pysmurf version, combining server and client code, and using Rogue v4.
Release candidate 18
This release candidate includes:
- Server:
- Change common argument parsing to use argparse.
- Update the
smurf-rogue
base image to version R2.5.2. This version includes this patch to fix a bug in Rogue, missing a import in_HelperFunctions.py
.
- Client:
- No changes.