Browse Source

添加修改类

sunyi 5 years ago
parent
commit
3ec639f91b

+ 41 - 1
OTS/OTSModelSharp/DTLBase/CSQLiteDB.cs

@@ -127,5 +127,45 @@ namespace OTSModelSharp.DTL
      {
 	   return myTable.GetInsertCommandFormatString(a_bWithPrimary);
      }
-}
+
+        //同步关闭
+        public bool CloseSynchronous() {
+
+            String sCommand = "";
+            string.Format("PRAGMA synchronous = OFF; ", 0, 0, 0);
+            var datastorePtr = new SqlHelper(GetDatastore());            
+            int ret = datastorePtr.ExecuteNonQuery(sCommand);
+            if (ret==0)
+            {
+                return true;
+            }
+
+            return false;
+
+        }
+
+        public  bool BeginTransaction()
+        {
+            var datastorePtr = new SqlHelper(GetDatastore());
+            int ret = datastorePtr.ExecuteNonQuery("begin transaction;");
+            if (ret!=0)
+            {
+                return true;
+            }
+
+            return false;
+        }
+
+       public bool CommitTransaction()
+       {
+            var datastorePtr = new SqlHelper(GetDatastore());
+            int ret = datastorePtr.ExecuteNonQuery("commit transaction;");
+            if (ret!=0)
+            {
+                return true;
+            }
+
+            return false;
+       }
+    }
 }

+ 11 - 11
OTS/OTSModelSharp/Measure/GetParam/OTSProgMgrParamFile.cs

@@ -98,7 +98,13 @@ namespace OTSModelSharp
         // X-Ray parameter
         COTSXRayParam m_pXRayParam;
 
-       
+        // particle area																						
+         CDoubleRange INCA_AREA =new CDoubleRange ( 5, 100 );
+        // background gray
+         CIntRange BACK_GRAY = new CIntRange( 100, 255 );
+        // particle gray
+        CIntRange INCA_GRAY = new CIntRange ( 5, 100 );
+
 
 
 
@@ -271,8 +277,8 @@ namespace OTSModelSharp
                 pStageData.SetXAxis(pXAxis);
                 CIntRange pYAxis = new CIntRange(Convert.ToInt32(STAGE_DATA_Y_AXIS_START), Convert.ToInt32(STAGE_DATA_Y_AXIS_END));
                 pStageData.SetYAxis(pYAxis);
-                //pStageData.SetXAxisDir(DataPublic.STAGE_DATA_X_AXIS_DIRECTION);
-                // pStageData.SetYAxisDir(DataPublic.STAGE_DATA_Y_AXIS_DIRECTION);
+                pStageData.SetXAxisDir(DataPublic.STAGE_DATA_X_AXIS_DIRECTION);
+                pStageData.SetYAxisDir(DataPublic.STAGE_DATA_Y_AXIS_DIRECTION);
                 pStageData.GetXAxisDir();
                 pStageData.GetYAxisDir();
                 pStageData.SetMinMag(otsdataconst.MAGNIFICATION_MIN);
@@ -307,18 +313,12 @@ namespace OTSModelSharp
 
                 //image process parameter
                 COTSImageProcessParam  pImageProcParam = new COTSImageProcessParam ();
-
-                // particle area																						
-                CDoubleRange INCA_AREA = new CDoubleRange(5, 100);
-                // background gray
-                CIntRange BACK_GRAY = new CIntRange(100, 255);
-                // particle gray
-                CIntRange INCA_GRAY = new CIntRange(5, 100);
-
                 pImageProcParam.SetIncAreaRange(INCA_AREA);
                 pImageProcParam.SetBGGray(BACK_GRAY);
                 pImageProcParam.SetParticleGray(INCA_GRAY);
 
+               
+
                 // X-Ray parameter
                 COTSXRayParam pXRayParam = new COTSXRayParam();
                 pXRayParam.SetScanMode(DataPublic.SCAN_MODE);

+ 35 - 8
OTS/OTSModelSharp/Measure/GetParticle/ElementChemistryDB.cs

@@ -340,6 +340,33 @@ namespace OTSModelSharp.DTL
 
     }
 
