|  | @@ -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;
 |