Browse Source

fix merging

researchman 7 years ago
parent
commit
7e875a21c3
10 changed files with 1586 additions and 798 deletions
  1. 12 6
      MysqlConnPool.cpp
  2. 9 7
      YAServer.vcxproj
  3. 379 117
      YAServer.vcxproj.filters
  4. 855 524
      YAServerDlg.cpp
  5. 1 0
      YAServerDlg.h
  6. 296 130
      classdef.cpp
  7. 26 4
      classdef.h
  8. 4 2
      constdef.h
  9. 0 2
      mylog/MyLog.cpp
  10. 4 6
      mylog/MyLog.h

+ 12 - 6
MysqlConnPool.cpp

@@ -271,18 +271,24 @@ CMysqlConn::CMysqlConn( const char *option, const char *host, const char *user,
 	m_bOpen = false;
 
 	m_pConn = mysql_init(NULL);
-
-	if( 0 == SetOption())
+	//if(NULL == m_pConn)
 	{
-		if(0 == Open())
+		if( 0 == SetOption())
 		{
-			state = true;
+			if(0 == Open())
+			{
+				state = true;
+			}else{
+				state = false;
+			}
 		}else{
 			state = false;
 		}
-	}else{
-		state = false;
 	}
+	//else
+	//{
+	//	state = false;
+	//}
 }
 
 CMysqlConn::~CMysqlConn()

+ 9 - 7
YAServer.vcxproj

@@ -77,7 +77,7 @@
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\common\json;..\thirdparty\eigen;F:\xt\boost;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\common\json;..\thirdparty\eigen;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
     </ClCompile>
@@ -85,7 +85,7 @@
       <SubSystem>Windows</SubSystem>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>$(OutDir)\..\Symbol\$(TargetName).pdb</ProgramDatabaseFile>
-      <AdditionalLibraryDirectories>..\lib\$(Configuration)\;..\thirdparty\lib\mysql\;F:\xt\boost\boost_1_64_0\bin\vc11\lib</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>..\lib\$(Configuration)\;..\thirdparty\lib\mysql\</AdditionalLibraryDirectories>
       <AdditionalDependencies>jsoncpp_110.lib;libmysql.lib;libboost_system-vc110-mt-gd-$(BOOSTVERSION).lib;libboost_date_time-vc110-mt-gd-$(BOOSTVERSION).lib;libboost_random-vc110-mt-gd-$(BOOSTVERSION).lib;log4cppD.lib</AdditionalDependencies>
     </Link>
     <Midl>
@@ -99,8 +99,7 @@
       <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <PostBuildEvent>
-      <Command>
-      </Command>
+      <Command>xcopy "$(SolutionDir)..\..\output\$(Configuration)\bin\YAServer.exe" "D:\0a-share\$(Configuration)\" /Y /C /D /S</Command>
     </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -179,7 +178,6 @@ xcopy "$(SolutionDir)..\config.ini" "D:\0a-share\$(Configuration)\" /Y /C /D /S<
     <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\internal\sio_packet.h" />
     <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\sio_client.h" />
     <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\sio_socket.h" />
-    <ClInclude Include="algorithm\cell\cell_struct.h" />
     <ClInclude Include="algorithm\Fit.h" />
     <ClInclude Include="algorithm\FittingPosition.h" />
     <ClInclude Include="classdef.h" />
@@ -259,8 +257,9 @@ xcopy "$(SolutionDir)..\config.ini" "D:\0a-share\$(Configuration)\" /Y /C /D /S<
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
     </ClCompile>
     <ClCompile Include="algorithm\FittingPosition.cpp" />
-    <ClCompile Include="classdef.cpp" />
-    <ClCompile Include="YAServerDlg.cpp" />
+    <ClCompile Include="classdef.cpp">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Use</PrecompiledHeader>
+    </ClCompile>
     <ClInclude Include="locate_algorithm.h">
       <FileType>CppCode</FileType>
     </ClInclude>
@@ -316,6 +315,9 @@ xcopy "$(SolutionDir)..\config.ini" "D:\0a-share\$(Configuration)\" /Y /C /D /S<
     <ClCompile Include="YAServer.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Use</PrecompiledHeader>
     </ClCompile>
+    <ClCompile Include="YAServerDlg.cpp">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Use</PrecompiledHeader>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="YAServer.rc" />

+ 379 - 117
YAServer.vcxproj.filters

