Skip to main content

AAR51SDK

UCLASS · AActor singleton
UCLASS()
class AR51SDK_API AAR51SDK : public AActor, public ISingleton<AAR51SDK>

Inherits: AActor (Unreal Engine) · ISingleton<AAR51SDK>

The connection entry-point and root actor of the SDK. Place one in the level and configure the OMS connection in the Details panel. On BeginPlay it stands up the local gRPC service surface (Anchor, Camera, Draw, Engine, Game, HandSkeleton, Render) on ServicesPort, then either discovers OMS on DiscoveryPort or connects directly to OmsIPAddress:OmsRegistrationPort, and registers the device. On end-of-play it shuts the services down and clears tracked characters, anchors, and hands. Acts as a singleton (one instance per world).

The connection model is inverted relative to a typical client SDK: there is no Blueprint Connect() call. The Unreal app runs the gRPC servers; OMS/CVS call into them. Connection is automatic at BeginPlay — you control it entirely through the properties below.

How-to

This page is reference (facts only). For the connection workflow, see the Connection & services guide.

Properties

All EditAnywhere, BlueprintReadWrite, Category="General".

PropertyTypeDefaultDescription
Discovery & registration
VersionFString"1.0.0.0"SDK/app version reported to OMS
DiscoveryPortint1500UDP discovery port used to locate the OMS
OmsIPAddressFString""if non-empty, connect directly to this OMS IP and skip discovery
OmsRegistrationPortFString"1501"OMS registration endpoint port
ServiceLocalIPAddressFString""overrides the auto-detected local IP advertised to OMS
ServicesPortint-1port the local device services (gRPC) listen on. -1 = pick a random free port; a busy explicit value falls back to the nearest free port
IsDiscoveryVerboseboolfalseverbose logging of the discovery handshake
IsDGSboolfalseDedicated Game Server mode flag (passed to registration)
PlatformEPlatformTypesPCdeclared platform/device class reported to OMS
OverrideDeviceIdFString""force a specific device id instead of the auto-generated one
Debug
IsOnScreenDebugMessageboolfalseroute SDK debug messages to the on-screen display

Method summary

Static

MethodReturns
InstanceAAR51SDK*C++ only

Instance

MethodReturns
TickvoidC++ only
GetRegistrationTSharedPtr<RegistrationClient>C++ only
note

There is no Blueprint Connect() method on this actor. Connection is automatic at BeginPlay; configure it through the properties above. None of this actor's methods are UFUNCTION-exposed — they are C++ only.

Events

This actor declares no BlueprintAssignable events.

⚠️ needs confirmation

GetRegistration() is the only programmatic hook into connection state, and it returns an internal/transport type. There is no documented Blueprint "is connected" property or connection-changed event on this actor — poll or wrap registration state yourself if you need it.

Method details

Instance

methodstaticC++ only
static AAR51SDK* Instance(); // from ISingleton<AAR51SDK>

The single live SDK actor — the usual way to reach the connection root from anywhere.

ReturnsAAR51SDK*the singleton actor, or nullptr if none is spawned or it was garbage-collected
Exampleinferred
// Read the configured platform from the in-level SDK actor
if (AAR51SDK* SDK = AAR51SDK::Instance())
{
const EPlatformTypes Platform = SDK->Platform;
UE_LOG(LogTemp, Log, TEXT("AR 51 SDK platform = %d"), (int32)Platform);
}

Tick

methodC++ only
virtual void Tick(float DeltaTime) override;

Per-frame pump that drives the SDK's marshalling-to-game-thread queue. Called by the engine; you do not invoke it directly.

Parameters
DeltaTimefloatseconds since the previous frame

GetRegistration

methodC++ only
TSharedPtr<RegistrationClient> GetRegistration();

Returns the live registration client handle — the object managing the OMS handshake and heartbeat.

ReturnsTSharedPtr<RegistrationClient>the registration client handle
⚠️ unverified

RegistrationClient is an internal/transport type, not documented for public use. Treat the return value as an opaque handle; do not depend on its members.

See also

Was this page helpful?