Procházet zdrojové kódy

新增REXE工程属性,生成Release的Exe程序;

sat23 před 4 roky
rodič
revize
b0521fa3bb

+ 3 - 0
TestWizard/TestWizard.sln

@@ -9,6 +9,7 @@ Global
 		EXE|Win32 = EXE|Win32
 		PYD|Win32 = PYD|Win32
 		Release|Win32 = Release|Win32
+		REXE|Win32 = REXE|Win32
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{9FE83C3A-0858-46CC-B379-5081C52A45D3}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -19,6 +20,8 @@ Global
 		{9FE83C3A-0858-46CC-B379-5081C52A45D3}.PYD|Win32.Build.0 = PYD|Win32
 		{9FE83C3A-0858-46CC-B379-5081C52A45D3}.Release|Win32.ActiveCfg = Release|Win32
 		{9FE83C3A-0858-46CC-B379-5081C52A45D3}.Release|Win32.Build.0 = Release|Win32
+		{9FE83C3A-0858-46CC-B379-5081C52A45D3}.REXE|Win32.ActiveCfg = REXE|Win32
+		{9FE83C3A-0858-46CC-B379-5081C52A45D3}.REXE|Win32.Build.0 = REXE|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 48 - 3
TestWizard/TestWizard/SynSerial.cpp

