:py:mod:`vspyx.Runtime` ======================= .. py:module:: vspyx.Runtime Package Contents ---------------- Classes ~~~~~~~ .. autoapisummary:: vspyx.Runtime.BaseType vspyx.Runtime.Component vspyx.Runtime.ComponentInterface vspyx.Runtime.CompuMethod vspyx.Runtime.DataDefinition vspyx.Runtime.Environment vspyx.Runtime.Module vspyx.Runtime.Point vspyx.Runtime.PointCache vspyx.Runtime.PointLevel vspyx.Runtime.Scheduler vspyx.Runtime.SchedulerTicker vspyx.Runtime.Signal vspyx.Runtime.SignalPoint vspyx.Runtime.SystemSignal vspyx.Runtime.SystemSignalGroup vspyx.Runtime.SystemSignalPoint vspyx.Runtime.Timestamp vspyx.Runtime.Trace vspyx.Runtime.Traceable vspyx.Runtime.Tracer vspyx.Runtime.Unit vspyx.Runtime.Utilization vspyx.Runtime.Value .. py:class:: BaseType Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Runtime.BaseType :parts: 1 :private-bases: Represents the serializable base type identifier information associated with a given resolvable object .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any .. py:method:: New(config: Any) -> BaseType :staticmethod: .. py:class:: Component Bases: :py:obj:`vspyx.Core.ResolverObject`, :py:obj:`ComponentInterface` .. autoapi-inheritance-diagram:: vspyx.Runtime.Component :parts: 1 :private-bases: A component is the basic piece of functionality that the runtime is composed of. .. py:attribute:: Initialized :annotation: :bool .. py:attribute:: Running :annotation: :bool .. py:method:: InitializeEnvironment(self, sched: Scheduler, env: Environment) -> Any .. py:method:: ShutdownEnvironment(self) -> Any .. py:method:: StartComponent(self) -> Any StartComponent(self, sched: Scheduler) -> Any StartComponent(self, sched: Scheduler, env: Environment) -> Any .. py:method:: StopComponent(self) -> Any .. py:class:: ComponentInterface Represents the basic interface of a runtime component .. py:attribute:: Initialized :annotation: :bool .. py:attribute:: Running :annotation: :bool .. py:method:: InitializeEnvironment(self, sched: Scheduler, env: Environment) -> Any .. py:method:: ShutdownEnvironment(self) -> Any .. py:method:: StartComponent(self) -> Any StartComponent(self, sched: Scheduler) -> Any StartComponent(self, sched: Scheduler, env: Environment) -> Any .. py:method:: StopComponent(self) -> Any .. py:class:: CompuMethod Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Runtime.CompuMethod :parts: 1 :private-bases: Represents the conversion and scaling between runtime values and their physical representations .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any .. py:method:: InternalToPhysical(self, internal: vspyx.Core.Numeric) -> Any .. py:method:: New(config: Any) -> CompuMethod :staticmethod: .. py:method:: PhysicalToInternal(self, physical: Any) -> vspyx.Core.Numeric .. py:class:: DataDefinition Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Runtime.DataDefinition :parts: 1 :private-bases: DataDefinition gives the definition of how a piece of data should be stored and presented .. py:attribute:: BaseType :annotation: :BaseType Get the base type .. py:attribute:: CompuMethod :annotation: :CompuMethod .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any .. py:method:: New(baseType: BaseType, compuMethod: CompuMethod) -> DataDefinition New(config: Any) -> DataDefinition :staticmethod: .. py:class:: Environment Bases: :py:obj:`Component` .. autoapi-inheritance-diagram:: vspyx.Runtime.Environment :parts: 1 :private-bases: Represents the runtime domain of managed and monitored datapoints .. py:attribute:: OnPoint :annotation: :vspyx.Core.Callback_bf2c6c2abd .. py:method:: AddComponent(self, com: Component) -> Any .. py:method:: AddTrace(self, trace: Trace) -> Any Manually add a Trace. Throws a RuntimeError if the Traceable is already traced here. .. py:method:: GetTrace(self, pdu: Traceable) -> Trace .. py:method:: New() -> Environment :staticmethod: .. py:method:: RemoveComponent(self, com: Component) -> Any .. py:method:: SubmitPoint(self, point: Point) -> Any .. py:class:: Module Bases: :py:obj:`vspyx.Core.Module` .. autoapi-inheritance-diagram:: vspyx.Runtime.Module :parts: 1 :private-bases: Represents a runtime module .. py:class:: Point Bases: :py:obj:`vspyx.Core.Linkable` .. autoapi-inheritance-diagram:: vspyx.Runtime.Point :parts: 1 :private-bases: An instance of a Topology Object (e.g. PDU, Signal, etc) While those Topology Objects describe the long running state of the object, a Point describes a single occurence of that Topology Object in time. .. py:class:: AttributeRecord AttributeRecord .. py:attribute:: AliasTo :annotation: :str .. py:attribute:: Dynamic :annotation: :bool .. py:attribute:: Inheritable :annotation: :bool .. py:attribute:: Inherited :annotation: :bool .. py:attribute:: RenderingHint :annotation: :vspyx.Core.Numeric.RenderingHint .. py:method:: MakeAlias(to: str) -> Point.AttributeRecord :staticmethod: .. py:method:: MakeBuiltIn() -> Point.AttributeRecord MakeBuiltIn(inheritable: bool) -> Point.AttributeRecord :staticmethod: .. py:method:: MakeDynamic() -> Point.AttributeRecord :staticmethod: .. py:class:: Consuming_03654c56a8 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_03654c56a8) -> Point.Consuming_03654c56a8 .. py:class:: Consuming_1dd119a6a6 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_1dd119a6a6) -> Point.Consuming_1dd119a6a6 .. py:class:: Consuming_1edf1860a4 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_1edf1860a4) -> Point.Consuming_1edf1860a4 assign(self, rhs: Point.Consuming_1edf1860a4) -> Point.Consuming_1edf1860a4 .. py:class:: Consuming_2215b345f6 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_2215b345f6) -> Point.Consuming_2215b345f6 .. py:class:: Consuming_5056ff9b42 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_5056ff9b42) -> Point.Consuming_5056ff9b42 .. py:class:: Consuming_50a4704bd5 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_50a4704bd5) -> Point.Consuming_50a4704bd5 .. py:class:: Consuming_6aef469678 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_6aef469678) -> Point.Consuming_6aef469678 .. py:class:: Consuming_99a0dbe01e Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_99a0dbe01e) -> Point.Consuming_99a0dbe01e .. py:class:: Consuming_9f8cd48833 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_9f8cd48833) -> Point.Consuming_9f8cd48833 .. py:class:: Consuming_a508b640d2 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_a508b640d2) -> Point.Consuming_a508b640d2 .. py:class:: Consuming_e1c4fc4e95 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_e1c4fc4e95) -> Point.Consuming_e1c4fc4e95 .. py:class:: Consuming_e473ff5c76 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_e473ff5c76) -> Point.Consuming_e473ff5c76 .. py:class:: Consuming_fe9efbf398 Consuming .. py:attribute:: Point :annotation: :Point .. py:method:: assign(self, rhs: Point.Consuming_fe9efbf398) -> Point.Consuming_fe9efbf398 .. py:class:: Direction Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Runtime.Point.Direction :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Receive :annotation: = 0 .. py:attribute:: Transmit :annotation: = 1 .. py:class:: Interesting Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Runtime.Point.Interesting :parts: 1 :private-bases: How interesting is the Point? In other words, is the user likely to care about a Point at this level, or would it have to turn into something more before it is interesting to the user? As an example, CAN DataLinkPDUs are interesting on their own. An ISO11898-1 LDataPoint will be created from it, but the user will still be more interested in the DataLinkPDUPoint until the LDataPoint becomes an ISO15765-2 TDataPoint, etc. .. py:attribute:: No :annotation: = 2 .. py:attribute:: SuccessorsMayBe :annotation: = 1 .. py:attribute:: Yes :annotation: = 0 .. py:attribute:: Level :annotation: :PointLevel The level of this point .. py:attribute:: PointDirection :annotation: :Point.Direction The direction of this point, named to avoid clashes with enum Point::Direction .. py:attribute:: Timestamp :annotation: :Timestamp The time that this point was created/set .. py:attribute:: Traceable :annotation: :Traceable The tracable this point is associated with If the point is not associated with a traceable or the traceable has expired, nullptr will be returned. .. py:method:: DecrementConsumers(self) -> Any Decrement the count of current consumers, use the AcquireConsumerLock() RAII helper instead when possible See AcquireConsumerLock() for more information about the ConsumerLock This operation is thread-safe .. py:method:: GetAttribute(self, type: str) -> 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:: GetInteresting(self) -> Point.Interesting See documentation for Runtime.Point.Interesting. .. py:method:: IncrementConsumers(self) -> Any .. py:method:: IsDoneBeingConsumed(self) -> bool .. py:method:: LinkChild(self, newChild: vspyx.Core.Linkable) -> Any .. py:method:: LinkUpstream(self, upstream: Point) -> Any LinkUpstream(self, upstream: Point, inheritAndRelevel: bool) -> Any LinkUpstream(self, upstream: List[Point]) -> Any LinkUpstream(self, upstream: List[Point], inheritAndRelevel: bool) -> Any Helper for LinkUpstream that links a vector of points, such as might be received in the New functions for Points. By default, this function resets the timestamp and PointLevel for these points as if the incoming Points were passed to the initial constructor. .. py:method:: SetAttribute(self, type: str, value: 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:method:: TimestampSet(self, nTimestamp: Timestamp) -> Any Set the timestamp for this point This should generally not be used, as in most circumstances as in most circumstances a timestamp will be set automatically for you. This should only be done while the point is Consuming .. py:method:: UnlinkChild(self, newChild: vspyx.Core.Linkable) -> Any .. py:method:: VisitDownstreamPoints(self, fn: vspyx.Core.Function_5230b09a44) -> Any Call :Parameter fn: for each of the downstream points If the returned bool from :Parameter fn: is false, the visiting breaks early. "Downstream" points are the child points in case of Direction::Receive, and the parent points in case of Direction::Transmit. .. py:method:: VisitUpstreamPoints(self, fn: vspyx.Core.Function_5230b09a44) -> Any Call :Parameter fn: for each of the upstream points If the returned bool from :Parameter fn: is false, the visiting breaks early. "Upstream" points are the parent points in case of Direction::Receive, and the child points in case of Direction::Transmit. .. py:class:: PointCache Bases: :py:obj:`vspyx.Core.Object` .. autoapi-inheritance-diagram:: vspyx.Runtime.PointCache :parts: 1 :private-bases: Represents a managed collection of cacheable point objects with controlled access to their values .. py:attribute:: MaximumSize :annotation: :int .. py:method:: PullLatestValues(self) -> List[Point] .. py:class:: PointLevel Represents the data flow level of a given data element or sub-element .. py:class:: Primary Bases: :py:obj:`enum.IntFlag` .. autoapi-inheritance-diagram:: vspyx.Runtime.PointLevel.Primary :parts: 1 :private-bases: Support for integer-based Flags .. py:attribute:: DataLinkPDU :annotation: = 1 .. py:attribute:: InteractionPDU :annotation: = 3 .. py:attribute:: NetworkPDU :annotation: = 2 .. py:attribute:: Signal :annotation: = 5 .. py:attribute:: SignalPDU :annotation: = 4 .. py:attribute:: Unknown :annotation: = 0 .. py:attribute:: primary :annotation: :PointLevel.Primary .. py:attribute:: secondary :annotation: :int .. py:method:: MaxSecondary() -> int :staticmethod: .. py:method:: PrimaryToString(p: PointLevel.Primary) -> int :staticmethod: .. py:method:: __eq__(self, other: PointLevel) -> bool Return self==value. .. py:method:: __ne__(self, other: PointLevel) -> bool Return self!=value. .. py:method:: __str__(self) -> str Return str(self). .. py:class:: Scheduler Bases: :py:obj:`Component` .. autoapi-inheritance-diagram:: vspyx.Runtime.Scheduler :parts: 1 :private-bases: Represents a periodic and time-scalable, managed runtime task .. py:attribute:: IsRunning :annotation: :bool .. py:attribute:: Now :annotation: :Timestamp .. py:attribute:: Realtime :annotation: :bool .. py:attribute:: Ticker :annotation: :SchedulerTicker .. py:attribute:: TimeScale :annotation: :float .. py:attribute:: TimeSinceStart :annotation: :Any .. py:method:: AddComponent(self, com: Component) -> Any .. py:method:: CloneState(self) -> Any .. py:method:: GetMainCallback(self) -> vspyx.Core.Callback_b113cdf49d GetMainCallback(self, component: Component) -> vspyx.Core.Callback_b113cdf49d Get a callback that will be raised on every "main" processing loop. The callbacks registered by this function should be short lived and not block. In particular, they must never call Runtime::Wait, Runtime::WaitFor, Runtime::WaitUntil. :Parameter component: Optional component that was previously added with AddComponent. If specified, the callback may occur on a separate processing thread for the component .. py:method:: GetTimingCallback(self, interval: Any) -> vspyx.Core.Callback_b113cdf49d GetTimingCallback(self, interval: Any, component: Component) -> vspyx.Core.Callback_b113cdf49d Get a callback that will be raised at an interval. The callbacks registered by this function should be short lived and not block. In particular, they must never call Runtime::Wait, Runtime::WaitFor or Runtime::WaitUntil. :Parameter micros: duration, in microseconds, between successive raises of the callback :Parameter component: Optional component that was previously added with AddComponent. If specified, the callback may occur on a separate processing thread for the component :Returns: callback object .. py:method:: Log(self, tag: str) -> vspyx.Core.Log .. py:method:: New() -> Scheduler :staticmethod: .. py:method:: NewThread(self, func: Callable) -> Any .. py:method:: RemoveComponent(self, com: Component) -> Any .. py:method:: Start(self) -> Any .. py:method:: Stop(self) -> Any .. py:method:: UpdateState(self, state: Any) -> Any .. py:method:: Wait(self, interrupt: vspyx.Core.Event) -> Any Wait indefinitely for the given Core::Event to be set. Throws if the scheduler stops while waiting. .. py:method:: WaitFor(self, nanos: Any) -> Any WaitFor(self, nanos: Any, interrupt: vspyx.Core.Event) -> bool Wait either for the given Core::Event to be set, or the given amount of time. Returns true if the event was set, or false if the timeout was reached. Throws if the scheduler stops while waiting. .. py:method:: WaitUntil(self, timestamp: Timestamp) -> Any WaitUntil(self, timestamp: Timestamp, interrupt: vspyx.Core.Event) -> bool Wait either for the given Core::Event to be set, or until the given timestamp. Returns true if the event was set, or false if the given timestamp was reached. Throws if the scheduler stops while waiting. .. py:class:: SchedulerTicker Bases: :py:obj:`vspyx.Core.Object` .. autoapi-inheritance-diagram:: vspyx.Runtime.SchedulerTicker :parts: 1 :private-bases: SchedulerTicker .. py:method:: GetNextTimeAdvance(self, scheduler: Scheduler) -> Any .. py:class:: Signal Bases: :py:obj:`Traceable` .. autoapi-inheritance-diagram:: vspyx.Runtime.Signal :parts: 1 :private-bases: A signal, which is an abstract quantity of information that has a definite value at a given point in time .. py:attribute:: Definition :annotation: :DataDefinition Get the definition of the value of this signal. A signal may have no definition .. py:class:: SignalPoint Bases: :py:obj:`Point` .. autoapi-inheritance-diagram:: vspyx.Runtime.SignalPoint :parts: 1 :private-bases: Represents a specfic value of a signal at a point in time. The data type of the physical value and the internal value may be different. For example, state encoded signals have a numeric internal value, but a string physical value. .. py:attribute:: InternalValue :annotation: :Any Get native representation of the signal .. py:attribute:: PhysicalValue :annotation: :Any Get the interpreted or "logical" value, which is calculated from the internal value. .. py:attribute:: Valid :annotation: :bool Denotes if the signal's value is "invalid" (when set to false). This is different from being not present. An invalid value means the signal was set, but the value it was set to was outside some validation parameters. .. py:class:: SystemSignal Bases: :py:obj:`Signal` .. autoapi-inheritance-diagram:: vspyx.Runtime.SystemSignal :parts: 1 :private-bases: Represents a runtime signal which contains data internal to the function of the runtime system (eg pending traffic, pending frame count, etc) .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any .. py:method:: New() -> SystemSignal New(description: str, read: vspyx.Core.Function_1d184840f7) -> SystemSignal New(config: Any) -> SystemSignal :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, physicalValue: Any, internalValue: Any, valid: bool, timestamp: Timestamp) -> Point.Consuming_50a4704bd5 .. py:class:: SystemSignalGroup Bases: :py:obj:`Traceable` .. autoapi-inheritance-diagram:: vspyx.Runtime.SystemSignalGroup :parts: 1 :private-bases: Represents a group of related system signals .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any .. py:method:: New() -> SystemSignalGroup New(description: str) -> SystemSignalGroup New(config: Any) -> SystemSignalGroup :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:: SystemSignalPoint Bases: :py:obj:`SignalPoint` .. autoapi-inheritance-diagram:: vspyx.Runtime.SystemSignalPoint :parts: 1 :private-bases: Represents a system signal value at a given time .. py:method:: New(systemSignal: SystemSignal, physicalValue: Any, internalValue: Any, valid: bool, timestamp: Timestamp) -> Point.Consuming_50a4704bd5 :staticmethod: .. py:class:: Timestamp Represents a signal point value timestamp .. py:attribute:: DateTime :annotation: :Any .. py:attribute:: NanosSince1Jan2007 :annotation: :Any .. py:method:: FromUnixTime(unixTime: int) -> Timestamp :staticmethod: .. py:method:: MakeTimestampDiffString(now: Timestamp, then: Timestamp) -> str :staticmethod: .. py:method:: Now() -> Timestamp :staticmethod: .. py:method:: __add__(self, rhs: Any) -> Timestamp .. py:method:: __eq__(self, rhs: Timestamp) -> bool Return self==value. .. py:method:: __iadd__(self, rhs: Timestamp) -> Timestamp .. py:method:: __isub__(self, rhs: Timestamp) -> Timestamp .. py:method:: __ne__(self, rhs: Timestamp) -> bool Return self!=value. .. py:method:: __str__(self) -> str Return str(self). .. py:method:: __sub__(self, rhs: Timestamp) -> Any __sub__(self, rhs: Any) -> Timestamp .. py:method:: assign(self, rhs: Timestamp) -> Timestamp .. py:class:: Trace Bases: :py:obj:`vspyx.Core.Object` .. autoapi-inheritance-diagram:: vspyx.Runtime.Trace :parts: 1 :private-bases: Represents a continually observed and runtime manipulatable interface to a datapoint .. py:class:: Statistics Statistics .. py:class:: ChangeTime ChangeTime .. py:class:: Direction Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Runtime.Trace.Statistics.ChangeTime.Direction :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: Down :annotation: = 2 .. py:attribute:: NONE :annotation: = 0 .. py:attribute:: Up :annotation: = 1 .. py:attribute:: BeforeLastTime :annotation: :Any .. py:attribute:: ChangeDirection :annotation: :Trace.Statistics.ChangeTime.Direction .. py:attribute:: LastTime :annotation: :Any .. py:method:: Push(self, thisTime: Any) -> Any Push(self, thisTime: Any, thisChangeDirection: Trace.Statistics.ChangeTime.Direction) -> Any .. py:attribute:: BeforeLastPoint :annotation: :Point .. py:attribute:: Count :annotation: :int .. py:attribute:: CountChangeTime :annotation: :Trace.Statistics.ChangeTime .. py:attribute:: LastPoint :annotation: :Point .. py:attribute:: PayloadChangeTimes :annotation: :List[Trace.Statistics.ChangeTime] .. py:attribute:: Present :annotation: :bool .. py:method:: PushPoint(self, point: Point) -> Any .. py:method:: Reset(self) -> Any .. py:method:: SetNotPresent(self) -> Any .. py:attribute:: BeforeLastPoint :annotation: :Point .. py:attribute:: Count :annotation: :int .. py:attribute:: LastPoint :annotation: :Point .. py:attribute:: NewPointEvent :annotation: :vspyx.Core.Event .. py:attribute:: OnPoint :annotation: :vspyx.Core.Callback_2fac57aba0 .. py:attribute:: Present :annotation: :bool .. py:attribute:: Traceable :annotation: :Traceable .. py:method:: Read(self) -> Point .. py:method:: SetNotPresent(self) -> Any .. py:class:: Traceable Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Runtime.Traceable :parts: 1 :private-bases: Represents the basis of a value which can be contually monitored (traced) at runtime .. py:class:: UpdateMethods Bases: :py:obj:`enum.IntEnum` .. autoapi-inheritance-diagram:: vspyx.Runtime.Traceable.UpdateMethods :parts: 1 :private-bases: Enum where members are also (and must be) ints .. py:attribute:: AsynchronouslyUpdated :annotation: = 0 .. py:attribute:: SynchronousRead :annotation: = 1 .. py:attribute:: Description :annotation: :str .. py:attribute:: LongName :annotation: :str .. py:attribute:: ReadFunction :annotation: :vspyx.Core.Function_1d184840f7 .. py:attribute:: UpdateMethod :annotation: :Traceable.UpdateMethods .. py:method:: New() -> Traceable :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:: Tracer A class which facilitates the storage of Runtime::Traces for the user Designed to easily be tacked onto another class with multiple inheritance Locking is all handled internally, the member functions are thread safe .. py:method:: AddTrace(self, trace: Trace) -> Any Manually add a Trace. Throws a RuntimeError if the Traceable is already traced here. .. py:method:: ClearTraces(self) -> Any Remove all Traces traced here. .. py:method:: ResolveOrNewTrace(self, traceable: Traceable, env: Environment, scheduler: Scheduler) -> Trace ResolveOrNewTrace(self, point: Point, env: Environment, scheduler: Scheduler) -> Trace For the given Point, return the Trace, creating a new one if necessary. Returns None/nullptr if the Point is not associated with a Traceable. .. py:method:: ResolveTrace(self, traceable: Traceable) -> Trace ResolveTrace(self, point: Point) -> Trace If the given Point is associated with a Traceable traced here, return the Trace. Returns None/nullptr if Point is not associated with a Traceable or the Traceable is not traced here. .. py:class:: Unit Bases: :py:obj:`vspyx.Core.ResolverObject` .. autoapi-inheritance-diagram:: vspyx.Runtime.Unit :parts: 1 :private-bases: Represents a unit for a physical value, such as "volts" or "mph". This is optionally its own object, as that's how AUTOSAR represents CompuMethod Units, however in our archicture this can also be bypassed by setting a Unit directly on the CompuMethod. .. py:attribute:: DisplayName :annotation: :str Get the "Display Name" of the Unit, AKA the Unit String Examples are "V" for volts, "mph", or "1/min" for engine speed. .. py:attribute:: OnConfigurationMutation :annotation: :vspyx.Core.Callback_634bd5c449 .. py:method:: CloneConfiguration(self) -> Any .. py:method:: New(config: Any) -> Unit :staticmethod: .. py:class:: Utilization Bases: :py:obj:`Component` .. autoapi-inheritance-diagram:: vspyx.Runtime.Utilization :parts: 1 :private-bases: Represents channel utilization statistics .. py:attribute:: Signal :annotation: :Signal .. py:method:: AddUtilized(self, percentOfSecond: float) -> Any .. py:method:: New() -> Utilization New(averageSamples: int) -> Utilization :staticmethod: .. py:class:: Value(*args, **kwds) Bases: :py:obj:`Any` .. autoapi-inheritance-diagram:: vspyx.Runtime.Value :parts: 1 :private-bases: Special type indicating an unconstrained type. - Any is compatible with every type. - Any assumed to have all methods. - All values assumed to be instances of Any. Note that all the above statements are true from the point of view of static type checkers. At runtime, Any should not be used with instance or class checks.