@@ -1,120 +1,322 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
-    <ClCompile Include="..\common\Functions\deca_range_optimize.cpp" />
-    <ClCompile Include="..\common\Functions\Functions.cpp" />
-    <ClCompile Include="..\common\kalman\locate.cpp" />
-    <ClCompile Include="..\common\kalman\Smoother.cpp" />
-    <ClCompile Include="..\common\matrix\_Matrix.cpp" />
-    <ClCompile Include="..\common\ReportCtrl\ReportCtrl.cpp" />
-    <ClCompile Include="..\common\strconv\strconv.cpp" />
-    <ClCompile Include="..\thirdparty\include\iocp\common\Src\bufferpool.cpp" />
-    <ClCompile Include="..\thirdparty\include\iocp\common\Src\RWLock.cpp" />
-    <ClCompile Include="..\thirdparty\include\iocp\common\Src\SysHelper.cpp" />
-    <ClCompile Include="..\thirdparty\include\iocp\common\Src\WaitFor.cpp" />
-    <ClCompile Include="..\thirdparty\include\iocp\Global\helper.cpp" />
-    <ClCompile Include="..\thirdparty\include\iocp\Src\SocketHelper.cpp" />
-    <ClCompile Include="..\thirdparty\include\iocp\Src\TcpServer.cpp" />
-    <ClCompile Include="..\thirdparty\include\socket.io-client-cpp\src\internal\sio_client_impl.cpp" />
-    <ClCompile Include="..\thirdparty\include\socket.io-client-cpp\src\internal\sio_packet.cpp" />
-    <ClCompile Include="..\thirdparty\include\socket.io-client-cpp\src\sio_client.cpp" />
-    <ClCompile Include="..\thirdparty\include\socket.io-client-cpp\src\sio_socket.cpp" />
-    <ClCompile Include="algorithm\FittingPosition.cpp" />
-    <ClCompile Include="YAServerDlg.cpp" />
-    <ClCompile Include="CSVparser\CSVparser.cpp" />
-    <ClCompile Include="DbSettingDlg.cpp" />
-    <ClCompile Include="debug_server\debug_server_socket.cpp" />
-    <ClCompile Include="Filter\KalmanFilter.cpp" />
-    <ClCompile Include="KNN\KNN.cpp" />
-    <ClCompile Include="locate_algorithm.cpp" />
-    <ClCompile Include="LogSetting.cpp" />
-    <ClCompile Include="log_process_module.cpp" />
-    <ClCompile Include="minidump.cpp" />
-    <ClCompile Include="mylog\log_module.cpp" />
-    <ClCompile Include="mylog\MyLog.cpp" />
-    <ClCompile Include="MysqlConnPool.cpp" />
-    <ClCompile Include="ProcessRemodule.cpp" />
-    <ClCompile Include="QueueStrManager.cpp" />
-    <ClCompile Include="stdafx.cpp" />
-    <ClCompile Include="SyncTime\SyncHelper.cpp" />
-    <ClCompile Include="SyncTime\SyncManager.cpp" />
-    <ClCompile Include="SysSetting.cpp" />
-    <ClCompile Include="system_basic_info\SystemAnalysis.cpp" />
-    <ClCompile Include="YAServer.cpp" />
-    <ClCompile Include="classdef.cpp" />
+    <ClCompile Include="..\common\kalman\locate.cpp">
+      <Filter>algorithm</Filter>
+    </ClCompile>
+    <ClCompile Include="locate_algorithm.cpp">
+      <Filter>algorithm</Filter>
+    </ClCompile>
+    <ClCompile Include="..\common\kalman\Smoother.cpp">
+      <Filter>algorithm</Filter>
+    </ClCompile>
+    <ClCompile Include="..\common\Functions\deca_range_optimize.cpp">
+      <Filter>function</Filter>
+    </ClCompile>
+    <ClCompile Include="..\common\Functions\Functions.cpp">
+      <Filter>function</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\iocp\Global\helper.cpp">
+      <Filter>hp-socket\global</Filter>
+    </ClCompile>
+    <ClCompile Include="MysqlConnPool.cpp">
+      <Filter>mysql</Filter>
+    </ClCompile>
+    <ClCompile Include="..\common\ReportCtrl\ReportCtrl.cpp">
+      <Filter>rpt</Filter>
+    </ClCompile>
+    <ClCompile Include="..\common\strconv\strconv.cpp">
+      <Filter>strconv</Filter>
+    </ClCompile>
+    <ClCompile Include="SyncTime\SyncHelper.cpp">
+      <Filter>synctime</Filter>
+    </ClCompile>
+    <ClCompile Include="SyncTime\SyncManager.cpp">
+      <Filter>synctime</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\socket.io-client-cpp\src\sio_client.cpp">
+      <Filter>websocket</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\socket.io-client-cpp\src\internal\sio_client_impl.cpp">
+      <Filter>websocket</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\socket.io-client-cpp\src\internal\sio_packet.cpp">
+      <Filter>websocket</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\socket.io-client-cpp\src\sio_socket.cpp">
+      <Filter>websocket</Filter>
+    </ClCompile>
+    <ClCompile Include="Filter\KalmanFilter.cpp">
+      <Filter>Filter</Filter>
+    </ClCompile>
+    <ClCompile Include="classdef.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="DbSettingDlg.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="LogSetting.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="stdafx.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="SysSetting.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="YAServer.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="YAServerDlg.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="..\common\matrix\_Matrix.cpp">
+      <Filter>algorithm</Filter>
+    </ClCompile>
+    <ClCompile Include="minidump.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="QueueStrManager.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\iocp\common\Src\bufferpool.cpp">
+      <Filter>hp-socket\common</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\iocp\common\Src\RWLock.cpp">
+      <Filter>hp-socket\common</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\iocp\common\Src\SysHelper.cpp">
+      <Filter>hp-socket\common</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\iocp\common\Src\WaitFor.cpp">
+      <Filter>hp-socket\common</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\iocp\Src\SocketHelper.cpp">
+      <Filter>hp-socket\socket</Filter>
+    </ClCompile>
+    <ClCompile Include="..\thirdparty\include\iocp\Src\TcpServer.cpp">
+      <Filter>hp-socket\socket</Filter>
+    </ClCompile>
+    <ClCompile Include="log_process_module.cpp">
+      <Filter>process</Filter>
+    </ClCompile>
+    <ClCompile Include="ProcessRemodule.cpp">
+      <Filter>process</Filter>
+    </ClCompile>
+    <ClCompile Include="debug_server\debug_server_socket.cpp">
+      <Filter>debug_server</Filter>
+    </ClCompile>
+    <ClCompile Include="system_basic_info\SystemAnalysis.cpp">
+      <Filter>system_basic_info</Filter>
+    </ClCompile>
+    <ClCompile Include="CSVparser\CSVparser.cpp">
+      <Filter>CSVparser</Filter>
+    </ClCompile>
+    <ClCompile Include="KNN\KNN.cpp">
+      <Filter>KNN</Filter>
+    </ClCompile>
+    <ClCompile Include="algorithm\FittingPosition.cpp">
+      <Filter>algorithm</Filter>
+    </ClCompile>
+    <ClCompile Include="mylog\log_module.cpp">
+      <Filter>mylog</Filter>
+    </ClCompile>
+    <ClCompile Include="mylog\MyLog.cpp">
+      <Filter>mylog</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\common\def_msg.h" />
-    <ClInclude Include="..\common\Functions\deca_range_optimize.h" />
-    <ClInclude Include="..\common\Functions\Functions.h" />
-    <ClInclude Include="..\common\json\json.h" />
-    <ClInclude Include="..\common\kalman\locate.h" />
-    <ClInclude Include="..\common\matrix\BaseMatrix.h" />
-    <ClInclude Include="..\common\matrix\_Matrix.h" />
-    <ClInclude Include="..\common\ReportCtrl\ReportCtrl.h" />
-    <ClInclude Include="..\common\strconv\strconv.h" />
-    <ClInclude Include="..\common\structdef.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\bufferpool.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\bufferptr.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\CriticalSection.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\Event.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\GeneralHelper.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\PrivateHeap.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\RWLock.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\Semaphore.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\Singleton.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\STLHelper.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\SysHelper.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\WaitFor.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\common\Src\Win32Helper.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\Global\helper.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\Src\SocketHelper.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\Src\SocketInterface.h" />
-    <ClInclude Include="..\thirdparty\include\iocp\Src\TcpServer.h" />
-    <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\internal\sio_client_impl.h" />
-    <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\internal\sio_packet.h" />
-    <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\sio_client.h" />
-    <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\sio_socket.h" />
-    <ClInclude Include="algorithm\cell\cell_struct.h" />
-    <ClInclude Include="algorithm\Fit.h" />
-    <ClInclude Include="algorithm\FittingPosition.h" />
-    <ClInclude Include="classdef.h" />
-    <ClInclude Include="constdef.h" />
-    <ClInclude Include="CSVparser\CSVparser.h" />
-    <ClInclude Include="DbSettingDlg.h" />
-    <ClInclude Include="debug_server\debug_server_socket.h" />
-    <ClInclude Include="def.h" />
-    <ClInclude Include="Filter\KalmanFilter.h" />
-    <ClInclude Include="KNN\KNN.h" />
-    <ClInclude Include="LocateRecord.h" />
-<<<<<<< HEAD
-    <ClInclude Include="LogSetting.h" />
-    <ClInclude Include="log_def.h" />
-    <ClInclude Include="log_process_module.h" />
-    <ClInclude Include="minidupm.h" />
-    <ClInclude Include="mylog\ExRollingFileAppender.h" />
-    <ClInclude Include="mylog\log_module.h" />
-    <ClInclude Include="mylog\MyLog.h" />
-    <ClInclude Include="MysqlConnPool.h" />
-    <ClInclude Include="ProcessRemodule.h" />
-    <ClInclude Include="QueueStrManager.h" />
-    <ClInclude Include="Resource.h" />
-    <ClInclude Include="stdafx.h" />
-    <ClInclude Include="SyncTime\Common.h" />
-    <ClInclude Include="SyncTime\SyncHelper.h" />
-    <ClInclude Include="SyncTime\SyncManager.h" />
-    <ClInclude Include="SyncTime\Position.h" />
-    <ClInclude Include="SyncTime\SyncTime.h" />
-    <ClInclude Include="SyncTime\SyncTimeMsg.h" />
-    <ClInclude Include="SyncTime\TagMsg.h" />
-    <ClInclude Include="SysSetting.h" />
-    <ClInclude Include="system_basic_info\SystemAnalysis.h" />
-    <ClInclude Include="targetver.h" />
+    <ClInclude Include="..\common\matrix\BaseMatrix.h">
+      <Filter>algorithm</Filter>
+    </ClInclude>
+    <ClInclude Include="..\common\kalman\locate.h">
+      <Filter>algorithm</Filter>
+    </ClInclude>
+    <ClInclude Include="locate_algorithm.h">
+      <Filter>algorithm</Filter>
+    </ClInclude>
+    <ClInclude Include="..\common\Functions\deca_range_optimize.h">
+      <Filter>function</Filter>
+    </ClInclude>
+    <ClInclude Include="..\common\Functions\Functions.h">
+      <Filter>function</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\Global\helper.h">
+      <Filter>hp-socket\global</Filter>
+    </ClInclude>
+    <ClInclude Include="MysqlConnPool.h">
+      <Filter>mysql</Filter>
+    </ClInclude>
+    <ClInclude Include="..\common\ReportCtrl\ReportCtrl.h">
+      <Filter>rpt</Filter>
+    </ClInclude>
+    <ClInclude Include="..\common\strconv\strconv.h">
+      <Filter>strconv</Filter>
+    </ClInclude>
+    <ClInclude Include="SyncTime\Common.h">
+      <Filter>synctime</Filter>
+    </ClInclude>
+    <ClInclude Include="SyncTime\Position.h">
+      <Filter>synctime</Filter>
+    </ClInclude>
+    <ClInclude Include="SyncTime\SyncHelper.h">
+      <Filter>synctime</Filter>
+    </ClInclude>
+    <ClInclude Include="SyncTime\SyncManager.h">
+      <Filter>synctime</Filter>
+    </ClInclude>
+    <ClInclude Include="SyncTime\SyncTime.h">
+      <Filter>synctime</Filter>
+    </ClInclude>
+    <ClInclude Include="SyncTime\SyncTimeMsg.h">
+      <Filter>synctime</Filter>
+    </ClInclude>
+    <ClInclude Include="SyncTime\TagMsg.h">
+      <Filter>synctime</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\sio_client.h">
+      <Filter>websocket</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\internal\sio_client_impl.h">
+      <Filter>websocket</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\internal\sio_packet.h">
+      <Filter>websocket</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\socket.io-client-cpp\src\sio_socket.h">
+      <Filter>websocket</Filter>
+    </ClInclude>
+    <ClInclude Include="Filter\KalmanFilter.h">
+      <Filter>Filter</Filter>
+    </ClInclude>
+    <ClInclude Include="classdef.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="constdef.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="DbSettingDlg.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="def.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="..\common\json\json.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="log_def.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="LogSetting.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="Resource.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="stdafx.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="..\common\structdef.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="SysSetting.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="targetver.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="YAServer.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="YAServerDlg.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="..\common\def_msg.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\GeneralHelper.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\Src\SocketInterface.h">
+      <Filter>hp-socket\socket</Filter>
+    </ClInclude>
+    <ClInclude Include="..\common\matrix\_Matrix.h">
+      <Filter>algorithm</Filter>
+    </ClInclude>
+    <ClInclude Include="minidupm.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="QueueStrManager.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\bufferpool.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\bufferptr.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\CriticalSection.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\Event.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\PrivateHeap.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\RWLock.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\Semaphore.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\Singleton.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\STLHelper.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\SysHelper.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\WaitFor.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\common\Src\Win32Helper.h">
+      <Filter>hp-socket\common</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\Src\SocketHelper.h">
+      <Filter>hp-socket\socket</Filter>
+    </ClInclude>
+    <ClInclude Include="..\thirdparty\include\iocp\Src\TcpServer.h">
+      <Filter>hp-socket\socket</Filter>
+    </ClInclude>
+    <ClInclude Include="log_process_module.h">
+      <Filter>process</Filter>
+    </ClInclude>
+    <ClInclude Include="ProcessRemodule.h">
+      <Filter>process</Filter>
+    </ClInclude>
+    <ClInclude Include="debug_server\debug_server_socket.h">
+      <Filter>debug_server</Filter>
+    </ClInclude>
+    <ClInclude Include="system_basic_info\SystemAnalysis.h">
+      <Filter>system_basic_info</Filter>
+    </ClInclude>
     <ClInclude Include="uwb_msg_def.h" />
