maket online

This commit is contained in:
2024-04-18 19:21:54 +05:00
parent 9213c4fa57
commit 1a0437f848
14 changed files with 153 additions and 31 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2 -7
View File
@@ -1,7 +1,2 @@
тест - andronchik92@gmail.com
Хажин Рустам Илгизович - ri.khazhin@masharov-kvartal.ru
Кокшина Яна Эдуардовна - ye.kokshina@masharov-kvartal.ru
Иванченко Никита Александрович - na.ivanchenko@masharov-kvartal.ru
Куринский Кирилл Сергеевич - ks.kurinskii@masharov-kvartal.ru
Киреев Алексей Сергеевич - ks.kireev@masharov-kvartal.ru
Ефимова Мария Александровна - ma.efimova@masharov-kvartal.ru
Макаров Александр - 8(922)070-90-88
Фишер Вероника - 8(922)041-38-38
@@ -1,6 +1,7 @@
// Copyright Epic Games, Inc. All Rights Reserved.
#include "manageTextFileBPLibrary.h"
#include "Kismet/KismetStringLibrary.h"
#include "manageTextFile.h"
UmanageTextFileBPLibrary::UmanageTextFileBPLibrary(const FObjectInitializer& ObjectInitializer)
@@ -73,3 +74,35 @@ bool UmanageTextFileBPLibrary::readFile(FString Path, FString FileName,FString &
return FFileHelper::LoadFileToString(Str, *fullpath);
}
bool UmanageTextFileBPLibrary::parseIniFile(FString Path, FString FileName, TMap<FString, FString>& Pairs) {
FString outstr;
readFile(Path, FileName, outstr);
FJsonSerializableArray arr;
outstr.ParseIntoArrayLines(arr);
for (auto& a : arr) {
a.TrimStartAndEndInline();
if (a.StartsWith("#") || a.StartsWith(";")) continue;
FString k;
FString v;
if (!a.Split(L"=", &k, &v)) continue;
k.TrimStartAndEndInline();
v.TrimStartAndEndInline();
Pairs.Add(k, v);
}
return !Pairs.IsEmpty();
}
FString UmanageTextFileBPLibrary::getValueFromIniFile(FString Path, FString FileName, FString Key, bool& exists, int& asInt, double& asFloat) {
TMap<FString, FString> pairs;
parseIniFile(Path, FileName, pairs);
const auto out=pairs.Find(Key);
if (!out) {
exists = false;
return FString();
}
asInt = UKismetStringLibrary::Conv_StringToInt(*out);
asFloat = UKismetStringLibrary::Conv_StringToDouble(*out);
exists = true;
return *out;
}
@@ -40,4 +40,11 @@ class UmanageTextFileBPLibrary : public UBlueprintFunctionLibrary
static bool DeleteFile(FString Path, FString FileName);
UFUNCTION(BlueprintCallable, Category = "manageTextFile")
static bool readFile(FString Path, FString FileName, FString & Str);
/*# or ; at line begin is comment. line-by-line key=value.*/
UFUNCTION(BlueprintCallable, Category = "manageTextFile")
static bool parseIniFile(FString Path, FString FileName, TMap<FString, FString>& Pairs);
/*# or ; at line begin is comment. line-by-line key=value.*/
UFUNCTION(BlueprintCallable, Category = "manageTextFile")
static FString getValueFromIniFile(FString Path, FString FileName, FString Key, bool& exists, int& asInt, double& asFloat);
};
-1
View File
@@ -155,7 +155,6 @@ sendCommand(socket, cmd);*/
std::cerr << "Error creating socket" << std::endl;
return;
}
struct sockaddr_in serverAddress;
serverAddress.sin_family = AF_INET;
serverAddress.sin_port = htons(port_); // Порт сервера
+6 -3
View File
@@ -8,6 +8,7 @@
#include "Engine/levelstreamingdynamic.h"
CSocket* soc;
char ipc[100];
/*for working tarray::Contains*/
bool operator==(const Fcppcoords& c1, const Fcppcoords& c2) {
@@ -132,9 +133,11 @@ void UcppGI::avoidAutoState()
void UcppGI::makeSocket(FString ip, int port)
{
char* ipc=NULL;
wcstombs(ipc, *ip, ip.Len());
soc = new CSocket(ipc, port);
//static char ipc[100];
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);
}
void UcppGI::setColor(uint8 code, FColor color)
+18 -19
View File
@@ -1,4 +1,4 @@
// Fill out your copyright notice in the Description page of Project Settings.
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
@@ -73,31 +73,30 @@ public:
UFUNCTION(blueprintcallable, Category = "maketConnection")
void makeSocket(FString ip, int port);
/*codes:
*0 - öâåò êóïîëà â ðåæèìå ðàáîòû ñ ïðèëîæåíèåì
*1 - ïåðâûé öâåò ïîäñâåòêè êâàðòèð (íàïðèìåð, ïîäñâåòêà âñåãî çäàíèÿ ïðè åãî âûáîðå)
*2 - âòîðîé öâåò ïîäñâåòêè êâàðòèð (íàïðèìåð, ïîäñâåòêà âûáðàííûõ êâàðòèð) */
*0 - цвет купола в режиме работы с приложением
*1 - первый цвет подсветки квартир (например, подсветка всего здания при его выборе)
*2 - второй цвет подсветки квартир (например, подсветка выбранных квартир) */
UFUNCTION(blueprintcallable, Category = "maketConnection")
void setColor(uint8 code, FColor color);
/*assign -1 to set all, i.e. flat==-1 -> set whole floor, floor==-1 -> set whole house
states:
*0 — Âûêëþ÷èòü ïîäñâåòêó(íåëüçÿ èçìåíèòü)
*1 — Ïîäñâåòêà ïåðâûì öâåòîì(çàäà¸òñÿ êîìàíäîé)
*2 — Ïîäñâåòêà âòîðûì öâåòîì(çàäà¸òñÿ êîìàíäîé)
*3 — Ïîäñâåòêà áåëûì öâåòîì(íåëüçÿ èçìåíèòü)*/
*0 — Выключить подсветку(нельзя изменить)
*1 — Подсветка первым цветом(задаётся командой)
*2 — Подсветка вторым цветом(задаётся командой)
*3 — Подсветка белым цветом(нельзя изменить)*/
UFUNCTION(blueprintcallable, Category = "maketConnection")
void setLight(int house=-1, int floor=-1, int strip=-1, uint8 state=0);
/*assign -1 to set all, i.e. flat==-1 -> set whole floor, floor==-1 -> set whole house
* parts:
*Âñå ÷àñòè — 255
*Êóïîë0
*Âñå çäàíèÿ2
*Óëè÷íàÿ ïîäñâåòêà4
*Îôèñíàÿ ïîäñâåòêà — 8
*
/* parts:
*Все части — 255
*Купол — 1
*Все здания2
*Уличная подсветка4
*Офисная подсветка8
* доступно битовое ИЛИ
states:
*0 — Âûêëþ÷èòü ÷àñòü
*1 — Âêëþ÷èòü ÷àñòü, â ðó÷íîì ðåæèìå(÷àñòü ðàáîòàåò â ñòàòè÷åñêîì ðåæèìå, äåíü íî÷ü íà íåé, íå ìåíÿåòñÿ)
*2 — Âêëþ÷èòü ÷àñòü, â àâòîìàòè÷åñêîì ðåæèìå(÷àñòü ðàáîòàåò â ðåæèìå ñìåíû äíÿ è íî÷è)*/
*0 — Выключить часть
*1 — Включить часть, в ручном режиме(часть работает в статическом режиме, день ночь на ней, не меняется)
*2 — Включить часть, в автоматическом режиме(часть работает в режиме смены дня и ночи)*/
UFUNCTION(blueprintcallable, Category = "maketConnection")
void setPartState(uint8 part, uint8 state);
+2
View File
@@ -0,0 +1,2 @@
ip=127.0.0.1
port=12345
+84
View File
@@ -0,0 +1,84 @@
#strip map. {app id of apartment}={maket building}-{maket strip}
Z1_H7_S1_A0 =2-3
Z1_H7_S1_A1 =2-5
Z1_H7_S1_A2 =2-2
Z1_H7_S1_A3 =2-4
Z1_H7_S1_A4 =2-5
Z1_H7_S1_A5 =2-1
Z1_H7_S1_A6 =2-0
Z1_H7_S1_A7 =2-0
Z1_H7_S1_A8 =2-0
Z1_H7_S2_A0 =1-5
Z1_H7_S2_A1 =1-3
Z1_H7_S2_A2 =1-2
Z1_H7_S2_A3 =1-1
Z1_H7_S2_A4 =1-5
Z1_H7_S2_A5 =1-6
Z1_H7_S2_A6 =1-4
Z1_H7_S2_A7 =1-3
Z1_H7_S2_A8 =1-3
Z1_H7_S2_A9 =1-0
Z1_H7_S2_A10=1-1
Z1_H7_S2_A11=1-1
Z1_H7_S2_A12=1-1
Z1_H7_S2_A13=1-3
Z1_H7_S2_A14=1-0
Z1_H7_S3_A0 =0-1
Z1_H7_S3_A1 =0-2
Z1_H7_S3_A2 =0-3
Z1_H7_S3_A3 =0-4
Z1_H7_S3_A4 =0-5
Z1_H7_S3_A5 =0-6
Z1_H7_S3_A6 =0-0
Z1_H7_S3_A7 =0-2
Z1_H7_S3_A8 =0-6
Z1_H7_S3_A9 =0-3
Z1_H9_S1_A0 =4-0
Z1_H9_S1_A1 =4-1
Z1_H9_S1_A2 =4-2
Z1_H9_S1_A3 =4-3
Z1_H9_S1_A4 =4-4
Z1_H9_S1_A5 =4-5
Z1_H9_S1_A6 =3-2
Z1_H9_S1_A7 =3-3
Z1_H9_S1_A8 =3-4
Z1_H9_S1_A9 =3-0
Z1_H9_S1_A10=3-1
Z1_H9_S1_A11=4-2
Z1_H9_S1_A12=4-1
Z1_H9_S1_A13=
Z1_H9_S1_A14=
Z1_H9_S1_A15=
Z1_H9_S1_A16=4-2
Z1_H9_S1_A17=3-2
Z1_H9_S1_A18=3-3
Z1_H9_S1_A19=3-0
Z1_H9_S1_A20=3-1
Z1_H9_S1_A21=4-0
Z1_H9_S1_A22=4-3
Z1_H9_S1_A23=4-5
Z1_H9_S1_A24=3-2
Z1_H9_S1_A25=3-2
Z1_H9_S1_A26=3-3
Z1_H9_S1_A27=3-4
Z1_H9_S1_A28=3-0
Z1_H9_S1_A29=3-0
Z1_H9_S1_A30=4-0
Z1_H9_S1_A31=4-3
Z1_H9_S1_A32=4-5
Z1_H9_S1_A33=3-3
Z1_H9_S1_A34=3-4
Z1_H9_S1_A35=4-0
Z1_H9_S1_A36=4-3
Z1_H9_S1_A37=4-5
Z1_H9_S1_A38=3-2
Z1_H9_S1_A39=3-2
Z1_H9_S1_A40=3-3
Z1_H9_S1_A41=3-4
Z1_H9_S1_A42=3-0
Z1_H9_S1_A43=3-0
Z1_H9_S1_A44=4-0
Z1_H9_S1_A45=4-3
Z1_H9_S1_A46=4-5
Z1_H9_S1_A47=3-3
Z1_H9_S1_A48=3-4