Browse Source

Merge branch 'master' of http://thinking.zicp.io:3000/home/scbc_repos

Jeff 4 năm trước cách đây
mục cha
commit
3b23cfd2cb

+ 3 - 0
SATHelper/SATHelper/IRControlWnd.cpp

@@ -756,6 +756,7 @@ void CIRControlWnd::LoadSignals()
 	if (Global::g_Config.useTW)
 	{
 		filehelper fh;
+		m_vtsignal_tw.clear();
 		fh.getfiles_findout_subfolder(Global::g_Config.twSignaldir.c_str(), NULL, &m_vtsignal_tw);
 
 		m_wndSignalCombo.ResetContent();
@@ -767,6 +768,8 @@ void CIRControlWnd::LoadSignals()
 	else
 	{
 		filehelper fh;
+		m_vtsignal_gen.clear();
+		m_vtsignal_pro.clear();
 		fh.getfiles_findout_subfolder((Global::g_Config.signaldir + "\\general\\").c_str(), NULL, &m_vtsignal_gen);
 		fh.getfiles_findout_subfolder((Global::g_Config.signaldir + "\\product\\").c_str(), NULL, &m_vtsignal_pro);
 

+ 14 - 14
SATHelper/SATHelper/SATHelper.cpp

@@ -113,6 +113,20 @@ BOOL CSATHelperApp::InitInstance()
 	EnableTaskbarInteraction(FALSE);
 #endif
 
+	// 获取模块的目录;
+	TCHAR szDrive[MAX_PATH] = { 0 };
+	TCHAR szDir[MAX_PATH] = { 0 };
+	TCHAR szExt[MAX_PATH] = { 0 };
+	::GetModuleFileName(NULL, Global::g_szCurModulePath, sizeof(Global::g_szCurModulePath) / sizeof(TCHAR));
+	_tsplitpath_s(Global::g_szCurModulePath, szDrive, szDir, Global::g_szFna, szExt);
+#ifdef _DEBUG
+	::GetCurrentDirectory(MAX_PATH, Global::g_szCurModuleDir);
+	_tcscat_s(Global::g_szCurModuleDir, _T("\\"));
+#else
+	_tcscpy_s(Global::g_szCurModuleDir, szDrive);
+	_tcscat_s(Global::g_szCurModuleDir, szDir);
+#endif
+
 	Global::GetConfig();
 	std::thread t([]() {
 		while (true) {
@@ -141,20 +155,6 @@ BOOL CSATHelperApp::InitInstance()
 #if 1
 	GdiplusStartupInput gdiplusStartupInput;
 	GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
-
-	// 获取模块的目录;
-	TCHAR szDrive[MAX_PATH] = { 0 };
-	TCHAR szDir[MAX_PATH] = { 0 };
-	TCHAR szExt[MAX_PATH] = { 0 };
-	::GetModuleFileName(NULL, Global::g_szCurModulePath, sizeof(Global::g_szCurModulePath) / sizeof(TCHAR));
-	_tsplitpath_s(Global::g_szCurModulePath, szDrive, szDir, Global::g_szFna, szExt);
-#ifdef _DEBUG
-	::GetCurrentDirectory(MAX_PATH, Global::g_szCurModuleDir);
-	_tcscat_s(Global::g_szCurModuleDir, _T("\\"));
-#else
-	_tcscpy_s(Global::g_szCurModuleDir, szDrive);
-	_tcscat_s(Global::g_szCurModuleDir, szDir);
-#endif
 #endif
 
 	CSVNMgr::GetInstance()->Load();

+ 2 - 2
SATHelper/SATHelper/UpgradeWnd.cpp

@@ -363,11 +363,11 @@ HBRUSH CUpgradeWnd::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
 	// TODO:  在此更改 DC 的任何特性
 	if (nCtlColor == CTLCOLOR_STATIC ) //静态文本颜色,并且指定控件ID号    && pWnd->GetDlgCtrlID() == IDC_STATIC   
 	{
-		pDC->SetTextColor(RGB(255, 0, 0));
+		//pDC->SetTextColor(RGB(255, 0, 0));
 		//pDC->SetBkColor(RGB(191,219,255));     //静态控件的背景颜色设置,红字蓝底。          
 		pDC->SetBkMode(TRANSPARENT);  //静态文本框背景设置为透明
 		HBRUSH brush;
-		brush = CreateSolidBrush(0xFFEFD5);//对话框的RGB值
+		brush = CreateSolidBrush(0xFFEFD5);//控件背景色
 		hbr = (HBRUSH)brush;
 	}
 

+ 9 - 1
ScbcCopyKey/ScbcCopyKey/OTA.cpp

@@ -26,7 +26,7 @@ static _SIACP_ g_Siacp[CMD_SIZE] = {
 	{"SetMAC", "AA", "B3", "", false, 100, 100},
 	{"SetHDCPKey", "AA FE", "86", "", false, 100, 100},
 	{"SetHDCPKey22", "AA FE", "E4", "", false, 100, 100},
-	{"SetNetflixESN", "AA", "99 00", "", false, 100, 100},
+	{"SetNetflixESN", "AA FE", "99 00", "", false, 100, 100},
 	{"SetWidi", "AA FE", "E4", "", false, 100, 100}, //Óëhdcp22ÏàָͬÁî
 	{"SetWidevine", "AA FE", "E9 00", "", false, 500,500},
 	{"SetCiKey", "AA FE", "E9 01", "", false, 500,500},
@@ -220,6 +220,13 @@ void CSIACP::ShowMessage(LPCTSTR lpMsg, LOG_ENUM logtype)
 
 void CSIACP::LoadCommand()
 {
+#if 1
+	g_vtSiacp.clear();
+	for ( int i = 0; i < CMD_SIZE; i++ )
+	{
+		g_vtSiacp.push_back(g_Siacp[i]);
+	}
+#else
 	// ½âÎöxml;
 	tinyxml2::XMLDocument doc;
 	if (tinyxml2::XML_SUCCESS != doc.LoadFile(_T("Siacp.xml")))
@@ -306,6 +313,7 @@ void CSIACP::LoadCommand()
 			}
 		}
 	}
+#endif
 }
 
 void CSIACP::SaveCommand(std::vector<_SIACP_> &vtSiacp, std::string path)

+ 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

+ 53 - 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,8 +284,15 @@ 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;
 	}
+
+#ifdef __CONSOLE__
+	printf("WriteFile Len=%d, Buffer=%s\n", nWriteSize, pWirteBuf);
+#endif
 	
 	DWORD dwErrorFlags;
 	DWORD dwBytesWritten = 0;	// 实际写入的字节数;
@@ -278,19 +306,31 @@ 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
+		}
 	}	
 