-    <ClInclude Include="YAServer.h" />
-    <ClInclude Include="YAServerDlg.h" />
-    <ClInclude Include="locate_algorithm.h" />
-=======
+    <ClInclude Include="CSVparser\CSVparser.h">
+      <Filter>CSVparser</Filter>
+    </ClInclude>
+    <ClInclude Include="KNN\KNN.h">
+      <Filter>KNN</Filter>
+    </ClInclude>
+    <ClInclude Include="algorithm\FittingPosition.h">
+      <Filter>algorithm</Filter>
+    </ClInclude>
+    <ClInclude Include="algorithm\Fit.h">
+      <Filter>algorithm</Filter>
+    </ClInclude>
+    <ClInclude Include="LocateRecord.h" />
     <ClInclude Include="mylog\ExRollingFileAppender.h">
       <Filter>mylog</Filter>
     </ClInclude>
@@ -134,15 +336,75 @@
       <Filter>资源文件</Filter>
     </None>
     <None Include="config.ini" />
->>>>>>> newprotocal
   </ItemGroup>
   <ItemGroup>
-    <ResourceCompile Include="YAServer.rc" />
+    <Filter Include="algorithm">
+      <UniqueIdentifier>{a44759fe-7511-418f-a575-db3828a210c7}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="function">
+      <UniqueIdentifier>{836c6f6f-2230-4c5b-af40-c3dd999d86f7}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="hp-socket">
+      <UniqueIdentifier>{8ab5363f-8bca-43e4-9249-8c69162a7d3b}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="hp-socket\common">
+      <UniqueIdentifier>{7bf297e4-356e-455d-846a-3db7634a2d2f}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="hp-socket\global">
+      <UniqueIdentifier>{eeb37d8c-e8f9-4d71-94cb-6a322fe8a3b2}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="hp-socket\socket">
+      <UniqueIdentifier>{04e897f5-3578-4355-a805-777469371406}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="mysql">
+      <UniqueIdentifier>{95f6bdc6-2f1d-49e1-8167-f1ed8ae02ef1}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="rpt">
+      <UniqueIdentifier>{1621bd29-ff6b-4de2-8182-41386d4f0fba}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="strconv">
+      <UniqueIdentifier>{2afdd09a-a46a-4a6a-9195-b05db9122476}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="synctime">
+      <UniqueIdentifier>{df994534-12eb-40c2-931a-beafcb88c681}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="websocket">
+      <UniqueIdentifier>{dd102663-071c-4ad5-afc8-00e367b65f35}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Filter">
+      <UniqueIdentifier>{51c50699-3893-4a31-8ec1-322089334141}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="头文件">
+      <UniqueIdentifier>{7a58a06b-e4b8-4483-baa3-b239f1f6ab8d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="源文件">
+      <UniqueIdentifier>{56bd09d4-595e-4f32-8e5d-7c1a610c11d8}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="资源文件">
+      <UniqueIdentifier>{68e7b8b0-a5b1-4903-b17c-c72725ba9ffa}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="process">
+      <UniqueIdentifier>{7878fc4f-5622-49b0-b20f-43c04a71651a}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="debug_server">
+      <UniqueIdentifier>{3af2e7b9-7799-4c69-bf36-9d1375145e86}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="system_basic_info">
+      <UniqueIdentifier>{dbd9d95d-a924-4777-9b9b-47465f33f304}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="CSVparser">
+      <UniqueIdentifier>{e8c504b0-6168-46d1-960e-7ff86dd6ae31}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="KNN">
+      <UniqueIdentifier>{d62bd4f8-de16-4c89-84c1-91f8b5423d78}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="mylog">
+      <UniqueIdentifier>{b7ddd49d-f63e-4131-91d5-4079ee424ef7}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
-    <None Include="..\config.ini" />
-    <None Include="ReadMe.txt" />
-    <None Include="res\YAServer.ico" />
-    <None Include="res\YAServer.rc2" />
+    <ResourceCompile Include="YAServer.rc">
+      <Filter>资源文件</Filter>
+    </ResourceCompile>
   </ItemGroup>
 </Project>

File diff suppressed because it is too large
+ 855 - 524
YAServerDlg.cpp


+ 1 - 0
YAServerDlg.h

@@ -545,6 +545,7 @@ public:
 	void send_sync_reader();
 	int send_heart_package();
 	void clear_call_info();
+	void clear_call_card_by_user(std::string user_name);
 	int get_card_id_len(int card_type);
 	int modify_card_speed(int val);
 

+ 296 - 130
classdef.cpp

@@ -68,7 +68,7 @@ Card::Card( string cardid, int cardtype, double z_offset)
 
 	sync_num = 0;
 
-	isdealed = isreceive = is_pos_changed = is_hist = is_need_cal = false;
+	isdealed = isreceive = is_hist = is_need_cal = false;
 	is_area_over_time = is_mine_over_time = false;
 	id = 0;
 	driver_id = "";
@@ -176,6 +176,10 @@ Card::Card( string cardid, int cardtype, double z_offset)
 	delta_ct = 0;
 
 	time_last_tof = time(NULL);
+	m_drivingface_start_x = 0;
+	m_drivingface_start_y = 0;
+	m_drivingface_start_z = 0;
+	m_drivingface_start_time.clear();
 }
 
 Card::Card( void )
