|  | @@ -42,6 +42,10 @@ int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
 | 
	
		
			
				|  |  |  		// TODO: 在此处为应用程序的行为编写代码。
 | 
	
		
			
				|  |  |  		if ( OpenDevice(7, 115200, 8, 0, 0) )
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | +			while ( ReadKey() )
 | 
	
		
			
				|  |  | +				Sleep(100);
 | 
	
		
			
				|  |  | +			Sleep(10000000);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  			OpenXML("E:\\bin\\TestWizard\\data.xml");
 | 
	
		
			
				|  |  |  			
 | 
	
		
			
				|  |  |  			int time = 1500;
 | 
	
	
		
			
				|  | @@ -383,7 +387,37 @@ TESTWIZARD_API bool SendKey(LPCTSTR lpKeyName)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  TESTWIZARD_API bool ReadKey()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	return false;
 | 
	
		
			
				|  |  | +	byte szKeyData[MAX_PATH] = {0};
 | 
	
		
			
				|  |  | +	DWORD dwNumberOfBytesRead = g_synSerial.ReadComm(szKeyData, MAX_PATH, 300);
 | 
	
		
			
				|  |  | +	if ( dwNumberOfBytesRead <= 0 )
 | 
	
		
			
				|  |  | +		return false;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	// 如果是C++11,使用std正则;[码类型]<码内容>0D 0A;
 | 
	
		
			
				|  |  | +	// 不是 "[" 开头;
 | 
	
		
			
				|  |  | +	if ( szKeyData[0] != 0x5B )
 | 
	
		
			
				|  |  | +		return false;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	// 查找 "]" 的位置;
 | 
	
		
			
				|  |  | +	int pos = 0;
 | 
	
		
			
				|  |  | +	byte *p = szKeyData;
 | 
	
		
			
				|  |  | +	while ( p++, pos++ )
 | 
	
		
			
				|  |  | +		if (*p == 0x5D)
 | 
	
		
			
				|  |  | +			break;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	// 不在有效范围内;
 | 
	
		
			
				|  |  | +	if ( pos >= dwNumberOfBytesRead - 2 )
 | 
	
		
			
				|  |  | +		return false;
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	// 不是0d 0a结束;
 | 
	
		
			
				|  |  | +	if ( szKeyData[dwNumberOfBytesRead-2] != 0x0D &&  szKeyData[dwNumberOfBytesRead-1] != 0x0A)
 | 
	
		
			
				|  |  | +		return false;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	KeyItem keyItem;
 | 
	
		
			
				|  |  | +	keyItem.keyType.append((char*)(&szKeyData[1]), pos-2);
 | 
	
		
			
				|  |  | +	keyItem.keyCode.append((char*)(&szKeyData[pos+1]), dwNumberOfBytesRead-pos-4);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	return true;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #endif
 |