MCPcopy Create free account
hub / github.com/URLab-Sim/UnrealRoboticsLab / HandleSetMode

Method HandleSetMode

Source/URLab/Private/Bridge/RpcDispatcher.cpp:1897–1925  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1895}
1896
1897TSharedPtr<FJsonObject> FURLabRpcDispatcher::HandleSetMode(const TSharedPtr<FJsonObject>& Req)
1898{
1899 AAMjManager* Mgr = OwnerMgr.Get();
1900 if (!Mgr)
1901 return MakeError(TEXT("not_ready"), TEXT("Manager missing"));
1902
1903 if (Mgr->StepMode != EStepMode::Auto)
1904 {
1905 return MakeError(TEXT("mode_locked_by_server"),
1906 FString::Printf(TEXT("Project pinned StepMode to %s"), *StepModeToString(Mgr->StepMode)));
1907 }
1908
1909 FString ModeStr;
1910 if (!Req->TryGetStringField(TEXT("mode"), ModeStr))
1911 return MakeError(TEXT("missing_field"), TEXT("set_mode requires 'mode'"));
1912
1913 EStepMode NewMode;
1914 if (!StepModeFromString(ModeStr, NewMode))
1915 return MakeError(TEXT("bad_mode"), FString::Printf(TEXT("Unknown mode '%s'"), *ModeStr));
1916
1917 EStepMode Prev = ActiveStepMode;
1918 SetActiveStepMode(NewMode);
1919
1920 TSharedPtr<FJsonObject> Reply = MakeShared<FJsonObject>();
1921 Reply->SetStringField(TEXT("op"), TEXT("set_mode_ok"));
1922 Reply->SetStringField(TEXT("previous_mode"), StepModeToString(Prev));
1923 Reply->SetStringField(TEXT("current_mode"), StepModeToString(ActiveStepMode));
1924 return Reply;
1925}
1926
1927void FURLabRpcDispatcher::SetActiveStepMode(EStepMode NewMode)
1928{

Callers

nothing calls this directly

Calls 3

MakeErrorFunction · 0.85
StepModeToStringFunction · 0.85
StepModeFromStringFunction · 0.85

Tested by

no test coverage detected