SemController.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using OTSDataType;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Drawing;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace OTSModelSharp.ServiceInterface
  9. {
  10. public class SemController : ISemController
  11. {
  12. public static NSOTSController.COTSControlFunExport hw;
  13. public SemController()
  14. {
  15. hw = new NSOTSController.COTSControlFunExport();
  16. }
  17. public bool Connect()
  18. {
  19. if (hw.IsConnected())
  20. {
  21. return true;
  22. }
  23. else
  24. { //和电镜建立通讯连接
  25. return hw.ConncetSem();
  26. }
  27. }
  28. public bool DisConnect()
  29. {
  30. return true;
  31. //return hw.DisConnectSem();
  32. }
  33. public bool GetSEMDataGnrFromHw(ref CSEMDataGnr SemDataGnr)
  34. {
  35. double kv=0, brightness=0, contrast=0;
  36. hw.GetSemHighTension(ref kv);
  37. hw.GetSemBrightness(ref brightness);
  38. hw.GetSemContrast(ref contrast);
  39. SemDataGnr.SetValue(kv, brightness, contrast);
  40. return true;
  41. }
  42. public bool GetMagnification(ref double a_dMagnification)
  43. {
  44. return hw.GetSemMagnification(ref a_dMagnification);
  45. }
  46. public bool GetScanFieldSize(ref double dScanFieldSizeX, ref double dScanFieldSizeY)
  47. {
  48. return hw.GetSemScanFieldSize(ref dScanFieldSizeX, ref dScanFieldSizeY);
  49. }
  50. public bool GetSemPositionXY(ref double a_dPositionX, ref double a_dPositionY, ref double a_dPositionR)
  51. {
  52. return hw.GetSemPositionXY(ref a_dPositionX, ref a_dPositionY, ref a_dPositionR);
  53. }
  54. public bool GetWorkingDistance(ref double a_distance)
  55. {
  56. return hw.GetSemWorkingDistance(ref a_distance);
  57. }
  58. public bool IsConnected()
  59. {
  60. //return true;
  61. return hw.IsConnected();
  62. }
  63. public bool MoveSEMToPoint(Point poi, double rotation)
  64. {
  65. return hw.MoveSEMToPoint(poi.X, poi.Y, rotation);
  66. }
  67. public bool SetMagnification(double a_dMagnification)
  68. {
  69. //hw.SetMagnification(a_dMagnification);
  70. hw.SetSemMagnification(a_dMagnification);
  71. return true;
  72. }
  73. public bool SetScanExternal(bool b)
  74. {
  75. //int seValue = b ? 1 : 0;
  76. return hw.SetSemScanExternal(b);
  77. }
  78. public bool SetWorkingDistance(double a_distance)
  79. {
  80. return hw.SetSemWorkingDistance(a_distance);
  81. }
  82. public NSOTSController.COTSControlFunExport GetHardwareInterface()
  83. {
  84. return hw;
  85. }
  86. }
  87. }