Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 78 additions & 49 deletions python/src/streaming_data_types/fbschemas/run_start_pl72/RunStart.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
# automatically generated by the FlatBuffers compiler, do not modify

# namespace:
# namespace:

import flatbuffers
from flatbuffers.compat import import_numpy

np = import_numpy()


class RunStart(object):
__slots__ = ["_tab"]
__slots__ = ['_tab']

@classmethod
def GetRootAsRunStart(cls, buf, offset):
def GetRootAs(cls, buf, offset=0):
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
x = RunStart()
x.Init(buf, n + offset)
return x

@classmethod
def GetRootAsRunStart(cls, buf, offset=0):
"""This method is deprecated. Please switch to GetRootAs."""
return cls.GetRootAs(buf, offset)
@classmethod
def RunStartBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
return flatbuffers.util.BufferHasIdentifier(
buf, offset, b"\x70\x6C\x37\x32", size_prefixed=size_prefixed
)
return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x70\x6C\x37\x32", size_prefixed=size_prefixed)

# RunStart
def Init(self, buf, pos):
Expand All @@ -32,18 +32,14 @@ def Init(self, buf, pos):
def StartTime(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
if o != 0:
return self._tab.Get(
flatbuffers.number_types.Uint64Flags, o + self._tab.Pos
)
return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
return 0

# RunStart
def StopTime(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
if o != 0:
return self._tab.Get(
flatbuffers.number_types.Uint64Flags, o + self._tab.Pos
)
return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
return 0

# RunStart
Expand Down Expand Up @@ -99,9 +95,7 @@ def Filename(self):
def NPeriods(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22))
if o != 0:
return self._tab.Get(
flatbuffers.number_types.Uint32Flags, o + self._tab.Pos
)
return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos)
return 1

# RunStart
Expand All @@ -110,7 +104,6 @@ def DetectorSpectrumMap(self):
if o != 0:
x = self._tab.Indirect(o + self._tab.Pos)
from .SpectraDetectorMapping import SpectraDetectorMapping

obj = SpectraDetectorMapping()
obj.Init(self._tab.Bytes, x)
return obj
Expand All @@ -130,82 +123,118 @@ def ControlTopic(self):
return self._tab.String(o + self._tab.Pos)
return None

# RunStart
def GpsStartTime(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30))
if o != 0:
return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
return None

# RunStart
def GpsStopTime(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(32))
if o != 0:
return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
return None

def RunStartStart(builder):
builder.StartObject(13)
builder.StartObject(15)

def Start(builder):
RunStartStart(builder)

def RunStartAddStartTime(builder, startTime):
builder.PrependUint64Slot(0, startTime, 0)

def AddStartTime(builder, startTime):
RunStartAddStartTime(builder, startTime)

def RunStartAddStopTime(builder, stopTime):
builder.PrependUint64Slot(1, stopTime, 0)

def AddStopTime(builder, stopTime):
RunStartAddStopTime(builder, stopTime)

def RunStartAddRunName(builder, runName):
builder.PrependUOffsetTRelativeSlot(
2, flatbuffers.number_types.UOffsetTFlags.py_type(runName), 0
)
builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(runName), 0)

def AddRunName(builder, runName):
RunStartAddRunName(builder, runName)

def RunStartAddInstrumentName(builder, instrumentName):
builder.PrependUOffsetTRelativeSlot(
3, flatbuffers.number_types.UOffsetTFlags.py_type(instrumentName), 0
)
builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(instrumentName), 0)

def AddInstrumentName(builder, instrumentName):
RunStartAddInstrumentName(builder, instrumentName)

def RunStartAddNexusStructure(builder, nexusStructure):
builder.PrependUOffsetTRelativeSlot(
4, flatbuffers.number_types.UOffsetTFlags.py_type(nexusStructure), 0
)
builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(nexusStructure), 0)

def AddNexusStructure(builder, nexusStructure):
RunStartAddNexusStructure(builder, nexusStructure)

def RunStartAddJobId(builder, jobId):
builder.PrependUOffsetTRelativeSlot(
5, flatbuffers.number_types.UOffsetTFlags.py_type(jobId), 0
)
builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(jobId), 0)

def AddJobId(builder, jobId):
RunStartAddJobId(builder, jobId)

def RunStartAddBroker(builder, broker):
builder.PrependUOffsetTRelativeSlot(
6, flatbuffers.number_types.UOffsetTFlags.py_type(broker), 0
)
builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(broker), 0)

def AddBroker(builder, broker):
RunStartAddBroker(builder, broker)

