diff --git a/Binaries/Win64/MasharovDevEditor.target b/Binaries/Win64/MasharovDevEditor.target index 90fd89753..2fe7c2449 100644 --- a/Binaries/Win64/MasharovDevEditor.target +++ b/Binaries/Win64/MasharovDevEditor.target @@ -117,10 +117,6 @@ "Path": "$(EngineDir)/Binaries/Win64/Linux/UnrealEditor.modules", "Type": "RequiredResource" }, - { - "Path": "$(EngineDir)/Binaries/Win64/NvmlWrapper.dll", - "Type": "DynamicLibrary" - }, { "Path": "$(EngineDir)/Binaries/Win64/OpenColorIO_2_2.dll", "Type": "DynamicLibrary" @@ -309,10 +305,6 @@ "Path": "$(EngineDir)/Binaries/Win64/UnrealEditor-AudioSettingsEditor.dll", "Type": "DynamicLibrary" }, - { - "Path": "$(EngineDir)/Binaries/Win64/UnrealEditor-AugmentedReality.dll", - "Type": "DynamicLibrary" - }, { "Path": "$(EngineDir)/Binaries/Win64/UnrealEditor-AutomationController.dll", "Type": "DynamicLibrary" @@ -1713,10 +1705,6 @@ "Path": "$(EngineDir)/Binaries/Win64/UnrealEditor-WebBrowser.dll", "Type": "DynamicLibrary" }, - { - "Path": "$(EngineDir)/Binaries/Win64/UnrealEditor-WebSockets.dll", - "Type": "DynamicLibrary" - }, { "Path": "$(EngineDir)/Binaries/Win64/UnrealEditor-WidgetCarousel.dll", "Type": "DynamicLibrary" @@ -2277,50 +2265,6 @@ "Path": "$(EngineDir)/Plugins/Enterprise/VariantManager/Binaries/Win64/UnrealEditor.modules", "Type": "RequiredResource" }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/AMFCodecs/Binaries/Win64/UnrealEditor-AMFCodecs.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/AMFCodecs/Binaries/Win64/UnrealEditor-AMFCodecsRHI.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/AMFCodecs/Binaries/Win64/UnrealEditor.modules", - "Type": "RequiredResource" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/AVCodecsCore/Binaries/Win64/UnrealEditor-AVCodecsCore.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/AVCodecsCore/Binaries/Win64/UnrealEditor-AVCodecsCoreRHI.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/AVCodecsCore/Binaries/Win64/UnrealEditor.modules", - "Type": "RequiredResource" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/NVCodecs/Binaries/Win64/UnrealEditor-NVCodecs.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/NVCodecs/Binaries/Win64/UnrealEditor-NVCodecsRHI.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/NVCodecs/Binaries/Win64/UnrealEditor-NVDEC.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/NVCodecs/Binaries/Win64/UnrealEditor-NVENC.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/NVCodecs/Binaries/Win64/UnrealEditor.modules", - "Type": "RequiredResource" - }, { "Path": "$(EngineDir)/Plugins/Experimental/AutomationUtils/Binaries/Win64/UnrealEditor-AutomationUtils.dll", "Type": "DynamicLibrary" @@ -2525,14 +2469,6 @@ "Path": "$(EngineDir)/Plugins/Experimental/ToolPresets/Binaries/Win64/UnrealEditor.modules", "Type": "RequiredResource" }, - { - "Path": "$(EngineDir)/Plugins/Experimental/WebSocketNetworking/Binaries/Win64/UnrealEditor-WebSocketNetworking.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/WebSocketNetworking/Binaries/Win64/UnrealEditor.modules", - "Type": "RequiredResource" - }, { "Path": "$(EngineDir)/Plugins/FX/Niagara/Binaries/Win64/UnrealEditor-Niagara.dll", "Type": "DynamicLibrary" @@ -2925,50 +2861,6 @@ "Path": "$(EngineDir)/Plugins/Media/OpusDecoderElectra/Binaries/Win64/UnrealEditor.modules", "Type": "RequiredResource" }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelCapture/Binaries/Win64/UnrealEditor-PixelCapture.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelCapture/Binaries/Win64/UnrealEditor-PixelCaptureShaders.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelCapture/Binaries/Win64/UnrealEditor.modules", - "Type": "RequiredResource" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelStreaming/Binaries/Win64/UnrealEditor-PixelStreaming.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelStreaming/Binaries/Win64/UnrealEditor-PixelStreamingBlueprint.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelStreaming/Binaries/Win64/UnrealEditor-PixelStreamingBlueprintEditor.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelStreaming/Binaries/Win64/UnrealEditor-PixelStreamingEditor.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelStreaming/Binaries/Win64/UnrealEditor-PixelStreamingHMD.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelStreaming/Binaries/Win64/UnrealEditor-PixelStreamingInput.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelStreaming/Binaries/Win64/UnrealEditor-PixelStreamingServers.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelStreaming/Binaries/Win64/UnrealEditor.modules", - "Type": "RequiredResource" - }, { "Path": "$(EngineDir)/Plugins/Media/WmfMedia/Binaries/Win64/UnrealEditor-WmfMedia.dll", "Type": "DynamicLibrary" @@ -3365,18 +3257,6 @@ "Path": "$(EngineDir)/Plugins/Runtime/WindowsMoviePlayer/Binaries/Win64/UnrealEditor.modules", "Type": "RequiredResource" }, - { - "Path": "$(EngineDir)/Plugins/Runtime/XRBase/Binaries/Win64/UnrealEditor-XRBase.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Runtime/XRBase/Binaries/Win64/UnrealEditor-XRBaseEditor.dll", - "Type": "DynamicLibrary" - }, - { - "Path": "$(EngineDir)/Plugins/Runtime/XRBase/Binaries/Win64/UnrealEditor.modules", - "Type": "RequiredResource" - }, { "Path": "$(EngineDir)/Plugins/Tests/InterchangeTests/Binaries/Win64/UnrealEditor-InterchangeTestEditor.dll", "Type": "DynamicLibrary" @@ -20199,10 +20079,6 @@ "Path": "$(EngineDir)/Binaries/Win64/EpicWebHelper.exe", "Type": "NonUFS" }, - { - "Path": "$(EngineDir)/Binaries/Win64/NvmlWrapper.dll", - "Type": "NonUFS" - }, { "Path": "$(EngineDir)/Binaries/Win64/OpenColorIO_2_2.dll", "Type": "NonUFS" @@ -23187,18 +23063,6 @@ "Path": "$(EngineDir)/Plugins/Enterprise/VariantManager/VariantManager.uplugin", "Type": "UFS" }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/AMFCodecs/AMFCodecs.uplugin", - "Type": "UFS" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/AVCodecsCore/AVCodecsCore.uplugin", - "Type": "UFS" - }, - { - "Path": "$(EngineDir)/Plugins/Experimental/AVCodecs/NVCodecs/NVCodecs.uplugin", - "Type": "UFS" - }, { "Path": "$(EngineDir)/Plugins/Experimental/AutomationUtils/AutomationUtils.uplugin", "Type": "UFS" @@ -23263,10 +23127,6 @@ "Path": "$(EngineDir)/Plugins/Experimental/ToolPresets/ToolPresets.uplugin", "Type": "UFS" }, - { - "Path": "$(EngineDir)/Plugins/Experimental/WebSocketNetworking/WebSocketNetworking.uplugin", - "Type": "UFS" - }, { "Path": "$(EngineDir)/Plugins/FX/Niagara/Niagara.uplugin", "Type": "UFS" @@ -23395,14 +23255,6 @@ "Path": "$(EngineDir)/Plugins/Media/OpusDecoderElectra/OpusDecoderElectra.uplugin", "Type": "UFS" }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelCapture/PixelCapture.uplugin", - "Type": "UFS" - }, - { - "Path": "$(EngineDir)/Plugins/Media/PixelStreaming/PixelStreaming.uplugin", - "Type": "UFS" - }, { "Path": "$(EngineDir)/Plugins/Media/WmfMedia/WmfMedia.uplugin", "Type": "UFS" @@ -23535,10 +23387,6 @@ "Path": "$(EngineDir)/Plugins/Runtime/WindowsMoviePlayer/WindowsMoviePlayer.uplugin", "Type": "UFS" }, - { - "Path": "$(EngineDir)/Plugins/Runtime/XRBase/XRBase.uplugin", - "Type": "UFS" - }, { "Path": "$(EngineDir)/Plugins/Tests/InterchangeTests/InterchangeTests.uplugin", "Type": "UFS" diff --git a/Binaries/Win64/UnrealEditor-MasharovDev.dll b/Binaries/Win64/UnrealEditor-MasharovDev.dll index af2bf49e2..2235cf3e3 100644 Binary files a/Binaries/Win64/UnrealEditor-MasharovDev.dll and b/Binaries/Win64/UnrealEditor-MasharovDev.dll differ diff --git a/Binaries/Win64/UnrealEditor-MasharovDev.pdb b/Binaries/Win64/UnrealEditor-MasharovDev.pdb index 710a2d0a4..94aebb88e 100644 Binary files a/Binaries/Win64/UnrealEditor-MasharovDev.pdb and b/Binaries/Win64/UnrealEditor-MasharovDev.pdb differ diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini index f1eb15dd0..1d8a40b00 100644 --- a/Config/DefaultGame.ini +++ b/Config/DefaultGame.ini @@ -3,7 +3,7 @@ [/Script/EngineSettings.GeneralProjectSettings] ProjectID=9EB99AEB4C933EABEE9C4787EE46C5E6 ProjectName=Masharov -ProjectVersion=1.873 +ProjectVersion=1.875 CompanyName=GraffInteractive Homepage=Graff.tech diff --git a/Content/Blueprints/Player/GI.uasset b/Content/Blueprints/Player/GI.uasset index 4f3d1826d..c2455db02 100644 Binary files a/Content/Blueprints/Player/GI.uasset and b/Content/Blueprints/Player/GI.uasset differ diff --git a/Content/Blueprints/Player/MyPC.uasset b/Content/Blueprints/Player/MyPC.uasset index 8621edd57..377c2d2cb 100644 Binary files a/Content/Blueprints/Player/MyPC.uasset and b/Content/Blueprints/Player/MyPC.uasset differ diff --git a/Content/Blueprints/UI/maketTest.uasset b/Content/Blueprints/UI/maketTest.uasset new file mode 100644 index 000000000..3e83450b3 Binary files /dev/null and b/Content/Blueprints/UI/maketTest.uasset differ diff --git a/MasharovDev.uproject b/MasharovDev.uproject index 2aa90e035..1d88a4aa8 100644 --- a/MasharovDev.uproject +++ b/MasharovDev.uproject @@ -396,10 +396,6 @@ { "Name": "ElectraPlayer", "Enabled": true - }, - { - "Name": "PixelStreaming", - "Enabled": true } ], "TargetPlatforms": [ diff --git a/SocketClient.py b/SocketClient.py new file mode 100644 index 000000000..f5d26b26f --- /dev/null +++ b/SocketClient.py @@ -0,0 +1,29 @@ +import socket +import asyncio +import time + +client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +addr=input("type Ip: ") +if not addr: + addr="127.0.0.1" + +try: + client_socket.connect((addr,1201)) +except Exception: + print("не подключается") + time.sleep(5) + exit + +client_socket.sendall(b'\x03\x04\x08\x08') +print(f"отправил, жду") +try: + data = client_socket.recv(1024) + print(data) + print(data.decode()) + print(f"дождался") +except Exception: + print("отвал") +client_socket.close() +time.sleep(5) + + diff --git a/Socketserv.py b/Socketserv.py new file mode 100644 index 000000000..e2ccf9341 --- /dev/null +++ b/Socketserv.py @@ -0,0 +1,38 @@ +import socket +from sys import byteorder +server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server_socket.bind(("0.0.0.0", 1201)) +server_socket.listen(5) +commands={0:"выход из авто", + 2:"поставить цвет", + 3: "включить дом", + 4: "включить комнату", + 5: "включить этаж", + 6: "включить все квартиры", + 8: "включить часть макета"} + +while True: + print("Сервер запущен. Ожидание подключений...") + client_socket, address = server_socket.accept() + print(f"Подключение установлено с {address}") + while True: + try: + data = client_socket.recv(1) + #print(f"{data} a1") + data+=(client_socket.recv(int.from_bytes(data,'big')-1)) + #print(f"{data} a2") + except Exception: + #print("wtf") + data=None + + if data and data.__len__()>1: + print(f"received:{data}, "+(commands[data[1]] if commands.__contains__(data[1]) else "")) + try: + client_socket.sendall("Владимирский Дивак ветер серверный".encode()) + except Exception: + pass + + else: + client_socket.close() + print(f"{address} отключился") + break \ No newline at end of file diff --git a/Source/MasharovDev/commands.h b/Source/MasharovDev/commands.h index 958cf32f7..99fb01506 100644 --- a/Source/MasharovDev/commands.h +++ b/Source/MasharovDev/commands.h @@ -26,9 +26,9 @@ struct TCommand template -void sendCommand(CSocket &socket, const TCommand &command) +bool sendCommand(CSocket &socket, const TCommand &command) { - socket.write(reinterpret_cast(&command), command.size); + return socket.write(reinterpret_cast(&command), command.size); } #pragma pack(pop) diff --git a/Source/MasharovDev/commands_model.h b/Source/MasharovDev/commands_model.h index f600275fb..cb02d7f51 100644 --- a/Source/MasharovDev/commands_model.h +++ b/Source/MasharovDev/commands_model.h @@ -143,21 +143,32 @@ sendCommand(socket, cmd);*/ class CSocket { char* ipAddr_; u_short port_; + volatile int connectStatus; private: int clientSocket; struct sockaddr_in serverAddress; - int cnn; + + void makeSocket() { + clientSocket = socket(AF_INET, SOCK_STREAM, 0); + if (clientSocket == -1) { + UE_LOG(LogTemp, Warning, TEXT("cant create socket")); + } + serverAddress.sin_family = AF_INET; + serverAddress.sin_port = htons(port_); // Порт сервера + serverAddress.sin_addr.s_addr = inet_addr(ipAddr_); // IP адрес сервера + } public: CSocket(char* ipAddr, u_short port) { ipAddr_ = ipAddr; port_ = port; + makeSocket(); } ~CSocket() { closesocket(clientSocket); WSACleanup(); } - void write(const char* buffer, size_t size) { + bool write(const char* buffer, size_t size) { while (true) { @@ -165,28 +176,28 @@ public: UE_LOG(LogTemp, Warning, TEXT("Error sending message")); closesocket(clientSocket); + connectStatus = -1; - clientSocket = socket(AF_INET, SOCK_STREAM, 0); - if (clientSocket == -1) { - UE_LOG(LogTemp, Warning, TEXT("cant create socket")); - return; - } - serverAddress.sin_family = AF_INET; - serverAddress.sin_port = htons(port_); // Порт сервера - serverAddress.sin_addr.s_addr = inet_addr(ipAddr_); // IP адрес сервера + makeSocket(); - cnn = connect(clientSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress)); - UE_LOG(LogTemp, Warning, TEXT("connect with code %d"), cnn); + //UE_LOG(LogTemp, Warning, TEXT("connect with code %d"), connectStatus); - if (cnn == -1) { - UE_LOG(LogTemp, Warning, TEXT("Error connecting to server")); - return; + if (connectStatus == -1) { + UE_LOG(LogTemp, Warning, TEXT("No connection to server")); + return false; } } - else break; + else return true; } //closesocket(clientSocket); } + int connect_() { + + connectStatus = connect(clientSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress)); + UE_LOG(LogTemp, Warning, TEXT("connect with code %d"), connectStatus); + return connectStatus; + + }; }; \ No newline at end of file diff --git a/Source/MasharovDev/cppGI.cpp b/Source/MasharovDev/cppGI.cpp index 7ff8492d3..153b27e79 100644 --- a/Source/MasharovDev/cppGI.cpp +++ b/Source/MasharovDev/cppGI.cpp @@ -4,7 +4,6 @@ #include "cppGI.h" #include "Kismet/GameplayStatics.h" #include "Misc/paths.h" -#include "commands_model.h" #include "Engine/levelstreamingdynamic.h" CSocket* soc; @@ -135,8 +134,9 @@ void UcppGI::avoidAutoState() if (!soc)return; DECLARE_CMD(CMD_NOP, cmd); + sendCommand(*soc, cmd); AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [cmd]() - {sendCommand(*soc, cmd); }); + {}); } void UcppGI::makeSocket(FString ip, int port) @@ -145,17 +145,42 @@ void UcppGI::makeSocket(FString ip, int port) wcstombs(&ipc[0], *ip, ip.Len() + 1); //size_t sz; //wcstombs_s(&sz, ipc, ip.Len(),*ip,ip.Len()); - soc = new CSocket(&ipc[0], port); + if(!soc) soc = new CSocket(&ipc[0], port); + connectSoc(); + } +void UcppGI::connectSoc(const TCommand& command) { + if (!soc)return; + const TCommand _cmd = command; + AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [ command]() + { + soc->connect_(); + // sendCommand(*soc, command); not working( + + }); +} + +void UcppGI::connectSoc() { + if (!soc)return; + AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, []() + { + soc->connect_(); + }); +} + + void UcppGI::setColor(uint8 code, FColor color) { if (!soc)return; DECLARE_CMD(CMD_SET_COLOR, cmd); cmd.code = code; cmd.r = color.R, cmd.g = color.G, cmd.b = color.B; + if (!sendCommand(*soc, cmd)) { + connectSoc(cmd); + }; AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [cmd]() - {sendCommand(*soc, cmd);}); + {}); } @@ -168,23 +193,27 @@ void UcppGI::setLight(int house, int floor, int strip, uint8 state) if (house < 0) { DECLARE_CMD(CMD_SET_ALL_STATE, cmd); cmd.state = state; + if (!sendCommand(*soc, cmd)) connectSoc(cmd); + AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [cmd]() - {sendCommand(*soc, cmd); }); + {}); return; } DECLARE_CMD(CMD_SET_BUILDING_STATE, cmd); cmd.state = state; cmd.building = house; + if (!sendCommand(*soc, cmd)) connectSoc( cmd); AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [cmd]() - {sendCommand(*soc, cmd); }); + {}); return; } DECLARE_CMD(CMD_SET_FLOOR_STATE, cmd); cmd.state = state; cmd.building = house; cmd.floor = floor; + if (!sendCommand(*soc, cmd)) connectSoc(cmd); AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [cmd]() - {sendCommand(*soc, cmd); }); + {}); return; } DECLARE_CMD(CMD_SET_ROOM_STATE, cmd); @@ -192,8 +221,9 @@ void UcppGI::setLight(int house, int floor, int strip, uint8 state) cmd.building = house; cmd.floor = floor; cmd.strip = strip; + if (!sendCommand(*soc, cmd)) connectSoc(cmd); AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [cmd]() - {sendCommand(*soc, cmd); }); + {}); } @@ -203,8 +233,9 @@ void UcppGI::setPartState(uint8 part, uint8 state) DECLARE_CMD(CMD_SET_PART_MODE, cmd); cmd.mode = state; cmd.part = part; + if (!sendCommand(*soc, cmd)) connectSoc(cmd); AsyncTask(ENamedThreads::AnyBackgroundThreadNormalTask, [cmd]() - {sendCommand(*soc, cmd); }); + {}); } @@ -220,6 +251,7 @@ void UcppGI::sendBytes(TArray bytes) void UcppGI::Shutdown() { delete soc; + soc = nullptr; Super::Shutdown(); return; } diff --git a/Source/MasharovDev/cppGI.h b/Source/MasharovDev/cppGI.h index ae114bd01..9beed5a46 100644 --- a/Source/MasharovDev/cppGI.h +++ b/Source/MasharovDev/cppGI.h @@ -3,6 +3,7 @@ #pragma once #include "CoreMinimal.h" +#include "commands_model.h" #include "Engine/GameInstance.h" #include "cppGI.generated.h" @@ -89,6 +90,8 @@ public: void avoidAutoState(); UFUNCTION(blueprintcallable, Category = "maketConnection") void makeSocket(FString ip, int port); + void connectSoc(const TCommand& command); + void connectSoc(); /*codes: *0 - цвет купола в режиме работы с приложением *1 - первый цвет подсветки квартир (например, подсветка всего здания при его выборе)