URMFileIO.cs 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. using System;
  2. using System.IO;
  3. using Newtonsoft.Json;
  4. using Vinno.DataManager.Process;
  5. using Vinno.Infrastructure;
  6. using WingServerCommon.Log;
  7. using Logger = WingServerCommon.Log.Logger;
  8. namespace WingAIDiagnosisService.URMManage
  9. {
  10. public class URMAnalysisParam
  11. {
  12. public string UrmDatapath { get; set; }
  13. public string VecLens { get; set; }
  14. public string Mlas { get; set; }
  15. public string FramesGot { get; set; }
  16. public string CenterFrequencyMHz { get; set; }
  17. public string SupersonicSpeed { get; set; }
  18. public string FrequencyMin { get; set; }
  19. public string FrameRateDisplay { get; set; }
  20. public string ScaleOfPixel_x { get; set; }
  21. public string ScaleOfPixel_y { get; set; }
  22. public string ULMCount { get; set; }
  23. public string PacketsNum { get; set; }
  24. public string Res { get; set; }
  25. public string MaxLinkingDistance { get; set; }
  26. public string MinLength { get; set; }
  27. public string MaxGapClosing { get; set; }
  28. public string LocMethod { get; set; }
  29. public string NLocalMax { get; set; }
  30. public string Fwhm { get; set; }
  31. public string MOCOYN { get; set; }
  32. public string MOCOLevel { get; set; }
  33. public string MOCOThresh1 { get; set; }
  34. public string MOCOThresh2 { get; set; }
  35. public string MOCOThresh3 { get; set; }
  36. public string LocaFixmethod { get; set; }
  37. public string LocFixThresh { get; set; }
  38. public string MotionCorrThresh { get; set; }
  39. public string Pos { get; set; }
  40. public string FilterDeci { get; set; }
  41. public string PSFNum { get; set; }
  42. public string PSFCorr { get; set; }
  43. public string Depth { get; set; }
  44. public string X0 { get; set; }
  45. public string Z0 { get; set; }
  46. public string ProbeType { get; set; }
  47. public string SizeScan { get; set; }
  48. public string MotionAngleThresh { get; set; }
  49. public string TrackInterpFactor { get; set; }
  50. public string FrameStart { get; set; }
  51. public string FrameEnd { get; set; }
  52. }
  53. //负责URM的参数文件读写
  54. public class URMFileIO
  55. {
  56. protected ImagePP ImagePPRes;
  57. public URMFileIO(string familyName, string typeInfo, string nativeId)
  58. {
  59. // ResourceManagerImpl resourceManager = new ResourceManagerImpl(Path.Combine(ServiceManager.RootPath, "URM", "dev"));
  60. // ResourceManager.Initialize(resourceManager);
  61. var dir = new VinnoDirectoryInfo(Path.Combine(ServiceManager.RootPath, "URM"));
  62. NativeProxy.UpdateSection("Path", "ShippedRoot", dir.FullName);
  63. NativeProxy.UpdateSection("Product-GeneralSpecification", "ImagePPFileName", "ImagePP_Tulip");
  64. if (ServiceManager.Os.IsWin())
  65. {
  66. WingServerCommon.Log.Logger.WriteLineInfo($"AIService URMAnalysisManager DoURMAnalysis URMFileIO ImagePPNative_Win");
  67. ImagePPRes = new ImagePPNative_Win();
  68. }
  69. else
  70. {
  71. WingServerCommon.Log.Logger.WriteLineInfo($"AIService URMAnalysisManager DoURMAnalysis URMFileIO ImagePPNative");
  72. ImagePPRes = new ImagePPNative();
  73. }
  74. ImagePPRes.Initial();
  75. WingServerCommon.Log.Logger.WriteLineInfo($"ImagePPRes Initial familyName:{familyName},typeInfo:{typeInfo},nativeId:{nativeId}");
  76. ImagePPRes.Initial(familyName, typeInfo, nativeId);
  77. WingServerCommon.Log.Logger.WriteLineInfo($"AIService URMAnalysisManager DoURMAnalysis URMFileIO end");
  78. }
  79. public void UpdateParamJson(String UrmDatapath, int VecLens, int Mlas, int FramesGot, double CenterFrequencyMhz, int SupersonicSpeed, double FrequencyMin, double FrameRateDisplay, double Depth, double X0, double Z0, string ProbeType, double ScaleOfPixel_x, double ScaleOfPixel_y, string section, string MOCOYN, int MidProc_DeciFactor, int VectorStartForMid, int startX, int startY, int width, int height, int? CustomizedStartFrame, int? CustomizedEndFrame, out string parms, out double URMRes)
  80. {
  81. Logger.WriteLineInfo($"AIService URMAnalysisManager DoURMAnalysis URMFileIO UpdateParamJson start");
  82. var urmnalysisparams = new URMAnalysisParam();
  83. urmnalysisparams.UrmDatapath = UrmDatapath;
  84. urmnalysisparams.VecLens = VecLens.ToString();
  85. urmnalysisparams.Mlas = Mlas.ToString();
  86. urmnalysisparams.FramesGot = FramesGot.ToString();
  87. urmnalysisparams.CenterFrequencyMHz = CenterFrequencyMhz.ToString();
  88. urmnalysisparams.SupersonicSpeed = SupersonicSpeed.ToString();
  89. urmnalysisparams.FrequencyMin = FrequencyMin.ToString();
  90. urmnalysisparams.FrameRateDisplay = FrameRateDisplay.ToString();
  91. urmnalysisparams.Depth = Depth.ToString();
  92. urmnalysisparams.X0 = X0.ToString();
  93. urmnalysisparams.Z0 = Z0.ToString();
  94. urmnalysisparams.ProbeType = ProbeType; // 线阵 1 弧阵 2
  95. urmnalysisparams.ScaleOfPixel_x = ScaleOfPixel_x.ToString();
  96. urmnalysisparams.ScaleOfPixel_y = ScaleOfPixel_y.ToString();
  97. urmnalysisparams.ULMCount = ImagePPRes.GetValue(section, "ULMCount", 400).ToString();
  98. urmnalysisparams.PacketsNum = ImagePPRes.GetValue(section, "PacketsNum", 200).ToString();
  99. URMRes = ImagePPRes.GetValue(section, "Res", 10.0d);
  100. urmnalysisparams.Res = URMRes.ToString();
  101. urmnalysisparams.MaxLinkingDistance = ImagePPRes.GetValue(section, "MaxLinkingDistance", 2.0).ToString();
  102. urmnalysisparams.MinLength = ImagePPRes.GetValue(section, "MinLength", 5.0).ToString();
  103. urmnalysisparams.MaxGapClosing = ImagePPRes.GetValue(section, "MaxGapClosing", 0).ToString();
  104. urmnalysisparams.LocMethod = ImagePPRes.GetValue(section, "LocMethod", "radial");
  105. urmnalysisparams.NLocalMax = ImagePPRes.GetValue(section, "NLocalMax", 3).ToString();
  106. urmnalysisparams.Fwhm = ImagePPRes.GetValue(section, "Fwhm", 3).ToString();
  107. urmnalysisparams.MOCOYN = MOCOYN.ToString();
  108. urmnalysisparams.MOCOLevel = ImagePPRes.GetValue(section, "MOCOLevel", 0.05).ToString();
  109. urmnalysisparams.MOCOThresh1 = ImagePPRes.GetValue(section, "MOCOThresh1", 0.05).ToString();
  110. urmnalysisparams.MOCOThresh2 = ImagePPRes.GetValue(section, "MOCOThresh2", 0.05).ToString();
  111. urmnalysisparams.MOCOThresh3 = ImagePPRes.GetValue(section, "MOCOThresh3", 5).ToString();
  112. urmnalysisparams.LocaFixmethod = ImagePPRes.GetValue(section, "LocaFixmethod", "fixgray");
  113. urmnalysisparams.LocFixThresh = ImagePPRes.GetValue(section, "LocFixThresh", 15).ToString();
  114. urmnalysisparams.MotionCorrThresh = ImagePPRes.GetValue(section, "MotionCorrThresh", 0.5).ToString();
  115. var roiInfo = $" {startX},{startY * MidProc_DeciFactor + VectorStartForMid},{width},{height * MidProc_DeciFactor} ";
  116. urmnalysisparams.Pos = roiInfo;
  117. urmnalysisparams.FilterDeci = ImagePPRes.GetValue(section, "FilterDeci", 1).ToString();
  118. urmnalysisparams.PSFNum = ImagePPRes.GetValue(section, "PSFNum", 10).ToString();
  119. urmnalysisparams.PSFCorr = ImagePPRes.GetValue(section, "PSFCorr", 0.5).ToString();
  120. urmnalysisparams.SizeScan = Math.Min(VecLens, 1024).ToString();
  121. urmnalysisparams.MotionAngleThresh = ImagePPRes.GetValue(section, "MotionAngleThresh", 2).ToString();
  122. urmnalysisparams.TrackInterpFactor = ImagePPRes.GetValue(section, "TrackInterpFactor", 0.8).ToString();
  123. int starttime;
  124. int endtime;
  125. starttime = CustomizedStartFrame ?? 1;
  126. endtime = CustomizedEndFrame ?? FramesGot;
  127. starttime = Math.Min(starttime, FramesGot - 199);
  128. endtime = Math.Min(endtime, FramesGot);
  129. urmnalysisparams.FrameStart = starttime.ToString();
  130. urmnalysisparams.FrameEnd = endtime.ToString();
  131. parms = JsonConvert.SerializeObject(urmnalysisparams);
  132. WingServerCommon.Log.Logger.WriteLineInfo($"AIService URMAnalysisManager DoURMAnalysis URMFileIO UpdateParamJson end");
  133. }
  134. }
  135. }