def RunStartAddServiceId(builder, serviceId):
builder.PrependUOffsetTRelativeSlot(
7, flatbuffers.number_types.UOffsetTFlags.py_type(serviceId), 0
)
builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(serviceId), 0)

def AddServiceId(builder, serviceId):
RunStartAddServiceId(builder, serviceId)

def RunStartAddFilename(builder, filename):
builder.PrependUOffsetTRelativeSlot(
8, flatbuffers.number_types.UOffsetTFlags.py_type(filename), 0
)
builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(filename), 0)

def AddFilename(builder, filename):
RunStartAddFilename(builder, filename)

def RunStartAddNPeriods(builder, nPeriods):
builder.PrependUint32Slot(9, nPeriods, 1)

def AddNPeriods(builder, nPeriods):
RunStartAddNPeriods(builder, nPeriods)

def RunStartAddDetectorSpectrumMap(builder, detectorSpectrumMap):
builder.PrependUOffsetTRelativeSlot(
10, flatbuffers.number_types.UOffsetTFlags.py_type(detectorSpectrumMap), 0
)
builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(detectorSpectrumMap), 0)

def AddDetectorSpectrumMap(builder, detectorSpectrumMap):
RunStartAddDetectorSpectrumMap(builder, detectorSpectrumMap)

def RunStartAddMetadata(builder, metadata):
builder.PrependUOffsetTRelativeSlot(
11, flatbuffers.number_types.UOffsetTFlags.py_type(metadata), 0
)
builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(metadata), 0)

def AddMetadata(builder, metadata):
RunStartAddMetadata(builder, metadata)

def RunStartAddControlTopic(builder, controlTopic):
builder.PrependUOffsetTRelativeSlot(
12, flatbuffers.number_types.UOffsetTFlags.py_type(controlTopic), 0
)
builder.PrependUOffsetTRelativeSlot(12, flatbuffers.number_types.UOffsetTFlags.py_type(controlTopic), 0)

def AddControlTopic(builder, controlTopic):
RunStartAddControlTopic(builder, controlTopic)

def RunStartAddGpsStartTime(builder, gpsStartTime):
builder.PrependUint64Slot(13, gpsStartTime, None)

def AddGpsStartTime(builder, gpsStartTime):
RunStartAddGpsStartTime(builder, gpsStartTime)

def RunStartAddGpsStopTime(builder, gpsStopTime):
builder.PrependUint64Slot(14, gpsStopTime, None)

def AddGpsStopTime(builder, gpsStopTime):
RunStartAddGpsStopTime(builder, gpsStopTime)

def RunStartEnd(builder):
return builder.EndObject()

def End(builder):
return RunStartEnd(builder)
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,15 @@ def Abort(self):
return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos))
return False

# RunStop
def GpsStopTime(self):
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
if o != 0:
return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
return None

def RunStopStart(builder):
builder.StartObject(6)
builder.StartObject(7)

def Start(builder):
RunStopStart(builder)
Expand Down Expand Up @@ -112,6 +119,12 @@ def RunStopAddAbort(builder, abort):
def AddAbort(builder, abort):
RunStopAddAbort(builder, abort)

def RunStopAddGpsStopTime(builder, gpsStopTime):
builder.PrependUint64Slot(6, gpsStopTime, None)

def AddGpsStopTime(builder, gpsStopTime):
RunStopAddGpsStopTime(builder, gpsStopTime)

def RunStopEnd(builder):
return builder.EndObject()

