using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; using Extender; namespace OxfordTest { public partial class Form1 : Form { //全局只有一个fatorySEM static ExtenderInterface factoryExtender = ExtenderInterface.Instance; IExtenderControl iExtender = factoryExtender.IExtender; public Form1() { InitializeComponent(); } //获取电压 private void button1_Click(object sender, EventArgs e) { tBHV.Text = iExtender.GetSEMVoltage().ToString(); } //输入限制只能是数字 private void textBox_KeyPress(string text, object sender, KeyPressEventArgs e) { //允许输入数字、小数点、删除键和负号 if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != (char)('.') && e.KeyChar != (char)('-')) { MessageBox.Show("请输入正确的数字"); text = ""; e.Handled = true; } if (e.KeyChar == (char)('-')) { if (text != "") { MessageBox.Show("请输入正确的数字"); text = ""; e.Handled = true; } } //小数点只能输入一次 if (e.KeyChar == (char)('.') && ((TextBox)sender).Text.IndexOf('.') != -1) { MessageBox.Show("请输入正确的数字"); text = ""; e.Handled = true; } //第一位不能为小数点 if (e.KeyChar == (char)('.') && ((TextBox)sender).Text == "") { MessageBox.Show("请输入正确的数字"); text = ""; e.Handled = true; } //第一位是0,第二位必须为小数点 if (e.KeyChar != (char)('.') && ((TextBox)sender).Text == "0") { MessageBox.Show("请输入正确的数字"); text = ""; e.Handled = true; } //第一位是负号,第二位不能为小数点 if (((TextBox)sender).Text == "-" && e.KeyChar == (char)('.')) { MessageBox.Show("请输入正确的数字"); text = ""; e.Handled = true; } } //设定电压 private void button2_Click(object sender, EventArgs e) { iExtender.SetSEMVoltage(float.Parse(tBHVIn.Text)); } //电压输入限制 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { textBox_KeyPress(tBHVIn.Text, sender, e); } //获取工作距离 private void button3_Click(object sender, EventArgs e) { tBWD.Text = iExtender.GetWorkingDistance().ToString(); } //获取放大倍数 private void button4_Click(object sender, EventArgs e) { tBMag.Text = iExtender.GetMagnification().ToString(); } //获取亮度 private void button5_Click(object sender, EventArgs e) { tBBright.Text = iExtender.GetBrightness().ToString(); } //获取对比度 private void button6_Click(object sender, EventArgs e) { tBContast.Text = iExtender.GetContrast().ToString(); } //设定工作距离 private void button7_Click(object sender, EventArgs e) { iExtender.SetWorkingDistance(float.Parse(tBWDIn.Text)); } //设定放大倍数 private void button8_Click(object sender, EventArgs e) { iExtender.SetMagnification(float.Parse(tBMagIn.Text)); } //设定亮度 private void button9_Click(object sender, EventArgs e) { iExtender.SetBrightness(float.Parse(tBrightIn.Text)); } //设定对比度 private void button10_Click(object sender, EventArgs e) { iExtender.SetContrast(float.Parse(tBContrastIn.Text)); } private void tBWDIn_KeyPress(object sender, KeyPressEventArgs e) { textBox_KeyPress(tBWDIn.Text, sender, e); } private void tBMagIn_KeyPress(object sender, KeyPressEventArgs e) { textBox_KeyPress(tBMagIn.Text, sender, e); } private void tBrightIn_KeyPress(object sender, KeyPressEventArgs e) { textBox_KeyPress(tBrightIn.Text, sender, e); } private void tBContrastIn_KeyPress(object sender, KeyPressEventArgs e) { textBox_KeyPress(tBContrastIn.Text, sender, e); } //获取X private void button11_Click(object sender, EventArgs e) { tBX.Text = iExtender.GetStageAtX().ToString(); } //获取Y private void button12_Click(object sender, EventArgs e) { tBY.Text = iExtender.GetStageAtY().ToString(); } //获取Z private void button13_Click(object sender, EventArgs e) { tBZ.Text = iExtender.GetStageAtZ().ToString(); } //获取T private void button14_Click(object sender, EventArgs e) { tBT.Text = iExtender.GetStageAtT().ToString(); } //获取R private void button15_Click(object sender, EventArgs e) { tBR.Text = iExtender.GetStageAtR().ToString(); } //获取全部 private void button21_Click(object sender, EventArgs e) { tBX.Text = iExtender.GetStageAtX().ToString(); tBY.Text = iExtender.GetStageAtY().ToString(); tBZ.Text = iExtender.GetStageAtZ().ToString(); tBT.Text = iExtender.GetStageAtT().ToString(); tBR.Text = iExtender.GetStageAtR().ToString(); } //设定XY private void button22_Click(object sender, EventArgs e) { iExtender.MoveStageXY(float.Parse(tBXIn.Text), float.Parse(tBYIn.Text)); } //设定全部 private void button23_Click(object sender, EventArgs e) { float[] pos = new float[5]; pos[0] = float.Parse(tBXIn.Text); pos[1] = float.Parse(tBYIn.Text); pos[2] = float.Parse(tBZIn.Text); pos[3] = float.Parse(tBTIn.Text); pos[4] = float.Parse(tBRIn.Text); iExtender.SetStagePosition(pos); } //设定X private void button16_Click(object sender, EventArgs e) { iExtender.SetStageGotoX(float.Parse(tBXIn.Text)); } //设定Y private void button17_Click(object sender, EventArgs e) { iExtender.SetStageGotoY(float.Parse(tBYIn.Text)); } //设定Z private void button18_Click(object sender, EventArgs e) { iExtender.SetStageGotoZ(float.Parse(tBZIn.Text)); } //设定T private void button19_Click(object sender, EventArgs e) { iExtender.SetStageGotoT(float.Parse(tBTIn.Text)); } //设定R private void button20_Click(object sender, EventArgs e) { iExtender.SetStageGotoR(float.Parse(tBRIn.Text)); } private void tBXIn_KeyPress(object sender, KeyPressEventArgs e) { textBox_KeyPress(tBXIn.Text, sender, e); } private void tBYIn_KeyPress(object sender, KeyPressEventArgs e) { textBox_KeyPress(tBYIn.Text, sender, e); } private void tBZIn_KeyPress(object sender, KeyPressEventArgs e) { textBox_KeyPress(tBZIn.Text, sender, e); } private void tBTIn_KeyPress(object sender, KeyPressEventArgs e) { textBox_KeyPress(tBTIn.Text, sender, e); } private void tBRIn_KeyPress(object sender, KeyPressEventArgs e) { textBox_KeyPress(tBRIn.Text, sender, e); } private void button24_Click(object sender, EventArgs e) { iExtender.SetImageAcquistionSetting(1, 1, 1024); string path = System.Environment.CurrentDirectory; iExtender.GrabImage(path+"\\测试.tif", 0, 0, 0, 0, 0); Bitmap ExtenderImage = iExtender.GetBitmap(); if (ExtenderImage != null) { pBImage.Image = ExtenderImage; } } //点采集 private void button25_Click(object sender, EventArgs e) { long[] XrayData = new long[2000]; Dictionary listElement = new Dictionary(); iExtender.XrayPointCollectiong(1, 1, out XrayData, out listElement); ShowData(XrayData, listElement); } void ShowData(long[] XrayData, Dictionary listElement) { Series series = chart1.Series[0]; series.Points.Clear(); for (int i = 0; i < 2000; i++) { series.Points.AddXY(i, XrayData[i]); } this.dataGridView1.Rows.Clear(); int index = this.dataGridView1.Rows.Add(); var ie = listElement.GetEnumerator(); while (ie.MoveNext()) { this.dataGridView1.Rows[index].Cells[0].Value = ie.Current.Key; this.dataGridView1.Rows[index].Cells[1].Value = ie.Current.Value; } } //面采集 private void button26_Click(object sender, EventArgs e) { long[] XrayData = new long[2000]; Dictionary listElement = new Dictionary(); List listSeg = new List(); Segment seg1 = new Segment(); seg1.X = 1; seg1.Y = 1; seg1.Length = 10; listSeg.Add(seg1); Segment seg2 = new Segment(); seg2.X = 1; seg2.Y = 10; seg2.Length = 10; listSeg.Add(seg2); iExtender.XrayAreaCollectiong(listSeg, out XrayData, out listElement); ShowData(XrayData, listElement); } } }