Browse Source

add fieldOTSpos property to the particle class in cpp project.

GSP 1 month ago
parent
commit
f3d15ffeba

+ 5 - 1
OTSCPP/OTSClrInterface/CommonClr/OTSParticleClr.cpp

@@ -258,7 +258,11 @@ namespace OTSCLRINTERFACE {
 
 	void COTSParticleClr::SetSEMPos(System::Drawing::Point^ a_pAbsPos)
 	{
-		m_Particle->get()->SetSEMPos(CPoint(a_pAbsPos->X, a_pAbsPos->Y));
+		m_Particle->get()->SetFieldSEMPos(CPoint(a_pAbsPos->X, a_pAbsPos->Y));
+	}
+	void COTSParticleClr::SetFieldOTSPos(System::Drawing::Point^ a_pOTSPos)
+	{
+		m_Particle->get()->SetOTSScanFieldPos(CPoint(a_pOTSPos->X, a_pOTSPos->Y));
 	}
 
 	COTSFeatureClr^ COTSParticleClr::GetFeature()

+ 7 - 1
OTSCPP/OTSClrInterface/CommonClr/OTSParticleClr.h

@@ -75,8 +75,14 @@ namespace OTSCLRINTERFACE {
 		void SetSEMPos(System::Drawing::Point^ a_pAbsPos);
 		System::Drawing::Point^ GetSEMPos()
 		{
-			return gcnew System::Drawing::Point(m_Particle->get()->GetSEMPos().x, m_Particle->get()->GetSEMPos().y);
+			return gcnew System::Drawing::Point(m_Particle->get()->GetFieldSEMPos().x, m_Particle->get()->GetFieldSEMPos().y);
 		}
+		void SetFieldOTSPos(System::Drawing::Point^ a_pAbsPos);
+		System::Drawing::Point^ GetFieldOTSPos()
+		{
+			return gcnew System::Drawing::Point(m_Particle->get()->GetOTSScanFieldPos().x, m_Particle->get()->GetOTSScanFieldPos().y);
+		}
+
 		// feature
 		COTSFeatureClr^ GetFeature();
 		void SetFeature(COTSFeatureClr^ a_pFeautre);

+ 9 - 7
OTSCPP/OTSData/OTSParticle.h

@@ -106,8 +106,10 @@ const double Pi = 3.14159;
 		void SetXrayMatrixPoints(std::vector<CPoint> points) { m_MatrixPoints = points; }
 	
 
-		CPoint GetSEMPos() { return m_absolutPos; }
-		void SetSEMPos(CPoint a_poiabsPos) { m_absolutPos = a_poiabsPos; }
+		CPoint GetFieldSEMPos() { return m_FieldSEMPos; }
+		void SetFieldSEMPos(CPoint a_poiabsPos) { m_FieldSEMPos = a_poiabsPos; }//scan field sem coordinate position of the whole measure area,redundant design for compatibility and convenience
+		CPoint GetOTSScanFieldPos() { return m_FieldSEMPos; }
+		void SetOTSScanFieldPos(CPoint a_poiabsPos) { m_FieldSEMPos = a_poiabsPos; }//scan field OTS coordinate position of the whole measure area,redundant design for compatibility and convenience
 		// feature
 		COTSFeaturePtr GetFeature() { return m_pFeature; }
 		void SetFeature(COTSFeaturePtr a_pFeautre);
@@ -238,7 +240,7 @@ protected:
 		double m_Width;
 		//最小外接矩形的长度
 		double m_Height;
-		// STD chemical type
+		
 
 		double m_Perimeter;
 		double m_DMax;
@@ -248,7 +250,7 @@ protected:
 		double m_Dm;
 		double m_De;
 		double m_Orientation;
-		//GB_CHEMICAL_TYPE m_nChemical;
+		
 
 		// gray
 		BYTE m_cAveGray;
@@ -276,8 +278,7 @@ protected:
 		// tag id
 		int m_nTagId;
 
-		// search id
-		//int m_nSearchId;
+	
 
 		// analysis id
 		int m_nAnalysisId;
@@ -291,7 +292,8 @@ protected:
 		std::vector<CPoint> m_MatrixPoints;
 		std::vector<CPosXrayPtr> m_MatrixXrayInfo;
 		
-		CPoint m_absolutPos;//the ots coordinate position in the whole measure area. not the screen position.
+		CPoint m_FieldSEMPos;//the correlate field sem coordinate position in the whole measure area. not the screen position.
+		CPoint m_OTSScanFieldPos;//the ots coordinate position of the scan field in the whole measure area.	
 		// feature
 		COTSFeaturePtr m_pFeature;	
 

+ 3 - 2
OTSCPP/OTSImagePro/OTSImageProcess.cpp

@@ -2250,7 +2250,7 @@ namespace OTSIMGPROC
 		auto newPart = COTSParticlePtr(new COTSParticle());
 		COTSSegmentsList newSegs;
 		auto p = pair.first;
-		newPart->SetSEMPos(p->GetSEMPos());
+		newPart->SetFieldSEMPos(p->GetFieldSEMPos());
 		
 		// build parts string and total area
 		std::string partsStr = std::to_string(p->GetFieldId()) + ":" + std::to_string(p->GetAnalysisId());
@@ -2345,7 +2345,8 @@ namespace OTSIMGPROC
 		newPart->SetConnectedParticlesSequentialString(partsStr);
 		newPart->SetSubParticles(allSubParts);
 		newPart->SetActualArea(allPartArea);
-		
+		newPart->SetOTSScanFieldPos(p->GetOTSScanFieldPos());	
+		newPart->SetFieldSEMPos(p->GetFieldSEMPos());
 		newPart->SetParticleId(partTagId);
 		newPart->SetAnalysisId(partTagId);
 		std::string name = p->GetTypeName();

+ 2 - 2
OTSCPP/OTSRptCalculate/DTL/IncADataDB.cpp

@@ -297,7 +297,7 @@ namespace OTSSQLITE
 				COTSParticleList& ps=fld->GetParticleList();
 				COTSParticlePtr p = COTSParticlePtr(new COTSParticle());
 				p->SetFieldId(fld->GetId());
-				p->SetSEMPos(fldPos);
+				p->SetFieldSEMPos(fldPos);
 				double dferet = allRecords->GetColFloatValue((int)CIncADataTable::ColumnID::F_DFERET);
 				p->SetFeretDiameter(dferet);
 				p->SetParticleId(allRecords->GetColIntValue((int)CIncADataTable::ColumnID::N_PARTICLE_ID));
@@ -334,7 +334,7 @@ namespace OTSSQLITE
 				COTSParticleList& ps = fld->GetParticleList();
 				COTSParticlePtr p = COTSParticlePtr(new COTSParticle());
 				p->SetFieldId(fld->GetId());
-				p->SetSEMPos(fld->GetPosition());
+				p->SetFieldSEMPos(fld->GetPosition());
 				double dferet = allRecords->GetColFloatValue((int)CIncADataTable::ColumnID::F_DFERET);
 				p->SetFeretDiameter(dferet);
 				p->SetParticleId(allRecords->GetColIntValue((int)CIncADataTable::ColumnID::N_PARTICLE_ID));

+ 13 - 13
OTSCPP/OTSRptCalculate/GBCal/CGBCalculate.cpp

@@ -1,4 +1,4 @@
-#pragma once
+锘�#pragma once
 #include "stdafx.h"
 #include "CGBCalculate.h"
 #include "OTSFieldData.h"
@@ -373,7 +373,7 @@ namespace OTSGBCalculate
 			//amounts
 			CGridColumnsList listCol;
 			listCol.clear();
-			int columnNum = 11 + 1 + 1;//表格总列数 12个级别再加上前面的“分类”列和“宽度/um”列
+			int columnNum = 11 + 1 + 1;//琛ㄦ牸鎬诲垪鏁� 12涓�骇鍒�啀鍔犱笂鍓嶉潰鐨勨€滃垎绫烩€濆垪鍜屸€滃�搴�/um鈥濆垪
 			CGridColumnPtr pColumn;
 			for (int i=0;i< columnNum;i++)
 			{
@@ -459,7 +459,7 @@ namespace OTSGBCalculate
 				default:
 					pColumn = CGridColumnPtr(new CGridColumn());
 					CString name;
-					name.Format(_T("%.1f"), (i - 2) / 2.0);//i=2 输出0 i=3 输出0.5 i=4 输出1 以此类推
+					name.Format(_T("%.1f"), (i - 2) / 2.0);//i=2 杈撳嚭0 i=3 杈撳嚭0.5 i=4 杈撳嚭1 浠ユ�绫绘帹
 					pColumn->SetName(name);
 					CGridRowsList listRows;
 
@@ -585,16 +585,16 @@ namespace OTSGBCalculate
 		//amounts
 		CGridColumnsList listCol;
 		listCol.clear();
-		int columnNum = 12;//表格总列数 11个级别再加上前面的“分类”列
+		int columnNum = 12;//琛ㄦ牸鎬诲垪鏁� 11涓�骇鍒�啀鍔犱笂鍓嶉潰鐨勨€滃垎绫烩€濆垪
 		CGridColumnPtr pColumn;
 		int levA[9] = { 0,0,0,0,0,0,0,0,0 };
 		int levB[9] = { 0,0,0,0,0,0,0,0,0 };
 		int levC[9] = { 0,0,0,0,0,0,0,0,0 };
 		int levD[9] = { 0,0,0,0,0,0,0,0,0 };
 		double fg[9] = { 0.05,0.1,0.2,0.5,1,2,5,10,20 };
-		//指数
+		//鎸囨暟
 		double ka = 0, kb = 0, kc = 0, kd = 0;
-		//统计不同大小颗粒出现次数
+		//缁熻�涓嶅悓澶у皬棰楃矑鍑虹幇娆℃暟
 		for (auto pParticle : cotsparticlelistA)
 		{
 			double area = pParticle->GetActualArea();
@@ -974,7 +974,7 @@ namespace OTSGBCalculate
 		CPoint pointTopleft, pointBottomright;
 		pointTopleft = pointBottomright = allOTSFields[0]->GetPosition();
 
-		//判断有效区域
+		//鍒ゆ柇鏈夋晥鍖哄煙
 		for (unsigned int i = 0; i< allOTSFields.size(); i++)
 		{
 			//get current OTSField Position,the position is in the center of the field
@@ -995,8 +995,8 @@ namespace OTSGBCalculate
 		double totalHeight = pointTopleft.y - pointBottomright.y;
 
 
-		int nPossibleGBFieldRowNum = totalHeight / GB_FIELD_WIDTH;// +0.5;//可能有的国标field行数
-		int nPossibleGBFieldColNum = totalWidth / GB_FIELD_WIDTH;// +0.5;//列数
+		int nPossibleGBFieldRowNum = totalHeight / GB_FIELD_WIDTH;// +0.5;//鍙�兘鏈夌殑鍥芥爣field琛屾暟
+		int nPossibleGBFieldColNum = totalWidth / GB_FIELD_WIDTH;// +0.5;//鍒楁暟
 
 
 		//get possible OTSFields 
@@ -1011,10 +1011,10 @@ namespace OTSGBCalculate
 				CPoint poiCurGBFieldTopLeft, poiCurGBFieldBottomRight;
 
 				poiCurGBFieldTopLeft = pointTopleft;
-				//获得左上角的坐标
+				//鑾峰緱宸︿笂瑙掔殑鍧愭爣
 				poiCurGBFieldTopLeft.x += j * GB_FIELD_WIDTH;
 				poiCurGBFieldTopLeft.y -= i * GB_FIELD_WIDTH;
-				//获得右下角的坐标
+				//鑾峰緱鍙充笅瑙掔殑鍧愭爣
 				poiCurGBFieldBottomRight.x = poiCurGBFieldTopLeft.x + GB_FIELD_WIDTH;
 				poiCurGBFieldBottomRight.y = poiCurGBFieldTopLeft.y - GB_FIELD_WIDTH;
 				COTSRect rectGBField(poiCurGBFieldTopLeft, poiCurGBFieldBottomRight);
@@ -1224,14 +1224,14 @@ namespace OTSGBCalculate
 				pColumn = listCol.at(3);
 				pRow = CGridRowPtr(new CGridRow());
 				pRow->SetDataType(REPORT_GRID_DATA_TYPE::FLOAT);
-				pRow->SetDoubleValue(part->myOTSParts[0]->GetSEMPos().x);
+				pRow->SetDoubleValue(part->myOTSParts[0]->GetFieldSEMPos().x);
 				pColumn->AddGridRow(pRow);
 				break;
 			case 4:
 				pColumn = listCol.at(4);
 				pRow = CGridRowPtr(new CGridRow());
 				pRow->SetDataType(REPORT_GRID_DATA_TYPE::FLOAT);
-				pRow->SetDoubleValue(part->myOTSParts[0]->GetSEMPos().y);
+				pRow->SetDoubleValue(part->myOTSParts[0]->GetFieldSEMPos().y);
 				pColumn->AddGridRow(pRow);
 				break;
 			case 5:

+ 2 - 1
OTSIncAMeasureApp/0-OTSModel/OTSDataType/COTSField.cs

@@ -824,7 +824,7 @@ namespace OTSDataType
             }
             return true;
         }
-        public void CalculateParticleAbsolutPos(CSEMStageData pCSEMStageData)
+        public void CalculateParticleFieldSEMPosAndOTSPos(CSEMStageData pCSEMStageData)
         {
        
             foreach (var p in GetListAnalysisParticles())
@@ -837,6 +837,7 @@ namespace OTSDataType
                 semPos.X = (int)semP.X;
                 semPos.Y = (int)semP.Y;
                 p.SetSEMPos(semPos);
+                p.SetFieldOTSPos(GetOTSPosition());
             }
 
         }

+ 2 - 2
OTSIncAMeasureApp/1-OTSMeasure/Measure/3-MeasureFlow/CSmplMeasure.cs

@@ -827,7 +827,7 @@ namespace OTSModelSharp
 
 
 
-            curFldData.CalculateParticleAbsolutPos(m_pMsrThread.GetProjResultData().GetSEMStageData());
+            curFldData.CalculateParticleFieldSEMPosAndOTSPos(m_pMsrThread.GetProjResultData().GetSEMStageData());
            
             curFldData.InitParticles(pImgProcessParam);
             
@@ -1093,7 +1093,7 @@ namespace OTSModelSharp
 
 
 
-            var cmds = pDBFileMgr.GetSavingParticleDataToDBCmds(fldData.GetListAnalysisParticles(), fldData.GetOTSPosition());
+            var cmds = pDBFileMgr.GetSavingParticleDataToDBCmds(fldData.GetListAnalysisParticles());
 
             pDBFileMgr.ExecuteNonQueryBatch(ref cmds);
 

+ 38 - 13
OTSIncAMeasureApp/1-OTSMeasure/Measure/DBDataTransition/IncADataDB.cs

@@ -5,10 +5,13 @@ using System.Data.SQLite;
 
 using System.Drawing;
 using System.Linq;
-
+using Microsoft.Office.Interop.Excel;
 using OTSCLRINTERFACE;
 using OTSDataType;
+using OTSMeasureApp._0_OTSModel.OTSDataType;
 using OTSModelSharp.DTLBase;
+using DataTable = System.Data.DataTable;
+using Rectangle = System.Drawing.Rectangle;
 
 namespace OTSModelSharp
 {
@@ -25,9 +28,17 @@ namespace OTSModelSharp
             //Rectangle prec = (Rectangle)a_pParticle.GetParticleRect();
             //System.Drawing.Point pos = (System.Drawing.Point)a_pParticle.GetSEMPos();
 
-            Rectangle rec = (Rectangle)a_pParticle.GetParticleRect();
+            System.Drawing.Rectangle rec = (System.Drawing.Rectangle)a_pParticle.GetParticleRect();
             System.Drawing.Point xrayPos = (System.Drawing.Point)a_pParticle.GetXRayPos();
             System.Drawing.Point semPos = (System.Drawing.Point)a_pParticle.GetSEMPos();
+            System.Drawing.Point otsfieldPos= (System.Drawing.Point)a_pParticle.GetFieldOTSPos();   
+            //int l = 0;
+            //int t = 0;
+            //int r = 0;
+            //int b = 0;
+            //a_pParticle.GetOTSRect(ref l, ref t, ref r, ref b);
+            //COTSRect cOTSRect = new COTSRect(l,t,r,b);
+            //System.Drawing.PointF otsPos=cOTSRect.GetCenterPoint();
             String sInsertFormat = tableInfoPtr.GetInsertCommandFormatString(true);
             var cmd = tableInfoPtr.GetInsertCommand(true);
 
@@ -45,8 +56,8 @@ namespace OTSModelSharp
 
             paras[10].Value = a_pParticle.GetFeretDiameter();
             paras[11].Value = (int)(a_pParticle.GetFeature().GetSegmentsList().Count);
-            paras[12].Value = semPos.X;
-            paras[13].Value = semPos.Y;
+            paras[12].Value = otsfieldPos.X;
+            paras[13].Value = otsfieldPos.Y;
             paras[14].Value = a_pParticle.GetParticleId();
             paras[15].Value = a_pParticle.GetDMAX();
             paras[16].Value = a_pParticle.GetDMIN();
@@ -138,7 +149,7 @@ namespace OTSModelSharp
             return new KeyValuePair<string, SQLiteParameter[]>(sSQLCommand,paras);
         }
 
-        public KeyValuePair<string,SQLiteParameter[]> GegInsertingAnParticleCmd(COTSParticleClr a_pParticle, System.Drawing.PointF fldPos)
+        public KeyValuePair<string,SQLiteParameter[]> GegInsertingAnParticleCmd(COTSParticleClr a_pParticle)
         {
 
             var tableInfoPtr = GetTableInfo();
@@ -148,11 +159,11 @@ namespace OTSModelSharp
 
             var sInsertCmd = tableInfoPtr.GetInsertCommand(true);
            
-            Rectangle rec = (Rectangle)a_pParticle.GetParticleRect();
+            System.Drawing.Rectangle rec = (System.Drawing.Rectangle)a_pParticle.GetParticleRect();
             System.Drawing.Point xrayPos = (System.Drawing.Point)a_pParticle.GetXRayPos();
             System.Drawing.Point semPos = (System.Drawing.Point)a_pParticle.GetSEMPos();
-           
-      
+            System.Drawing.Point fldOTSPos = (System.Drawing.Point)a_pParticle.GetFieldOTSPos();
+
             var paras = sInsertCmd.Value;
             paras[0].Value = a_pParticle.GetFieldId();
             paras[1].Value = a_pParticle.GetAnalysisId();
@@ -167,8 +178,8 @@ namespace OTSModelSharp
 
             paras[10].Value = a_pParticle.GetFeretDiameter();
             paras[11].Value = (int)(a_pParticle.GetFeature().GetSegmentsList().Count);
-            paras[12].Value = fldPos.X;
-            paras[13].Value = fldPos.Y;
+            paras[12].Value = fldOTSPos.X;
+            paras[13].Value = fldOTSPos.Y;
             paras[14].Value = a_pParticle.GetParticleId();
             paras[15].Value = a_pParticle.GetDMAX();
             paras[16].Value = a_pParticle.GetDMIN();
@@ -203,16 +214,22 @@ namespace OTSModelSharp
                 if (!mapFld.Keys.Contains(curFldId))
                 {
                     System.Drawing.Point fldPos = new System.Drawing.Point();
-                    fldPos.X = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FldPosX]);
-                    fldPos.Y = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FldPosY]);
+                    fldPos.X = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FieldPosX]);
+                    fldPos.Y = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FieldPosY]);
+                    System.Drawing.Point fldSEMPos = new System.Drawing.Point();
+                    fldSEMPos.X = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_SEMPOS_X]);
+                    fldSEMPos.Y = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_SEMPOS_Y]);
 
                     COTSField fld = new COTSField(new PointF(fldPos.X,fldPos.Y),pixelsize);
                    
                     fld.SetId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FIELD_ID]));
                     fld.SetOTSPosition(fldPos);
