:py:mod:`vspyx.Communication` ============================= .. py:module:: vspyx.Communication Subpackages ----------- .. toctree:: :titlesonly: :maxdepth: 3 ISO11898/index.rst Processors/index.rst Package Contents ---------------- Classes ~~~~~~~ .. autoapisummary:: vspyx.Communication.AUTOSARDataPrototype vspyx.Communication.AUTOSARDataType vspyx.Communication.ApplicationEndpoint vspyx.Communication.Architecture vspyx.Communication.BufferUpdatePoint vspyx.Communication.CANChannel vspyx.Communication.CANCluster vspyx.Communication.CANConnector vspyx.Communication.CANController vspyx.Communication.CANDataLinkPDUPoint vspyx.Communication.CANDiscoveryProcessor vspyx.Communication.CANErrorCountsPoint vspyx.Communication.CANFrame vspyx.Communication.CANFramePoint vspyx.Communication.CANFrameTriggering vspyx.Communication.CPPImplementationDataType vspyx.Communication.CPPImplementationDataTypeElement vspyx.Communication.Channel vspyx.Communication.Cluster vspyx.Communication.CommunicationPoint vspyx.Communication.Component vspyx.Communication.Connector vspyx.Communication.ConnectorPort vspyx.Communication.ContainerIPDU vspyx.Communication.ContainerIPDUPoint vspyx.Communication.Controller vspyx.Communication.DBC vspyx.Communication.DataLinkEventPoint vspyx.Communication.DataLinkPDUPoint vspyx.Communication.DatagramPoint vspyx.Communication.DiagnosticIPDU vspyx.Communication.ECU vspyx.Communication.EthernetChannel vspyx.Communication.EthernetCluster vspyx.Communication.EthernetConnector vspyx.Communication.EthernetController vspyx.Communication.EthernetDiscoveryProcessor vspyx.Communication.EthernetFrame vspyx.Communication.EthernetFrameTriggering vspyx.Communication.Field vspyx.Communication.FlexRayBufferUpdatePoint vspyx.Communication.FlexRayChannel vspyx.Communication.FlexRayCluster vspyx.Communication.FlexRayConnector vspyx.Communication.FlexRayController vspyx.Communication.FlexRayDataLinkPDUPoint vspyx.Communication.FlexRayDiscoveryProcessor vspyx.Communication.FlexRayFrame vspyx.Communication.FlexRayFrameTriggering vspyx.Communication.Frame vspyx.Communication.FramePoint vspyx.Communication.FramePort vspyx.Communication.FrameTriggering vspyx.Communication.GeneralPurposeIPDU vspyx.Communication.GeneralPurposePDU vspyx.Communication.IPDU vspyx.Communication.IPDUPort vspyx.Communication.ISO15765_2 vspyx.Communication.ISO15765_2Processor vspyx.Communication.ISOStandardizedServicePrimitiveInterface vspyx.Communication.ISOStandardizedServicePrimitiveInterfaceTrampoline vspyx.Communication.ISignal vspyx.Communication.ISignalGroup vspyx.Communication.ISignalGroupPoint vspyx.Communication.ISignalIPDU vspyx.Communication.ISignalIPDUGroup vspyx.Communication.ISignalIPDUPoint vspyx.Communication.ISignalPoint vspyx.Communication.ISignalPort vspyx.Communication.ISignalToIPDUMapping vspyx.Communication.ISignalTriggering vspyx.Communication.InvocationOptions vspyx.Communication.LINChannel vspyx.Communication.LINCluster vspyx.Communication.LINConnector vspyx.Communication.LINController vspyx.Communication.LINDiscoveryProcessor vspyx.Communication.LINFrameTriggering vspyx.Communication.Machine vspyx.Communication.MachineDesign vspyx.Communication.Message vspyx.Communication.Module vspyx.Communication.MultiplexedIPDU vspyx.Communication.MultiplexedIPDUPoint vspyx.Communication.NetworkEndpoint vspyx.Communication.NetworkManagementPDU vspyx.Communication.NetworkPDU vspyx.Communication.PDU vspyx.Communication.PDUInstance vspyx.Communication.PDUPoint vspyx.Communication.PDUTriggering vspyx.Communication.PhysicalConnector vspyx.Communication.PointProcessor vspyx.Communication.SOMEIPServiceInterfaceDeployment vspyx.Communication.ServiceInterface vspyx.Communication.ServiceInterfaceDeployment vspyx.Communication.SignalGroupInstance vspyx.Communication.SignalInstance vspyx.Communication.SimResetEventPoint vspyx.Communication.SocketAddress vspyx.Communication.SocketConnectionBundle vspyx.Communication.SourceHandle vspyx.Communication.Stack vspyx.Communication.StdCPPImplementationDataType vspyx.Communication.TDataPoint vspyx.Communication.Topology vspyx.Communication.TopologySubset vspyx.Communication.TrafficSink vspyx.Communication.Triggering vspyx.Communication.UserDefinedPDU vspyx.Communication.VSDB vspyx.Communication.VariableDataPrototype .. py:class:: AUTOSARDataPrototype Bases: :py:obj:`vspyx.Runtime.Traceable` .. autoapi-inheritance-diagram:: vspyx.Communication.AUTOSARDataPrototype :parts: 1 :private-bases: AUTOSARDataPrototype .. py:attribute:: DataType :annotation: :AUTOSARDataType .. py:class:: AUTOSARDataType Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.AUTOSARDataType :parts: 1 :private-bases: AUTOSARDataType .. py:class:: ApplicationEndpoint Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.ApplicationEndpoint :parts: 1 :private-bases: The endpoint on an ECU in terms of application addressing .. py:attribute:: NetworkEndpoint :annotation: :NetworkEndpoint Retrieve the network endpoint associated with this application endpoint, if set and resolvable. Returns nullptr if either condition is not met. .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: Port :annotation: :Any .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> ApplicationEndpoint :staticmethod: .. py:class:: Architecture Bases: :py:obj:`vspyx.Runtime.Environment` .. autoapi-inheritance-diagram:: vspyx.Communication.Architecture :parts: 1 :private-bases: Architecture .. py:attribute:: Stack :annotation: :Stack .. py:method:: SubmitPoint(self, point: vspyx.Runtime.Point) -> Any .. py:class:: BufferUpdatePoint Bases: :py:obj:`PDUPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.BufferUpdatePoint :parts: 1 :private-bases: Used to signal to a communication controller that the transmit buffer should be updated. This is the case for time triggered network types, where a DataLinkPDUPoint should not be immediately created by the transmitting entity, rather a buffer update should be initiated and the controller will create the DataLinkPDUPoint (as well as the corresponding network traffic) when it is time. .. py:attribute:: NetworkEvent :annotation: :vspyx.Frames.NetworkEvent .. py:class:: CANChannel Bases: :py:obj:`Channel` .. autoapi-inheritance-diagram:: vspyx.Communication.CANChannel :parts: 1 :private-bases: Represents a CAN channel interface .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: CloneState(self) -> Any .. py:method:: New() -> CANChannel New(config: Any) -> CANChannel :staticmethod: .. py:method:: NewISO11898_1Interface(self) -> ISO11898.ISO11898_1Interface .. py:method:: UpdateState(self, state: Any) -> Any .. py:class:: CANCluster Bases: :py:obj:`Cluster` .. autoapi-inheritance-diagram:: vspyx.Communication.CANCluster :parts: 1 :private-bases: Represents a CAN cluster .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New() -> CANCluster New(config: Any) -> CANCluster :staticmethod: .. py:class:: CANConnector Bases: :py:obj:`Connector` .. autoapi-inheritance-diagram:: vspyx.Communication.CANConnector :parts: 1 :private-bases: Represents a connection between an ECU and a CAN bus interface .. py:attribute:: CANController :annotation: :CANController .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: CloneState(self) -> Any .. py:method:: New() -> CANConnector New(config: Any) -> CANConnector :staticmethod: .. py:method:: UpdateState(self, state: Any) -> Any .. py:class:: CANController Bases: :py:obj:`Controller` .. autoapi-inheritance-diagram:: vspyx.Communication.CANController :parts: 1 :private-bases: Represents a CAN controller device interface .. py:attribute:: Driver :annotation: :vspyx.Frames.CANDriver .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New() -> CANController New(config: Any) -> CANController :staticmethod: .. py:method:: NewISO11898_1Interface(self) -> ISO11898.ISO11898_1Interface .. py:class:: CANDataLinkPDUPoint Bases: :py:obj:`DataLinkPDUPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.CANDataLinkPDUPoint :parts: 1 :private-bases: CANDataLinkPDUPoint .. py:method:: New(direction: vspyx.Runtime.Point.Direction, controller: Controller) -> vspyx.Runtime.Point.Consuming_5056ff9b42 New(direction: vspyx.Runtime.Point.Direction, controller: Controller, upstreamPoints: List[vspyx.Runtime.Point]) -> vspyx.Runtime.Point.Consuming_5056ff9b42 New(direction: vspyx.Runtime.Point.Direction, controller: Controller, frame: vspyx.Frames.CANFrame) -> vspyx.Runtime.Point.Consuming_5056ff9b42 New(direction: vspyx.Runtime.Point.Direction, controller: Controller, arbID: int, data: vspyx.Core.BytesView) -> vspyx.Runtime.Point.Consuming_5056ff9b42 New(direction: vspyx.Runtime.Point.Direction, controller: Controller, arbID: int, data: vspyx.Core.BytesView, isCANFD: bool) -> vspyx.Runtime.Point.Consuming_5056ff9b42 New(direction: vspyx.Runtime.Point.Direction, controller: Controller, arbID: int, data: vspyx.Core.BytesView, isCANFD: bool, baudrateSwitch: bool) -> vspyx.Runtime.Point.Consuming_5056ff9b42 New(direction: vspyx.Runtime.Point.Direction, controller: Controller, arbID: int, data: vspyx.Core.BytesView, isCANFD: bool, baudrateSwitch: bool, isExtended: Any) -> vspyx.Runtime.Point.Consuming_5056ff9b42 New(direction: vspyx.Runtime.Point.Direction, controller: Controller, arbID: int, data: vspyx.Core.BytesView, isCANFD: bool, baudrateSwitch: bool, isExtended: Any, dlc: Any) -> vspyx.Runtime.Point.Consuming_5056ff9b42 New(direction: vspyx.Runtime.Point.Direction, controller: Controller, arbID: int, data: vspyx.Core.BytesView, isCANFD: bool, baudrateSwitch: bool, isExtended: Any, dlc: Any, isRemote: bool) -> vspyx.Runtime.Point.Consuming_5056ff9b42 :staticmethod: .. py:class:: CANDiscoveryProcessor Bases: :py:obj:`PointProcessor` .. autoapi-inheritance-diagram:: vspyx.Communication.CANDiscoveryProcessor :parts: 1 :private-bases: Represents a processor which handles PDU points containing CAN frames .. py:method:: New() -> CANDiscoveryProcessor :staticmethod: .. py:class:: CANErrorCountsPoint Bases: :py:obj:`DataLinkEventPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.CANErrorCountsPoint :parts: 1 :private-bases: CANErrorCountsPoint .. py:class:: CANFrame Bases: :py:obj:`Frame` .. autoapi-inheritance-diagram:: vspyx.Communication.CANFrame :parts: 1 :private-bases: Represents the CAN-specific layout of a frame object .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> CANFrame :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:method:: NewPoint(self, direction: vspyx.Runtime.Point.Direction, data: vspyx.Core.BytesView) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, data: vspyx.Core.BytesView, upstreamPoints: List[vspyx.Runtime.Point]) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, data: vspyx.Core.BytesView, upstreamPoints: List[vspyx.Runtime.Point], controller: Controller) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, data: vspyx.Core.BytesView) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, data: vspyx.Core.BytesView, arbID: Any) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, data: vspyx.Core.BytesView, arbID: Any, isCANFD: Any) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, data: vspyx.Core.BytesView, arbID: Any, isCANFD: Any, baudrateSwitch: Any) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, data: vspyx.Core.BytesView, arbID: Any, isCANFD: Any, baudrateSwitch: Any, isExtended: Any) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, data: vspyx.Core.BytesView, arbID: Any, isCANFD: Any, baudrateSwitch: Any, isExtended: Any, dlc: Any) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, data: vspyx.Core.BytesView, arbID: Any, isCANFD: Any, baudrateSwitch: Any, isExtended: Any, dlc: Any, isRemote: Any) -> vspyx.Runtime.Point.Consuming_6aef469678 .. py:class:: CANFramePoint Bases: :py:obj:`FramePoint` .. autoapi-inheritance-diagram:: vspyx.Communication.CANFramePoint :parts: 1 :private-bases: CANFramePoint .. py:method:: New(direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, frame: CANFrame, data: vspyx.Core.BytesView) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, frame: CANFrame, data: vspyx.Core.BytesView, arbID: Any) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, frame: CANFrame, data: vspyx.Core.BytesView, arbID: Any, isCANFD: Any) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, frame: CANFrame, data: vspyx.Core.BytesView, arbID: Any, isCANFD: Any, baudrateSwitch: Any) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, frame: CANFrame, data: vspyx.Core.BytesView, arbID: Any, isCANFD: Any, baudrateSwitch: Any, isExtended: Any) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, frame: CANFrame, data: vspyx.Core.BytesView, arbID: Any, isCANFD: Any, baudrateSwitch: Any, isExtended: Any, dlc: Any) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: CANController, frame: CANFrame, data: vspyx.Core.BytesView, arbID: Any, isCANFD: Any, baudrateSwitch: Any, isExtended: Any, dlc: Any, isRemote: Any) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, controller: CANController, arbID: int, data: vspyx.Core.BytesView) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, controller: CANController, arbID: int, data: vspyx.Core.BytesView, isCANFD: bool) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, controller: CANController, arbID: int, data: vspyx.Core.BytesView, isCANFD: bool, baudrateSwitch: bool) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, controller: CANController, arbID: int, data: vspyx.Core.BytesView, isCANFD: bool, baudrateSwitch: bool, isExtended: Any) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, controller: CANController, arbID: int, data: vspyx.Core.BytesView, isCANFD: bool, baudrateSwitch: bool, isExtended: Any, dlc: Any) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 New(direction: vspyx.Runtime.Point.Direction, controller: CANController, arbID: int, data: vspyx.Core.BytesView, isCANFD: bool, baudrateSwitch: bool, isExtended: Any, dlc: Any, isRemote: bool) -> vspyx.Runtime.Point.Consuming_1dd119a6a6 :staticmethod: Create a CANFramePoint not associated with a Traceable. This is useful for creating points to send down. .. py:class:: CANFrameTriggering Bases: :py:obj:`FrameTriggering` .. autoapi-inheritance-diagram:: vspyx.Communication.CANFrameTriggering :parts: 1 :private-bases: Represents the timing and channel identification info relating to a transmitted CAN frame .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> CANFrameTriggering :staticmethod: .. py:class:: CPPImplementationDataType Bases: :py:obj:`AUTOSARDataType` .. autoapi-inheritance-diagram:: vspyx.Communication.CPPImplementationDataType :parts: 1 :private-bases: CPPImplementationDataType .. py:attribute:: Category :annotation: :str .. py:class:: CPPImplementationDataTypeElement Bases: :py:obj:`vspyx.Runtime.Traceable` .. autoapi-inheritance-diagram:: vspyx.Communication.CPPImplementationDataTypeElement :parts: 1 :private-bases: CPPImplementationDataTypeElement .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> CPPImplementationDataTypeElement :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: Channel Bases: :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Communication.Channel :parts: 1 :private-bases: A Channel is the transmission medium that is used to send and receive information between communicating ECUs. Each Cluster has at least one Channel. Bus systems like CAN and LIN only have exactly one Channel. A FlexRay Cluster may have more than one Channels that may be used in parallel for redundant communication. An ECU is part of a cluster if it contains at least one controller that is connected to at least one channel of the cluster. .. py:class:: SubmissionResult SubmissionResult .. py:attribute:: Acked :annotation: :int .. py:attribute:: AssignedArbitrary :annotation: :int .. py:attribute:: Forwarded :annotation: :int .. py:attribute:: Ignored :annotation: :int .. py:attribute:: Rejected :annotation: :int .. py:attribute:: VotedResult :annotation: :Connector.IngressActions The opinion of the Channel about this SubmissionResult. Given every node's response, this is the overall takeaway. For instance, for CAN, any node rejecting with a NAK will cause the entire bus to consider the frame to be NAKed. .. py:method:: AddResult(self, action: Connector.IngressActions) -> Any Add a single ingress action to the appropriate counter within the SubmissionResult. .. py:method:: Reject() -> Channel.SubmissionResult :staticmethod: .. py:attribute:: Cluster :annotation: :Cluster Get the Cluster that this Channel is a member of .. py:attribute:: Connectors :annotation: :List[Connector] .. py:attribute:: EnableComStack :annotation: :bool .. py:attribute:: LastEvent :annotation: :vspyx.Frames.NetworkEvent .. py:attribute:: OffloadProcessing :annotation: :bool .. py:attribute:: OnFrameTriggeringsChanged :annotation: :vspyx.Core.Callback_add982ce23 .. py:attribute:: OnTriggeringsChanged :annotation: :vspyx.Core.Callback_634bd5c449 Called whenever the Active Triggerings are changed. It is not guaranteed that this will only be called if an Active Triggering has been added/removed. .. py:attribute:: RecommendedMappings :annotation: :List[str] .. py:attribute:: TotalTraffic :annotation: :int .. py:attribute:: UtilizationPercent :annotation: :vspyx.Runtime.Signal .. py:method:: AddFrameTriggering(self, frameTriggering: FrameTriggering) -> Any AddFrameTriggering(self, frameTriggering: FrameTriggering, permanent: bool) -> Any .. py:method:: AddPDUTriggering(self, pduTriggering: PDUTriggering) -> Any AddPDUTriggering(self, pduTriggering: PDUTriggering, permanent: bool) -> Any .. py:method:: ConnectAutoAttachConnectors(self, failSilently: bool) -> Any .. py:method:: Discovery(app: vspyx.Core.Application, driver: vspyx.Frames.Driver) -> Channel :staticmethod: .. py:method:: IsDiscovery(self) -> bool .. py:method:: MeasurePercentOfSecond(self, event: vspyx.Frames.NetworkEvent) -> float .. py:method:: NewAttachedController(self, namePrefix: str, listenOnly: bool) -> Any Create a new controller of the correct type for this channel and attach it with a new connector. The caller is responsible for taking ownership of the returned objects. :Parameter namePrefix: Prefix for the created controller/connector names :Parameter listenOnly: Create the controller with parameters such that it will not influence the channel (ACKs, transmits, etc.) .. py:method:: NewConnector(self) -> Connector .. py:class:: Cluster Bases: :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Communication.Cluster :parts: 1 :private-bases: Cluster is the main element to describe the topological connection of communicating ECUs. A cluster describes the ensemble of ECUs, which are linked by a communication medium of arbitrary topology (bus, star, ring, ...). The nodes within the cluster share the same communication protocol, which may be event-triggered, time-triggered or a combination of both. A Cluster aggregates one or more physical channels. .. py:method:: AddChannel(self, channel: Channel) -> Any .. py:method:: Discovery(app: vspyx.Core.Application, source: SourceHandle, driver: vspyx.Frames.Driver) -> Cluster :staticmethod: .. py:method:: RemoveChannel(self, channel: Channel) -> Any .. py:class:: CommunicationPoint Bases: :py:obj:`vspyx.Runtime.Point` .. autoapi-inheritance-diagram:: vspyx.Communication.CommunicationPoint :parts: 1 :private-bases: A Runtime::Point which holds extra information not visible from the Runtime module .. py:attribute:: DissectorMessage :annotation: :vspyx.Dissector.Message .. py:method:: GetAttribute(self, type: str) -> vspyx.Runtime.Value Get an attribute of this point by its tag If the attribute doesn't exist, an empty Runtime::Value will be returned. .. py:class:: Component Bases: :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Communication.Component :parts: 1 :private-bases: Represents a basic runtime component within the Communication runtime domain .. py:method:: New(sources: vspyx.Core.ResolverCollection, topology: Topology) -> Component :staticmethod: .. py:class:: Connector Bases: :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Communication.Connector :parts: 1 :private-bases: An ECU uses Connector elements in order to describe its bus interfaces and to specify the sending/receiving behavior. .. py:class:: IngressActions Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.Connector.IngressActions :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Forwarded :annotation: = 2 .. py:attribute:: Ignored :annotation: = 0 .. py:attribute:: Received :annotation: = 1 .. py:attribute:: Rejected :annotation: = 3 .. py:attribute:: Channel :annotation: :Channel .. py:attribute:: Controller :annotation: :Controller .. py:attribute:: Egress :annotation: :vspyx.Core.Function_316d8f46e9 .. py:attribute:: EgressBlocked :annotation: :bool .. py:attribute:: EgressImmediate :annotation: :vspyx.Core.Function_a6845211fe .. py:attribute:: Ingress :annotation: :vspyx.Core.Function_a6845211fe .. py:attribute:: IngressBlocked :annotation: :bool .. py:method:: AddPort(self, port: ConnectorPort, permanent: bool) -> Any Add a ConnectorPort to the Connector configuration by reference. The ConnectorPort will not be owned by the Connector. .. py:method:: AttachToChannel(self, channel: Channel, permanent: bool) -> Any Attach this connector to the given channel, removing the connector from a previously attached channel, if present. .. py:method:: DefaultEgress(self, event: vspyx.Frames.NetworkEvent) -> Any .. py:method:: DefaultEgressImmediate(self, event: vspyx.Frames.NetworkEvent) -> Connector.IngressActions .. py:method:: DefaultIngress(self, event: vspyx.Frames.NetworkEvent) -> Connector.IngressActions .. py:method:: IncrementEgressCounter(self) -> Any .. py:method:: IncrementIngressCounter(self, action: Connector.IngressActions) -> Any .. py:method:: RefreshActiveControllerAndChannel(self) -> Any .. py:class:: ConnectorPort Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.ConnectorPort :parts: 1 :private-bases: The Ecu communication relationship defines which signals, Pdus and frames are actually received and transmitted by this ECU. For each signal, Pdu or Frame that is transmitted or received and used by the Ecu an association between an ISignalPort, IPduPort or FramePort with the corresponding Triggering shall be created. .. py:attribute:: Direction :annotation: :vspyx.intrepidcs.vspyx.rpc.Communication.Directions .. py:class:: ContainerIPDU Bases: :py:obj:`IPDU` .. autoapi-inheritance-diagram:: vspyx.Communication.ContainerIPDU :parts: 1 :private-bases: Represents a communication container PDU, defined to contain other PDUs .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> ContainerIPDU :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: ContainerIPDUPoint Bases: :py:obj:`PDUPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.ContainerIPDUPoint :parts: 1 :private-bases: ContainerIPDUPoint .. py:class:: Controller Bases: :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Communication.Controller :parts: 1 :private-bases: Controller is a dedicated hardware device by means of which hosts are sending frames to and receiving frames from the communication medium. .. py:attribute:: ChannelName :annotation: :Any Returns the name of the connected Channel. If multiple Channels are connected, they will be separated by ", ". .. py:attribute:: DriverDescription :annotation: :str .. py:method:: ConfigureStack(self, stack: Stack) -> Any Configure a Communication::Stack for this Controller, adding PointProcessors and configuring them as necessary. .. py:method:: NewConnector(self) -> Connector Make a connector with a ref pointing at this controller. Does not initialize the connector. .. py:method:: ObserveEvent(self, event: vspyx.Frames.NetworkEvent) -> Connector.IngressActions Notify the controller of a network event that has occurred. For example, the network may call this function to notify the controller of an incoming Frame. This function should not be called upstream of the controller (within the ECU). .. py:method:: SubmitEvent(self, event: vspyx.Frames.NetworkEvent) -> Any Ask the controller to schedule/perform an action based on the given event. For example, the ECU's communication stack may call this function to ask the controller to transmit a Frame. This function should not be called downstream of the controller (outside of the ECU, in the greater communication simulation). .. py:method:: SubmitEventImmediate(self, event: vspyx.Frames.NetworkEvent) -> Connector.IngressActions .. py:method:: UnconfigureStack(self, stack: Stack) -> Any Unonfigure a Communication::Stack for this Controller, removing PointProcessors and re-configuring them as necessary. .. py:class:: DBC Bases: :py:obj:`TopologySubset` .. autoapi-inheritance-diagram:: vspyx.Communication.DBC :parts: 1 :private-bases: Represents the CANdbc network topology and message specification .. py:attribute:: Objects :annotation: :vspyx.Core.ResolverOwningCollection .. py:class:: DataLinkEventPoint Bases: :py:obj:`CommunicationPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.DataLinkEventPoint :parts: 1 :private-bases: Represents PDU level data point runtime access interface .. py:attribute:: NetworkEvent :annotation: :vspyx.Frames.NetworkEvent .. py:class:: DataLinkPDUPoint Bases: :py:obj:`PDUPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.DataLinkPDUPoint :parts: 1 :private-bases: Represents PDU level data point runtime access interface .. py:attribute:: Confirmation :annotation: :vspyx.Frames.Confirmation Get the confirmation associated with this DataLinkPDUPoint. At first, this will be nullptr. When a confirmation is received by the controller, this value will be set. Note that this value may change after the Point has finished being consumed. .. py:attribute:: Frame :annotation: :vspyx.Frames.Frame .. py:method:: GetAttribute(self, type: str) -> vspyx.Runtime.Value Get an attribute of this point by its tag If the attribute doesn't exist, an empty Runtime::Value will be returned. .. py:method:: NewFromFrame(controller: Controller, frame: vspyx.Frames.Frame) -> vspyx.Runtime.Point.Consuming_03654c56a8 NewFromFrame(controller: Controller, frame: vspyx.Frames.Frame, direction: vspyx.Runtime.Point.Direction) -> vspyx.Runtime.Point.Consuming_03654c56a8 :staticmethod: .. py:class:: DatagramPoint Bases: :py:obj:`PDUPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.DatagramPoint :parts: 1 :private-bases: A PDUPoint that also holds a header of bytes .. py:method:: GetAttribute(self, type: str) -> vspyx.Runtime.Value Get an attribute of this point by its tag If the attribute doesn't exist, an empty Runtime::Value will be returned. .. py:method:: GetHeader(self) -> vspyx.Core.BytesView .. py:method:: SetAttribute(self, type: str, value: vspyx.Runtime.Value) -> bool Set an attribute on this point dynamically Returns true if the attribute could be set The attribute can not be set if a subclass implements a read-only attribute on this point (built-in attributes are read-only by default, unless a setter is explicitly provided) This should only be done while the point is Consuming These "dynamic" attributes are lower in priority than built-in attributes, but higher in priority than any inherited attributes. .. py:class:: DiagnosticIPDU Bases: :py:obj:`IPDU` .. autoapi-inheritance-diagram:: vspyx.Communication.DiagnosticIPDU :parts: 1 :private-bases: Represents a diagnostics communication PDU .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> DiagnosticIPDU :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: ECU Bases: :py:obj:`Architecture` .. autoapi-inheritance-diagram:: vspyx.Communication.ECU :parts: 1 :private-bases: ECU describes the presence of a microcontroller in the vehicle. .. py:attribute:: Connectors :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: Controllers :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: OwnedConnectors :annotation: :vspyx.Core.ResolverOwningCollection .. py:attribute:: OwnedControllers :annotation: :vspyx.Core.ResolverOwningCollection .. py:attribute:: Transmits :annotation: :vspyx.Core.ResolverOwningCollection .. py:method:: AddTransmit(self, transmit: vspyx.Scripting.FunctionBlock) -> Any .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: ComponentStart(self) -> Any .. py:method:: ComponentStop(self) -> Any .. py:method:: ConnectToChannel(self, channel: Channel, listenOnly: bool) -> Any Create a new ECU-owned controller and connector, connecting this ECU to the provided Channel. :Parameter listenOnly: Create the controller with parameters such that it will not influence the channel (ACKs, transmits, etc.) .. py:method:: Initialize(self, app: vspyx.Core.Application, id: str, uuid: Any, params: vspyx.Core.Serialization.CreationParameters) -> Any Initialize the object. This function must be called before the object can be used. :Parameter app: the global application object :Parameter id: id of the object :Parameter params: parameters on how the object was created .. py:method:: New() -> ECU New(config: Any) -> ECU :staticmethod: .. py:method:: SendSignalGroup(self, signalGroupResolverLookup: str) -> Any SendSignalGroup(self, signalGroup: ISignalGroup) -> Any .. py:method:: SetMode(self, newMode: vspyx.intrepidcs.vspyx.rpc.Communication.ECUMode) -> Any Set the mode for this ECU. This will update the ECU configuration. A mode of `ECU::Mode::Disabled` is equivalent to a real-world ECU completely powered off. A mode of `ECU::Mode::Passive` allows the ECU to receive messages, but the ECU will not interact with the network in any way. This may be useful if the real-world ECU is powered on, but you wish to use the perspective of this ECU. A mode of `ECU::Mode::Active` attempts to emulate the real-world ECU as closely as possible. It will respond to messages and periodically transmit the messages that the real ECU would, if defined. .. py:method:: SetSignal(self, signalResolverLookup: str, physicalValue: Any) -> Any SetSignal(self, signal: ISignal, physicalValue: Any) -> Any .. py:method:: TriggerIPDUSend(self, signalPduResolverLookup: str) -> Any TriggerIPDUSend(self, signalPdu: ISignalIPDU) -> Any .. py:class:: EthernetChannel Bases: :py:obj:`Channel` .. autoapi-inheritance-diagram:: vspyx.Communication.EthernetChannel :parts: 1 :private-bases: EthernetChannel .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: CloneState(self) -> Any .. py:method:: New() -> EthernetChannel New(config: Any) -> EthernetChannel :staticmethod: .. py:method:: UpdateState(self, state: Any) -> Any .. py:class:: EthernetCluster Bases: :py:obj:`Cluster` .. autoapi-inheritance-diagram:: vspyx.Communication.EthernetCluster :parts: 1 :private-bases: EthernetCluster .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New() -> EthernetCluster New(config: Any) -> EthernetCluster :staticmethod: .. py:class:: EthernetConnector Bases: :py:obj:`Connector` .. autoapi-inheritance-diagram:: vspyx.Communication.EthernetConnector :parts: 1 :private-bases: EthernetConnector .. py:attribute:: EthernetController :annotation: :EthernetController .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: CloneState(self) -> Any .. py:method:: New(config: Any) -> EthernetConnector :staticmethod: .. py:method:: UpdateState(self, state: Any) -> Any .. py:class:: EthernetController Bases: :py:obj:`Controller` .. autoapi-inheritance-diagram:: vspyx.Communication.EthernetController :parts: 1 :private-bases: EthernetController .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> EthernetController :staticmethod: .. py:class:: EthernetDiscoveryProcessor Bases: :py:obj:`PointProcessor` .. autoapi-inheritance-diagram:: vspyx.Communication.EthernetDiscoveryProcessor :parts: 1 :private-bases: EthernetDiscoveryProcessor .. py:method:: New() -> EthernetDiscoveryProcessor :staticmethod: .. py:class:: EthernetFrame Bases: :py:obj:`Frame` .. autoapi-inheritance-diagram:: vspyx.Communication.EthernetFrame :parts: 1 :private-bases: EthernetFrame .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> EthernetFrame :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: EthernetFrameTriggering Bases: :py:obj:`FrameTriggering` .. autoapi-inheritance-diagram:: vspyx.Communication.EthernetFrameTriggering :parts: 1 :private-bases: EthernetFrameTriggering .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> EthernetFrameTriggering :staticmethod: .. py:class:: Field Bases: :py:obj:`AUTOSARDataPrototype` .. autoapi-inheritance-diagram:: vspyx.Communication.Field :parts: 1 :private-bases: Field .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> Field :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: FlexRayBufferUpdatePoint Bases: :py:obj:`BufferUpdatePoint` .. autoapi-inheritance-diagram:: vspyx.Communication.FlexRayBufferUpdatePoint :parts: 1 :private-bases: FlexRayBufferUpdatePoint .. py:class:: FlexRayChannel Bases: :py:obj:`Channel` .. autoapi-inheritance-diagram:: vspyx.Communication.FlexRayChannel :parts: 1 :private-bases: FlexRayChannel .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: CloneState(self) -> Any .. py:method:: New() -> FlexRayChannel New(config: Any) -> FlexRayChannel :staticmethod: .. py:method:: UpdateState(self, state: Any) -> Any .. py:class:: FlexRayCluster Bases: :py:obj:`Cluster` .. autoapi-inheritance-diagram:: vspyx.Communication.FlexRayCluster :parts: 1 :private-bases: FlexRayCluster .. py:attribute:: GlobalConfiguration :annotation: :vspyx.Frames.FlexRayClusterConfiguration The configuration which is shared by every CC in the cluster. This value is read-only and can only be changed by modifying the protobuf configuration of the cluster. .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New() -> FlexRayCluster New(config: Any) -> FlexRayCluster :staticmethod: .. py:class:: FlexRayConnector Bases: :py:obj:`Connector` .. autoapi-inheritance-diagram:: vspyx.Communication.FlexRayConnector :parts: 1 :private-bases: FlexRayConnector .. py:attribute:: FlexRayController :annotation: :FlexRayController .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: CloneState(self) -> Any .. py:method:: New(config: Any) -> FlexRayConnector :staticmethod: .. py:method:: UpdateState(self, state: Any) -> Any .. py:class:: FlexRayController Bases: :py:obj:`Controller` .. autoapi-inheritance-diagram:: vspyx.Communication.FlexRayController :parts: 1 :private-bases: FlexRayController .. py:attribute:: AllowColdstart :annotation: :bool .. py:attribute:: CCConfiguration :annotation: :vspyx.Frames.FlexRayCCConfiguration .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: StartWhenGoingOnline :annotation: :bool .. py:attribute:: WakeupBeforeStart :annotation: :bool .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: Halt(self) -> Any .. py:method:: New(config: Any) -> FlexRayController :staticmethod: .. py:method:: Start(self) -> Any .. py:class:: FlexRayDataLinkPDUPoint Bases: :py:obj:`DataLinkPDUPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.FlexRayDataLinkPDUPoint :parts: 1 :private-bases: FlexRayDataLinkPDUPoint .. py:class:: FlexRayDiscoveryProcessor Bases: :py:obj:`PointProcessor` .. autoapi-inheritance-diagram:: vspyx.Communication.FlexRayDiscoveryProcessor :parts: 1 :private-bases: FlexRayDiscoveryProcessor .. py:method:: New() -> FlexRayDiscoveryProcessor :staticmethod: .. py:class:: FlexRayFrame Bases: :py:obj:`Frame` .. autoapi-inheritance-diagram:: vspyx.Communication.FlexRayFrame :parts: 1 :private-bases: FlexRayFrame .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> FlexRayFrame :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: FlexRayFrameTriggering Bases: :py:obj:`FrameTriggering` .. autoapi-inheritance-diagram:: vspyx.Communication.FlexRayFrameTriggering :parts: 1 :private-bases: FlexRayFrameTriggering .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> FlexRayFrameTriggering :staticmethod: .. py:class:: Frame Bases: :py:obj:`vspyx.Runtime.Traceable` .. autoapi-inheritance-diagram:: vspyx.Communication.Frame :parts: 1 :private-bases: A Frame represents a general design object that is used to describe the layout of the included Pdus as a reusable asset. .. py:attribute:: Length :annotation: :Any .. py:method:: NewPoint(self, direction: vspyx.Runtime.Point.Direction, data: vspyx.Core.BytesView) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, data: vspyx.Core.BytesView, upstreamPoints: List[vspyx.Runtime.Point]) -> vspyx.Runtime.Point.Consuming_6aef469678 NewPoint(self, direction: vspyx.Runtime.Point.Direction, data: vspyx.Core.BytesView, upstreamPoints: List[vspyx.Runtime.Point], controller: Controller) -> vspyx.Runtime.Point.Consuming_6aef469678 .. py:class:: FramePoint Bases: :py:obj:`PDUPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.FramePoint :parts: 1 :private-bases: FramePoint .. py:class:: FramePort Bases: :py:obj:`ConnectorPort` .. autoapi-inheritance-diagram:: vspyx.Communication.FramePort :parts: 1 :private-bases: FramePort .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> FramePort :staticmethod: .. py:class:: FrameTriggering Bases: :py:obj:`Triggering` .. autoapi-inheritance-diagram:: vspyx.Communication.FrameTriggering :parts: 1 :private-bases: FrameTriggering describes the instance of a frame sent on a channel and defines the manner of triggering (timing information) and identification of a frame on the channel, on which it is sent. .. py:attribute:: Frame :annotation: :Frame .. py:class:: GeneralPurposeIPDU Bases: :py:obj:`IPDU` .. autoapi-inheritance-diagram:: vspyx.Communication.GeneralPurposeIPDU :parts: 1 :private-bases: Represents a general purpose interaction PDU used for XCP, SOME/IP segments, or DLT .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New() -> GeneralPurposeIPDU New(config: Any) -> GeneralPurposeIPDU :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: GeneralPurposePDU Bases: :py:obj:`PDU` .. autoapi-inheritance-diagram:: vspyx.Communication.GeneralPurposePDU :parts: 1 :private-bases: Represents a general purpose PDU used for DoIP, service discovery, or global timing .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New() -> GeneralPurposePDU New(config: Any) -> GeneralPurposePDU :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: IPDU Bases: :py:obj:`PDU` .. autoapi-inheritance-diagram:: vspyx.Communication.IPDU :parts: 1 :private-bases: IPDU represents any type of PDU that the Communication system can interact with .. py:class:: IPDUPort Bases: :py:obj:`ConnectorPort` .. autoapi-inheritance-diagram:: vspyx.Communication.IPDUPort :parts: 1 :private-bases: Represents the PDU-specific triggered data binding related to a transmitted PDU .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> IPDUPort :staticmethod: .. py:class:: ISO15765_2 Bases: :py:obj:`ISOStandardizedServicePrimitiveInterface`, :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Communication.ISO15765_2 :parts: 1 :private-bases: Represents the functional implementation of the ISO-15765-2 transport protocol .. py:class:: Addressing Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.ISO15765_2.Addressing :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Extended :annotation: = 1 .. py:attribute:: Mixed :annotation: = 2 .. py:attribute:: Normal :annotation: = 0 .. py:class:: ChangeParametersResult Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.ISO15765_2.ChangeParametersResult :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: N_OK :annotation: = 0 .. py:attribute:: N_RX_ON :annotation: = 1 .. py:attribute:: N_TX_ON :annotation: = 4 .. py:attribute:: N_WRONG_PARAMETER :annotation: = 2 .. py:attribute:: N_WRONG_VALUE :annotation: = 3 .. py:class:: FlowStatus Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.ISO15765_2.FlowStatus :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: ContinueToSend :annotation: = 0 .. py:attribute:: Overflow :annotation: = 2 .. py:attribute:: Wait :annotation: = 1 .. py:class:: NetworkAddressType Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.ISO15765_2.NetworkAddressType :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: FunctionalCANFD11Bit :annotation: = 4 .. py:attribute:: FunctionalCANFD29Bit :annotation: = 8 .. py:attribute:: FunctionalClassicalCAN11Bit :annotation: = 2 .. py:attribute:: FunctionalClassicalCAN29Bit :annotation: = 6 .. py:attribute:: PhysicalCANFD11Bit :annotation: = 3 .. py:attribute:: PhysicalCANFD29Bit :annotation: = 7 .. py:attribute:: PhysicalClassicalCAN11Bit :annotation: = 1 .. py:attribute:: PhysicalClassicalCAN29Bit :annotation: = 5 .. py:class:: Parameters Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.ISO15765_2.Parameters :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: BS :annotation: = 1 .. py:attribute:: Passive :annotation: = 2 .. py:attribute:: PassiveStrictFC :annotation: = 3 .. py:attribute:: ST_min :annotation: = 0 .. py:class:: Result Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.ISO15765_2.Result :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: N_BUFFER_OVFLW :annotation: = 8 .. py:attribute:: N_ERROR :annotation: = 9 .. py:attribute:: N_INVALID_FS :annotation: = 5 .. py:attribute:: N_OK :annotation: = 0 .. py:attribute:: N_TIMEOUT_A :annotation: = 1 .. py:attribute:: N_TIMEOUT_Bs :annotation: = 2 .. py:attribute:: N_TIMEOUT_Cr :annotation: = 3 .. py:attribute:: N_UNEXP_PDU :annotation: = 6 .. py:attribute:: N_WFT_OVRN :annotation: = 7 .. py:attribute:: N_WRONG_SN :annotation: = 4 .. py:attribute:: N_ChangeParameters_confirm :annotation: :vspyx.Core.Callback_a72caefd1b .. py:attribute:: N_USData_FF_indication :annotation: :vspyx.Core.Callback_023e2a5056 .. py:attribute:: N_USData_confirm :annotation: :vspyx.Core.Callback_9d4c23c9b0 .. py:attribute:: N_USData_indication :annotation: :vspyx.Core.Callback_bac0b1ebba .. py:attribute:: OnCANFrameRx :annotation: :vspyx.Core.Callback_2ddc052380 .. py:attribute:: OnCANFrameTx :annotation: :vspyx.Core.Callback_2ddc052380 .. py:attribute:: OnCFN_PDU :annotation: :vspyx.Core.Callback_4318dcd5f2 .. py:attribute:: OnFCN_PDU :annotation: :vspyx.Core.Callback_caf226155c .. py:attribute:: OnFFN_PDU :annotation: :vspyx.Core.Callback_76273522fe .. py:attribute:: OnSFN_PDU :annotation: :vspyx.Core.Callback_5eaebb1942 .. py:attribute:: TrackedL_Data_Request :annotation: :vspyx.Core.Callback_430344869a .. py:attribute:: TrackedN_USData_indication :annotation: :vspyx.Core.Callback_66ad5d2157 .. py:method:: AddRxExtendedAddress(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, N_SA: int, N_SA_CANID: int, N_SAtype: ISO15765_2.NetworkAddressType, N_TA: int, N_TA_CANID: int, N_TAtype: ISO15765_2.NetworkAddressType, N_AE: Any, stMin: int, bs: int) -> Any .. py:method:: AddRxFixedAddress(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, N_SA: int, N_TA: int, N_TAtype: ISO15765_2.NetworkAddressType, N_AE: Any, j1939: bool, stMin: int, bs: int) -> Any .. py:method:: AddRxNormalAddress(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, N_SA: int, N_SA_CANID: int, N_SAtype: ISO15765_2.NetworkAddressType, N_TA: int, N_TA_CANID: int, N_TAtype: ISO15765_2.NetworkAddressType, N_AE: Any, stMin: int, bs: int) -> Any .. py:method:: AddTxExtendedAddress(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, N_SA: int, N_SA_CANID: int, N_SAtype: ISO15765_2.NetworkAddressType, N_TA: int, N_TA_CANID: int, N_TAtype: ISO15765_2.NetworkAddressType, N_AE: Any, stMinMin: Any) -> Any .. py:method:: AddTxFixedAddress(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, N_SA: int, N_TA: int, N_TAtype: ISO15765_2.NetworkAddressType, N_AE: Any, j1939: bool, stMinMin: Any) -> Any .. py:method:: AddTxNormalAddress(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, N_SA: int, N_SA_CANID: int, N_SAtype: ISO15765_2.NetworkAddressType, N_TA: int, N_TA_CANID: int, N_TAtype: ISO15765_2.NetworkAddressType, N_AE: Any, stMinMin: Any) -> Any .. py:method:: Attach(self, L_Data: ISO11898.ISO11898_1Interface) -> Any .. py:method:: Detach(self) -> Any .. py:method:: FrameFormatFromNetworkAddressType(nat: ISO15765_2.NetworkAddressType) -> ISO11898.FrameFormats :staticmethod: .. py:method:: L_Data_Confirm(self, Identifier: int, Transfer_Status: ISO11898.TransferStatuses) -> Any L_Data_Confirm(self, Identifier: int, Transfer_Status: ISO11898.TransferStatuses, consuming: vspyx.Runtime.Point.Consuming_1edf1860a4) -> Any .. py:method:: L_Data_Indication(self, Identifier: int, format: ISO11898.FrameFormats, DLC: int, Data: vspyx.Core.BytesView) -> Any L_Data_Indication(self, Identifier: int, format: ISO11898.FrameFormats, DLC: int, Data: vspyx.Core.BytesView, consuming: vspyx.Runtime.Point.Consuming_1edf1860a4) -> Any .. py:method:: MakeNetworkAddressType(frameFormat: ISO11898.FrameFormats, functional: bool) -> ISO15765_2.NetworkAddressType :staticmethod: .. py:method:: N_ChangeParameters_request(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, N_SA: int, N_TA: int, N_TAtype: int, N_AE: Any, Parameter: ISO15765_2.Parameters, Parameter_Value: int) -> ISO15765_2.ChangeParametersResult .. py:method:: N_USData_request(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, N_SA: int, N_TA: int, N_TAtype: int, N_AE: Any, MessageData: vspyx.Core.BytesView, Length: int) -> Any N_USData_request(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, N_SA: int, N_TA: int, N_TAtype: int, N_AE: Any, MessageData: vspyx.Core.BytesView, Length: int, consuming: vspyx.Runtime.Point.Consuming_1edf1860a4) -> Any .. py:method:: NetworkAddressTypeIsFunctional(nat: ISO15765_2.NetworkAddressType) -> bool :staticmethod: .. py:method:: New(TX_DL: int) -> ISO15765_2 New(TX_DL: int, padding: Any) -> ISO15765_2 New(TX_DL: int, padding: Any, N_WFTmax: int) -> ISO15765_2 New(TX_DL: int, padding: Any, N_WFTmax: int, receiveBufferSize: int) -> ISO15765_2 :staticmethod: .. py:method:: RemoveAddress(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, N_SA: int, N_TA: int, N_TAtype: ISO15765_2.NetworkAddressType, N_AE: Any) -> Any .. py:method:: RemoveAllAddresses(self) -> Any .. py:class:: ISO15765_2Processor Bases: :py:obj:`PointProcessor`, :py:obj:`ISOStandardizedServicePrimitiveInterface` .. autoapi-inheritance-diagram:: vspyx.Communication.ISO15765_2Processor :parts: 1 :private-bases: Represents the signal point processor related to ISO-15765 signals .. py:attribute:: Interface :annotation: :ISO15765_2 .. py:method:: New(interface: ISO15765_2) -> ISO15765_2Processor :staticmethod: .. py:class:: ISOStandardizedServicePrimitiveInterface Represents the generic ISO service handling function framework .. py:class:: MessageType Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.ISOStandardizedServicePrimitiveInterface.MessageType :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Diagnostics :annotation: = 0 .. py:attribute:: RemoteDiagnostics :annotation: = 1 .. py:class:: TransportResult Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.ISOStandardizedServicePrimitiveInterface.TransportResult :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: T_OK :annotation: = 0 .. py:attribute:: TData_SOM_indication :annotation: :vspyx.Core.Callback_023e2a5056 .. py:attribute:: TData_SOM_indicationSupported :annotation: :bool .. py:attribute:: TData_confirm :annotation: :vspyx.Core.Callback_9d4c23c9b0 .. py:attribute:: TData_indication :annotation: :vspyx.Core.Callback_bac0b1ebba .. py:method:: DebugLogPDU(tag: str, prefix: str, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, SA: int, TA: int, TAtype: int, AE: Any, Data: Any, rte: vspyx.Runtime.Scheduler) -> Any :staticmethod: .. py:method:: GetT_TAtype(self, messageType: ISOStandardizedServicePrimitiveInterface.MessageType, sa: int, ta: int, ae: Any, isFunctional: Any) -> int .. py:method:: TData_request(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, T_SA: int, T_TA: int, T_TAtype: int, T_AE: Any, T_Data: vspyx.Core.BytesView, Length: int) -> Any .. py:method:: T_TAtypeIsFunctional(self, TAtype: int) -> bool .. py:method:: T_TAtypeIsPhysical(self, TAtype: int) -> bool .. py:class:: ISOStandardizedServicePrimitiveInterfaceTrampoline Bases: :py:obj:`ISOStandardizedServicePrimitiveInterface`, :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Communication.ISOStandardizedServicePrimitiveInterfaceTrampoline :parts: 1 :private-bases: Represents the functional implementation of a generic ISO service handler .. py:attribute:: GetT_TAtype_trampoline :annotation: :vspyx.Core.Function_16f83113e6 .. py:attribute:: TData_SOM_indication :annotation: :vspyx.Core.Callback_023e2a5056 .. py:attribute:: TData_SOM_indicationSupported :annotation: :bool .. py:attribute:: TData_SOM_indicationSupported_trampoline :annotation: :vspyx.Core.Function_32dce94434 .. py:attribute:: TData_confirm :annotation: :vspyx.Core.Callback_9d4c23c9b0 .. py:attribute:: TData_indication :annotation: :vspyx.Core.Callback_bac0b1ebba .. py:attribute:: TData_request_trampoline :annotation: :vspyx.Core.Function_633e09e382 .. py:attribute:: T_TAtypeIsFunctional_trampoline :annotation: :vspyx.Core.Function_3ca61a3473 .. py:attribute:: T_TAtypeIsPhysical_trampoline :annotation: :vspyx.Core.Function_3ca61a3473 .. py:method:: GetT_TAtype(self, messageType: ISOStandardizedServicePrimitiveInterface.MessageType, sa: int, ta: int, ae: Any, isFunctional: Any) -> int .. py:method:: TData_request(self, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, T_SA: int, T_TA: int, T_TAtype: int, T_AE: Any, T_Data: vspyx.Core.BytesView, Length: int) -> Any .. py:method:: T_TAtypeIsFunctional(self, TAtype: int) -> bool .. py:method:: T_TAtypeIsPhysical(self, TAtype: int) -> bool .. py:class:: ISignal Bases: :py:obj:`vspyx.Runtime.Signal` .. autoapi-inheritance-diagram:: vspyx.Communication.ISignal :parts: 1 :private-bases: Signal of the Communication system .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: SystemSignal :annotation: :vspyx.Runtime.SystemSignal .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> ISignal :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:method:: NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], physicalValue: Any, unitString: str, internalValue: Any, valid: bool) -> vspyx.Runtime.Point.Consuming_e473ff5c76 Python bindable version of NewPoint() Python can not bind Core::SharedPtr so we offer this instead and make the SharedPtr internally. .. py:method:: NewTxPoint(self, physicalValue: Any) -> vspyx.Runtime.Point.Consuming_e473ff5c76 Equivalent to NewPoint(vspyx.Runtime.Point.Direction.Transmit, [], physicalValue, '', None, True), this is a shortcut method to create a Point for transmitting. .. py:class:: ISignalGroup Bases: :py:obj:`vspyx.Runtime.Traceable` .. autoapi-inheritance-diagram:: vspyx.Communication.ISignalGroup :parts: 1 :private-bases: Represents a group of related communication signals .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: SystemSignalGroup :annotation: :vspyx.Runtime.SystemSignalGroup .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> ISignalGroup :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:method:: NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], valid: bool) -> vspyx.Runtime.Point.Consuming_e1c4fc4e95 .. py:class:: ISignalGroupPoint Bases: :py:obj:`vspyx.Runtime.Point` .. autoapi-inheritance-diagram:: vspyx.Communication.ISignalGroupPoint :parts: 1 :private-bases: ISignalGroupPoint .. py:attribute:: Valid :annotation: :bool .. py:class:: ISignalIPDU Bases: :py:obj:`IPDU` .. autoapi-inheritance-diagram:: vspyx.Communication.ISignalIPDU :parts: 1 :private-bases: Signal-based PDU .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> ISignalIPDU :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:method:: NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], data: vspyx.Core.BytesView) -> vspyx.Runtime.Point.Consuming_2215b345f6 .. py:class:: ISignalIPDUGroup Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.ISignalIPDUGroup :parts: 1 :private-bases: Group of Signal-based PDUs .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> ISignalIPDUGroup :staticmethod: .. py:class:: ISignalIPDUPoint Bases: :py:obj:`PDUPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.ISignalIPDUPoint :parts: 1 :private-bases: Represents the translation between a signal-based PDU and a PDU point .. py:method:: New(direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], traceable: vspyx.Runtime.Traceable, data: vspyx.Core.BytesView) -> vspyx.Runtime.Point.Consuming_2215b345f6 :staticmethod: .. py:class:: ISignalPoint Bases: :py:obj:`vspyx.Runtime.SignalPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.ISignalPoint :parts: 1 :private-bases: ISignalPoint .. py:attribute:: UnitString :annotation: :str .. py:method:: New(direction: vspyx.Runtime.Point.Direction, iSignal: ISignal, upstreamPoints: List[vspyx.Runtime.Point], physicalValue: Any, unitString: str, internalValue: Any, valid: bool) -> vspyx.Runtime.Point.Consuming_e473ff5c76 :staticmethod: Python bindable version of New() Python can not bind Core::SharedPtr so we offer this instead and make the SharedPtr internally. .. py:class:: ISignalPort Bases: :py:obj:`ConnectorPort` .. autoapi-inheritance-diagram:: vspyx.Communication.ISignalPort :parts: 1 :private-bases: ISignalPort .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> ISignalPort :staticmethod: .. py:class:: ISignalToIPDUMapping Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.ISignalToIPDUMapping :parts: 1 :private-bases: ISignalToIPDUMapping .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: Signal :annotation: :Any .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> ISignalToIPDUMapping :staticmethod: .. py:class:: ISignalTriggering Bases: :py:obj:`Triggering` .. autoapi-inheritance-diagram:: vspyx.Communication.ISignalTriggering :parts: 1 :private-bases: ISignalTriggering .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: Trigger :annotation: :Any .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> ISignalTriggering :staticmethod: .. py:class:: InvocationOptions Base type for structures which will be given as options to PointProcessor::Invoke .. py:class:: LINChannel Bases: :py:obj:`Channel` .. autoapi-inheritance-diagram:: vspyx.Communication.LINChannel :parts: 1 :private-bases: LINChannel .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: CloneState(self) -> Any .. py:method:: New() -> LINChannel New(config: Any) -> LINChannel :staticmethod: .. py:method:: UpdateState(self, state: Any) -> Any .. py:class:: LINCluster Bases: :py:obj:`Cluster` .. autoapi-inheritance-diagram:: vspyx.Communication.LINCluster :parts: 1 :private-bases: LINCluster .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New() -> LINCluster New(config: Any) -> LINCluster :staticmethod: .. py:class:: LINConnector Bases: :py:obj:`Connector` .. autoapi-inheritance-diagram:: vspyx.Communication.LINConnector :parts: 1 :private-bases: LINConnector .. py:attribute:: LINController :annotation: :LINController .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: CloneState(self) -> Any .. py:method:: New(config: Any) -> LINConnector :staticmethod: .. py:method:: UpdateState(self, state: Any) -> Any .. py:class:: LINController Bases: :py:obj:`Controller` .. autoapi-inheritance-diagram:: vspyx.Communication.LINController :parts: 1 :private-bases: LINController .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> LINController :staticmethod: .. py:class:: LINDiscoveryProcessor Bases: :py:obj:`PointProcessor` .. autoapi-inheritance-diagram:: vspyx.Communication.LINDiscoveryProcessor :parts: 1 :private-bases: LINDiscoveryProcessor .. py:method:: New() -> LINDiscoveryProcessor :staticmethod: .. py:class:: LINFrameTriggering Bases: :py:obj:`FrameTriggering` .. autoapi-inheritance-diagram:: vspyx.Communication.LINFrameTriggering :parts: 1 :private-bases: LINFrameTriggering .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> LINFrameTriggering :staticmethod: .. py:class:: Machine Bases: :py:obj:`Architecture` .. autoapi-inheritance-diagram:: vspyx.Communication.Machine :parts: 1 :private-bases: Machine .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: ComponentStart(self) -> Any .. py:method:: ComponentStop(self) -> Any .. py:method:: New() -> Machine New(config: Any) -> Machine :staticmethod: .. py:class:: MachineDesign Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.MachineDesign :parts: 1 :private-bases: MachineDesign .. py:attribute:: Connectors :annotation: :List[Connector] .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: ConfigureStack(self, stack: Stack) -> Any .. py:method:: New(config: Any) -> MachineDesign :staticmethod: .. py:class:: Message Bases: :py:obj:`vspyx.Core.Object` .. autoapi-inheritance-diagram:: vspyx.Communication.Message :parts: 1 :private-bases: Represents the functional basis of a message object .. py:attribute:: OnReceived :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: Transmit(self) -> Any .. py:class:: Module Bases: :py:obj:`vspyx.Core.Module` .. autoapi-inheritance-diagram:: vspyx.Communication.Module :parts: 1 :private-bases: Represents the communcation module .. py:attribute:: Component :annotation: :Component .. py:attribute:: Dissector :annotation: :vspyx.Dissector.Engine .. py:attribute:: PhysicalConnectors :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: SourceHandles :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: Topology :annotation: :Topology .. py:attribute:: UserPhysicalConnectors :annotation: :vspyx.Core.ResolverOwningCollection .. py:attribute:: UserSourceHandles :annotation: :vspyx.Core.ResolverOwningCollection .. py:attribute:: UserTopology :annotation: :Topology .. py:method:: ConnectControllerToChannel(self, controller: Controller, channel: Channel) -> Connector ConnectControllerToChannel(self, controller: Controller, channel: Channel, permanent: bool) -> Connector .. py:method:: ConnectDriverToCluster(self, source: SourceHandle, driverDescription: str, cluster: Cluster) -> PhysicalConnector ConnectDriverToCluster(self, source: SourceHandle, driverDescription: str, cluster: Cluster, permanent: bool) -> PhysicalConnector .. py:method:: NewLoadDBCTask(self, path: str, serialized: bool, namespaced: bool, createChannels: bool) -> vspyx.Core.Task_0431e75dc5 .. py:method:: NewLoadVSDBTask(self, path: str, serialized: bool, namespaced: bool, missingNetworkType: vspyx.Frames.FrameType.Enum, createChannels: bool) -> vspyx.Core.Task_e80474c995 .. py:method:: NewSourceHandleFromDescription(self, description: str) -> SourceHandle NewSourceHandleFromDescription(self, description: str, owned: bool) -> SourceHandle .. py:method:: RefreshSources(self) -> Any .. py:method:: SetupDiscoveryClusters(self) -> Any .. py:class:: MultiplexedIPDU Bases: :py:obj:`IPDU` .. autoapi-inheritance-diagram:: vspyx.Communication.MultiplexedIPDU :parts: 1 :private-bases: MultiplexedIPDU .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: StaticPDU :annotation: :ISignalIPDU .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> MultiplexedIPDU :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:method:: NewPoint(self, direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], data: vspyx.Core.BytesView) -> vspyx.Runtime.Point.Consuming_9f8cd48833 .. py:class:: MultiplexedIPDUPoint Bases: :py:obj:`PDUPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.MultiplexedIPDUPoint :parts: 1 :private-bases: MultiplexedIPDUPoint .. py:attribute:: SelectorFieldValue :annotation: :int .. py:method:: New(direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], multiplexedIPDU: MultiplexedIPDU, data: vspyx.Core.BytesView, selectorFieldValue: int) -> vspyx.Runtime.Point.Consuming_9f8cd48833 :staticmethod: .. py:class:: NetworkEndpoint Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.NetworkEndpoint :parts: 1 :private-bases: An object defining the network addressing for an endpoint (such as an ECU). .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: ConfigureStack(self, stack: Stack, ctrl: Controller, listenOnly: bool) -> Any .. py:method:: New(config: Any) -> NetworkEndpoint :staticmethod: .. py:class:: NetworkManagementPDU Bases: :py:obj:`PDU` .. autoapi-inheritance-diagram:: vspyx.Communication.NetworkManagementPDU :parts: 1 :private-bases: Represents a network management PDU .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> NetworkManagementPDU :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: NetworkPDU Bases: :py:obj:`IPDU` .. autoapi-inheritance-diagram:: vspyx.Communication.NetworkPDU :parts: 1 :private-bases: NetworkPDU .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> NetworkPDU :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: PDU Bases: :py:obj:`vspyx.Runtime.Traceable` .. autoapi-inheritance-diagram:: vspyx.Communication.PDU :parts: 1 :private-bases: A collection of bytes moved throughout the Communication Stack. Short for "Protocol Data Unit" .. py:attribute:: Length :annotation: :int The defined length of the PDU .. py:class:: PDUInstance An instance of PDU that is being processed by the Communication module. This class is short-lived, and referencing it outside of the immediate callback may result in unpredictable behavior. .. py:attribute:: Bytes :annotation: :vspyx.Core.BytesView .. py:class:: PDUPoint Bases: :py:obj:`CommunicationPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.PDUPoint :parts: 1 :private-bases: A Point which describes its payload in terms of bytes .. py:method:: GetAttribute(self, type: str) -> vspyx.Runtime.Value Get an attribute of this point by its tag If the attribute doesn't exist, an empty Runtime::Value will be returned. .. py:method:: GetPayload(self) -> vspyx.Core.BytesView .. py:method:: SetAttribute(self, type: str, value: vspyx.Runtime.Value) -> bool Set an attribute on this point dynamically Returns true if the attribute could be set The attribute can not be set if a subclass implements a read-only attribute on this point (built-in attributes are read-only by default, unless a setter is explicitly provided) This should only be done while the point is Consuming These "dynamic" attributes are lower in priority than built-in attributes, but higher in priority than any inherited attributes. .. py:class:: PDUTriggering Bases: :py:obj:`Triggering` .. autoapi-inheritance-diagram:: vspyx.Communication.PDUTriggering :parts: 1 :private-bases: PDUTriggering describes on which channel the ComPDU is transmitted. .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: PDU :annotation: :PDU .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> PDUTriggering :staticmethod: .. py:class:: PhysicalConnector Bases: :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Communication.PhysicalConnector :parts: 1 :private-bases: A connection between a Driver and a Cluster .. py:attribute:: Cluster :annotation: :Cluster .. py:attribute:: Driver :annotation: :vspyx.Frames.Driver .. py:attribute:: Egress :annotation: :vspyx.Core.Function_316d8f46e9 .. py:attribute:: EgressBlocked :annotation: :bool .. py:attribute:: EgressImmediate :annotation: :vspyx.Core.Function_a6845211fe .. py:attribute:: Ingress :annotation: :vspyx.Core.Function_a6845211fe .. py:attribute:: IngressBlocked :annotation: :bool .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: AttachToCluster(self, cluster: Cluster, permanent: bool) -> Any Attach this connector to the given cluster, removing the PhysicalConnector from a previously attached cluster, if present. .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: DefaultEgress(self, event: vspyx.Frames.NetworkEvent) -> Any .. py:method:: DefaultEgressImmediate(self, event: vspyx.Frames.NetworkEvent) -> Connector.IngressActions .. py:method:: DefaultIngress(self, event: vspyx.Frames.NetworkEvent) -> Connector.IngressActions .. py:method:: IncrementEgressCounter(self) -> Any .. py:method:: IncrementIngressCounter(self, action: Connector.IngressActions) -> Any .. py:method:: New(config: Any) -> PhysicalConnector :staticmethod: .. py:method:: RefreshConnections(self) -> Any .. py:class:: PointProcessor Bases: :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Communication.PointProcessor :parts: 1 :private-bases: An element of a Communication::Stack which processes points .. py:class:: HandlerPriority Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.PointProcessor.HandlerPriority :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: NoHandler :annotation: = 0 .. py:attribute:: Normal :annotation: = 1 .. py:class:: PriorityGroup Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.PointProcessor.PriorityGroup :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Consumer :annotation: = 1 .. py:attribute:: LAST :annotation: = 2 .. py:attribute:: Tagger :annotation: = 0 .. py:attribute:: OnPoint :annotation: :vspyx.Core.Callback_66dc7ed174 .. py:attribute:: UseCount :annotation: :int Get the current number of objects which have configured this PointProcessor. The UseCount starts at 1 when the PointProcessor is created. This allows the PointProcessor to be removed by the Stack if all objects using it are removed. .. py:method:: DecrementUseCount(self) -> int Directly decrement the UseCount of the PointProcessor. Usually you should use Stack::ReleasePointProcessor instead, which will atomically remove the PointProcessor when the UseCount becomes 0. :Returns: the new UseCount .. py:method:: GetPriorityGroup(self) -> PointProcessor.PriorityGroup Get the Priority Group for this PointProcessor. .. py:method:: IncrementUseCount(self) -> int Directly increment the UseCount of the PointProcessor. The UseCount starts at 1 when the PointProcessor is created, so you are not required to call this function when creating a PointProcessor. :Returns: the new UseCount .. py:method:: Invoke(self, consuming: vspyx.Runtime.Point.Consuming_1edf1860a4, options: InvocationOptions) -> bool Invoke will be called by an Invoker PointProcessor when custom filtering logic dictates that this PointProcessor should process this point. Options are PointProcessor specific and are intended to direct this PointProcessor's behavior. For instance, options may be used to ask that the PointProcessor feeds this point to a non-standard entry point of the stack. .. py:method:: IsHandlerForPointWithResponse(self, consuming: vspyx.Runtime.Point.Consuming_1edf1860a4) -> PointProcessor.HandlerPriority Returns the priority of the handler if this PointProcessor will handle the Point if given through SubmitPointAndGetResponse. If NoHandler is returned, SubmitPointAndGetResponse should not be called. .. py:method:: SetController(self, controller: Controller) -> Any Set the controller associated with this PointProcessor, or std::nullopt for no association. See GetController() for an explanation of controllers on PointProcessors. .. py:method:: SubmitPoint(self, consuming: vspyx.Runtime.Point.Consuming_1edf1860a4) -> bool SubmitPoint will be called by the Stack for every incoming point. If this processor will process this point, it should return true. .. py:method:: SubmitPointAndGetResponse(self, consuming: vspyx.Runtime.Point.Consuming_1edf1860a4, timeout: Any) -> vspyx.Runtime.Point This function will be called by the Stack if this PointProcessor declares the highest prioriry for the Point in IsHandlerForPointWithResponse. The given promise is expected to be fulfilled or excepted at some point in the future. .. py:method:: SuppressConfigurationUpdates(self) -> Any This is called as a performance optimization when doing large updates to the configuration, such as when initially configuring the stack. No Points will be received until UnsuppressConfigurationUpdates() is called. .. py:method:: UnsuppressConfigurationUpdates(self) -> Any Allow all suppressed confuiguration updates to take place. See SuppressConfigurationUpdates() for more information. .. py:class:: SOMEIPServiceInterfaceDeployment Bases: :py:obj:`ServiceInterfaceDeployment` .. autoapi-inheritance-diagram:: vspyx.Communication.SOMEIPServiceInterfaceDeployment :parts: 1 :private-bases: SOMEIPServiceInterfaceDeployment .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: ServiceInterfaceID :annotation: :int .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> SOMEIPServiceInterfaceDeployment :staticmethod: .. py:class:: ServiceInterface Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.ServiceInterface :parts: 1 :private-bases: ServiceInterface .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> ServiceInterface :staticmethod: .. py:class:: ServiceInterfaceDeployment Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.ServiceInterfaceDeployment :parts: 1 :private-bases: ServiceInterfaceDeployment .. py:method:: ConfigureStack(self, stack: Stack) -> Any .. py:class:: SignalGroupInstance An instance of a signal group that is being processed by the Communication module. This class is short-lived, and referencing it outside of the immediate callback may result in unpredictable behavior. .. py:attribute:: SignalValues :annotation: :Any .. py:attribute:: Valid :annotation: :bool .. py:class:: SignalInstance An instance of a signal that is being processed by the Communication module. This class is short-lived, and referencing it outside of the immediate callback may result in unpredictable behavior. .. py:attribute:: Valid :annotation: :bool .. py:attribute:: Value :annotation: :vspyx.Runtime.Value .. py:class:: SimResetEventPoint Bases: :py:obj:`DataLinkEventPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.SimResetEventPoint :parts: 1 :private-bases: See documentation for Frames.SimResetEvent .. py:attribute:: Interesting :annotation: :vspyx.Runtime.Point.Interesting .. py:attribute:: NetworkEvent :annotation: :vspyx.Frames.NetworkEvent .. py:method:: GetAttribute(self, type: str) -> vspyx.Runtime.Value Get an attribute of this point by its tag If the attribute doesn't exist, an empty Runtime::Value will be returned. .. py:class:: SocketAddress Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.SocketAddress :parts: 1 :private-bases: Represents the connection between an ApplicationEndpoint and Connectors, either in a unicast or multicast scenario. .. py:attribute:: ApplicationEndpoint :annotation: :ApplicationEndpoint Retrieve the ApplicationEndpoint referenced by this SocketAddress if resolvable. Returns nullptr if not resolvable. .. py:attribute:: MulticastConnectors :annotation: :List[Connector] Retrieve the multicast connectors associated with this socket address if resolvable. Unresolved items are not included. .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: UnicastConnector :annotation: :Connector Retrieve the unicast connector associated with this socket address, if set and resolvable. Returns nullptr if either condition is not met. .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: IsAssociatedWith(self, connector: Connector) -> bool Returns true if the given connector is the unicast connector, or one of the multicast connectors, associated with this socket address. .. py:method:: New(config: Any) -> SocketAddress :staticmethod: .. py:class:: SocketConnectionBundle Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.SocketConnectionBundle :parts: 1 :private-bases: A named group of SocketConnections, holding the connections themselves and common properties between them. .. py:class:: Side Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.SocketConnectionBundle.Side :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Client :annotation: = 2 .. py:attribute:: NONE :annotation: = 0 .. py:attribute:: Server :annotation: = 1 .. py:attribute:: LengthEncoding :annotation: :vspyx.intrepidcs.vspyx.rpc.Communication.SoAdPduHeaderLengthEncodingEnumType .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: ServerPort :annotation: :SocketAddress .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: GetSideForConnector(self, connector: Connector) -> SocketConnectionBundle.Side .. py:method:: New(config: Any) -> SocketConnectionBundle :staticmethod: .. py:class:: SourceHandle Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.SourceHandle :parts: 1 :private-bases: Represents a data source and discovery object relationship .. py:class:: NotReadyReason Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Communication.SourceHandle.NotReadyReason :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Initializing :annotation: = 3 .. py:attribute:: NotApplicable :annotation: = 0 .. py:attribute:: NotFound :annotation: = 1 .. py:attribute:: SourceWentAway :annotation: = 2 .. py:attribute:: Controllers :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: Discovery :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:attribute:: Source :annotation: :vspyx.Frames.Source .. py:attribute:: SourceState :annotation: :vspyx.Frames.Source.State .. py:method:: AddDiscovery(self, obj: vspyx.Core.ResolverObject) -> Any .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: CloneState(self) -> Any .. py:method:: Close(self) -> vspyx.Core.Task_a3295bec43 .. py:method:: GetDriverFromDescription(self, description: str) -> vspyx.Frames.Driver .. py:method:: GetNotReadyReason(self) -> SourceHandle.NotReadyReason .. py:method:: New(config: Any) -> SourceHandle :staticmethod: .. py:method:: Open(self) -> vspyx.Core.Task_a3295bec43 .. py:method:: ResetSource(self) -> vspyx.Core.Task_a3295bec43 .. py:method:: SearchFor(self) -> bool .. py:method:: SetupDiscoveryClusters(self, forEachCluster: Any) -> Any .. py:method:: Start(self) -> vspyx.Core.Task_a3295bec43 .. py:method:: Stop(self) -> vspyx.Core.Task_a3295bec43 .. py:method:: UpdateState(self, state: Any) -> Any .. py:class:: Stack Bases: :py:obj:`vspyx.Runtime.Component` .. autoapi-inheritance-diagram:: vspyx.Communication.Stack :parts: 1 :private-bases: A Communication Stack inside of an ECU The Stack works as a basic Runtime::Point broadcasting system. When a Point is submitted, it is given to all* of the PointProcessors registered with the Stack, then sent out via the OnPoint handler. Each of the PointProcessors contain filtering logic which determines whether they will handle the Point. When a PointProcessor generates a Point, it will give the Point back to the Stack so it can be distributed, both to other PointProcessors that may use the new Point, and to the outside world (Runtime::Environment, etc.). * PointProcessors can optionally specify a Controller. If they do, they will only receive Points associated with that Controller. .. py:attribute:: OnPoint :annotation: :vspyx.Core.Callback_bf2c6c2abd Called for every Point that the Stack processes or generates. .. py:method:: AddPointProcessor(self, processor: PointProcessor) -> Any Add the given PointProcessor to the Stack. .. py:method:: GetPointProcessorByID(self, id: str) -> PointProcessor Look up a PointProcessor in the Stack by its ID :Returns: the PointProcessor .. py:method:: New() -> Stack :staticmethod: Create a new empty Stack. .. py:method:: ReleasePointProcessor(self, processor: PointProcessor) -> bool Atomically decrement the UseCount of the PointProcessor, and remove it if no other objects are keeping it in the Stack (UseCount == 0). :Returns: true if the PointProcessor was found and removed .. py:method:: RemovePointProcessor(self, processor: PointProcessor) -> bool Remove the given PointProcessor from the Stack. Use ReleasePointProcessor instead for proper reference counting of the PointProcessor's attachment. :Returns: true if the PointProcessor was found and removed .. py:method:: SubmitNetworkEvent(self, event: vspyx.Frames.NetworkEvent, controller: Controller) -> Connector.IngressActions Submit a NetworkEvent into the stack. For frames, this will immediately create a new DataLinkPDUPoint with Direction::Receive and submit it into the stack. For confirmations, this will attempt to match the confirmation to a DataLinkPDUPoint we've seen. For other NetworkEvents, this will immediately create a new DataLinkEventPoint with direction::Receive and submit it into the stack. .. py:method:: SubmitPoint(self, point: vspyx.Runtime.Point.Consuming_1edf1860a4) -> Connector.IngressActions Submit a Point into the Stack for processing. Use SubmitNetworkEvent if you have a NetworkEvent, a Point will be created for you. .. py:method:: SubmitPointAndGetResponse(self, point: vspyx.Runtime.Point.Consuming_1edf1860a4) -> vspyx.Runtime.Point SubmitPointAndGetResponse(self, point: vspyx.Runtime.Point.Consuming_1edf1860a4, timeout: Any) -> vspyx.Runtime.Point Submit a Point for which we expect a point in response. Both the submitted Point and the response Point are expected out of OnPoint as well. .. py:method:: SuppressConfigurationUpdates(self) -> Any This is called as a performance optimization when doing large updates to the configuration, such as when initially configuring the Stack. No Points will be dispatched to PointProcessors until UnsuppressConfigurationUpdates() is called. .. py:method:: UnsuppressConfigurationUpdates(self) -> Any Allow all suppressed confuiguration updates to take place. See SuppressConfigurationUpdates() for more information. .. py:class:: StdCPPImplementationDataType Bases: :py:obj:`CPPImplementationDataType` .. autoapi-inheritance-diagram:: vspyx.Communication.StdCPPImplementationDataType :parts: 1 :private-bases: StdCPPImplementationDataType .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> StdCPPImplementationDataType :staticmethod: .. py:class:: TDataPoint Bases: :py:obj:`PDUPoint` .. autoapi-inheritance-diagram:: vspyx.Communication.TDataPoint :parts: 1 :private-bases: TDataPoint .. py:attribute:: Mtype :annotation: :ISOStandardizedServicePrimitiveInterface.MessageType .. py:attribute:: N_AI :annotation: :Any .. py:attribute:: N_Result :annotation: :Any .. py:attribute:: T_AE :annotation: :Any .. py:attribute:: T_SA :annotation: :int .. py:attribute:: T_TA :annotation: :int .. py:attribute:: T_TAtype :annotation: :int .. py:method:: New(direction: vspyx.Runtime.Point.Direction, upstreamPoints: List[vspyx.Runtime.Point], controller: Controller, traceable: vspyx.Runtime.Traceable, Mtype: ISOStandardizedServicePrimitiveInterface.MessageType, T_SA: int, T_TA: int, T_TAtype: int, T_AE: Any, T_Data: vspyx.Core.BytesView, N_Result: Any) -> vspyx.Runtime.Point.Consuming_fe9efbf398 :staticmethod: .. py:class:: Topology Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.Topology :parts: 1 :private-bases: Definition of a network topology .. py:attribute:: Channels :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: Clusters :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: Connectors :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: Controllers :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: ECUs :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: Frames :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: PDUGroups :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: PDUs :annotation: :vspyx.Core.ResolverCollection .. py:attribute:: Signals :annotation: :vspyx.Core.ResolverCollection .. py:method:: MergeIn(self, topology: Topology) -> Any .. py:method:: New() -> Topology New(owning: bool) -> Topology :staticmethod: .. py:class:: TopologySubset Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.TopologySubset :parts: 1 :private-bases: Network topology subset .. py:attribute:: Topology :annotation: :Topology .. py:class:: TrafficSink Bases: :py:obj:`vspyx.Frames.Buffer` .. autoapi-inheritance-diagram:: vspyx.Communication.TrafficSink :parts: 1 :private-bases: Represents a transaction buffer sink .. py:method:: AttachToChannel(self, channel: Channel) -> Any .. py:method:: ClearFilters(self) -> Any .. py:method:: ClearFrames(self) -> Any .. py:method:: DetachFromChannel(self) -> Any .. py:method:: FindIf(self, predicate: vspyx.Frames.Predicate) -> vspyx.Frames.NetworkEvent FindIf(self, predicate: vspyx.Frames.Predicate, offset: int) -> vspyx.Frames.NetworkEvent .. py:method:: FrameToString(event: vspyx.Frames.NetworkEvent, startTime: vspyx.Runtime.Timestamp, dissector: vspyx.Dissector.Engine) -> str :staticmethod: .. py:method:: FramesToString(self, dissector: vspyx.Dissector.Engine) -> str .. py:method:: GetWatchForResults(self, predicate: vspyx.Frames.Predicate) -> List[vspyx.Frames.NetworkEvent] .. py:method:: New() -> TrafficSink :staticmethod: .. py:method:: WaitFor(self, predicate: vspyx.Frames.Predicate, sched: vspyx.Runtime.Scheduler, timeout: Any) -> List[vspyx.Frames.NetworkEvent] .. py:method:: WatchFor(self, predicate: vspyx.Frames.Predicate) -> vspyx.Core.Event .. py:class:: Triggering Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Communication.Triggering :parts: 1 :private-bases: Triggering describes the pairing of a communication object to a channel and defines the manner of triggering (timing information) and identification of the object on the channel. A CANFrameTriggering would, for instance, describe the Arbitration ID that a particular frame is expected to be seen under on a particular channel. It would then go on to define the position of PDUs in the Frame when seen on that channel, which would be PDUTriggerings. .. py:attribute:: OnPortsChanged :annotation: :vspyx.Core.Callback_634bd5c449 Called when the Ports on this Triggering have changed. It is not guaranteed that this will only be called if a Port has been added/removed. .. py:method:: AddPort(self, port: ConnectorPort, permanent: bool) -> Any Add a Port to this Triggering. If `permanent` is true, it will be added to the configuration. The Port will not be owned by the Triggering. .. py:method:: MakePort(self, direction: vspyx.intrepidcs.vspyx.rpc.Communication.Directions) -> ConnectorPort Make a Port for this Triggering, setting the direction as specified and leaving the rest of the options as default. The object will not be initialized as returned, nor will it be linked anywhere. .. py:class:: UserDefinedPDU Bases: :py:obj:`PDU` .. autoapi-inheritance-diagram:: vspyx.Communication.UserDefinedPDU :parts: 1 :private-bases: Represents a PDU with user-defined processing .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New() -> UserDefinedPDU New(config: Any) -> UserDefinedPDU :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol. .. py:class:: VSDB Bases: :py:obj:`TopologySubset` .. autoapi-inheritance-diagram:: vspyx.Communication.VSDB :parts: 1 :private-bases: Represents the Intrepid VehicleSpy DB network topology and message specification .. py:attribute:: Objects :annotation: :vspyx.Core.ResolverOwningCollection .. py:class:: VariableDataPrototype Bases: :py:obj:`AUTOSARDataPrototype` .. autoapi-inheritance-diagram:: vspyx.Communication.VariableDataPrototype :parts: 1 :private-bases: VariableDataPrototype .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any Return the immutable configuration of this object. Except for the resolver parenting relationship, this represents the entire serializable state of the object. .. py:method:: New(config: Any) -> VariableDataPrototype :staticmethod: Create a new generic asynchronously updated Traceable. When working in Python, creating a more specific Traceable is correct rather than creating this generic one, unless you are implementing your own protocol.