|
@@ -2,6 +2,7 @@
|
|
|
#include "SATTCPServer.h"
|
|
|
//#include "MainDlg.h"
|
|
|
#include "SATExecutor.h"
|
|
|
+#include "SATDevices.h"
|
|
|
|
|
|
// 每一个处理器上产生多少个线程(为了最大限度的提升服务器性能,详见配套文档)
|
|
|
#define WORKER_THREADS_PER_PROCESSOR 2
|
|
@@ -896,7 +897,7 @@ void CSATTCPServer::_TaskProcess(PER_IO_CONTEXT* pIoContext, SATProtocol::Packag
|
|
|
// 登录;
|
|
|
SATProtocol::UserInfo *pLogin = (SATProtocol::UserInfo*)pak->buf;
|
|
|
Global::WriteTextLog(_T("User=%s, psw=%s"), pLogin->szUserName, pLogin->szPassword);
|
|
|
- bool bRet = CSATExecutor::GetInstance()->Login(pLogin->szUserName, pLogin->szPassword, !pHeader->cmd);
|
|
|
+ bool bRet = CSATExecutor::GetInstance()->Login(pLogin->szUserName, pLogin->szPassword, pLogin->szActuatorName, !pHeader->cmd);
|
|
|
|
|
|
// 计算数据包长度;
|
|
|
long len = sizeof(SATProtocol::DataHeader)+sizeof(SATProtocol::LoginResp);
|
|
@@ -932,10 +933,45 @@ void CSATTCPServer::_TaskProcess(PER_IO_CONTEXT* pIoContext, SATProtocol::Packag
|
|
|
}
|
|
|
break;
|
|
|
case SATProtocol::CMD_ADD_DEVICE:
|
|
|
- break;
|
|
|
case SATProtocol::CMD_DEL_DEVICE:
|
|
|
+ {
|
|
|
+ std::string ip = (char*)pak->buf;
|
|
|
+ if (pHeader->cmd == SATProtocol::CMD_DEL_DEVICE )
|
|
|
+ CSATDevices::DelDevices(ip);
|
|
|
+ else
|
|
|
+ CSATDevices::AddReticleDevices(ip);
|
|
|
+
|
|
|
+ SATProtocol::DataHeader header;
|
|
|
+ header.cmd = pHeader->cmd;
|
|
|
+ header.len = sizeof(SATProtocol::DataHeader);
|
|
|
+ header.protocol = 0xAA;
|
|
|
+
|
|
|
+ send(pIoContext->m_sockAccept, (const char*)&header, sizeof(SATProtocol::DataHeader), 0);
|
|
|
+ }
|
|
|
break;
|
|
|
case SATProtocol::CMD_QUERY_DEVICES:
|
|
|
+ {
|
|
|
+ // 计算数据包长度;
|
|
|
+ long len = sizeof(SATProtocol::DataHeader)+sizeof(SATProtocol::LoginResp);
|
|
|
+ byte *pbuff = new byte[len];
|
|
|
+ memset(pbuff, 0, len);
|
|
|
+ SATProtocol::Package *pSendPak = (SATProtocol::Package *)pbuff;
|
|
|
+ pSendPak->header.protocol = 0xAA;
|
|
|
+ pSendPak->header.cmd = pHeader->cmd;
|
|
|
+ pSendPak->header.len = len;
|
|
|
+ // 转换pak->buf为结构体;
|
|
|
+ SATProtocol::DeviceResp *pDevResp = (SATProtocol::DeviceResp*)(pbuff+sizeof(SATProtocol::DataHeader));
|
|
|
+ memset(pDevResp->szDevs, 0, 30*MAX_PATH);
|
|
|
+ // 获取设备列表;
|
|
|
+ pDevResp->nSize = CSATDevices::AttachDeviceName2Buffer(pDevResp->szDevs);
|
|
|
+
|
|
|
+ // 返回给客户端;
|
|
|
+ send(pIoContext->m_sockAccept, (const char*)pbuff, len, 0);
|
|
|
+
|
|
|
+ // 释放内存;
|
|
|
+ delete []pbuff;
|
|
|
+ pbuff = NULL;
|
|
|
+ }
|
|
|
break;
|
|
|
default:
|
|
|
break;
|