@@ -33,6 +33,9 @@ BOOL CSynSerial::OpenSerialPort(IN CONST BYTE & byCommPort, IN CONST DWORD & dwB
 	{
 		// 打开串口失败;
 		DWORD dwError = GetLastError();
+#ifdef __CONSOLE__
+		printf("CreateFile Error=%d\n", dwError);
+#endif
 		return FALSE;
 	}
 
@@ -44,6 +47,9 @@ BOOL CSynSerial::OpenSerialPort(IN CONST BYTE & byCommPort, IN CONST DWORD & dwB
 		CloseHandle(m_hSerialPort);
 		m_hSerialPort = INVALID_HANDLE_VALUE;
 		DWORD dwError = GetLastError();
+#ifdef __CONSOLE__
+		printf("SetupComm Error=%d\n", dwError);
+#endif
 		return FALSE;
 	}
 
@@ -54,6 +60,9 @@ BOOL CSynSerial::OpenSerialPort(IN CONST BYTE & byCommPort, IN CONST DWORD & dwB
 		CloseHandle(m_hSerialPort);
 		m_hSerialPort = INVALID_HANDLE_VALUE;
 		DWORD dwError = GetLastError();
+#ifdef __CONSOLE__
+		printf("PurgeComm Error=%d\n", dwError);
+#endif
 		return FALSE;
 	}
 
@@ -65,6 +74,9 @@ BOOL CSynSerial::OpenSerialPort(IN CONST BYTE & byCommPort, IN CONST DWORD & dwB
 		CloseHandle(m_hSerialPort);
 		m_hSerialPort = INVALID_HANDLE_VALUE;
 		DWORD dwError = GetLastError();
+#ifdef __CONSOLE__
+		printf("GetCommState Error=%d\n", dwError);
+#endif
 		return FALSE;
 	}
 
@@ -88,6 +100,9 @@ BOOL CSynSerial::OpenSerialPort(IN CONST BYTE & byCommPort, IN CONST DWORD & dwB
 		CloseHandle(m_hSerialPort);
 		m_hSerialPort = INVALID_HANDLE_VALUE;
 		DWORD dwError = GetLastError();
+#ifdef __CONSOLE__
+		printf("SetCommState Error=%d\n", dwError);
+#endif
 		return FALSE;
 	}
 
@@ -98,6 +113,9 @@ BOOL CSynSerial::OpenSerialPort(IN CONST BYTE & byCommPort, IN CONST DWORD & dwB
 		CloseHandle(m_hSerialPort);
 		m_hSerialPort = INVALID_HANDLE_VALUE;
 		DWORD dwError = GetLastError();
+#ifdef __CONSOLE__
+		printf("GetCommTimeouts Error=%d\n", dwError);
+#endif
 		return FALSE;
 	}
 
@@ -115,6 +133,9 @@ BOOL CSynSerial::OpenSerialPort(IN CONST BYTE & byCommPort, IN CONST DWORD & dwB
 		CloseHandle(m_hSerialPort);
 		m_hSerialPort = INVALID_HANDLE_VALUE;
 		DWORD dwError = GetLastError();
+#ifdef __CONSOLE__
+		printf("SetCommTimeouts Error=%d\n", dwError);
+#endif
 		return FALSE;
 	}
 
@@ -263,6 +284,9 @@ DWORD CSynSerial::WriteComm(IN BYTE * pWirteBuf, IN CONST INT32 nWriteSize)
 
 	if (pWirteBuf == NULL || !::AfxIsValidAddress(pWirteBuf, nWriteSize, FALSE))
 	{
+#ifdef __CONSOLE__
+		printf("WriteComm Error=AfxIsValidAddress\n");
+#endif
 		return 0;
 	}
 	
@@ -278,17 +302,28 @@ DWORD CSynSerial::WriteComm(IN BYTE * pWirteBuf, IN CONST INT32 nWriteSize)
 		DWORD dwError = GetLastError();
 		if ( ERROR_IO_PENDING == GetLastError() )
 		{
-			while(!GetOverlappedResult(m_hSerialPort, &m_wrOverlapped, &dwBytesWritten, FALSE)){
+			while(!GetOverlappedResult(m_hSerialPort, &m_wrOverlapped, &dwBytesWritten, FALSE))
+			{
 				dwError = GetLastError();
 				if ( ERROR_IO_PENDING == dwError || dwError == ERROR_IO_INCOMPLETE ) {
 					continue;
 				}
-				else {
+				else 
+				{
+#ifdef __CONSOLE__
+					printf("GetOverlappedResult Error=%d\n", dwError);
+#endif
 					ClearCommError(m_hSerialPort, &dwError, NULL);
 					break;
 				}
 			}
 		}
+		else
+		{
+#ifdef __CONSOLE__
+			printf("WriteFile Error=%d\n", dwError);
+#endif
+		}
 	}	
 
 	// 返回写入字节数;
@@ -302,6 +337,9 @@ DWORD CSynSerial::ReadComm(IN BYTE *pReadBuf, IN CONST DWORD& dwReadSize, WORD t
 
 	if (pReadBuf == NULL || !::AfxIsValidAddress(pReadBuf, dwReadSize, FALSE))
 	{
+#ifdef __CONSOLE__
+		printf("ReadComm Error=AfxIsValidAddress\n");
+#endif
 		return 0;
 	}
 
@@ -315,10 +353,17 @@ DWORD CSynSerial::ReadComm(IN BYTE *pReadBuf, IN CONST DWORD& dwReadSize, WORD t
 		if ( GetLastError() == ERROR_IO_PENDING ) {
 			while(!GetOverlappedResult(m_hSerialPort, &m_wrOverlapped, &dwRealRead, FALSE)){
 				dwError = GetLastError();
-				printf("\t 码值=%d, 长度=%d, 内容=%s \n\n", dwError, dwRealRead, pReadBuf);
+#ifdef __CONSOLE__
+				if ( dwError != ERROR_IO_INCOMPLETE)
+					printf("\t ErroCode=%d, Len=%d, Buffer=%s \n\n", dwError, dwRealRead, pReadBuf);
+#endif
 			}
 		}
 	}
 
+#ifdef __CONSOLE__
+	printf("Len=%d, Buffer=%s \n\n", dwRealRead, pReadBuf);
+#endif
+
 	return dwRealRead;
 }

+ 19 - 39
TestWizard/TestWizard/TestWizard.cpp

@@ -47,56 +47,26 @@ int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
 	else
 	{
 #if 1
-		std::string a = tolower("FFDFDFfdfdfdDDA");
+		int port;
+		printf("Please enter the serial number =");		
+		scanf("%d", &port);
 		// TODO: 在此处为应用程序的行为编写代码。
-		if ( OpenDevice(6, 115200, 8, 0, 0) )
+		if ( OpenDevice(port, 115200, 8, 0, 0) )
 		{
-			OpenXML("D:\\SAT\\resource\\RCU\\TW\\demo.xml");
-			//std::string data = GetSignalsName();
-			
-			int time = 200;
-			//SendKey("POWER");
-			//Sleep(time);
-			//SendKey("SETTING");
-			//Sleep(time);
-			for (int i = 0; i < 200; i++ )
+			if ( OpenXML("D:\\SAT\\resource\\RCU\\TW\\G_AP_0F_IR.xml") == 0 )
 			{
-				SendKey("OK");
-				printf("---------------------------------\n");
-				Sleep(1000);
+				SendKey("POWER");
 			}
-			//Sleep(time);
-			//SendKey("DOWN");
-			//Sleep(time);
-			//SendKey("DOWN");
-			//Sleep(time);
-			//SendKey("UP");
-			//Sleep(time);
-			//SendKey("LEFT");
-			//Sleep(time);
-			//SendKey("RIGHT");
-			//Sleep(time);
-			/*SendCmd("*INPUT BLEKEY 07004F");
-			SendCmd("*INPUT BLEKEY 07004F");
-			Sleep(time);
-			SendCmd("*INPUT BLEKEY 070050");
-			Sleep(time);
-			SendCmd("*INPUT BLEKEY 0C0223");*/
-			Sleep(time);
+
 			CloseDevice();
 		}
-#endif
-
-#if 0
-		if ( OpenUsbSwitch(5, 115200, 8, 0, 0) )
+		else
 		{
-			SendSwitch(0);
-			CloseUsbSwitch();
+			printf("OpenDevice fail\n");
 		}
 #endif
 	}
 
-	printf("测试程序!\n");
 	system("pause");
 
 	return nRetCode;
@@ -218,13 +188,23 @@ std::string toupper(const char *p)
 int __LoadXML(LPCTSTR lpXMLPath)
 {
 	if ( !lpXMLPath || !PathFileExists(lpXMLPath) )
+	{
+#ifdef __CONSOLE__
+		printf("__LoadXML Error\n");
+#endif
 		return -1;
+	}
 
 	g_strXMLPath = lpXMLPath;
 	// 解析xml;
 	tinyxml2::XMLDocument doc;
 	if (tinyxml2::XML_SUCCESS != doc.LoadFile(lpXMLPath))
+	{
+#ifdef __CONSOLE__
+		printf("LoadFile Error\n");
+#endif
 		return -1;
+	}
 
 	std::string ver;
 	std::string desc;

+ 91 - 0
TestWizard/TestWizard/TestWizard.vcproj

@@ -314,6 +314,81 @@
 				Name="VCPostBuildEventTool"
 			/>
 		</Configuration>
+		<Configuration
+			Name="REXE|Win32"
+			OutputDirectory="..\..\..\..\bin\$(SolutionName)"
+			IntermediateDirectory="$(OutDir)\$(ProjectName)\$(ConfigurationName)"
+			ConfigurationType="1"
+			UseOfMFC="2"
+			CharacterSet="2"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				EnableIntrinsicFunctions="true"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;__CONSOLE__;TESTWIZARD_EXPORTS"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="2"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
 	</Configurations>
 	<References>
 	</References>
@@ -366,6 +441,14 @@
 						UsePrecompiledHeader="1"
 					/>
 				</FileConfiguration>
+				<FileConfiguration
+					Name="REXE|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"
+					/>
+				</FileConfiguration>
 			</File>
 			<File
 				RelativePath=".\SynSerial.cpp"
@@ -466,6 +549,14 @@
 						UsePrecompiledHeader="0"
 					/>
 				</FileConfiguration>
+				<FileConfiguration
+					Name="REXE|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
 			</File>
 			<File
 				RelativePath=".\tinyxml2.h"