Hermes SDK Documentation
|
Enumerations | |
enum | UpdateMode { CheckOnly, StartUpdater } |
enum | DefaultPorts { Nothing, HivePort } |
enum | SequenceType { None, HandsOnly, BodyAdvanced, BodyAdvancedOnly } |
enum | HandProfilePreset { NoHandData, PrimeTwoVive, PrimeTwoManus, StrapVive, StrapManus } |
enum | StepType { Invalid, ArcHandX, ArcHandZ, ArcLeftFootY, ArcRightFootY, ArcElbows, ArcLeftHandX, ArcLeftHandZ, ArcRightHandX, ArcRightHandZ, ArcPrayZ, PoseT, PoseAlignHand, PoseHipPoint, PoseHeadPoint, PoseNeckPoint, PoseLeftFootPoint, PoseRightFootPoint, PoseLeftElbow, PoseRightElbow, PoseLeftShoulder, PoseRightShoulder, PoseElbows, PoseShoulders, PoseHeadTop, PoseKnees } |
enum | SequenceState { Idle, InStep, Finished, NotStarted } |
enum | CompleteType { Complete, Error, Replaced, NoPlayer, NoTrackers, NotValid, NoSkeleton, NoSequence, NoProfile, Busy } |
enum | FingerType { UnknownFinger, Regular, Thumb } |
enum | HandType { UnknownChirality, Left, Right } |
enum | GloveVersion { UnknownVersion, PrimeOne, PrimeTwo } |
enum | ProfileType { Hands, FullBody } |
enum | BodyMeasurements { PlayerHeight, SpineLength, NeckLength, UpperArmLength, LowerArmLength, ArmLength, ArmSpan, UpperLegLength, LowerLegLength, LegLength, HandLength, FootLength, HipWidth, ShoulderWidth, ShoulderHeight, HeadLength, Thickness, ArmRatio, LegRatio } |
enum | OffsetsToTracker { HeadTrackerToHead, HeadTrackerToTopOfHead, LeftHandTrackerToWrist, RightHandTrackerToWrist, LeftFootTrackerToAnkle, RightFootTrackerToAnkle, HipTrackerToHip, HipTrackerToLeftLeg, HipTrackerToRightLeg, LeftUpperArmTrackerToElbow, RightUpperArmTrackerToElbow, LeftUpperArmTrackerToShoulder, RightUpperArmTrackerToShoulder } |
enum | ExtraOffsetToTracker { ExtraOffsetToTracker_Unknown, ExtraOffsetToTracker_HeadForward, ExtraOffsetToTracker_HipForward, ExtraOffsetToTracker_HipHeight } |
enum | MeasurementUnit { Meters, Percentage } |
enum | MeasurementCategory { Misc, Generic, Arms, Legs, Body } |
enum | coor_axis_t { CoorAxisZneg, CoorAxisYneg, CoorAxisXneg, CoorAxisXpos, CoorAxisYpos, CoorAxisZpos } |
enum | TrackerType { Unknown, Head, Waist, LeftHand, RightHand, LeftFoot, RightFoot, LeftUpperArm, RightUpperArm, LeftUpperLeg, RightUpperLeg, Controller, Camera } |
enum | TrackingQuality { Untrackable, BadTracking, Trackable } |
Functions | |
rpc | UpdateForest (Hardware::DeviceForest) returns(Void) |
rpc | UpdateProfile (Profiles::Profile) returns(Void) |
rpc | CanAcceptPipelineData (Void) returns(google |
rpc | UpdateHermes (HermesUpdateArgs) returns(HermesUpdateResponse) |
rpc | GetDebugMode (Void) returns(RuntimeDebugBehaviourArgs) |
rpc | SetDebugMode (RuntimeDebugBehaviourArgs) returns(Void) |
rpc | Login (SessionArguments) returns(Session) |
rpc | Logout (google::protobuf::StringValue) returns(Void) |
rpc | Heartbeat (Session) returns(Session) |
rpc | GetFilterInventory (Void) returns(FilterInventory) |
rpc | GetActivePipeline (google::protobuf::StringValue) returns(Pipeline) |
rpc | CommitPipeline (PipelineCommitArgs) returns(Void) |
rpc | GetServiceRoute (google::protobuf::StringValue) returns(ServiceRoute) |
rpc | Rumble (RumbleArgs) returns(Void) |
*rpc | SetDonglePolygon (DonglePolygonArgs) returns(SetPolygonDongleResponse) |
rpc | AddSkeleton (Polygon::Skeleton) returns(CompleteMessage) |
rpc | RemoveSkeleton (Polygon::RemoveSkeletonArgs) returns(CompleteMessage) |
rpc | SetSkeletonSettings (Polygon::Retargeting::SettingsArgs) returns(CompleteMessage) |
rpc | SetSkeletonTarget (Polygon::SetTargetArgs) returns(Void) |
rpc | GetCompatibleVersion (Void) returns(Polygon |
rpc | AddTargetSkeleton (Polygon::TargetSkeleton) returns(CompleteMessage) |
rpc | RemoveTargetSkeleton (google::protobuf::StringValue) returns(CompleteMessage) |
rpc | UpdateTargetSkeleton (Polygon::TargetSkeleton) returns(Void) |
rpc | UpdateTrackers (TrackerData) returns(Void) |
rpc | GetConnectedTrackerList (google::protobuf::Int32Value) returns(TrackerList) |
rpc | IsUserUsingHMD (google::protobuf::Int32Value) returns(google |
rpc | AutoGroupTrackers (Void) returns(Void) |
rpc | AutoAssignTrackers (google::protobuf::Int32Value) returns(Void) |
rpc | ResetTrackerAssignment (google::protobuf::Int32Value) returns(Void) |
rpc | AssignTrackerToUser (AssignTrackerToUserArgs) returns(Void) |
rpc | AssignRoleToTracker (AssignRoleToTrackerArgs) returns(Void) |
rpc | ChangeUserForRole (ChangeUserForRoleArgs) returns(Void) |
rpc | SetTrackingSystem (google::protobuf::StringValue) returns(Void) |
rpc | GetTrackingSystems (Void) returns(TrackingSystemMessage) |
rpc | KeepLastPosition (google::protobuf::BoolValue) returns(Void) |
rpc | UseTimeout (google::protobuf::BoolValue) returns(Void) |
rpc | SetTimeout (google::protobuf::FloatValue) returns(Void) |
rpc | GetTrackerServiceSettings (Void) returns(TrackerServiceSettings) |
rpc | GetTrackerSystemsSettings (Void) returns(TrackerSystemCollection) |
rpc | SetTrackerSystemsSettings (TrackerSystemCollection) returns(Void) |
rpc | CalibrateHapticsModule (HapticCommandArgs) returns(Void) |
rpc | GetHapticsDataSocket (Void) returns(ServiceRoute) |
rpc | StartHapticsPairing (google::protobuf::UInt32Value) returns(Void) |
rpc | StopHapticsPairing (google::protobuf::UInt32Value) returns(Void) |
rpc | GetAdvertisingHapticsModules (google::protobuf::UInt32Value) returns(AdvertisingHapticsModules) |
rpc | PairHapticsModule (PairingArgs) returns(Void) |
rpc | TurnHapticsModuleOff (HapticCommandArgs) returns(Void) |
rpc | SetHapticsSequence (StoreHapticsSequenceCommandArgs) returns(Void) |
rpc | PlayHapticsSequence (PlayHapticsSequenceCommandArgs) returns(Void) |
rpc | DeleteHapticsSequence (DeleteHapticsSequenceCommandArgs) returns(Void) |
rpc | StartSequence (StartSequenceArg) returns(SequenceData) |
rpc | StopSequence (google::protobuf::Int32Value) returns(CompleteMessage) |
rpc | StartNextStep (google::protobuf::Int32Value) returns(CompleteMessage) |
rpc | UndoStep (google::protobuf::Int32Value) returns(CompleteMessage) |
rpc | GetSequenceState (google::protobuf::Int32Value) returns(SequenceStateValue) |
rpc | GetStepData (google::protobuf::Int32Value) returns(StepData) |
rpc | GetCalibrationProfile (google::protobuf::Int32Value) returns(CalibrationProfile) |
rpc | ApplyProfile (google::protobuf::Int32Value) returns(CompleteMessage) |
rpc | AddUser (Void) returns(User) |
rpc | RemoveUser (google::protobuf::Int32Value) returns(CompleteMessage) |
rpc | AssignHandToUser (UserHandArgs) returns(CompleteMessage) |
rpc | AssignProfileToUser (UserProfileArgs) returns(CompleteMessage) |
rpc | GetAllUsers (Void) returns(UserCollection) |
rpc | MoveUserUp (google::protobuf::Int32Value) returns(Void) |
rpc | MoveUserDown (google::protobuf::Int32Value) returns(Void) |
rpc | ConvertUserIDToUserIndex (google::protobuf::Int32Value) returns(google |
rpc | GetBandScan (BandScanArgs) returns(BandScanInfo) |
rpc | SetChannel (ChannelSelectionArgs) returns(google |
rpc | SetPersistentDongleChannels (google::protobuf::BoolValue) returns(Void) |
rpc | AreDongleChannelsPersistent (Void) returns(google |
rpc | LoadPlaybackParameters (Playback::PlaybackParameters) returns(google |
rpc | UnloadPlayback (Void) returns(google |
rpc | FeedPlaybackFrame (Playback::PlaybackFrame) returns(google |
rpc | SetSettingIgnoreThumbIMU (google::protobuf::BoolValue) returns(Void) |
rpc | GetSettingIgnoreThumbIMU (Void) returns(google |
rpc | SetSettingIgnoreNonThumbFingerIMU (google::protobuf::BoolValue) returns(Void) |
rpc | GetSettingIgnoreNonThumbFingerIMU (Void) returns(google |
Variables | |
import google protobuf timestamp | proto |
service | Hermes |
service | HapticsService |
service | DeviceForest |
service | Apollo |
option optimize_for = LITE_RUNTIME;
Specifies how the 3d mesh model is setup at the client side (Unity/Unreal/etc) for the BasisConversionFilter. ExternalMeshNodeConfig defines the coordinate frame in a node/bone of the mesh. We assume that hand mesh bones are oriented in such a way that one axis points towards the tips of the fingers, one axis points out of the hand perpendicular to the palmar plane or the plane in which the finger nails would lie (in case of the thumb), and one axis perpendicular to the other two, usually designating the axis of rotation of the finger joints. For the world frame, forward = from viewer, right = right of viewer Some engines flip a coordinate frame axis to convert a right-handed coordinate frame to a left-handed coordinate frame This negation axis should also be specified for your application The bone that you try to describe has its x-Axis pointing towards the finger tip, its y-Axis pointing towards the palm and rotates around the z-Axis, which points left. In this case, upDirection = CoorAxisY_NEG (the negation of the y-Axis points to the back of the hand), forwardDirection = CoorAxisX_POS, and rightDirection = CoorAxisZ_NEG (the negation of the z-Axis points right according to the above definition)
Enumerator | |
---|---|
CoorAxisZneg | proto forces enums to begin at 0 https://developers.google.com/protocol-buffers/docs/proto3#enum |
Enums.
Shared mode for firmware & application updates.
rpc Hermes::Protocol::AddSkeleton | ( | Polygon::Skeleton | ) |
SetLicense (LicenseArgs ) returns SetLicenseDongleResponse rpc Pair( PairingArgs ) returns ( Void ) {}; rpc Unpair( PairingArgs ) returns ( Void ) {}; rpc Bootloader( BootloaderArgs ) returns ( Void ) {}; rpc CalibrationSetMin( CalibrationArgs ) returns ( google::protobuf::BoolValue ) {}; rpc CalibrationSetMax( CalibrationArgs ) returns ( google::protobuf::BoolValue ) {}; rpc CalibrationStore( CalibrationArgs ) returns ( google::protobuf::BoolValue ) {}; rpc CalibrationBegin ( CalibrationArgs ) returns ( google::protobuf::BoolValue ) {}; rpc CalibrationEnd ( CalibrationArgs ) returns ( google::protobuf::BoolValue ) {}; rpc CalibrationDataGet ( CalibrationArgs ) returns ( Embedded::CalibrationData ) {}; rpc CalibrationDataSet ( CalibrationArgs ) returns ( google::protobuf::BoolValue ) {}; rpc UpdateDongleFirmware( DongleUpdateArgs ) returns ( DongleUpdateResponse ) {}; /** Polygon
rpc Hermes::Protocol::AddUser | ( | Void | ) |
Users
rpc Hermes::Protocol::CalibrateHapticsModule | ( | HapticCommandArgs | ) |
Haptics
rpc Hermes::Protocol::CommitPipeline | ( | PipelineCommitArgs | ) |
Commit a new pipeline, setting it as the currently active pipeline
rpc Hermes::Protocol::GetActivePipeline | ( | google::protobuf::StringValue | ) |
Get the currently active filter pipeline
rpc Hermes::Protocol::GetBandScan | ( | BandScanArgs | ) |
channels
rpc Hermes::Protocol::GetFilterInventory | ( | Void | ) |
/ Pipeline related client api. Get Inventory of currently available filters
rpc Hermes::Protocol::GetServiceRoute | ( | google::protobuf::StringValue | ) |
Route api for services.
rpc Hermes::Protocol::GetTrackerSystemsSettings | ( | Void | ) |
TrackerSystem Settings
rpc Hermes::Protocol::Heartbeat | ( | Session | ) |
Send a heartbeat to Hermes. If a session misses too many of these in a row, Hermes will assume that the session is dead.
rpc Hermes::Protocol::LoadPlaybackParameters | ( | Playback::PlaybackParameters | ) |
Recording Playback
rpc Hermes::Protocol::Login | ( | SessionArguments | ) |
/ Client Session API Log in to a Hermes session
rpc Hermes::Protocol::Logout | ( | google::protobuf::StringValue | ) |
Log out of a Hermes session
rpc Hermes::Protocol::Rumble | ( | RumbleArgs | ) |
These are all the ones that reach the devices.
rpc Hermes::Protocol::SetSettingIgnoreThumbIMU | ( | google::protobuf::BoolValue | ) |
Settings
rpc Hermes::Protocol::StartSequence | ( | StartSequenceArg | ) |
Calibration
rpc Hermes::Protocol::UpdateForest | ( | Hardware::DeviceForest | ) |
Called by services to update Hermes with new device landscape (connected devices) data.
rpc Hermes::Protocol::UpdateHermes | ( | HermesUpdateArgs | ) |
Check for, or perform, a maintenance update on Hermes.
rpc Hermes::Protocol::UpdateProfile | ( | Profiles::Profile | ) |
Called by services to update Hermes with new profile data.
rpc Hermes::Protocol::UpdateTrackers | ( | TrackerData | ) |
Trackers
service Hermes::Protocol::Apollo |
These are things that are called FROM the coordinator above (it feels icky, I know), into the Apollo service, which will then call Apollo 2019 proper. Client.Rumble() -> CoordintorApi -> ApolloApi -> Apollo2019 -> USB.
service Hermes::Protocol::DeviceForest |
These are things that are called FROM the coordinator above (it feels icky, I know), into the DeviceForest service, which will then propagate it to the usb device. Client.Rumble() -> CoordintorApi -> DeviceForestApi -> DeviceForest -> USB. todo we gotta remove this (and so much more) since we don't internally use the rpc calls anymore
service Hermes::Protocol::HapticsService |
service Hermes::Protocol::Hermes |
Hermes service api.
import protodefinitions Manus Gloves Hermes::Protocol::proto |
import "protodefinitions/Common.proto";