+       public bool GetAllMapedXrayInfo(Dictionary<List<int> , CPosXrayInfo> mapXrayInfo)
+            
+        {
+            var allRecords = this.GetXrayInfoList(false);
+
+            foreach (var xray in allRecords)
+            {
+                int curFldId = xray.GetScanFieldId();
+                int xrayId = xray.GetIndex();
+                List<int> fldvec = new List<int>();
+                fldvec.Add(curFldId);
+                fldvec.Add(xrayId);
+                var itr = mapXrayInfo.First();
+                   
+                //if (itr == mapXrayInfo.)
+                //{
+
+                //    mapXrayInfo.Add(Dictionary<List<int>, CPosXrayInfo>(fldvec, xray));
+                //}
+
+
+            };
+            //allRecords->Close();
+            return true;
+        }
+
+    
         public bool IsTableExists(String a_sTableName)
         {
 
@@ -347,7 +374,7 @@ namespace OTSModelSharp.DTL
 
         }
 
-       public List<CPosXrayInfo> ReadXrayPointInfoList(DataTable a_query)
+        public List<CPosXrayInfo> ReadXrayPointInfoList(DataTable a_query)
         {
             List<CPosXrayInfo> xrayPointInfoVec = new List<CPosXrayInfo>();
 
@@ -357,17 +384,17 @@ namespace OTSModelSharp.DTL
             {
                 var xrayPointInfo = ReadPosXrayInfo(a_query);  //current x-ray point		
 
-                if (xrayPointInfo!=null)
+                if (xrayPointInfo != null)
                 {
-                   
+
                     nWrongItems++;
                 }
                 else
                 {
-                    if (xrayPointInfoVec.Count!=0)
+                    if (xrayPointInfoVec.Count != 0)
                     {
                         int a_nXrayId = xrayPointInfo.GetIndex();
-                     List< CElementChemistry> listElementNew = xrayPointInfo.GetElementQuantifyData();
+                        List<CElementChemistry> listElementNew = xrayPointInfo.GetElementQuantifyData();
 
                         int nIndex = 0;
 
@@ -376,7 +403,7 @@ namespace OTSModelSharp.DTL
                             xrayPointInfoVec.Remove(xrayPointInfoVec[nIndex]);
                             if (xrayInfo.GetIndex() == a_nXrayId)
                             {
-                               List< CElementChemistry> listElementOld = xrayInfo.GetElementQuantifyData();
+                                List<CElementChemistry> listElementOld = xrayInfo.GetElementQuantifyData();
 
                                 foreach (var pElement in listElementNew)
                                 {
@@ -402,8 +429,8 @@ namespace OTSModelSharp.DTL
             return xrayPointInfoVec;
         }
 
-    
+      
+
 
-   
     }
 }

+ 13 - 14
OTS/OTSModelSharp/Measure/GetParticle/IncADataDB.cs

@@ -12,16 +12,16 @@ using OTSModelSharp.DTL;
 
 namespace OTSModelSharp
 {
-    class CIncADataDB : CSQLiteDB 
+  public   class CIncADataDB : CSQLiteDB 
     {
         public CIncADataDB(string _conStr, CSQLiteTable _table) : base(_conStr, _table)
         {
 
         }
 
-       
+               
 
-        bool UpdataAIncA(COTSParticle a_pParticle)
+        public  bool UpdataAIncA(COTSParticle a_pParticle)
         {
             if (!Init())
             {
@@ -53,6 +53,7 @@ namespace OTSModelSharp
             return true;
         }
 
+
         public bool SaveAIncA(COTSParticle a_pParticle, CPosXray a_pXray, System.Drawing.Point fldPos)
         {
             if (!Init())
@@ -90,18 +91,13 @@ namespace OTSModelSharp
             {
                 return false;
             }
-            //string sInsertFormat = tableInfoPtr.GetInsertCommandFormatString(true);
-            //string sSQLCommand;
-
-            //sSQLCommand.Format(sInsertFormat, a_pParticle.GetFieldId(), a_pParticle.GetAnalysisId(), a_pParticle.GetAveGray(), a_pParticle.GetParticleRect().left, a_pParticle.GetParticleRect().top, a_pParticle.GetParticleRect().Width(), a_pParticle.GetParticleRect().Height(), a_pParticle.GetArea(), a_pParticle.GetXRayPos().x, a_pParticle.GetXRayPos().y, a_pParticle.GetType(), (int)a_pXray.GetElementQuantifyData().size(), (int)(a_pParticle.GetFeature().GetSegmentsList().size()), fldPos.x, fldPos.y, a_pParticle.GetTagId(), a_pParticle.GetDMax(), a_pParticle.GetDMin(), a_pParticle.GetDPerp(), a_pParticle.GetPerimeter(), a_pParticle.GetOrientation(), a_pParticle.GetDInscr(), a_pParticle.GetDMean(), a_pParticle.GetDElong(), a_pParticle.GetFeretDiameter(), a_pParticle.TypeName().c_str(), a_pParticle.TypeColor().c_str());
-
-            //if (!datastorePtr.RunCommand(sSQLCommand))
-            //{
-            //    LogErrorTrace(__FILE__, __LINE__, _T("Insert inclusion data(%d:%d:%d:%d:%d:%d:%d:%f:%d:%d:%d:%d:%s:%s:%s:%s:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f:%f) failed: %s command error"), a_pParticle.GetFieldId(), a_pParticle.GetAnalysisId(), a_pParticle.GetAveGray(), a_pParticle.GetParticleRect().left, a_pParticle.GetParticleRect().top, a_pParticle.GetParticleRect().Width(), a_pParticle.GetParticleRect().Height(), a_pParticle.GetArea(), a_pParticle.GetXRayPos().x, a_pParticle.GetXRayPos().y, a_pParticle.GetType(), (int)a_pXray.GetElementQuantifyData().size(), (int)(a_pParticle.GetFeature().GetSegmentsList().size()), fldPos.x, fldPos.y, a_pParticle.GetTagId(), a_pParticle.GetDMax(), a_pParticle.GetDMin(), a_pParticle.GetDPerp(), a_pParticle.GetPerimeter(), a_pParticle.GetOrientation(), a_pParticle.GetDInscr(), a_pParticle.GetDMean(), a_pParticle.GetDElong(), a_pParticle.GetFeretDiameter(), a_pParticle.TypeName(), a_pParticle.TypeColor(), sSQLCommand);
+            string sInsertFormat = GetInsertCommandFormatString(true);
+            string sSQLCommand = "";
 
-            //    Debug.Assert(0);
-            //    return 0;
-            //}
+            string.Format(sInsertFormat, a_pParticle.GetFieldId(), a_pParticle.GetAnalysisId(), a_pParticle.GetAveGray(), a_pParticle.GetParticleRect().BottomLeft, a_pParticle.GetParticleRect().Top, a_pParticle.GetParticleRect().Width, a_pParticle.GetParticleRect().Height, a_pParticle.GetArea(), a_pParticle.GetXRayPos().X, a_pParticle.GetXRayPos().Y, a_pParticle.GetType(), (int)a_pXray.GetElementQuantifyData().Count, (int)(a_pParticle.GetFeature().GetSegmentsList().Count), fldPos.X, fldPos.Y, a_pParticle.GetTagId(), a_pParticle.GetDMax(), a_pParticle.GetDMin(), a_pParticle.GetDPerp(), a_pParticle.GetPerimeter(), a_pParticle.GetOrientation(), a_pParticle.GetDInscr(), a_pParticle.GetDMean(), a_pParticle.GetDElong(), a_pParticle.GetFeretDiameter(), a_pParticle.TypeName().ToString(), a_pParticle.TypeColor().ToString());
+            
+            int ret = datastorePtr.ExecuteNonQuery(sSQLCommand);
+            
             string[] values = new string[] { a_pParticle.GetFieldId().ToString(), a_pParticle.GetAnalysisId().ToString(), a_pParticle.GetAveGray().ToString(), a_pParticle.GetParticleRect().Left.ToString(), a_pParticle.GetParticleRect().Top.ToString(), a_pParticle.GetParticleRect().Width.ToString(), a_pParticle.GetParticleRect().Height.ToString(), a_pParticle.GetArea().ToString(), a_pParticle.GetXRayPos().X.ToString(), a_pParticle.GetXRayPos().Y.ToString(), a_pParticle.GetType().ToString(), ((int)a_pXray.GetElementQuantifyData().Count()).ToString(), ((int)(a_pParticle.GetFeature().GetSegmentsList().Count)).ToString(), fldPos.X.ToString(), fldPos.Y.ToString(), a_pParticle.GetTagId().ToString(), a_pParticle.GetDMax().ToString(), a_pParticle.GetDMin().ToString(), a_pParticle.GetDPerp().ToString(), a_pParticle.GetPerimeter().ToString(), a_pParticle.GetOrientation().ToString(), a_pParticle.GetDInscr().ToString(), a_pParticle.GetDMean().ToString(), a_pParticle.GetDElong().ToString(), a_pParticle.GetFeretDiameter().ToString(), a_pParticle.TypeName(), a_pParticle.TypeColor() };
             datastorePtr.InsertValues(tableInfoPtr.TableName, values);
 
@@ -182,7 +178,9 @@ namespace OTSModelSharp
                     p.TypeColor(allRecords.Rows[(int)CIncADataTable.ColumnID.S_COLOR][0].ToString());
                     ps.Add(p);
                 }
+                allRecords.NewRow();
             }
+            allRecords.Clone();
             return true;
         }
 
@@ -231,6 +229,7 @@ namespace OTSModelSharp
         protected DataTable GetQueryOfAllRecord()
         {
             //CDBQueryBase query = new CDBQueryBase();
+            
             var datastorePtr = new SqlHelper(GetDatastore());
             //Debug.Assert(datastorePtr);
             //if (!datastorePtr)

+ 39 - 17
OTS/OTSModelSharp/Measure/GetParticle/IncAFileMgr.cs

@@ -22,7 +22,7 @@ namespace OTSModelSharp
         List<CPosXray> m_listPosXray = new List<CPosXray>();
 
         //database
-        CIncAFileMgr m_pIncADataDB;
+        CIncADataDB m_pIncADataDB;
 
         CSQLiteTable cSQLiteTable = new CSQLiteTable();
 
@@ -47,21 +47,43 @@ namespace OTSModelSharp
 
         CSegmentDB m_SegmentDB;
 
-       
+        CXRayDataDB m_pXrayDataDB;
+
+
 
         public   CIncAFileMgr(String fileName)
 	    {
-		// initialization		
-		m_strPathName = fileName;
-		Init();
-        var mergePartDB = this.GetMergedParticleDB();
-        mergePartDB.Init();//judge if the table exist,if exist delete firstly,then creat,else creat.
-        var smallPartDB = this.GetSmallParticleInfoDB();
-       // smallPartDB.Init();
+		    // initialization		
+		    m_strPathName = fileName;
+		    Init();
+            var elecheDB = this.GetIncADB();//GetElementChemistryDB();
+            elecheDB.Init();
+            var xrayDB = this.GetXrayDataDB();
+            xrayDB.Init();
+            var segmentDB = this.GetSegmentDB();
+            segmentDB.Init();
+            var mergePartDB = this.GetMergedParticleDB();
+            mergePartDB.Init();//judge if the table exist,if exist delete firstly,then creat,else creat.
+            var smallPartDB = this.GetSmallParticleInfoDB();
+            // smallPartDB.Init();
+        }
+
+      public  CXRayDataDB GetXrayDataDB()
+        {
+            if (m_pXrayDataDB!=null)
+            {
+                var datastorePtr = GetDatastore();
+                if (datastorePtr!=null)
+                {
+                    m_pXrayDataDB = new CXRayDataDB("", cSQLiteTable);
+                }
+            }
+
+            return m_pXrayDataDB;
         }
 
         // initialization
-      public  void Init()
+        public  void Init()
         {
 
             // particle list
@@ -188,11 +210,12 @@ namespace OTSModelSharp
             return m_pSmallPartInfoDB;
         }
 
-        public  bool UpdateIncAList()
+
+        public bool UpdateIncAList()
         {
             var IncADataDB = GetIncADB();
-            IncADataDB.GetDatastore().CloseSynchronous();
-            IncADataDB.GetDatastore().BeginTransaction();
+            GetDatastore().CloseSynchronous();
+            GetDatastore().BeginTransaction();
             foreach (var pParticle in m_listParticle)
             {
                 if (!IncADataDB.UpdataAIncA(pParticle))
@@ -201,19 +224,18 @@ namespace OTSModelSharp
                     return false;
                 }
             }
-            IncADataDB.GetDatastore().CommitTransaction();
+           GetDatastore().CommitTransaction();
             return true;
         }
-
         //Get DB
-        public   CIncAFileMgr  GetIncADB()
+        public   CIncADataDB  GetIncADB()
         {
             if (m_pIncADataDB!=null)
             {
                 var datastorePtr = GetDatastore();
                 if (datastorePtr!=null)
                 {
-                    m_pIncADataDB = new CIncAFileMgr("");
+                    m_pIncADataDB = new CIncADataDB("", cSQLiteTable);
                 }
             }
          

+ 13 - 28
OTS/OTSModelSharp/Measure/GetParticle/PosXrayInfoDB.cs

@@ -132,8 +132,8 @@ namespace OTSModelSharp
             }
 
             //CSQLiteTable cSQLiteTable = new CSQLiteTable();
-            //String sInsertFormat = cSQLiteTable.GetInsertCommandFormatString(true);
-            //string sSQLCommand;
+            String sInsertFormat = GetInsertCommandFormatString(true);
+            string sSQLCommand;
             //foreach(CPosXrayInfo xrayPointInfo in a_xrayPointInfoList)
             //{
             //    sSQLCommand= sInsertFormat+ Convert.ToString(xrayPointInfo.GetIndex())+
@@ -275,25 +275,10 @@ namespace OTSModelSharp
         protected List<CPosXrayInfo> ReadXrayPointInfoListByQuery(DataTable a_query)
         {
             List<CPosXrayInfo> xrayPointInfoVec =new List<CPosXrayInfo>();
-            //xrayPointInfoVec.Clear();
-            //int nRowId = 0;
-            //int nWrongItems = 0;
-            //while (!a_query.IsEOF())
-            //{
-            //    CPosXrayInfo xrayPointInfo = ReadXrayPointInfo(a_query);
-
-            //    if (xrayPointInfo!=null)
-            //    {
-            //        logger.Info("Read xray point info item failed: row id: %d");
-            //        nWrongItems++;
-            //    }
-            //    else
-            //    {
-            //        xrayPointInfoVec.Add(xrayPointInfo);
-            //    }
-            //    a_query.NextRow();
-            //    nRowId++;
-            //}
+            xrayPointInfoVec.Clear();
+            int nRowId = 0;
+            int nWrongItems = 0;
+           
             
             for (int i=0; i< a_query.Rows.Count;i++)
             {
@@ -301,14 +286,14 @@ namespace OTSModelSharp
                 if(xrayPointInfo != null)
                 {
                     logger.Info("Read xray point info item failed: row id: %d",i);
-                    //nWrongItems++;
+                    nWrongItems++;
                 }
                 else
                 {
                     xrayPointInfoVec.Add(xrayPointInfo);
                 }
                 //a_query.NextRow();
-                //nRowId++;
+                nRowId++;
             }
             
 
@@ -360,14 +345,14 @@ namespace OTSModelSharp
             //    return query;
             //}
             string sFieldIdColumnName = tableInfoPtr.columns[Convert.ToInt32(CPosXrayInfoTable.ColumnID.N_FIELD_ID) - Convert.ToInt32(CPosXrayInfoTable.ColumnID.MIN)].ColumName;
-            //string sSQLCommand;
-            //sSQLCommand = "SELECT * FROM \'{0}\' WHERE {1} ={2};" + Convert.ToString(tableInfoPtr.GetTableName()) +
-            //    Convert.ToString(sFieldIdColumnName) + a_nFieldId;
+            string sSQLCommand;
+            sSQLCommand = "SELECT * FROM \'{0}\' WHERE {1} ={2};" + Convert.ToString(tableInfoPtr.TableName) +
+               Convert.ToString(sFieldIdColumnName) + a_nFieldId;
             //CSQLiteQuery cSQLiteQuery = new CSQLiteQuery();
             //query = datastorePtr.QueryByCommand(sSQLCommand);
 
-            string sSQLCommand = string.Format("SELECT * FROM \'{0}\' WHERE {1} ={2};",tableInfoPtr.TableName,sFieldIdColumnName, a_nFieldId);
-            DataTable t1 = datastorePtr.ExecuteQuery(sSQLCommand);
+            string sSQLCommands = string.Format("SELECT * FROM \'{0}\' WHERE {1} ={2};",tableInfoPtr.TableName,sFieldIdColumnName, a_nFieldId);
+            DataTable t1 = datastorePtr.ExecuteQuery(sSQLCommands);
 
             //ASSERT(query);
             //if (query==null || !query.IsValid())