Browse Source

fix the MoveSEMToPoint logic bug(delay 1000ms every time and retry 10 times)

cxs 3 years ago
parent
commit
092907fbc4

+ 15 - 4
OTSCPP/OTSControl/OTSSemBase.cpp

@@ -30,10 +30,13 @@ namespace OTSController {
 		}
 
 		// attempt 1000 times until SEM in place
-		long nAttempTime = 1000;
+		long nAttempTime = 10;
 		double dSetPositionX = (double)a_poiPosition.x;
 		double dSetPositionY = (double)a_poiPosition.y;
 		double dSetPositionR = a_dRotation;
+
+		double dOriginalPositionX = 0.0;
+		double dOriginalPositionY = 0.0;
 		double dGetPositionX = 0.0;
 		double dGetPositionY = 0.0;
 		double dGetPositionR = 0.0;
@@ -44,7 +47,7 @@ namespace OTSController {
 		{
 			// not allow to rotation
 			// get SEM position
-			if (!GetPositionXY(dGetPositionX, dGetPositionY, dGetPositionR))
+			if (!GetPositionXY(dOriginalPositionX, dOriginalPositionY, dGetPositionR))
 			{
 				// failed to call GetPositionXY method
 				LogErrorTrace(__FILE__, __LINE__, "COTSSemBase::MoveSEMToPoint: failed to call GetPositionXY method.");
@@ -73,9 +76,17 @@ namespace OTSController {
 				--nAttempTime;
 				continue;
 			}
-			else
+			
+			LogTrace(__FILE__, __LINE__, _T("COTSSemBase::MoveSEMToPoint: call GetPositionXY method%0.3f, %0.3f, %0.3f"), dGetPositionX, dGetPositionY, dGetPositionR);
+			if (dGetPositionX == dOriginalPositionX && dGetPositionY == dOriginalPositionY)
 			{
-				LogTrace(__FILE__, __LINE__, _T("COTSSemBase::MoveSEMToPoint: call GetPositionXY method------------%0.3f, %0.3f, %0.3f"), dGetPositionX, dGetPositionY, dGetPositionR);
+				// Move SEM to position
+				if (!SetPositionXY(dSetPositionX, dSetPositionY, dSetPositionR))
+				{
+					LogErrorTrace(__FILE__, __LINE__, "COTSSemBase::MoveSEMToPoint: failed to call SetPositionXY method.");
+				}
+				Sleep(2000);
+
 			}
 			
 

+ 1 - 1
OTSCPP/OTSControl/Oxford/OTSSEMOxford.cpp

@@ -140,7 +140,7 @@ namespace OTSController {
 			// OK, return TRUE
 			return TRUE;
 		}
-
+		LogTrace(__FILE__, __LINE__, _T("setpostionxy %f,  %f"), a_dPositionX, a_dPositionY);
 		return TRUE;
 	}
 

+ 3 - 2
OTSCPP/OTSLog/OTSLog.vcxproj

@@ -126,7 +126,7 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
     <OutDir>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</OutDir>
-    <IncludePath>$(SolutionDir)Tools;$(SolutionDir)OTSData;$(IncludePath)</IncludePath>
+    <IncludePath>$(SolutionDir)Tools;$(IncludePath)</IncludePath>
     <IntDir>$(SolutionDir)\Obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_oxford50|x64'">
@@ -213,7 +213,8 @@
       <SubSystem>Windows</SubSystem>
       <ModuleDefinitionFile>.\OTSLog.def</ModuleDefinitionFile>
       <AdditionalLibraryDirectories>$(SolutionDir)\Bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
-      <AdditionalDependencies>OTSData.lib</AdditionalDependencies>
+      <AdditionalDependencies>
+      </AdditionalDependencies>
     </Link>
     <Midl>
       <MkTypLibCompatible>false</MkTypLibCompatible>