Myogestic.Remote.ControlManifest
VHI_godot¶
Myogestic.Remote¶
ControlManifest Class¶
public sealed class ControlManifest : Google.Protobuf.IMessage<Myogestic.Remote.ControlManifest>, Google.Protobuf.IMessage, System.IEquatable<Myogestic.Remote.ControlManifest>, Google.Protobuf.IDeepCloneable<Myogestic.Remote.ControlManifest>, Google.Protobuf.IBufferMessage
Inheritance System.Object → ControlManifest
Implements Google.Protobuf.IMessage<ControlManifest>, Google.Protobuf.IMessage, System.IEquatable<ControlManifest>, Google.Protobuf.IDeepCloneable<ControlManifest>, Google.Protobuf.IBufferMessage
Properties¶
ControlManifest.Capabilities Property¶
Every control this build exports. A client validates its configuration against this list and reports an unknown address by name — with these as the alternatives.
public Google.Protobuf.Collections.RepeatedField<Myogestic.Remote.ControlCapability> Capabilities { get; }
Property Value¶
Google.Protobuf.Collections.RepeatedField<ControlCapability>
ControlManifest.TargetName Property¶
Which target this is, for a client that talks to more than one.
Property Value¶
ControlManifest.TargetVersion Property¶
The serving build's own release version — "2.1.0", the numeric part of its release tag. Mostly informational, with one narrow use: a client that knows a *specific* target's history may refuse builds older than a floor it trusts — a build whose protocol is current but whose behaviour is known-bad (the case that motivated the field: a VHI whose SetMovement fell behind and dropped edges, freezing the hand while every version gate passed). Compared as a dotted integer tuple. Empty — every build predating the field — is never refused on its own, only noted, because absence cannot distinguish an old build from a third-party target that does not version itself. The load-bearing compatibility check is vocabulary_version, not this.
Property Value¶
ControlManifest.VocabularyVersion Property¶
The vocabulary's own version: a decimal integer, compared numerically, bumped when the addresses or the transport change in a way a client cannot absorb silently.
**Load-bearing, not informational.** A client declares the oldest version it can drive and refuses anything below it, by name, at bind. These are separately installed applications, so an upgrade on one side does not upgrade the other, and without this a mismatch is silent: an old target listening for a stream a new client no longer publishes reports no error at all — the rig simply never moves.
1 — a manifest carrying stream_name and channel; several controls could share one wider stream. Retired. 2 — one stream per DOF, named for the address, one channel wide.