@@ -184,16 +188,141 @@ Card::Card( void )
 {
 	m_warning_point_id = -1;
 }
+void Card::resetAllBaseInfo()
+{
+
+		::GetLocalTime(&deal_time);
+		::GetLocalTime(&enter_area_time);
+		down_time = up_time  = enter_reader_time = rec_time = time(NULL);
+		time_over_time = time_area_over_time = time_area_forbidden = time_over_speed = time_low_power = time(NULL);
+		last_locate_time = time(NULL);
+		//坐标初始值为0
+		//x =	y = z = stored_x = stored_y = stored_z = 0;
+		x =	y = z = stored_x = stored_y = stored_z = INVALID_COORDINATE;
+
+		output_x = output_y = 0;
+		a = 0;
+		t = 0;
+		init_postion = false;
+		is_first_location = true;
+		is_algo_first_location = true;
+		b_pos_change = false;
+		is_idling = false;
+		idle_count = 0;
+		is_driving_face_start = 0;
+		right_x = right_y = right_z = left_x = left_y = left_z = 0;
+		m_nMoveDirection = 0;
+
+		map_id = map_id_old = area_id = reader_id = 0;
+		map_scale = 1.0;
+		state = 0;
+		state_moving = 0;
+		state_biz = 0;
+		pos_state = pos_state_old = PDT_INIT;
+		pos_state_count = 0;
+		pos_state_confirm_times = 1;
+		dept_id = group_id = occlevel_id = level_id = worktype_id = vehice_type_id = 0;
+		power_state = power_state_last = 0;
+
+		status_help = status_area_over_time = status_area_forbidden = status_area_over_speed = 0;
+		status_over_speed = status_over_time = status_power = status_lost = status_call = 0;
+
+		sync_num = 0;
+
+		isdealed = isreceive = is_hist = is_need_cal = false;
+		is_area_over_time = is_mine_over_time = false;
+		//id = 0;
+		driver_id = "";
+		//shift_type_id = 1; 
+
+		reader_tickcount = time_stamp;
+		time_stamp_last = -1;
+
+		//p_dists_locate = new _coordinate*[DIST_COUNT];
+		time_stamp_max = 0;
+		for(int i = 0; i < DIST_COUNT; i++){
+			p_dists_locate[i] = NULL;
+		}
+		is_registered = true;
+		is_deal_by_algo = false;
+		//pTofReaderPathMap = NULL;
+		//pTdoaReaderPathMap = NULL;
+		last_s_locate_reader[0] = last_s_locate_reader[1] = -1;
+		m_syncNumList.clear();
+
+		m_nCalcSyncNum = 0;
+		m_nSyncNumInList = 0;
+		last_locate.tt = 0;
+		last_locate.a = last_locate.antenna_id = last_locate.reader_id = last_locate.t = 0;
+		last_locate.d = last_locate.d_offset = last_locate.v = 0.0;
+		last_locate.x = last_locate.y = last_locate.z = INVALID_COORDINATE;
+		last_x = last_y = last_z = INVALID_COORDINATE;
+		this->driving_face_cur_shift_start_x = this->driving_face_cur_shift_start_y = this->driving_face_cur_shift_start_z= this->driving_face_cur_shift_x= this->driving_face_cur_shift_y=this->driving_face_cur_shift_z = 0;
+
+		locate = nullptr;
+
+		m_bUseFilter = false;
+		m_nFilterType = NO_FILTER;
+		m_pKalmanFilter = nullptr;
+		m_nLastLocateT = 0;
+		origin_locate.x = origin_locate.y = origin_locate.z = origin_locate.v = 0.0;
+		last_vx = last_vy = 0.0;
+		v = 0.0;
+		ins_weight = INS_WEIGHT;
+		uwb_weight = UWB_WEIGHT;
+		acce_cur_state = 0;
+		acce_last_state = 0;
+		b_long_interval = false;
+		accelerate_state = accelerate_state_last = ACCELERATE_INIT_STATE;	//默认初始的为-10
+		ins_direction = 0;
+		direction = 0;
+		antenna_angle = 0;
+
+		m_nLightGroupId = -1;	//默认为没控制灯组
+		b_enter_intersection = false;
+		is_red_light = false;
+		light_id = 0;
+		time_red_light = time(NULL);
+		m_nOutputPosState = OUTPUT_POS::RIGHT_POS;
+		m_nIsRailroad = 0;
+		mileage = 0;
+		diff_direction_counts = 0;
+		m_nStream = INIT_STREAM;
+
+		for(int i = 0; i < CARD_EVENT_COUNT; i++){
+			m_event_list[i] = 0;
+		}
+
+		p_reader = nullptr;
+
+		_dists.swap(DistQueMap());
+		vt_his_speed.resize(0);
+		his_pos.resize(0);
+		is_ref_pos = false;
+		cur_fit_nums = 0;
+		have_fit_pos = false;
+		have_long_fit_pos = false;
+		count_idle = 0;
+		count_change_direction = 0;
+
+		call_type = 0;
+		vt_deal_call_reader_id.resize(0);
+		recv_call_time = time(NULL);
+
+		landmark_id = 0;
+		landmark_dis = 0;
+		landmark_direction = NODIRECTORY;
+
+		drive_face_location_write_time = 0;
+		idle_pos_list.resize(0);
+		time_last_tof = time(NULL);
+
+		m_drivingface_start_x = 0;
+		m_drivingface_start_y = 0;
+		m_drivingface_start_z = 0;
+		m_drivingface_start_time.clear();
+}
 
