OTSDataMgrInterface.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. 
  2. using OTSDataType;
  3. using OTSModelSharp;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace OTSIncAMeasureApp
  11. {
  12. interface OTSDataMgrInterface
  13. {
  14. //获取系统文件是否存在和有效
  15. bool IsValidSystemFileExist(bool bNewFileFlag = true);
  16. //判断系统文件是否存在
  17. bool SystemFileExit();
  18. //bHasWFileFlg=true; 判断工作文件是否有样品信息,如果没有信息,可以允许客户去修改或者删除,或者重新new工作文件。
  19. //如果客户更改样品台信息,需要重新产生新的工作文件
  20. bool ShowProgMgrEditDlg();
  21. //获取绘制样品台的数据
  22. bool GetSampleStageData();
  23. // 新建样品工作文件
  24. bool CreateNewFile();
  25. //打开已存在的样品台工作文件
  26. bool OpenExistSampleFile();
  27. //保存样品文件+
  28. bool SaveFile();
  29. //另存文件
  30. bool SaveAsFile();
  31. //检查测量区域是否超过样品台区域
  32. bool CheckMeasureAreaIsByondStageArea(Rectangle RMeasureArea, Rectangle RStageArea, int iShape);
  33. //将样品台坐标转换为Sem 坐标
  34. Point ChangeOTSToSemCoord(Point POTSCoord);
  35. //获取放大倍数和工作距离
  36. bool GetMagAndDistance(ref double SemMag, ref double dDistance);
  37. //添加样品
  38. //string sSHoleName: 样品孔名,当在样品孔上点击右键添加样品时,sSHoleName=样品孔名。当MEASUREAPP和TREEVIEW添加样品时,sSHoleName=""
  39. //返回新的工作样品属性
  40. OTSSampleMeaInfo AddNewSample(string sSHoleName = "");
  41. //设置工作样品的属性值
  42. bool SetSampleParamVal(OTS_SAMPLE_PROP_GRID_ITEMS ItemId, OTS_ITEM_TYPES ValType, object objVal);
  43. //获取工作样品
  44. // 返回工作样品对象
  45. COTSSample GetWorkSample();
  46. //设置工作样品
  47. //string sNewWorkSampleName: 新工作样品
  48. bool SetWorkSample(string sNewWorkSampleName);
  49. //删除工作样品
  50. //string sWorkSampleName : 删除工作样品名称
  51. bool DeleteWorkSample(string sWorkSampleName);
  52. //获取图像尺寸参数
  53. //double iMag : 放大倍数
  54. //ref int iSFieldSize : 返回的Field图片尺寸
  55. void GetScanFieldSize(double iMag, ref int iSFieldSize);
  56. // 获取样品总数
  57. int GetSampleCount();
  58. //改变工作样品名称
  59. //String sWSampleNewName
  60. bool ChangeWorkSampleName(String sWSampleNewName);
  61. //移动工作样品到其他样品孔,样品孔名称和测量区域都要改变,重新设置工作样品参数
  62. //SampleMeasurePara SMeasurePara:
  63. SampleMeasurePara SetWorkSampleHoleNameAndMeasureArea(SampleMeasurePara SMeasurePara);
  64. //设置测量区域的形状 (通过RIBBON 上的画圆,画矩形 设置)
  65. //int iShape: 测量区域形状 0: 圆形; 1 :矩形
  66. void SetMeasureAreaShape(int iShape);
  67. //修改了ITEMID后,重新更新GROUPID和ITEMID
  68. void UpdateGroupValAndItemVal(OTS_SAMPLE_PROP_GRID_ITEMS ItemID);
  69. //获取COMBOX列表显示内容的Index值, 当前COMBBOX里显示的字符串的对应的ID号
  70. bool GetCombboxValIndex(OTS_SAMPLE_PROP_GRID_ITEMS ItemID, ref int iIndex);
  71. //SetCOMBOX列表显示内容的Index值
  72. bool SetCombboxValIndex(OTS_SAMPLE_PROP_GRID_ITEMS ItemID, int iIndex);
  73. //获取COMMBOX显示的字符串在LIST中保存的位置
  74. //bool GetValInCombboxIndex(OTS_SAMPLE_PROP_GRID_ITEMS ItemId, string sVal, ref int iIndex);
  75. //当SampleSpaceWindow 获取电镜参数时,SampleSpaceWindow给MeasureApp发送事件通知MEASUREP更新电镜工作参数参数
  76. bool UpdateSEMData();
  77. //设置工作样品参数锁
  78. bool SetSampleParaLock(bool ParaLockFlag);
  79. //获取工作样品锁
  80. //ref bool ParamLockFlag : 获取的工作样品参数锁
  81. bool GetWSampleParaLock(ref bool ParamLockFlag);
  82. //获取工作样品测量锁
  83. bool GetWSampleParaLock(ref OTSSampleMeaInfo SMInfo);
  84. //重新设置样品在样品列表中的位置(当拖动TREEVIEW的样品顺序后执行 )
  85. bool SortSamplePosition(List<string> SNameList);
  86. //打开保存的样品文件
  87. //List<CWorkSampleParam> SampleFileList 样品文件中的样品列表,返回样品树信息给TREEVIEW显示
  88. //成功返回 True;
  89. bool OpenExistSampleFile(ref List<CTreeSampleParam> SampleMeasureInfoList);
  90. //打开保存的样品文件
  91. //List<SampleMeasurePara> SampleMeasureAreaList 样品文件中的样品列表,返回样品的测量区域给SampleSpaceWindow
  92. //成功返回 True;
  93. bool OpenExistSampleMeasureArea(ref List<SampleMeasurePara> SampleMeasureAreaList);
  94. //检查样品测量参数
  95. // 检查是否有测量的样品。1. 检查样品列表中是否有样品。2. 检查样品中的Genery参数中的SWITCH值是否为TRUE
  96. bool CheckMeasureSampleStatu();
  97. //检查样品测量参数
  98. //ref List<COTSSampleClr> SampleList: 返回的检查参数的样品列表
  99. //bool bCheckFlag: // True,在点击运行按钮 ;False, 用户点击检查参数按钮
  100. bool CheckSampleParam(bool bCheckFlag);
  101. //获取BSE图像数据
  102. bool GetBSEImageSize(ref int iHeight, ref int iWidth);
  103. //获取测量参数文件名称
  104. //int iNamePos: 文件名在链表中的位置
  105. //List<string> MParamFileNameList: 测量参数文件链表
  106. bool GetMeasureParamFileName(ref int iNamePos, ref List<string> MParamFileNameList);
  107. //设置测量文件名称
  108. //int iNamePos: 文件名在链表中的位置
  109. bool SetMeasrueParamFileName(int iNamePos);
  110. //获取STD 标准库文件名称
  111. //int iNamePos: 文件名在链表中的位置
  112. //List<string> STDFileNameList: STD文件链表
  113. bool GetSTDFileName(ref int iNamePos, ref List<string> STDFileNameList);
  114. //设置STD 标准库文件名称
  115. //int iNamePos: STD文件名在链表中的位置
  116. bool SetSTDFileName(int iNamePos);
  117. //保存工作样品的测量参数文件
  118. bool SaveWorkMeasureFile();
  119. //保存工作样品的STD标准库文件
  120. bool SaveWorkSTDFile();
  121. //打开工作样品的测量参数文件
  122. bool LoadWorkMeasureFile();
  123. //打开工作样品的STD标准库文件
  124. bool LoadWorkSTDFile();
  125. //获取样品标准库参数
  126. //CInclutionSTDDataClr GetPartSTDData();
  127. //设置样品标准库参数
  128. //void SetPartSTDData(CInclutionSTD/*D*/ataClr PartSTDData);
  129. //判断是否允许修改样品名
  130. bool CheckSampleNameIsValid(string sNewName);
  131. //获取系统标准库参数
  132. //CInclutionSTDDataClr GetSysPartSTDData();
  133. //设置系统标准库参数
  134. //void SetSysPartSTDData(CInclutionSTDDataClr PartSTDData);
  135. //设置电镜参数
  136. //int iScanFieldSize: Field扫描参数
  137. //int iWDistance: 电镜工作距离
  138. //double dMagni: 放大倍数
  139. void SetSEMData(double iWDistance, double dMagni);
  140. //获取电镜参数
  141. //int iScanFieldSize: Field扫描参数
  142. //int iWDistance: 电镜工作距离
  143. //double dMagni: 放大倍数
  144. void GetSEMData(ref double iWDistance, ref double dMagni);
  145. //获取幁图数
  146. //ref List<Point> pField: 幁图数
  147. bool GetField(ref List<Point> pField, ref Size iSzie);
  148. //获取工作样品的测量区域
  149. //int iShape :测量区域形状
  150. //Rectangle Srect: 测量区域大小
  151. bool GetWSampleMrsArea(ref int iShape, ref Rectangle Srect);
  152. //检查Samplelist中的sample的checkbox状态
  153. //当Samplelist中的链表有sample 的checkbox状态是选中状态,则返回TRUE. 说明可以测量
  154. bool GetSampleCheckBoxStatus();
  155. //获取图像尺寸
  156. string GetBSEImageSize();
  157. //获取测量的BSE图
  158. //Byte[] BSEImage: 带背景图数据
  159. //int iHeight: 图像高度
  160. //int iWidth: 图像宽度
  161. //Byte[]BSEImageNoBG : 去背景图数据
  162. bool GetBSEImage(Byte[] BSEImage, int iHeight, int iWidth,ref Byte[]BSEImageNoBG);
  163. //获取测量Sample已用时间
  164. bool GetMsrSampleUsedTime(ref TimeSpan TUsedTime);
  165. //获取测量Sample的开始时间
  166. bool GetMsrSampleStartTime(ref DateTime MsrFieldStartTime);
  167. //获取新的工作文件对象
  168. COTSProjMgrFile GetNewProjMgrClr();
  169. // 获取测量结果信息
  170. bool GetMsrRetData(ref SMSR_COMPLETE_DATA MsrCompleteData);
  171. // 获取测量样品中之前已经测量完成Field帧图,(上一次未测量完成继续测试)
  172. bool GetBeforeCompleteField(ref string MsrSampleName, ref List<Point> FieldList);
  173. /*
  174. *
  175. *
  176. * Old
  177. *
  178. *
  179. */
  180. //添加样品
  181. //string sSHoleName: 样品孔名,当在样品孔上点击右键添加样品时,sSHoleName=样品孔名。当MEASUREAPP和TREEVIEW添加样品时,sSHoleName=""
  182. bool AddSample(ref List<OTSSampleMeaInfo> SampleList, string sSHoleName = "");
  183. //获取工作样品的属性值
  184. //OTSSampleMeaInfo SMeasureInfo : 样品属性值
  185. bool GetWorkSamplePropertyVal(COTSSample SampleClr,ref OTSSampleMeaInfo SMeasureInfo);
  186. //获取样品的属性值
  187. //ref List<CTreeSampleParam> CTSampleParam : 打开已保存样品文件中的样品信息,用于TREEVIEW显示
  188. void GetExistSampleInfo(COTSSample SampleClr, ref CTreeSampleParam CTSampleParam);
  189. //删除样品
  190. //string sWorkSampleName : 需要删除的工作样品名称
  191. //返回 需要删除的工作样品名
  192. bool DeleteWorkSample();
  193. // 当TREEVIEW 的样品参数锁状态发生变化后,Solution 需要将样品参数锁状态发送给MeasureApp更新新的样品参数锁状态
  194. // string sSampleName : 样品参数锁对应的样品名
  195. //bool bParaLockFlag: 样品新的排列顺序;
  196. bool SetSampleLockPara(string sSampleName, bool bFlag);
  197. //当 OTSSamplespaceWindow 对应的工作样品测量区域发生变化后,需要更改对应的样品测量区域
  198. //string sWSampleName : 改变工作样品测量区域的样品名
  199. //int iShape: 测量区域形状
  200. //Point pStartPoint: 测量区域起点
  201. //Point pEndPoint : 测量区域终点
  202. void SetWSampleMeasureArea(string sWSampleName, int iShape, Point PStartPoint, Point PEndPoint);
  203. //修改工作样品的样品名
  204. //string sSampleNewName : 样品名新名
  205. bool EditWSampleName(string sSampleNewName);
  206. // 样品测量
  207. /// <summary>
  208. ///
  209. /// </summary>
  210. void InitMeasureThread();
  211. //初始化测量样品
  212. bool InitMeasureSample();
  213. // 开始样品测量
  214. void DoMeasure();
  215. //停止测量
  216. void SetMeasureThreadStatus(MSR_THREAD_STATUS ThreadStatus);
  217. //保存测量样品的
  218. bool SaveMeasureSampleInfo();
  219. // 释放MsrThread 指针
  220. void FreeMsrThreadPoint();
  221. }
  222. interface OTSImageInterface
  223. {
  224. //获取BSE图
  225. //int iWidth: 宽
  226. //int iHeigh: 高
  227. //byte bImageData: 图像数据
  228. //返回 图像数据长度 = iWidth*iHeigh
  229. // int GetBSEImage(int iWidth, int iHeigh, ref byte[] bImageData, bool bSimulatFlag = false);
  230. }
  231. }