OxfordScanController.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. 
  2. using OINA.Extender.Data.Image;
  3. using OTSCLRINTERFACE;
  4. using OxfordExtenderWrapper;
  5. using OTSModelSharp.ServiceCenter;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Drawing;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using System.Runtime.Remoting.Channels.Ipc;
  13. using System.Runtime.Remoting.Channels;
  14. using OTSMeasureApp.ServiceCenter.OxfordExtender;
  15. namespace OTSMeasureApp.ServiceCenter
  16. {
  17. class OxfordScanController : IScanController
  18. {
  19. int imageWidth = 0;
  20. int imageHeight = 0;
  21. double dwelltime = 0;
  22. ExtenderIpcUI iExtender;
  23. ImageInputSources imagesourceType;
  24. //private APIClass ApiClass = null;
  25. public OxfordScanController(ImageInputSources sourceType)
  26. {
  27. //IpcClientChannel channel = new IpcClientChannel();
  28. ////Register the channel with ChannelServices.
  29. //ChannelServices.RegisterChannel(channel, false);
  30. //iExtender = (ExtenderWrapper)Activator.GetObject(typeof(ExtenderWrapper), "ipc://ExtenderServerChannel/ExtenderWrapper");
  31. iExtender = ExtenderWrapperIpc.GetExtenderWrapper();
  32. imagesourceType = sourceType;
  33. }
  34. public CBSEImgClr AcquireBSEImage()
  35. {
  36. Rectangle r = new Rectangle();
  37. CBSEImgClr bse = new CBSEImgClr(r);
  38. bse.InitImageData(imageWidth, imageHeight);
  39. //byte[] imgData = new byte[imageWidth * imageHeight];
  40. ImageAquistionParam p = new ImageAquistionParam();
  41. p.width = imageWidth;
  42. p.height = imageHeight;
  43. p.DwellTime = dwelltime;
  44. p.sourceType = imagesourceType;
  45. iExtender.AquisitionImage(ref p);
  46. bse.SetImageData(p.ImageData, imageWidth, imageHeight);
  47. return bse;
  48. }
  49. public bool Init()
  50. {
  51. //string FEIIP = FileHelper.GetXMLInformations("FEIIP");
  52. //string FEIPORT = FileHelper.GetXMLInformations("FEIPORT");
  53. //if (FEIIP == "" || FEIPORT == "")
  54. //{
  55. // NLog.LogManager.GetCurrentClassLogger().Error("FEI电镜端口配置为空!");
  56. // return false;
  57. //}
  58. //if (ApiClass.isConnect())
  59. //{
  60. // return true;
  61. //}
  62. //return ApiClass.Connect(FEIIP, FEIPORT);
  63. return true;
  64. }
  65. public bool SetDwellTime(double val)
  66. {
  67. dwelltime = val;
  68. return true;
  69. }
  70. public bool SetImageSize(int nWidth, int nHeight)
  71. {
  72. imageWidth = nWidth;
  73. imageHeight = nHeight;
  74. //return iExtender.set.SetResolution(imageWidth, imageHeight); ;
  75. return true;
  76. }
  77. }
  78. }