Changelog¶
2019-08-07¶
Firmware update v1.0.3¶
solved: at rare intervals occurring server crashes
solved: channel analog0 shows increased jitter (observed only on very few devices)
solved: extremely rarely missed internal trigger (sequence dependent)
2019-05-10¶
2019-04-23¶
Clients update v1.1.1¶
Python: corrected overflow error for sequence durations above 4 seconds on some systems.
Python client is now available at www.pypi.org. You can now install it with
pip install pulsestreamer.Matlab: minor code cleanup.
2019-03-01¶
Client API update v1.1.0¶
This update brings homogenized API for PulseStreamer clients in all supported languages. From now on, the signatures of all currently present functions and methods are frozen and will remain stable over the future minor updates and releases. In the future, we plan to add any new functionality in a backwards compatible way with no user code modifications required.
The API was slightly redesigned and homogenized in all supported languages.
The use of high-level clients is now a recommended way of programming and streaming the pulse sequences with the Pulse Streamer.
New methods
PulseStreamer.createSequenceandPulseStreamer.createOutputStatethat create hardware specificSequenceandOutputStateobjects.New method
PulseStreamer.getFPGAID.New
OutputStateclass for defining the state of Pulse Streamer outputs in some methods.New
OutputState.ZEROconstant.New named constant
PulseStreamer.REPEAT_INFINITELY = -1for infinite sequence repetition.Sequenceobject now applies padding to the pattern data and previous previous levels on concatenation.Renamed enum
TriggerModetoTriggerRearm, also renamed enumeration values.Renamed enumeration values in enums
TriggerStart.Modified signature of the
PulseStreamer.getSerial()method which now has no input parameter and always returns hardware serial number.
Matlab¶
The client code is now distributed as a packaged Matlab Toolbox.
Now the PulseStreamer client is placed into its own namespace
PulseStreamerin order to prevent possible collisions in function names. You can useimport PulseStreamer.*to shorten the class names.Moved compatibility functions for FW v0.9 to
PulseStreamer.compatsub-package.Sequence.setDigitalandSequence.setAnalogallows for overwriting mapped pulse patterns even after concatenation or repetition.PulseStreamer.stream()method now supportsSequenceobject and[{duration,chan_list,a0,a1}; {...}]cell array as input.Functionality of
PSSequenceBuilderandPSSequenceclasses is now combined and moved toSequenceclass.Renamed
PSTriggerModetoTriggerRearm.Renamed
PSTriggerStarttoTriggerStart.Renamed
PSSequencetoSequence.Removed
PSSerialenum.Sequence.plotmethod plots the sequence data exactly as defined by user without resampling to common time.Sequenceis completely decoupled fromPulseStreamerclass. UsePulseStreamer.createSequence()method to create aSequenceobject that does early channel number validation.Helper classes like
PulseStreamer_DummyandPulseStreamer_RPCLoggerlocated in a sub-packagePulseStreamer.debug.Solved problem with multiple timers created on repeated script runs with long sequences. Only one timer can exist for a given device.
LabView¶
Pulse Streamer client code for LabView is now distributed as a VIPM package.
Functionality of
SequenceBuilderandSequenceclasses is now combined intoSequenceclass.Added
Sequence:plot.viwhich plots the pulse patterns according to user input with no resampling to common time.PulseStreamer:stream.vimethod is a polymorphic VI with wrappers to handle implementation VIs with dynamic inputs.PulseStreamer:stream.visupportsSequenceobject, oldPulsearray, andRLEdatacluster as inputs.Renamed
Digital Pattern.lvclasstoPulsePattern.lvclass.Renamed
Analog Pattern.lvclasstoAnalogPattern.lvclass.
Python¶
PulseStreamer client is distributed as wheel package
pulsestreamer.PulseStreamer now uses standard
tinyrpcpackage instead of previously used customized versiontinyrpc3.py. Usepip install tinyrpcto install the package, if missing.Some changes in parameter names. Please see Programming interface.
New
concatenate,repeatand`plotmethods are added toSequenceclass.PulseStreamer client is organized into a python module with cleaner layout.
PulseStreamer.streammethod acceptsSequenceobject as input parameter directly.
2018-11-09¶
Firmware update v1.0.1¶
API has been supplemented by method rearm() and forceFinal()
second permanent IP 169.254.8.2 added
network configuration file on user partition -> static IP can be configured via RPCs
login password changed
Clients¶
Python¶
adapted to new API
class Sequence added as handy sequence-builder
channel_map {‘ch0’:0, ‘ch1’:1…} no longer supported - use channel_list e.g. [0,1,3,7]
Matlab¶
adapted to new API
large changes in the way sequences are created and manipulated
new classes for sequence creation:
PSSequenceBuilderandPSSequenceclasses
PandPHare modified and labeled as deprecatedadded compatibility function
convert_PPH_to_PSSequencethat converts sequences created withPorPHobjects intoPSSequenceadded examples that show how to migrate old code to version 1.0
code examples completely reworked to reflect new way of building sequences
LabView¶
adapted to new API
large changes in the way sequences are created and manipulated
new classes for sequence creation:
SequenceBuilderandSequenceclient code is now contained in a LabView library.
slightly modified and renamed classes for signal pattern creation
code examples completely reworked to reflect new way of building sequences
2018-10-10¶
firmware update v1.0
underflows do not occur any more -> getUnderflow() returns 0 always
API changes (see API-migration-doc for details)
substantial changes in the embedded Linux-operation system
no network configuration file - only DHCP and fallback IP available
Clients
Python, Matlab and LabVIEW adapted to new API
2018-01-05¶
user interface
added a GUI to determine the IP address of the Pulse Streamer and to create simple pulses (beta release)
clients
improved Python client
2017-05-07¶
clients
added LabVIEW client
improved Matlab client
improved Python client
documentation
added ‘Getting Started’ section
2016-03-17¶
static sequence beta 0.9
enums in RPCs
API name changes
rising and falling edges on external trigger
2016-03-03¶
static sequence alpha
initial, final, underflow states
software start
external trigger
rerun sequence
separate underflow flags for digital and analog
optional values in jRPC
2016-02-02¶
static sequence alpha