:py:mod:`vspyx.Frames` ====================== .. py:module:: vspyx.Frames Subpackages ----------- .. toctree:: :titlesonly: :maxdepth: 3 EthernetFrameBuilder/index.rst ScriptStatus/index.rst Package Contents ---------------- Classes ~~~~~~~ .. autoapisummary:: vspyx.Frames.Buffer vspyx.Frames.BufferOpener vspyx.Frames.BufferSource vspyx.Frames.CANConfirmation vspyx.Frames.CANControllerState vspyx.Frames.CANDriver vspyx.Frames.CANErrorCountsEvent vspyx.Frames.CANFrame vspyx.Frames.CANFrameBuilder vspyx.Frames.Confirmation vspyx.Frames.Coremini vspyx.Frames.Driver vspyx.Frames.DriverIdentifier vspyx.Frames.EthernetConfirmation vspyx.Frames.EthernetDriver vspyx.Frames.EthernetFrame vspyx.Frames.FileId vspyx.Frames.FlexRayCCConfiguration vspyx.Frames.FlexRayCRCStatus vspyx.Frames.FlexRayChannel vspyx.Frames.FlexRayClusterConfiguration vspyx.Frames.FlexRayDriver vspyx.Frames.FlexRayFrame vspyx.Frames.FlexRayFrameBuilder vspyx.Frames.FlexRayStrobePoint vspyx.Frames.FlexRaySymbol vspyx.Frames.FlexRayTransmitBufferUpdate vspyx.Frames.Frame vspyx.Frames.FrameBuilder vspyx.Frames.FrameType vspyx.Frames.Identifier vspyx.Frames.LINDriver vspyx.Frames.Module vspyx.Frames.NetworkEvent vspyx.Frames.NetworkIdentifier vspyx.Frames.Predicate vspyx.Frames.Record vspyx.Frames.SimResetEvent vspyx.Frames.Source vspyx.Frames.SourceFinder vspyx.Frames.SourceIdentifier vspyx.Frames.VSAFilesystem vspyx.Frames.WritableBuffer vspyx.Frames.WritableBufferOpener .. py:class:: Buffer Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Frames.Buffer :parts: 1 :private-bases: Represents the functional basis of a transaction buffer consisting of zero or more frames .. py:attribute:: Duration :annotation: :Any .. py:attribute:: FileName :annotation: :str .. py:attribute:: Identifer :annotation: :SourceIdentifier .. py:attribute:: NumberOfFrames :annotation: :int .. py:attribute:: TypeString :annotation: :str .. py:method:: IsPrepared(self) -> bool .. py:method:: Prepare(self, task: vspyx.Core.TaskInterface) -> Any .. py:method:: __getitem__(self, index: int) -> NetworkEvent .. py:class:: BufferOpener Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Frames.BufferOpener :parts: 1 :private-bases: Represents the function of reading recorded message frame buffer data .. py:attribute:: TypeString :annotation: :str .. py:method:: CanOpen(self, path: str) -> bool .. py:method:: Open(self, path: str) -> vspyx.Core.Task_0f35f34819 .. py:class:: BufferSource Bases: :py:obj:`Source` .. autoapi-inheritance-diagram:: vspyx.Frames.BufferSource :parts: 1 :private-bases: Represents the functional basis of time-varied frame buffer data hosting .. py:attribute:: Buffer :annotation: :Buffer .. py:attribute:: BufferEndEvent :annotation: :vspyx.Core.Event .. py:attribute:: Loop :annotation: :bool .. py:attribute:: LoopCount :annotation: :int .. py:attribute:: OnLooped :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: Paused :annotation: :bool .. py:attribute:: Position :annotation: :float .. py:attribute:: TimeMultiplier :annotation: :float .. py:attribute:: TimeSkipDetectionThreshold :annotation: :Any Get/set the current threshold of elapsed time that indicates we were frozen (in a suspended VM, say). If we detect we were frozen, we will skip the time in the buffer rather than attempting to catch up to where we would have been if all that time had elapsed. This prevents us from entering a death spiral of processing in these cases. The default threshold is one second, and it will not trigger if the Scheduler is in non-realtime mode. This API is not guaranteed and should not be relied on long term, but it is provided in case the threshold is causing problems and a quick workaround is needed. .. py:attribute:: UseSimulationTime :annotation: :bool Used to select whether the timestamps of the buffer should be synchronized with the beginning of the simulation (true) or the beginning of the buffer (false). This defaults to true when running realtime for correct synchronization with real hardware, and false when running non-realtime for accurate timestamps while processing. Note that even when false, the buffer source creates timestamps after the final frame for buffer looping. The value is latched during ComponentStart, so if the value is changed while running it will take effect the next time the source is started. .. py:method:: MakeSchedulerTicker(self) -> vspyx.Runtime.SchedulerTicker .. py:class:: CANConfirmation Bases: :py:obj:`Confirmation` .. autoapi-inheritance-diagram:: vspyx.Frames.CANConfirmation :parts: 1 :private-bases: Represents the completion of a pending CANFrame forward/transmit .. py:attribute:: CANFrame :annotation: :CANFrame .. py:attribute:: Status :annotation: :CANDriver.TxStatus .. py:method:: New(frame: CANFrame, status: CANDriver.TxStatus) -> CANConfirmation :staticmethod: .. py:class:: CANControllerState Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Frames.CANControllerState :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: BusOff :annotation: = 2 .. py:attribute:: ErrorActive :annotation: = 0 .. py:attribute:: ErrorPassive :annotation: = 1 .. py:class:: CANDriver Bases: :py:obj:`Driver` .. autoapi-inheritance-diagram:: vspyx.Frames.CANDriver :parts: 1 :private-bases: Represents CAN driver function .. py:class:: TxStatus Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Frames.CANDriver.TxStatus :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Aborted :annotation: = 1 .. py:attribute:: ArbitrationLost :annotation: = 2 .. py:attribute:: Transmitted :annotation: = 0 .. py:attribute:: FDBaudRate :annotation: :Any .. py:class:: CANErrorCountsEvent Bases: :py:obj:`NetworkEvent` .. autoapi-inheritance-diagram:: vspyx.Frames.CANErrorCountsEvent :parts: 1 :private-bases: Represents an event emitted onto the channel by a CAN Controller when its error counts change. It does not represent an event that would occur on a physical CAN bus, but is propagated for display reasons. .. py:attribute:: BusOff :annotation: :bool .. py:attribute:: ControllerState :annotation: :CANControllerState The error state of the CAN controller .. py:attribute:: CountsAsTraffic :annotation: :bool .. py:attribute:: ErrorWarning :annotation: :bool Some CAN controllers have an "error warning" threshold when either counter goes above 95. Since it is not a standardized error state, it is not reported as the controller state, but the value can be read here. .. py:attribute:: ReceiveErrorCount :annotation: :int .. py:attribute:: TransmitErrorCount :annotation: :int .. py:method:: New(timestamp: vspyx.Runtime.Timestamp, source: SourceIdentifier, network: NetworkIdentifier, tec: int, rec: int, busOff: bool) -> CANErrorCountsEvent :staticmethod: .. py:class:: CANFrame Bases: :py:obj:`Frame` .. autoapi-inheritance-diagram:: vspyx.Frames.CANFrame :parts: 1 :private-bases: Represents a CAN communication frame .. py:attribute:: ArbID :annotation: :int .. py:attribute:: BaudrateSwitch :annotation: :bool .. py:attribute:: DLC :annotation: :int .. py:attribute:: IsCANFD :annotation: :bool .. py:attribute:: IsExtended :annotation: :bool .. py:attribute:: IsRemote :annotation: :bool .. py:class:: CANFrameBuilder Bases: :py:obj:`CANFrame` .. autoapi-inheritance-diagram:: vspyx.Frames.CANFrameBuilder :parts: 1 :private-bases: Represents CAN frame construction support functionality .. py:attribute:: ArbID :annotation: :int .. py:attribute:: ArbIDMask :annotation: :int .. py:attribute:: Arbitrary :annotation: :int .. py:attribute:: BaudrateSwitch :annotation: :bool .. py:attribute:: BaudrateSwitchMask :annotation: :bool .. py:attribute:: CANFDMask :annotation: :bool .. py:attribute:: DLC :annotation: :int .. py:attribute:: DLCMask :annotation: :int .. py:attribute:: Data :annotation: :vspyx.Core.BytesView .. py:attribute:: ExtendedMask :annotation: :bool .. py:attribute:: IsCANFD :annotation: :bool .. py:attribute:: IsExtended :annotation: :bool .. py:attribute:: IsRemote :annotation: :bool .. py:attribute:: Mask :annotation: :vspyx.Core.BytesView .. py:attribute:: Network :annotation: :NetworkIdentifier .. py:attribute:: RemoteMask :annotation: :bool .. py:attribute:: Source :annotation: :SourceIdentifier .. py:attribute:: Timestamp :annotation: :vspyx.Runtime.Timestamp .. py:attribute:: Type :annotation: :FrameType .. py:method:: ArbIDSet(self, set: int) -> CANFrameBuilder ArbIDSet(self, set: int, mask: int) -> CANFrameBuilder .. py:method:: BaudrateSwitchSet(self, set: bool) -> CANFrameBuilder BaudrateSwitchSet(self, set: bool, mask: bool) -> CANFrameBuilder .. py:method:: Byte(self, index: int, value: int) -> CANFrameBuilder Byte(self, index: int, value: int, mask: int) -> CANFrameBuilder .. py:method:: CANFDSet(self, set: bool) -> CANFrameBuilder CANFDSet(self, set: bool, mask: bool) -> CANFrameBuilder .. py:method:: CAN_DLCToDL(dlc: int, fd: bool) -> int :staticmethod: Convert a given CAN DLC nibble to a CAN data length. If `fd` is false, only 0-8 are acceptable, throwing otherwise. If `fd is true, then 0-64 are acceptable, throwing otherwise. .. py:method:: CAN_DLToDLC(dataLength: int, fd: bool) -> int :staticmethod: Convert a given CAN data length to a CAN DLC nibble. If `fd` is false, only 0-8 are acceptable, throwing otherwise. If `fd is true, then hex 0-F are acceptable, throwing otherwise. .. py:method:: Clone(self) -> NetworkEvent .. py:method:: DLCAutosetFromDataSizeAndCANFDFlag(self) -> CANFrameBuilder Automatically set the DLC given the currently set Data. Checks the current IsCANFD flag to enable the upper 4 DLC bits. Throws std::runtime_error if the Data is too long for the current frame type (2.0 vs FD) .. py:method:: DLCSet(self, set: int) -> CANFrameBuilder DLCSet(self, set: int, mask: int) -> CANFrameBuilder .. py:method:: DataSet(self, bytes: List[int]) -> Any DataSet(self, bytes: vspyx.Core.BytesView) -> Any .. py:method:: ExtendedSet(self, set: bool) -> CANFrameBuilder ExtendedSet(self, set: bool, mask: bool) -> CANFrameBuilder .. py:method:: RemoteSet(self, set: bool) -> CANFrameBuilder RemoteSet(self, set: bool, mask: bool) -> CANFrameBuilder .. py:class:: Confirmation Bases: :py:obj:`NetworkEvent` .. autoapi-inheritance-diagram:: vspyx.Frames.Confirmation :parts: 1 :private-bases: Represents the completion of a pending Frame forward/transmit .. py:attribute:: CountsAsTraffic :annotation: :bool .. py:attribute:: Frame :annotation: :Frame .. py:attribute:: IsError :annotation: :bool .. py:attribute:: Network :annotation: :NetworkIdentifier .. py:attribute:: Source :annotation: :SourceIdentifier .. py:class:: Coremini Coremini .. py:attribute:: CollectionNames :annotation: :List[str] .. py:attribute:: CreateTime :annotation: :vspyx.Runtime.Timestamp .. py:attribute:: EncryptedSize :annotation: :int .. py:attribute:: FirstLogSector :annotation: :int .. py:attribute:: Hash :annotation: :vspyx.Core.BytesView .. py:attribute:: PersistentLogDataOffset :annotation: :int .. py:attribute:: PersistentLogDataSector :annotation: :int .. py:attribute:: ReadBinSizeSectors :annotation: :int .. py:attribute:: ReadBinStartSector :annotation: :int .. py:attribute:: RootDirectorySector :annotation: :int .. py:attribute:: RootDirectorySize :annotation: :int .. py:attribute:: Version :annotation: :int .. py:method:: GenerateBinary(self) -> vspyx.Core.BytesView .. py:method:: GetChecksum(bytes: List[int], filesize: int) -> int :staticmethod: .. py:method:: GetCollectionName(self, functionBlockIndex: int) -> str .. py:method:: GetCoreminiNetId(record: int) -> int :staticmethod: .. py:method:: GetVersion(inputStream: vspyx.IO.FileInputStream) -> int :staticmethod: .. py:method:: HasEnhancedRootDirectory(self) -> bool .. py:method:: assign(self, arg0: Coremini) -> Coremini .. py:class:: Driver Bases: :py:obj:`vspyx.Core.Object` .. autoapi-inheritance-diagram:: vspyx.Frames.Driver :parts: 1 :private-bases: Represents the functional basis for a communication driver interface .. py:class:: IngressResult Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Frames.Driver.IngressResult :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Failed :annotation: = 3 .. py:attribute:: Nop :annotation: = 0 .. py:attribute:: Requested :annotation: = 1 .. py:attribute:: Successful :annotation: = 2 .. py:attribute:: BaudRate :annotation: :int .. py:attribute:: Identifier :annotation: :DriverIdentifier .. py:attribute:: OnEvent :annotation: :vspyx.Core.Callback_316d8f46e9 Called when the driver reports an occurrence of a Network Event. This could be a Frames::Frame or any other event that the Driver can detect. .. py:method:: SubmitEvent(self, event: NetworkEvent) -> Driver.IngressResult Submit an event to the driver. For instance, the event may be a Frame, in which case we expect the Driver to Transmit the Frame. .. py:class:: DriverIdentifier Bases: :py:obj:`Identifier` .. autoapi-inheritance-diagram:: vspyx.Frames.DriverIdentifier :parts: 1 :private-bases: Represents the general classification of a driver identify .. py:attribute:: Description :annotation: :str .. py:class:: EthernetConfirmation Bases: :py:obj:`Confirmation` .. autoapi-inheritance-diagram:: vspyx.Frames.EthernetConfirmation :parts: 1 :private-bases: Represents the completion of a pending EthernetFrame forward/transmit .. py:attribute:: EthernetFrame :annotation: :EthernetFrame .. py:attribute:: Status :annotation: :EthernetDriver.TxStatus .. py:method:: New(frame: EthernetFrame, status: EthernetDriver.TxStatus) -> EthernetConfirmation :staticmethod: .. py:class:: EthernetDriver Bases: :py:obj:`Driver` .. autoapi-inheritance-diagram:: vspyx.Frames.EthernetDriver :parts: 1 :private-bases: Rerepsents an Ethernet device driver .. py:class:: TxStatus Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Frames.EthernetDriver.TxStatus :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Dropped :annotation: = 1 .. py:attribute:: Transmitted :annotation: = 0 .. py:class:: EthernetFrame Bases: :py:obj:`Frame` .. autoapi-inheritance-diagram:: vspyx.Frames.EthernetFrame :parts: 1 :private-bases: Represents an Ethernet message frame .. py:attribute:: IsFCSAvailable :annotation: :bool .. py:attribute:: IsFrameTooShort :annotation: :bool .. py:attribute:: IsNoPadding :annotation: :bool .. py:attribute:: IsPreemptionEnabled :annotation: :bool .. py:attribute:: PreemptionFlags :annotation: :int .. py:method:: New(data: vspyx.Core.BytesView, timestamp: vspyx.Runtime.Timestamp, source: SourceIdentifier, network: NetworkIdentifier, arbitrary: int) -> EthernetFrame :staticmethod: .. py:class:: FileId FileId .. py:attribute:: ID :annotation: :str .. py:attribute:: StartSector :annotation: :int .. py:attribute:: Timestamp :annotation: :vspyx.Runtime.Timestamp .. py:attribute:: UnixTimestamp :annotation: :int .. py:method:: assign(self, arg0: FileId) -> FileId .. py:class:: FlexRayCCConfiguration FlexRayCCConfiguration .. py:attribute:: AcceptStartupRangeMicroticks :annotation: :int .. py:attribute:: AllowHaltDueToClock :annotation: :bool .. py:attribute:: AllowPassiveToActiveCyclePairs :annotation: :int .. py:attribute:: ChannelA :annotation: :bool .. py:attribute:: ChannelB :annotation: :bool .. py:attribute:: ClusterDriftDamping :annotation: :int .. py:attribute:: DecodingCorrectionMicroticks :annotation: :int .. py:attribute:: DelayCompensationAMicroticks :annotation: :int .. py:attribute:: DelayCompensationBMicroticks :annotation: :int .. py:attribute:: ExternOffsetCorrectionControl :annotation: :int .. py:attribute:: ExternOffsetCorrectionMicroticks :annotation: :int .. py:attribute:: ExternRateCorrectionControl :annotation: :int .. py:attribute:: ExternRateCorrectionMicroticks :annotation: :int .. py:attribute:: ExternalSync :annotation: :bool .. py:attribute:: FallBackInternal :annotation: :bool .. py:attribute:: GlobalConfiguration :annotation: :FlexRayClusterConfiguration .. py:attribute:: KeySlotID :annotation: :int .. py:attribute:: KeySlotOnlyEnabled :annotation: :bool .. py:attribute:: KeySlotUsedForStartup :annotation: :bool .. py:attribute:: KeySlotUsedForSync :annotation: :bool .. py:attribute:: LatestTxMinislot :annotation: :int .. py:attribute:: ListenTimeout :annotation: :int .. py:attribute:: MTSOnA :annotation: :bool .. py:attribute:: MTSOnB :annotation: :bool .. py:attribute:: MacroInitialOffsetA :annotation: :int .. py:attribute:: MacroInitialOffsetB :annotation: :int .. py:attribute:: MaximumDynamicPayloadLengthWords :annotation: :int .. py:attribute:: MicroInitialOffsetA :annotation: :int .. py:attribute:: MicroInitialOffsetB :annotation: :int .. py:attribute:: MicroPerCycle :annotation: :int .. py:attribute:: MicrotickDurationSec :annotation: :float .. py:attribute:: NMVectorEarlyUpdate :annotation: :bool .. py:attribute:: OffsetCorrectionOutMicroticks :annotation: :int .. py:attribute:: RateCorrectionOutMicroticks :annotation: :int .. py:attribute:: SamplesPerMicrotick :annotation: :int .. py:attribute:: SecondKeySlotID :annotation: :int .. py:attribute:: TwoKeySlotMode :annotation: :bool .. py:attribute:: UseExternalSync :annotation: :bool .. py:attribute:: UseFallBackInternal :annotation: :bool .. py:attribute:: UseMicrotickDurationSec :annotation: :bool .. py:attribute:: UseNMVectorEarlyUpdate :annotation: :bool .. py:attribute:: UseSamplesPerMicrotick :annotation: :bool .. py:attribute:: WakeupOnChannelB :annotation: :bool .. py:attribute:: WakeupPattern :annotation: :int .. py:class:: FlexRayCRCStatus Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Frames.FlexRayCRCStatus :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Error :annotation: = 1 .. py:attribute:: NoCRC :annotation: = 2 .. py:attribute:: OK :annotation: = 0 .. py:class:: FlexRayChannel Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Frames.FlexRayChannel :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: A :annotation: = 0 .. py:attribute:: AB :annotation: = 2 .. py:attribute:: B :annotation: = 1 .. py:class:: FlexRayClusterConfiguration FlexRayClusterConfiguration .. py:attribute:: ActionPointOffset :annotation: :int .. py:attribute:: BitTimeNS :annotation: :int .. py:attribute:: CASRxLowMax :annotation: :int .. py:attribute:: ColdStartAttempts :annotation: :int .. py:attribute:: CycleCountMax :annotation: :int .. py:attribute:: CycleDurationSec :annotation: :float .. py:attribute:: DetectNITError :annotation: :bool .. py:attribute:: DynamicSlotIdlePhaseMinislots :annotation: :int .. py:attribute:: IgnoreAfterTx :annotation: :int .. py:attribute:: ListenNoiseMacroticks :annotation: :int .. py:attribute:: MacrotickDurationSec :annotation: :float .. py:attribute:: MacroticksPerCycle :annotation: :int .. py:attribute:: MaxWithoutClockCorrectionFatal :annotation: :int .. py:attribute:: MaxWithoutClockCorrectionPassive :annotation: :int .. py:attribute:: MinislotActionPointOffsetMacroticks :annotation: :int .. py:attribute:: MinislotDurationMacroticks :annotation: :int .. py:attribute:: NetworkIdleTimeMacroticks :annotation: :int .. py:attribute:: NetworkManagementVectorLengthBytes :annotation: :int .. py:attribute:: NumberOfMinislots :annotation: :int .. py:attribute:: NumberOfStaticSlots :annotation: :int .. py:attribute:: OffsetCorrectionStartMacroticks :annotation: :int .. py:attribute:: PayloadLengthOfStaticSlotInWords :annotation: :int .. py:attribute:: SafetyMarginMacroticks :annotation: :int .. py:attribute:: SampleClockPeriodSec :annotation: :float .. py:attribute:: StaticSlotMacroticks :annotation: :int .. py:attribute:: SymbolWindowActionPointOffsetMacroticks :annotation: :int .. py:attribute:: SymbolWindowMacroticks :annotation: :int .. py:attribute:: SyncFrameIDCountMax :annotation: :int .. py:attribute:: TransceiverStandbyDelaySec :annotation: :float .. py:attribute:: TransmissionStartSequenceDurationBits :annotation: :int .. py:attribute:: UseSampleClockPeriodSec :annotation: :bool .. py:attribute:: UseTransceiverStandbyDelaySec :annotation: :bool .. py:attribute:: WakeupRxIdleBits :annotation: :int .. py:attribute:: WakeupRxLowBits :annotation: :int .. py:attribute:: WakeupRxWindowBits :annotation: :int .. py:attribute:: WakeupTxActiveBits :annotation: :int .. py:attribute:: WakeupTxIdleBits :annotation: :int .. py:class:: FlexRayDriver Bases: :py:obj:`Driver` .. autoapi-inheritance-diagram:: vspyx.Frames.FlexRayDriver :parts: 1 :private-bases: Represents a Flexray driver .. py:method:: GetAllowColdstart(self, idx: int) -> bool .. py:method:: GetStartWhenGoingOnline(self, idx: int) -> bool .. py:method:: GetWakeupBeforeStart(self, idx: int) -> bool .. py:method:: Halt(self, idx: int) -> Any .. py:method:: SetAllowColdstart(self, idx: int, enable: bool) -> Any .. py:method:: SetCCConfiguration(self, idx: int, config: FlexRayCCConfiguration) -> Any .. py:method:: SetStartWhenGoingOnline(self, idx: int, enable: bool) -> Any .. py:method:: SetWakeupBeforeStart(self, idx: int, enable: bool) -> Any .. py:method:: Start(self, idx: int) -> Any .. py:class:: FlexRayFrame Bases: :py:obj:`Frame` .. autoapi-inheritance-diagram:: vspyx.Frames.FlexRayFrame :parts: 1 :private-bases: Represents a Flexray frame .. py:attribute:: CRCStatus :annotation: :FlexRayCRCStatus .. py:attribute:: Channel :annotation: :FlexRayChannel .. py:attribute:: Cycle :annotation: :int .. py:attribute:: FrameCRC :annotation: :int .. py:attribute:: FrameLen :annotation: :float .. py:attribute:: HeaderCRC :annotation: :int .. py:attribute:: HeaderCRCStatus :annotation: :FlexRayCRCStatus .. py:attribute:: IsDynamicFrame :annotation: :bool .. py:attribute:: IsNullFrame :annotation: :bool .. py:attribute:: IsStartupFrame :annotation: :bool .. py:attribute:: IsSyncFrame :annotation: :bool .. py:attribute:: PayloadPreamble :annotation: :bool .. py:attribute:: ReservedBit :annotation: :bool .. py:attribute:: SlotID :annotation: :int .. py:attribute:: Symbol :annotation: :FlexRaySymbol .. py:attribute:: TSSLen :annotation: :float .. py:class:: FlexRayFrameBuilder Bases: :py:obj:`FlexRayFrame` .. autoapi-inheritance-diagram:: vspyx.Frames.FlexRayFrameBuilder :parts: 1 :private-bases: FlexRayFrameBuilder .. py:attribute:: Arbitrary :annotation: :int .. py:attribute:: Data :annotation: :vspyx.Core.BytesView .. py:attribute:: Network :annotation: :NetworkIdentifier .. py:attribute:: Source :annotation: :SourceIdentifier .. py:attribute:: Timestamp :annotation: :vspyx.Runtime.Timestamp .. py:attribute:: Type :annotation: :FrameType .. py:method:: Clone(self) -> NetworkEvent .. py:method:: DataSet(self, bytes: List[int]) -> Any DataSet(self, bytes: vspyx.Core.BytesView) -> Any .. py:method:: GetCRCStatus(self) -> FlexRayCRCStatus .. py:method:: GetChannel(self) -> FlexRayChannel .. py:method:: GetCycle(self) -> int .. py:method:: GetFrameCRC(self) -> int .. py:method:: GetFrameLen(self) -> float .. py:method:: GetHeaderCRC(self) -> int .. py:method:: GetHeaderCRCStatus(self) -> FlexRayCRCStatus .. py:method:: GetIsDynamicFrame(self) -> bool .. py:method:: GetIsNullFrame(self) -> bool .. py:method:: GetIsStartupFrame(self) -> bool .. py:method:: GetIsSyncFrame(self) -> bool .. py:method:: GetPayloadPreamble(self) -> bool .. py:method:: GetReservedBit(self) -> bool .. py:method:: GetSlotID(self) -> int .. py:method:: GetSymbol(self) -> FlexRaySymbol .. py:method:: GetTSSLen(self) -> float .. py:method:: SetCRCStatus(self, CRCStatus: FlexRayCRCStatus) -> FlexRayFrameBuilder .. py:method:: SetChannel(self, channel: FlexRayChannel) -> FlexRayFrameBuilder .. py:method:: SetCycle(self, cycle: int) -> FlexRayFrameBuilder .. py:method:: SetFrameCRC(self, frameCRC: int) -> FlexRayFrameBuilder .. py:method:: SetFrameLen(self, FrameLen: float) -> FlexRayFrameBuilder .. py:method:: SetHeaderCRC(self, headerCRC: int) -> FlexRayFrameBuilder .. py:method:: SetHeaderCRCStatus(self, headerCRCStatus: FlexRayCRCStatus) -> FlexRayFrameBuilder .. py:method:: SetIsDynamicFrame(self, isDynamicFrame: bool) -> FlexRayFrameBuilder .. py:method:: SetIsNullFrame(self, isNullFrame: bool) -> FlexRayFrameBuilder .. py:method:: SetIsStartupFrame(self, isStartupFrame: bool) -> FlexRayFrameBuilder .. py:method:: SetIsSyncFrame(self, isSyncFrame: bool) -> FlexRayFrameBuilder .. py:method:: SetPayloadPreamble(self, payloadPreamble: bool) -> FlexRayFrameBuilder .. py:method:: SetReservedBit(self, isReservedBit: bool) -> FlexRayFrameBuilder .. py:method:: SetSlotID(self, slotID: int) -> FlexRayFrameBuilder .. py:method:: SetSymbol(self, symbol: FlexRaySymbol) -> FlexRayFrameBuilder .. py:method:: SetTSSLen(self, TSSLen: float) -> FlexRayFrameBuilder .. py:class:: FlexRayStrobePoint Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Frames.FlexRayStrobePoint :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: SPP4 :annotation: = 1 .. py:attribute:: SPP5 :annotation: = 0 .. py:attribute:: SPP6 :annotation: = 2 .. py:class:: FlexRaySymbol Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Frames.FlexRaySymbol :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: CAS :annotation: = 3 .. py:attribute:: NONE :annotation: = 0 .. py:attribute:: Unknown :annotation: = 1 .. py:attribute:: Wakeup :annotation: = 2 .. py:class:: FlexRayTransmitBufferUpdate Bases: :py:obj:`NetworkEvent` .. autoapi-inheritance-diagram:: vspyx.Frames.FlexRayTransmitBufferUpdate :parts: 1 :private-bases: Transmitted onto a FlexRayChannel when a Controller updates its transmit buffer. This way, any physical FrameSources can update their internal transmit buffers as necessary to create this traffic on the physical bus when the time comes. .. py:class:: Mode Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Frames.FlexRayTransmitBufferUpdate.Mode :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Clear :annotation: = 3 .. py:attribute:: Continuous :annotation: = 1 .. py:attribute:: FIFO :annotation: = 2 .. py:attribute:: OneShot :annotation: = 0 .. py:attribute:: BaseCycle :annotation: :int .. py:attribute:: Channel :annotation: :FlexRayChannel .. py:attribute:: CountsAsTraffic :annotation: :bool .. py:attribute:: CycleRepetition :annotation: :int .. py:attribute:: Data :annotation: :vspyx.Core.BytesView .. py:attribute:: IsDynamic :annotation: :bool .. py:attribute:: IsKeySlot :annotation: :bool .. py:attribute:: IsNMFrame :annotation: :bool .. py:attribute:: IsStartup :annotation: :bool .. py:attribute:: IsSync :annotation: :bool .. py:attribute:: SlotID :annotation: :int .. py:method:: GetMode(self) -> FlexRayTransmitBufferUpdate.Mode .. py:method:: Matches(self, other: FlexRayTransmitBufferUpdate) -> bool Returns true if the given FlexRayTransmitBufferUpdate would use the same message buffer as the current FlexRayTransmitBufferUpdate would. .. py:method:: New(data: vspyx.Core.BytesView, timestamp: vspyx.Runtime.Timestamp, source: SourceIdentifier, network: NetworkIdentifier, baseCycle: int, cycleRepetition: int, mode: FlexRayTransmitBufferUpdate.Mode, channel: FlexRayChannel, slotId: int) -> FlexRayTransmitBufferUpdate New(data: vspyx.Core.BytesView, timestamp: vspyx.Runtime.Timestamp, source: SourceIdentifier, network: NetworkIdentifier, baseCycle: int, cycleRepetition: int, mode: FlexRayTransmitBufferUpdate.Mode, channel: FlexRayChannel, slotId: int, dynamic: bool) -> FlexRayTransmitBufferUpdate New(data: vspyx.Core.BytesView, timestamp: vspyx.Runtime.Timestamp, source: SourceIdentifier, network: NetworkIdentifier, baseCycle: int, cycleRepetition: int, mode: FlexRayTransmitBufferUpdate.Mode, channel: FlexRayChannel, slotId: int, dynamic: bool, networkManagement: bool) -> FlexRayTransmitBufferUpdate New(data: vspyx.Core.BytesView, timestamp: vspyx.Runtime.Timestamp, source: SourceIdentifier, network: NetworkIdentifier, baseCycle: int, cycleRepetition: int, mode: FlexRayTransmitBufferUpdate.Mode, channel: FlexRayChannel, slotId: int, dynamic: bool, networkManagement: bool, keySlot: bool) -> FlexRayTransmitBufferUpdate New(data: vspyx.Core.BytesView, timestamp: vspyx.Runtime.Timestamp, source: SourceIdentifier, network: NetworkIdentifier, baseCycle: int, cycleRepetition: int, mode: FlexRayTransmitBufferUpdate.Mode, channel: FlexRayChannel, slotId: int, dynamic: bool, networkManagement: bool, keySlot: bool, sync: bool) -> FlexRayTransmitBufferUpdate New(data: vspyx.Core.BytesView, timestamp: vspyx.Runtime.Timestamp, source: SourceIdentifier, network: NetworkIdentifier, baseCycle: int, cycleRepetition: int, mode: FlexRayTransmitBufferUpdate.Mode, channel: FlexRayChannel, slotId: int, dynamic: bool, networkManagement: bool, keySlot: bool, sync: bool, startup: bool) -> FlexRayTransmitBufferUpdate :staticmethod: .. py:class:: Frame Bases: :py:obj:`NetworkEvent` .. autoapi-inheritance-diagram:: vspyx.Frames.Frame :parts: 1 :private-bases: Represents the basis of a physical communication frame .. py:attribute:: Arbitrary :annotation: :int .. py:attribute:: CountsAsTraffic :annotation: :bool .. py:attribute:: Data :annotation: :vspyx.Core.BytesView .. py:attribute:: Type :annotation: :FrameType .. py:class:: FrameBuilder Bases: :py:obj:`Frame` .. autoapi-inheritance-diagram:: vspyx.Frames.FrameBuilder :parts: 1 :private-bases: Represents the basis of a message frame builder .. py:attribute:: Arbitrary :annotation: :int .. py:attribute:: Data :annotation: :vspyx.Core.BytesView .. py:attribute:: Timestamp :annotation: :vspyx.Runtime.Timestamp .. py:method:: Clone(self) -> NetworkEvent .. py:method:: DataSet(self, bytes: List[int]) -> FrameBuilder .. py:method:: GetNetwork(self) -> NetworkIdentifier .. py:method:: GetSource(self) -> SourceIdentifier .. py:method:: GetType(self) -> FrameType .. py:method:: SetNetwork(self, network: NetworkIdentifier) -> FrameBuilder .. py:method:: SetSource(self, source: SourceIdentifier) -> FrameBuilder .. py:method:: SetType(self, type: FrameType) -> FrameBuilder .. py:class:: FrameType Bases: :py:obj:`vspyx.Core.Object` .. autoapi-inheritance-diagram:: vspyx.Frames.FrameType :parts: 1 :private-bases: Represents message frame type identification info .. py:class:: Enum Bases: :py:obj:`enum.IntFlag` .. autoapi-inheritance-diagram:: vspyx.Frames.FrameType.Enum :parts: 1 :private-bases: Support for integer-based Flags .. py:attribute:: A2B :annotation: = 11 .. py:attribute:: CAN :annotation: = 2 .. py:attribute:: Ethernet :annotation: = 6 .. py:attribute:: FlexRay :annotation: = 4 .. py:attribute:: I2C :annotation: = 10 .. py:attribute:: ISO9141 :annotation: = 9 .. py:attribute:: LIN :annotation: = 3 .. py:attribute:: MOST :annotation: = 5 .. py:attribute:: Unknown :annotation: = 65535 .. py:method:: GetEnum(self) -> FrameType.Enum .. py:method:: TypeToString(e: FrameType.Enum) -> int :staticmethod: .. py:method:: __eq__(self, compare: FrameType.Enum) -> bool Return self==value. .. py:method:: __str__(self) -> str Return str(self). .. py:method:: assign(self, e: FrameType.Enum) -> FrameType .. py:class:: Identifier Bases: :py:obj:`vspyx.Core.Object` .. autoapi-inheritance-diagram:: vspyx.Frames.Identifier :parts: 1 :private-bases: Represents an identity associated with an object .. py:method:: __eq__(self, rhs: Identifier) -> bool Return self==value. .. py:method:: __str__(self) -> str Return str(self). .. py:class:: LINDriver Bases: :py:obj:`Driver` .. autoapi-inheritance-diagram:: vspyx.Frames.LINDriver :parts: 1 :private-bases: Rerepsents an LIN device driver .. py:class:: Module Bases: :py:obj:`vspyx.Core.Module` .. autoapi-inheritance-diagram:: vspyx.Frames.Module :parts: 1 :private-bases: Represents the generic basis of frame modules .. py:method:: AddBufferOpener(self, opener: BufferOpener) -> Any .. py:method:: AddSourceFinder(self, finder: SourceFinder) -> Any .. py:method:: AddWritableBufferOpener(self, opener: WritableBufferOpener) -> Any .. py:method:: CanOpenBuffer(self, path: str) -> bool .. py:method:: CanWriteBuffer(self, path: str) -> bool .. py:method:: DiscoverAllSources(self) -> List[Source] .. py:method:: FindSourceByDescription(self, description: str) -> List[Source] .. py:method:: NewSourceFromBuffer(self, buffer: Buffer) -> BufferSource .. py:method:: OpenBuffer(self, path: str) -> vspyx.Core.Task_0f35f34819 .. py:method:: OpenWritableBuffer(self, path: str) -> WritableBuffer .. py:class:: NetworkEvent Bases: :py:obj:`vspyx.Core.Object` .. autoapi-inheritance-diagram:: vspyx.Frames.NetworkEvent :parts: 1 :private-bases: Represents an event that a controller would observe/create regarding a network. It is the basis for Frame, ACK, NAK, Error State Change, Link State Change, etc. .. py:attribute:: CountsAsTraffic :annotation: :bool Whether or not this NetworkEvent counts as "traffic" for the purposes of statistics reporting, i.e. for the Channel's "total traffic" counter. .. py:attribute:: Network :annotation: :NetworkIdentifier .. py:attribute:: Source :annotation: :SourceIdentifier .. py:attribute:: Timestamp :annotation: :vspyx.Runtime.Timestamp .. py:method:: Clone(self) -> NetworkEvent .. py:class:: NetworkIdentifier Bases: :py:obj:`Identifier` .. autoapi-inheritance-diagram:: vspyx.Frames.NetworkIdentifier :parts: 1 :private-bases: Represents a network object identifier .. py:attribute:: Description :annotation: :str .. py:attribute:: Type :annotation: :FrameType .. py:class:: Predicate Represents a predicate handler used in comparison of message frame objects of various types .. py:attribute:: Function :annotation: :vspyx.Core.Function_9f3a3da547 .. py:class:: Record Record .. py:attribute:: Header :annotation: :int .. py:attribute:: Timestamp :annotation: :vspyx.Runtime.Timestamp .. py:method:: HasValidChecksum(self) -> bool .. py:method:: IsValidRecordForPreTrigger(self, functionBlockId: int) -> bool .. py:method:: MatchesCaptureMask(self, captureMask: int) -> bool .. py:method:: UpdateCaptureMask(self, captureMask: int) -> Any .. py:method:: assign(self, arg0: Record) -> Record .. py:class:: SimResetEvent Bases: :py:obj:`NetworkEvent` .. autoapi-inheritance-diagram:: vspyx.Frames.SimResetEvent :parts: 1 :private-bases: Represents an event propogating over the network when we know that a simulation source has reset and closed its connections. While it is not always possible to know that a source has reset connections, we can send this when a buffer file simulation loops or a simulated ECU resets to make heuristic followers act in a more user-friendly way. .. py:attribute:: CountsAsTraffic :annotation: :bool .. py:method:: New(timestamp: vspyx.Runtime.Timestamp, source: SourceIdentifier, network: NetworkIdentifier) -> SimResetEvent :staticmethod: .. py:class:: Source Bases: :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Frames.Source :parts: 1 :private-bases: Represents the basis of a message frame data source .. py:class:: State Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Frames.Source.State :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Closing :annotation: = 6 .. py:attribute:: Disconnected :annotation: = 7 .. py:attribute:: NotReady :annotation: = 1 .. py:attribute:: Online :annotation: = 5 .. py:attribute:: Open :annotation: = 4 .. py:attribute:: Opening :annotation: = 3 .. py:attribute:: Ready :annotation: = 2 .. py:attribute:: Uninitialized :annotation: = 0 .. py:attribute:: AvailableDrivers :annotation: :List[Driver] .. py:attribute:: Description :annotation: :str .. py:attribute:: DisplayName :annotation: :str .. py:attribute:: Filesystem :annotation: :vspyx.IO.Filesystem .. py:attribute:: Identifier :annotation: :SourceIdentifier .. py:attribute:: OnCaptureFinished :annotation: :vspyx.Core.Callback_b5149b3b0d .. py:attribute:: OnCoreMiniCreateTimeChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnCoreMiniHeaderSizeChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnCoreMiniRunningChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnCoreMiniVersionChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnCurrentSectorChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnDiagnosticErrorCodeChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnDiagnosticErrorCodeCountChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnFileChecksumChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnLastSectorChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnLoggingChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnMaxCoreMiniSizeChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnMaxSectorChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnMinSectorChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnNetworkEvent :annotation: :vspyx.Core.Callback_316d8f46e9 .. py:attribute:: OnReadBinSizeChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnRemainingSectorsChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnSectorOverflowChanged :annotation: :vspyx.Core.Callback_6787f08ea0 .. py:attribute:: OnSleepRequested :annotation: :vspyx.Core.Callback_a2f38cfeb7 .. py:attribute:: ScriptStatus :annotation: :Any .. py:attribute:: SleepRequested :annotation: :Any .. py:attribute:: SourceState :annotation: :Source.State .. py:attribute:: SourceStream :annotation: :vspyx.IO.SeekableInputOutputStream .. py:attribute:: TypeString :annotation: :str .. py:attribute:: UniqueIdentifierString :annotation: :str .. py:method:: AllowSleep(self) -> Any AllowSleep(self, remoteWakeup: bool) -> Any .. py:method:: ClearScript(self) -> Any .. py:method:: CloneState(self) -> Any .. py:method:: Close(self) -> vspyx.Core.Task_a3295bec43 .. py:method:: LoadReadBin(self, arg0: vspyx.Core.BytesView, readBinStartLocation: int) -> Any .. py:method:: LoadScript(self, arg0: vspyx.Core.BytesView) -> Any .. py:method:: Open(self) -> vspyx.Core.Task_a3295bec43 .. py:method:: Start(self) -> vspyx.Core.Task_a3295bec43 .. py:method:: StartScript(self) -> Any .. py:method:: StateString(state: Source.State) -> int :staticmethod: .. py:method:: Stop(self) -> vspyx.Core.Task_a3295bec43 .. py:method:: StopScript(self) -> Any .. py:method:: UpdateState(self, state: Any) -> Any .. py:class:: SourceFinder Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Frames.SourceFinder :parts: 1 :private-bases: Resolves message data source handler objects .. py:method:: Discover(self) -> List[Source] .. py:method:: Find(self, description: str) -> List[Source] .. py:method:: IsHandlerFor(self, description: str) -> bool .. py:class:: SourceIdentifier Bases: :py:obj:`Identifier` .. autoapi-inheritance-diagram:: vspyx.Frames.SourceIdentifier :parts: 1 :private-bases: Rerepesents the identification info for a data source object .. py:class:: VSAFilesystem Bases: :py:obj:`vspyx.IO.Filesystem` .. autoapi-inheritance-diagram:: vspyx.Frames.VSAFilesystem :parts: 1 :private-bases: VSAFilesystem .. py:class:: WritableBuffer Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Frames.WritableBuffer :parts: 1 :private-bases: Represents a writable output frame buffer .. py:attribute:: FileName :annotation: :str .. py:attribute:: NumberOfFrames :annotation: :int .. py:attribute:: TypeString :annotation: :str .. py:method:: Append(self, frame: Frame) -> Any .. py:class:: WritableBufferOpener Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Frames.WritableBufferOpener :parts: 1 :private-bases: Represents the function of opening an output buffer for writing message frames .. py:attribute:: TypeString :annotation: :str .. py:method:: CanWrite(self, path: str) -> bool .. py:method:: Open(self, path: str) -> WritableBuffer