BP_Counter + ArchSelect Manager
This commit is contained in:
@ -87,6 +87,6 @@ void UDTFluxCountDownComponent::CountUpTimerFn()
|
||||
void UDTFluxCountDownComponent::WaitingTimerFn()
|
||||
{
|
||||
|
||||
UE_LOG(LogDTFluxAPI, Log, TEXT("WAITING"));
|
||||
// UE_LOG(LogDTFluxAPI, Log, TEXT("WAITING"));
|
||||
}
|
||||
|
||||
|
||||
@ -77,13 +77,13 @@ void UDTFluxSubsystem::LoadConfig(const UDTFluxProjectSettings* Settings)
|
||||
SubSettings.WebsocketPort = Settings->WebsocketServerPort;
|
||||
SubSettings.WebsocketAddress = Settings->WebsocketServerAddress;
|
||||
SubSettings.ProxyAddress = Settings->ProxyAddress;
|
||||
SubSettings.ProxyPort = Settings->ProxyPort;
|
||||
TMap<FString,FString> SettingsEndpoints;
|
||||
SettingsEndpoints.Add(FString("race-data"), Settings->ProxyRaceDataEndpoint);
|
||||
SettingsEndpoints.Add(FString("contest-ranking"), Settings->ProxyRankingEndpoint);
|
||||
SettingsEndpoints.Add(FString("stage-ranking"), Settings->ProxyRankingEndpoint);
|
||||
SettingsEndpoints.Add(FString("team-list"), Settings->ProxyTeamsEndpoint);
|
||||
SubSettings.ProxyEndpoints = SettingsEndpoints;
|
||||
// SubSettings.ProxyPort = Settings->ProxyPort;
|
||||
// TMap<FString,FString> SettingsEndpoints;
|
||||
// SettingsEndpoints.Add(FString("race-data"), Settings->ProxyRaceDataEndpoint);
|
||||
// SettingsEndpoints.Add(FString("contest-ranking"), Settings->ProxyRankingEndpoint);
|
||||
// SettingsEndpoints.Add(FString("stage-ranking"), Settings->ProxyRankingEndpoint);
|
||||
// SettingsEndpoints.Add(FString("team-list"), Settings->ProxyTeamsEndpoint);
|
||||
// SubSettings.ProxyEndpoints = SettingsEndpoints;
|
||||
}
|
||||
|
||||
// Get project Settings
|
||||
@ -359,6 +359,22 @@ void UDTFluxSubsystem::WsReceivedMessage( const FString& MessageReceived)
|
||||
Event.WsResponseType = StatusUpdate;
|
||||
|
||||
}
|
||||
if(Type.Contains("broadcast-message"))
|
||||
{
|
||||
FDTFluxArchSelectResponse ArchSelectResponse;
|
||||
if( !FJsonObjectConverter::JsonObjectToUStruct
|
||||
<FDTFluxArchSelectResponse>(Json.ToSharedRef(), &ArchSelectResponse))
|
||||
{
|
||||
UE_LOG(LogDTFluxAPI, Error, TEXT("Message %s is not a valid broadcast-message data"), *MessageReceived)
|
||||
}
|
||||
for(const auto& ArchSelect : ArchSelectResponse.Datas)
|
||||
{
|
||||
ProcessArchSelect(ArchSelect);
|
||||
}
|
||||
Event.RawData = "ArchSelect";
|
||||
Event.WsResponseType = ArchSelect;
|
||||
UE_LOG(LogDTFluxAPI, Log, TEXT("Received broadcast-message data"));
|
||||
}
|
||||
}
|
||||
OnWsEvent.Broadcast(Event);
|
||||
}
|
||||
@ -515,3 +531,8 @@ void UDTFluxSubsystem::ProcessSplitSensor(const FDTFluxSplitSensorResponse& Spli
|
||||
|
||||
}
|
||||
|
||||
void UDTFluxSubsystem::ProcessArchSelect(FDTFluxArchSelectResponseItem ArchSelectResponse)
|
||||
{
|
||||
OnArchSelect.Broadcast(ArchSelectResponse.ContestId, ArchSelectResponse.StageId);
|
||||
}
|
||||
|
||||
|
||||
@ -288,5 +288,27 @@ struct DTFLUXAPI_API FDTFluxTeamUpdateResponse
|
||||
TArray<FDTFluxTeamListItemResponse> Datas;
|
||||
|
||||
};
|
||||
USTRUCT()
|
||||
struct DTFLUXAPI_API FDTFluxArchSelectResponseItem
|
||||
{
|
||||
GENERATED_BODY()
|
||||
UPROPERTY()
|
||||
FString Type = "arch-select";
|
||||
UPROPERTY()
|
||||
int ContestId;
|
||||
UPROPERTY()
|
||||
int StageId;
|
||||
};
|
||||
|
||||
USTRUCT()
|
||||
struct DTFLUXAPI_API FDTFluxArchSelectResponse
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY()
|
||||
FString Type = "arch-select";
|
||||
UPROPERTY()
|
||||
TArray<FDTFluxArchSelectResponseItem> Datas;
|
||||
|
||||
|
||||
};
|
||||
@ -22,48 +22,48 @@ public:
|
||||
|
||||
OnDTFluxProjectSettingsModified OnProjectSettingsModified;
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
int RaceResultPort = 80;
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString RaceResultUrl = "http://localhost";
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString RaceResultSessionID;
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
bool bAccessIsLocal = true;
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString StartListAccessToken;
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString GeneralClassificationAccessToken;
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString LiveStageResultsAccessToken ;
|
||||
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// int RaceResultPort = 80;
|
||||
//
|
||||
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// FString RaceResultUrl = "http://localhost";
|
||||
//
|
||||
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// FString RaceResultSessionID;
|
||||
//
|
||||
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// bool bAccessIsLocal = true;
|
||||
//
|
||||
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// FString StartListAccessToken;
|
||||
//
|
||||
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// FString GeneralClassificationAccessToken;
|
||||
//
|
||||
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// FString LiveStageResultsAccessToken ;
|
||||
// Proxy
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
int WebsocketServerPort = 3000;
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString WebsocketServerAddress = "ws://127.0.0.1";
|
||||
FString WebsocketServerAddress = "ws://127.0.0.1/ws";
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString ProxyAddress = "http://localhost";
|
||||
|
||||
UPROPERTY(Category="DTFlux|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
int ProxyPort = 8000;
|
||||
|
||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString ProxyRootPath = "/endpoints";
|
||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString ProxyRaceDataEndpoint;
|
||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString ProxyRankingEndpoint;
|
||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
FString ProxyTeamsEndpoint;
|
||||
// UPROPERTY(Category="DTFlux|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// int ProxyPort = 8000;
|
||||
//
|
||||
// UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// FString ProxyRootPath = "/endpoints";
|
||||
// UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// FString ProxyRaceDataEndpoint;
|
||||
// UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// FString ProxyRankingEndpoint;
|
||||
// UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||
// FString ProxyTeamsEndpoint;
|
||||
|
||||
|
||||
//Server Config ****NOT USED****
|
||||
|
||||
@ -36,6 +36,8 @@ DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnContestBegin, int, ContestId);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnStageBegin, int, ContestId, int, StageId);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnTimesUp, int, ContestId, int, StageId);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnRestTimeBegin, int, ContestId, int, StageId);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnArchSelect, int, ContestId, int, StageId);
|
||||
|
||||
/**
|
||||
* DTFlux API Subsystem
|
||||
*
|
||||
@ -122,6 +124,8 @@ public:
|
||||
FOnRestTimeBegin FOnRestTimeBegin;
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Events")
|
||||
FOnRaceDataReceived OnRaceDataReceived;
|
||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Events")
|
||||
FOnArchSelect OnArchSelect;
|
||||
|
||||
// UPROPERTY(BlueprintReadWrite, Category="DTFlux|Subsystem|Websocket")
|
||||
// int ReconnectTimeout = 60; //seconds
|
||||
@ -168,6 +172,8 @@ public:
|
||||
UFUNCTION()
|
||||
void ProcessSplitSensor(const FDTFluxSplitSensorResponse& SplitSensorResponse);
|
||||
|
||||
UFUNCTION()
|
||||
void ProcessArchSelect(FDTFluxArchSelectResponseItem ArchSelectResponse);
|
||||
|
||||
UFUNCTION()
|
||||
void WsConnected();
|
||||
|
||||
@ -52,6 +52,7 @@ enum EDTFluxResponseType: uint8
|
||||
WsConnected = 9 UMETA(DisplayName="WsConnected"),
|
||||
WsClosed = 10 UMETA(DisplayName="WsClosed"),
|
||||
WsError = 11 UMETA(DisplayName="WsError"),
|
||||
ArchSelect = 12 UMETA(DisplayName="ArchSelect"),
|
||||
};
|
||||
|
||||
UENUM(BlueprintType, Category="DTFlux|Subsystem")
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "CrossCompilerCommon.h"
|
||||
#include "DTFluxModel/DTFluxModel.h"
|
||||
#include "DTFluxSubsystem/DTFluxSubsystem.h"
|
||||
#include "UObject/Object.h"
|
||||
@ -119,4 +120,5 @@ public:
|
||||
UFUNCTION(BlueprintCallable, Category="DTFlux|Model|Helpers")
|
||||
static EDTFluxStageStatusType GetStatusType(const int ContestID, const int StageID, UDTFluxDataStorage* DataStorage);
|
||||
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user