-/*
- * 重置算法相关参数的数据
- *
- * param
- *		无
- *
- * return
- *		无
-*/
 void Card::reset()
 {
 	//以下参数与算法相关
@@ -503,95 +632,96 @@ int Card::algo_tof_1d(int cnt)
 		}
 	}
 
-	//定位数据不够
+	std::shared_ptr<POS> p = nullptr;
 	if (tmp_dists_locate.size() < 2)
 	{
-		return 1;
-	}
-
-	TOF_REFER_DATA refer_data;
-	it = tmp_dists_locate.find(key);
-	if (it != tmp_dists_locate.end())
-	{
-		refer_data.nCardTimeStamp = it->second->t;
-		refer_data.llDeltaTime = 0;
-		refer_data.nReaderId = it->second->reader_id;
-		refer_data.nAntennaIndex = it->second->antenna_id;
-		refer_data.dDistance = it->second->d;
-		refer_data.x = it->second->x;
-		refer_data.y = it->second->y;
-		refer_data.z = it->second->z;
-		refer_data.a = it->second->a;
-	}
-
-	std::shared_ptr<POS> p = nullptr;
-	std::shared_ptr<POS> tmpPos = std::make_shared<POS>();
-
-	std::advance(it,1);
-	i = 1;
-	bool isExist = false;
-	int nReaderId = 0;			//分站id
-	int nAntennaIndex = 0;		//天线索引
-	double dist = 0.0;			//距离
-
-	//保存所有定位结果
-	std::vector<std::shared_ptr<POS>> udm_pos;
-	udm_pos.resize(0);
-
-	for(it = tmp_dists_locate.begin();it != tmp_dists_locate.end();++it,i++){
-		nReaderId = it->second->reader_id;
-		nAntennaIndex = it->second->antenna_id;
-		dist = it->second->d;
-
-		//如果为参考分站,则不计算,直接寻找下一个数据
-		if (nReaderId == refer_data.nReaderId && nAntennaIndex == refer_data.nAntennaIndex && abs(dist - refer_data.dDistance) < ZERO_PRECISION)
+		if (tmp_dists_locate.size() == 1)
 		{
-			continue;
-		}
-		
-		//计算定位结果
-		p = LocateAlgorithm::Pos(pTofReaderPathMap,nReaderId,nAntennaIndex,dist,refer_data);
-
-		if(p == nullptr || !CheckPositionValid(p))
-		{
-			continue;
+			//根据一条距离来进行测试
+		}else{
+			return 1;
 		}
-		isExist = true;
-		udm_pos.push_back(p);
-	}
-	//如果不存在解,直接返回
-	if (!isExist)
-	{
-		return 1;
 	}else{
-		//对多解求平均
-		double posx = 0;
-		double posy = 0;
-		double posz = 0;
-
-		//选取误差最小的解
-		double range = 999999.0;
-		for (std::vector<std::shared_ptr<POS>>::iterator it_pos = udm_pos.begin();it_pos != udm_pos.end();++it_pos)
+		//如果数据条数大于2,走如下逻辑
+		//数据条数大于2,会存在如下异常:即t时刻,天线距离 a<b,t+1时刻,天线距离 a>b 导致无法定位
+		TOF_REFER_DATA refer_data;
+		it = tmp_dists_locate.find(key);
+		if (it != tmp_dists_locate.end())
 		{
-			if((*it_pos)->pos_radius < range){
-				range = (*it_pos)->pos_radius;
-				posx = (*it_pos)->posx;
-				posy = (*it_pos)->posy;
-				posz = (*it_pos)->posz;
+			refer_data.nCardTimeStamp = it->second->t;
+			refer_data.llDeltaTime = 0;
+			refer_data.nReaderId = it->second->reader_id;
+			refer_data.nAntennaIndex = it->second->antenna_id;
+			refer_data.dDistance = it->second->d;
+			refer_data.x = it->second->x;
+			refer_data.y = it->second->y;
+			refer_data.z = it->second->z;
+			refer_data.a = it->second->a;
+		}
+
+		std::shared_ptr<POS> tmpPos = std::make_shared<POS>();
+
+		std::advance(it,1);
+		i = 1;
+		bool isExist = false;
+		int nReaderId = 0;			//分站id
+		int nAntennaIndex = 0;		//天线索引
+		double dist = 0.0;			//距离
+
+		//保存所有定位结果
+		std::vector<std::shared_ptr<POS>> udm_pos;
+		udm_pos.resize(0);
+
+		for(it = tmp_dists_locate.begin();it != tmp_dists_locate.end();++it,i++){
+			nReaderId = it->second->reader_id;
+			nAntennaIndex = it->second->antenna_id;
+			dist = it->second->d;
+
+			//如果为参考分站,则不计算,直接寻找下一个数据
+			if (nReaderId == refer_data.nReaderId && nAntennaIndex == refer_data.nAntennaIndex && abs(dist - refer_data.dDistance) < ZERO_PRECISION)
+			{
+				continue;
 			}
-		}
 
-		p->posx = posx;
-		p->posy = posy;
-		p->posz = posz;
-		p->cx = p->posx/map_scale;
-		p->cy = p->posy/map_scale;
-		p->cz = p->posz/map_scale;
-	}
+			//计算定位结果
+			p = LocateAlgorithm::Pos(pTofReaderPathMap,nReaderId,nAntennaIndex,dist,refer_data);
 
-	if (CheckPositionValid(p))
-	{
-		p->delta_time = refer_data.nCardTimeStamp - this->t;
+			if(p == nullptr || !CheckPositionValid(p))
+			{
+				continue;
+			}
+			isExist = true;
+			udm_pos.push_back(p);
+		}
+		//如果不存在解,直接返回
+		if (!isExist)
+		{
+			return 1;
+		}else{
+			//对多解求平均
+			double posx = 0;
+			double posy = 0;
+			double posz = 0;
+
+			//选取误差最小的解
+			double range = 999999.0;
+			for (std::vector<std::shared_ptr<POS>>::iterator it_pos = udm_pos.begin();it_pos != udm_pos.end();++it_pos)
+			{
+				if((*it_pos)->pos_radius < range){
+					range = (*it_pos)->pos_radius;
+					posx = (*it_pos)->posx;
+					posy = (*it_pos)->posy;
+					posz = (*it_pos)->posz;
+				}
+			}
+
+			p->posx = posx;
+			p->posy = posy;
+			p->posz = posz;
+			p->cx = p->posx/map_scale;
+			p->cy = p->posy/map_scale;
+			p->cz = p->posz/map_scale;
+		}
 	}
 
 	//求完解,对解做优化处理
