From 21152455aade36f7260bb457850e497ef24ea79e Mon Sep 17 00:00:00 2001 From: wangxx1809 Date: Fri, 28 Jun 2024 17:38:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E4=B8=8B=E7=BA=BF=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PrintS/Controller/Controller.h | 3 + PrintS/Controller/FileDialog.cpp | 185 +++++ PrintS/Controller/FileDialog.h | 43 ++ PrintS/DataManage/ClientInfo.cpp | 16 +- PrintS/DataManage/ClientInfo.h | 2 + PrintS/DataManage/DataHandle.cpp | 3 + PrintS/DataManage/RWData.h | 1 + PrintS/DataManage/StreamServer.cpp | 36 +- PrintS/DataManage/StreamServer.h | 2 - PrintS/Machine/Machine.cpp | 2 +- PrintS/PrintS.vcxproj | 2 + PrintS/PrintS.vcxproj.filters | 6 + PrintS/output/Release/config.hbd | Bin 323584 -> 323584 bytes PrintS/output/Release/log/2024.hbd | Bin 176128 -> 180224 bytes PrintS/protobuf/stream.pb.cc | 1029 +++++++++++++++----------- PrintS/protobuf/stream.pb.h | 948 +++++++++++++++--------- PrintS/protobuf/stream.proto | 12 +- PrintS/说明.txt | 5 +- TestClient/DataManage/DataHandle.cpp | 246 +----- TestClient/DataManage/DataHandle.h | 20 +- TestClient/DataManage/FunC.h | 7 + TestClient/DataManage/FuncTest.cpp | 239 ++++++ TestClient/DataManage/FuncTest.h | 32 + TestClient/DataManage/RWData.h | 2 + TestClient/FuncTest.cpp | 22 + TestClient/FuncTest.h | 16 + TestClient/PrintC.vcxproj | 2 + TestClient/PrintC.vcxproj.filters | 6 + TestClient/main.cpp | 13 +- TestClient/protobuf/stream.pb.cc | 1029 +++++++++++++++----------- TestClient/protobuf/stream.pb.h | 948 +++++++++++++++--------- TestClient/protobuf/stream.proto | 23 +- 32 files changed, 3039 insertions(+), 1861 deletions(-) create mode 100644 PrintS/Controller/FileDialog.cpp create mode 100644 PrintS/Controller/FileDialog.h create mode 100644 TestClient/DataManage/FuncTest.cpp create mode 100644 TestClient/DataManage/FuncTest.h create mode 100644 TestClient/FuncTest.cpp create mode 100644 TestClient/FuncTest.h diff --git a/PrintS/Controller/Controller.h b/PrintS/Controller/Controller.h index 7950152..12921c9 100644 --- a/PrintS/Controller/Controller.h +++ b/PrintS/Controller/Controller.h @@ -9,6 +9,7 @@ #include "../Purifier/BasePurifier.h" #include #include "../Registration/Registration.h" +#include "FileDialog.h" class Controller { public: @@ -43,6 +44,8 @@ public: Registration* m_reg; HBDCamera* m_Camera; + + FileDialog m_fileDialog; private: bool m_sendTdExitFlag; thread m_sendParamThread; diff --git a/PrintS/Controller/FileDialog.cpp b/PrintS/Controller/FileDialog.cpp new file mode 100644 index 0000000..8a5084d --- /dev/null +++ b/PrintS/Controller/FileDialog.cpp @@ -0,0 +1,185 @@ +#include "FileDialog.h" +#include +#include "../utils/dirent.h" +#include "../utils/StringHelper.h" +#include "../utils/ConverType.hpp" + +FileDialog::FileDialog() { + +} + +FileDialog::~FileDialog() { + +} + + +void FileDialog::GetLogicalDrive(::stream::ResponseAny** rsp) { + //std::vector vecDrives; + char szbuf[MAX_PATH] = { 0 }; + GetLogicalDriveStrings(MAX_PATH, szbuf); + int nCount = 0; + char* pDrive = szbuf; + string driveStr; + for (size_t nlen = strlen(szbuf); nlen == 3; nCount++) + { + std::string strDrive(pDrive); + driveStr += strDrive + " "; + pDrive += 4; + nlen = strlen(pDrive); + } + + stream::ComResponce result; + result.set_data(driveStr); + (*rsp)->mutable_data()->PackFrom(result); +} + + +inline bool ReplaceString(std::wstring& str, const std::wstring& oldStr, const std::wstring& newStr) +{ + bool Finded = false; + size_t pos = 0; + while ((pos = str.find(oldStr, pos)) != std::wstring::npos) { + Finded = true; + str.replace(pos, oldStr.length(), newStr); + pos += newStr.length(); + } + return Finded; +} + + +inline std::vector splitStringVector(const std::wstring& text, char delimiter) +{ + std::vector arr; + std::wstring::size_type start = 0; + std::wstring::size_type end = text.find(delimiter, start); + while (end != std::string::npos) + { + std::wstring token = text.substr(start, end - start); + if (token != L"") + arr.push_back(token); + start = end + 1; + end = text.find(delimiter, start); + } + arr.push_back(text.substr(start)); + return arr; +} + + +void FileDialog::Request(const ReadData& rd, ::stream::ResponseAny** resp) { + CALLFUNC type = (CALLFUNC)ConverType::TryToI(rd.nameKey); + if (type == CALLFUNC::GetLogicalDrive) { + GetLogicalDrive(resp); + printf("GetLogicalDrive responded...\n"); + } + else if(type == CALLFUNC::ScanDir){ + std::wstring vPath = StringHelper::Str2Wstr(rd.strValue); + ScanDir(vPath); + + stream::ComResponce result; + string dirc; + for (auto start = m_CurrentPath_Decomposition.begin(); start != m_CurrentPath_Decomposition.end(); ++start) { + dirc += StringHelper::Wstr2Str(*start) + " "; + } + result.set_directory(dirc); //当前目录 空格隔开 + + for (auto start = m_FileList.begin(); start != m_FileList.end(); ++start) { + auto pFileInfo = result.add_fileinfo(); //目录下的文件夹 空格隔开 + pFileInfo->set_type("" + start->type); + pFileInfo->set_filename(StringHelper::Wstr2Str(start->fileName)); + pFileInfo->set_filepath(StringHelper::Wstr2Str(start->filePath)); + pFileInfo->set_ext(StringHelper::Wstr2Str(start->ext)); + } + + (*resp)->mutable_data()->PackFrom(result); + printf("ScanDir responded...\n"); + } + +} + +bool FileDialog::ScanDir(std::wstring vPath) +{ + struct _wdirent** files = 0; + int i = 0; + int n = 0; + + m_FileList.clear(); + + // get currentPath + WDIR* currentDir = _wopendir(vPath.c_str()); + if (currentDir == 0) // path not existing + { + vPath = L"."; // current app path + currentDir = _wopendir(vPath.c_str()); + } + if (currentDir != 0) + { + std::wstring ws(currentDir->patt); + m_CurrentPath = std::wstring(ws.begin(), ws.end()); + ReplaceString(m_CurrentPath, L"\\*", L""); + _wclosedir(currentDir); + m_CurrentPath_Decomposition = splitStringVector(m_CurrentPath, '\\'); + } + else + { + return false; + } + + n = wscandir(vPath.c_str(), &files, NULL, [](const void* a, const void* b) { + return strcoll(((dirent*)a)->d_name, ((dirent*)b)->d_name); + }); + if (n >= 0) + { + for (i = 0; i < n; i++) + { + struct _wdirent* ent = files[i]; + + FileInfoStruct infos; + + infos.fileName = ent->d_name; + if (ent->d_type == DT_REG) { + infos.type = 'f'; + } + if (ent->d_type == DT_DIR) { + infos.type = 'd'; + } + if (ent->d_type == DT_LNK) { + infos.type = 'l'; + } + if (infos.type == 'f') + { + size_t lpt = infos.fileName.find_last_of(L"."); + if (lpt != std::wstring::npos) + infos.ext = infos.fileName.substr(lpt); + } + + if (infos.fileName != L".") + { + switch (ent->d_type) + { + case DT_REG: infos.type = 'f'; break; + case DT_DIR: infos.type = 'd'; break; + case DT_LNK: infos.type = 'l'; break; + } + + m_FileList.push_back(infos); + } + } + + for (i = 0; i < n; i++) + { + free(files[i]); + } + free(files); + } + + std::sort(m_FileList.begin(), m_FileList.end(), [](FileInfoStruct& a, FileInfoStruct& b) { + bool res; + if (a.type != b.type) res = (a.type < b.type); + else res = (a.fileName < b.fileName); + return res; + }); + + return true; +} + + diff --git a/PrintS/Controller/FileDialog.h b/PrintS/Controller/FileDialog.h new file mode 100644 index 0000000..d0f20bb --- /dev/null +++ b/PrintS/Controller/FileDialog.h @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include "../protobuf/stream.pb.h" +#include "../DataManage/RWData.h" + +#define MAX_FILE_DIALOG_NAME_BUFFER 1024 + +struct FileInfoStruct +{ + char type; + std::wstring filePath; + std::wstring fileName; + std::wstring ext; +}; + +enum CALLFUNC { + GetLogicalDrive=0, + ScanDir, +}; + + +class FileDialog +{ +public: + FileDialog(); + ~FileDialog(); + +public: + void Request(const ReadData& rd, ::stream::ResponseAny** response); //查询路径下的文件、文件夹等 +private: + bool ScanDir(std::wstring vPath); //查询路径下的文件、文件夹等 + void GetLogicalDrive(::stream::ResponseAny** rsp); //获取盘符等,空格隔开 + //void ComposeNewPath(std::vector::iterator vIter); //组合为一个路径 + +private: + std::string m_DriverItem; //选中的盘符 + std::vector m_FileList; //当前路径下的文件、文件夹 + std::wstring m_SelectedFileName; //选取的文件名 + std::wstring m_CurrentPath; //当前的路径 + std::vector m_CurrentPath_Decomposition; //当前路径的文件名集合 + std::wstring m_CurrentFilterExt; //文件后缀 +}; diff --git a/PrintS/DataManage/ClientInfo.cpp b/PrintS/DataManage/ClientInfo.cpp index 9aac2fa..7773a4e 100644 --- a/PrintS/DataManage/ClientInfo.cpp +++ b/PrintS/DataManage/ClientInfo.cpp @@ -12,7 +12,7 @@ void ClientWrapper::AddClient(ClientInfo* clientInfo) { if (!isExist) m_clientList.emplace_back(clientInfo); } -//下线检测 +//下线检测 没用了 void ClientWrapper::OfflineCheck() { std::lock_guard lck(m_mux); auto client = m_clientList.begin(); @@ -62,4 +62,18 @@ bool ClientWrapper::IsExist(ClientInfo* ci) { ++client; } return flag; +} + +void ClientWrapper::CloseOne(ClientInfo* ci) { + std::lock_guard lck(m_mux); + auto client = m_clientList.begin(); + while (client != m_clientList.end()) { + if (*client == ci) { + (*client)->m_context->TryCancel(); + delete (*client); + m_clientList.erase(client); + break; + } + ++client; + } } \ No newline at end of file diff --git a/PrintS/DataManage/ClientInfo.h b/PrintS/DataManage/ClientInfo.h index f283bff..55b5c56 100644 --- a/PrintS/DataManage/ClientInfo.h +++ b/PrintS/DataManage/ClientInfo.h @@ -85,6 +85,8 @@ public: bool IsExist(ClientInfo* ci); + void CloseOne(ClientInfo* ci); + private: ClientWrapper() {} ~ClientWrapper() {} diff --git a/PrintS/DataManage/DataHandle.cpp b/PrintS/DataManage/DataHandle.cpp index 5ca7c64..838aa0f 100644 --- a/PrintS/DataManage/DataHandle.cpp +++ b/PrintS/DataManage/DataHandle.cpp @@ -32,6 +32,9 @@ void DataHandle::FuncDataCallBackProc(void* pthis,const ReadData& msg, const lis else if ((READTYPE)msg.dataType == SCANERCTRLCFG) { p->m_config->ScanerCtrlCfgReq(msg, lst, response); } + else if ((READTYPE)msg.dataType == DIRCTROYFUNC) { + p->m_controller->m_fileDialog.Request(msg,response); + } } diff --git a/PrintS/DataManage/RWData.h b/PrintS/DataManage/RWData.h index bd3c2b5..4300054 100644 --- a/PrintS/DataManage/RWData.h +++ b/PrintS/DataManage/RWData.h @@ -17,6 +17,7 @@ enum READTYPE { CAMERAPARAMUPDATE, //相机参数更新 PURIFIERFUNC, //净化器接口功能 CONFIGFUNC, //config functions + DIRCTROYFUNC, //请求目录信息 SETZEROPOS, //AxisState使用 AXISSTOPALL, //axis 运动急停 diff --git a/PrintS/DataManage/StreamServer.cpp b/PrintS/DataManage/StreamServer.cpp index c901383..009ca8c 100644 --- a/PrintS/DataManage/StreamServer.cpp +++ b/PrintS/DataManage/StreamServer.cpp @@ -3,7 +3,6 @@ StreamServer::StreamServer(Machine* p) : m_port(50010) - , m_checkQuitFlag(false) , m_dataCallBack(nullptr) , m_machine(p) , m_handlePtr(nullptr){ @@ -12,9 +11,6 @@ StreamServer::StreamServer(Machine* p) StreamServer::~StreamServer() { Stop(); - - m_checkQuitFlag = true; - if (m_checkCloseTd.joinable()) m_checkCloseTd.join(); } @@ -52,7 +48,13 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter< std::thread read([this, &stream, cinfo] { RequestInfo request; - while (!cinfo->m_readQuitFlag && stream->Read(&request)) { + while (!cinfo->m_readQuitFlag) { + if (!stream->Read(&request)) { //返回false 认为是client掉线了 + printf("client %s 下线了\n", cinfo->m_clientAddr.data()); + cinfo->m_writeQuitFlag = true; + ClientWrapper::Instance()->CloseOne(cinfo); + break; + } ReadData readData; readData.dataType = (READTYPE)request.datatype(); readData.nameKey = request.namekey(); @@ -81,12 +83,12 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter< printf("客户端消息:dataType:%d,nameKey:%s, strValue:%s,valueType:%d,lst:%zd\n", readData.dataType, readData.nameKey.c_str(), readData.strValue.c_str(), readData.valueType, paramLst.size()); if (m_dataCallBack) { - readData.its = paramLst; + //readData.its = paramLst; m_dataCallBack(m_handlePtr,readData, paramLst); } } - printf("read thread exit...\n") ; + //printf("read thread exit...\n") ; }); std::thread write([this, &stream, cinfo] { @@ -118,6 +120,7 @@ Status StreamServer::AllStream(ServerContext* context, grpc::ServerReaderWriter< std::this_thread::sleep_for(std::chrono::milliseconds(100)); } } + //printf("write thread exit...\n"); }); read.join(); @@ -136,21 +139,6 @@ void StreamServer::Init() { void StreamServer::Run() { Stop(); - //检测下线线程 - m_checkQuitFlag = false; - m_checkCloseTd = std::thread([this] { - while (!m_checkQuitFlag) { - ClientWrapper::Instance()->OfflineCheck(); - - int count = 10; - while (count-- && !m_checkQuitFlag) { - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - } - } - }); - - - //监听线程 m_listenTd = std::thread([this] { std::string server_address("0.0.0.0:" + std::to_string(m_port)); @@ -175,9 +163,5 @@ void StreamServer::Stop() { m_listenTd.join(); } - m_checkQuitFlag = true; - if (m_checkCloseTd.joinable()) - m_checkCloseTd.join(); - } \ No newline at end of file diff --git a/PrintS/DataManage/StreamServer.h b/PrintS/DataManage/StreamServer.h index 4228f71..0320510 100644 --- a/PrintS/DataManage/StreamServer.h +++ b/PrintS/DataManage/StreamServer.h @@ -41,8 +41,6 @@ private: ::grpc::Status Simple(::grpc::ServerContext* context, const ::stream::RequestInfo* request, ::stream::ResponseAny* response); private: - std::thread m_checkCloseTd; //检测客户端关闭线程 - bool m_checkQuitFlag; DataCallBack m_dataCallBack; FuncDataCallBack m_funcDataCallBack; diff --git a/PrintS/Machine/Machine.cpp b/PrintS/Machine/Machine.cpp index 6cc79fa..2f588bd 100644 --- a/PrintS/Machine/Machine.cpp +++ b/PrintS/Machine/Machine.cpp @@ -638,7 +638,7 @@ void Machine::ArmAxisMove(AxisConfig::ActiveDirect adr, bool isContinue, bool is //轴运动函数 void Machine::CallAxisFunc(const ReadData& msg) { - MACHINEFUNC func = (MACHINEFUNC)stoi(msg.nameKey); + MACHINEFUNC func = (MACHINEFUNC)ConverType::TryToI(msg.nameKey); switch (func) { case LOADIN: LoadIn(); diff --git a/PrintS/PrintS.vcxproj b/PrintS/PrintS.vcxproj index 493a994..8350f30 100644 --- a/PrintS/PrintS.vcxproj +++ b/PrintS/PrintS.vcxproj @@ -247,6 +247,7 @@ + @@ -481,6 +482,7 @@ + diff --git a/PrintS/PrintS.vcxproj.filters b/PrintS/PrintS.vcxproj.filters index a9d4725..de03edc 100644 --- a/PrintS/PrintS.vcxproj.filters +++ b/PrintS/PrintS.vcxproj.filters @@ -756,6 +756,9 @@ Communication + + Controller + protobuf @@ -1891,6 +1894,9 @@ Communication + + Controller + protobuf diff --git a/PrintS/output/Release/config.hbd b/PrintS/output/Release/config.hbd index a30fe96c013fb142b98482dfe82c5a765b220095..c6f430182a8f33bf2b5f763f013db946269a707a 100644 GIT binary patch delta 33065 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 NF`;CJumh&B1VBi5Qc3^- diff --git a/PrintS/output/Release/log/2024.hbd b/PrintS/output/Release/log/2024.hbd index 7de615a281c85dbcb786ef2c24b1fb5dde1bc432..03029df2590a95451b4d2b8cdbd474a0a66fcd2a 100644 GIT binary patch delta 24785 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

