123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- using OTSCLRINTERFACE;
- using OTSDataType;
- using OTSModelSharp.DTLBase;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.IO;
- using System.Linq;
- using System.Runtime.Serialization.Formatters.Binary;
- using System.Text;
- using System.Threading.Tasks;
- namespace OTSModelSharp
- {
- public class CXRayDataDB : CSQLiteDB
- {
- List<CPosXrayClr> m_listPosXray;
-
- const long GENERALXRAYCHANNELS = 2000;
-
- public CXRayDataDB(IDBStoreBase _fileName, IDBTableBase _table) : base(_fileName, _table)
- {
- m_listPosXray = new List<CPosXrayClr>();
- }
-
-
- public List< CPosXrayClr> GetXrayList( bool a_bForce/* = FALSE*/)
- {
- if (a_bForce)
- {
- m_listPosXray.Clear();
- }
- if (m_listPosXray.Count == 0)
- {
- ReadAllXrayList();
- }
- return m_listPosXray;
- }
- public bool ReadAllXrayList()
- {
- var t = GetTableInfo();
- var query = GetTableQueryForDataTable(t.GetTableName());
-
- ReadXrayListFromAQuery(query,ref m_listPosXray);
- return true;
- }
- public bool ReadXrayListFromAQuery(DataTable a_query,ref List<CPosXrayClr> a_XrayList)
- {
-
- Dictionary<string, CPosXrayClr> mapXrayInfo = new Dictionary<string, CPosXrayClr>();
- foreach (DataRow row in a_query.Rows)
- {
- int nCol = (int)CXRayDataTable.ColumnID.N_FIELD_ID - (int)CXRayDataTable.ColumnID.MIN;
- int curFldId = Convert.ToInt32(row[nCol]);
- nCol = (int)CXRayDataTable.ColumnID.N_INDEX - (int)CXRayDataTable.ColumnID.MIN;
- int xrayId = Convert.ToInt32(row[nCol]);
- string fldvec = "";
- fldvec+=curFldId.ToString();
- fldvec += "_";
- fldvec += xrayId.ToString();
- nCol = (int)CXRayDataTable.ColumnID.N_XRAY_DATA - (int)CXRayDataTable.ColumnID.MIN;
- byte[] xraydata = (byte[])row[nCol];
- uint[] uintData = new uint[GENERALXRAYCHANNELS];
- for (int j = 0; j < GENERALXRAYCHANNELS; j++)
- {
- int m = j * 4;
- uint d = xraydata[m + 3];
- d = d << 8;
- d = d | xraydata[m + 2];
- d = d << 8;
- d = d | xraydata[m + 1];
- d = d << 8;
- d = d | xraydata[m];
- uintData[j] = d;
- }
- if (!mapXrayInfo.ContainsKey(fldvec))
- {
- CPosXrayClr xray = new CPosXrayClr();
- xray.SetXrayData(uintData);
- mapXrayInfo.Add(fldvec, xray);
- }
- else
- {
- CPosXrayClr xray = mapXrayInfo[fldvec];
- xray.SetXrayData(uintData);
- }
- }
- foreach (var keyvalue in mapXrayInfo)
- {
- a_XrayList.Add(keyvalue.Value);
- }
- return true;
- }
-
- public bool GetAllMapedXrayData(ref Dictionary<string, CPosXrayClr> mapXrayInfo)
- {
- var t = GetTableInfo();
- var query = GetTableQueryForDataTable(t.GetTableName());
- foreach (DataRow row in query.Rows)
- {
- int nCol = (int)CXRayDataTable.ColumnID.N_FIELD_ID - (int)CXRayDataTable.ColumnID.MIN;
- int curFldId = Convert.ToInt32(row[nCol]);
- nCol = (int)CXRayDataTable.ColumnID.N_INDEX - (int)CXRayDataTable.ColumnID.MIN;
- int xrayId = Convert.ToInt32(row[nCol]);
- string fldvec = "";
- fldvec+=curFldId.ToString();
- fldvec+="_";
- fldvec += xrayId.ToString();
- nCol = (int)CXRayDataTable.ColumnID.N_XRAY_DATA - (int)CXRayDataTable.ColumnID.MIN;
- byte[] xraydata = (byte[])row[nCol];
- uint[] uintData = new uint[GENERALXRAYCHANNELS];
- for (int j = 0; j < GENERALXRAYCHANNELS; j++)
- {
- int m = j * 4;
- uint d = xraydata[m + 3];
- d = d << 8;
- d = d | xraydata[m + 2];
- d = d << 8;
- d = d | xraydata[m + 1];
- d = d << 8;
- d = d | xraydata[m];
- uintData[j] = d;
- }
- if (!mapXrayInfo.ContainsKey(fldvec))
- {
- CPosXrayClr xray = new CPosXrayClr();
- xray.SetXrayData(uintData);
- mapXrayInfo.Add(fldvec, xray);
- }
- else
- {
- CPosXrayClr xray = mapXrayInfo[fldvec];
- xray.SetXrayData(uintData);
- }
- }
- return true;
- }
- }
- }
|