Bladeren bron

纠正登录参数问题;

scbc.sat2 5 jaren geleden
bovenliggende
commit
f8362ea8fa
2 gewijzigde bestanden met toevoegingen van 74 en 58 verwijderingen
  1. 29 7
      SATService/SATService/SATService.cpp
  2. 45 51
      SATService/SATService/SATTCPServer.cpp

+ 29 - 7
SATService/SATService/SATService.cpp

@@ -29,7 +29,13 @@ void CALLBACK WorkStart()
 	CSATExecutor::GetInstance()->Login("superAdmin", "123456");
 	CSATExecutor::GetInstance()->UpdateDevice();
 #endif
+	// 启用SAT执行器;
 	CSATExecutor::GetInstance()->StartWork();
+	// 启动SAT TCP服务端;
+	CSATTCPServer::GetInstance()->LoadSocketLib();
+	CSATTCPServer::GetInstance()->Start(5588);
+	// 启动设备扫描器;
+	CSATDevices::GetInstance()->StartWork();
 }
 
 // 工作结束回调函数;
@@ -61,15 +67,31 @@ int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
 		Global::GetIniInfo();
 		Global::GetMacAddress();
 #ifdef _DEBUG
-		//WorkStart();
-		//CSATDevices::GetInstance()->StartWork();
-		CSATTCPServer iocp;
-		iocp.LoadSocketLib();
-		iocp.Start(5588);
 
-		while (true)
+#if 0
+		// 启用SAT执行器;
+		CSATExecutor::GetInstance()->Login("superAdmin", "123456");
+		CSATExecutor::GetInstance()->UpdateDevice();
+		CSATExecutor::GetInstance()->StartWork();
+#endif
+
+#if 1
+		// 启动SAT TCP服务端;
+		CSATTCPServer::GetInstance()->LoadSocketLib();
+		CSATTCPServer::GetInstance()->Start(5588);
+#endif
+
+#if 0
+		CSATDevices::GetInstance()->StartWork();
+#endif
+
+		// 指定时间停止;
+		ULONGLONG ulTickCount = GetTickCount64();
+		while (GetTickCount64() - ulTickCount < 1800000 )
 		{
-			Sleep(1000);
+			//CSATExecutor::GetInstance()->Login("superAdmin", "123456");
+			//printf("倒计时:%ld\n",GetTickCount64() - ulTickCount);
+			Sleep(100);
 		}
 		
 		return 0;

+ 45 - 51
SATService/SATService/SATTCPServer.cpp

@@ -864,64 +864,58 @@ void CSATTCPServer::_TaskProcess(PER_IO_CONTEXT* pIoContext, SATProtocol::Packag
 		return;
 
 	if ( pHeader->protocol == 0xAA ) {
-		if ( pHeader->cmd == SATProtocol::CMD_LOGIN ) {
-			// 登录;
-			SATProtocol::UserInfo *pLogin = (SATProtocol::UserInfo*)pak->buf;
-			bool bRet = CSATExecutor::GetInstance()->Login(pLogin->szUserName, pLogin->szPassword);
-
-			// 计算数据包长度;
-			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 = SATProtocol::CMD_LOGIN;
-			pSendPak->header.len = len;
+		switch ( pHeader->cmd  ) 
+		{
+			case SATProtocol::CMD_LOGIN:
+			case SATProtocol::CMD_LOGOUT:
+				{
+					// 登录;
+					SATProtocol::UserInfo *pLogin = (SATProtocol::UserInfo*)pak->buf;
+					bool bRet = CSATExecutor::GetInstance()->Login(pLogin->szUserName, pLogin->szPassword, !pHeader->cmd);
+
+					// 计算数据包长度;
+					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;
 #if 0
-			// 复制内容到指针中;
-			memcpy(pSendPak->buf, &bRet, sizeof(bool));
+					// 复制内容到指针中;
+					memcpy(pSendPak->buf, &bRet, sizeof(bool));
 
-			char szMessage[MAX_PATH] = {0};
-			_stprintf_s(szMessage, _T("登录……"));
-			memcpy(pSendPak->buf + sizeof(bool), szMessage, MAX_PATH);
+					char szMessage[MAX_PATH] = {0};
+					_stprintf_s(szMessage, _T("登录……"));
+					memcpy(pSendPak->buf + sizeof(bool), szMessage, MAX_PATH);
 #else
-			const SATParameters::STLoginResp *pstLoginResp = CSATExecutor::GetInstance()->GetLoginResp();
-			SATProtocol::LoginResp *pLoginResp = (SATProtocol::LoginResp*)(pbuff+sizeof(SATProtocol::DataHeader));
-			pLoginResp->bStatus = bRet;
-			memset(pLoginResp->szMessage, 0, MAX_PATH);
-			//_stprintf_s(pLoginResp->szMessage, _T("%s"), pstLoginResp->strMessage.c_str());
-			//_tcscpy_s(pLoginResp->szMessage, _T("登录描述……"));
-			// 如果使用上方两种方式赋值,会导致'\0'后面的字节不为0;
-			memcpy(pLoginResp->szMessage, pstLoginResp->strMessage.c_str(), pstLoginResp->strMessage.size());
+					const SATParameters::STLoginResp *pstLoginResp = CSATExecutor::GetInstance()->GetLoginResp();
+					SATProtocol::LoginResp *pLoginResp = (SATProtocol::LoginResp*)(pbuff+sizeof(SATProtocol::DataHeader));
+					pLoginResp->bStatus = bRet;
+					memset(pLoginResp->szMessage, 0, MAX_PATH);
+					//_stprintf_s(pLoginResp->szMessage, _T("%s"), pstLoginResp->strMessage.c_str());
+					//_tcscpy_s(pLoginResp->szMessage, _T("登录描述……"));
+					// 如果使用上方两种方式赋值,会导致'\0'后面的字节不为0;
+					memcpy(pLoginResp->szMessage, pstLoginResp->strMessage.c_str(), pstLoginResp->strMessage.size());
 #endif
+					// 发送,无须判断是否发送成功;
+					send(pIoContext->m_sockAccept, (const char*)pbuff, len, 0);
 
-			// 发送,无须判断是否发送成功;
-			send(pIoContext->m_sockAccept, (const char*)pbuff, len, 0);
-
-			// 释放内存;
-			delete []pbuff;
-			pbuff = NULL;
-		}
-		else if ( pHeader->cmd == SATProtocol::CMD_LOGOUT ) {// 登出;
-
-		}
-		else if ( pHeader->cmd == SATProtocol::CMD_ADD_DEVICE ) {// 添加设备;
-
-		}
-		else if ( pHeader->cmd == SATProtocol::CMD_DEL_DEVICE ) {// 删除设备;
-
-		}
-		else if ( pHeader->cmd == SATProtocol::CMD_QUERY_DEVICES ) {// 查询设备;
-
-		}
-		else {// 无效指令;
-
+					// 释放内存;
+					delete []pbuff;
+					pbuff = NULL;
+				}
+				break;
+			case SATProtocol::CMD_ADD_DEVICE:
+				break;
+			case SATProtocol::CMD_DEL_DEVICE:
+				break;
+			case SATProtocol::CMD_QUERY_DEVICES:
+				break;
+			default:
+				break;
 		}
 	}
-	else if ( pHeader->protocol == 0xAB )
-	{
-
-	}	
 }
 
 bool CSATTCPServer::CheckDataHeader(SATProtocol::DataHeader* header)