+
 	// 返回写入字节数;
 	return dwBytesWritten;
 }
@@ -302,6 +342,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 +358,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("ErroCode=%d, Len=%d, Buffer=%s \n\n", dwError, dwRealRead, pReadBuf);
+#endif
 			}
 		}
 	}
 
+#ifdef __CONSOLE__
+	printf("ReadFile Len=%d, Buffer=%s\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"

+ 36 - 24
crontask/dailybuild_rt2841_2851

@@ -1,44 +1,56 @@
 #!/bin/bash
+# 是否要重新下载;
+Redownload=$1
+if [ ! $Redownload ]; then
+    Redownload=false
+fi
+echo "Redownload=${Redownload}" 
 
 # 换服务器编译时,这里的PATH要以新服务器的环境变量重新配置
 export PATH=/opt/git-repo:/usr/lib/jvm/java-8-openjdk-amd64/bin:/home/wjf/.platformio/penv/bin:/home/wjf/.platformio/penv:/scbc_data/wjf/.vscode-server/bin/5763d909d5f12fe19f215cbfdd29a91c0fa9208a/bin:/opt/git-repo:/usr/lib/jvm/java-8-openjdk-amd64/bin:/home/wjf/.vscode-server/bin/5763d909d5f12fe19f215cbfdd29a91c0fa9208a/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
 
-
 # 删除目录;
 cd ~
-if [ -d "dailybuild" ]; then
-	rm -rf ~/dailybuild
-	echo "rm -rf ~/dailybuild finished"
+if [ $Redownload == true ]; then
+    if [ -d "dailybuild" ]; then
+        echo "rm -rf ~/dailybuild begin "$(date +"%Y-%m-%d %T")
+        rm -rf ~/dailybuild
+        echo "rm -rf ~/dailybuild finished "$(date +"%Y-%m-%d %T")
+    fi
+
+    # 创建目录;
+    mkdir dailybuild
+    echo "mkdir dailybuild finished "$(date +"%Y-%m-%d %T")
 fi
 
-# 创建目录;
-mkdir dailybuild
-echo "mkdir dailybuild finished"
-
 # 重新更新代码;
 cd ~/dailybuild/
 repo init -u ssh://10.126.16.60:29418/rt2841_manifest -m odin-gms.xml -b master
-echo "repo init dailybuild finished"
+echo "repo init dailybuild finished "$(date +"%Y-%m-%d %T")
 repo sync -j12
-echo "repo init dailybuild finished"
+echo "repo sync dailybuild finished "$(date +"%Y-%m-%d %T")
+
+if [ $Redownload == true ]; then
+    # 简单防止更新失败,再次重新;
+    echo "repo sync-2 dailybuild start "$(date +"%Y-%m-%d %T")
+    repo sync -j12
+    echo "repo sync-2 dailybuild finished "$(date +"%Y-%m-%d %T")
+fi
 
 # 编译2841主干代码;
-echo "Start: Daily build for RT2841 master branch"
+echo "Start: Daily build for RT2841 master branch "$(date +"%Y-%m-%d %T")
 cd ~/dailybuild/
-cp ~/crontask/dailybuild_rt2841_master.sh .
-./dailybuild_rt2841_master.sh
-echo "End: Daily build for RT2841 master branch"
+repo forall -c "pwd && git clean -xfd && git checkout -- ."
+rm -rf ~/dailybuild/kernel/android/pie/out
+./SCBC_build.sh true
+echo "End: Daily build for RT2841 master branch "$(date +"%Y-%m-%d %T")
 
 # 编译2851主干代码;
-echo "Start: Daily build for RT2851 master branch"
+echo "Start: Daily build for RT2851 master branch "$(date +"%Y-%m-%d %T")
 cd ~/dailybuild/
-cp ~/crontask/dailybuild_rt2851_master.sh .
-./dailybuild_rt2851_master.sh
-echo "End: Daily build for RT2851 master branch"
-
-#echo "generate the manifest for the current reversion"
-#var_d=`date '+%m%d%H'`
-#version="V$var_d"
-#repo manifest -r -o manifest-master-$version.xml
-#cp manifest-master-$version.xml /home/RT2841_2851_dailybuild/
+repo forall -c "pwd && git clean -xfd && git checkout -- ."
+rm -rf ~/dailybuild/kernel/android/pie/out
+./SCBC_build_4K_2851.sh true
+echo "End: Daily build for RT2851 master branch "$(date +"%Y-%m-%d %T")
 
+echo "all finished"