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并把焦点聚焦在最后一排