@@ -600,7 +730,6 @@ int Card::algo_tof_1d(int cnt)
 		//通过加速度被抛弃,利用参考数据来做圆
 		return 1;
 	}
-
 	//最后保存
 	if (CheckPositionValid(p))
 	{
@@ -1389,9 +1518,6 @@ void Card::algo_tdoa(int cnt)
 
 				this->m_nMoveDirection = nSign;
 
-				
-				algo_calc_offset();
-
 				this->last_locate.x = this->x;
 				this->last_locate.y = this->y;
 				this->last_locate.z = this->z;
@@ -1884,9 +2010,9 @@ void Card::algo_calc_offset()
 double Card::x_offset_after()
 {
 	//if(this->is_hist)
-	//{
+	{
 		return this->x;
-	//}
+	}
 	return (OUTPUT_POS::LEFT_POS == m_nOutputPosState) ? this->left_x : this->right_x;
 }
 
@@ -1999,6 +2125,7 @@ void Card::add_dist(std::shared_ptr<_coordinate> dist)
 	if (this->x != this->last_x || this->y != this->last_y)
 	{
 		LOCATION_SYSTEM_BRANCH(LOCATION_SYSTEM_BRANCH_138);
+		algo_calc_offset();
 		this->b_pos_change = true;
 	}else{
 		LOCATION_SYSTEM_BRANCH(LOCATION_SYSTEM_BRANCH_139);
@@ -2045,7 +2172,7 @@ Card::~Card(void)
 
 double Card::get_speed()
 {
-	if(this->idle_count > IDLE_CONFIRM_TIME)
+	if(this->idle_count >= IDLE_CONFIRM_TIME)
 	{
 		return 0;
 	}
@@ -2167,45 +2294,53 @@ std::string Card::get_state_text()
 {
 	string ret = "";
 	this->state= 0;
-	this->state_biz = 0;
+	this->state_biz = 0; // 按优先级显示state_biz,优先级顺序:
+	                     // 呼救 > 呼叫 > 限制区域 > 区域超时 > 井下超时 > 超速 > 进入盲区 > 正常
 
-	if(status_help == STATUS_ERROR){
-		//state += STATUS_HELP;
-		state_biz += STATUS_HELP;
-		ret += "呼救,";
-	}
-	if(status_area_over_time == STATUS_ERROR){
-		//state += STATUS_AREA_OVER_TIME;
-		state_biz += STATUS_AREA_OVER_TIME;
-		ret += "区域超时,";
-	}else if(status_area_over_time == STATUS_ERROR){
-		//state += STATUS_OVER_TIME;
-		state_biz += STATUS_OVER_TIME;
-		ret += "超时,";
+	if(STATUS_LOST == status_lost){
+		//state += STATUS_LOST;
+		state_biz = STATUS_LOST;
+		ret += "进入盲区,";
 	}
+
 	if(status_area_over_speed == STATUS_ERROR){
 		//state += STATUS_AREA_OVER_SPEED;
-		state_biz += STATUS_AREA_OVER_SPEED;
+		state_biz = STATUS_AREA_OVER_SPEED;
 		ret += "区域超速,";
 	}else if(status_over_speed == STATUS_ERROR){
 		//state += STATUS_OVER_SPEED;
-		state_biz += STATUS_OVER_SPEED;
-		ret += "超速,";
+		//state_biz += STATUS_OVER_SPEED;
+		//ret += "超速,";
+	}
+
+	if(status_area_over_time == STATUS_ERROR){
+		//state += STATUS_OVER_TIME;
+		state_biz = STATUS_OVER_TIME;
+		ret += "超时,";
 	}
+
 	if(status_area_forbidden == STATUS_ERROR){
 		//state += STATUS_AREA_FORBIDDEN;
-		state_biz += STATUS_AREA_FORBIDDEN;
+		state_biz = STATUS_AREA_FORBIDDEN;
 		ret += "进入限制区域,";
 	}
+
+	if(status_area_over_time == STATUS_ERROR){
+		//state += STATUS_AREA_OVER_TIME;
+		state_biz = STATUS_AREA_OVER_TIME;
+		ret += "区域超时,";
+	}
+
 	if(status_call == STATUS_ERROR){
 		//state += STATUS_CALL;
-		state_biz += STATUS_CALL;
+		state_biz = STATUS_CALL;
 		ret += "呼叫,";
 	}
-	if(STATUS_LOST == status_lost){
-		//state += STATUS_LOST;
-		state_biz += STATUS_LOST;
-		ret += "进入盲区,";
+
+	if(status_help == STATUS_ERROR){
+		//state += STATUS_HELP;
+		state_biz = STATUS_HELP;
+		ret += "呼救,";
 	}
 
 	//if(power_state == STATUS_ERROR){
@@ -2213,8 +2348,8 @@ std::string Card::get_state_text()
 	//	ret += "电量低,";
 	//}else 
 	if(power_state == STATUS_ERROR_SERIOUS){
-		state += STATUS_POWER_LOWER_SERIOUS;
-		ret += "电量极低,";
+		state = STATUS_POWER_LOWER_SERIOUS;
+		//ret += "电量极低,";
 	}
 
 	if(ret.length() > 0){
@@ -2231,13 +2366,18 @@ std::string Card::get_acc_text()
 	string ret = "";
 	state_moving =  (accelerate_state & 0x01)? STATE_ACCE_MOTION : STATE_ACCE_STATIC;
 
-	if(state_moving == STATE_ACCE_STATIC)
+	if(STATUS_LOST == this->status_lost)
+	{
+		state_moving = STATE_ACCE_STATIC;
+		ret += "静止";
+	}
+	else if(state_moving == STATE_ACCE_STATIC)
 	{
 		ret += "静止";
 	}	
 	else if(state_moving == STATE_ACCE_MOTION)
 	{
-		if(this->idle_count > IDLE_CONFIRM_TIME)
+		if(this->idle_count >= IDLE_CONFIRM_TIME)
 		{
 			state_moving = STATE_ACCE_IDLING;
 			ret += "怠速";
@@ -6260,7 +6400,17 @@ bool Card::IsIdleStatus(std::shared_ptr<POS> pos)
 {
 	// 只根据最后位置比较,位移小于预设值认为是怠速
 	is_idling = sqrt(pow(pos->cx - this->x, 2) + pow(pos->cy - this->y, 2)) < MIN_IDLE_THRESHOLD ? true : false;
-	is_idling ? idle_count++ : idle_count=0;
+	if(is_idling)
+	{
+		if(idle_count < IDLE_CONFIRM_TIME)
+		{
+			idle_count++;
+		}
+	}
+	else
+	{
+		idle_count = 0;
+	}
 	return is_idling;
 
 	bool bRet = false;
@@ -6372,6 +6522,21 @@ bool Card::CheckPositionValid(const std::shared_ptr<POS> pos)
 	return true;
 }
 
+/*
+ * tof定位:根据一条距离及历史定位结果进行定位
+ *
+ * param
+ *		pos			定位结果
+ *
+ * return
+ *		成功定位返回0,否则返回非零值
+ *
+*/
+int Card::get_position_by_one_distance(std::shared_ptr<POS>& pos)
+{
+	return 0;
+}
+
 /*
  *	检查tof定位解的有效性,通过速度和加速度方式校验
  *
@@ -6391,15 +6556,13 @@ bool Card::CheckSolutionTof(std::shared_ptr<POS>& pos)
 
 	bool bRet = false;
 
+	//double delta = difftime(p_reader->reader_time,time_last_tof);
 	double delta = 0.0;
 	if (p_reader)
 	{
-		//使用分站时间判断,会出现分站时间回退的现象
-		//delta = difftime(p_reader->reader_time,time_last_tof);
 		delta = difftime(p_reader->rec_time,time_last_tof);
 	}else{
-		//delta = 2.0*(time_stamp_cal - time_stamp_last);
-		delta = 2.0;
+		delta = difftime(this->rec_time,time_last_tof);
 	}
 
 	if (delta < ZERO_PRECISION)
@@ -6856,8 +7019,11 @@ double Card::GetDeltaT()
 	switch (ranging_type)
 	{
 	case LOCATEDATATYPE::LDT_TOF:
-		//dt = difftime(p_reader->reader_time,time_last_tof);
+#ifdef TESTFROMFILE
+		dt = difftime(this->rec_time,time_last_tof);
+#else
 		dt = difftime(p_reader->rec_time,time_last_tof);
+#endif
 		break;
 	case LOCATEDATATYPE::LDT_TDOA:
 		//存在分站在计数序号为1000掉电,但重新上电会导致此时的计算值偏大

+ 26 - 4
classdef.h

@@ -45,6 +45,8 @@
 
 #define SUSTAINEDOVERSPEED 5 // 如果连续5次都是超速,则告警.
 
+#define WRITE_DRIVINGFACE_REAL_PER_TIME 20000
+
 #include <string>
 #include <ctime>
 #include <map>
@@ -365,6 +367,12 @@ enum CALL_STATE{
 	CALL_FAILED = 3,		//呼叫失败
 };
 
+enum CALL_CARD_TYPE
+{
+	CCT_CALL_ALL = 0, // 全员呼叫
+	CCT_CALL_APOINT, // 定员
+};
+
 enum LOCATEDATATYPE // 定位数据类型
 {
 	LDT_TOF = 0, 
@@ -502,7 +510,7 @@ struct _call_info_card
 {
 	int card_id;
 	int card_type;
-	int call_type;
+	int call_level;
 	string str_card_id;
 	time_t start_time;
 	int time_out;
@@ -516,8 +524,11 @@ struct _call_info_reader
 {
 	bool is_call_all;
 	bool is_start_call;		//true,开始呼叫;false,取消呼叫
-	BYTE call_type;
+	BYTE call_level; // 一般,紧急
+	//int call_type; 
 	int cards_count;
+	int time_out;
+	time_t start_time;
 	CallInfoCardMap mpCard;
 };
 
@@ -1086,6 +1097,9 @@ public:
 	//SYSTEMTIME down_time;
 	time_t rec_time; // 最后接收时间
 	time_t down_time; // 入井时间
+	time_t att_start_time_latest; // 最近一次从无信号转为有信号的时间,有可能在考勤区域,有可能在非考勤区域 lihongzhen  2017/8/17 17:20
+	time_t att_end_time_latest; // 最后一次从非考勤区域进入考勤区域的时间 lihongzhen  2017/8/17 17:23
+
 	time_t up_time; // 升井时间
 	time_t enter_reader_time; // 进入分站时间
 	time_t low_power_time; // 电量低开始时间
@@ -1152,7 +1166,7 @@ public:
 	int status_help; // 0 未呼救, 1 呼救, 2 已处理呼救
 	int status_call; // 0 未呼叫 1 呼叫
 	int status_power; // 0 电量正常,1 电量低
-	int status_lost; // 0 未进入盲区,1 盲区状态
+	int status_lost; // 0 未进入盲区,1024 盲区状态
 
 	int map_id; // 当前地图
 	double map_scale; // 地图比例尺
@@ -1191,7 +1205,6 @@ public:
 	bool issaved;		// true 已保存到数据库,false 生成新的考勤记录,需要保存到数据库
 	bool isdealed;		// 已经处理
 	bool isreceive;		// 接收到
-	bool is_pos_changed;
 	bool is_deal_by_algo;		//是否经过算法处理
 	bool is_hist;
 	bool is_need_cal;
@@ -1217,6 +1230,7 @@ public:
 	time_t last_locate_time;	// 最后定位时间
 
 	void reset();				// 重置所有状态
+	void resetAllBaseInfo();   //重置基本信息
 	void set_reader(std::shared_ptr<Reader> preader);
 	void add_dist(std::shared_ptr<_coordinate> dist);
 	void remove_dist_head();
@@ -1252,6 +1266,13 @@ public://lemon
 	inline double getDrivingfaceLimitValue(){return m_drivingface_distance_limit_values;}
 	inline void	 setDrivingfaceCulValue(double cvalue){m_drivingface_distance_cul_values = cvalue;}
 	inline void  setDrivingfaceLimitValue(double lvalue){m_drivingface_distance_limit_values = lvalue;}
+
+	//lemon 2017/08/16
+	double m_drivingface_start_x;
+	double m_drivingface_start_y;
+	double m_drivingface_start_z;
+	std::string m_drivingface_start_time;
+
 private:
 	double m_drivingface_distance_cul_values;
 	double m_drivingface_distance_limit_values;
@@ -1307,6 +1328,7 @@ public:
 	//tof相关变量及函数
 	time_t time_last_tof;
 
+	int  get_position_by_one_distance(std::shared_ptr<POS>& pos);
 	bool CheckSolutionTof(std::shared_ptr<POS>& pos);		//通过速度及加速度检查定位结果是否正确
 private:
 	void set_reader_path_tof(std::shared_ptr<ReaderPathMap> rpm);			// 设置tof路径集

+ 4 - 2
constdef.h

@@ -64,10 +64,10 @@
 #define JSON_KEY_NAME_RULES "rules"
 #define JSON_KEY_NAME_SETTING "setting"
 
-#define JSON_KEY_CALL_CARD_CALL_ID "call_id"
+#define JSON_KEY_CALL_CARD_CALL_TYPE "call_type_id"
 #define JSON_KEY_CALL_CARD_CALL_TIME_OUT "call_time_out"
 #define JSON_KEY_CALL_CARD_CALL_TIME "call_time"
-#define JSON_KEY_CALL_CARD_CALL_TYPE "call_type_id"
+#define JSON_KEY_CALL_CARD_CALL_LEVEL "call_level_id"
 #define JSON_KEY_CALL_CARD_USER_NAME "user_name"
 #define JSON_KEY_CALL_CARD_STATIONS "stations"
 #define JSON_KEY_CALL_CARD_STATION_ID "stationid"
@@ -174,4 +174,6 @@
 #define JSON_KEY_DRIVINGFACE_WARNING_POINT_ID "driving_face_warning_point_id"
 #define JSON_KEY_DRIVINGFACE_WARNING_POINT_DIS "driving_face_warning_point_dis"
 
+#define JSON_KEY_DRIVINGFACE_CURSHIFT_LENGTH "drivingface_curshift_length"
+
 #endif // !_SERVER_CONST_DEF_H_

+ 0 - 2
mylog/MyLog.cpp

@@ -9,7 +9,6 @@ MyLog::MyLog(FILE_TYPE type)
 
 	curFileCount = 0;
 	strExeDir = GetExeDir();
-
 	if (fileType >= 0 && fileType < FILE_TYPE_TOTAL) {
 		status = false;
 		InitLogConfig();
@@ -24,7 +23,6 @@ MyLog::MyLog(FILE_TYPE type,bool status)
 	fileType = type;
 
 	curFileCount = 0;
-
 	this->status = status;
 	strExeDir = GetExeDir();
 

+ 4 - 6
mylog/MyLog.h

@@ -18,14 +18,15 @@
 #include <log4cpp\RollingFileAppender.hh>
 #include <log4cpp\DailyRollingFileAppender.hh>
 
-#ifdef _WIN32  
+
+#ifdef _WIN32
 #include <direct.h>  
 #include <io.h>  
-#elif _LINUX  
+#elif _LINUX
 #include <stdarg.h>  
 #include <sys/stat.h>  
 #endif  
-#ifdef _WIN32  
+#ifdef _WIN32
 #define ACCESS _access  
 #define MKDIR(a) _mkdir((a))  
 #elif _LINUX  
@@ -41,7 +42,6 @@ enum FILE_TYPE {
 	SYNC_S,
 	PARSE_S,
 	DIST_S,
-	DISTX_S,
 	DISTEX_S,
 	DISTXX_S,
 	DIST_TOF_S,
@@ -60,7 +60,6 @@ const std::string my_log_file_name[] = {
 	"sync_s",
 	"parse_s",
 	"dist_s",
-	"distx_s",
 	"distex_s",
 	"distxx_s",
 	"dist_tof_s",
@@ -92,7 +91,6 @@ public:
 
 public:
 	bool flag;
-
 private:
 	bool status;		//ÊÇ·ñÊä³öʱ¼ä