Halcon_Gocator_VisualStudio
代码中启动另一个exe程序:
ProcessStartInfo info = new ProcessStartInfo(); info.FileName = @"D:\Kita\SOFT_WARE\qq\Bin\QQ.exe"; info.Arguments = ""; info.WindowStyle = ProcessWindowStyle.Minimized; Process pro = Process.Start(info); //pro.WaitForExit();
Gocator Sdk获取数据:
dataSet = system.ReceiveData(30000000); for (int i = 0; i < dataSet.Count; i++) { GoDataMsg dataFrame = (GoDataMsg)dataSet.Get(i); if (dataFrame.MessageType==GoDataMessageType.UniformSurface) { GoSurfaceMsg dataSurface = (GoSurfaceMsg)dataFrame; long width = dataSurface.Width; long length = dataSurface.Length; long bufferSize = width * length; IntPtr bufferPointer = dataSurface.Data; //Console.WriteLine("Whole Part Height Map received:"); //Console.WriteLine(" Buffer width: {0}", width); //Console.WriteLine(" Buffer length: {0}", length); short[] ranges = new short[bufferSize]; Marshal.Copy(bufferPointer, ranges, 0, ranges.Length); RecSurfData.Add(ranges);
其中用到Marshal类的copy函数,需要using System.Runtime.InteropServices;
打开选择文件窗口,并返回选中文件绝对路径
using Microsoft.Win32; OpenFileDialog dialog = new OpenFileDialog(); dialog.ShowDiag(); //返回一个可空的布尔值 Console.Write(dialog.Filename); //路径保存在这里
切换空间字体颜色;
StateConnect.Foreground = Brushes.Green;
TextBox作为InfoLog使用
VerticalScrollBarVisibility="Auto" Foreground="Green" public void StateBox(string txt) { string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff"); string str = time + "->"+"\r\n"+txt+"\r\n"; WindowStateLog.AppendText(str); WindowStateLog.ScrollToEnd(); }
打开文件选择对话框,选择文件获取路径
using Microsoft.Win32; private void BtnOpenFile_Click(object sender, RoutedEventArgs e) { OpenFileDialog op = new OpenFileDialog(); //op.InitialDirectory = "D:/3D"; op.Title = "请选择导入csv文件"; op.Filter = "csv文件|*.csv"; if (op.ShowDialog() ==true) { SingleDataPath = op.FileName; TextBoxPath.Text = op.FileName; } else { MessageBox.Show("未选中任何文件"); } }
OpenFileDialog 也可直接返回Stream对象,直接进行读写操作;
OutPutFile = new StreamWriter("D:/3D/output.csv",true); //查看构造函数重载,采用覆盖,末尾添加等模式
textbox作为状态log输出框
VerticalScrollBarVisibility="Auto" WPF里面 自动显示滚动条 WindowStateLog.AppendText(str); WindowStateLog.ScrollToEnd(); 末尾添加新log并把焦点聚焦在最后一排