1.875 kajetsa vsyo

This commit is contained in:
2024-08-15 19:09:07 +05:00
parent be1e8825c5
commit d77b1fc179
14 changed files with 141 additions and 184 deletions
+41 -9
View File
@@ -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<uint8> bytes)
void UcppGI::Shutdown()
{
delete soc;
soc = nullptr;
Super::Shutdown();
return;
}