Base classes

ZmqClient

class libstored.ZmqClient(address='localhost', port=19026, csv=None, multi=False, parent=None, t=None, timeout=None, context=None)

A ZMQ client.

This client can connect to either the libstored.zmq_server.ZmqServer and stored::DebugZmqLayer.

Instantiate as libstored.ZmqClient().

acquireAlias(obj, prefer=None, temporary=True, permanentRef=None)
acquireMacro(cmds=None, sep='\n')
assignMacro(m, cmds, sep=b'\n')
autoSaveState(enable=True)
capabilities()
close()
closed
property context
defaultPollInterval = <libstored.zmq_client._Property object>
defaultPollIntervalChanged
defaultStateFile()
echo(s)
fastPollThreshold_s = 0.9
find(name, all=False)
identification()
list()
property multi
obj(x)
property objects
otherStreams()
poll(obj, interval_s=0)
pyname(name)
readMem(pointer, size)
releaseAlias(alias, permanentRef=None)
releaseMacro(m)
req(message)
reqAsync(message, callback=None)
restoreState(f=None)
saveState(f=None)
slowPollInterval_s = 1.0
property socket
staticMetaObject = PySide6.QtCore.QMetaObject("ZmqClient" inherits "QObject": Properties:   #1 "defaultPollInterval", double [writeable] [designable], notify=defaultPollIntervalChanged Methods:   #4 type=Signal, signature=defaultPollIntervalChanged()   #5 type=Signal, signature=closed()   #6 type=Slot, signature=req(QString), parameters=QString   #7 type=Slot, signature=_reqAsyncCheckResponse()   #8 type=Slot, signature=_aboutToQuit()   #9 type=Slot, signature=capabilities()   #10 type=Slot, signature=echo()   #11 type=Slot, signature=obj(QString), parameters=QString   #12 type=Slot, signature=identification()   #13 type=Slot, signature=version()   #14 type=Slot, signature=traceDecimate(int), parameters=int   #15 type=Slot, signature=saveState(QString), parameters=QString   #16 type=Slot, signature=saveState()   #17 type=Slot, signature=restoreState(QString), parameters=QString   #18 type=Slot, signature=restoreState() )
stream(s, raw=False)
streams()
time()
timestampToTime(t=None)
traceDecimate(decimate)
traceProcess()

In case there is no Qt event loop running, call this function to poll and process data that is expected via the trace stream.

traceThreshold_s = 0.1
property useEventLoop
version()
writeMem(pointer, data)

Protocol layers

class libstored.protocol.ProtocolLayer
activity()
close()
decode(data)
property down
encode(data)
lastActivity()
property mtu
name = 'layer'
timeout()
property up
wrap(layer)
class libstored.protocol.AsciiEscapeLayer(**kwargs)
class libstored.protocol.TerminalLayer(fdout=1, ignoreEscapesTillFirstEncode=True, **kwargs)
class libstored.protocol.PubTerminalLayer(bind='*:19027', **kwargs)

A TerminalLayer (term), that also forwards all non-debug data over a PUB socket.

class libstored.protocol.SegmentationLayer(mtu=None, **kwargs)
class libstored.protocol.DebugArqLayer(**kwargs)
class libstored.protocol.Crc8Layer(**kwargs)
class libstored.protocol.Crc16Layer(**kwargs)
class libstored.protocol.LoopbackLayer(**kwargs)
class libstored.protocol.RawLayer(**kwargs)

Protocol stack

class libstored.protocol.ProtocolStack(layers)
class Iterator(stack)
decode(data)
encode(data)
lastActivity()
property mtu
name = 'stack'
timeout()
libstored.protocol.registerLayerType(layer_type)
libstored.protocol.buildStack(description)

Construct the protocol stack from a description.

The description is a comma-separated string with layer ids. If the layer has a parameter, it can be specified. The stack is constructed top-down in order of the specified layers.

Grammar: ( <name> ( = <value> ) ? ) (, <name> ( = <value> ) ? ) *