1.875 kajetsa vsyo
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user