Form1.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Windows.Forms.DataVisualization.Charting;
  11. using Extender;
  12. namespace OxfordTest
  13. {
  14. public partial class Form1 : Form
  15. {
  16. //全局只有一个fatorySEM
  17. static ExtenderInterface factoryExtender = ExtenderInterface.Instance;
  18. IExtenderControl iExtender = factoryExtender.IExtender;
  19. public Form1()
  20. {
  21. InitializeComponent();
  22. }
  23. //获取电压
  24. private void button1_Click(object sender, EventArgs e)
  25. {
  26. tBHV.Text = iExtender.GetSEMVoltage().ToString();
  27. }
  28. //输入限制只能是数字
  29. private void textBox_KeyPress(string text, object sender, KeyPressEventArgs e)
  30. {
  31. //允许输入数字、小数点、删除键和负号
  32. if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != (char)('.') && e.KeyChar != (char)('-'))
  33. {
  34. MessageBox.Show("请输入正确的数字");
  35. text = "";
  36. e.Handled = true;
  37. }
  38. if (e.KeyChar == (char)('-'))
  39. {
  40. if (text != "")
  41. {
  42. MessageBox.Show("请输入正确的数字");
  43. text = "";
  44. e.Handled = true;
  45. }
  46. }
  47. //小数点只能输入一次
  48. if (e.KeyChar == (char)('.') && ((TextBox)sender).Text.IndexOf('.') != -1)
  49. {
  50. MessageBox.Show("请输入正确的数字");
  51. text = "";
  52. e.Handled = true;
  53. }
  54. //第一位不能为小数点
  55. if (e.KeyChar == (char)('.') && ((TextBox)sender).Text == "")
  56. {
  57. MessageBox.Show("请输入正确的数字");
  58. text = "";
  59. e.Handled = true;
  60. }
  61. //第一位是0,第二位必须为小数点
  62. if (e.KeyChar != (char)('.') && ((TextBox)sender).Text == "0")
  63. {
  64. MessageBox.Show("请输入正确的数字");
  65. text = "";
  66. e.Handled = true;
  67. }
  68. //第一位是负号,第二位不能为小数点
  69. if (((TextBox)sender).Text == "-" && e.KeyChar == (char)('.'))
  70. {
  71. MessageBox.Show("请输入正确的数字");
  72. text = "";
  73. e.Handled = true;
  74. }
  75. }
  76. //设定电压
  77. private void button2_Click(object sender, EventArgs e)
  78. {
  79. iExtender.SetSEMVoltage(float.Parse(tBHVIn.Text));
  80. }
  81. //电压输入限制
  82. private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
  83. {
  84. textBox_KeyPress(tBHVIn.Text, sender, e);
  85. }
  86. //获取工作距离
  87. private void button3_Click(object sender, EventArgs e)
  88. {
  89. tBWD.Text = iExtender.GetWorkingDistance().ToString();
  90. }
  91. //获取放大倍数
  92. private void button4_Click(object sender, EventArgs e)
  93. {
  94. tBMag.Text = iExtender.GetMagnification().ToString();
  95. }
  96. //获取亮度
  97. private void button5_Click(object sender, EventArgs e)
  98. {
  99. tBBright.Text = iExtender.GetBrightness().ToString();
  100. }
  101. //获取对比度
  102. private void button6_Click(object sender, EventArgs e)
  103. {
  104. tBContast.Text = iExtender.GetContrast().ToString();
  105. }
  106. //设定工作距离
  107. private void button7_Click(object sender, EventArgs e)
  108. {
  109. iExtender.SetWorkingDistance(float.Parse(tBWDIn.Text));
  110. }
  111. //设定放大倍数
  112. private void button8_Click(object sender, EventArgs e)
  113. {
  114. iExtender.SetMagnification(float.Parse(tBMagIn.Text));
  115. }
  116. //设定亮度
  117. private void button9_Click(object sender, EventArgs e)
  118. {
  119. iExtender.SetBrightness(float.Parse(tBrightIn.Text));
  120. }
  121. //设定对比度
  122. private void button10_Click(object sender, EventArgs e)
  123. {
  124. iExtender.SetContrast(float.Parse(tBContrastIn.Text));
  125. }
  126. private void tBWDIn_KeyPress(object sender, KeyPressEventArgs e)
  127. {
  128. textBox_KeyPress(tBWDIn.Text, sender, e);
  129. }
  130. private void tBMagIn_KeyPress(object sender, KeyPressEventArgs e)
  131. {
  132. textBox_KeyPress(tBMagIn.Text, sender, e);
  133. }
  134. private void tBrightIn_KeyPress(object sender, KeyPressEventArgs e)
  135. {
  136. textBox_KeyPress(tBrightIn.Text, sender, e);
  137. }
  138. private void tBContrastIn_KeyPress(object sender, KeyPressEventArgs e)
  139. {
  140. textBox_KeyPress(tBContrastIn.Text, sender, e);
  141. }
  142. //获取X
  143. private void button11_Click(object sender, EventArgs e)
  144. {
  145. tBX.Text = iExtender.GetStageAtX().ToString();
  146. }
  147. //获取Y
  148. private void button12_Click(object sender, EventArgs e)
  149. {
  150. tBY.Text = iExtender.GetStageAtY().ToString();
  151. }
  152. //获取Z
  153. private void button13_Click(object sender, EventArgs e)
  154. {
  155. tBZ.Text = iExtender.GetStageAtZ().ToString();
  156. }
  157. //获取T
  158. private void button14_Click(object sender, EventArgs e)
  159. {
  160. tBT.Text = iExtender.GetStageAtT().ToString();
  161. }
  162. //获取R
  163. private void button15_Click(object sender, EventArgs e)
  164. {
  165. tBR.Text = iExtender.GetStageAtR().ToString();
  166. }
  167. //获取全部
  168. private void button21_Click(object sender, EventArgs e)
  169. {
  170. tBX.Text = iExtender.GetStageAtX().ToString();
  171. tBY.Text = iExtender.GetStageAtY().ToString();
  172. tBZ.Text = iExtender.GetStageAtZ().ToString();
  173. tBT.Text = iExtender.GetStageAtT().ToString();
  174. tBR.Text = iExtender.GetStageAtR().ToString();
  175. }
  176. //设定XY
  177. private void button22_Click(object sender, EventArgs e)
  178. {
  179. iExtender.MoveStageXY(float.Parse(tBXIn.Text), float.Parse(tBYIn.Text));
  180. }
  181. //设定全部
  182. private void button23_Click(object sender, EventArgs e)
  183. {
  184. float[] pos = new float[5];
  185. pos[0] = float.Parse(tBXIn.Text);
  186. pos[1] = float.Parse(tBYIn.Text);
  187. pos[2] = float.Parse(tBZIn.Text);
  188. pos[3] = float.Parse(tBTIn.Text);
  189. pos[4] = float.Parse(tBRIn.Text);
  190. iExtender.SetStagePosition(pos);
  191. }
  192. //设定X
  193. private void button16_Click(object sender, EventArgs e)
  194. {
  195. iExtender.SetStageGotoX(float.Parse(tBXIn.Text));
  196. }
  197. //设定Y
  198. private void button17_Click(object sender, EventArgs e)
  199. {
  200. iExtender.SetStageGotoY(float.Parse(tBYIn.Text));
  201. }
  202. //设定Z
  203. private void button18_Click(object sender, EventArgs e)
  204. {
  205. iExtender.SetStageGotoZ(float.Parse(tBZIn.Text));
  206. }
  207. //设定T
  208. private void button19_Click(object sender, EventArgs e)
  209. {
  210. iExtender.SetStageGotoT(float.Parse(tBTIn.Text));
  211. }
  212. //设定R
  213. private void button20_Click(object sender, EventArgs e)
  214. {
  215. iExtender.SetStageGotoR(float.Parse(tBRIn.Text));
  216. }
  217. private void tBXIn_KeyPress(object sender, KeyPressEventArgs e)
  218. {
  219. textBox_KeyPress(tBXIn.Text, sender, e);
  220. }
  221. private void tBYIn_KeyPress(object sender, KeyPressEventArgs e)
  222. {
  223. textBox_KeyPress(tBYIn.Text, sender, e);
  224. }
  225. private void tBZIn_KeyPress(object sender, KeyPressEventArgs e)
  226. {
  227. textBox_KeyPress(tBZIn.Text, sender, e);
  228. }
  229. private void tBTIn_KeyPress(object sender, KeyPressEventArgs e)
  230. {
  231. textBox_KeyPress(tBTIn.Text, sender, e);
  232. }
  233. private void tBRIn_KeyPress(object sender, KeyPressEventArgs e)
  234. {
  235. textBox_KeyPress(tBRIn.Text, sender, e);
  236. }
  237. private void button24_Click(object sender, EventArgs e)
  238. {
  239. iExtender.SetImageAcquistionSetting(1, 1, 1024);
  240. string path = System.Environment.CurrentDirectory;
  241. iExtender.GrabImage(path+"\\测试.tif", 0, 0, 0, 0, 0);
  242. Bitmap ExtenderImage = iExtender.GetBitmap();
  243. if (ExtenderImage != null)
  244. {
  245. pBImage.Image = ExtenderImage;
  246. }
  247. }
  248. //点采集
  249. private void button25_Click(object sender, EventArgs e)
  250. {
  251. long[] XrayData = new long[2000];
  252. Dictionary<string, double> listElement = new Dictionary<string, double>();
  253. iExtender.XrayPointCollectiong(1, 1, out XrayData, out listElement);
  254. ShowData(XrayData, listElement);
  255. }
  256. void ShowData(long[] XrayData, Dictionary<string, double> listElement)
  257. {
  258. Series series = chart1.Series[0];
  259. series.Points.Clear();
  260. for (int i = 0; i < 2000; i++)
  261. {
  262. series.Points.AddXY(i, XrayData[i]);
  263. }
  264. this.dataGridView1.Rows.Clear();
  265. int index = this.dataGridView1.Rows.Add();
  266. var ie = listElement.GetEnumerator();
  267. while (ie.MoveNext())
  268. {
  269. this.dataGridView1.Rows[index].Cells[0].Value = ie.Current.Key;
  270. this.dataGridView1.Rows[index].Cells[1].Value = ie.Current.Value;
  271. }
  272. }
  273. //面采集
  274. private void button26_Click(object sender, EventArgs e)
  275. {
  276. long[] XrayData = new long[2000];
  277. Dictionary<string, double> listElement = new Dictionary<string, double>();
  278. List<Segment> listSeg = new List<Segment>();
  279. Segment seg1 = new Segment();
  280. seg1.X = 1;
  281. seg1.Y = 1;
  282. seg1.Length = 10;
  283. listSeg.Add(seg1);
  284. Segment seg2 = new Segment();
  285. seg2.X = 1;
  286. seg2.Y = 10;
  287. seg2.Length = 10;
  288. listSeg.Add(seg2);
  289. iExtender.XrayAreaCollectiong(listSeg, out XrayData, out listElement);
  290. ShowData(XrayData, listElement);
  291. }
  292. }
  293. }