+                    fld.SetSemPos(fldSEMPos);
                     List<COTSParticleClr> ps = fld.GetListAnalysisParticles();
                     COTSParticleClr p = new COTSParticleClr();
                     p.SetFieldId(fld.GetId());
+                    p.SetFieldOTSPos(fldPos);
+                    p.SetSEMPos(fldSEMPos);
                     p.SetParticleId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_PARTICLE_ID]));
                   
                     int top = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_TOP]);
@@ -249,10 +266,18 @@ namespace OTSModelSharp
                 {
                     COTSField fld = mapFld[curFldId];
                     List<COTSParticleClr> ps = fld.GetListAnalysisParticles();
+                    System.Drawing.Point fldPos = new System.Drawing.Point();
+                    fldPos.X = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FieldPosX]);
+                    fldPos.Y = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FieldPosY]);
+                    System.Drawing.Point fldSEMPos = new System.Drawing.Point();
+                    fldSEMPos.X = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_SEMPOS_X]);
+                    fldSEMPos.Y = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_SEMPOS_Y]);
                     COTSParticleClr p = new COTSParticleClr();
                     p.SetFieldId(fld.GetId());
+                    p.SetFieldOTSPos(fld.GetOTSPosition());
                     p.SetParticleId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_PARTICLE_ID]));
