You've already forked LuckyWorld
Compare commits
1 Commits
main
...
Noah_Paylo
Author | SHA1 | Date | |
---|---|---|---|
b59e320735 |
@ -130,9 +130,9 @@ void ULuckyDataTransferSubsystem::SendMessage(const FString& Message)
|
|||||||
UE_LOG(LogTemp, Warning, TEXT("WebSocket outgoing message failed"));
|
UE_LOG(LogTemp, Warning, TEXT("WebSocket outgoing message failed"));
|
||||||
}
|
}
|
||||||
|
|
||||||
FPayload ULuckyDataTransferSubsystem::InterpretData(const FString& Message)
|
FObservationPayload ULuckyDataTransferSubsystem::InterpretData(const FString& Message)
|
||||||
{
|
{
|
||||||
FPayload Payload = FPayload();
|
FObservationPayload Payload = FObservationPayload();
|
||||||
|
|
||||||
if (!Message.IsEmpty())
|
if (!Message.IsEmpty())
|
||||||
{
|
{
|
||||||
@ -141,13 +141,33 @@ FPayload ULuckyDataTransferSubsystem::InterpretData(const FString& Message)
|
|||||||
|
|
||||||
if (FJsonSerializer::Deserialize(Reader, JsonObj) && JsonObj.IsValid())
|
if (FJsonSerializer::Deserialize(Reader, JsonObj) && JsonObj.IsValid())
|
||||||
{
|
{
|
||||||
for (auto& Elem : JsonObj->Values)
|
Payload.type = JsonObj->GetStringField("type");
|
||||||
{
|
Payload.request_id = JsonObj->GetStringField("request_id");
|
||||||
FCommand Command = FCommand();
|
Payload.message = JsonObj->GetStringField("message");
|
||||||
Command.Key = FString(Elem.Key);
|
Payload.timeStamp = JsonObj->GetStringField("timeStamp");
|
||||||
Command.Value = Elem.Value->AsNumber();
|
|
||||||
|
|
||||||
Payload.Commands.Add(Command);
|
const TArray<TSharedPtr<FJsonValue>>* StateArray;
|
||||||
|
|
||||||
|
if (JsonObj->TryGetArrayField("ObservationState", StateArray))
|
||||||
|
{
|
||||||
|
for (const TSharedPtr<FJsonValue>& ObservationValue : *StateArray)
|
||||||
|
{
|
||||||
|
TSharedPtr<FJsonObject> ObservationObject = ObservationValue->AsObject();
|
||||||
|
if (ObservationObject.IsValid())
|
||||||
|
{
|
||||||
|
TMap<FString, float> State = TMap<FString, float>();
|
||||||
|
|
||||||
|
for (const TPair<FString, TSharedPtr<FJsonValue>>& Pair : ObservationObject->Values)
|
||||||
|
{
|
||||||
|
FString Key = Pair.Key;
|
||||||
|
float Value = Pair.Value->AsNumber();
|
||||||
|
|
||||||
|
State.Add(Key, Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
Payload.ObservationState = State;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -161,7 +181,7 @@ void IncomingMessage(const FString& Message)
|
|||||||
UE_LOG(LogTemp, Warning, TEXT("Incoming message: %s"), *outMessage);
|
UE_LOG(LogTemp, Warning, TEXT("Incoming message: %s"), *outMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ULuckyDataTransferSubsystem::CommandReady(const FPayload& Payload)
|
void ULuckyDataTransferSubsystem::CommandReady(const FObservationPayload& Payload)
|
||||||
{
|
{
|
||||||
if (OnCommandReady.IsBound())
|
if (OnCommandReady.IsBound())
|
||||||
{
|
{
|
||||||
|
@ -38,7 +38,7 @@ public:
|
|||||||
int32 Index = 0;
|
int32 Index = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FCommandReady, const FPayload&, Payload);
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FCommandReady, const FObservationPayload&, Payload);
|
||||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSocketReady, bool, bSuccessful);
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FSocketReady, bool, bSuccessful);
|
||||||
|
|
||||||
UCLASS()
|
UCLASS()
|
||||||
@ -61,7 +61,7 @@ public:
|
|||||||
|
|
||||||
void Internal_OpenWebsocket(const FString& URL, const FString& Protocol);
|
void Internal_OpenWebsocket(const FString& URL, const FString& Protocol);
|
||||||
|
|
||||||
FPayload InterpretData(const FString& Message);
|
FObservationPayload InterpretData(const FString& Message);
|
||||||
|
|
||||||
UPROPERTY(BlueprintAssignable)
|
UPROPERTY(BlueprintAssignable)
|
||||||
FCommandReady OnCommandReady;
|
FCommandReady OnCommandReady;
|
||||||
@ -93,7 +93,7 @@ public:
|
|||||||
void SendMessage(const FString& Message);
|
void SendMessage(const FString& Message);
|
||||||
|
|
||||||
UFUNCTION()
|
UFUNCTION()
|
||||||
void CommandReady(const FPayload& Payload);
|
void CommandReady(const FObservationPayload& Payload);
|
||||||
|
|
||||||
//---Observations (Sent to server from Unreal)--------------//
|
//---Observations (Sent to server from Unreal)--------------//
|
||||||
//Feature Data declarations
|
//Feature Data declarations
|
||||||
|
Reference in New Issue
Block a user