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"));
|
||||
}
|
||||
|
||||
FPayload ULuckyDataTransferSubsystem::InterpretData(const FString& Message)
|
||||
FObservationPayload ULuckyDataTransferSubsystem::InterpretData(const FString& Message)
|
||||
{
|
||||
FPayload Payload = FPayload();
|
||||
FObservationPayload Payload = FObservationPayload();
|
||||
|
||||
if (!Message.IsEmpty())
|
||||
{
|
||||
@ -141,13 +141,33 @@ FPayload ULuckyDataTransferSubsystem::InterpretData(const FString& Message)
|
||||
|
||||
if (FJsonSerializer::Deserialize(Reader, JsonObj) && JsonObj.IsValid())
|
||||
{
|
||||
for (auto& Elem : JsonObj->Values)
|
||||
{
|
||||
FCommand Command = FCommand();
|
||||
Command.Key = FString(Elem.Key);
|
||||
Command.Value = Elem.Value->AsNumber();
|
||||
Payload.type = JsonObj->GetStringField("type");
|
||||
Payload.request_id = JsonObj->GetStringField("request_id");
|
||||
Payload.message = JsonObj->GetStringField("message");
|
||||
Payload.timeStamp = JsonObj->GetStringField("timeStamp");
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
void ULuckyDataTransferSubsystem::CommandReady(const FPayload& Payload)
|
||||
void ULuckyDataTransferSubsystem::CommandReady(const FObservationPayload& Payload)
|
||||
{
|
||||
if (OnCommandReady.IsBound())
|
||||
{
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
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);
|
||||
|
||||
UCLASS()
|
||||
@ -61,7 +61,7 @@ public:
|
||||
|
||||
void Internal_OpenWebsocket(const FString& URL, const FString& Protocol);
|
||||
|
||||
FPayload InterpretData(const FString& Message);
|
||||
FObservationPayload InterpretData(const FString& Message);
|
||||
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FCommandReady OnCommandReady;
|
||||
@ -93,7 +93,7 @@ public:
|
||||
void SendMessage(const FString& Message);
|
||||
|
||||
UFUNCTION()
|
||||
void CommandReady(const FPayload& Payload);
|
||||
void CommandReady(const FObservationPayload& Payload);
|
||||
|
||||
//---Observations (Sent to server from Unreal)--------------//
|
||||
//Feature Data declarations
|
||||
|
Reference in New Issue
Block a user