-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 z zj}#z&f=H#O*~j=e|Amk4f&Y4y6lC|fBG6ZNf4*>?h%S#nqlK9?JqeHJVjNJ6b>dfA z8n;hZ@onfnl_v<&W6%%Y1<;VqcbATrcQg0H|2O1SoP7TU0ost&mjHt z9&Cw(_Ze-Ddd(nhj^NQWf3u-w#=z5U24da~gZ}^=4{Gtr#1CK~dM26<9|yAEPYInx zJAbfcb-kXu^|V-F{2vm-`uU2$A^)p8v{^a2ehaUoa#rqEUUC6s$h)NsFba++xLv(I z1!f!sz)8miy!l!Lh!Wj-)4_U!l_&{Ao;s;69cLu8!K)UuEWDrtf4EOzx@Hra2(t}u zvZg>Db_Sc~v=n0G4ZL@!BX_TTrT$`|;-fMsx}UjCeOK;Zb?`mFm$g#-Z7O1`hOs+d zzN$U$a$;#ZVvKz-&b!qYC+_QG7XRW`|-9b4I8Ee$))t9%e+jt`s86(QT+ zq5#?X`x=AiAy}KGe`LqZJi_^5d_ZW#Ly1ehW8v`|9O`H83l$(|X6haxxsNI|ZNzmy z+vF8Kd;~u%qLkg7QgGH@5p6RoLs^d!b}i=6t~I@=`Sg&mEQr@4Dc>ZN`z^skM47zm z*=ycC4>!KK_|b7sAbAG9Yy{}YEcP%JIy-OZ^z_#oe^W%(L1@eu%Utq3T8MyvU!bHs ziE+$|J|5j;B*oic$vH8zKPEhbE+XK|qXwQUo815%SP287O(*PXT4neMl2b~T-;?O* z;t*8~qOn&Y<2D6q?Dh|TM9$sZnn{Z%vlao!r@RF*+hSXJ+bb}Ck7n4Q(3smYcV=sM z1dp)Bf3OZj{eMl@Y|ufWUJtdGXyj|Y7Gs*cdaFiU2S#ajWFoT+{-!AFZML)prv;zEO0{b;94G#7YszCF z1)QQnxqjo$FdtuaI*q=wm}4epJor=e3Q~N&~&c2RLt7*3Ht6tG7!UOfFc^^#2h&W0LdR3VjX*I>kMd^ ze@Tw3*uDX!1?N)x^$?+S!x+ogFo5NW#bvRzE8NU0-b>9>UN%)mB^#0C;-;wBS~1$r zr%AX<8a5~L6CL#!M@GDtRl*E4#7TwWRW6*vFQdk}BO1H;UDHhPCxC}`dWWpKu4Q># z->UN&*2u@Ub)727`esg^Y8jvJgZy|Fe+Zc?-NilcC0YH5Hf_Xw(W3i|Dz#KH!Vk~O zX32>DU=k=E755iYI6I~-1aViJ2@h5Z$}=qT?%bV2=cQ>w&j&%IM-U0^EY=_(-{7lz zZ$tqMo=zns{M&P8MYXsa9pU78&3bEpG~iryCZ2vaj!oWYWtnhXm?WJ+zKnL&e@|3W z*(igp5O^`e<3wPQK#uf7J0P5!e@8 zv7`%=eb}lou!YDOZFW*YkDh{uNl^h<*Co9!W>p8IYcYdL`fig9b@cekSug(YEObyns%I*Kp z5j$A79B!3nOeSdkn^K`{e{=M1^_?D0$wf;;QzqZKhC*Fysj{1cV;DRy_Hrzkl|PD! zx-Sri#y&{7;O}5?lWJv2TXhAco*vN7URz!6EvWBePbHo*6UhP#aP1kHz|O}rAPD!{ zUdbd;`QbFyI*#Rk5UQ=?1FoP#rAfT_PJ(yGGP2{aT&z~o$@bnne`61w1K7K*UvbdK z^Oe7t=S&O0ixy&N!r8udDE}*AtAu~cB9fLEXuDW1w8lFz#?Hq~_tqiQFe6kC9wagG zIGhi;I?v6tzbKbyg>3lFqgVwe`r8l5If03|cHFR>d{I}Obqu0lH^`SU+V@w>T?wx?pA@`e>kYh$!!XHzVa+Zkxo*O=Po(0a_H+Sq8j>#gx2CBq- z8I+qdO+US;Z!XSke5 z5TKHVQQ-oRe{g231)f58Ti{OCRi)2zdTGY)*fp#o`WoL?LLA7hdb_!xvCo;fqBkVD z9VWMG>K+_X8i z*~#s44T(UNeo9LY&s|#6^uC%Lz~D~j5eAPE9h(g7#vVR);Fq%0e8LUeK0x_OGYJ^# zTJ!)8U}TIoik1zxh={0JLwunehS0>*ID5DExx16v>Frjb^Ib&gm2peQL$Hk6_~SF%Q<5kcr@8{)Aw$!?6YSe zZ%icbMDwaE(o5bbHV|MeMzJe9^h{pbpalzT zPKT)ku|Act<5=S*0n9X{FwQx@CkmM z7tSGWE-mRt$)ZG(hisef_j{}l`IB_rfAGB~@sj-`;}KBAM(Q&F;FkluM>68mo3v|i zwxpeWe>xR0zS|HuuVD0XG@MO^!rWnX4UtCVimds+!WFGBo%TU&&Y@Re_yN9jt7`?7 zBTu5WKI$UaBh(guFn23L>Y8K3*YHa9kPa2I3E&gjGctG{y=pk;Hj8dusV4QL`X*apBf`wk3LO4gvhnB)E}Ej+x- z-5FhUvWy@M^Xe28){TMSZieQ8f2flfd;>ff&e)7_{G-m#G_x#sAAlnx%b8Z`RCfIV z^4y$`^hm0?&(HH`0W^WabT3jL{be9mrD8?Aa`5Vnp!I}-IT08vdINu(pg#W< zKgu2#KRtOQGqmV)dMG;kSfD&kf+Wq#PXwzcU60dz^c;+3Z|`g)Q-kpZf34Y#d3-xD z_hE+qepJua#SDyThtw1u%6(`i>}~C_%fQ-39u6`Ns>?x;gj$u-62B1`v&O{o!?8p$ z$DjWHNrGquxjr2}IJS2dhb6c2HUfR=w5i|EJ;& z>Gq1-_aFf)g$<8!kUbXZywZ-Kcc6~ljsS|Z0p5X5ZQ`-pLe;)UAklp|^E)YSfz5c{ z2sL^h;anbC^m<1Ipp?fj*_|1py`En2rQmD{V9!a2UY!4ZfQHo!f5e7D+HhRbdO=O$ zPark>4z&ouQEgjkj*F;L-B0D}Jq%Qo978MDeh>fR0z?tTKoR=|;q$*$#7L8S{?x#` zE5kpBtU~cnQ3zqb2P6Lv6n9YHRIc~M^ntZDlmNt>GK= zY{pVbI=0{bHv +PROTOBUF_CONSTEXPR ComResponce_FileInfoStruct::ComResponce_FileInfoStruct(::_pbi::ConstantInitialized) + : _impl_{ + /*decltype(_impl_.type_)*/ { + &::_pbi::fixed_address_empty_string, + ::_pbi::ConstantInitialized{}, + }, + /*decltype(_impl_.filepath_)*/ { + &::_pbi::fixed_address_empty_string, + ::_pbi::ConstantInitialized{}, + }, + /*decltype(_impl_.filename_)*/ { + &::_pbi::fixed_address_empty_string, + ::_pbi::ConstantInitialized{}, + }, + /*decltype(_impl_.ext_)*/ { + &::_pbi::fixed_address_empty_string, + ::_pbi::ConstantInitialized{}, + }, + /*decltype(_impl_._cached_size_)*/ {}, + } {} +struct ComResponce_FileInfoStructDefaultTypeInternal { + PROTOBUF_CONSTEXPR ComResponce_FileInfoStructDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} + ~ComResponce_FileInfoStructDefaultTypeInternal() {} + union { + ComResponce_FileInfoStruct _instance; + }; +}; + +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ComResponce_FileInfoStructDefaultTypeInternal _ComResponce_FileInfoStruct_default_instance_; + template PROTOBUF_CONSTEXPR ComResponce::ComResponce(::_pbi::ConstantInitialized) : _impl_{ + /*decltype(_impl_.fileinfo_)*/ {}, /*decltype(_impl_.data_)*/ { &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}, }, + /*decltype(_impl_.directory_)*/ { + &::_pbi::fixed_address_empty_string, + ::_pbi::ConstantInitialized{}, + }, /*decltype(_impl_._cached_size_)*/ {}, } {} struct ComResponceDefaultTypeInternal { @@ -551,7 +573,7 @@ struct TimePowerCompensateDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TimePowerCompensateDefaultTypeInternal _TimePowerCompensate_default_instance_; } // namespace stream -static ::_pb::Metadata file_level_metadata_stream_2eproto[21]; +static ::_pb::Metadata file_level_metadata_stream_2eproto[22]; static const ::_pb::EnumDescriptor* file_level_enum_descriptors_stream_2eproto[2]; static constexpr const ::_pb::ServiceDescriptor** file_level_service_descriptors_stream_2eproto = nullptr; @@ -575,14 +597,6 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.startlayer_), PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.endlayer_), PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.powder_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.seqno_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.controlno_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.serialno_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.controltype_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.cardname_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.cardip_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.hadassign_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.hadmatch_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::stream::RequestInfo, _internal_metadata_), ~0u, // no _extensions_ @@ -698,6 +712,18 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.width_), PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.height_), ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::stream::ComResponce_FileInfoStruct, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _split_ + ~0u, // no sizeof(Split) + PROTOBUF_FIELD_OFFSET(::stream::ComResponce_FileInfoStruct, _impl_.type_), + PROTOBUF_FIELD_OFFSET(::stream::ComResponce_FileInfoStruct, _impl_.filepath_), + PROTOBUF_FIELD_OFFSET(::stream::ComResponce_FileInfoStruct, _impl_.filename_), + PROTOBUF_FIELD_OFFSET(::stream::ComResponce_FileInfoStruct, _impl_.ext_), + ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::stream::ComResponce, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ @@ -706,6 +732,8 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE ~0u, // no _split_ ~0u, // no sizeof(Split) PROTOBUF_FIELD_OFFSET(::stream::ComResponce, _impl_.data_), + PROTOBUF_FIELD_OFFSET(::stream::ComResponce, _impl_.directory_), + PROTOBUF_FIELD_OFFSET(::stream::ComResponce, _impl_.fileinfo_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::stream::ScannerCrtlCfgResp, _internal_metadata_), ~0u, // no _extensions_ @@ -932,26 +960,27 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { {0, -1, -1, sizeof(::stream::ParamInfo)}, - {26, -1, -1, sizeof(::stream::RequestInfo)}, - {40, -1, -1, sizeof(::stream::ResponseInfo)}, - {51, 60, -1, sizeof(::stream::ResponseAny)}, - {61, -1, -1, sizeof(::stream::LayerData)}, - {74, -1, -1, sizeof(::stream::LayerDataBlock)}, - {88, -1, -1, sizeof(::stream::VectorDataBlock)}, - {100, -1, -1, sizeof(::stream::ChainDataBlock)}, - {110, -1, -1, sizeof(::stream::Point)}, - {120, -1, -1, sizeof(::stream::RegResponce)}, - {129, -1, -1, sizeof(::stream::ImgInfoResponce)}, - {140, -1, -1, sizeof(::stream::ComResponce)}, - {149, -1, -1, sizeof(::stream::ScannerCrtlCfgResp)}, - {158, 185, -1, sizeof(::stream::ScannerCrtlCfgData)}, - {204, -1, -1, sizeof(::stream::FixPointData)}, - {217, -1, -1, sizeof(::stream::ScanParamCfg)}, - {255, -1, -1, sizeof(::stream::CorrectParamCfg)}, - {289, -1, -1, sizeof(::stream::ScanTestCfg)}, - {319, -1, -1, sizeof(::stream::SkyWritingCfg)}, - {344, -1, -1, sizeof(::stream::PowerCompensate)}, - {357, -1, -1, sizeof(::stream::TimePowerCompensate)}, + {18, -1, -1, sizeof(::stream::RequestInfo)}, + {32, -1, -1, sizeof(::stream::ResponseInfo)}, + {43, 52, -1, sizeof(::stream::ResponseAny)}, + {53, -1, -1, sizeof(::stream::LayerData)}, + {66, -1, -1, sizeof(::stream::LayerDataBlock)}, + {80, -1, -1, sizeof(::stream::VectorDataBlock)}, + {92, -1, -1, sizeof(::stream::ChainDataBlock)}, + {102, -1, -1, sizeof(::stream::Point)}, + {112, -1, -1, sizeof(::stream::RegResponce)}, + {121, -1, -1, sizeof(::stream::ImgInfoResponce)}, + {132, -1, -1, sizeof(::stream::ComResponce_FileInfoStruct)}, + {144, -1, -1, sizeof(::stream::ComResponce)}, + {155, -1, -1, sizeof(::stream::ScannerCrtlCfgResp)}, + {164, 191, -1, sizeof(::stream::ScannerCrtlCfgData)}, + {210, -1, -1, sizeof(::stream::FixPointData)}, + {223, -1, -1, sizeof(::stream::ScanParamCfg)}, + {261, -1, -1, sizeof(::stream::CorrectParamCfg)}, + {295, -1, -1, sizeof(::stream::ScanTestCfg)}, + {325, -1, -1, sizeof(::stream::SkyWritingCfg)}, + {350, -1, -1, sizeof(::stream::PowerCompensate)}, + {363, -1, -1, sizeof(::stream::TimePowerCompensate)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -966,6 +995,7 @@ static const ::_pb::Message* const file_default_instances[] = { &::stream::_Point_default_instance_._instance, &::stream::_RegResponce_default_instance_._instance, &::stream::_ImgInfoResponce_default_instance_._instance, + &::stream::_ComResponce_FileInfoStruct_default_instance_._instance, &::stream::_ComResponce_default_instance_._instance, &::stream::_ScannerCrtlCfgResp_default_instance_._instance, &::stream::_ScannerCrtlCfgData_default_instance_._instance, @@ -979,131 +1009,131 @@ static const ::_pb::Message* const file_default_instances[] = { }; const char descriptor_table_protodef_stream_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { "\n\014stream.proto\022\006stream\032\031google/protobuf/" - "any.proto\"\331\002\n\tParamInfo\022\017\n\007nameKey\030\001 \001(\014" + "any.proto\"\311\001\n\tParamInfo\022\017\n\007nameKey\030\001 \001(\014" "\022\020\n\010strValue\030\002 \001(\014\022\037\n\tvalueType\030\003 \001(\0162\014." "stream.TYPE\022\017\n\007context\030\004 \001(\014\022\020\n\010isEnable" "\030\005 \001(\010\022\017\n\007isAlarm\030\006 \001(\010\022\016\n\006isShow\030\007 \001(\010\022" "\022\n\nstartLayer\030\010 \001(\005\022\020\n\010endLayer\030\t \001(\005\022\016\n" - "\006powder\030\n \001(\002\022\r\n\005seqNo\030\013 \001(\005\022\021\n\tcontrolN" - "o\030\014 \001(\005\022\020\n\010serialNo\030\r \001(\005\022\023\n\013controlType" - "\030\016 \001(\005\022\020\n\010cardName\030\017 \001(\014\022\016\n\006cardIP\030\020 \001(\014" - "\022\021\n\thadAssign\030\021 \001(\010\022\020\n\010hadMatch\030\022 \001(\010\"\254\001" - "\n\013RequestInfo\022\020\n\010dataType\030\001 \001(\r\022\017\n\007nameK" - "ey\030\002 \001(\014\022\020\n\010strValue\030\003 \001(\014\022\037\n\tvalueType\030" - "\004 \001(\0162\014.stream.TYPE\022&\n\nhandleType\030\005 \001(\0162" - "\022.stream.DATAHANDLE\022\037\n\004item\030\006 \003(\0132\021.stre" - "am.ParamInfo\"Q\n\014ResponseInfo\022\020\n\010dataType" - "\030\001 \001(\r\022\016\n\006result\030\002 \001(\010\022\037\n\004item\030\003 \003(\0132\021.s" - "tream.ParamInfo\"1\n\013ResponseAny\022\"\n\004data\030\001" - " \001(\0132\024.google.protobuf.Any\"\210\001\n\tLayerData" - "\022\023\n\013zCooldinate\030\001 \001(\002\022\016\n\006powder\030\002 \001(\002\022\026\n" - "\016layerThickness\030\003 \001(\002\022.\n\016layerDataBlock\030" - "\004 \003(\0132\026.stream.LayerDataBlock\022\016\n\006result\030" - "\005 \001(\010\"\266\001\n\016LayerDataBlock\022\021\n\telementId\030\001 " - "\001(\005\022\026\n\016elementParamId\030\002 \001(\005\022\021\n\tblockType" - "\030\003 \001(\r\022*\n\tvecBlocks\030\004 \003(\0132\027.stream.Vecto" - "rDataBlock\022+\n\013chainBlocks\030\005 \003(\0132\026.stream" - ".ChainDataBlock\022\r\n\005order\030\006 \001(\r\"M\n\017Vector" - "DataBlock\022\016\n\006startX\030\001 \001(\002\022\016\n\006startY\030\002 \001(" - "\002\022\014\n\004endX\030\003 \001(\002\022\014\n\004endY\030\004 \001(\002\"A\n\016ChainDa" - "taBlock\022\016\n\006dotNum\030\001 \001(\r\022\037\n\010pointVec\030\002 \003(" - "\0132\r.stream.Point\"#\n\005Point\022\014\n\004xPos\030\001 \001(\002\022" - "\014\n\004yPos\030\002 \001(\002\"\033\n\013RegResponce\022\014\n\004data\030\001 \001" - "(\005\"D\n\017ImgInfoResponce\022\022\n\nlevelImage\030\001 \001(" - "\r\022\r\n\005width\030\002 \001(\005\022\016\n\006height\030\003 \001(\005\"\033\n\013ComR" - "esponce\022\014\n\004data\030\001 \001(\014\"D\n\022ScannerCrtlCfgR" - "esp\022.\n\nscannerCfg\030\001 \003(\0132\032.stream.Scanner" - "CrtlCfgData\"\210\005\n\022ScannerCrtlCfgData\022\r\n\005se" - "qNo\030\001 \001(\005\022*\n\014fixPointData\030\002 \003(\0132\024.stream" - ".FixPointData\022*\n\014scanParamCfg\030\003 \001(\0132\024.st" - "ream.ScanParamCfg\022,\n\016hatchingParams\030\004 \001(" - "\0132\024.stream.ScanParamCfg\022*\n\014borderParams\030" - "\005 \001(\0132\024.stream.ScanParamCfg\022+\n\rsupportPa" - "rams\030\006 \001(\0132\024.stream.ScanParamCfg\0220\n\017corr" - "ectParamCfg\030\007 \001(\0132\027.stream.CorrectParamC" - "fg\022(\n\013scanTestCfg\030\010 \001(\0132\023.stream.ScanTes" - "tCfg\022,\n\rskyWritingCfg\030\t \001(\0132\025.stream.Sky" - "WritingCfg\0220\n\017powerCompensate\030\n \003(\0132\027.st" - "ream.PowerCompensate\0225\n\020tPowerCompensate" - "\030\013 \003(\0132\033.stream.TimePowerCompensate\022\021\n\tc" - "ontrolNo\030\014 \001(\005\022\020\n\010serialNo\030\r \001(\005\022\023\n\013cont" - "rolType\030\016 \001(\005\022\020\n\010cardName\030\017 \001(\014\022\016\n\006cardI" - "P\030\020 \001(\014\022\020\n\010isEnable\030\021 \001(\010\022\021\n\thadAssign\030\022" - " \001(\010\022\020\n\010hadMatch\030\023 \001(\010\"Y\n\014FixPointData\022\n" - "\n\002id\030\001 \001(\005\022\013\n\003cno\030\002 \001(\005\022\016\n\006pointX\030\003 \001(\002\022" - "\016\n\006pointY\030\004 \001(\002\022\020\n\010duration\030\005 \001(\r\"\275\005\n\014Sc" - "anParamCfg\022\021\n\tedgeLevel\030\001 \001(\005\022\024\n\014edgeLev" - "elMin\030\002 \001(\005\022\024\n\014edgeLevelMax\030\003 \001(\005\022\021\n\tjum" - "pDelay\030\004 \001(\r\022\024\n\014jumpDelayMin\030\005 \001(\r\022\024\n\014ju" - "mpDelayMax\030\006 \001(\r\022\021\n\tscanDelay\030\007 \001(\r\022\024\n\014s" - "canDelayMin\030\010 \001(\r\022\024\n\014scanDelayMax\030\t \001(\r\022" - "\024\n\014polygonDelay\030\n \001(\r\022\027\n\017polygonDelayMin" - "\030\013 \001(\r\022\027\n\017polygonDelayMax\030\014 \001(\r\022\025\n\rlaser" - "offDelay\030\r \001(\003\022\030\n\020laseroffDelayMin\030\016 \001(\003" - "\022\030\n\020laseroffDelayMax\030\017 \001(\003\022\024\n\014laseronDel" - "ay\030\020 \001(\003\022\027\n\017laseronDelayMin\030\021 \001(\003\022\027\n\017las" - "eronDelayMax\030\022 \001(\003\022\024\n\014minJumpDelay\030\023 \001(\r" - "\022\027\n\017minJumpDelayMin\030\024 \001(\r\022\027\n\017minJumpDela" - "yMax\030\025 \001(\r\022\027\n\017jumpLengthLimit\030\026 \001(\r\022\032\n\022j" - "umpLengthLimitMin\030\027 \001(\r\022\032\n\022jumpLengthLim" - "itMax\030\030 \001(\r\022\021\n\tjumpSpeed\030\031 \001(\001\022\024\n\014jumpSp" - "eedMin\030\032 \001(\001\022\024\n\014jumpSpeedMax\030\033 \001(\001\022\021\n\tma" - "rkSpeed\030\034 \001(\001\022\024\n\014markSpeedMin\030\035 \001(\001\022\024\n\014m" - "arkSpeedMax\030\036 \001(\001\"\256\004\n\017CorrectParamCfg\022\023\n" - "\013xmeasureMin\030\001 \001(\001\022\023\n\013xmeasureMax\030\002 \001(\001\022" - "\023\n\013ymeasureMin\030\003 \001(\001\022\023\n\013ymeasureMax\030\004 \001(" - "\001\022\017\n\007xposfix\030\005 \001(\001\022\017\n\007yposfix\030\006 \001(\001\022\021\n\ts" - "canAngle\030\007 \001(\001\022\024\n\014scanAngleMin\030\010 \001(\001\022\024\n\014" - "scanAngleMax\030\t \001(\001\022\020\n\010fixAngle\030\n \001(\001\022\023\n\013" - "fixAngleMin\030\013 \001(\001\022\023\n\013fixAngleMax\030\014 \001(\001\022\020" - "\n\010xcorrect\030\r \001(\001\022\020\n\010ycorrect\030\016 \001(\001\022\023\n\013xc" - "orrectMin\030\017 \001(\001\022\023\n\013xcorrectMax\030\020 \001(\001\022\023\n\013" - "ycorrectMin\030\021 \001(\001\022\023\n\013ycorrectMax\030\022 \001(\001\022\023" - "\n\013realXOffset\030\023 \001(\001\022\023\n\013realYOffset\030\024 \001(\001" - "\022\017\n\007factorK\030\025 \001(\001\022\027\n\017isCorrectFile3D\030\026 \001" - "(\010\022\026\n\016isDynamicFocus\030\027 \001(\010\022\024\n\014defocusRat" - "io\030\030 \001(\001\022\027\n\017defocusRatioMin\030\031 \001(\001\022\027\n\017def" - "ocusRatioMax\030\032 \001(\001\"\226\004\n\013ScanTestCfg\022\022\n\nde" - "bugShape\030\001 \001(\005\022\021\n\tshapeSize\030\002 \001(\005\022\024\n\014sha" - "peSizeMin\030\003 \001(\005\022\026\n\016shape_size_max\030\004 \001(\005\022" - "\023\n\013laser_power\030\005 \001(\005\022\027\n\017laser_power_min\030" - "\006 \001(\005\022\027\n\017laser_power_max\030\007 \001(\005\022\017\n\007defocu" - "s\030\010 \001(\001\022\023\n\013defocus_min\030\t \001(\001\022\023\n\013defocus_" - "max\030\n \001(\001\022\020\n\010is_cycle\030\013 \001(\010\022\017\n\007cross_x\030\014" - " \001(\001\022\017\n\007cross_y\030\r \001(\001\022\022\n\nz_distance\030\016 \001(" - "\001\022\034\n\024isAutoHeatingScanner\030\017 \001(\010\022!\n\031autoH" - "eatingScannerMinutes\030\020 \001(\r\022\036\n\026autoHeatin" - "gScannerSize\030\021 \001(\r\022\037\n\027autoHeatingScanner" - "Speed\030\022 \001(\001\022\031\n\021mark_test_start_x\030\023 \001(\001\022\031" - "\n\021mark_test_start_y\030\024 \001(\001\022\027\n\017mark_test_e" - "nd_x\030\025 \001(\001\022\027\n\017mark_test_end_y\030\026 \001(\001\"\314\002\n\r" - "SkyWritingCfg\022\020\n\010isEnable\030\001 \001(\010\022\017\n\007timel" - "ag\030\002 \001(\001\022\022\n\ntimelagMin\030\003 \001(\001\022\022\n\ntimelagM" - "ax\030\004 \001(\001\022\024\n\014laserOnShift\030\005 \001(\003\022\027\n\017laserO" - "nShiftMin\030\006 \001(\003\022\027\n\017laserOnShiftMax\030\007 \001(\003" - "\022\r\n\005nprev\030\010 \001(\r\022\020\n\010nprevMin\030\t \001(\r\022\020\n\010npr" - "evMax\030\n \001(\r\022\r\n\005npost\030\013 \001(\r\022\020\n\010npostMin\030\014" - " \001(\r\022\020\n\010npostMax\030\r \001(\r\022\014\n\004mode\030\016 \001(\005\022\016\n\006" - "limite\030\017 \001(\001\022\021\n\tlimiteMin\030\020 \001(\001\022\021\n\tlimit" - "eMax\030\021 \001(\001\"d\n\017PowerCompensate\022\013\n\003cno\030\001 \001" - "(\005\022\017\n\007percent\030\002 \001(\005\022\r\n\005value\030\003 \001(\002\022\021\n\tva" - "lue_min\030\004 \001(\002\022\021\n\tvalue_max\030\005 \001(\002\"j\n\023Time" - "PowerCompensate\022\n\n\002id\030\001 \001(\005\022\013\n\003cno\030\002 \001(\005" - "\022\023\n\013startMinute\030\003 \001(\r\022\021\n\tendMinute\030\004 \001(\r" - "\022\022\n\ncompensate\030\005 \001(\002*\223\001\n\004TYPE\022\t\n\005iBOOL\020\000" - "\022\n\n\006iSHORT\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004iINT\020\003\022\t\n\005i" - "UINT\020\004\022\n\n\006iFLOAT\020\005\022\013\n\007iSTRING\020\006\022\t\n\005iCHAR" - "\020\007\022\n\n\006iUCHAR\020\010\022\t\n\005iWORD\020\t\022\013\n\007iDOUBLE\020\n\022\n" - "\n\006iTIMET\020\013**\n\nDATAHANDLE\022\n\n\006UPDATE\020\000\022\007\n\003" - "ADD\020\001\022\007\n\003DEL\020\0022\372\001\n\006Stream\0224\n\006Simple\022\023.st" - "ream.RequestInfo\032\023.stream.ResponseAny\"\000\022" - "=\n\014ServerStream\022\023.stream.RequestInfo\032\024.s" - "tream.ResponseInfo\"\0000\001\022=\n\014ClientStream\022\023" - ".stream.RequestInfo\032\024.stream.ResponseInf" - "o\"\000(\001\022<\n\tAllStream\022\023.stream.RequestInfo\032" - "\024.stream.ResponseInfo\"\000(\0010\001B-\n\027io.grpc.e" - "xamples.streamB\013StreamProtoP\001\242\002\002STb\006prot" - "o3" + "\006powder\030\n \001(\002\"\254\001\n\013RequestInfo\022\020\n\010dataTyp" + "e\030\001 \001(\r\022\017\n\007nameKey\030\002 \001(\014\022\020\n\010strValue\030\003 \001" + "(\014\022\037\n\tvalueType\030\004 \001(\0162\014.stream.TYPE\022&\n\nh" + "andleType\030\005 \001(\0162\022.stream.DATAHANDLE\022\037\n\004i" + "tem\030\006 \003(\0132\021.stream.ParamInfo\"Q\n\014Response" + "Info\022\020\n\010dataType\030\001 \001(\r\022\016\n\006result\030\002 \001(\010\022\037" + "\n\004item\030\003 \003(\0132\021.stream.ParamInfo\"1\n\013Respo" + "nseAny\022\"\n\004data\030\001 \001(\0132\024.google.protobuf.A" + "ny\"\210\001\n\tLayerData\022\023\n\013zCooldinate\030\001 \001(\002\022\016\n" + "\006powder\030\002 \001(\002\022\026\n\016layerThickness\030\003 \001(\002\022.\n" + "\016layerDataBlock\030\004 \003(\0132\026.stream.LayerData" + "Block\022\016\n\006result\030\005 \001(\010\"\266\001\n\016LayerDataBlock" + "\022\021\n\telementId\030\001 \001(\005\022\026\n\016elementParamId\030\002 " + "\001(\005\022\021\n\tblockType\030\003 \001(\r\022*\n\tvecBlocks\030\004 \003(" + "\0132\027.stream.VectorDataBlock\022+\n\013chainBlock" + "s\030\005 \003(\0132\026.stream.ChainDataBlock\022\r\n\005order" + "\030\006 \001(\r\"M\n\017VectorDataBlock\022\016\n\006startX\030\001 \001(" + "\002\022\016\n\006startY\030\002 \001(\002\022\014\n\004endX\030\003 \001(\002\022\014\n\004endY\030" + "\004 \001(\002\"A\n\016ChainDataBlock\022\016\n\006dotNum\030\001 \001(\r\022" + "\037\n\010pointVec\030\002 \003(\0132\r.stream.Point\"#\n\005Poin" + "t\022\014\n\004xPos\030\001 \001(\002\022\014\n\004yPos\030\002 \001(\002\"\033\n\013RegResp" + "once\022\014\n\004data\030\001 \001(\005\"D\n\017ImgInfoResponce\022\022\n" + "\nlevelImage\030\001 \001(\r\022\r\n\005width\030\002 \001(\005\022\016\n\006heig" + "ht\030\003 \001(\005\"\265\001\n\013ComResponce\022\014\n\004data\030\001 \001(\014\022\021" + "\n\tdirectory\030\002 \001(\014\0224\n\010fileInfo\030\003 \003(\0132\".st" + "ream.ComResponce.FileInfoStruct\032O\n\016FileI" + "nfoStruct\022\014\n\004type\030\001 \001(\014\022\020\n\010filePath\030\002 \001(" + "\014\022\020\n\010fileName\030\003 \001(\014\022\013\n\003ext\030\004 \001(\014\"D\n\022Scan" + "nerCrtlCfgResp\022.\n\nscannerCfg\030\001 \003(\0132\032.str" + "eam.ScannerCrtlCfgData\"\210\005\n\022ScannerCrtlCf" + "gData\022\r\n\005seqNo\030\001 \001(\005\022*\n\014fixPointData\030\002 \003" + "(\0132\024.stream.FixPointData\022*\n\014scanParamCfg" + "\030\003 \001(\0132\024.stream.ScanParamCfg\022,\n\016hatching" + "Params\030\004 \001(\0132\024.stream.ScanParamCfg\022*\n\014bo" + "rderParams\030\005 \001(\0132\024.stream.ScanParamCfg\022+" + "\n\rsupportParams\030\006 \001(\0132\024.stream.ScanParam" + "Cfg\0220\n\017correctParamCfg\030\007 \001(\0132\027.stream.Co" + "rrectParamCfg\022(\n\013scanTestCfg\030\010 \001(\0132\023.str" + "eam.ScanTestCfg\022,\n\rskyWritingCfg\030\t \001(\0132\025" + ".stream.SkyWritingCfg\0220\n\017powerCompensate" + "\030\n \003(\0132\027.stream.PowerCompensate\0225\n\020tPowe" + "rCompensate\030\013 \003(\0132\033.stream.TimePowerComp" + "ensate\022\021\n\tcontrolNo\030\014 \001(\005\022\020\n\010serialNo\030\r " + "\001(\005\022\023\n\013controlType\030\016 \001(\005\022\020\n\010cardName\030\017 \001" + "(\014\022\016\n\006cardIP\030\020 \001(\014\022\020\n\010isEnable\030\021 \001(\010\022\021\n\t" + "hadAssign\030\022 \001(\010\022\020\n\010hadMatch\030\023 \001(\010\"Y\n\014Fix" + "PointData\022\n\n\002id\030\001 \001(\005\022\013\n\003cno\030\002 \001(\005\022\016\n\006po" + "intX\030\003 \001(\002\022\016\n\006pointY\030\004 \001(\002\022\020\n\010duration\030\005" + " \001(\r\"\275\005\n\014ScanParamCfg\022\021\n\tedgeLevel\030\001 \001(\005" + "\022\024\n\014edgeLevelMin\030\002 \001(\005\022\024\n\014edgeLevelMax\030\003" + " \001(\005\022\021\n\tjumpDelay\030\004 \001(\r\022\024\n\014jumpDelayMin\030" + "\005 \001(\r\022\024\n\014jumpDelayMax\030\006 \001(\r\022\021\n\tscanDelay" + "\030\007 \001(\r\022\024\n\014scanDelayMin\030\010 \001(\r\022\024\n\014scanDela" + "yMax\030\t \001(\r\022\024\n\014polygonDelay\030\n \001(\r\022\027\n\017poly" + "gonDelayMin\030\013 \001(\r\022\027\n\017polygonDelayMax\030\014 \001" + "(\r\022\025\n\rlaseroffDelay\030\r \001(\003\022\030\n\020laseroffDel" + "ayMin\030\016 \001(\003\022\030\n\020laseroffDelayMax\030\017 \001(\003\022\024\n" + "\014laseronDelay\030\020 \001(\003\022\027\n\017laseronDelayMin\030\021" + " \001(\003\022\027\n\017laseronDelayMax\030\022 \001(\003\022\024\n\014minJump" + "Delay\030\023 \001(\r\022\027\n\017minJumpDelayMin\030\024 \001(\r\022\027\n\017" + "minJumpDelayMax\030\025 \001(\r\022\027\n\017jumpLengthLimit" + "\030\026 \001(\r\022\032\n\022jumpLengthLimitMin\030\027 \001(\r\022\032\n\022ju" + "mpLengthLimitMax\030\030 \001(\r\022\021\n\tjumpSpeed\030\031 \001(" + "\001\022\024\n\014jumpSpeedMin\030\032 \001(\001\022\024\n\014jumpSpeedMax\030" + "\033 \001(\001\022\021\n\tmarkSpeed\030\034 \001(\001\022\024\n\014markSpeedMin" + "\030\035 \001(\001\022\024\n\014markSpeedMax\030\036 \001(\001\"\256\004\n\017Correct" + "ParamCfg\022\023\n\013xmeasureMin\030\001 \001(\001\022\023\n\013xmeasur" + "eMax\030\002 \001(\001\022\023\n\013ymeasureMin\030\003 \001(\001\022\023\n\013ymeas" + "ureMax\030\004 \001(\001\022\017\n\007xposfix\030\005 \001(\001\022\017\n\007yposfix" + "\030\006 \001(\001\022\021\n\tscanAngle\030\007 \001(\001\022\024\n\014scanAngleMi" + "n\030\010 \001(\001\022\024\n\014scanAngleMax\030\t \001(\001\022\020\n\010fixAngl" + "e\030\n \001(\001\022\023\n\013fixAngleMin\030\013 \001(\001\022\023\n\013fixAngle" + "Max\030\014 \001(\001\022\020\n\010xcorrect\030\r \001(\001\022\020\n\010ycorrect\030" + "\016 \001(\001\022\023\n\013xcorrectMin\030\017 \001(\001\022\023\n\013xcorrectMa" + "x\030\020 \001(\001\022\023\n\013ycorrectMin\030\021 \001(\001\022\023\n\013ycorrect" + "Max\030\022 \001(\001\022\023\n\013realXOffset\030\023 \001(\001\022\023\n\013realYO" + "ffset\030\024 \001(\001\022\017\n\007factorK\030\025 \001(\001\022\027\n\017isCorrec" + "tFile3D\030\026 \001(\010\022\026\n\016isDynamicFocus\030\027 \001(\010\022\024\n" + "\014defocusRatio\030\030 \001(\001\022\027\n\017defocusRatioMin\030\031" + " \001(\001\022\027\n\017defocusRatioMax\030\032 \001(\001\"\226\004\n\013ScanTe" + "stCfg\022\022\n\ndebugShape\030\001 \001(\005\022\021\n\tshapeSize\030\002" + " \001(\005\022\024\n\014shapeSizeMin\030\003 \001(\005\022\026\n\016shape_size" + "_max\030\004 \001(\005\022\023\n\013laser_power\030\005 \001(\005\022\027\n\017laser" + "_power_min\030\006 \001(\005\022\027\n\017laser_power_max\030\007 \001(" + "\005\022\017\n\007defocus\030\010 \001(\001\022\023\n\013defocus_min\030\t \001(\001\022" + "\023\n\013defocus_max\030\n \001(\001\022\020\n\010is_cycle\030\013 \001(\010\022\017" + "\n\007cross_x\030\014 \001(\001\022\017\n\007cross_y\030\r \001(\001\022\022\n\nz_di" + "stance\030\016 \001(\001\022\034\n\024isAutoHeatingScanner\030\017 \001" + "(\010\022!\n\031autoHeatingScannerMinutes\030\020 \001(\r\022\036\n" + "\026autoHeatingScannerSize\030\021 \001(\r\022\037\n\027autoHea" + "tingScannerSpeed\030\022 \001(\001\022\031\n\021mark_test_star" + "t_x\030\023 \001(\001\022\031\n\021mark_test_start_y\030\024 \001(\001\022\027\n\017" + "mark_test_end_x\030\025 \001(\001\022\027\n\017mark_test_end_y" + "\030\026 \001(\001\"\314\002\n\rSkyWritingCfg\022\020\n\010isEnable\030\001 \001" + "(\010\022\017\n\007timelag\030\002 \001(\001\022\022\n\ntimelagMin\030\003 \001(\001\022" + "\022\n\ntimelagMax\030\004 \001(\001\022\024\n\014laserOnShift\030\005 \001(" + "\003\022\027\n\017laserOnShiftMin\030\006 \001(\003\022\027\n\017laserOnShi" + "ftMax\030\007 \001(\003\022\r\n\005nprev\030\010 \001(\r\022\020\n\010nprevMin\030\t" + " \001(\r\022\020\n\010nprevMax\030\n \001(\r\022\r\n\005npost\030\013 \001(\r\022\020\n" + "\010npostMin\030\014 \001(\r\022\020\n\010npostMax\030\r \001(\r\022\014\n\004mod" + "e\030\016 \001(\005\022\016\n\006limite\030\017 \001(\001\022\021\n\tlimiteMin\030\020 \001" + "(\001\022\021\n\tlimiteMax\030\021 \001(\001\"d\n\017PowerCompensate" + "\022\013\n\003cno\030\001 \001(\005\022\017\n\007percent\030\002 \001(\005\022\r\n\005value\030" + "\003 \001(\002\022\021\n\tvalue_min\030\004 \001(\002\022\021\n\tvalue_max\030\005 " + "\001(\002\"j\n\023TimePowerCompensate\022\n\n\002id\030\001 \001(\005\022\013" + "\n\003cno\030\002 \001(\005\022\023\n\013startMinute\030\003 \001(\r\022\021\n\tendM" + "inute\030\004 \001(\r\022\022\n\ncompensate\030\005 \001(\002*\223\001\n\004TYPE" + "\022\t\n\005iBOOL\020\000\022\n\n\006iSHORT\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004" + "iINT\020\003\022\t\n\005iUINT\020\004\022\n\n\006iFLOAT\020\005\022\013\n\007iSTRING" + "\020\006\022\t\n\005iCHAR\020\007\022\n\n\006iUCHAR\020\010\022\t\n\005iWORD\020\t\022\013\n\007" + "iDOUBLE\020\n\022\n\n\006iTIMET\020\013**\n\nDATAHANDLE\022\n\n\006U" + "PDATE\020\000\022\007\n\003ADD\020\001\022\007\n\003DEL\020\0022\372\001\n\006Stream\0224\n\006" + "Simple\022\023.stream.RequestInfo\032\023.stream.Res" + "ponseAny\"\000\022=\n\014ServerStream\022\023.stream.Requ" + "estInfo\032\024.stream.ResponseInfo\"\0000\001\022=\n\014Cli" + "entStream\022\023.stream.RequestInfo\032\024.stream." + "ResponseInfo\"\000(\001\022<\n\tAllStream\022\023.stream.R" + "equestInfo\032\024.stream.ResponseInfo\"\000(\0010\001B-" + "\n\027io.grpc.examples.streamB\013StreamProtoP\001" + "\242\002\002STb\006proto3" }; static const ::_pbi::DescriptorTable* const descriptor_table_stream_2eproto_deps[1] = { @@ -1113,13 +1143,13 @@ static ::absl::once_flag descriptor_table_stream_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_stream_2eproto = { false, false, - 5002, + 5013, descriptor_table_protodef_stream_2eproto, "stream.proto", &descriptor_table_stream_2eproto_once, descriptor_table_stream_2eproto_deps, 1, - 21, + 22, schemas, file_default_instances, TableStruct_stream_2eproto::offsets, @@ -1201,21 +1231,13 @@ ParamInfo::ParamInfo(const ParamInfo& from) : ::google::protobuf::Message() { decltype(_impl_.namekey_){}, decltype(_impl_.strvalue_){}, decltype(_impl_.context_){}, - decltype(_impl_.cardname_){}, - decltype(_impl_.cardip_){}, decltype(_impl_.valuetype_){}, - decltype(_impl_.startlayer_){}, decltype(_impl_.isenable_){}, decltype(_impl_.isalarm_){}, decltype(_impl_.isshow_){}, - decltype(_impl_.hadassign_){}, + decltype(_impl_.startlayer_){}, decltype(_impl_.endlayer_){}, decltype(_impl_.powder_){}, - decltype(_impl_.seqno_){}, - decltype(_impl_.controlno_){}, - decltype(_impl_.serialno_){}, - decltype(_impl_.controltype_){}, - decltype(_impl_.hadmatch_){}, /*decltype(_impl_._cached_size_)*/ {}, }; _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>( @@ -1241,23 +1263,9 @@ ParamInfo::ParamInfo(const ParamInfo& from) : ::google::protobuf::Message() { if (!from._internal_context().empty()) { _this->_impl_.context_.Set(from._internal_context(), _this->GetArenaForAllocation()); } - _impl_.cardname_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardname_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (!from._internal_cardname().empty()) { - _this->_impl_.cardname_.Set(from._internal_cardname(), _this->GetArenaForAllocation()); - } - _impl_.cardip_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardip_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (!from._internal_cardip().empty()) { - _this->_impl_.cardip_.Set(from._internal_cardip(), _this->GetArenaForAllocation()); - } ::memcpy(&_impl_.valuetype_, &from._impl_.valuetype_, - static_cast<::size_t>(reinterpret_cast(&_impl_.hadmatch_) - - reinterpret_cast(&_impl_.valuetype_)) + sizeof(_impl_.hadmatch_)); + static_cast<::size_t>(reinterpret_cast(&_impl_.powder_) - + reinterpret_cast(&_impl_.valuetype_)) + sizeof(_impl_.powder_)); // @@protoc_insertion_point(copy_constructor:stream.ParamInfo) } @@ -1267,21 +1275,13 @@ inline void ParamInfo::SharedCtor(::_pb::Arena* arena) { decltype(_impl_.namekey_){}, decltype(_impl_.strvalue_){}, decltype(_impl_.context_){}, - decltype(_impl_.cardname_){}, - decltype(_impl_.cardip_){}, decltype(_impl_.valuetype_){0}, - decltype(_impl_.startlayer_){0}, decltype(_impl_.isenable_){false}, decltype(_impl_.isalarm_){false}, decltype(_impl_.isshow_){false}, - decltype(_impl_.hadassign_){false}, + decltype(_impl_.startlayer_){0}, decltype(_impl_.endlayer_){0}, decltype(_impl_.powder_){0}, - decltype(_impl_.seqno_){0}, - decltype(_impl_.controlno_){0}, - decltype(_impl_.serialno_){0}, - decltype(_impl_.controltype_){0}, - decltype(_impl_.hadmatch_){false}, /*decltype(_impl_._cached_size_)*/ {}, }; _impl_.namekey_.InitDefault(); @@ -1296,14 +1296,6 @@ inline void ParamInfo::SharedCtor(::_pb::Arena* arena) { #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING _impl_.context_.Set("", GetArenaForAllocation()); #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardname_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardname_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardip_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardip_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING } ParamInfo::~ParamInfo() { // @@protoc_insertion_point(destructor:stream.ParamInfo) @@ -1315,8 +1307,6 @@ inline void ParamInfo::SharedDtor() { _impl_.namekey_.Destroy(); _impl_.strvalue_.Destroy(); _impl_.context_.Destroy(); - _impl_.cardname_.Destroy(); - _impl_.cardip_.Destroy(); } void ParamInfo::SetCachedSize(int size) const { _impl_._cached_size_.Set(size); @@ -1331,11 +1321,9 @@ PROTOBUF_NOINLINE void ParamInfo::Clear() { _impl_.namekey_.ClearToEmpty(); _impl_.strvalue_.ClearToEmpty(); _impl_.context_.ClearToEmpty(); - _impl_.cardname_.ClearToEmpty(); - _impl_.cardip_.ClearToEmpty(); ::memset(&_impl_.valuetype_, 0, static_cast<::size_t>( - reinterpret_cast(&_impl_.hadmatch_) - - reinterpret_cast(&_impl_.valuetype_)) + sizeof(_impl_.hadmatch_)); + reinterpret_cast(&_impl_.powder_) - + reinterpret_cast(&_impl_.valuetype_)) + sizeof(_impl_.powder_)); _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); } @@ -1347,15 +1335,15 @@ const char* ParamInfo::_InternalParse( PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { +const ::_pbi::TcParseTable<4, 10, 0, 0, 2> ParamInfo::_table_ = { { 0, // no _has_bits_ 0, // no _extensions_ - 18, 248, // max_field_number, fast_idx_mask + 10, 120, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294705152, // skipmap + 4294966272, // skipmap offsetof(decltype(_table_), field_entries), - 18, // num_field_entries + 10, // num_field_entries 0, // num_aux_entries offsetof(decltype(_table_), field_names), // no aux_entries &_ParamInfo_default_instance_._instance, @@ -1392,38 +1380,6 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { // float powder = 10; {::_pbi::TcParser::FastF32S1, {85, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.powder_)}}, - // int32 seqNo = 11; - {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ParamInfo, _impl_.seqno_), 63>(), - {88, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.seqno_)}}, - // int32 controlNo = 12; - {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ParamInfo, _impl_.controlno_), 63>(), - {96, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.controlno_)}}, - // int32 serialNo = 13; - {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ParamInfo, _impl_.serialno_), 63>(), - {104, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.serialno_)}}, - // int32 controlType = 14; - {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ParamInfo, _impl_.controltype_), 63>(), - {112, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.controltype_)}}, - // bytes cardName = 15; - {::_pbi::TcParser::FastBS1, - {122, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.cardname_)}}, - // bytes cardIP = 16; - {::_pbi::TcParser::FastBS2, - {386, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.cardip_)}}, - // bool hadAssign = 17; - {::_pbi::TcParser::FastV8S2, - {392, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.hadassign_)}}, - // bool hadMatch = 18; - {::_pbi::TcParser::FastV8S2, - {400, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.hadmatch_)}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, @@ -1462,30 +1418,6 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { // float powder = 10; {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.powder_), 0, 0, (0 | ::_fl::kFcSingular | ::_fl::kFloat)}, - // int32 seqNo = 11; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.seqno_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, - // int32 controlNo = 12; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.controlno_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, - // int32 serialNo = 13; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.serialno_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, - // int32 controlType = 14; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.controltype_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, - // bytes cardName = 15; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.cardname_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, - // bytes cardIP = 16; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.cardip_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, - // bool hadAssign = 17; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.hadassign_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kBool)}, - // bool hadMatch = 18; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.hadmatch_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kBool)}, }}, // no aux_entries {{ @@ -1571,60 +1503,6 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { 10, this->_internal_powder(), target); } - // int32 seqNo = 11; - if (this->_internal_seqno() != 0) { - target = ::google::protobuf::internal::WireFormatLite:: - WriteInt32ToArrayWithField<11>( - stream, this->_internal_seqno(), target); - } - - // int32 controlNo = 12; - if (this->_internal_controlno() != 0) { - target = ::google::protobuf::internal::WireFormatLite:: - WriteInt32ToArrayWithField<12>( - stream, this->_internal_controlno(), target); - } - - // int32 serialNo = 13; - if (this->_internal_serialno() != 0) { - target = ::google::protobuf::internal::WireFormatLite:: - WriteInt32ToArrayWithField<13>( - stream, this->_internal_serialno(), target); - } - - // int32 controlType = 14; - if (this->_internal_controltype() != 0) { - target = ::google::protobuf::internal::WireFormatLite:: - WriteInt32ToArrayWithField<14>( - stream, this->_internal_controltype(), target); - } - - // bytes cardName = 15; - if (!this->_internal_cardname().empty()) { - const std::string& _s = this->_internal_cardname(); - target = stream->WriteBytesMaybeAliased(15, _s, target); - } - - // bytes cardIP = 16; - if (!this->_internal_cardip().empty()) { - const std::string& _s = this->_internal_cardip(); - target = stream->WriteBytesMaybeAliased(16, _s, target); - } - - // bool hadAssign = 17; - if (this->_internal_hadassign() != 0) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray( - 17, this->_internal_hadassign(), target); - } - - // bool hadMatch = 18; - if (this->_internal_hadmatch() != 0) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray( - 18, this->_internal_hadmatch(), target); - } - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( @@ -1660,30 +1538,12 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { this->_internal_context()); } - // bytes cardName = 15; - if (!this->_internal_cardname().empty()) { - total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( - this->_internal_cardname()); - } - - // bytes cardIP = 16; - if (!this->_internal_cardip().empty()) { - total_size += 2 + ::google::protobuf::internal::WireFormatLite::BytesSize( - this->_internal_cardip()); - } - // .stream.TYPE valueType = 3; if (this->_internal_valuetype() != 0) { total_size += 1 + ::_pbi::WireFormatLite::EnumSize(this->_internal_valuetype()); } - // int32 startLayer = 8; - if (this->_internal_startlayer() != 0) { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( - this->_internal_startlayer()); - } - // bool isEnable = 5; if (this->_internal_isenable() != 0) { total_size += 2; @@ -1699,9 +1559,10 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { total_size += 2; } - // bool hadAssign = 17; - if (this->_internal_hadassign() != 0) { - total_size += 3; + // int32 startLayer = 8; + if (this->_internal_startlayer() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( + this->_internal_startlayer()); } // int32 endLayer = 9; @@ -1720,35 +1581,6 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { total_size += 5; } - // int32 seqNo = 11; - if (this->_internal_seqno() != 0) { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( - this->_internal_seqno()); - } - - // int32 controlNo = 12; - if (this->_internal_controlno() != 0) { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( - this->_internal_controlno()); - } - - // int32 serialNo = 13; - if (this->_internal_serialno() != 0) { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( - this->_internal_serialno()); - } - - // int32 controlType = 14; - if (this->_internal_controltype() != 0) { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( - this->_internal_controltype()); - } - - // bool hadMatch = 18; - if (this->_internal_hadmatch() != 0) { - total_size += 3; - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } @@ -1776,18 +1608,9 @@ void ParamInfo::MergeImpl(::google::protobuf::Message& to_msg, const ::google::p if (!from._internal_context().empty()) { _this->_internal_set_context(from._internal_context()); } - if (!from._internal_cardname().empty()) { - _this->_internal_set_cardname(from._internal_cardname()); - } - if (!from._internal_cardip().empty()) { - _this->_internal_set_cardip(from._internal_cardip()); - } if (from._internal_valuetype() != 0) { _this->_internal_set_valuetype(from._internal_valuetype()); } - if (from._internal_startlayer() != 0) { - _this->_internal_set_startlayer(from._internal_startlayer()); - } if (from._internal_isenable() != 0) { _this->_internal_set_isenable(from._internal_isenable()); } @@ -1797,8 +1620,8 @@ void ParamInfo::MergeImpl(::google::protobuf::Message& to_msg, const ::google::p if (from._internal_isshow() != 0) { _this->_internal_set_isshow(from._internal_isshow()); } - if (from._internal_hadassign() != 0) { - _this->_internal_set_hadassign(from._internal_hadassign()); + if (from._internal_startlayer() != 0) { + _this->_internal_set_startlayer(from._internal_startlayer()); } if (from._internal_endlayer() != 0) { _this->_internal_set_endlayer(from._internal_endlayer()); @@ -1811,21 +1634,6 @@ void ParamInfo::MergeImpl(::google::protobuf::Message& to_msg, const ::google::p if (raw_powder != 0) { _this->_internal_set_powder(from._internal_powder()); } - if (from._internal_seqno() != 0) { - _this->_internal_set_seqno(from._internal_seqno()); - } - if (from._internal_controlno() != 0) { - _this->_internal_set_controlno(from._internal_controlno()); - } - if (from._internal_serialno() != 0) { - _this->_internal_set_serialno(from._internal_serialno()); - } - if (from._internal_controltype() != 0) { - _this->_internal_set_controltype(from._internal_controltype()); - } - if (from._internal_hadmatch() != 0) { - _this->_internal_set_hadmatch(from._internal_hadmatch()); - } _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); } @@ -1851,13 +1659,9 @@ void ParamInfo::InternalSwap(ParamInfo* other) { &other->_impl_.strvalue_, rhs_arena); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.context_, lhs_arena, &other->_impl_.context_, rhs_arena); - ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cardname_, lhs_arena, - &other->_impl_.cardname_, rhs_arena); - ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cardip_, lhs_arena, - &other->_impl_.cardip_, rhs_arena); ::google::protobuf::internal::memswap< - PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.hadmatch_) - + sizeof(ParamInfo::_impl_.hadmatch_) + PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.powder_) + + sizeof(ParamInfo::_impl_.powder_) - PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.valuetype_)>( reinterpret_cast(&_impl_.valuetype_), reinterpret_cast(&other->_impl_.valuetype_)); @@ -4380,6 +4184,306 @@ void ImgInfoResponce::InternalSwap(ImgInfoResponce* other) { } // =================================================================== +class ComResponce_FileInfoStruct::_Internal { + public: +}; + +ComResponce_FileInfoStruct::ComResponce_FileInfoStruct(::google::protobuf::Arena* arena) + : ::google::protobuf::Message(arena) { + SharedCtor(arena); + // @@protoc_insertion_point(arena_constructor:stream.ComResponce.FileInfoStruct) +} +ComResponce_FileInfoStruct::ComResponce_FileInfoStruct(const ComResponce_FileInfoStruct& from) : ::google::protobuf::Message() { + ComResponce_FileInfoStruct* const _this = this; + (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.type_){}, + decltype(_impl_.filepath_){}, + decltype(_impl_.filename_){}, + decltype(_impl_.ext_){}, + /*decltype(_impl_._cached_size_)*/ {}, + }; + _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>( + from._internal_metadata_); + _impl_.type_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.type_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_type().empty()) { + _this->_impl_.type_.Set(from._internal_type(), _this->GetArenaForAllocation()); + } + _impl_.filepath_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filepath_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_filepath().empty()) { + _this->_impl_.filepath_.Set(from._internal_filepath(), _this->GetArenaForAllocation()); + } + _impl_.filename_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filename_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_filename().empty()) { + _this->_impl_.filename_.Set(from._internal_filename(), _this->GetArenaForAllocation()); + } + _impl_.ext_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.ext_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_ext().empty()) { + _this->_impl_.ext_.Set(from._internal_ext(), _this->GetArenaForAllocation()); + } + + // @@protoc_insertion_point(copy_constructor:stream.ComResponce.FileInfoStruct) +} +inline void ComResponce_FileInfoStruct::SharedCtor(::_pb::Arena* arena) { + (void)arena; + new (&_impl_) Impl_{ + decltype(_impl_.type_){}, + decltype(_impl_.filepath_){}, + decltype(_impl_.filename_){}, + decltype(_impl_.ext_){}, + /*decltype(_impl_._cached_size_)*/ {}, + }; + _impl_.type_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.type_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filepath_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filepath_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filename_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filename_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.ext_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.ext_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} +ComResponce_FileInfoStruct::~ComResponce_FileInfoStruct() { + // @@protoc_insertion_point(destructor:stream.ComResponce.FileInfoStruct) + _internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>(); + SharedDtor(); +} +inline void ComResponce_FileInfoStruct::SharedDtor() { + ABSL_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.type_.Destroy(); + _impl_.filepath_.Destroy(); + _impl_.filename_.Destroy(); + _impl_.ext_.Destroy(); +} +void ComResponce_FileInfoStruct::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +PROTOBUF_NOINLINE void ComResponce_FileInfoStruct::Clear() { +// @@protoc_insertion_point(message_clear_start:stream.ComResponce.FileInfoStruct) + ::uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.type_.ClearToEmpty(); + _impl_.filepath_.ClearToEmpty(); + _impl_.filename_.ClearToEmpty(); + _impl_.ext_.ClearToEmpty(); + _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); +} + +const char* ComResponce_FileInfoStruct::_InternalParse( + const char* ptr, ::_pbi::ParseContext* ctx) { + ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header); + return ptr; +} + + +PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 +const ::_pbi::TcParseTable<2, 4, 0, 0, 2> ComResponce_FileInfoStruct::_table_ = { + { + 0, // no _has_bits_ + 0, // no _extensions_ + 4, 24, // max_field_number, fast_idx_mask + offsetof(decltype(_table_), field_lookup_table), + 4294967280, // skipmap + offsetof(decltype(_table_), field_entries), + 4, // num_field_entries + 0, // num_aux_entries + offsetof(decltype(_table_), field_names), // no aux_entries + &_ComResponce_FileInfoStruct_default_instance_._instance, + ::_pbi::TcParser::GenericFallback, // fallback + }, {{ + // bytes ext = 4; + {::_pbi::TcParser::FastBS1, + {34, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.ext_)}}, + // bytes type = 1; + {::_pbi::TcParser::FastBS1, + {10, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.type_)}}, + // bytes filePath = 2; + {::_pbi::TcParser::FastBS1, + {18, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.filepath_)}}, + // bytes fileName = 3; + {::_pbi::TcParser::FastBS1, + {26, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.filename_)}}, + }}, {{ + 65535, 65535 + }}, {{ + // bytes type = 1; + {PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.type_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, + // bytes filePath = 2; + {PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.filepath_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, + // bytes fileName = 3; + {PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.filename_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, + // bytes ext = 4; + {PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.ext_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, + }}, + // no aux_entries + {{ + }}, +}; + +::uint8_t* ComResponce_FileInfoStruct::_InternalSerialize( + ::uint8_t* target, + ::google::protobuf::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:stream.ComResponce.FileInfoStruct) + ::uint32_t cached_has_bits = 0; + (void)cached_has_bits; + + // bytes type = 1; + if (!this->_internal_type().empty()) { + const std::string& _s = this->_internal_type(); + target = stream->WriteBytesMaybeAliased(1, _s, target); + } + + // bytes filePath = 2; + if (!this->_internal_filepath().empty()) { + const std::string& _s = this->_internal_filepath(); + target = stream->WriteBytesMaybeAliased(2, _s, target); + } + + // bytes fileName = 3; + if (!this->_internal_filename().empty()) { + const std::string& _s = this->_internal_filename(); + target = stream->WriteBytesMaybeAliased(3, _s, target); + } + + // bytes ext = 4; + if (!this->_internal_ext().empty()) { + const std::string& _s = this->_internal_ext(); + target = stream->WriteBytesMaybeAliased(4, _s, target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = + ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:stream.ComResponce.FileInfoStruct) + return target; +} + +::size_t ComResponce_FileInfoStruct::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:stream.ComResponce.FileInfoStruct) + ::size_t total_size = 0; + + ::uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // bytes type = 1; + if (!this->_internal_type().empty()) { + total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->_internal_type()); + } + + // bytes filePath = 2; + if (!this->_internal_filepath().empty()) { + total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->_internal_filepath()); + } + + // bytes fileName = 3; + if (!this->_internal_filename().empty()) { + total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->_internal_filename()); + } + + // bytes ext = 4; + if (!this->_internal_ext().empty()) { + total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->_internal_ext()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::google::protobuf::Message::ClassData ComResponce_FileInfoStruct::_class_data_ = { + ::google::protobuf::Message::CopyWithSourceCheck, + ComResponce_FileInfoStruct::MergeImpl +}; +const ::google::protobuf::Message::ClassData*ComResponce_FileInfoStruct::GetClassData() const { return &_class_data_; } + + +void ComResponce_FileInfoStruct::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:stream.ComResponce.FileInfoStruct) + ABSL_DCHECK_NE(&from, _this); + ::uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_type().empty()) { + _this->_internal_set_type(from._internal_type()); + } + if (!from._internal_filepath().empty()) { + _this->_internal_set_filepath(from._internal_filepath()); + } + if (!from._internal_filename().empty()) { + _this->_internal_set_filename(from._internal_filename()); + } + if (!from._internal_ext().empty()) { + _this->_internal_set_ext(from._internal_ext()); + } + _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); +} + +void ComResponce_FileInfoStruct::CopyFrom(const ComResponce_FileInfoStruct& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:stream.ComResponce.FileInfoStruct) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +PROTOBUF_NOINLINE bool ComResponce_FileInfoStruct::IsInitialized() const { + return true; +} + +void ComResponce_FileInfoStruct::InternalSwap(ComResponce_FileInfoStruct* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.type_, lhs_arena, + &other->_impl_.type_, rhs_arena); + ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.filepath_, lhs_arena, + &other->_impl_.filepath_, rhs_arena); + ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.filename_, lhs_arena, + &other->_impl_.filename_, rhs_arena); + ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.ext_, lhs_arena, + &other->_impl_.ext_, rhs_arena); +} + +::google::protobuf::Metadata ComResponce_FileInfoStruct::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, + file_level_metadata_stream_2eproto[11]); +} +// =================================================================== + class ComResponce::_Internal { public: }; @@ -4393,7 +4497,9 @@ ComResponce::ComResponce(const ComResponce& from) : ::google::protobuf::Message( ComResponce* const _this = this; (void)_this; new (&_impl_) Impl_{ + decltype(_impl_.fileinfo_){from._impl_.fileinfo_}, decltype(_impl_.data_){}, + decltype(_impl_.directory_){}, /*decltype(_impl_._cached_size_)*/ {}, }; _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>( @@ -4405,19 +4511,32 @@ ComResponce::ComResponce(const ComResponce& from) : ::google::protobuf::Message( if (!from._internal_data().empty()) { _this->_impl_.data_.Set(from._internal_data(), _this->GetArenaForAllocation()); } + _impl_.directory_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.directory_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_directory().empty()) { + _this->_impl_.directory_.Set(from._internal_directory(), _this->GetArenaForAllocation()); + } // @@protoc_insertion_point(copy_constructor:stream.ComResponce) } inline void ComResponce::SharedCtor(::_pb::Arena* arena) { (void)arena; new (&_impl_) Impl_{ + decltype(_impl_.fileinfo_){arena}, decltype(_impl_.data_){}, + decltype(_impl_.directory_){}, /*decltype(_impl_._cached_size_)*/ {}, }; _impl_.data_.InitDefault(); #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING _impl_.data_.Set("", GetArenaForAllocation()); #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.directory_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.directory_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING } ComResponce::~ComResponce() { // @@protoc_insertion_point(destructor:stream.ComResponce) @@ -4426,7 +4545,9 @@ ComResponce::~ComResponce() { } inline void ComResponce::SharedDtor() { ABSL_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.fileinfo_.~RepeatedPtrField(); _impl_.data_.Destroy(); + _impl_.directory_.Destroy(); } void ComResponce::SetCachedSize(int size) const { _impl_._cached_size_.Set(size); @@ -4438,7 +4559,9 @@ PROTOBUF_NOINLINE void ComResponce::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + _internal_mutable_fileinfo()->Clear(); _impl_.data_.ClearToEmpty(); + _impl_.directory_.ClearToEmpty(); _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); } @@ -4450,32 +4573,45 @@ const char* ComResponce::_InternalParse( PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<0, 1, 0, 0, 2> ComResponce::_table_ = { +const ::_pbi::TcParseTable<2, 3, 1, 0, 2> ComResponce::_table_ = { { 0, // no _has_bits_ 0, // no _extensions_ - 1, 0, // max_field_number, fast_idx_mask + 3, 24, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294967294, // skipmap + 4294967288, // skipmap offsetof(decltype(_table_), field_entries), - 1, // num_field_entries - 0, // num_aux_entries - offsetof(decltype(_table_), field_names), // no aux_entries + 3, // num_field_entries + 1, // num_aux_entries + offsetof(decltype(_table_), aux_entries), &_ComResponce_default_instance_._instance, ::_pbi::TcParser::GenericFallback, // fallback }, {{ + {::_pbi::TcParser::MiniParse, {}}, // bytes data = 1; {::_pbi::TcParser::FastBS1, {10, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.data_)}}, + // bytes directory = 2; + {::_pbi::TcParser::FastBS1, + {18, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.directory_)}}, + // repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; + {::_pbi::TcParser::FastMtR1, + {26, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.fileinfo_)}}, }}, {{ 65535, 65535 }}, {{ // bytes data = 1; {PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.data_), 0, 0, (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, - }}, - // no aux_entries - {{ + // bytes directory = 2; + {PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.directory_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, + // repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; + {PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.fileinfo_), 0, 0, + (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)}, + }}, {{ + {::_pbi::TcParser::GetTable<::stream::ComResponce_FileInfoStruct>()}, + }}, {{ }}, }; @@ -4492,6 +4628,20 @@ const ::_pbi::TcParseTable<0, 1, 0, 0, 2> ComResponce::_table_ = { target = stream->WriteBytesMaybeAliased(1, _s, target); } + // bytes directory = 2; + if (!this->_internal_directory().empty()) { + const std::string& _s = this->_internal_directory(); + target = stream->WriteBytesMaybeAliased(2, _s, target); + } + + // repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; + for (unsigned i = 0, + n = static_cast(this->_internal_fileinfo_size()); i < n; i++) { + const auto& repfield = this->_internal_fileinfo().Get(i); + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( @@ -4509,12 +4659,24 @@ const ::_pbi::TcParseTable<0, 1, 0, 0, 2> ComResponce::_table_ = { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + // repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; + total_size += 1UL * this->_internal_fileinfo_size(); + for (const auto& msg : this->_internal_fileinfo()) { + total_size += + ::google::protobuf::internal::WireFormatLite::MessageSize(msg); + } // bytes data = 1; if (!this->_internal_data().empty()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( this->_internal_data()); } + // bytes directory = 2; + if (!this->_internal_directory().empty()) { + total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->_internal_directory()); + } + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } @@ -4533,9 +4695,13 @@ void ComResponce::MergeImpl(::google::protobuf::Message& to_msg, const ::google: ::uint32_t cached_has_bits = 0; (void) cached_has_bits; + _this->_internal_mutable_fileinfo()->MergeFrom(from._internal_fileinfo()); if (!from._internal_data().empty()) { _this->_internal_set_data(from._internal_data()); } + if (!from._internal_directory().empty()) { + _this->_internal_set_directory(from._internal_directory()); + } _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); } @@ -4555,14 +4721,17 @@ void ComResponce::InternalSwap(ComResponce* other) { auto* lhs_arena = GetArenaForAllocation(); auto* rhs_arena = other->GetArenaForAllocation(); _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.fileinfo_.InternalSwap(&other->_impl_.fileinfo_); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.data_, lhs_arena, &other->_impl_.data_, rhs_arena); + ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.directory_, lhs_arena, + &other->_impl_.directory_, rhs_arena); } ::google::protobuf::Metadata ComResponce::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[11]); + file_level_metadata_stream_2eproto[12]); } // =================================================================== @@ -4734,7 +4903,7 @@ void ScannerCrtlCfgResp::InternalSwap(ScannerCrtlCfgResp* other) { ::google::protobuf::Metadata ScannerCrtlCfgResp::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[12]); + file_level_metadata_stream_2eproto[13]); } // =================================================================== @@ -5539,7 +5708,7 @@ void ScannerCrtlCfgData::InternalSwap(ScannerCrtlCfgData* other) { ::google::protobuf::Metadata ScannerCrtlCfgData::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[13]); + file_level_metadata_stream_2eproto[14]); } // =================================================================== @@ -5835,7 +6004,7 @@ void FixPointData::InternalSwap(FixPointData* other) { ::google::protobuf::Metadata FixPointData::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[14]); + file_level_metadata_stream_2eproto[15]); } // =================================================================== @@ -6761,7 +6930,7 @@ void ScanParamCfg::InternalSwap(ScanParamCfg* other) { ::google::protobuf::Metadata ScanParamCfg::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[15]); + file_level_metadata_stream_2eproto[16]); } // =================================================================== @@ -7849,7 +8018,7 @@ void CorrectParamCfg::InternalSwap(CorrectParamCfg* other) { ::google::protobuf::Metadata CorrectParamCfg::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[16]); + file_level_metadata_stream_2eproto[17]); } // =================================================================== @@ -8667,7 +8836,7 @@ void ScanTestCfg::InternalSwap(ScanTestCfg* other) { ::google::protobuf::Metadata ScanTestCfg::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[17]); + file_level_metadata_stream_2eproto[18]); } // =================================================================== @@ -9306,7 +9475,7 @@ void SkyWritingCfg::InternalSwap(SkyWritingCfg* other) { ::google::protobuf::Metadata SkyWritingCfg::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[18]); + file_level_metadata_stream_2eproto[19]); } // =================================================================== @@ -9616,7 +9785,7 @@ void PowerCompensate::InternalSwap(PowerCompensate* other) { ::google::protobuf::Metadata PowerCompensate::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[19]); + file_level_metadata_stream_2eproto[20]); } // =================================================================== @@ -9898,7 +10067,7 @@ void TimePowerCompensate::InternalSwap(TimePowerCompensate* other) { ::google::protobuf::Metadata TimePowerCompensate::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[20]); + file_level_metadata_stream_2eproto[21]); } // @@protoc_insertion_point(namespace_scope) } // namespace stream diff --git a/PrintS/protobuf/stream.pb.h b/PrintS/protobuf/stream.pb.h index f1a7c96..e6b40c2 100644 --- a/PrintS/protobuf/stream.pb.h +++ b/PrintS/protobuf/stream.pb.h @@ -62,6 +62,9 @@ extern ChainDataBlockDefaultTypeInternal _ChainDataBlock_default_instance_; class ComResponce; struct ComResponceDefaultTypeInternal; extern ComResponceDefaultTypeInternal _ComResponce_default_instance_; +class ComResponce_FileInfoStruct; +struct ComResponce_FileInfoStructDefaultTypeInternal; +extern ComResponce_FileInfoStructDefaultTypeInternal _ComResponce_FileInfoStruct_default_instance_; class CorrectParamCfg; struct CorrectParamCfgDefaultTypeInternal; extern CorrectParamCfgDefaultTypeInternal _CorrectParamCfg_default_instance_; @@ -338,21 +341,13 @@ class ParamInfo final : kNameKeyFieldNumber = 1, kStrValueFieldNumber = 2, kContextFieldNumber = 4, - kCardNameFieldNumber = 15, - kCardIPFieldNumber = 16, kValueTypeFieldNumber = 3, - kStartLayerFieldNumber = 8, kIsEnableFieldNumber = 5, kIsAlarmFieldNumber = 6, kIsShowFieldNumber = 7, - kHadAssignFieldNumber = 17, + kStartLayerFieldNumber = 8, kEndLayerFieldNumber = 9, kPowderFieldNumber = 10, - kSeqNoFieldNumber = 11, - kControlNoFieldNumber = 12, - kSerialNoFieldNumber = 13, - kControlTypeFieldNumber = 14, - kHadMatchFieldNumber = 18, }; // bytes nameKey = 1; void clear_namekey() ; @@ -401,38 +396,6 @@ class ParamInfo final : const std::string& value); std::string* _internal_mutable_context(); - public: - // bytes cardName = 15; - void clear_cardname() ; - const std::string& cardname() const; - template - void set_cardname(Arg_&& arg, Args_... args); - std::string* mutable_cardname(); - PROTOBUF_NODISCARD std::string* release_cardname(); - void set_allocated_cardname(std::string* ptr); - - private: - const std::string& _internal_cardname() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_cardname( - const std::string& value); - std::string* _internal_mutable_cardname(); - - public: - // bytes cardIP = 16; - void clear_cardip() ; - const std::string& cardip() const; - template - void set_cardip(Arg_&& arg, Args_... args); - std::string* mutable_cardip(); - PROTOBUF_NODISCARD std::string* release_cardip(); - void set_allocated_cardip(std::string* ptr); - - private: - const std::string& _internal_cardip() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_cardip( - const std::string& value); - std::string* _internal_mutable_cardip(); - public: // .stream.TYPE valueType = 3; void clear_valuetype() ; @@ -443,16 +406,6 @@ class ParamInfo final : ::stream::TYPE _internal_valuetype() const; void _internal_set_valuetype(::stream::TYPE value); - public: - // int32 startLayer = 8; - void clear_startlayer() ; - ::int32_t startlayer() const; - void set_startlayer(::int32_t value); - - private: - ::int32_t _internal_startlayer() const; - void _internal_set_startlayer(::int32_t value); - public: // bool isEnable = 5; void clear_isenable() ; @@ -484,14 +437,14 @@ class ParamInfo final : void _internal_set_isshow(bool value); public: - // bool hadAssign = 17; - void clear_hadassign() ; - bool hadassign() const; - void set_hadassign(bool value); + // int32 startLayer = 8; + void clear_startlayer() ; + ::int32_t startlayer() const; + void set_startlayer(::int32_t value); private: - bool _internal_hadassign() const; - void _internal_set_hadassign(bool value); + ::int32_t _internal_startlayer() const; + void _internal_set_startlayer(::int32_t value); public: // int32 endLayer = 9; @@ -513,63 +466,13 @@ class ParamInfo final : float _internal_powder() const; void _internal_set_powder(float value); - public: - // int32 seqNo = 11; - void clear_seqno() ; - ::int32_t seqno() const; - void set_seqno(::int32_t value); - - private: - ::int32_t _internal_seqno() const; - void _internal_set_seqno(::int32_t value); - - public: - // int32 controlNo = 12; - void clear_controlno() ; - ::int32_t controlno() const; - void set_controlno(::int32_t value); - - private: - ::int32_t _internal_controlno() const; - void _internal_set_controlno(::int32_t value); - - public: - // int32 serialNo = 13; - void clear_serialno() ; - ::int32_t serialno() const; - void set_serialno(::int32_t value); - - private: - ::int32_t _internal_serialno() const; - void _internal_set_serialno(::int32_t value); - - public: - // int32 controlType = 14; - void clear_controltype() ; - ::int32_t controltype() const; - void set_controltype(::int32_t value); - - private: - ::int32_t _internal_controltype() const; - void _internal_set_controltype(::int32_t value); - - public: - // bool hadMatch = 18; - void clear_hadmatch() ; - bool hadmatch() const; - void set_hadmatch(bool value); - - private: - bool _internal_hadmatch() const; - void _internal_set_hadmatch(bool value); - public: // @@protoc_insertion_point(class_scope:stream.ParamInfo) private: class _Internal; friend class ::google::protobuf::internal::TcParser; - static const ::google::protobuf::internal::TcParseTable<5, 18, 0, 0, 2> _table_; + static const ::google::protobuf::internal::TcParseTable<4, 10, 0, 0, 2> _table_; template friend class ::google::protobuf::Arena::InternalHelper; typedef void InternalArenaConstructable_; typedef void DestructorSkippable_; @@ -577,21 +480,13 @@ class ParamInfo final : ::google::protobuf::internal::ArenaStringPtr namekey_; ::google::protobuf::internal::ArenaStringPtr strvalue_; ::google::protobuf::internal::ArenaStringPtr context_; - ::google::protobuf::internal::ArenaStringPtr cardname_; - ::google::protobuf::internal::ArenaStringPtr cardip_; int valuetype_; - ::int32_t startlayer_; bool isenable_; bool isalarm_; bool isshow_; - bool hadassign_; + ::int32_t startlayer_; ::int32_t endlayer_; float powder_; - ::int32_t seqno_; - ::int32_t controlno_; - ::int32_t serialno_; - ::int32_t controltype_; - bool hadmatch_; mutable ::google::protobuf::internal::CachedSize _cached_size_; PROTOBUF_TSAN_DECLARE_MEMBER }; @@ -2521,6 +2416,224 @@ class ImgInfoResponce final : friend struct ::TableStruct_stream_2eproto; };// ------------------------------------------------------------------- +class ComResponce_FileInfoStruct final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:stream.ComResponce.FileInfoStruct) */ { + public: + inline ComResponce_FileInfoStruct() : ComResponce_FileInfoStruct(nullptr) {} + ~ComResponce_FileInfoStruct() override; + template + explicit PROTOBUF_CONSTEXPR ComResponce_FileInfoStruct(::google::protobuf::internal::ConstantInitialized); + + ComResponce_FileInfoStruct(const ComResponce_FileInfoStruct& from); + ComResponce_FileInfoStruct(ComResponce_FileInfoStruct&& from) noexcept + : ComResponce_FileInfoStruct() { + *this = ::std::move(from); + } + + inline ComResponce_FileInfoStruct& operator=(const ComResponce_FileInfoStruct& from) { + CopyFrom(from); + return *this; + } + inline ComResponce_FileInfoStruct& operator=(ComResponce_FileInfoStruct&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const { + return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance); + } + inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() { + return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>(); + } + + static const ::google::protobuf::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::google::protobuf::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::google::protobuf::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ComResponce_FileInfoStruct& default_instance() { + return *internal_default_instance(); + } + static inline const ComResponce_FileInfoStruct* internal_default_instance() { + return reinterpret_cast( + &_ComResponce_FileInfoStruct_default_instance_); + } + static constexpr int kIndexInFileMessages = + 11; + + friend void swap(ComResponce_FileInfoStruct& a, ComResponce_FileInfoStruct& b) { + a.Swap(&b); + } + inline void Swap(ComResponce_FileInfoStruct* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::google::protobuf::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ComResponce_FileInfoStruct* other) { + if (other == this) return; + ABSL_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ComResponce_FileInfoStruct* New(::google::protobuf::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::google::protobuf::Message::CopyFrom; + void CopyFrom(const ComResponce_FileInfoStruct& from); + using ::google::protobuf::Message::MergeFrom; + void MergeFrom( const ComResponce_FileInfoStruct& from) { + ComResponce_FileInfoStruct::MergeImpl(*this, from); + } + private: + static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + ::size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final; + ::uint8_t* _InternalSerialize( + ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::google::protobuf::Arena* arena); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ComResponce_FileInfoStruct* other); + + private: + friend class ::google::protobuf::internal::AnyMetadata; + static ::absl::string_view FullMessageName() { + return "stream.ComResponce.FileInfoStruct"; + } + protected: + explicit ComResponce_FileInfoStruct(::google::protobuf::Arena* arena); + public: + + static const ClassData _class_data_; + const ::google::protobuf::Message::ClassData*GetClassData() const final; + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kTypeFieldNumber = 1, + kFilePathFieldNumber = 2, + kFileNameFieldNumber = 3, + kExtFieldNumber = 4, + }; + // bytes type = 1; + void clear_type() ; + const std::string& type() const; + template + void set_type(Arg_&& arg, Args_... args); + std::string* mutable_type(); + PROTOBUF_NODISCARD std::string* release_type(); + void set_allocated_type(std::string* ptr); + + private: + const std::string& _internal_type() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_type( + const std::string& value); + std::string* _internal_mutable_type(); + + public: + // bytes filePath = 2; + void clear_filepath() ; + const std::string& filepath() const; + template + void set_filepath(Arg_&& arg, Args_... args); + std::string* mutable_filepath(); + PROTOBUF_NODISCARD std::string* release_filepath(); + void set_allocated_filepath(std::string* ptr); + + private: + const std::string& _internal_filepath() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_filepath( + const std::string& value); + std::string* _internal_mutable_filepath(); + + public: + // bytes fileName = 3; + void clear_filename() ; + const std::string& filename() const; + template + void set_filename(Arg_&& arg, Args_... args); + std::string* mutable_filename(); + PROTOBUF_NODISCARD std::string* release_filename(); + void set_allocated_filename(std::string* ptr); + + private: + const std::string& _internal_filename() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_filename( + const std::string& value); + std::string* _internal_mutable_filename(); + + public: + // bytes ext = 4; + void clear_ext() ; + const std::string& ext() const; + template + void set_ext(Arg_&& arg, Args_... args); + std::string* mutable_ext(); + PROTOBUF_NODISCARD std::string* release_ext(); + void set_allocated_ext(std::string* ptr); + + private: + const std::string& _internal_ext() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_ext( + const std::string& value); + std::string* _internal_mutable_ext(); + + public: + // @@protoc_insertion_point(class_scope:stream.ComResponce.FileInfoStruct) + private: + class _Internal; + + friend class ::google::protobuf::internal::TcParser; + static const ::google::protobuf::internal::TcParseTable<2, 4, 0, 0, 2> _table_; + template friend class ::google::protobuf::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::google::protobuf::internal::ArenaStringPtr type_; + ::google::protobuf::internal::ArenaStringPtr filepath_; + ::google::protobuf::internal::ArenaStringPtr filename_; + ::google::protobuf::internal::ArenaStringPtr ext_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + PROTOBUF_TSAN_DECLARE_MEMBER + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_stream_2eproto; +};// ------------------------------------------------------------------- + class ComResponce final : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:stream.ComResponce) */ { public: @@ -2577,7 +2690,7 @@ class ComResponce final : &_ComResponce_default_instance_); } static constexpr int kIndexInFileMessages = - 11; + 12; friend void swap(ComResponce& a, ComResponce& b) { a.Swap(&b); @@ -2646,11 +2759,33 @@ class ComResponce final : // nested types ---------------------------------------------------- + typedef ComResponce_FileInfoStruct FileInfoStruct; + // accessors ------------------------------------------------------- enum : int { + kFileInfoFieldNumber = 3, kDataFieldNumber = 1, + kDirectoryFieldNumber = 2, }; + // repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; + int fileinfo_size() const; + private: + int _internal_fileinfo_size() const; + + public: + void clear_fileinfo() ; + ::stream::ComResponce_FileInfoStruct* mutable_fileinfo(int index); + ::google::protobuf::RepeatedPtrField< ::stream::ComResponce_FileInfoStruct >* + mutable_fileinfo(); + private: + const ::google::protobuf::RepeatedPtrField<::stream::ComResponce_FileInfoStruct>& _internal_fileinfo() const; + ::google::protobuf::RepeatedPtrField<::stream::ComResponce_FileInfoStruct>* _internal_mutable_fileinfo(); + public: + const ::stream::ComResponce_FileInfoStruct& fileinfo(int index) const; + ::stream::ComResponce_FileInfoStruct* add_fileinfo(); + const ::google::protobuf::RepeatedPtrField< ::stream::ComResponce_FileInfoStruct >& + fileinfo() const; // bytes data = 1; void clear_data() ; const std::string& data() const; @@ -2666,18 +2801,36 @@ class ComResponce final : const std::string& value); std::string* _internal_mutable_data(); + public: + // bytes directory = 2; + void clear_directory() ; + const std::string& directory() const; + template + void set_directory(Arg_&& arg, Args_... args); + std::string* mutable_directory(); + PROTOBUF_NODISCARD std::string* release_directory(); + void set_allocated_directory(std::string* ptr); + + private: + const std::string& _internal_directory() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_directory( + const std::string& value); + std::string* _internal_mutable_directory(); + public: // @@protoc_insertion_point(class_scope:stream.ComResponce) private: class _Internal; friend class ::google::protobuf::internal::TcParser; - static const ::google::protobuf::internal::TcParseTable<0, 1, 0, 0, 2> _table_; + static const ::google::protobuf::internal::TcParseTable<2, 3, 1, 0, 2> _table_; template friend class ::google::protobuf::Arena::InternalHelper; typedef void InternalArenaConstructable_; typedef void DestructorSkippable_; struct Impl_ { + ::google::protobuf::RepeatedPtrField< ::stream::ComResponce_FileInfoStruct > fileinfo_; ::google::protobuf::internal::ArenaStringPtr data_; + ::google::protobuf::internal::ArenaStringPtr directory_; mutable ::google::protobuf::internal::CachedSize _cached_size_; PROTOBUF_TSAN_DECLARE_MEMBER }; @@ -2741,7 +2894,7 @@ class ScannerCrtlCfgResp final : &_ScannerCrtlCfgResp_default_instance_); } static constexpr int kIndexInFileMessages = - 12; + 13; friend void swap(ScannerCrtlCfgResp& a, ScannerCrtlCfgResp& b) { a.Swap(&b); @@ -2907,7 +3060,7 @@ class ScannerCrtlCfgData final : &_ScannerCrtlCfgData_default_instance_); } static constexpr int kIndexInFileMessages = - 13; + 14; friend void swap(ScannerCrtlCfgData& a, ScannerCrtlCfgData& b) { a.Swap(&b); @@ -3353,7 +3506,7 @@ class FixPointData final : &_FixPointData_default_instance_); } static constexpr int kIndexInFileMessages = - 14; + 15; friend void swap(FixPointData& a, FixPointData& b) { a.Swap(&b); @@ -3559,7 +3712,7 @@ class ScanParamCfg final : &_ScanParamCfg_default_instance_); } static constexpr int kIndexInFileMessages = - 15; + 16; friend void swap(ScanParamCfg& a, ScanParamCfg& b) { a.Swap(&b); @@ -4065,7 +4218,7 @@ class CorrectParamCfg final : &_CorrectParamCfg_default_instance_); } static constexpr int kIndexInFileMessages = - 16; + 17; friend void swap(CorrectParamCfg& a, CorrectParamCfg& b) { a.Swap(&b); @@ -4523,7 +4676,7 @@ class ScanTestCfg final : &_ScanTestCfg_default_instance_); } static constexpr int kIndexInFileMessages = - 17; + 18; friend void swap(ScanTestCfg& a, ScanTestCfg& b) { a.Swap(&b); @@ -4933,7 +5086,7 @@ class SkyWritingCfg final : &_SkyWritingCfg_default_instance_); } static constexpr int kIndexInFileMessages = - 18; + 19; friend void swap(SkyWritingCfg& a, SkyWritingCfg& b) { a.Swap(&b); @@ -5283,7 +5436,7 @@ class PowerCompensate final : &_PowerCompensate_default_instance_); } static constexpr int kIndexInFileMessages = - 19; + 20; friend void swap(PowerCompensate& a, PowerCompensate& b) { a.Swap(&b); @@ -5489,7 +5642,7 @@ class TimePowerCompensate final : &_TimePowerCompensate_default_instance_); } static constexpr int kIndexInFileMessages = - 20; + 21; friend void swap(TimePowerCompensate& a, TimePowerCompensate& b) { a.Swap(&b); @@ -5962,240 +6115,6 @@ inline void ParamInfo::_internal_set_powder(float value) { _impl_.powder_ = value; } -// int32 seqNo = 11; -inline void ParamInfo::clear_seqno() { - _impl_.seqno_ = 0; -} -inline ::int32_t ParamInfo::seqno() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.seqNo) - return _internal_seqno(); -} -inline void ParamInfo::set_seqno(::int32_t value) { - _internal_set_seqno(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.seqNo) -} -inline ::int32_t ParamInfo::_internal_seqno() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.seqno_; -} -inline void ParamInfo::_internal_set_seqno(::int32_t value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.seqno_ = value; -} - -// int32 controlNo = 12; -inline void ParamInfo::clear_controlno() { - _impl_.controlno_ = 0; -} -inline ::int32_t ParamInfo::controlno() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.controlNo) - return _internal_controlno(); -} -inline void ParamInfo::set_controlno(::int32_t value) { - _internal_set_controlno(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.controlNo) -} -inline ::int32_t ParamInfo::_internal_controlno() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.controlno_; -} -inline void ParamInfo::_internal_set_controlno(::int32_t value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.controlno_ = value; -} - -// int32 serialNo = 13; -inline void ParamInfo::clear_serialno() { - _impl_.serialno_ = 0; -} -inline ::int32_t ParamInfo::serialno() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.serialNo) - return _internal_serialno(); -} -inline void ParamInfo::set_serialno(::int32_t value) { - _internal_set_serialno(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.serialNo) -} -inline ::int32_t ParamInfo::_internal_serialno() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.serialno_; -} -inline void ParamInfo::_internal_set_serialno(::int32_t value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.serialno_ = value; -} - -// int32 controlType = 14; -inline void ParamInfo::clear_controltype() { - _impl_.controltype_ = 0; -} -inline ::int32_t ParamInfo::controltype() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.controlType) - return _internal_controltype(); -} -inline void ParamInfo::set_controltype(::int32_t value) { - _internal_set_controltype(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.controlType) -} -inline ::int32_t ParamInfo::_internal_controltype() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.controltype_; -} -inline void ParamInfo::_internal_set_controltype(::int32_t value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.controltype_ = value; -} - -// bytes cardName = 15; -inline void ParamInfo::clear_cardname() { - _impl_.cardname_.ClearToEmpty(); -} -inline const std::string& ParamInfo::cardname() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.cardName) - return _internal_cardname(); -} -template -inline PROTOBUF_ALWAYS_INLINE void ParamInfo::set_cardname(Arg_&& arg, - Args_... args) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.cardname_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:stream.ParamInfo.cardName) -} -inline std::string* ParamInfo::mutable_cardname() { - std::string* _s = _internal_mutable_cardname(); - // @@protoc_insertion_point(field_mutable:stream.ParamInfo.cardName) - return _s; -} -inline const std::string& ParamInfo::_internal_cardname() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.cardname_.Get(); -} -inline void ParamInfo::_internal_set_cardname(const std::string& value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.cardname_.Set(value, GetArenaForAllocation()); -} -inline std::string* ParamInfo::_internal_mutable_cardname() { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - return _impl_.cardname_.Mutable( GetArenaForAllocation()); -} -inline std::string* ParamInfo::release_cardname() { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - // @@protoc_insertion_point(field_release:stream.ParamInfo.cardName) - return _impl_.cardname_.Release(); -} -inline void ParamInfo::set_allocated_cardname(std::string* value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - _impl_.cardname_.SetAllocated(value, GetArenaForAllocation()); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.cardname_.IsDefault()) { - _impl_.cardname_.Set("", GetArenaForAllocation()); - } - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:stream.ParamInfo.cardName) -} - -// bytes cardIP = 16; -inline void ParamInfo::clear_cardip() { - _impl_.cardip_.ClearToEmpty(); -} -inline const std::string& ParamInfo::cardip() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.cardIP) - return _internal_cardip(); -} -template -inline PROTOBUF_ALWAYS_INLINE void ParamInfo::set_cardip(Arg_&& arg, - Args_... args) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.cardip_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:stream.ParamInfo.cardIP) -} -inline std::string* ParamInfo::mutable_cardip() { - std::string* _s = _internal_mutable_cardip(); - // @@protoc_insertion_point(field_mutable:stream.ParamInfo.cardIP) - return _s; -} -inline const std::string& ParamInfo::_internal_cardip() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.cardip_.Get(); -} -inline void ParamInfo::_internal_set_cardip(const std::string& value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.cardip_.Set(value, GetArenaForAllocation()); -} -inline std::string* ParamInfo::_internal_mutable_cardip() { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - return _impl_.cardip_.Mutable( GetArenaForAllocation()); -} -inline std::string* ParamInfo::release_cardip() { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - // @@protoc_insertion_point(field_release:stream.ParamInfo.cardIP) - return _impl_.cardip_.Release(); -} -inline void ParamInfo::set_allocated_cardip(std::string* value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - _impl_.cardip_.SetAllocated(value, GetArenaForAllocation()); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.cardip_.IsDefault()) { - _impl_.cardip_.Set("", GetArenaForAllocation()); - } - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:stream.ParamInfo.cardIP) -} - -// bool hadAssign = 17; -inline void ParamInfo::clear_hadassign() { - _impl_.hadassign_ = false; -} -inline bool ParamInfo::hadassign() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.hadAssign) - return _internal_hadassign(); -} -inline void ParamInfo::set_hadassign(bool value) { - _internal_set_hadassign(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.hadAssign) -} -inline bool ParamInfo::_internal_hadassign() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.hadassign_; -} -inline void ParamInfo::_internal_set_hadassign(bool value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.hadassign_ = value; -} - -// bool hadMatch = 18; -inline void ParamInfo::clear_hadmatch() { - _impl_.hadmatch_ = false; -} -inline bool ParamInfo::hadmatch() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.hadMatch) - return _internal_hadmatch(); -} -inline void ParamInfo::set_hadmatch(bool value) { - _internal_set_hadmatch(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.hadMatch) -} -inline bool ParamInfo::_internal_hadmatch() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.hadmatch_; -} -inline void ParamInfo::_internal_set_hadmatch(bool value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.hadmatch_ = value; -} - // ------------------------------------------------------------------- // RequestInfo @@ -7236,6 +7155,214 @@ inline void ImgInfoResponce::_internal_set_height(::int32_t value) { // ------------------------------------------------------------------- +// ComResponce_FileInfoStruct + +// bytes type = 1; +inline void ComResponce_FileInfoStruct::clear_type() { + _impl_.type_.ClearToEmpty(); +} +inline const std::string& ComResponce_FileInfoStruct::type() const { + // @@protoc_insertion_point(field_get:stream.ComResponce.FileInfoStruct.type) + return _internal_type(); +} +template +inline PROTOBUF_ALWAYS_INLINE void ComResponce_FileInfoStruct::set_type(Arg_&& arg, + Args_... args) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.type_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:stream.ComResponce.FileInfoStruct.type) +} +inline std::string* ComResponce_FileInfoStruct::mutable_type() { + std::string* _s = _internal_mutable_type(); + // @@protoc_insertion_point(field_mutable:stream.ComResponce.FileInfoStruct.type) + return _s; +} +inline const std::string& ComResponce_FileInfoStruct::_internal_type() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.type_.Get(); +} +inline void ComResponce_FileInfoStruct::_internal_set_type(const std::string& value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.type_.Set(value, GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::_internal_mutable_type() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + return _impl_.type_.Mutable( GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::release_type() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + // @@protoc_insertion_point(field_release:stream.ComResponce.FileInfoStruct.type) + return _impl_.type_.Release(); +} +inline void ComResponce_FileInfoStruct::set_allocated_type(std::string* value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + _impl_.type_.SetAllocated(value, GetArenaForAllocation()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.type_.IsDefault()) { + _impl_.type_.Set("", GetArenaForAllocation()); + } + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.FileInfoStruct.type) +} + +// bytes filePath = 2; +inline void ComResponce_FileInfoStruct::clear_filepath() { + _impl_.filepath_.ClearToEmpty(); +} +inline const std::string& ComResponce_FileInfoStruct::filepath() const { + // @@protoc_insertion_point(field_get:stream.ComResponce.FileInfoStruct.filePath) + return _internal_filepath(); +} +template +inline PROTOBUF_ALWAYS_INLINE void ComResponce_FileInfoStruct::set_filepath(Arg_&& arg, + Args_... args) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.filepath_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:stream.ComResponce.FileInfoStruct.filePath) +} +inline std::string* ComResponce_FileInfoStruct::mutable_filepath() { + std::string* _s = _internal_mutable_filepath(); + // @@protoc_insertion_point(field_mutable:stream.ComResponce.FileInfoStruct.filePath) + return _s; +} +inline const std::string& ComResponce_FileInfoStruct::_internal_filepath() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.filepath_.Get(); +} +inline void ComResponce_FileInfoStruct::_internal_set_filepath(const std::string& value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.filepath_.Set(value, GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::_internal_mutable_filepath() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + return _impl_.filepath_.Mutable( GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::release_filepath() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + // @@protoc_insertion_point(field_release:stream.ComResponce.FileInfoStruct.filePath) + return _impl_.filepath_.Release(); +} +inline void ComResponce_FileInfoStruct::set_allocated_filepath(std::string* value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + _impl_.filepath_.SetAllocated(value, GetArenaForAllocation()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.filepath_.IsDefault()) { + _impl_.filepath_.Set("", GetArenaForAllocation()); + } + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.FileInfoStruct.filePath) +} + +// bytes fileName = 3; +inline void ComResponce_FileInfoStruct::clear_filename() { + _impl_.filename_.ClearToEmpty(); +} +inline const std::string& ComResponce_FileInfoStruct::filename() const { + // @@protoc_insertion_point(field_get:stream.ComResponce.FileInfoStruct.fileName) + return _internal_filename(); +} +template +inline PROTOBUF_ALWAYS_INLINE void ComResponce_FileInfoStruct::set_filename(Arg_&& arg, + Args_... args) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.filename_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:stream.ComResponce.FileInfoStruct.fileName) +} +inline std::string* ComResponce_FileInfoStruct::mutable_filename() { + std::string* _s = _internal_mutable_filename(); + // @@protoc_insertion_point(field_mutable:stream.ComResponce.FileInfoStruct.fileName) + return _s; +} +inline const std::string& ComResponce_FileInfoStruct::_internal_filename() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.filename_.Get(); +} +inline void ComResponce_FileInfoStruct::_internal_set_filename(const std::string& value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.filename_.Set(value, GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::_internal_mutable_filename() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + return _impl_.filename_.Mutable( GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::release_filename() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + // @@protoc_insertion_point(field_release:stream.ComResponce.FileInfoStruct.fileName) + return _impl_.filename_.Release(); +} +inline void ComResponce_FileInfoStruct::set_allocated_filename(std::string* value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + _impl_.filename_.SetAllocated(value, GetArenaForAllocation()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.filename_.IsDefault()) { + _impl_.filename_.Set("", GetArenaForAllocation()); + } + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.FileInfoStruct.fileName) +} + +// bytes ext = 4; +inline void ComResponce_FileInfoStruct::clear_ext() { + _impl_.ext_.ClearToEmpty(); +} +inline const std::string& ComResponce_FileInfoStruct::ext() const { + // @@protoc_insertion_point(field_get:stream.ComResponce.FileInfoStruct.ext) + return _internal_ext(); +} +template +inline PROTOBUF_ALWAYS_INLINE void ComResponce_FileInfoStruct::set_ext(Arg_&& arg, + Args_... args) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.ext_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:stream.ComResponce.FileInfoStruct.ext) +} +inline std::string* ComResponce_FileInfoStruct::mutable_ext() { + std::string* _s = _internal_mutable_ext(); + // @@protoc_insertion_point(field_mutable:stream.ComResponce.FileInfoStruct.ext) + return _s; +} +inline const std::string& ComResponce_FileInfoStruct::_internal_ext() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.ext_.Get(); +} +inline void ComResponce_FileInfoStruct::_internal_set_ext(const std::string& value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.ext_.Set(value, GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::_internal_mutable_ext() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + return _impl_.ext_.Mutable( GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::release_ext() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + // @@protoc_insertion_point(field_release:stream.ComResponce.FileInfoStruct.ext) + return _impl_.ext_.Release(); +} +inline void ComResponce_FileInfoStruct::set_allocated_ext(std::string* value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + _impl_.ext_.SetAllocated(value, GetArenaForAllocation()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.ext_.IsDefault()) { + _impl_.ext_.Set("", GetArenaForAllocation()); + } + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.FileInfoStruct.ext) +} + +// ------------------------------------------------------------------- + // ComResponce // bytes data = 1; @@ -7289,6 +7416,103 @@ inline void ComResponce::set_allocated_data(std::string* value) { // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.data) } +// bytes directory = 2; +inline void ComResponce::clear_directory() { + _impl_.directory_.ClearToEmpty(); +} +inline const std::string& ComResponce::directory() const { + // @@protoc_insertion_point(field_get:stream.ComResponce.directory) + return _internal_directory(); +} +template +inline PROTOBUF_ALWAYS_INLINE void ComResponce::set_directory(Arg_&& arg, + Args_... args) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.directory_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:stream.ComResponce.directory) +} +inline std::string* ComResponce::mutable_directory() { + std::string* _s = _internal_mutable_directory(); + // @@protoc_insertion_point(field_mutable:stream.ComResponce.directory) + return _s; +} +inline const std::string& ComResponce::_internal_directory() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.directory_.Get(); +} +inline void ComResponce::_internal_set_directory(const std::string& value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.directory_.Set(value, GetArenaForAllocation()); +} +inline std::string* ComResponce::_internal_mutable_directory() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + return _impl_.directory_.Mutable( GetArenaForAllocation()); +} +inline std::string* ComResponce::release_directory() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + // @@protoc_insertion_point(field_release:stream.ComResponce.directory) + return _impl_.directory_.Release(); +} +inline void ComResponce::set_allocated_directory(std::string* value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + _impl_.directory_.SetAllocated(value, GetArenaForAllocation()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.directory_.IsDefault()) { + _impl_.directory_.Set("", GetArenaForAllocation()); + } + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.directory) +} + +// repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; +inline int ComResponce::_internal_fileinfo_size() const { + return _internal_fileinfo().size(); +} +inline int ComResponce::fileinfo_size() const { + return _internal_fileinfo_size(); +} +inline void ComResponce::clear_fileinfo() { + _internal_mutable_fileinfo()->Clear(); +} +inline ::stream::ComResponce_FileInfoStruct* ComResponce::mutable_fileinfo(int index) { + // @@protoc_insertion_point(field_mutable:stream.ComResponce.fileInfo) + return _internal_mutable_fileinfo()->Mutable(index); +} +inline ::google::protobuf::RepeatedPtrField< ::stream::ComResponce_FileInfoStruct >* +ComResponce::mutable_fileinfo() { + // @@protoc_insertion_point(field_mutable_list:stream.ComResponce.fileInfo) + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + return _internal_mutable_fileinfo(); +} +inline const ::stream::ComResponce_FileInfoStruct& ComResponce::fileinfo(int index) const { + // @@protoc_insertion_point(field_get:stream.ComResponce.fileInfo) + return _internal_fileinfo().Get(index); +} +inline ::stream::ComResponce_FileInfoStruct* ComResponce::add_fileinfo() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ::stream::ComResponce_FileInfoStruct* _add = _internal_mutable_fileinfo()->Add(); + // @@protoc_insertion_point(field_add:stream.ComResponce.fileInfo) + return _add; +} +inline const ::google::protobuf::RepeatedPtrField< ::stream::ComResponce_FileInfoStruct >& +ComResponce::fileinfo() const { + // @@protoc_insertion_point(field_list:stream.ComResponce.fileInfo) + return _internal_fileinfo(); +} +inline const ::google::protobuf::RepeatedPtrField<::stream::ComResponce_FileInfoStruct>& +ComResponce::_internal_fileinfo() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.fileinfo_; +} +inline ::google::protobuf::RepeatedPtrField<::stream::ComResponce_FileInfoStruct>* +ComResponce::_internal_mutable_fileinfo() { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return &_impl_.fileinfo_; +} + // ------------------------------------------------------------------- // ScannerCrtlCfgResp diff --git a/PrintS/protobuf/stream.proto b/PrintS/protobuf/stream.proto index 87ebead..f06b512 100644 --- a/PrintS/protobuf/stream.proto +++ b/PrintS/protobuf/stream.proto @@ -131,9 +131,19 @@ message ImgInfoResponce{ int32 height = 3; } -//注册功能返回信息 IOVersionStr接口返回值 +//注册功能 IOVersionStr接口 盘符文件路径接口 message ComResponce{ bytes data = 1; + bytes directory = 2; + + message FileInfoStruct + { + bytes type = 1; //类型 + bytes filePath = 2; + bytes fileName = 3; + bytes ext = 4; //后缀 + } + repeated FileInfoStruct fileInfo = 3; } //ScannerCrtlCfg结构体 diff --git a/PrintS/说明.txt b/PrintS/说明.txt index 72f10cc..f03e6d1 100644 --- a/PrintS/说明.txt +++ b/PrintS/说明.txt @@ -28,4 +28,7 @@ SendToClients 需要修改 size_t scsize = ConfigManager::GetInstance()->GetMatchScannerControlCfg()->size();为啥是0 -配置中文在本地是乱码 \ No newline at end of file +配置中文(u8)在本地是乱码 + + +ScannerControlCfg 函数后面在添加 \ No newline at end of file diff --git a/TestClient/DataManage/DataHandle.cpp b/TestClient/DataManage/DataHandle.cpp index edda213..34e5f49 100644 --- a/TestClient/DataManage/DataHandle.cpp +++ b/TestClient/DataManage/DataHandle.cpp @@ -46,6 +46,8 @@ void DataHandle::Init() { m_streamClient->SetCallBackFunc(this,&DataHandle::DataCallBackProc); m_streamClient->Init(); + m_funcTest.SetStreamClient(m_streamClient); + //stream::ResponseInfo* response = new stream::ResponseInfo(); //获取一层图层的数据 //m_streamClient->GetLayerByIndex(1, response); @@ -54,7 +56,7 @@ void DataHandle::Init() { } void DataHandle::Stop() { - m_streamClient->Stop(); + if(m_streamClient) m_streamClient->Stop(); DELP(m_streamClient); } @@ -130,15 +132,16 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) { void DataHandle::Usage() { printf(COLOR_GREEN "print TestClient usage:\n" COLOR_RESET); - printf(" 0: " COLOR_YELLOW "print help information...\n" COLOR_RESET); - printf(" 1: " COLOR_YELLOW "exit program...\n" COLOR_RESET); - printf(" 2: " COLOR_YELLOW "test all...\n" COLOR_RESET); - printf(" 3: " COLOR_YELLOW "test axis move interface...\n" COLOR_RESET); - printf(" 4: " COLOR_YELLOW "test scan control interface...\n" COLOR_RESET); - printf(" 5: " COLOR_YELLOW "test registration interface...\n" COLOR_RESET); - printf(" 6: " COLOR_YELLOW "test camera interface...\n" COLOR_RESET); - printf(" 7: " COLOR_YELLOW "test purifier interface...\n" COLOR_RESET); - printf(" 8: " COLOR_YELLOW "test config interface...\n" COLOR_RESET); + printf(" h: " COLOR_YELLOW "print help information...\n" COLOR_RESET); + printf(" e: " COLOR_YELLOW "exit program...\n" COLOR_RESET); + printf(" 1: " COLOR_YELLOW "test all...\n" COLOR_RESET); + printf(" 2: " COLOR_YELLOW "test axis move interface...\n" COLOR_RESET); + printf(" 3: " COLOR_YELLOW "test scan control interface...\n" COLOR_RESET); + printf(" 4: " COLOR_YELLOW "test registration interface...\n" COLOR_RESET); + printf(" 5: " COLOR_YELLOW "test camera interface...\n" COLOR_RESET); + printf(" 6: " COLOR_YELLOW "test purifier interface...\n" COLOR_RESET); + printf(" 7: " COLOR_YELLOW "test config interface...\n" COLOR_RESET); + printf(" 8: " COLOR_YELLOW "test directory interface...\n" COLOR_RESET); printf(" 100: " COLOR_YELLOW "start test recv param interface...\n" COLOR_RESET); } @@ -208,24 +211,22 @@ int DataHandle::Request(int index) { string userInput; switch (index) { - case 0: - Usage(); break; case 1: - Stop(); break; + m_funcTest.AllTest(); break; case 2: - AllTest(); break; + m_funcTest.AxisMoveTest(); break; case 3: - AxisMoveTest(); break; + m_funcTest.ScanCtrlTest(); break; case 4: - ScanCtrlTest(); break; + m_funcTest.RegistrationTest(); break; case 5: - RegistrationTest(); break; + m_funcTest.CameraTest(); break; case 6: - CameraTest(); break; + m_funcTest.PurifierTest(); break; case 7: - PurifierTest(); break; + m_funcTest.ConfigTest(); break; case 8: - ConfigTest(); break; + m_funcTest.DirectoryTest(); break; case 100: ParamReadUsage(); while (printf("*请输入命令:") && std::getline(std::cin, userInput)) { @@ -238,8 +239,8 @@ int DataHandle::Request(int index) { else if (userInput == "h") { //打印用法 ParamReadUsage(); } - else if (userInput.find("push") != string::npos) { //更新数据到服务器 - UpdateParamToService(userInput); + else if (userInput.find("update") != string::npos) { //更新数据到服务器 + UpdateParamToServer(userInput); } else { //接收指定的参数 ReceiveParam(ConverType::TryToI(userInput)); @@ -254,15 +255,6 @@ int DataHandle::Request(int index) { return result; } -void DataHandle::AllTest() { - AxisMoveTest(); - ScanCtrlTest(); - RegistrationTest(); - CameraTest(); - PurifierTest(); - ConfigTest(); -} - void DataHandle::ReceiveParam(int index) { if (index == VERSIONRSP) { @@ -281,7 +273,7 @@ void DataHandle::ReceiveParam(int index) { index = -1; } else if (index >= PARAMLIMITCFGPARAM && index <= ELECFGPARAM) { - PushMsg(REQUEST); + PushMsg(REQUEST); } else if(index == LOADPARAMRSP){ PushMsg(LOADPARAM); @@ -360,9 +352,9 @@ void DataHandle::PrintScanerCfg(const stream::ScannerCrtlCfgResp& result) { } //选择一个参数更新到服务 -void DataHandle::UpdateParamToService(const string& input) { +void DataHandle::UpdateParamToServer(const string& input) { WriteData writeData; - int index = ConverType::TryToI(input.substr(5)); + int index = ConverType::TryToI(input.substr(7)); switch (index) { case PARAMLIMITCFGPARAM: break; @@ -431,189 +423,3 @@ void DataHandle::UpdateParamToService(const string& input) { } -//轴运动测试 -void DataHandle::AxisMoveTest() { - int count =(int)MACHINEFUNC::END0; - for (int i = 0; i < count; ++i) { - PushMsg(WRITETYPE::AXISMOVEFUNC,to_string(i)); - printf("发送请求%d成功...\n", i); - Sleep(100); - } - -} - - -//扫描控制测试 -void DataHandle::ScanCtrlTest() { - PushMsg(SCANCTRLFUNC, to_string(BEGINWORK)); printf("call BEGINWORK function...\n"); - PushMsg(SCANCTRLFUNC, to_string(PAUSEWORK)); printf("call PAUSEWORK function...\n"); - PushMsg(SCANCTRLFUNC, to_string(PAUSEAUTO)); printf("call PAUSEAUTO function...\n"); - PushMsg(SCANCTRLFUNC, to_string(STOPWORK)); printf("call STOPWORK function...\n"); - PushMsg(SCANCTRLFUNC, to_string(STOPREDTEST)); printf("call STOPREDTEST function...\n"); - PushMsg(SCANCTRLFUNC, to_string(TESTLAYER)); printf("call TESTLAYER function...\n"); - PushMsg(SCANCTRLFUNC, to_string(REMOVESCANNER), to_string(1), iINT); printf("call REMOVESCANNER function...\n"); - PushMsg(SCANCTRLFUNC, to_string(STARTHEATINGMOTION)); printf("call STARTHEATINGMOTION function...\n"); - PushMsg(SCANCTRLFUNC, to_string(STOPHEATINGMOTION), to_string(0), iBOOL); printf("call STOPHEATINGMOTION function...\n"); - - - PushMsg(SCANCTRLFUNC, to_string(STARTDEBUGTEST), "1", iINT); printf("call STARTDEBUGTEST function...\n"); - PushMsg(SCANCTRLFUNC, to_string(STOPDEBUGTEST), "1", iINT); printf("call STOPDEBUGTEST function...\n"); - PushMsg(SCANCTRLFUNC, to_string(STARTHEATINGSCANNERTEST), "1", iINT); printf("call STARTHEATINGSCANNERTEST function...\n"); - PushMsg(SCANCTRLFUNC, to_string(STOPHEATINGSCANNERTEST), "1", iINT); printf("call STOPHEATINGSCANNERTEST function...\n"); - PushMsg(SCANCTRLFUNC, to_string(STARTGETSCANINFO), "1", iINT); printf("call STARTGETSCANINFO function...\n"); - PushMsg(SCANCTRLFUNC, to_string(STOPGETSCANINFO), "1", iINT); printf("call STOPGETSCANINFO function...\n"); - - WriteData wd{ SCANCTRLFUNC,to_string(SETXYOFFSET) ,"1", iINT }; - wd.items.emplace_back(Item{"x", to_string(1.23f),iFLOAT}); - wd.items.emplace_back(Item{"y", to_string(2.23f),iFLOAT}); - PushMsg(wd); printf("call SETXYOFFSET function...\n"); - - wd.items.clear(); - wd.nameKey = to_string(SETANGLE); - wd.items.emplace_back(Item{ "angle", to_string(1.2),iDOUBLE }); - PushMsg(wd); printf("call SETANGLE function...\n"); - - PushMsg(SCANCTRLFUNC, to_string(UPDATESETTING), "1", iINT); printf("call UPDATESETTING function...\n"); - - wd.items.clear(); - wd.nameKey = to_string(UPDATESKYWRITING); - wd.items.emplace_back(Item{ "isList", to_string(true),iBOOL }); - PushMsg(wd); printf("call UPDATESKYWRITING function...\n"); - - wd.items.clear(); - wd.nameKey = to_string(SETXYCORRECT); - wd.items.emplace_back(Item{ "x", to_string(2.3),iDOUBLE }); - wd.items.emplace_back(Item{ "y", to_string(3.4),iDOUBLE }); - PushMsg(wd); printf("call SETXYCORRECT function...\n"); - - wd.items.clear(); - wd.nameKey = to_string(SETK); - wd.items.emplace_back(Item{ "k", to_string(2.1),iDOUBLE }); - PushMsg(wd); printf("call SETK function...\n"); - - wd.items.clear(); - wd.nameKey = to_string(FIXPOINTDAOADD); - wd.items.emplace_back(Item{ "cno", to_string(2),iINT }); - wd.items.emplace_back(Item{ "pointX", to_string(2.1),iFLOAT }); - wd.items.emplace_back(Item{ "pointY", to_string(2.1),iFLOAT }); - wd.items.emplace_back(Item{ "duration", to_string(5),iUINT }); - PushMsg(wd); printf("call FIXPOINTDAOADD function...\n"); - - wd.items.clear(); - wd.nameKey = to_string(FIXPOINTDAODEL); - wd.items.emplace_back(Item{ "id", to_string(2),iINT }); - PushMsg(wd); printf("call FIXPOINTDAODEL function...\n"); -} - - -void DataHandle::RegistrationTest(){ - ::stream::ResponseAny resp; - stream::RegResponce result; - - WriteData wdata{ REGISTFUNC ,to_string(CHECKREG),to_string(time(nullptr)) ,iSTRING }; - m_streamClient->Request(wdata,&resp); - if (resp.data().Is()) { - resp.data().UnpackTo(&result); - printf("CHECKREG resp:%d\n", result.data()); - } - Sleep(100); - - wdata.strValue = "123456789"; - wdata.nameKey = to_string(GETSN); - m_streamClient->Request(wdata, &resp); - if (resp.data().Is()) { - resp.data().UnpackTo(&result); - printf("GETSN resp:%u\n", (unsigned int)result.data()); - } - Sleep(100); - - wdata.strValue = "regconfig"; - wdata.nameKey = to_string(CHECKREGKEY); - m_streamClient->Request(wdata, &resp); - if (resp.data().Is()) { - resp.data().UnpackTo(&result); - printf("CHECKREGKEY resp:%d\n", result.data()); - } -} - -void DataHandle::CameraTest() { - - int count = (int)CAMERAFUNC::END2; - for (int i = 0; i < count; ++i) { - if (i == GETSHOWIMAGE || i == GETSHOWIMAGES) continue; - - if(i == SETDEMANDCATPURE) PushMsg(CAMERAFUNC, to_string(i),to_string(1),iBOOL); - else PushMsg(CAMERAFUNC, to_string(i)); - printf("发送请求%d成功...\n", i); - Sleep(100); - } - - ::stream::ResponseAny resp; - stream::ImgInfoResponce result; - WriteData wdata{ CAMERAFUNC ,to_string(GETSHOWIMAGE)}; - m_streamClient->Request(wdata, &resp); - if (resp.data().Is()) { - resp.data().UnpackTo(&result); - printf("GETSHOWIMAGE resp:%u\n", result.levelimage()); - } - Sleep(100); - - resp.Clear(); - wdata.nameKey = to_string(GETSHOWIMAGES); - wdata.strValue = to_string(5); //测试值 - wdata.valueType = iINT; //测试值 - m_streamClient->Request(wdata, &resp); - if (resp.data().Is()) { - resp.data().UnpackTo(&result); - printf("GETSHOWIMAGES resp levelimg:%u,height:%d,width:%d\n", result.levelimage(),result.width(),result.height()); - } - Sleep(100); - - //修改参数 - PushMsg(CAMERAPARAMUPDATE,"LastMouRefImgPosX", to_string(10),iINT); - PushMsg(CAMERAPARAMUPDATE,"LastMouRefImgPosY", to_string(100),iINT); - PushMsg(CAMERAPARAMUPDATE,"ShowFlag", to_string(1),iBOOL); - printf("CAMERAPARAMUPDATE update finish\n"); -} - - -void DataHandle::PurifierTest() { - PushMsg(PURIFIERFUNC, to_string(STARTAUTODEOXYGEN)); - printf("STARTAUTODEOXYGEN is called...\n"); - PushMsg(PURIFIERFUNC, to_string(STOPAUTODEOXYGEN)); - printf("STOPAUTODEOXYGEN is called...\n"); -} - - - -void DataHandle::ConfigTest() { - PushMsg(CONFIGFUNC, to_string(SAVECONFIG)); - printf("saveconfig is called...\n"); - PushMsg(CONFIGFUNC, to_string(SAVEMACHINECONFIG)); - printf("savemachineconfig is called...\n"); - PushMsg(CONFIGFUNC, to_string(DELETEMACHINEIO)); - printf("deletemachineio is called...\n"); - - WriteData wd{ CONFIGFUNC, to_string(CONTROLRUN) }; - wd.items.emplace_back(Item{ "enable", to_string(true) ,iBOOL }); - wd.items.emplace_back(Item{ "code", "usp" ,iSTRING }); - PushMsg(wd); - printf("controlrun is called...\n"); - - ::stream::ResponseAny resp; - stream::ComResponce result; - WriteData wdata{ CONFIGFUNC ,to_string(IOVERSIONSTR) }; - wdata.items.emplace_back(Item{"index","1",iINT}); - m_streamClient->Request(wdata, &resp); - if (resp.data().Is()) { - resp.data().UnpackTo(&result); - printf("IOVERSIONSTR resp:%s\n", result.data().data()); - } - - PushMsg(CONFIGFUNC, to_string(REDTESTCFGSTART)); - printf("redtestcfgstart is called...\n"); - - PushMsg(CONFIGFUNC, to_string(REDTESTCFGSTOP)); - printf("redtestcfgstop is called...\n"); -} - diff --git a/TestClient/DataManage/DataHandle.h b/TestClient/DataManage/DataHandle.h index dd7fe4e..3c0075b 100644 --- a/TestClient/DataManage/DataHandle.h +++ b/TestClient/DataManage/DataHandle.h @@ -2,6 +2,7 @@ #include #include "StreamClient.h" #include +#include "FuncTest.h" using namespace std; @@ -11,30 +12,18 @@ class DataHandle{ public: DataHandle(); virtual ~DataHandle(); - DataHandle(const DataHandle& d) = delete; - DataHandle& operator = (const DataHandle& d) = delete; void Init(); void Stop(); static void DataCallBackProc(void* pthis, const ReadData& msg); - void PushMsg(WRITETYPE dataType, const string& nameKey = "", const string& strValue = "", DATATYPE valueType = UNKNOW, DATAHANDLE handleType = UPDATE); - void PushMsg(const WriteData& wd); - string GetVersion()const {return m_version;} void ReceiveParam(int index); int Request(int index); - void AllTest(); - void AxisMoveTest(); //轴运动测试 - void ScanCtrlTest(); //扫描控制测试 - void RegistrationTest(); //注册功能测试 - void CameraTest(); //相机功能测试 - void PurifierTest(); //净化器功能测试 - void ConfigTest(); //配置功能测试 - void UpdateParamToService(const string& input); + void UpdateParamToServer(const string& input); void Usage(); void ParamReadUsage(); @@ -42,6 +31,9 @@ public: int GetPrintParam() const {return m_printIndex;} private: + void PushMsg(WRITETYPE dataType, const string& nameKey = "", const string& strValue = "", DATATYPE valueType = UNKNOW, DATAHANDLE handleType = UPDATE); + void PushMsg(const WriteData& wd); + void DataCallBackHandle(const ReadData& msg); void PrintValue(const ReadData& msg); void PrintScanerCfg(const stream::ScannerCrtlCfgResp& result); //打印config的特殊配置 @@ -53,4 +45,6 @@ private: int m_printIndex; //命令编号 map m_dataTypeMp; + + FuncTest m_funcTest; }; \ No newline at end of file diff --git a/TestClient/DataManage/FunC.h b/TestClient/DataManage/FunC.h index 08b161a..d395beb 100644 --- a/TestClient/DataManage/FunC.h +++ b/TestClient/DataManage/FunC.h @@ -125,4 +125,11 @@ enum SCCFGP { TIMEPOWERCOMPENSATECFG, }; + +enum CALLFUNC { + GetLogicalDrive = 0, + ScanDir, +}; + + #define OUTPUTNAME(x) #x \ No newline at end of file diff --git a/TestClient/DataManage/FuncTest.cpp b/TestClient/DataManage/FuncTest.cpp new file mode 100644 index 0000000..61415ec --- /dev/null +++ b/TestClient/DataManage/FuncTest.cpp @@ -0,0 +1,239 @@ +#include "FuncTest.h" + +void FuncTest::PushMsg(WRITETYPE dataType, const string& nameKey, const std::string& strValue, DATATYPE valueType, DATAHANDLE handleType) { + if (m_streamClient) { + WriteData msg; + msg.dataType = dataType; + msg.nameKey = nameKey; + msg.strValue = strValue; + msg.valueType = valueType; + msg.handleType = handleType; + m_streamClient->PushMsg(msg); + } +} + +void FuncTest::PushMsg(const WriteData& wd) { + if (m_streamClient) { + m_streamClient->PushMsg(wd); + } +} + + +void FuncTest::AllTest() { + AxisMoveTest(); + ScanCtrlTest(); + RegistrationTest(); + CameraTest(); + PurifierTest(); + ConfigTest(); + DirectoryTest(); +} + +//轴运动测试 +void FuncTest::AxisMoveTest() { + int count = (int)MACHINEFUNC::END0; + for (int i = 0; i < count; ++i) { + PushMsg(WRITETYPE::AXISMOVEFUNC, to_string(i)); + printf("发送请求%d成功...\n", i); + Sleep(100); + } + +} + + +//扫描控制测试 +void FuncTest::ScanCtrlTest() { + PushMsg(SCANCTRLFUNC, to_string(BEGINWORK)); printf("call BEGINWORK function...\n"); + PushMsg(SCANCTRLFUNC, to_string(PAUSEWORK)); printf("call PAUSEWORK function...\n"); + PushMsg(SCANCTRLFUNC, to_string(PAUSEAUTO)); printf("call PAUSEAUTO function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPWORK)); printf("call STOPWORK function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPREDTEST)); printf("call STOPREDTEST function...\n"); + PushMsg(SCANCTRLFUNC, to_string(TESTLAYER)); printf("call TESTLAYER function...\n"); + PushMsg(SCANCTRLFUNC, to_string(REMOVESCANNER), to_string(1), iINT); printf("call REMOVESCANNER function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STARTHEATINGMOTION)); printf("call STARTHEATINGMOTION function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPHEATINGMOTION), to_string(0), iBOOL); printf("call STOPHEATINGMOTION function...\n"); + + + PushMsg(SCANCTRLFUNC, to_string(STARTDEBUGTEST), "1", iINT); printf("call STARTDEBUGTEST function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPDEBUGTEST), "1", iINT); printf("call STOPDEBUGTEST function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STARTHEATINGSCANNERTEST), "1", iINT); printf("call STARTHEATINGSCANNERTEST function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPHEATINGSCANNERTEST), "1", iINT); printf("call STOPHEATINGSCANNERTEST function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STARTGETSCANINFO), "1", iINT); printf("call STARTGETSCANINFO function...\n"); + PushMsg(SCANCTRLFUNC, to_string(STOPGETSCANINFO), "1", iINT); printf("call STOPGETSCANINFO function...\n"); + + WriteData wd{ SCANCTRLFUNC,to_string(SETXYOFFSET) ,"1", iINT }; + wd.items.emplace_back(Item{ "x", to_string(1.23f),iFLOAT }); + wd.items.emplace_back(Item{ "y", to_string(2.23f),iFLOAT }); + PushMsg(wd); printf("call SETXYOFFSET function...\n"); + + wd.items.clear(); + wd.nameKey = to_string(SETANGLE); + wd.items.emplace_back(Item{ "angle", to_string(1.2),iDOUBLE }); + PushMsg(wd); printf("call SETANGLE function...\n"); + + PushMsg(SCANCTRLFUNC, to_string(UPDATESETTING), "1", iINT); printf("call UPDATESETTING function...\n"); + + wd.items.clear(); + wd.nameKey = to_string(UPDATESKYWRITING); + wd.items.emplace_back(Item{ "isList", to_string(true),iBOOL }); + PushMsg(wd); printf("call UPDATESKYWRITING function...\n"); + + wd.items.clear(); + wd.nameKey = to_string(SETXYCORRECT); + wd.items.emplace_back(Item{ "x", to_string(2.3),iDOUBLE }); + wd.items.emplace_back(Item{ "y", to_string(3.4),iDOUBLE }); + PushMsg(wd); printf("call SETXYCORRECT function...\n"); + + wd.items.clear(); + wd.nameKey = to_string(SETK); + wd.items.emplace_back(Item{ "k", to_string(2.1),iDOUBLE }); + PushMsg(wd); printf("call SETK function...\n"); + + wd.items.clear(); + wd.nameKey = to_string(FIXPOINTDAOADD); + wd.items.emplace_back(Item{ "cno", to_string(2),iINT }); + wd.items.emplace_back(Item{ "pointX", to_string(2.1),iFLOAT }); + wd.items.emplace_back(Item{ "pointY", to_string(2.1),iFLOAT }); + wd.items.emplace_back(Item{ "duration", to_string(5),iUINT }); + PushMsg(wd); printf("call FIXPOINTDAOADD function...\n"); + + wd.items.clear(); + wd.nameKey = to_string(FIXPOINTDAODEL); + wd.items.emplace_back(Item{ "id", to_string(2),iINT }); + PushMsg(wd); printf("call FIXPOINTDAODEL function...\n"); +} + +void FuncTest::RegistrationTest() { + ::stream::ResponseAny resp; + stream::RegResponce result; + + WriteData wdata{ REGISTFUNC ,to_string(CHECKREG),to_string(time(nullptr)) ,iSTRING }; + m_streamClient->Request(wdata, &resp); + if (resp.data().Is()) { + resp.data().UnpackTo(&result); + printf("CHECKREG resp:%d\n", result.data()); + } + Sleep(100); + + wdata.strValue = "123456789"; + wdata.nameKey = to_string(GETSN); + m_streamClient->Request(wdata, &resp); + if (resp.data().Is()) { + resp.data().UnpackTo(&result); + printf("GETSN resp:%u\n", (unsigned int)result.data()); + } + Sleep(100); + + wdata.strValue = "regconfig"; + wdata.nameKey = to_string(CHECKREGKEY); + m_streamClient->Request(wdata, &resp); + if (resp.data().Is()) { + resp.data().UnpackTo(&result); + printf("CHECKREGKEY resp:%d\n", result.data()); + } +} + +void FuncTest::CameraTest() { + + int count = (int)CAMERAFUNC::END2; + for (int i = 0; i < count; ++i) { + if (i == GETSHOWIMAGE || i == GETSHOWIMAGES) continue; + + if (i == SETDEMANDCATPURE) PushMsg(CAMERAFUNC, to_string(i), to_string(1), iBOOL); + else PushMsg(CAMERAFUNC, to_string(i)); + printf("发送请求%d成功...\n", i); + Sleep(100); + } + + ::stream::ResponseAny resp; + stream::ImgInfoResponce result; + WriteData wdata{ CAMERAFUNC ,to_string(GETSHOWIMAGE) }; + m_streamClient->Request(wdata, &resp); + if (resp.data().Is()) { + resp.data().UnpackTo(&result); + printf("GETSHOWIMAGE resp:%u\n", result.levelimage()); + } + Sleep(100); + + resp.Clear(); + wdata.nameKey = to_string(GETSHOWIMAGES); + wdata.strValue = to_string(5); //测试值 + wdata.valueType = iINT; //测试值 + m_streamClient->Request(wdata, &resp); + if (resp.data().Is()) { + resp.data().UnpackTo(&result); + printf("GETSHOWIMAGES resp levelimg:%u,height:%d,width:%d\n", result.levelimage(), result.width(), result.height()); + } + Sleep(100); + + //修改参数 + PushMsg(CAMERAPARAMUPDATE, "LastMouRefImgPosX", to_string(10), iINT); + PushMsg(CAMERAPARAMUPDATE, "LastMouRefImgPosY", to_string(100), iINT); + PushMsg(CAMERAPARAMUPDATE, "ShowFlag", to_string(1), iBOOL); + printf("CAMERAPARAMUPDATE update finish\n"); +} + +void FuncTest::PurifierTest() { + PushMsg(PURIFIERFUNC, to_string(STARTAUTODEOXYGEN)); + printf("STARTAUTODEOXYGEN is called...\n"); + PushMsg(PURIFIERFUNC, to_string(STOPAUTODEOXYGEN)); + printf("STOPAUTODEOXYGEN is called...\n"); +} + +void FuncTest::ConfigTest() { + PushMsg(CONFIGFUNC, to_string(SAVECONFIG)); + printf("saveconfig is called...\n"); + PushMsg(CONFIGFUNC, to_string(SAVEMACHINECONFIG)); + printf("savemachineconfig is called...\n"); + PushMsg(CONFIGFUNC, to_string(DELETEMACHINEIO)); + printf("deletemachineio is called...\n"); + + WriteData wd{ CONFIGFUNC, to_string(CONTROLRUN) }; + wd.items.emplace_back(Item{ "enable", to_string(true) ,iBOOL }); + wd.items.emplace_back(Item{ "code", "usp" ,iSTRING }); + PushMsg(wd); + printf("controlrun is called...\n"); + + ::stream::ResponseAny resp; + stream::ComResponce result; + WriteData wdata{ CONFIGFUNC ,to_string(IOVERSIONSTR) }; + wdata.items.emplace_back(Item{ "index","1",iINT }); + m_streamClient->Request(wdata, &resp); + if (resp.data().Is()) { + resp.data().UnpackTo(&result); + printf("IOVERSIONSTR resp:%s\n", result.data().data()); + } + + PushMsg(CONFIGFUNC, to_string(REDTESTCFGSTART)); + printf("redtestcfgstart is called...\n"); + + PushMsg(CONFIGFUNC, to_string(REDTESTCFGSTOP)); + printf("redtestcfgstop is called...\n"); +} + +void FuncTest::DirectoryTest() { + ::stream::ResponseAny resp; + stream::ComResponce result; + WriteData wdata{ DIRCTROYFUNC ,to_string(GetLogicalDrive) }; + m_streamClient->Request(wdata, &resp); + if (resp.data().Is()) { + resp.data().UnpackTo(&result); + printf("GetLogicalDrive resp:%s\n", result.data().data()); + } + Sleep(100); + + wdata = WriteData{ DIRCTROYFUNC ,to_string(ScanDir),"C://" }; + m_streamClient->Request(wdata, &resp); + if (resp.data().Is()) { + resp.data().UnpackTo(&result); + printf("ScanDir directory:%s\n", result.directory().data()); + + for (auto& it : result.fileinfo()) { + printf("ScanDir fileinfo type:%s,filename:%s,filepath:%s,ext:%s\n" + , it.type().data(), it.filename().data(), it.filepath().data(), it.ext().data()); + } + + printf("size:%d\n",result.fileinfo_size()); + } + +} \ No newline at end of file diff --git a/TestClient/DataManage/FuncTest.h b/TestClient/DataManage/FuncTest.h new file mode 100644 index 0000000..894b909 --- /dev/null +++ b/TestClient/DataManage/FuncTest.h @@ -0,0 +1,32 @@ +#pragma once +#include "FunC.h" +#include "RWData.h" +#include "StreamClient.h" +using namespace std; + +class FuncTest { +public: + FuncTest() :m_streamClient(nullptr){} + ~FuncTest() {} + + void SetStreamClient(StreamClient* sc) { + m_streamClient = sc; + } + + void AllTest(); + void AxisMoveTest(); //轴运动测试 + void ScanCtrlTest(); //扫描控制测试 + void RegistrationTest(); //注册功能测试 + void CameraTest(); //相机功能测试 + void PurifierTest(); //净化器功能测试 + void ConfigTest(); //配置功能测试 + void DirectoryTest(); //h3d文件目录接口测试 + +private: + void PushMsg(WRITETYPE dataType, const string& nameKey = "", const string& strValue = "", DATATYPE valueType = UNKNOW, DATAHANDLE handleType = UPDATE); + void PushMsg(const WriteData& wd); + +private: + StreamClient* m_streamClient; + +}; \ No newline at end of file diff --git a/TestClient/DataManage/RWData.h b/TestClient/DataManage/RWData.h index 845021c..af075dc 100644 --- a/TestClient/DataManage/RWData.h +++ b/TestClient/DataManage/RWData.h @@ -128,6 +128,7 @@ enum WRITETYPE { CAMERAPARAMUPDATE, //相机参数更新 PURIFIERFUNC, //净化器接口功能 CONFIGFUNC, //config functions + DIRCTROYFUNC, //请求目录信息 SETZEROPOS, //AxisState使用 AXISSTOPALL, //axis 运动急停 @@ -149,6 +150,7 @@ enum WRITETYPE { SCANERCTRLCFG, LOADPARAM, //装载参数 + SCANCTRLFUNC, //振镜控制函数 REQUEST = 100, //获取配置信息 test用 diff --git a/TestClient/FuncTest.cpp b/TestClient/FuncTest.cpp new file mode 100644 index 0000000..1fc9762 --- /dev/null +++ b/TestClient/FuncTest.cpp @@ -0,0 +1,22 @@ +#include "FuncTest.h" +#include "FunC.h" +#include "../utils/ConverType.h" +#include "../utils/StringHelper.h" + +void FuncTest::PushMsg(WRITETYPE dataType, const string& nameKey, const string& strValue, DATATYPE valueType, DATAHANDLE handleType) { + if (m_streamClient) { + WriteData msg; + msg.dataType = dataType; + msg.nameKey = nameKey; + msg.strValue = strValue; + msg.valueType = valueType; + msg.handleType = handleType; + m_streamClient->PushMsg(msg); + } +} + +void FuncTest::PushMsg(const WriteData& wd) { + if (m_streamClient) { + m_streamClient->PushMsg(wd); + } +} \ No newline at end of file diff --git a/TestClient/FuncTest.h b/TestClient/FuncTest.h new file mode 100644 index 0000000..f849eff --- /dev/null +++ b/TestClient/FuncTest.h @@ -0,0 +1,16 @@ +#pragma once +#include "FunC.h" + +class FuncTest { +public: + FuncTest(); + ~FuncTest(); + + +private: + void PushMsg(WRITETYPE dataType, const string& nameKey, const string& strValue, DATATYPE valueType, DATAHANDLE handleType); + void PushMsg(const WriteData& wd); + + + +}; \ No newline at end of file diff --git a/TestClient/PrintC.vcxproj b/TestClient/PrintC.vcxproj index 80d8948..0d23b7d 100644 --- a/TestClient/PrintC.vcxproj +++ b/TestClient/PrintC.vcxproj @@ -142,6 +142,7 @@ + @@ -211,6 +212,7 @@ + diff --git a/TestClient/PrintC.vcxproj.filters b/TestClient/PrintC.vcxproj.filters index 2cfa783..d8885e8 100644 --- a/TestClient/PrintC.vcxproj.filters +++ b/TestClient/PrintC.vcxproj.filters @@ -260,6 +260,9 @@ protobuf + + DataManage + @@ -521,6 +524,9 @@ protobuf + + DataManage + diff --git a/TestClient/main.cpp b/TestClient/main.cpp index 49e15a1..59e2c91 100644 --- a/TestClient/main.cpp +++ b/TestClient/main.cpp @@ -76,12 +76,19 @@ int main(int argc, char** argv) { std::getline(std::cin, userInput); // 读取用户输入 unknowCmd = false; if (userInput.empty()) continue; - - if(ConverType::TryToI(userInput)<0 || dataHandle->Request(stoi(userInput)) < 0){ + else if (userInput == "h") { + dataHandle->Usage(); continue; + } + else if (userInput == "s") { + dataHandle->Stop(); + } + else if (userInput == "e") { + dataHandle->Stop(); break; + } + else if(ConverType::TryToI(userInput)<0 || dataHandle->Request(stoi(userInput)) < 0){ printf("未识别的命令,请重新输入命令:"); unknowCmd = true; } - } DELP(dataHandle); diff --git a/TestClient/protobuf/stream.pb.cc b/TestClient/protobuf/stream.pb.cc index e7673c2..a79a353 100644 --- a/TestClient/protobuf/stream.pb.cc +++ b/TestClient/protobuf/stream.pb.cc @@ -36,27 +36,13 @@ PROTOBUF_CONSTEXPR ParamInfo::ParamInfo(::_pbi::ConstantInitialized) &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}, }, - /*decltype(_impl_.cardname_)*/ { - &::_pbi::fixed_address_empty_string, - ::_pbi::ConstantInitialized{}, - }, - /*decltype(_impl_.cardip_)*/ { - &::_pbi::fixed_address_empty_string, - ::_pbi::ConstantInitialized{}, - }, /*decltype(_impl_.valuetype_)*/ 0, - /*decltype(_impl_.startlayer_)*/ 0, /*decltype(_impl_.isenable_)*/ false, /*decltype(_impl_.isalarm_)*/ false, /*decltype(_impl_.isshow_)*/ false, - /*decltype(_impl_.hadassign_)*/ false, + /*decltype(_impl_.startlayer_)*/ 0, /*decltype(_impl_.endlayer_)*/ 0, /*decltype(_impl_.powder_)*/ 0, - /*decltype(_impl_.seqno_)*/ 0, - /*decltype(_impl_.controlno_)*/ 0, - /*decltype(_impl_.serialno_)*/ 0, - /*decltype(_impl_.controltype_)*/ 0, - /*decltype(_impl_.hadmatch_)*/ false, /*decltype(_impl_._cached_size_)*/ {}, } {} struct ParamInfoDefaultTypeInternal { @@ -260,12 +246,48 @@ struct ImgInfoResponceDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ImgInfoResponceDefaultTypeInternal _ImgInfoResponce_default_instance_; template +PROTOBUF_CONSTEXPR ComResponce_FileInfoStruct::ComResponce_FileInfoStruct(::_pbi::ConstantInitialized) + : _impl_{ + /*decltype(_impl_.type_)*/ { + &::_pbi::fixed_address_empty_string, + ::_pbi::ConstantInitialized{}, + }, + /*decltype(_impl_.filepath_)*/ { + &::_pbi::fixed_address_empty_string, + ::_pbi::ConstantInitialized{}, + }, + /*decltype(_impl_.filename_)*/ { + &::_pbi::fixed_address_empty_string, + ::_pbi::ConstantInitialized{}, + }, + /*decltype(_impl_.ext_)*/ { + &::_pbi::fixed_address_empty_string, + ::_pbi::ConstantInitialized{}, + }, + /*decltype(_impl_._cached_size_)*/ {}, + } {} +struct ComResponce_FileInfoStructDefaultTypeInternal { + PROTOBUF_CONSTEXPR ComResponce_FileInfoStructDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} + ~ComResponce_FileInfoStructDefaultTypeInternal() {} + union { + ComResponce_FileInfoStruct _instance; + }; +}; + +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ComResponce_FileInfoStructDefaultTypeInternal _ComResponce_FileInfoStruct_default_instance_; + template PROTOBUF_CONSTEXPR ComResponce::ComResponce(::_pbi::ConstantInitialized) : _impl_{ + /*decltype(_impl_.fileinfo_)*/ {}, /*decltype(_impl_.data_)*/ { &::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}, }, + /*decltype(_impl_.directory_)*/ { + &::_pbi::fixed_address_empty_string, + ::_pbi::ConstantInitialized{}, + }, /*decltype(_impl_._cached_size_)*/ {}, } {} struct ComResponceDefaultTypeInternal { @@ -551,7 +573,7 @@ struct TimePowerCompensateDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TimePowerCompensateDefaultTypeInternal _TimePowerCompensate_default_instance_; } // namespace stream -static ::_pb::Metadata file_level_metadata_stream_2eproto[21]; +static ::_pb::Metadata file_level_metadata_stream_2eproto[22]; static const ::_pb::EnumDescriptor* file_level_enum_descriptors_stream_2eproto[2]; static constexpr const ::_pb::ServiceDescriptor** file_level_service_descriptors_stream_2eproto = nullptr; @@ -575,14 +597,6 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.startlayer_), PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.endlayer_), PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.powder_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.seqno_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.controlno_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.serialno_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.controltype_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.cardname_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.cardip_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.hadassign_), - PROTOBUF_FIELD_OFFSET(::stream::ParamInfo, _impl_.hadmatch_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::stream::RequestInfo, _internal_metadata_), ~0u, // no _extensions_ @@ -698,6 +712,18 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.width_), PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.height_), ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::stream::ComResponce_FileInfoStruct, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _split_ + ~0u, // no sizeof(Split) + PROTOBUF_FIELD_OFFSET(::stream::ComResponce_FileInfoStruct, _impl_.type_), + PROTOBUF_FIELD_OFFSET(::stream::ComResponce_FileInfoStruct, _impl_.filepath_), + PROTOBUF_FIELD_OFFSET(::stream::ComResponce_FileInfoStruct, _impl_.filename_), + PROTOBUF_FIELD_OFFSET(::stream::ComResponce_FileInfoStruct, _impl_.ext_), + ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::stream::ComResponce, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ @@ -706,6 +732,8 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE ~0u, // no _split_ ~0u, // no sizeof(Split) PROTOBUF_FIELD_OFFSET(::stream::ComResponce, _impl_.data_), + PROTOBUF_FIELD_OFFSET(::stream::ComResponce, _impl_.directory_), + PROTOBUF_FIELD_OFFSET(::stream::ComResponce, _impl_.fileinfo_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::stream::ScannerCrtlCfgResp, _internal_metadata_), ~0u, // no _extensions_ @@ -932,26 +960,27 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { {0, -1, -1, sizeof(::stream::ParamInfo)}, - {26, -1, -1, sizeof(::stream::RequestInfo)}, - {40, -1, -1, sizeof(::stream::ResponseInfo)}, - {51, 60, -1, sizeof(::stream::ResponseAny)}, - {61, -1, -1, sizeof(::stream::LayerData)}, - {74, -1, -1, sizeof(::stream::LayerDataBlock)}, - {88, -1, -1, sizeof(::stream::VectorDataBlock)}, - {100, -1, -1, sizeof(::stream::ChainDataBlock)}, - {110, -1, -1, sizeof(::stream::Point)}, - {120, -1, -1, sizeof(::stream::RegResponce)}, - {129, -1, -1, sizeof(::stream::ImgInfoResponce)}, - {140, -1, -1, sizeof(::stream::ComResponce)}, - {149, -1, -1, sizeof(::stream::ScannerCrtlCfgResp)}, - {158, 185, -1, sizeof(::stream::ScannerCrtlCfgData)}, - {204, -1, -1, sizeof(::stream::FixPointData)}, - {217, -1, -1, sizeof(::stream::ScanParamCfg)}, - {255, -1, -1, sizeof(::stream::CorrectParamCfg)}, - {289, -1, -1, sizeof(::stream::ScanTestCfg)}, - {319, -1, -1, sizeof(::stream::SkyWritingCfg)}, - {344, -1, -1, sizeof(::stream::PowerCompensate)}, - {357, -1, -1, sizeof(::stream::TimePowerCompensate)}, + {18, -1, -1, sizeof(::stream::RequestInfo)}, + {32, -1, -1, sizeof(::stream::ResponseInfo)}, + {43, 52, -1, sizeof(::stream::ResponseAny)}, + {53, -1, -1, sizeof(::stream::LayerData)}, + {66, -1, -1, sizeof(::stream::LayerDataBlock)}, + {80, -1, -1, sizeof(::stream::VectorDataBlock)}, + {92, -1, -1, sizeof(::stream::ChainDataBlock)}, + {102, -1, -1, sizeof(::stream::Point)}, + {112, -1, -1, sizeof(::stream::RegResponce)}, + {121, -1, -1, sizeof(::stream::ImgInfoResponce)}, + {132, -1, -1, sizeof(::stream::ComResponce_FileInfoStruct)}, + {144, -1, -1, sizeof(::stream::ComResponce)}, + {155, -1, -1, sizeof(::stream::ScannerCrtlCfgResp)}, + {164, 191, -1, sizeof(::stream::ScannerCrtlCfgData)}, + {210, -1, -1, sizeof(::stream::FixPointData)}, + {223, -1, -1, sizeof(::stream::ScanParamCfg)}, + {261, -1, -1, sizeof(::stream::CorrectParamCfg)}, + {295, -1, -1, sizeof(::stream::ScanTestCfg)}, + {325, -1, -1, sizeof(::stream::SkyWritingCfg)}, + {350, -1, -1, sizeof(::stream::PowerCompensate)}, + {363, -1, -1, sizeof(::stream::TimePowerCompensate)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -966,6 +995,7 @@ static const ::_pb::Message* const file_default_instances[] = { &::stream::_Point_default_instance_._instance, &::stream::_RegResponce_default_instance_._instance, &::stream::_ImgInfoResponce_default_instance_._instance, + &::stream::_ComResponce_FileInfoStruct_default_instance_._instance, &::stream::_ComResponce_default_instance_._instance, &::stream::_ScannerCrtlCfgResp_default_instance_._instance, &::stream::_ScannerCrtlCfgData_default_instance_._instance, @@ -979,131 +1009,131 @@ static const ::_pb::Message* const file_default_instances[] = { }; const char descriptor_table_protodef_stream_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { "\n\014stream.proto\022\006stream\032\031google/protobuf/" - "any.proto\"\331\002\n\tParamInfo\022\017\n\007nameKey\030\001 \001(\014" + "any.proto\"\311\001\n\tParamInfo\022\017\n\007nameKey\030\001 \001(\014" "\022\020\n\010strValue\030\002 \001(\014\022\037\n\tvalueType\030\003 \001(\0162\014." "stream.TYPE\022\017\n\007context\030\004 \001(\014\022\020\n\010isEnable" "\030\005 \001(\010\022\017\n\007isAlarm\030\006 \001(\010\022\016\n\006isShow\030\007 \001(\010\022" "\022\n\nstartLayer\030\010 \001(\005\022\020\n\010endLayer\030\t \001(\005\022\016\n" - "\006powder\030\n \001(\002\022\r\n\005seqNo\030\013 \001(\005\022\021\n\tcontrolN" - "o\030\014 \001(\005\022\020\n\010serialNo\030\r \001(\005\022\023\n\013controlType" - "\030\016 \001(\005\022\020\n\010cardName\030\017 \001(\014\022\016\n\006cardIP\030\020 \001(\014" - "\022\021\n\thadAssign\030\021 \001(\010\022\020\n\010hadMatch\030\022 \001(\010\"\254\001" - "\n\013RequestInfo\022\020\n\010dataType\030\001 \001(\r\022\017\n\007nameK" - "ey\030\002 \001(\014\022\020\n\010strValue\030\003 \001(\014\022\037\n\tvalueType\030" - "\004 \001(\0162\014.stream.TYPE\022&\n\nhandleType\030\005 \001(\0162" - "\022.stream.DATAHANDLE\022\037\n\004item\030\006 \003(\0132\021.stre" - "am.ParamInfo\"Q\n\014ResponseInfo\022\020\n\010dataType" - "\030\001 \001(\r\022\016\n\006result\030\002 \001(\010\022\037\n\004item\030\003 \003(\0132\021.s" - "tream.ParamInfo\"1\n\013ResponseAny\022\"\n\004data\030\001" - " \001(\0132\024.google.protobuf.Any\"\210\001\n\tLayerData" - "\022\023\n\013zCooldinate\030\001 \001(\002\022\016\n\006powder\030\002 \001(\002\022\026\n" - "\016layerThickness\030\003 \001(\002\022.\n\016layerDataBlock\030" - "\004 \003(\0132\026.stream.LayerDataBlock\022\016\n\006result\030" - "\005 \001(\010\"\266\001\n\016LayerDataBlock\022\021\n\telementId\030\001 " - "\001(\005\022\026\n\016elementParamId\030\002 \001(\005\022\021\n\tblockType" - "\030\003 \001(\r\022*\n\tvecBlocks\030\004 \003(\0132\027.stream.Vecto" - "rDataBlock\022+\n\013chainBlocks\030\005 \003(\0132\026.stream" - ".ChainDataBlock\022\r\n\005order\030\006 \001(\r\"M\n\017Vector" - "DataBlock\022\016\n\006startX\030\001 \001(\002\022\016\n\006startY\030\002 \001(" - "\002\022\014\n\004endX\030\003 \001(\002\022\014\n\004endY\030\004 \001(\002\"A\n\016ChainDa" - "taBlock\022\016\n\006dotNum\030\001 \001(\r\022\037\n\010pointVec\030\002 \003(" - "\0132\r.stream.Point\"#\n\005Point\022\014\n\004xPos\030\001 \001(\002\022" - "\014\n\004yPos\030\002 \001(\002\"\033\n\013RegResponce\022\014\n\004data\030\001 \001" - "(\005\"D\n\017ImgInfoResponce\022\022\n\nlevelImage\030\001 \001(" - "\r\022\r\n\005width\030\002 \001(\005\022\016\n\006height\030\003 \001(\005\"\033\n\013ComR" - "esponce\022\014\n\004data\030\001 \001(\014\"D\n\022ScannerCrtlCfgR" - "esp\022.\n\nscannerCfg\030\001 \003(\0132\032.stream.Scanner" - "CrtlCfgData\"\210\005\n\022ScannerCrtlCfgData\022\r\n\005se" - "qNo\030\001 \001(\005\022*\n\014fixPointData\030\002 \003(\0132\024.stream" - ".FixPointData\022*\n\014scanParamCfg\030\003 \001(\0132\024.st" - "ream.ScanParamCfg\022,\n\016hatchingParams\030\004 \001(" - "\0132\024.stream.ScanParamCfg\022*\n\014borderParams\030" - "\005 \001(\0132\024.stream.ScanParamCfg\022+\n\rsupportPa" - "rams\030\006 \001(\0132\024.stream.ScanParamCfg\0220\n\017corr" - "ectParamCfg\030\007 \001(\0132\027.stream.CorrectParamC" - "fg\022(\n\013scanTestCfg\030\010 \001(\0132\023.stream.ScanTes" - "tCfg\022,\n\rskyWritingCfg\030\t \001(\0132\025.stream.Sky" - "WritingCfg\0220\n\017powerCompensate\030\n \003(\0132\027.st" - "ream.PowerCompensate\0225\n\020tPowerCompensate" - "\030\013 \003(\0132\033.stream.TimePowerCompensate\022\021\n\tc" - "ontrolNo\030\014 \001(\005\022\020\n\010serialNo\030\r \001(\005\022\023\n\013cont" - "rolType\030\016 \001(\005\022\020\n\010cardName\030\017 \001(\014\022\016\n\006cardI" - "P\030\020 \001(\014\022\020\n\010isEnable\030\021 \001(\010\022\021\n\thadAssign\030\022" - " \001(\010\022\020\n\010hadMatch\030\023 \001(\010\"Y\n\014FixPointData\022\n" - "\n\002id\030\001 \001(\005\022\013\n\003cno\030\002 \001(\005\022\016\n\006pointX\030\003 \001(\002\022" - "\016\n\006pointY\030\004 \001(\002\022\020\n\010duration\030\005 \001(\r\"\275\005\n\014Sc" - "anParamCfg\022\021\n\tedgeLevel\030\001 \001(\005\022\024\n\014edgeLev" - "elMin\030\002 \001(\005\022\024\n\014edgeLevelMax\030\003 \001(\005\022\021\n\tjum" - "pDelay\030\004 \001(\r\022\024\n\014jumpDelayMin\030\005 \001(\r\022\024\n\014ju" - "mpDelayMax\030\006 \001(\r\022\021\n\tscanDelay\030\007 \001(\r\022\024\n\014s" - "canDelayMin\030\010 \001(\r\022\024\n\014scanDelayMax\030\t \001(\r\022" - "\024\n\014polygonDelay\030\n \001(\r\022\027\n\017polygonDelayMin" - "\030\013 \001(\r\022\027\n\017polygonDelayMax\030\014 \001(\r\022\025\n\rlaser" - "offDelay\030\r \001(\003\022\030\n\020laseroffDelayMin\030\016 \001(\003" - "\022\030\n\020laseroffDelayMax\030\017 \001(\003\022\024\n\014laseronDel" - "ay\030\020 \001(\003\022\027\n\017laseronDelayMin\030\021 \001(\003\022\027\n\017las" - "eronDelayMax\030\022 \001(\003\022\024\n\014minJumpDelay\030\023 \001(\r" - "\022\027\n\017minJumpDelayMin\030\024 \001(\r\022\027\n\017minJumpDela" - "yMax\030\025 \001(\r\022\027\n\017jumpLengthLimit\030\026 \001(\r\022\032\n\022j" - "umpLengthLimitMin\030\027 \001(\r\022\032\n\022jumpLengthLim" - "itMax\030\030 \001(\r\022\021\n\tjumpSpeed\030\031 \001(\001\022\024\n\014jumpSp" - "eedMin\030\032 \001(\001\022\024\n\014jumpSpeedMax\030\033 \001(\001\022\021\n\tma" - "rkSpeed\030\034 \001(\001\022\024\n\014markSpeedMin\030\035 \001(\001\022\024\n\014m" - "arkSpeedMax\030\036 \001(\001\"\256\004\n\017CorrectParamCfg\022\023\n" - "\013xmeasureMin\030\001 \001(\001\022\023\n\013xmeasureMax\030\002 \001(\001\022" - "\023\n\013ymeasureMin\030\003 \001(\001\022\023\n\013ymeasureMax\030\004 \001(" - "\001\022\017\n\007xposfix\030\005 \001(\001\022\017\n\007yposfix\030\006 \001(\001\022\021\n\ts" - "canAngle\030\007 \001(\001\022\024\n\014scanAngleMin\030\010 \001(\001\022\024\n\014" - "scanAngleMax\030\t \001(\001\022\020\n\010fixAngle\030\n \001(\001\022\023\n\013" - "fixAngleMin\030\013 \001(\001\022\023\n\013fixAngleMax\030\014 \001(\001\022\020" - "\n\010xcorrect\030\r \001(\001\022\020\n\010ycorrect\030\016 \001(\001\022\023\n\013xc" - "orrectMin\030\017 \001(\001\022\023\n\013xcorrectMax\030\020 \001(\001\022\023\n\013" - "ycorrectMin\030\021 \001(\001\022\023\n\013ycorrectMax\030\022 \001(\001\022\023" - "\n\013realXOffset\030\023 \001(\001\022\023\n\013realYOffset\030\024 \001(\001" - "\022\017\n\007factorK\030\025 \001(\001\022\027\n\017isCorrectFile3D\030\026 \001" - "(\010\022\026\n\016isDynamicFocus\030\027 \001(\010\022\024\n\014defocusRat" - "io\030\030 \001(\001\022\027\n\017defocusRatioMin\030\031 \001(\001\022\027\n\017def" - "ocusRatioMax\030\032 \001(\001\"\226\004\n\013ScanTestCfg\022\022\n\nde" - "bugShape\030\001 \001(\005\022\021\n\tshapeSize\030\002 \001(\005\022\024\n\014sha" - "peSizeMin\030\003 \001(\005\022\026\n\016shape_size_max\030\004 \001(\005\022" - "\023\n\013laser_power\030\005 \001(\005\022\027\n\017laser_power_min\030" - "\006 \001(\005\022\027\n\017laser_power_max\030\007 \001(\005\022\017\n\007defocu" - "s\030\010 \001(\001\022\023\n\013defocus_min\030\t \001(\001\022\023\n\013defocus_" - "max\030\n \001(\001\022\020\n\010is_cycle\030\013 \001(\010\022\017\n\007cross_x\030\014" - " \001(\001\022\017\n\007cross_y\030\r \001(\001\022\022\n\nz_distance\030\016 \001(" - "\001\022\034\n\024isAutoHeatingScanner\030\017 \001(\010\022!\n\031autoH" - "eatingScannerMinutes\030\020 \001(\r\022\036\n\026autoHeatin" - "gScannerSize\030\021 \001(\r\022\037\n\027autoHeatingScanner" - "Speed\030\022 \001(\001\022\031\n\021mark_test_start_x\030\023 \001(\001\022\031" - "\n\021mark_test_start_y\030\024 \001(\001\022\027\n\017mark_test_e" - "nd_x\030\025 \001(\001\022\027\n\017mark_test_end_y\030\026 \001(\001\"\314\002\n\r" - "SkyWritingCfg\022\020\n\010isEnable\030\001 \001(\010\022\017\n\007timel" - "ag\030\002 \001(\001\022\022\n\ntimelagMin\030\003 \001(\001\022\022\n\ntimelagM" - "ax\030\004 \001(\001\022\024\n\014laserOnShift\030\005 \001(\003\022\027\n\017laserO" - "nShiftMin\030\006 \001(\003\022\027\n\017laserOnShiftMax\030\007 \001(\003" - "\022\r\n\005nprev\030\010 \001(\r\022\020\n\010nprevMin\030\t \001(\r\022\020\n\010npr" - "evMax\030\n \001(\r\022\r\n\005npost\030\013 \001(\r\022\020\n\010npostMin\030\014" - " \001(\r\022\020\n\010npostMax\030\r \001(\r\022\014\n\004mode\030\016 \001(\005\022\016\n\006" - "limite\030\017 \001(\001\022\021\n\tlimiteMin\030\020 \001(\001\022\021\n\tlimit" - "eMax\030\021 \001(\001\"d\n\017PowerCompensate\022\013\n\003cno\030\001 \001" - "(\005\022\017\n\007percent\030\002 \001(\005\022\r\n\005value\030\003 \001(\002\022\021\n\tva" - "lue_min\030\004 \001(\002\022\021\n\tvalue_max\030\005 \001(\002\"j\n\023Time" - "PowerCompensate\022\n\n\002id\030\001 \001(\005\022\013\n\003cno\030\002 \001(\005" - "\022\023\n\013startMinute\030\003 \001(\r\022\021\n\tendMinute\030\004 \001(\r" - "\022\022\n\ncompensate\030\005 \001(\002*\223\001\n\004TYPE\022\t\n\005iBOOL\020\000" - "\022\n\n\006iSHORT\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004iINT\020\003\022\t\n\005i" - "UINT\020\004\022\n\n\006iFLOAT\020\005\022\013\n\007iSTRING\020\006\022\t\n\005iCHAR" - "\020\007\022\n\n\006iUCHAR\020\010\022\t\n\005iWORD\020\t\022\013\n\007iDOUBLE\020\n\022\n" - "\n\006iTIMET\020\013**\n\nDATAHANDLE\022\n\n\006UPDATE\020\000\022\007\n\003" - "ADD\020\001\022\007\n\003DEL\020\0022\372\001\n\006Stream\0224\n\006Simple\022\023.st" - "ream.RequestInfo\032\023.stream.ResponseAny\"\000\022" - "=\n\014ServerStream\022\023.stream.RequestInfo\032\024.s" - "tream.ResponseInfo\"\0000\001\022=\n\014ClientStream\022\023" - ".stream.RequestInfo\032\024.stream.ResponseInf" - "o\"\000(\001\022<\n\tAllStream\022\023.stream.RequestInfo\032" - "\024.stream.ResponseInfo\"\000(\0010\001B-\n\027io.grpc.e" - "xamples.streamB\013StreamProtoP\001\242\002\002STb\006prot" - "o3" + "\006powder\030\n \001(\002\"\254\001\n\013RequestInfo\022\020\n\010dataTyp" + "e\030\001 \001(\r\022\017\n\007nameKey\030\002 \001(\014\022\020\n\010strValue\030\003 \001" + "(\014\022\037\n\tvalueType\030\004 \001(\0162\014.stream.TYPE\022&\n\nh" + "andleType\030\005 \001(\0162\022.stream.DATAHANDLE\022\037\n\004i" + "tem\030\006 \003(\0132\021.stream.ParamInfo\"Q\n\014Response" + "Info\022\020\n\010dataType\030\001 \001(\r\022\016\n\006result\030\002 \001(\010\022\037" + "\n\004item\030\003 \003(\0132\021.stream.ParamInfo\"1\n\013Respo" + "nseAny\022\"\n\004data\030\001 \001(\0132\024.google.protobuf.A" + "ny\"\210\001\n\tLayerData\022\023\n\013zCooldinate\030\001 \001(\002\022\016\n" + "\006powder\030\002 \001(\002\022\026\n\016layerThickness\030\003 \001(\002\022.\n" + "\016layerDataBlock\030\004 \003(\0132\026.stream.LayerData" + "Block\022\016\n\006result\030\005 \001(\010\"\266\001\n\016LayerDataBlock" + "\022\021\n\telementId\030\001 \001(\005\022\026\n\016elementParamId\030\002 " + "\001(\005\022\021\n\tblockType\030\003 \001(\r\022*\n\tvecBlocks\030\004 \003(" + "\0132\027.stream.VectorDataBlock\022+\n\013chainBlock" + "s\030\005 \003(\0132\026.stream.ChainDataBlock\022\r\n\005order" + "\030\006 \001(\r\"M\n\017VectorDataBlock\022\016\n\006startX\030\001 \001(" + "\002\022\016\n\006startY\030\002 \001(\002\022\014\n\004endX\030\003 \001(\002\022\014\n\004endY\030" + "\004 \001(\002\"A\n\016ChainDataBlock\022\016\n\006dotNum\030\001 \001(\r\022" + "\037\n\010pointVec\030\002 \003(\0132\r.stream.Point\"#\n\005Poin" + "t\022\014\n\004xPos\030\001 \001(\002\022\014\n\004yPos\030\002 \001(\002\"\033\n\013RegResp" + "once\022\014\n\004data\030\001 \001(\005\"D\n\017ImgInfoResponce\022\022\n" + "\nlevelImage\030\001 \001(\r\022\r\n\005width\030\002 \001(\005\022\016\n\006heig" + "ht\030\003 \001(\005\"\265\001\n\013ComResponce\022\014\n\004data\030\001 \001(\014\022\021" + "\n\tdirectory\030\002 \001(\014\0224\n\010fileInfo\030\003 \003(\0132\".st" + "ream.ComResponce.FileInfoStruct\032O\n\016FileI" + "nfoStruct\022\014\n\004type\030\001 \001(\014\022\020\n\010filePath\030\002 \001(" + "\014\022\020\n\010fileName\030\003 \001(\014\022\013\n\003ext\030\004 \001(\014\"D\n\022Scan" + "nerCrtlCfgResp\022.\n\nscannerCfg\030\001 \003(\0132\032.str" + "eam.ScannerCrtlCfgData\"\210\005\n\022ScannerCrtlCf" + "gData\022\r\n\005seqNo\030\001 \001(\005\022*\n\014fixPointData\030\002 \003" + "(\0132\024.stream.FixPointData\022*\n\014scanParamCfg" + "\030\003 \001(\0132\024.stream.ScanParamCfg\022,\n\016hatching" + "Params\030\004 \001(\0132\024.stream.ScanParamCfg\022*\n\014bo" + "rderParams\030\005 \001(\0132\024.stream.ScanParamCfg\022+" + "\n\rsupportParams\030\006 \001(\0132\024.stream.ScanParam" + "Cfg\0220\n\017correctParamCfg\030\007 \001(\0132\027.stream.Co" + "rrectParamCfg\022(\n\013scanTestCfg\030\010 \001(\0132\023.str" + "eam.ScanTestCfg\022,\n\rskyWritingCfg\030\t \001(\0132\025" + ".stream.SkyWritingCfg\0220\n\017powerCompensate" + "\030\n \003(\0132\027.stream.PowerCompensate\0225\n\020tPowe" + "rCompensate\030\013 \003(\0132\033.stream.TimePowerComp" + "ensate\022\021\n\tcontrolNo\030\014 \001(\005\022\020\n\010serialNo\030\r " + "\001(\005\022\023\n\013controlType\030\016 \001(\005\022\020\n\010cardName\030\017 \001" + "(\014\022\016\n\006cardIP\030\020 \001(\014\022\020\n\010isEnable\030\021 \001(\010\022\021\n\t" + "hadAssign\030\022 \001(\010\022\020\n\010hadMatch\030\023 \001(\010\"Y\n\014Fix" + "PointData\022\n\n\002id\030\001 \001(\005\022\013\n\003cno\030\002 \001(\005\022\016\n\006po" + "intX\030\003 \001(\002\022\016\n\006pointY\030\004 \001(\002\022\020\n\010duration\030\005" + " \001(\r\"\275\005\n\014ScanParamCfg\022\021\n\tedgeLevel\030\001 \001(\005" + "\022\024\n\014edgeLevelMin\030\002 \001(\005\022\024\n\014edgeLevelMax\030\003" + " \001(\005\022\021\n\tjumpDelay\030\004 \001(\r\022\024\n\014jumpDelayMin\030" + "\005 \001(\r\022\024\n\014jumpDelayMax\030\006 \001(\r\022\021\n\tscanDelay" + "\030\007 \001(\r\022\024\n\014scanDelayMin\030\010 \001(\r\022\024\n\014scanDela" + "yMax\030\t \001(\r\022\024\n\014polygonDelay\030\n \001(\r\022\027\n\017poly" + "gonDelayMin\030\013 \001(\r\022\027\n\017polygonDelayMax\030\014 \001" + "(\r\022\025\n\rlaseroffDelay\030\r \001(\003\022\030\n\020laseroffDel" + "ayMin\030\016 \001(\003\022\030\n\020laseroffDelayMax\030\017 \001(\003\022\024\n" + "\014laseronDelay\030\020 \001(\003\022\027\n\017laseronDelayMin\030\021" + " \001(\003\022\027\n\017laseronDelayMax\030\022 \001(\003\022\024\n\014minJump" + "Delay\030\023 \001(\r\022\027\n\017minJumpDelayMin\030\024 \001(\r\022\027\n\017" + "minJumpDelayMax\030\025 \001(\r\022\027\n\017jumpLengthLimit" + "\030\026 \001(\r\022\032\n\022jumpLengthLimitMin\030\027 \001(\r\022\032\n\022ju" + "mpLengthLimitMax\030\030 \001(\r\022\021\n\tjumpSpeed\030\031 \001(" + "\001\022\024\n\014jumpSpeedMin\030\032 \001(\001\022\024\n\014jumpSpeedMax\030" + "\033 \001(\001\022\021\n\tmarkSpeed\030\034 \001(\001\022\024\n\014markSpeedMin" + "\030\035 \001(\001\022\024\n\014markSpeedMax\030\036 \001(\001\"\256\004\n\017Correct" + "ParamCfg\022\023\n\013xmeasureMin\030\001 \001(\001\022\023\n\013xmeasur" + "eMax\030\002 \001(\001\022\023\n\013ymeasureMin\030\003 \001(\001\022\023\n\013ymeas" + "ureMax\030\004 \001(\001\022\017\n\007xposfix\030\005 \001(\001\022\017\n\007yposfix" + "\030\006 \001(\001\022\021\n\tscanAngle\030\007 \001(\001\022\024\n\014scanAngleMi" + "n\030\010 \001(\001\022\024\n\014scanAngleMax\030\t \001(\001\022\020\n\010fixAngl" + "e\030\n \001(\001\022\023\n\013fixAngleMin\030\013 \001(\001\022\023\n\013fixAngle" + "Max\030\014 \001(\001\022\020\n\010xcorrect\030\r \001(\001\022\020\n\010ycorrect\030" + "\016 \001(\001\022\023\n\013xcorrectMin\030\017 \001(\001\022\023\n\013xcorrectMa" + "x\030\020 \001(\001\022\023\n\013ycorrectMin\030\021 \001(\001\022\023\n\013ycorrect" + "Max\030\022 \001(\001\022\023\n\013realXOffset\030\023 \001(\001\022\023\n\013realYO" + "ffset\030\024 \001(\001\022\017\n\007factorK\030\025 \001(\001\022\027\n\017isCorrec" + "tFile3D\030\026 \001(\010\022\026\n\016isDynamicFocus\030\027 \001(\010\022\024\n" + "\014defocusRatio\030\030 \001(\001\022\027\n\017defocusRatioMin\030\031" + " \001(\001\022\027\n\017defocusRatioMax\030\032 \001(\001\"\226\004\n\013ScanTe" + "stCfg\022\022\n\ndebugShape\030\001 \001(\005\022\021\n\tshapeSize\030\002" + " \001(\005\022\024\n\014shapeSizeMin\030\003 \001(\005\022\026\n\016shape_size" + "_max\030\004 \001(\005\022\023\n\013laser_power\030\005 \001(\005\022\027\n\017laser" + "_power_min\030\006 \001(\005\022\027\n\017laser_power_max\030\007 \001(" + "\005\022\017\n\007defocus\030\010 \001(\001\022\023\n\013defocus_min\030\t \001(\001\022" + "\023\n\013defocus_max\030\n \001(\001\022\020\n\010is_cycle\030\013 \001(\010\022\017" + "\n\007cross_x\030\014 \001(\001\022\017\n\007cross_y\030\r \001(\001\022\022\n\nz_di" + "stance\030\016 \001(\001\022\034\n\024isAutoHeatingScanner\030\017 \001" + "(\010\022!\n\031autoHeatingScannerMinutes\030\020 \001(\r\022\036\n" + "\026autoHeatingScannerSize\030\021 \001(\r\022\037\n\027autoHea" + "tingScannerSpeed\030\022 \001(\001\022\031\n\021mark_test_star" + "t_x\030\023 \001(\001\022\031\n\021mark_test_start_y\030\024 \001(\001\022\027\n\017" + "mark_test_end_x\030\025 \001(\001\022\027\n\017mark_test_end_y" + "\030\026 \001(\001\"\314\002\n\rSkyWritingCfg\022\020\n\010isEnable\030\001 \001" + "(\010\022\017\n\007timelag\030\002 \001(\001\022\022\n\ntimelagMin\030\003 \001(\001\022" + "\022\n\ntimelagMax\030\004 \001(\001\022\024\n\014laserOnShift\030\005 \001(" + "\003\022\027\n\017laserOnShiftMin\030\006 \001(\003\022\027\n\017laserOnShi" + "ftMax\030\007 \001(\003\022\r\n\005nprev\030\010 \001(\r\022\020\n\010nprevMin\030\t" + " \001(\r\022\020\n\010nprevMax\030\n \001(\r\022\r\n\005npost\030\013 \001(\r\022\020\n" + "\010npostMin\030\014 \001(\r\022\020\n\010npostMax\030\r \001(\r\022\014\n\004mod" + "e\030\016 \001(\005\022\016\n\006limite\030\017 \001(\001\022\021\n\tlimiteMin\030\020 \001" + "(\001\022\021\n\tlimiteMax\030\021 \001(\001\"d\n\017PowerCompensate" + "\022\013\n\003cno\030\001 \001(\005\022\017\n\007percent\030\002 \001(\005\022\r\n\005value\030" + "\003 \001(\002\022\021\n\tvalue_min\030\004 \001(\002\022\021\n\tvalue_max\030\005 " + "\001(\002\"j\n\023TimePowerCompensate\022\n\n\002id\030\001 \001(\005\022\013" + "\n\003cno\030\002 \001(\005\022\023\n\013startMinute\030\003 \001(\r\022\021\n\tendM" + "inute\030\004 \001(\r\022\022\n\ncompensate\030\005 \001(\002*\223\001\n\004TYPE" + "\022\t\n\005iBOOL\020\000\022\n\n\006iSHORT\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004" + "iINT\020\003\022\t\n\005iUINT\020\004\022\n\n\006iFLOAT\020\005\022\013\n\007iSTRING" + "\020\006\022\t\n\005iCHAR\020\007\022\n\n\006iUCHAR\020\010\022\t\n\005iWORD\020\t\022\013\n\007" + "iDOUBLE\020\n\022\n\n\006iTIMET\020\013**\n\nDATAHANDLE\022\n\n\006U" + "PDATE\020\000\022\007\n\003ADD\020\001\022\007\n\003DEL\020\0022\372\001\n\006Stream\0224\n\006" + "Simple\022\023.stream.RequestInfo\032\023.stream.Res" + "ponseAny\"\000\022=\n\014ServerStream\022\023.stream.Requ" + "estInfo\032\024.stream.ResponseInfo\"\0000\001\022=\n\014Cli" + "entStream\022\023.stream.RequestInfo\032\024.stream." + "ResponseInfo\"\000(\001\022<\n\tAllStream\022\023.stream.R" + "equestInfo\032\024.stream.ResponseInfo\"\000(\0010\001B-" + "\n\027io.grpc.examples.streamB\013StreamProtoP\001" + "\242\002\002STb\006proto3" }; static const ::_pbi::DescriptorTable* const descriptor_table_stream_2eproto_deps[1] = { @@ -1113,13 +1143,13 @@ static ::absl::once_flag descriptor_table_stream_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_stream_2eproto = { false, false, - 5002, + 5013, descriptor_table_protodef_stream_2eproto, "stream.proto", &descriptor_table_stream_2eproto_once, descriptor_table_stream_2eproto_deps, 1, - 21, + 22, schemas, file_default_instances, TableStruct_stream_2eproto::offsets, @@ -1201,21 +1231,13 @@ ParamInfo::ParamInfo(const ParamInfo& from) : ::google::protobuf::Message() { decltype(_impl_.namekey_){}, decltype(_impl_.strvalue_){}, decltype(_impl_.context_){}, - decltype(_impl_.cardname_){}, - decltype(_impl_.cardip_){}, decltype(_impl_.valuetype_){}, - decltype(_impl_.startlayer_){}, decltype(_impl_.isenable_){}, decltype(_impl_.isalarm_){}, decltype(_impl_.isshow_){}, - decltype(_impl_.hadassign_){}, + decltype(_impl_.startlayer_){}, decltype(_impl_.endlayer_){}, decltype(_impl_.powder_){}, - decltype(_impl_.seqno_){}, - decltype(_impl_.controlno_){}, - decltype(_impl_.serialno_){}, - decltype(_impl_.controltype_){}, - decltype(_impl_.hadmatch_){}, /*decltype(_impl_._cached_size_)*/ {}, }; _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>( @@ -1241,23 +1263,9 @@ ParamInfo::ParamInfo(const ParamInfo& from) : ::google::protobuf::Message() { if (!from._internal_context().empty()) { _this->_impl_.context_.Set(from._internal_context(), _this->GetArenaForAllocation()); } - _impl_.cardname_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardname_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (!from._internal_cardname().empty()) { - _this->_impl_.cardname_.Set(from._internal_cardname(), _this->GetArenaForAllocation()); - } - _impl_.cardip_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardip_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (!from._internal_cardip().empty()) { - _this->_impl_.cardip_.Set(from._internal_cardip(), _this->GetArenaForAllocation()); - } ::memcpy(&_impl_.valuetype_, &from._impl_.valuetype_, - static_cast<::size_t>(reinterpret_cast(&_impl_.hadmatch_) - - reinterpret_cast(&_impl_.valuetype_)) + sizeof(_impl_.hadmatch_)); + static_cast<::size_t>(reinterpret_cast(&_impl_.powder_) - + reinterpret_cast(&_impl_.valuetype_)) + sizeof(_impl_.powder_)); // @@protoc_insertion_point(copy_constructor:stream.ParamInfo) } @@ -1267,21 +1275,13 @@ inline void ParamInfo::SharedCtor(::_pb::Arena* arena) { decltype(_impl_.namekey_){}, decltype(_impl_.strvalue_){}, decltype(_impl_.context_){}, - decltype(_impl_.cardname_){}, - decltype(_impl_.cardip_){}, decltype(_impl_.valuetype_){0}, - decltype(_impl_.startlayer_){0}, decltype(_impl_.isenable_){false}, decltype(_impl_.isalarm_){false}, decltype(_impl_.isshow_){false}, - decltype(_impl_.hadassign_){false}, + decltype(_impl_.startlayer_){0}, decltype(_impl_.endlayer_){0}, decltype(_impl_.powder_){0}, - decltype(_impl_.seqno_){0}, - decltype(_impl_.controlno_){0}, - decltype(_impl_.serialno_){0}, - decltype(_impl_.controltype_){0}, - decltype(_impl_.hadmatch_){false}, /*decltype(_impl_._cached_size_)*/ {}, }; _impl_.namekey_.InitDefault(); @@ -1296,14 +1296,6 @@ inline void ParamInfo::SharedCtor(::_pb::Arena* arena) { #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING _impl_.context_.Set("", GetArenaForAllocation()); #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardname_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardname_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardip_.InitDefault(); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - _impl_.cardip_.Set("", GetArenaForAllocation()); - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING } ParamInfo::~ParamInfo() { // @@protoc_insertion_point(destructor:stream.ParamInfo) @@ -1315,8 +1307,6 @@ inline void ParamInfo::SharedDtor() { _impl_.namekey_.Destroy(); _impl_.strvalue_.Destroy(); _impl_.context_.Destroy(); - _impl_.cardname_.Destroy(); - _impl_.cardip_.Destroy(); } void ParamInfo::SetCachedSize(int size) const { _impl_._cached_size_.Set(size); @@ -1331,11 +1321,9 @@ PROTOBUF_NOINLINE void ParamInfo::Clear() { _impl_.namekey_.ClearToEmpty(); _impl_.strvalue_.ClearToEmpty(); _impl_.context_.ClearToEmpty(); - _impl_.cardname_.ClearToEmpty(); - _impl_.cardip_.ClearToEmpty(); ::memset(&_impl_.valuetype_, 0, static_cast<::size_t>( - reinterpret_cast(&_impl_.hadmatch_) - - reinterpret_cast(&_impl_.valuetype_)) + sizeof(_impl_.hadmatch_)); + reinterpret_cast(&_impl_.powder_) - + reinterpret_cast(&_impl_.valuetype_)) + sizeof(_impl_.powder_)); _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); } @@ -1347,15 +1335,15 @@ const char* ParamInfo::_InternalParse( PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { +const ::_pbi::TcParseTable<4, 10, 0, 0, 2> ParamInfo::_table_ = { { 0, // no _has_bits_ 0, // no _extensions_ - 18, 248, // max_field_number, fast_idx_mask + 10, 120, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294705152, // skipmap + 4294966272, // skipmap offsetof(decltype(_table_), field_entries), - 18, // num_field_entries + 10, // num_field_entries 0, // num_aux_entries offsetof(decltype(_table_), field_names), // no aux_entries &_ParamInfo_default_instance_._instance, @@ -1392,38 +1380,6 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { // float powder = 10; {::_pbi::TcParser::FastF32S1, {85, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.powder_)}}, - // int32 seqNo = 11; - {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ParamInfo, _impl_.seqno_), 63>(), - {88, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.seqno_)}}, - // int32 controlNo = 12; - {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ParamInfo, _impl_.controlno_), 63>(), - {96, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.controlno_)}}, - // int32 serialNo = 13; - {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ParamInfo, _impl_.serialno_), 63>(), - {104, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.serialno_)}}, - // int32 controlType = 14; - {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ParamInfo, _impl_.controltype_), 63>(), - {112, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.controltype_)}}, - // bytes cardName = 15; - {::_pbi::TcParser::FastBS1, - {122, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.cardname_)}}, - // bytes cardIP = 16; - {::_pbi::TcParser::FastBS2, - {386, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.cardip_)}}, - // bool hadAssign = 17; - {::_pbi::TcParser::FastV8S2, - {392, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.hadassign_)}}, - // bool hadMatch = 18; - {::_pbi::TcParser::FastV8S2, - {400, 63, 0, PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.hadmatch_)}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, - {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, @@ -1462,30 +1418,6 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { // float powder = 10; {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.powder_), 0, 0, (0 | ::_fl::kFcSingular | ::_fl::kFloat)}, - // int32 seqNo = 11; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.seqno_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, - // int32 controlNo = 12; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.controlno_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, - // int32 serialNo = 13; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.serialno_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, - // int32 controlType = 14; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.controltype_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, - // bytes cardName = 15; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.cardname_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, - // bytes cardIP = 16; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.cardip_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, - // bool hadAssign = 17; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.hadassign_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kBool)}, - // bool hadMatch = 18; - {PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.hadmatch_), 0, 0, - (0 | ::_fl::kFcSingular | ::_fl::kBool)}, }}, // no aux_entries {{ @@ -1571,60 +1503,6 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { 10, this->_internal_powder(), target); } - // int32 seqNo = 11; - if (this->_internal_seqno() != 0) { - target = ::google::protobuf::internal::WireFormatLite:: - WriteInt32ToArrayWithField<11>( - stream, this->_internal_seqno(), target); - } - - // int32 controlNo = 12; - if (this->_internal_controlno() != 0) { - target = ::google::protobuf::internal::WireFormatLite:: - WriteInt32ToArrayWithField<12>( - stream, this->_internal_controlno(), target); - } - - // int32 serialNo = 13; - if (this->_internal_serialno() != 0) { - target = ::google::protobuf::internal::WireFormatLite:: - WriteInt32ToArrayWithField<13>( - stream, this->_internal_serialno(), target); - } - - // int32 controlType = 14; - if (this->_internal_controltype() != 0) { - target = ::google::protobuf::internal::WireFormatLite:: - WriteInt32ToArrayWithField<14>( - stream, this->_internal_controltype(), target); - } - - // bytes cardName = 15; - if (!this->_internal_cardname().empty()) { - const std::string& _s = this->_internal_cardname(); - target = stream->WriteBytesMaybeAliased(15, _s, target); - } - - // bytes cardIP = 16; - if (!this->_internal_cardip().empty()) { - const std::string& _s = this->_internal_cardip(); - target = stream->WriteBytesMaybeAliased(16, _s, target); - } - - // bool hadAssign = 17; - if (this->_internal_hadassign() != 0) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray( - 17, this->_internal_hadassign(), target); - } - - // bool hadMatch = 18; - if (this->_internal_hadmatch() != 0) { - target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray( - 18, this->_internal_hadmatch(), target); - } - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( @@ -1660,30 +1538,12 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { this->_internal_context()); } - // bytes cardName = 15; - if (!this->_internal_cardname().empty()) { - total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( - this->_internal_cardname()); - } - - // bytes cardIP = 16; - if (!this->_internal_cardip().empty()) { - total_size += 2 + ::google::protobuf::internal::WireFormatLite::BytesSize( - this->_internal_cardip()); - } - // .stream.TYPE valueType = 3; if (this->_internal_valuetype() != 0) { total_size += 1 + ::_pbi::WireFormatLite::EnumSize(this->_internal_valuetype()); } - // int32 startLayer = 8; - if (this->_internal_startlayer() != 0) { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( - this->_internal_startlayer()); - } - // bool isEnable = 5; if (this->_internal_isenable() != 0) { total_size += 2; @@ -1699,9 +1559,10 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { total_size += 2; } - // bool hadAssign = 17; - if (this->_internal_hadassign() != 0) { - total_size += 3; + // int32 startLayer = 8; + if (this->_internal_startlayer() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( + this->_internal_startlayer()); } // int32 endLayer = 9; @@ -1720,35 +1581,6 @@ const ::_pbi::TcParseTable<5, 18, 0, 0, 2> ParamInfo::_table_ = { total_size += 5; } - // int32 seqNo = 11; - if (this->_internal_seqno() != 0) { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( - this->_internal_seqno()); - } - - // int32 controlNo = 12; - if (this->_internal_controlno() != 0) { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( - this->_internal_controlno()); - } - - // int32 serialNo = 13; - if (this->_internal_serialno() != 0) { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( - this->_internal_serialno()); - } - - // int32 controlType = 14; - if (this->_internal_controltype() != 0) { - total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( - this->_internal_controltype()); - } - - // bool hadMatch = 18; - if (this->_internal_hadmatch() != 0) { - total_size += 3; - } - return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } @@ -1776,18 +1608,9 @@ void ParamInfo::MergeImpl(::google::protobuf::Message& to_msg, const ::google::p if (!from._internal_context().empty()) { _this->_internal_set_context(from._internal_context()); } - if (!from._internal_cardname().empty()) { - _this->_internal_set_cardname(from._internal_cardname()); - } - if (!from._internal_cardip().empty()) { - _this->_internal_set_cardip(from._internal_cardip()); - } if (from._internal_valuetype() != 0) { _this->_internal_set_valuetype(from._internal_valuetype()); } - if (from._internal_startlayer() != 0) { - _this->_internal_set_startlayer(from._internal_startlayer()); - } if (from._internal_isenable() != 0) { _this->_internal_set_isenable(from._internal_isenable()); } @@ -1797,8 +1620,8 @@ void ParamInfo::MergeImpl(::google::protobuf::Message& to_msg, const ::google::p if (from._internal_isshow() != 0) { _this->_internal_set_isshow(from._internal_isshow()); } - if (from._internal_hadassign() != 0) { - _this->_internal_set_hadassign(from._internal_hadassign()); + if (from._internal_startlayer() != 0) { + _this->_internal_set_startlayer(from._internal_startlayer()); } if (from._internal_endlayer() != 0) { _this->_internal_set_endlayer(from._internal_endlayer()); @@ -1811,21 +1634,6 @@ void ParamInfo::MergeImpl(::google::protobuf::Message& to_msg, const ::google::p if (raw_powder != 0) { _this->_internal_set_powder(from._internal_powder()); } - if (from._internal_seqno() != 0) { - _this->_internal_set_seqno(from._internal_seqno()); - } - if (from._internal_controlno() != 0) { - _this->_internal_set_controlno(from._internal_controlno()); - } - if (from._internal_serialno() != 0) { - _this->_internal_set_serialno(from._internal_serialno()); - } - if (from._internal_controltype() != 0) { - _this->_internal_set_controltype(from._internal_controltype()); - } - if (from._internal_hadmatch() != 0) { - _this->_internal_set_hadmatch(from._internal_hadmatch()); - } _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); } @@ -1851,13 +1659,9 @@ void ParamInfo::InternalSwap(ParamInfo* other) { &other->_impl_.strvalue_, rhs_arena); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.context_, lhs_arena, &other->_impl_.context_, rhs_arena); - ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cardname_, lhs_arena, - &other->_impl_.cardname_, rhs_arena); - ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cardip_, lhs_arena, - &other->_impl_.cardip_, rhs_arena); ::google::protobuf::internal::memswap< - PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.hadmatch_) - + sizeof(ParamInfo::_impl_.hadmatch_) + PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.powder_) + + sizeof(ParamInfo::_impl_.powder_) - PROTOBUF_FIELD_OFFSET(ParamInfo, _impl_.valuetype_)>( reinterpret_cast(&_impl_.valuetype_), reinterpret_cast(&other->_impl_.valuetype_)); @@ -4380,6 +4184,306 @@ void ImgInfoResponce::InternalSwap(ImgInfoResponce* other) { } // =================================================================== +class ComResponce_FileInfoStruct::_Internal { + public: +}; + +ComResponce_FileInfoStruct::ComResponce_FileInfoStruct(::google::protobuf::Arena* arena) + : ::google::protobuf::Message(arena) { + SharedCtor(arena); + // @@protoc_insertion_point(arena_constructor:stream.ComResponce.FileInfoStruct) +} +ComResponce_FileInfoStruct::ComResponce_FileInfoStruct(const ComResponce_FileInfoStruct& from) : ::google::protobuf::Message() { + ComResponce_FileInfoStruct* const _this = this; + (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.type_){}, + decltype(_impl_.filepath_){}, + decltype(_impl_.filename_){}, + decltype(_impl_.ext_){}, + /*decltype(_impl_._cached_size_)*/ {}, + }; + _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>( + from._internal_metadata_); + _impl_.type_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.type_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_type().empty()) { + _this->_impl_.type_.Set(from._internal_type(), _this->GetArenaForAllocation()); + } + _impl_.filepath_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filepath_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_filepath().empty()) { + _this->_impl_.filepath_.Set(from._internal_filepath(), _this->GetArenaForAllocation()); + } + _impl_.filename_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filename_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_filename().empty()) { + _this->_impl_.filename_.Set(from._internal_filename(), _this->GetArenaForAllocation()); + } + _impl_.ext_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.ext_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_ext().empty()) { + _this->_impl_.ext_.Set(from._internal_ext(), _this->GetArenaForAllocation()); + } + + // @@protoc_insertion_point(copy_constructor:stream.ComResponce.FileInfoStruct) +} +inline void ComResponce_FileInfoStruct::SharedCtor(::_pb::Arena* arena) { + (void)arena; + new (&_impl_) Impl_{ + decltype(_impl_.type_){}, + decltype(_impl_.filepath_){}, + decltype(_impl_.filename_){}, + decltype(_impl_.ext_){}, + /*decltype(_impl_._cached_size_)*/ {}, + }; + _impl_.type_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.type_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filepath_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filepath_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filename_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.filename_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.ext_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.ext_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} +ComResponce_FileInfoStruct::~ComResponce_FileInfoStruct() { + // @@protoc_insertion_point(destructor:stream.ComResponce.FileInfoStruct) + _internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>(); + SharedDtor(); +} +inline void ComResponce_FileInfoStruct::SharedDtor() { + ABSL_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.type_.Destroy(); + _impl_.filepath_.Destroy(); + _impl_.filename_.Destroy(); + _impl_.ext_.Destroy(); +} +void ComResponce_FileInfoStruct::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +PROTOBUF_NOINLINE void ComResponce_FileInfoStruct::Clear() { +// @@protoc_insertion_point(message_clear_start:stream.ComResponce.FileInfoStruct) + ::uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.type_.ClearToEmpty(); + _impl_.filepath_.ClearToEmpty(); + _impl_.filename_.ClearToEmpty(); + _impl_.ext_.ClearToEmpty(); + _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); +} + +const char* ComResponce_FileInfoStruct::_InternalParse( + const char* ptr, ::_pbi::ParseContext* ctx) { + ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header); + return ptr; +} + + +PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 +const ::_pbi::TcParseTable<2, 4, 0, 0, 2> ComResponce_FileInfoStruct::_table_ = { + { + 0, // no _has_bits_ + 0, // no _extensions_ + 4, 24, // max_field_number, fast_idx_mask + offsetof(decltype(_table_), field_lookup_table), + 4294967280, // skipmap + offsetof(decltype(_table_), field_entries), + 4, // num_field_entries + 0, // num_aux_entries + offsetof(decltype(_table_), field_names), // no aux_entries + &_ComResponce_FileInfoStruct_default_instance_._instance, + ::_pbi::TcParser::GenericFallback, // fallback + }, {{ + // bytes ext = 4; + {::_pbi::TcParser::FastBS1, + {34, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.ext_)}}, + // bytes type = 1; + {::_pbi::TcParser::FastBS1, + {10, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.type_)}}, + // bytes filePath = 2; + {::_pbi::TcParser::FastBS1, + {18, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.filepath_)}}, + // bytes fileName = 3; + {::_pbi::TcParser::FastBS1, + {26, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.filename_)}}, + }}, {{ + 65535, 65535 + }}, {{ + // bytes type = 1; + {PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.type_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, + // bytes filePath = 2; + {PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.filepath_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, + // bytes fileName = 3; + {PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.filename_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, + // bytes ext = 4; + {PROTOBUF_FIELD_OFFSET(ComResponce_FileInfoStruct, _impl_.ext_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, + }}, + // no aux_entries + {{ + }}, +}; + +::uint8_t* ComResponce_FileInfoStruct::_InternalSerialize( + ::uint8_t* target, + ::google::protobuf::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:stream.ComResponce.FileInfoStruct) + ::uint32_t cached_has_bits = 0; + (void)cached_has_bits; + + // bytes type = 1; + if (!this->_internal_type().empty()) { + const std::string& _s = this->_internal_type(); + target = stream->WriteBytesMaybeAliased(1, _s, target); + } + + // bytes filePath = 2; + if (!this->_internal_filepath().empty()) { + const std::string& _s = this->_internal_filepath(); + target = stream->WriteBytesMaybeAliased(2, _s, target); + } + + // bytes fileName = 3; + if (!this->_internal_filename().empty()) { + const std::string& _s = this->_internal_filename(); + target = stream->WriteBytesMaybeAliased(3, _s, target); + } + + // bytes ext = 4; + if (!this->_internal_ext().empty()) { + const std::string& _s = this->_internal_ext(); + target = stream->WriteBytesMaybeAliased(4, _s, target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = + ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:stream.ComResponce.FileInfoStruct) + return target; +} + +::size_t ComResponce_FileInfoStruct::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:stream.ComResponce.FileInfoStruct) + ::size_t total_size = 0; + + ::uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // bytes type = 1; + if (!this->_internal_type().empty()) { + total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->_internal_type()); + } + + // bytes filePath = 2; + if (!this->_internal_filepath().empty()) { + total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->_internal_filepath()); + } + + // bytes fileName = 3; + if (!this->_internal_filename().empty()) { + total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->_internal_filename()); + } + + // bytes ext = 4; + if (!this->_internal_ext().empty()) { + total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->_internal_ext()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::google::protobuf::Message::ClassData ComResponce_FileInfoStruct::_class_data_ = { + ::google::protobuf::Message::CopyWithSourceCheck, + ComResponce_FileInfoStruct::MergeImpl +}; +const ::google::protobuf::Message::ClassData*ComResponce_FileInfoStruct::GetClassData() const { return &_class_data_; } + + +void ComResponce_FileInfoStruct::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:stream.ComResponce.FileInfoStruct) + ABSL_DCHECK_NE(&from, _this); + ::uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_type().empty()) { + _this->_internal_set_type(from._internal_type()); + } + if (!from._internal_filepath().empty()) { + _this->_internal_set_filepath(from._internal_filepath()); + } + if (!from._internal_filename().empty()) { + _this->_internal_set_filename(from._internal_filename()); + } + if (!from._internal_ext().empty()) { + _this->_internal_set_ext(from._internal_ext()); + } + _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); +} + +void ComResponce_FileInfoStruct::CopyFrom(const ComResponce_FileInfoStruct& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:stream.ComResponce.FileInfoStruct) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +PROTOBUF_NOINLINE bool ComResponce_FileInfoStruct::IsInitialized() const { + return true; +} + +void ComResponce_FileInfoStruct::InternalSwap(ComResponce_FileInfoStruct* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.type_, lhs_arena, + &other->_impl_.type_, rhs_arena); + ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.filepath_, lhs_arena, + &other->_impl_.filepath_, rhs_arena); + ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.filename_, lhs_arena, + &other->_impl_.filename_, rhs_arena); + ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.ext_, lhs_arena, + &other->_impl_.ext_, rhs_arena); +} + +::google::protobuf::Metadata ComResponce_FileInfoStruct::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, + file_level_metadata_stream_2eproto[11]); +} +// =================================================================== + class ComResponce::_Internal { public: }; @@ -4393,7 +4497,9 @@ ComResponce::ComResponce(const ComResponce& from) : ::google::protobuf::Message( ComResponce* const _this = this; (void)_this; new (&_impl_) Impl_{ + decltype(_impl_.fileinfo_){from._impl_.fileinfo_}, decltype(_impl_.data_){}, + decltype(_impl_.directory_){}, /*decltype(_impl_._cached_size_)*/ {}, }; _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>( @@ -4405,19 +4511,32 @@ ComResponce::ComResponce(const ComResponce& from) : ::google::protobuf::Message( if (!from._internal_data().empty()) { _this->_impl_.data_.Set(from._internal_data(), _this->GetArenaForAllocation()); } + _impl_.directory_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.directory_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_directory().empty()) { + _this->_impl_.directory_.Set(from._internal_directory(), _this->GetArenaForAllocation()); + } // @@protoc_insertion_point(copy_constructor:stream.ComResponce) } inline void ComResponce::SharedCtor(::_pb::Arena* arena) { (void)arena; new (&_impl_) Impl_{ + decltype(_impl_.fileinfo_){arena}, decltype(_impl_.data_){}, + decltype(_impl_.directory_){}, /*decltype(_impl_._cached_size_)*/ {}, }; _impl_.data_.InitDefault(); #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING _impl_.data_.Set("", GetArenaForAllocation()); #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.directory_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.directory_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING } ComResponce::~ComResponce() { // @@protoc_insertion_point(destructor:stream.ComResponce) @@ -4426,7 +4545,9 @@ ComResponce::~ComResponce() { } inline void ComResponce::SharedDtor() { ABSL_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.fileinfo_.~RepeatedPtrField(); _impl_.data_.Destroy(); + _impl_.directory_.Destroy(); } void ComResponce::SetCachedSize(int size) const { _impl_._cached_size_.Set(size); @@ -4438,7 +4559,9 @@ PROTOBUF_NOINLINE void ComResponce::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + _internal_mutable_fileinfo()->Clear(); _impl_.data_.ClearToEmpty(); + _impl_.directory_.ClearToEmpty(); _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); } @@ -4450,32 +4573,45 @@ const char* ComResponce::_InternalParse( PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<0, 1, 0, 0, 2> ComResponce::_table_ = { +const ::_pbi::TcParseTable<2, 3, 1, 0, 2> ComResponce::_table_ = { { 0, // no _has_bits_ 0, // no _extensions_ - 1, 0, // max_field_number, fast_idx_mask + 3, 24, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294967294, // skipmap + 4294967288, // skipmap offsetof(decltype(_table_), field_entries), - 1, // num_field_entries - 0, // num_aux_entries - offsetof(decltype(_table_), field_names), // no aux_entries + 3, // num_field_entries + 1, // num_aux_entries + offsetof(decltype(_table_), aux_entries), &_ComResponce_default_instance_._instance, ::_pbi::TcParser::GenericFallback, // fallback }, {{ + {::_pbi::TcParser::MiniParse, {}}, // bytes data = 1; {::_pbi::TcParser::FastBS1, {10, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.data_)}}, + // bytes directory = 2; + {::_pbi::TcParser::FastBS1, + {18, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.directory_)}}, + // repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; + {::_pbi::TcParser::FastMtR1, + {26, 63, 0, PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.fileinfo_)}}, }}, {{ 65535, 65535 }}, {{ // bytes data = 1; {PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.data_), 0, 0, (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, - }}, - // no aux_entries - {{ + // bytes directory = 2; + {PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.directory_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)}, + // repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; + {PROTOBUF_FIELD_OFFSET(ComResponce, _impl_.fileinfo_), 0, 0, + (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)}, + }}, {{ + {::_pbi::TcParser::GetTable<::stream::ComResponce_FileInfoStruct>()}, + }}, {{ }}, }; @@ -4492,6 +4628,20 @@ const ::_pbi::TcParseTable<0, 1, 0, 0, 2> ComResponce::_table_ = { target = stream->WriteBytesMaybeAliased(1, _s, target); } + // bytes directory = 2; + if (!this->_internal_directory().empty()) { + const std::string& _s = this->_internal_directory(); + target = stream->WriteBytesMaybeAliased(2, _s, target); + } + + // repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; + for (unsigned i = 0, + n = static_cast(this->_internal_fileinfo_size()); i < n; i++) { + const auto& repfield = this->_internal_fileinfo().Get(i); + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( @@ -4509,12 +4659,24 @@ const ::_pbi::TcParseTable<0, 1, 0, 0, 2> ComResponce::_table_ = { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + // repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; + total_size += 1UL * this->_internal_fileinfo_size(); + for (const auto& msg : this->_internal_fileinfo()) { + total_size += + ::google::protobuf::internal::WireFormatLite::MessageSize(msg); + } // bytes data = 1; if (!this->_internal_data().empty()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( this->_internal_data()); } + // bytes directory = 2; + if (!this->_internal_directory().empty()) { + total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize( + this->_internal_directory()); + } + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } @@ -4533,9 +4695,13 @@ void ComResponce::MergeImpl(::google::protobuf::Message& to_msg, const ::google: ::uint32_t cached_has_bits = 0; (void) cached_has_bits; + _this->_internal_mutable_fileinfo()->MergeFrom(from._internal_fileinfo()); if (!from._internal_data().empty()) { _this->_internal_set_data(from._internal_data()); } + if (!from._internal_directory().empty()) { + _this->_internal_set_directory(from._internal_directory()); + } _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); } @@ -4555,14 +4721,17 @@ void ComResponce::InternalSwap(ComResponce* other) { auto* lhs_arena = GetArenaForAllocation(); auto* rhs_arena = other->GetArenaForAllocation(); _internal_metadata_.InternalSwap(&other->_internal_metadata_); + _impl_.fileinfo_.InternalSwap(&other->_impl_.fileinfo_); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.data_, lhs_arena, &other->_impl_.data_, rhs_arena); + ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.directory_, lhs_arena, + &other->_impl_.directory_, rhs_arena); } ::google::protobuf::Metadata ComResponce::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[11]); + file_level_metadata_stream_2eproto[12]); } // =================================================================== @@ -4734,7 +4903,7 @@ void ScannerCrtlCfgResp::InternalSwap(ScannerCrtlCfgResp* other) { ::google::protobuf::Metadata ScannerCrtlCfgResp::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[12]); + file_level_metadata_stream_2eproto[13]); } // =================================================================== @@ -5539,7 +5708,7 @@ void ScannerCrtlCfgData::InternalSwap(ScannerCrtlCfgData* other) { ::google::protobuf::Metadata ScannerCrtlCfgData::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[13]); + file_level_metadata_stream_2eproto[14]); } // =================================================================== @@ -5835,7 +6004,7 @@ void FixPointData::InternalSwap(FixPointData* other) { ::google::protobuf::Metadata FixPointData::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[14]); + file_level_metadata_stream_2eproto[15]); } // =================================================================== @@ -6761,7 +6930,7 @@ void ScanParamCfg::InternalSwap(ScanParamCfg* other) { ::google::protobuf::Metadata ScanParamCfg::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[15]); + file_level_metadata_stream_2eproto[16]); } // =================================================================== @@ -7849,7 +8018,7 @@ void CorrectParamCfg::InternalSwap(CorrectParamCfg* other) { ::google::protobuf::Metadata CorrectParamCfg::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[16]); + file_level_metadata_stream_2eproto[17]); } // =================================================================== @@ -8667,7 +8836,7 @@ void ScanTestCfg::InternalSwap(ScanTestCfg* other) { ::google::protobuf::Metadata ScanTestCfg::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[17]); + file_level_metadata_stream_2eproto[18]); } // =================================================================== @@ -9306,7 +9475,7 @@ void SkyWritingCfg::InternalSwap(SkyWritingCfg* other) { ::google::protobuf::Metadata SkyWritingCfg::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[18]); + file_level_metadata_stream_2eproto[19]); } // =================================================================== @@ -9616,7 +9785,7 @@ void PowerCompensate::InternalSwap(PowerCompensate* other) { ::google::protobuf::Metadata PowerCompensate::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[19]); + file_level_metadata_stream_2eproto[20]); } // =================================================================== @@ -9898,7 +10067,7 @@ void TimePowerCompensate::InternalSwap(TimePowerCompensate* other) { ::google::protobuf::Metadata TimePowerCompensate::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, - file_level_metadata_stream_2eproto[20]); + file_level_metadata_stream_2eproto[21]); } // @@protoc_insertion_point(namespace_scope) } // namespace stream diff --git a/TestClient/protobuf/stream.pb.h b/TestClient/protobuf/stream.pb.h index f1a7c96..e6b40c2 100644 --- a/TestClient/protobuf/stream.pb.h +++ b/TestClient/protobuf/stream.pb.h @@ -62,6 +62,9 @@ extern ChainDataBlockDefaultTypeInternal _ChainDataBlock_default_instance_; class ComResponce; struct ComResponceDefaultTypeInternal; extern ComResponceDefaultTypeInternal _ComResponce_default_instance_; +class ComResponce_FileInfoStruct; +struct ComResponce_FileInfoStructDefaultTypeInternal; +extern ComResponce_FileInfoStructDefaultTypeInternal _ComResponce_FileInfoStruct_default_instance_; class CorrectParamCfg; struct CorrectParamCfgDefaultTypeInternal; extern CorrectParamCfgDefaultTypeInternal _CorrectParamCfg_default_instance_; @@ -338,21 +341,13 @@ class ParamInfo final : kNameKeyFieldNumber = 1, kStrValueFieldNumber = 2, kContextFieldNumber = 4, - kCardNameFieldNumber = 15, - kCardIPFieldNumber = 16, kValueTypeFieldNumber = 3, - kStartLayerFieldNumber = 8, kIsEnableFieldNumber = 5, kIsAlarmFieldNumber = 6, kIsShowFieldNumber = 7, - kHadAssignFieldNumber = 17, + kStartLayerFieldNumber = 8, kEndLayerFieldNumber = 9, kPowderFieldNumber = 10, - kSeqNoFieldNumber = 11, - kControlNoFieldNumber = 12, - kSerialNoFieldNumber = 13, - kControlTypeFieldNumber = 14, - kHadMatchFieldNumber = 18, }; // bytes nameKey = 1; void clear_namekey() ; @@ -401,38 +396,6 @@ class ParamInfo final : const std::string& value); std::string* _internal_mutable_context(); - public: - // bytes cardName = 15; - void clear_cardname() ; - const std::string& cardname() const; - template - void set_cardname(Arg_&& arg, Args_... args); - std::string* mutable_cardname(); - PROTOBUF_NODISCARD std::string* release_cardname(); - void set_allocated_cardname(std::string* ptr); - - private: - const std::string& _internal_cardname() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_cardname( - const std::string& value); - std::string* _internal_mutable_cardname(); - - public: - // bytes cardIP = 16; - void clear_cardip() ; - const std::string& cardip() const; - template - void set_cardip(Arg_&& arg, Args_... args); - std::string* mutable_cardip(); - PROTOBUF_NODISCARD std::string* release_cardip(); - void set_allocated_cardip(std::string* ptr); - - private: - const std::string& _internal_cardip() const; - inline PROTOBUF_ALWAYS_INLINE void _internal_set_cardip( - const std::string& value); - std::string* _internal_mutable_cardip(); - public: // .stream.TYPE valueType = 3; void clear_valuetype() ; @@ -443,16 +406,6 @@ class ParamInfo final : ::stream::TYPE _internal_valuetype() const; void _internal_set_valuetype(::stream::TYPE value); - public: - // int32 startLayer = 8; - void clear_startlayer() ; - ::int32_t startlayer() const; - void set_startlayer(::int32_t value); - - private: - ::int32_t _internal_startlayer() const; - void _internal_set_startlayer(::int32_t value); - public: // bool isEnable = 5; void clear_isenable() ; @@ -484,14 +437,14 @@ class ParamInfo final : void _internal_set_isshow(bool value); public: - // bool hadAssign = 17; - void clear_hadassign() ; - bool hadassign() const; - void set_hadassign(bool value); + // int32 startLayer = 8; + void clear_startlayer() ; + ::int32_t startlayer() const; + void set_startlayer(::int32_t value); private: - bool _internal_hadassign() const; - void _internal_set_hadassign(bool value); + ::int32_t _internal_startlayer() const; + void _internal_set_startlayer(::int32_t value); public: // int32 endLayer = 9; @@ -513,63 +466,13 @@ class ParamInfo final : float _internal_powder() const; void _internal_set_powder(float value); - public: - // int32 seqNo = 11; - void clear_seqno() ; - ::int32_t seqno() const; - void set_seqno(::int32_t value); - - private: - ::int32_t _internal_seqno() const; - void _internal_set_seqno(::int32_t value); - - public: - // int32 controlNo = 12; - void clear_controlno() ; - ::int32_t controlno() const; - void set_controlno(::int32_t value); - - private: - ::int32_t _internal_controlno() const; - void _internal_set_controlno(::int32_t value); - - public: - // int32 serialNo = 13; - void clear_serialno() ; - ::int32_t serialno() const; - void set_serialno(::int32_t value); - - private: - ::int32_t _internal_serialno() const; - void _internal_set_serialno(::int32_t value); - - public: - // int32 controlType = 14; - void clear_controltype() ; - ::int32_t controltype() const; - void set_controltype(::int32_t value); - - private: - ::int32_t _internal_controltype() const; - void _internal_set_controltype(::int32_t value); - - public: - // bool hadMatch = 18; - void clear_hadmatch() ; - bool hadmatch() const; - void set_hadmatch(bool value); - - private: - bool _internal_hadmatch() const; - void _internal_set_hadmatch(bool value); - public: // @@protoc_insertion_point(class_scope:stream.ParamInfo) private: class _Internal; friend class ::google::protobuf::internal::TcParser; - static const ::google::protobuf::internal::TcParseTable<5, 18, 0, 0, 2> _table_; + static const ::google::protobuf::internal::TcParseTable<4, 10, 0, 0, 2> _table_; template friend class ::google::protobuf::Arena::InternalHelper; typedef void InternalArenaConstructable_; typedef void DestructorSkippable_; @@ -577,21 +480,13 @@ class ParamInfo final : ::google::protobuf::internal::ArenaStringPtr namekey_; ::google::protobuf::internal::ArenaStringPtr strvalue_; ::google::protobuf::internal::ArenaStringPtr context_; - ::google::protobuf::internal::ArenaStringPtr cardname_; - ::google::protobuf::internal::ArenaStringPtr cardip_; int valuetype_; - ::int32_t startlayer_; bool isenable_; bool isalarm_; bool isshow_; - bool hadassign_; + ::int32_t startlayer_; ::int32_t endlayer_; float powder_; - ::int32_t seqno_; - ::int32_t controlno_; - ::int32_t serialno_; - ::int32_t controltype_; - bool hadmatch_; mutable ::google::protobuf::internal::CachedSize _cached_size_; PROTOBUF_TSAN_DECLARE_MEMBER }; @@ -2521,6 +2416,224 @@ class ImgInfoResponce final : friend struct ::TableStruct_stream_2eproto; };// ------------------------------------------------------------------- +class ComResponce_FileInfoStruct final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:stream.ComResponce.FileInfoStruct) */ { + public: + inline ComResponce_FileInfoStruct() : ComResponce_FileInfoStruct(nullptr) {} + ~ComResponce_FileInfoStruct() override; + template + explicit PROTOBUF_CONSTEXPR ComResponce_FileInfoStruct(::google::protobuf::internal::ConstantInitialized); + + ComResponce_FileInfoStruct(const ComResponce_FileInfoStruct& from); + ComResponce_FileInfoStruct(ComResponce_FileInfoStruct&& from) noexcept + : ComResponce_FileInfoStruct() { + *this = ::std::move(from); + } + + inline ComResponce_FileInfoStruct& operator=(const ComResponce_FileInfoStruct& from) { + CopyFrom(from); + return *this; + } + inline ComResponce_FileInfoStruct& operator=(ComResponce_FileInfoStruct&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const { + return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance); + } + inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() { + return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>(); + } + + static const ::google::protobuf::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::google::protobuf::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::google::protobuf::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ComResponce_FileInfoStruct& default_instance() { + return *internal_default_instance(); + } + static inline const ComResponce_FileInfoStruct* internal_default_instance() { + return reinterpret_cast( + &_ComResponce_FileInfoStruct_default_instance_); + } + static constexpr int kIndexInFileMessages = + 11; + + friend void swap(ComResponce_FileInfoStruct& a, ComResponce_FileInfoStruct& b) { + a.Swap(&b); + } + inline void Swap(ComResponce_FileInfoStruct* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::google::protobuf::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ComResponce_FileInfoStruct* other) { + if (other == this) return; + ABSL_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ComResponce_FileInfoStruct* New(::google::protobuf::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::google::protobuf::Message::CopyFrom; + void CopyFrom(const ComResponce_FileInfoStruct& from); + using ::google::protobuf::Message::MergeFrom; + void MergeFrom( const ComResponce_FileInfoStruct& from) { + ComResponce_FileInfoStruct::MergeImpl(*this, from); + } + private: + static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + ::size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final; + ::uint8_t* _InternalSerialize( + ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::google::protobuf::Arena* arena); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ComResponce_FileInfoStruct* other); + + private: + friend class ::google::protobuf::internal::AnyMetadata; + static ::absl::string_view FullMessageName() { + return "stream.ComResponce.FileInfoStruct"; + } + protected: + explicit ComResponce_FileInfoStruct(::google::protobuf::Arena* arena); + public: + + static const ClassData _class_data_; + const ::google::protobuf::Message::ClassData*GetClassData() const final; + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kTypeFieldNumber = 1, + kFilePathFieldNumber = 2, + kFileNameFieldNumber = 3, + kExtFieldNumber = 4, + }; + // bytes type = 1; + void clear_type() ; + const std::string& type() const; + template + void set_type(Arg_&& arg, Args_... args); + std::string* mutable_type(); + PROTOBUF_NODISCARD std::string* release_type(); + void set_allocated_type(std::string* ptr); + + private: + const std::string& _internal_type() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_type( + const std::string& value); + std::string* _internal_mutable_type(); + + public: + // bytes filePath = 2; + void clear_filepath() ; + const std::string& filepath() const; + template + void set_filepath(Arg_&& arg, Args_... args); + std::string* mutable_filepath(); + PROTOBUF_NODISCARD std::string* release_filepath(); + void set_allocated_filepath(std::string* ptr); + + private: + const std::string& _internal_filepath() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_filepath( + const std::string& value); + std::string* _internal_mutable_filepath(); + + public: + // bytes fileName = 3; + void clear_filename() ; + const std::string& filename() const; + template + void set_filename(Arg_&& arg, Args_... args); + std::string* mutable_filename(); + PROTOBUF_NODISCARD std::string* release_filename(); + void set_allocated_filename(std::string* ptr); + + private: + const std::string& _internal_filename() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_filename( + const std::string& value); + std::string* _internal_mutable_filename(); + + public: + // bytes ext = 4; + void clear_ext() ; + const std::string& ext() const; + template + void set_ext(Arg_&& arg, Args_... args); + std::string* mutable_ext(); + PROTOBUF_NODISCARD std::string* release_ext(); + void set_allocated_ext(std::string* ptr); + + private: + const std::string& _internal_ext() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_ext( + const std::string& value); + std::string* _internal_mutable_ext(); + + public: + // @@protoc_insertion_point(class_scope:stream.ComResponce.FileInfoStruct) + private: + class _Internal; + + friend class ::google::protobuf::internal::TcParser; + static const ::google::protobuf::internal::TcParseTable<2, 4, 0, 0, 2> _table_; + template friend class ::google::protobuf::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::google::protobuf::internal::ArenaStringPtr type_; + ::google::protobuf::internal::ArenaStringPtr filepath_; + ::google::protobuf::internal::ArenaStringPtr filename_; + ::google::protobuf::internal::ArenaStringPtr ext_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + PROTOBUF_TSAN_DECLARE_MEMBER + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_stream_2eproto; +};// ------------------------------------------------------------------- + class ComResponce final : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:stream.ComResponce) */ { public: @@ -2577,7 +2690,7 @@ class ComResponce final : &_ComResponce_default_instance_); } static constexpr int kIndexInFileMessages = - 11; + 12; friend void swap(ComResponce& a, ComResponce& b) { a.Swap(&b); @@ -2646,11 +2759,33 @@ class ComResponce final : // nested types ---------------------------------------------------- + typedef ComResponce_FileInfoStruct FileInfoStruct; + // accessors ------------------------------------------------------- enum : int { + kFileInfoFieldNumber = 3, kDataFieldNumber = 1, + kDirectoryFieldNumber = 2, }; + // repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; + int fileinfo_size() const; + private: + int _internal_fileinfo_size() const; + + public: + void clear_fileinfo() ; + ::stream::ComResponce_FileInfoStruct* mutable_fileinfo(int index); + ::google::protobuf::RepeatedPtrField< ::stream::ComResponce_FileInfoStruct >* + mutable_fileinfo(); + private: + const ::google::protobuf::RepeatedPtrField<::stream::ComResponce_FileInfoStruct>& _internal_fileinfo() const; + ::google::protobuf::RepeatedPtrField<::stream::ComResponce_FileInfoStruct>* _internal_mutable_fileinfo(); + public: + const ::stream::ComResponce_FileInfoStruct& fileinfo(int index) const; + ::stream::ComResponce_FileInfoStruct* add_fileinfo(); + const ::google::protobuf::RepeatedPtrField< ::stream::ComResponce_FileInfoStruct >& + fileinfo() const; // bytes data = 1; void clear_data() ; const std::string& data() const; @@ -2666,18 +2801,36 @@ class ComResponce final : const std::string& value); std::string* _internal_mutable_data(); + public: + // bytes directory = 2; + void clear_directory() ; + const std::string& directory() const; + template + void set_directory(Arg_&& arg, Args_... args); + std::string* mutable_directory(); + PROTOBUF_NODISCARD std::string* release_directory(); + void set_allocated_directory(std::string* ptr); + + private: + const std::string& _internal_directory() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_directory( + const std::string& value); + std::string* _internal_mutable_directory(); + public: // @@protoc_insertion_point(class_scope:stream.ComResponce) private: class _Internal; friend class ::google::protobuf::internal::TcParser; - static const ::google::protobuf::internal::TcParseTable<0, 1, 0, 0, 2> _table_; + static const ::google::protobuf::internal::TcParseTable<2, 3, 1, 0, 2> _table_; template friend class ::google::protobuf::Arena::InternalHelper; typedef void InternalArenaConstructable_; typedef void DestructorSkippable_; struct Impl_ { + ::google::protobuf::RepeatedPtrField< ::stream::ComResponce_FileInfoStruct > fileinfo_; ::google::protobuf::internal::ArenaStringPtr data_; + ::google::protobuf::internal::ArenaStringPtr directory_; mutable ::google::protobuf::internal::CachedSize _cached_size_; PROTOBUF_TSAN_DECLARE_MEMBER }; @@ -2741,7 +2894,7 @@ class ScannerCrtlCfgResp final : &_ScannerCrtlCfgResp_default_instance_); } static constexpr int kIndexInFileMessages = - 12; + 13; friend void swap(ScannerCrtlCfgResp& a, ScannerCrtlCfgResp& b) { a.Swap(&b); @@ -2907,7 +3060,7 @@ class ScannerCrtlCfgData final : &_ScannerCrtlCfgData_default_instance_); } static constexpr int kIndexInFileMessages = - 13; + 14; friend void swap(ScannerCrtlCfgData& a, ScannerCrtlCfgData& b) { a.Swap(&b); @@ -3353,7 +3506,7 @@ class FixPointData final : &_FixPointData_default_instance_); } static constexpr int kIndexInFileMessages = - 14; + 15; friend void swap(FixPointData& a, FixPointData& b) { a.Swap(&b); @@ -3559,7 +3712,7 @@ class ScanParamCfg final : &_ScanParamCfg_default_instance_); } static constexpr int kIndexInFileMessages = - 15; + 16; friend void swap(ScanParamCfg& a, ScanParamCfg& b) { a.Swap(&b); @@ -4065,7 +4218,7 @@ class CorrectParamCfg final : &_CorrectParamCfg_default_instance_); } static constexpr int kIndexInFileMessages = - 16; + 17; friend void swap(CorrectParamCfg& a, CorrectParamCfg& b) { a.Swap(&b); @@ -4523,7 +4676,7 @@ class ScanTestCfg final : &_ScanTestCfg_default_instance_); } static constexpr int kIndexInFileMessages = - 17; + 18; friend void swap(ScanTestCfg& a, ScanTestCfg& b) { a.Swap(&b); @@ -4933,7 +5086,7 @@ class SkyWritingCfg final : &_SkyWritingCfg_default_instance_); } static constexpr int kIndexInFileMessages = - 18; + 19; friend void swap(SkyWritingCfg& a, SkyWritingCfg& b) { a.Swap(&b); @@ -5283,7 +5436,7 @@ class PowerCompensate final : &_PowerCompensate_default_instance_); } static constexpr int kIndexInFileMessages = - 19; + 20; friend void swap(PowerCompensate& a, PowerCompensate& b) { a.Swap(&b); @@ -5489,7 +5642,7 @@ class TimePowerCompensate final : &_TimePowerCompensate_default_instance_); } static constexpr int kIndexInFileMessages = - 20; + 21; friend void swap(TimePowerCompensate& a, TimePowerCompensate& b) { a.Swap(&b); @@ -5962,240 +6115,6 @@ inline void ParamInfo::_internal_set_powder(float value) { _impl_.powder_ = value; } -// int32 seqNo = 11; -inline void ParamInfo::clear_seqno() { - _impl_.seqno_ = 0; -} -inline ::int32_t ParamInfo::seqno() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.seqNo) - return _internal_seqno(); -} -inline void ParamInfo::set_seqno(::int32_t value) { - _internal_set_seqno(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.seqNo) -} -inline ::int32_t ParamInfo::_internal_seqno() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.seqno_; -} -inline void ParamInfo::_internal_set_seqno(::int32_t value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.seqno_ = value; -} - -// int32 controlNo = 12; -inline void ParamInfo::clear_controlno() { - _impl_.controlno_ = 0; -} -inline ::int32_t ParamInfo::controlno() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.controlNo) - return _internal_controlno(); -} -inline void ParamInfo::set_controlno(::int32_t value) { - _internal_set_controlno(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.controlNo) -} -inline ::int32_t ParamInfo::_internal_controlno() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.controlno_; -} -inline void ParamInfo::_internal_set_controlno(::int32_t value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.controlno_ = value; -} - -// int32 serialNo = 13; -inline void ParamInfo::clear_serialno() { - _impl_.serialno_ = 0; -} -inline ::int32_t ParamInfo::serialno() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.serialNo) - return _internal_serialno(); -} -inline void ParamInfo::set_serialno(::int32_t value) { - _internal_set_serialno(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.serialNo) -} -inline ::int32_t ParamInfo::_internal_serialno() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.serialno_; -} -inline void ParamInfo::_internal_set_serialno(::int32_t value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.serialno_ = value; -} - -// int32 controlType = 14; -inline void ParamInfo::clear_controltype() { - _impl_.controltype_ = 0; -} -inline ::int32_t ParamInfo::controltype() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.controlType) - return _internal_controltype(); -} -inline void ParamInfo::set_controltype(::int32_t value) { - _internal_set_controltype(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.controlType) -} -inline ::int32_t ParamInfo::_internal_controltype() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.controltype_; -} -inline void ParamInfo::_internal_set_controltype(::int32_t value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.controltype_ = value; -} - -// bytes cardName = 15; -inline void ParamInfo::clear_cardname() { - _impl_.cardname_.ClearToEmpty(); -} -inline const std::string& ParamInfo::cardname() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.cardName) - return _internal_cardname(); -} -template -inline PROTOBUF_ALWAYS_INLINE void ParamInfo::set_cardname(Arg_&& arg, - Args_... args) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.cardname_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:stream.ParamInfo.cardName) -} -inline std::string* ParamInfo::mutable_cardname() { - std::string* _s = _internal_mutable_cardname(); - // @@protoc_insertion_point(field_mutable:stream.ParamInfo.cardName) - return _s; -} -inline const std::string& ParamInfo::_internal_cardname() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.cardname_.Get(); -} -inline void ParamInfo::_internal_set_cardname(const std::string& value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.cardname_.Set(value, GetArenaForAllocation()); -} -inline std::string* ParamInfo::_internal_mutable_cardname() { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - return _impl_.cardname_.Mutable( GetArenaForAllocation()); -} -inline std::string* ParamInfo::release_cardname() { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - // @@protoc_insertion_point(field_release:stream.ParamInfo.cardName) - return _impl_.cardname_.Release(); -} -inline void ParamInfo::set_allocated_cardname(std::string* value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - _impl_.cardname_.SetAllocated(value, GetArenaForAllocation()); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.cardname_.IsDefault()) { - _impl_.cardname_.Set("", GetArenaForAllocation()); - } - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:stream.ParamInfo.cardName) -} - -// bytes cardIP = 16; -inline void ParamInfo::clear_cardip() { - _impl_.cardip_.ClearToEmpty(); -} -inline const std::string& ParamInfo::cardip() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.cardIP) - return _internal_cardip(); -} -template -inline PROTOBUF_ALWAYS_INLINE void ParamInfo::set_cardip(Arg_&& arg, - Args_... args) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.cardip_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); - // @@protoc_insertion_point(field_set:stream.ParamInfo.cardIP) -} -inline std::string* ParamInfo::mutable_cardip() { - std::string* _s = _internal_mutable_cardip(); - // @@protoc_insertion_point(field_mutable:stream.ParamInfo.cardIP) - return _s; -} -inline const std::string& ParamInfo::_internal_cardip() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.cardip_.Get(); -} -inline void ParamInfo::_internal_set_cardip(const std::string& value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.cardip_.Set(value, GetArenaForAllocation()); -} -inline std::string* ParamInfo::_internal_mutable_cardip() { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - return _impl_.cardip_.Mutable( GetArenaForAllocation()); -} -inline std::string* ParamInfo::release_cardip() { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - // @@protoc_insertion_point(field_release:stream.ParamInfo.cardIP) - return _impl_.cardip_.Release(); -} -inline void ParamInfo::set_allocated_cardip(std::string* value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - _impl_.cardip_.SetAllocated(value, GetArenaForAllocation()); - #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING - if (_impl_.cardip_.IsDefault()) { - _impl_.cardip_.Set("", GetArenaForAllocation()); - } - #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING - // @@protoc_insertion_point(field_set_allocated:stream.ParamInfo.cardIP) -} - -// bool hadAssign = 17; -inline void ParamInfo::clear_hadassign() { - _impl_.hadassign_ = false; -} -inline bool ParamInfo::hadassign() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.hadAssign) - return _internal_hadassign(); -} -inline void ParamInfo::set_hadassign(bool value) { - _internal_set_hadassign(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.hadAssign) -} -inline bool ParamInfo::_internal_hadassign() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.hadassign_; -} -inline void ParamInfo::_internal_set_hadassign(bool value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.hadassign_ = value; -} - -// bool hadMatch = 18; -inline void ParamInfo::clear_hadmatch() { - _impl_.hadmatch_ = false; -} -inline bool ParamInfo::hadmatch() const { - // @@protoc_insertion_point(field_get:stream.ParamInfo.hadMatch) - return _internal_hadmatch(); -} -inline void ParamInfo::set_hadmatch(bool value) { - _internal_set_hadmatch(value); - // @@protoc_insertion_point(field_set:stream.ParamInfo.hadMatch) -} -inline bool ParamInfo::_internal_hadmatch() const { - PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); - return _impl_.hadmatch_; -} -inline void ParamInfo::_internal_set_hadmatch(bool value) { - PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); - ; - _impl_.hadmatch_ = value; -} - // ------------------------------------------------------------------- // RequestInfo @@ -7236,6 +7155,214 @@ inline void ImgInfoResponce::_internal_set_height(::int32_t value) { // ------------------------------------------------------------------- +// ComResponce_FileInfoStruct + +// bytes type = 1; +inline void ComResponce_FileInfoStruct::clear_type() { + _impl_.type_.ClearToEmpty(); +} +inline const std::string& ComResponce_FileInfoStruct::type() const { + // @@protoc_insertion_point(field_get:stream.ComResponce.FileInfoStruct.type) + return _internal_type(); +} +template +inline PROTOBUF_ALWAYS_INLINE void ComResponce_FileInfoStruct::set_type(Arg_&& arg, + Args_... args) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.type_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:stream.ComResponce.FileInfoStruct.type) +} +inline std::string* ComResponce_FileInfoStruct::mutable_type() { + std::string* _s = _internal_mutable_type(); + // @@protoc_insertion_point(field_mutable:stream.ComResponce.FileInfoStruct.type) + return _s; +} +inline const std::string& ComResponce_FileInfoStruct::_internal_type() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.type_.Get(); +} +inline void ComResponce_FileInfoStruct::_internal_set_type(const std::string& value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.type_.Set(value, GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::_internal_mutable_type() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + return _impl_.type_.Mutable( GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::release_type() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + // @@protoc_insertion_point(field_release:stream.ComResponce.FileInfoStruct.type) + return _impl_.type_.Release(); +} +inline void ComResponce_FileInfoStruct::set_allocated_type(std::string* value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + _impl_.type_.SetAllocated(value, GetArenaForAllocation()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.type_.IsDefault()) { + _impl_.type_.Set("", GetArenaForAllocation()); + } + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.FileInfoStruct.type) +} + +// bytes filePath = 2; +inline void ComResponce_FileInfoStruct::clear_filepath() { + _impl_.filepath_.ClearToEmpty(); +} +inline const std::string& ComResponce_FileInfoStruct::filepath() const { + // @@protoc_insertion_point(field_get:stream.ComResponce.FileInfoStruct.filePath) + return _internal_filepath(); +} +template +inline PROTOBUF_ALWAYS_INLINE void ComResponce_FileInfoStruct::set_filepath(Arg_&& arg, + Args_... args) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.filepath_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:stream.ComResponce.FileInfoStruct.filePath) +} +inline std::string* ComResponce_FileInfoStruct::mutable_filepath() { + std::string* _s = _internal_mutable_filepath(); + // @@protoc_insertion_point(field_mutable:stream.ComResponce.FileInfoStruct.filePath) + return _s; +} +inline const std::string& ComResponce_FileInfoStruct::_internal_filepath() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.filepath_.Get(); +} +inline void ComResponce_FileInfoStruct::_internal_set_filepath(const std::string& value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.filepath_.Set(value, GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::_internal_mutable_filepath() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + return _impl_.filepath_.Mutable( GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::release_filepath() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + // @@protoc_insertion_point(field_release:stream.ComResponce.FileInfoStruct.filePath) + return _impl_.filepath_.Release(); +} +inline void ComResponce_FileInfoStruct::set_allocated_filepath(std::string* value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + _impl_.filepath_.SetAllocated(value, GetArenaForAllocation()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.filepath_.IsDefault()) { + _impl_.filepath_.Set("", GetArenaForAllocation()); + } + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.FileInfoStruct.filePath) +} + +// bytes fileName = 3; +inline void ComResponce_FileInfoStruct::clear_filename() { + _impl_.filename_.ClearToEmpty(); +} +inline const std::string& ComResponce_FileInfoStruct::filename() const { + // @@protoc_insertion_point(field_get:stream.ComResponce.FileInfoStruct.fileName) + return _internal_filename(); +} +template +inline PROTOBUF_ALWAYS_INLINE void ComResponce_FileInfoStruct::set_filename(Arg_&& arg, + Args_... args) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.filename_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:stream.ComResponce.FileInfoStruct.fileName) +} +inline std::string* ComResponce_FileInfoStruct::mutable_filename() { + std::string* _s = _internal_mutable_filename(); + // @@protoc_insertion_point(field_mutable:stream.ComResponce.FileInfoStruct.fileName) + return _s; +} +inline const std::string& ComResponce_FileInfoStruct::_internal_filename() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.filename_.Get(); +} +inline void ComResponce_FileInfoStruct::_internal_set_filename(const std::string& value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.filename_.Set(value, GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::_internal_mutable_filename() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + return _impl_.filename_.Mutable( GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::release_filename() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + // @@protoc_insertion_point(field_release:stream.ComResponce.FileInfoStruct.fileName) + return _impl_.filename_.Release(); +} +inline void ComResponce_FileInfoStruct::set_allocated_filename(std::string* value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + _impl_.filename_.SetAllocated(value, GetArenaForAllocation()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.filename_.IsDefault()) { + _impl_.filename_.Set("", GetArenaForAllocation()); + } + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.FileInfoStruct.fileName) +} + +// bytes ext = 4; +inline void ComResponce_FileInfoStruct::clear_ext() { + _impl_.ext_.ClearToEmpty(); +} +inline const std::string& ComResponce_FileInfoStruct::ext() const { + // @@protoc_insertion_point(field_get:stream.ComResponce.FileInfoStruct.ext) + return _internal_ext(); +} +template +inline PROTOBUF_ALWAYS_INLINE void ComResponce_FileInfoStruct::set_ext(Arg_&& arg, + Args_... args) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.ext_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:stream.ComResponce.FileInfoStruct.ext) +} +inline std::string* ComResponce_FileInfoStruct::mutable_ext() { + std::string* _s = _internal_mutable_ext(); + // @@protoc_insertion_point(field_mutable:stream.ComResponce.FileInfoStruct.ext) + return _s; +} +inline const std::string& ComResponce_FileInfoStruct::_internal_ext() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.ext_.Get(); +} +inline void ComResponce_FileInfoStruct::_internal_set_ext(const std::string& value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.ext_.Set(value, GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::_internal_mutable_ext() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + return _impl_.ext_.Mutable( GetArenaForAllocation()); +} +inline std::string* ComResponce_FileInfoStruct::release_ext() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + // @@protoc_insertion_point(field_release:stream.ComResponce.FileInfoStruct.ext) + return _impl_.ext_.Release(); +} +inline void ComResponce_FileInfoStruct::set_allocated_ext(std::string* value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + _impl_.ext_.SetAllocated(value, GetArenaForAllocation()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.ext_.IsDefault()) { + _impl_.ext_.Set("", GetArenaForAllocation()); + } + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.FileInfoStruct.ext) +} + +// ------------------------------------------------------------------- + // ComResponce // bytes data = 1; @@ -7289,6 +7416,103 @@ inline void ComResponce::set_allocated_data(std::string* value) { // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.data) } +// bytes directory = 2; +inline void ComResponce::clear_directory() { + _impl_.directory_.ClearToEmpty(); +} +inline const std::string& ComResponce::directory() const { + // @@protoc_insertion_point(field_get:stream.ComResponce.directory) + return _internal_directory(); +} +template +inline PROTOBUF_ALWAYS_INLINE void ComResponce::set_directory(Arg_&& arg, + Args_... args) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.directory_.SetBytes(static_cast(arg), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:stream.ComResponce.directory) +} +inline std::string* ComResponce::mutable_directory() { + std::string* _s = _internal_mutable_directory(); + // @@protoc_insertion_point(field_mutable:stream.ComResponce.directory) + return _s; +} +inline const std::string& ComResponce::_internal_directory() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.directory_.Get(); +} +inline void ComResponce::_internal_set_directory(const std::string& value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.directory_.Set(value, GetArenaForAllocation()); +} +inline std::string* ComResponce::_internal_mutable_directory() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + return _impl_.directory_.Mutable( GetArenaForAllocation()); +} +inline std::string* ComResponce::release_directory() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + // @@protoc_insertion_point(field_release:stream.ComResponce.directory) + return _impl_.directory_.Release(); +} +inline void ComResponce::set_allocated_directory(std::string* value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + _impl_.directory_.SetAllocated(value, GetArenaForAllocation()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.directory_.IsDefault()) { + _impl_.directory_.Set("", GetArenaForAllocation()); + } + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:stream.ComResponce.directory) +} + +// repeated .stream.ComResponce.FileInfoStruct fileInfo = 3; +inline int ComResponce::_internal_fileinfo_size() const { + return _internal_fileinfo().size(); +} +inline int ComResponce::fileinfo_size() const { + return _internal_fileinfo_size(); +} +inline void ComResponce::clear_fileinfo() { + _internal_mutable_fileinfo()->Clear(); +} +inline ::stream::ComResponce_FileInfoStruct* ComResponce::mutable_fileinfo(int index) { + // @@protoc_insertion_point(field_mutable:stream.ComResponce.fileInfo) + return _internal_mutable_fileinfo()->Mutable(index); +} +inline ::google::protobuf::RepeatedPtrField< ::stream::ComResponce_FileInfoStruct >* +ComResponce::mutable_fileinfo() { + // @@protoc_insertion_point(field_mutable_list:stream.ComResponce.fileInfo) + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + return _internal_mutable_fileinfo(); +} +inline const ::stream::ComResponce_FileInfoStruct& ComResponce::fileinfo(int index) const { + // @@protoc_insertion_point(field_get:stream.ComResponce.fileInfo) + return _internal_fileinfo().Get(index); +} +inline ::stream::ComResponce_FileInfoStruct* ComResponce::add_fileinfo() { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ::stream::ComResponce_FileInfoStruct* _add = _internal_mutable_fileinfo()->Add(); + // @@protoc_insertion_point(field_add:stream.ComResponce.fileInfo) + return _add; +} +inline const ::google::protobuf::RepeatedPtrField< ::stream::ComResponce_FileInfoStruct >& +ComResponce::fileinfo() const { + // @@protoc_insertion_point(field_list:stream.ComResponce.fileInfo) + return _internal_fileinfo(); +} +inline const ::google::protobuf::RepeatedPtrField<::stream::ComResponce_FileInfoStruct>& +ComResponce::_internal_fileinfo() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.fileinfo_; +} +inline ::google::protobuf::RepeatedPtrField<::stream::ComResponce_FileInfoStruct>* +ComResponce::_internal_mutable_fileinfo() { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return &_impl_.fileinfo_; +} + // ------------------------------------------------------------------- // ScannerCrtlCfgResp diff --git a/TestClient/protobuf/stream.proto b/TestClient/protobuf/stream.proto index a1514b9..f06b512 100644 --- a/TestClient/protobuf/stream.proto +++ b/TestClient/protobuf/stream.proto @@ -49,14 +49,6 @@ message ParamInfo{ int32 endLayer = 9; float powder = 10; - int32 seqNo = 11; //ScannerControlCfg使用 - int32 controlNo = 12; - int32 serialNo = 13; - int32 controlType = 14; - bytes cardName = 15; - bytes cardIP = 16; - bool hadAssign = 17; - bool hadMatch = 18; //isEnable公用 } message RequestInfo { //读 @@ -139,9 +131,19 @@ message ImgInfoResponce{ int32 height = 3; } -//注册功能返回信息 IOVersionStr接口返回值 +//注册功能 IOVersionStr接口 盘符文件路径接口 message ComResponce{ bytes data = 1; + bytes directory = 2; + + message FileInfoStruct + { + bytes type = 1; //类型 + bytes filePath = 2; + bytes fileName = 3; + bytes ext = 4; //后缀 + } + repeated FileInfoStruct fileInfo = 3; } //ScannerCrtlCfg结构体 @@ -151,6 +153,7 @@ message ScannerCrtlCfgResp{ message ScannerCrtlCfgData{ int32 seqNo = 1; + repeated FixPointData fixPointData = 2; ScanParamCfg scanParamCfg = 3; ScanParamCfg hatchingParams = 4; @@ -312,3 +315,5 @@ service Stream { rpc ClientStream (stream RequestInfo) returns (ResponseInfo) {} // 客户端数据流模式 rpc AllStream (stream RequestInfo) returns (stream ResponseInfo) {} // 双向数据流模式 } + +