FrameCameraModeControl.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using PaintDotNet.Base.SettingModel;
  11. using TUCamera;
  12. namespace PaintDotNet.ImageCollect.CameraComponent
  13. {
  14. public partial class FrameCameraModeControl : UserControl
  15. {
  16. private TUCamera.TUCamera m_camera;
  17. private CameraParamModel m_cameraParamModel;
  18. private bool m_use;
  19. private int m_selectedBin;
  20. private string[] m_binArray = new string[] { "1x1 Bin", "2x2 Bin", "3x3 Bin", "4x4 Bin" };
  21. private void InitializeLanguageText()
  22. {
  23. this.groupBox1.Text = PdnResources.GetString("Menu.Cameramode.text");
  24. this.rdoBlackWhite.Text = PdnResources.GetString("Menu.lx.text");
  25. this.rdoColor.Text = PdnResources.GetString("Menu.Colormode.text");
  26. }
  27. public FrameCameraModeControl(CameraParamModel model, bool use)
  28. {
  29. m_use = use;
  30. m_camera = TUCameraManager.GetInstance().GetCurrentCamera();
  31. m_cameraParamModel = model;
  32. InitializeComponent();
  33. InitializeLanguageText();
  34. InitializeControlData();
  35. }
  36. public void ReLoad(CameraParamModel model, bool use)
  37. {
  38. m_cameraParamModel = model;
  39. m_use = use;
  40. InitializeControlData();
  41. }
  42. private void InitializeControlData()
  43. {
  44. //绑定相机模式
  45. if (m_cameraParamModel.parame.Monochromatic == 1)
  46. {
  47. rdoBlackWhite.Checked = true;
  48. }
  49. else
  50. {
  51. rdoColor.Checked = true;
  52. }
  53. this.cameraComboBox.Items.Clear();
  54. this.cameraComboBox.Items.AddRange(m_binArray);
  55. int index = m_cameraParamModel.parame.BinningSumation - 1;
  56. if(index > m_binArray.Length || index < 0)
  57. {
  58. index = 0;
  59. }
  60. this.cameraComboBox.SelectedIndex = index;
  61. }
  62. private void rdoColor_CheckedChanged(object sender, EventArgs e)
  63. {
  64. if (rdoColor.Checked)
  65. {
  66. m_cameraParamModel.parame.Monochromatic = 0;
  67. if (m_use)
  68. {
  69. m_camera.SetCameraMode(CameraMode.COLOR); //usec
  70. }
  71. }
  72. }
  73. private void rdoBlackWhite_CheckedChanged(object sender, EventArgs e)
  74. {
  75. if (rdoBlackWhite.Checked)
  76. {
  77. m_cameraParamModel.parame.Monochromatic = 1;
  78. if (m_use)
  79. {
  80. m_camera.SetCameraMode(CameraMode.BLACK_WHILE); //usec
  81. }
  82. }
  83. }
  84. private void cameraComboBox_SelectedIndexChanged(object sender, EventArgs e)
  85. {
  86. m_selectedBin = cameraComboBox.SelectedIndex + 1;
  87. if (m_selectedBin == m_cameraParamModel.parame.BinningSumation)
  88. {
  89. return;
  90. }
  91. m_cameraParamModel.parame.BinningSumation = m_selectedBin;
  92. // 这个功能无法实时生效 ,只能设置,重新开启预览才能生效
  93. //if (m_use && m_camera.IsSupportBinng())
  94. //{
  95. // switch (m_selectedBin)
  96. // {
  97. // case 1:
  98. // m_camera.SetBinningSum(BinningSum.BIN1X1); //usec
  99. // break;
  100. // case 2:
  101. // m_camera.SetBinningSum(BinningSum.BIN2X2); //usec
  102. // break;
  103. // case 3:
  104. // m_camera.SetBinningSum(BinningSum.BIN3X3); //usec
  105. // break;
  106. // case 4:
  107. // m_camera.SetBinningSum(BinningSum.BIN4X4); //usec
  108. // break;
  109. // }
  110. //}
  111. }
  112. }
  113. }