Expand Down
18 changes: 18 additions & 0 deletions python/src/streaming_data_types/run_start_pl72.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ def serialise_pl72(
detector_spectrum_map: Optional[DetectorSpectrumMap] = None,
control_topic: str = "",
n_periods: int = 1,
gps_start_time: Union[int, datetime, None] = None,
gps_stop_time: Union[int, datetime, None] = None,
) -> bytes:
builder = flatbuffers.Builder(512)
builder.ForceDefaults(True)
Expand Down Expand Up @@ -103,6 +105,16 @@ def serialise_pl72(
RunStart.RunStartAddDetectorSpectrumMap(builder, detector_spectrum_map_offset)
RunStart.RunStartAddControlTopic(builder, control_topic_offset)

if gps_start_time is not None:
if type(gps_start_time) is datetime:
gps_start_time = int(gps_start_time.timestamp() * 1_000_000_000)
RunStart.RunStartAddGpsStartTime(builder, gps_start_time)

if gps_stop_time is not None:
if type(gps_stop_time) is datetime:
gps_stop_time = int(gps_stop_time.timestamp() * 1_000_000_000)
RunStart.RunStartAddGpsStopTime(builder, gps_stop_time)

run_start_message = RunStart.RunStartEnd(builder)

builder.Finish(run_start_message, file_identifier=FILE_IDENTIFIER)
Expand All @@ -123,6 +135,8 @@ class RunStartInfo(NamedTuple):
metadata: str = ""
detector_spectrum_map: Optional[DetectorSpectrumMap] = None
control_topic: str = ""
gps_start_time: Union[int, None] = None
gps_stop_time: Union[int, None] = None


def deserialise_pl72(buffer: Union[bytearray, bytes]) -> RunStartInfo:
Expand All @@ -138,6 +152,8 @@ def deserialise_pl72(buffer: Union[bytearray, bytes]) -> RunStartInfo:
run_name = run_start.RunName() if run_start.RunName() else b""
metadata = run_start.Metadata() if run_start.Metadata() else b""
control_topic = run_start.ControlTopic() if run_start.ControlTopic() else b""
gps_start_time = run_start.GpsStartTime()
gps_stop_time = run_start.GpsStopTime()

detector_spectrum_map = None
det_spec_map_buf = run_start.DetectorSpectrumMap()
Expand All @@ -162,4 +178,6 @@ def deserialise_pl72(buffer: Union[bytearray, bytes]) -> RunStartInfo:
detector_spectrum_map=detector_spectrum_map,
control_topic=control_topic.decode(),
n_periods=run_start.NPeriods(),
gps_start_time=gps_start_time,
gps_stop_time=gps_stop_time,
)
27 changes: 16 additions & 11 deletions python/src/streaming_data_types/run_stop_6s4t.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ def serialise_6s4t(
command_id: str = "",
stop_time: Union[int, datetime, None] = None,
abort: bool = False,
gps_stop_time: Union[int, datetime, None] = None,
) -> bytes:
builder = flatbuffers.Builder(500)
builder.ForceDefaults(True)
Expand All @@ -41,23 +42,25 @@ def serialise_6s4t(
RunStop.RunStopAddCommandId(builder, command_id_offset)
RunStop.RunStopAddAbort(builder, abort)

if gps_stop_time is not None:
if type(gps_stop_time) is datetime:
gps_stop_time = int(gps_stop_time.timestamp() * 1_000_000_000)
RunStop.RunStopAddGpsStopTime(builder, gps_stop_time)

run_stop_message = RunStop.RunStopEnd(builder)
builder.Finish(run_stop_message, file_identifier=FILE_IDENTIFIER)

return bytes(builder.Output())


RunStopInfo = NamedTuple(
"RunStopInfo",
(
("stop_time", int),
("run_name", str),
("job_id", str),
("service_id", str),
("command_id", str),
("abort", bool),
),
)
class RunStopInfo(NamedTuple):
stop_time: int
run_name: str
job_id: str
service_id: str
command_id: str
abort: bool
gps_stop_time: int | None


def deserialise_6s4t(buffer: Union[bytearray, bytes]) -> RunStopInfo:
Expand All @@ -70,6 +73,7 @@ def deserialise_6s4t(buffer: Union[bytearray, bytes]) -> RunStopInfo:
stop_time = run_stop.StopTime()
command_id = run_stop.CommandId()
abort = run_stop.Abort()
gps_stop_time = run_stop.GpsStopTime()

return RunStopInfo(
stop_time=stop_time,
Expand All @@ -78,4 +82,5 @@ def deserialise_6s4t(buffer: Union[bytearray, bytes]) -> RunStopInfo:
service_id=service_id.decode(),
command_id=command_id.decode(),
abort=abort,
gps_stop_time=gps_stop_time,
)
2 changes: 2 additions & 0 deletions python/tests/test_6s4t.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ class TestSerialisation6s4t:
"service_id": "filewriter1",
"command_id": "some command id",
"abort": True,
"gps_stop_time": 123456789,
}

def test_serialises_and_deserialises_6s4t_message_correctly(self):
Expand All @@ -25,6 +26,7 @@ def test_serialises_and_deserialises_6s4t_message_correctly(self):
assert deserialised_tuple.service_id == self.original_entry["service_id"]
assert deserialised_tuple.command_id == self.original_entry["command_id"]
assert deserialised_tuple.abort == self.original_entry["abort"]
assert deserialised_tuple.gps_stop_time == self.original_entry["gps_stop_time"]

def test_if_buffer_has_wrong_id_then_throws(self):
buf = serialise_6s4t(**self.original_entry)
Expand Down
Loading
Loading