-                  
+                    p.SetSEMPos(fldSEMPos);
+                    p.SetFieldOTSPos(fldPos);
                     int top = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_TOP]);
                     int left = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_LEFT]);
                     int width = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_WIDTH]);

+ 2 - 2
OTSIncAMeasureApp/1-OTSMeasure/Measure/DBDataTransition/IncADataTable.cs

@@ -25,8 +25,8 @@ namespace OTSModelSharp
             N_POS_Y = 9,
             F_DFERET = 10,           
             N_SEGMENT_NUM = 11,
-            N_FldPosX = 12,
-            N_FldPosY = 13,
+            N_FieldPosX = 12,
+            N_FieldPosY = 13,
             N_PARTICLE_ID = 14,
             F_DMAX = 15,
             F_DMIN = 16,

+ 4 - 4
OTSIncAMeasureApp/1-OTSMeasure/Measure/DBDataTransition/IncAFileMgr.cs

@@ -252,7 +252,7 @@ namespace OTSModelSharp
             dbStore.CommitTransaction();
 
         }
-       public bool SaveParticleADataToDB(List<COTSParticleClr> m_listParticle , System.Drawing.Point m_FieldPos)
+       public bool SaveParticleADataToDB(List<COTSParticleClr> m_listParticle )
         {
             if (m_listParticle.Count == 0)
             {
@@ -263,7 +263,7 @@ namespace OTSModelSharp
             foreach (var pParticle in m_listParticle)
             {
 
-                var cmd = m_IncADataDB.GegInsertingAnParticleCmd(pParticle, m_FieldPos);
+                var cmd = m_IncADataDB.GegInsertingAnParticleCmd(pParticle);
 
                 cmds.Add(cmd);
       
@@ -276,7 +276,7 @@ namespace OTSModelSharp
 
         }
      
-        public List<KeyValuePair<string, SQLiteParameter[]>> GetSavingParticleDataToDBCmds(List<COTSParticleClr> m_listParticle, System.Drawing.PointF m_FieldPos)
+        public List<KeyValuePair<string, SQLiteParameter[]>> GetSavingParticleDataToDBCmds(List<COTSParticleClr> m_listParticle)
         {
             List<KeyValuePair<string, SQLiteParameter[]>> cmds = new List<KeyValuePair<string, SQLiteParameter[]>>();
             if (m_listParticle.Count == 0)
@@ -288,7 +288,7 @@ namespace OTSModelSharp
             foreach (var pParticle in m_listParticle)
             {
 
-                var cmd = m_IncADataDB.GegInsertingAnParticleCmd(pParticle, m_FieldPos);
+                var cmd = m_IncADataDB.GegInsertingAnParticleCmd(pParticle);
 
               
                 cmds.Add(cmd);