BP_Counter + ArchSelect Manager
This commit is contained in:
@ -87,6 +87,6 @@ void UDTFluxCountDownComponent::CountUpTimerFn()
|
|||||||
void UDTFluxCountDownComponent::WaitingTimerFn()
|
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.WebsocketPort = Settings->WebsocketServerPort;
|
||||||
SubSettings.WebsocketAddress = Settings->WebsocketServerAddress;
|
SubSettings.WebsocketAddress = Settings->WebsocketServerAddress;
|
||||||
SubSettings.ProxyAddress = Settings->ProxyAddress;
|
SubSettings.ProxyAddress = Settings->ProxyAddress;
|
||||||
SubSettings.ProxyPort = Settings->ProxyPort;
|
// SubSettings.ProxyPort = Settings->ProxyPort;
|
||||||
TMap<FString,FString> SettingsEndpoints;
|
// TMap<FString,FString> SettingsEndpoints;
|
||||||
SettingsEndpoints.Add(FString("race-data"), Settings->ProxyRaceDataEndpoint);
|
// SettingsEndpoints.Add(FString("race-data"), Settings->ProxyRaceDataEndpoint);
|
||||||
SettingsEndpoints.Add(FString("contest-ranking"), Settings->ProxyRankingEndpoint);
|
// SettingsEndpoints.Add(FString("contest-ranking"), Settings->ProxyRankingEndpoint);
|
||||||
SettingsEndpoints.Add(FString("stage-ranking"), Settings->ProxyRankingEndpoint);
|
// SettingsEndpoints.Add(FString("stage-ranking"), Settings->ProxyRankingEndpoint);
|
||||||
SettingsEndpoints.Add(FString("team-list"), Settings->ProxyTeamsEndpoint);
|
// SettingsEndpoints.Add(FString("team-list"), Settings->ProxyTeamsEndpoint);
|
||||||
SubSettings.ProxyEndpoints = SettingsEndpoints;
|
// SubSettings.ProxyEndpoints = SettingsEndpoints;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get project Settings
|
// Get project Settings
|
||||||
@ -359,6 +359,22 @@ void UDTFluxSubsystem::WsReceivedMessage( const FString& MessageReceived)
|
|||||||
Event.WsResponseType = StatusUpdate;
|
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);
|
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;
|
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;
|
OnDTFluxProjectSettingsModified OnProjectSettingsModified;
|
||||||
|
|
||||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
int RaceResultPort = 80;
|
// int RaceResultPort = 80;
|
||||||
|
//
|
||||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
FString RaceResultUrl = "http://localhost";
|
// FString RaceResultUrl = "http://localhost";
|
||||||
|
//
|
||||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
FString RaceResultSessionID;
|
// FString RaceResultSessionID;
|
||||||
|
//
|
||||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
bool bAccessIsLocal = true;
|
// bool bAccessIsLocal = true;
|
||||||
|
//
|
||||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
FString StartListAccessToken;
|
// FString StartListAccessToken;
|
||||||
|
//
|
||||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
FString GeneralClassificationAccessToken;
|
// FString GeneralClassificationAccessToken;
|
||||||
|
//
|
||||||
UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
FString LiveStageResultsAccessToken ;
|
// FString LiveStageResultsAccessToken ;
|
||||||
// Proxy
|
// Proxy
|
||||||
|
|
||||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
int WebsocketServerPort = 3000;
|
int WebsocketServerPort = 3000;
|
||||||
|
|
||||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
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)
|
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
FString ProxyAddress = "http://localhost";
|
FString ProxyAddress = "http://localhost";
|
||||||
|
|
||||||
UPROPERTY(Category="DTFlux|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
int ProxyPort = 8000;
|
// int ProxyPort = 8000;
|
||||||
|
//
|
||||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
FString ProxyRootPath = "/endpoints";
|
// FString ProxyRootPath = "/endpoints";
|
||||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
FString ProxyRaceDataEndpoint;
|
// FString ProxyRaceDataEndpoint;
|
||||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
FString ProxyRankingEndpoint;
|
// FString ProxyRankingEndpoint;
|
||||||
UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
// UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly)
|
||||||
FString ProxyTeamsEndpoint;
|
// FString ProxyTeamsEndpoint;
|
||||||
|
|
||||||
|
|
||||||
//Server Config ****NOT USED****
|
//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(FOnStageBegin, int, ContestId, int, StageId);
|
||||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnTimesUp, 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(FOnRestTimeBegin, int, ContestId, int, StageId);
|
||||||
|
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnArchSelect, int, ContestId, int, StageId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DTFlux API Subsystem
|
* DTFlux API Subsystem
|
||||||
*
|
*
|
||||||
@ -122,6 +124,8 @@ public:
|
|||||||
FOnRestTimeBegin FOnRestTimeBegin;
|
FOnRestTimeBegin FOnRestTimeBegin;
|
||||||
UPROPERTY(BlueprintAssignable, Category="DTFlux|Events")
|
UPROPERTY(BlueprintAssignable, Category="DTFlux|Events")
|
||||||
FOnRaceDataReceived OnRaceDataReceived;
|
FOnRaceDataReceived OnRaceDataReceived;
|
||||||
|
UPROPERTY(BlueprintAssignable, Category="DTFlux|Events")
|
||||||
|
FOnArchSelect OnArchSelect;
|
||||||
|
|
||||||
// UPROPERTY(BlueprintReadWrite, Category="DTFlux|Subsystem|Websocket")
|
// UPROPERTY(BlueprintReadWrite, Category="DTFlux|Subsystem|Websocket")
|
||||||
// int ReconnectTimeout = 60; //seconds
|
// int ReconnectTimeout = 60; //seconds
|
||||||
@ -168,6 +172,8 @@ public:
|
|||||||
UFUNCTION()
|
UFUNCTION()
|
||||||
void ProcessSplitSensor(const FDTFluxSplitSensorResponse& SplitSensorResponse);
|
void ProcessSplitSensor(const FDTFluxSplitSensorResponse& SplitSensorResponse);
|
||||||
|
|
||||||
|
UFUNCTION()
|
||||||
|
void ProcessArchSelect(FDTFluxArchSelectResponseItem ArchSelectResponse);
|
||||||
|
|
||||||
UFUNCTION()
|
UFUNCTION()
|
||||||
void WsConnected();
|
void WsConnected();
|
||||||
|
|||||||
@ -52,6 +52,7 @@ enum EDTFluxResponseType: uint8
|
|||||||
WsConnected = 9 UMETA(DisplayName="WsConnected"),
|
WsConnected = 9 UMETA(DisplayName="WsConnected"),
|
||||||
WsClosed = 10 UMETA(DisplayName="WsClosed"),
|
WsClosed = 10 UMETA(DisplayName="WsClosed"),
|
||||||
WsError = 11 UMETA(DisplayName="WsError"),
|
WsError = 11 UMETA(DisplayName="WsError"),
|
||||||
|
ArchSelect = 12 UMETA(DisplayName="ArchSelect"),
|
||||||
};
|
};
|
||||||
|
|
||||||
UENUM(BlueprintType, Category="DTFlux|Subsystem")
|
UENUM(BlueprintType, Category="DTFlux|Subsystem")
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "CoreMinimal.h"
|
#include "CoreMinimal.h"
|
||||||
|
#include "CrossCompilerCommon.h"
|
||||||
#include "DTFluxModel/DTFluxModel.h"
|
#include "DTFluxModel/DTFluxModel.h"
|
||||||
#include "DTFluxSubsystem/DTFluxSubsystem.h"
|
#include "DTFluxSubsystem/DTFluxSubsystem.h"
|
||||||
#include "UObject/Object.h"
|
#include "UObject/Object.h"
|
||||||
@ -119,4 +120,5 @@ public:
|
|||||||
UFUNCTION(BlueprintCallable, Category="DTFlux|Model|Helpers")
|
UFUNCTION(BlueprintCallable, Category="DTFlux|Model|Helpers")
|
||||||
static EDTFluxStageStatusType GetStatusType(const int ContestID, const int StageID, UDTFluxDataStorage* DataStorage);
|
static EDTFluxStageStatusType GetStatusType(const int ContestID, const int StageID, UDTFluxDataStorage* DataStorage);
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user