コード例 #1
0
        /// <summary>
        /// Sends the command via ehternet.
        /// </summary>
        public string SendCmdViaEhternet()
        {
            if (cbInterfaceType.Text == "ETHERNET")
            {
                try
                {
                    // Назначаем сокет локальной конечной точке и слушаем входящие сокеты
                    // Устанавливаем для сокета локальную конечную точку
                    int    port = 5024; // порт для приема входящих запросов
                    string ip   = txtIpHost.Text;
                    // Создаем сокет Tcp/Ip
                    IPEndPoint      ipPoint = new IPEndPoint(IPAddress.Parse(ip), port);
                    Socket          socket  = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    PiezoParameters piezo   = new PiezoParameters();
                    string          msg     = txtCommand.Text + '\n';
                    socket.Connect(ipPoint);
                    byte[] data = Encoding.ASCII.GetBytes(msg);
                    socket.Send(data);
                    // получаем ответ
                    System.Threading.Thread.Sleep(400);
                    data = new byte[70];       // буфер для ответа
                    StringBuilder builder = new StringBuilder();
                    int           bytes   = 0; // количество полученных байт
                    do
                    {
                        bytes = socket.Receive(data, data.Length, 0);
                        builder.Append(Encoding.ASCII.GetString(data, 0, bytes));
                    }while (socket.Available > 0);

                    //int gg = data.Count();
                    //MessageBox.Show(gg.ToString());
                    //Console.WriteLine("ответ сервера: " + builder.ToString());
                    //int uu = socket.Receive(data);
                    //MessageBox.Show(uu.ToString());
                    byte[] data2 = new byte[70];
                    for (int i = 6; i < data.Count(); i++)
                    {
                        data2[i - 6] = data[i];
                    }
                    // закрываем сокет
                    socket.Shutdown(SocketShutdown.Both);
                    socket.Close();
                    string ss = Encoding.ASCII.GetString(data2);
                    txtAnswer.Text = ss;

                    Regex reg = new Regex(@"^[-+][0-9][.][0-9]{5}[E][-+][0-9]{2}[,][-+][0-9][.][0-9]{5}[E][-+][0-9]{2}[,][-+][0-9]{1}");
                    if (reg.IsMatch(ss))
                    {
                        MessageBox.Show("Ok");
                        ParseStringTab PS = new ParseStringTab();
                        PS.AddMeasStringAgilent4980(ss);
                        txtAnswer.Text = PS.ElementAt(1);
                    }
                    else
                    {
                        txtAnswer.Text = "no";
                    }
                    txtAnswer.Text = ss;

                    char     splitchar = (char)'\n';
                    string[] sss       = ss.Split(splitchar);
                    string   s1        = sss[2];
                    s1 = s1.Substring(12, 24);

                    string sss1 = ss.Substring(0, 10);
                    txtAnswer.AppendText(Environment.NewLine + sss1);

                    return(ss);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    Console.WriteLine(ex.ToString());
                    return(ex.ToString());
                }
            }
            else
            {
                return("");
            }

            //"SCPI> 4980A SCPI parser.\r\n\r\nSCPI> ??\u0001??\u0003-1.27856E-08,-3.91647E-0\0\0\0\0\0\0"
        }
コード例 #2
0
        /// <summary>
        /// Sends the command ehternet.
        /// </summary>
        public void SendCmdEhternet()
        {
            if (cbInterfaceType.Text == "GPIB")
            {
                WriteCommand(txtCommand.Text);
            }
            if (cbInterfaceType.Text == "ETHERNET")
            {
                // Устанавливаем для сокета локальную конечную точку
                int    port = 5024; // порт для приема входящих запросов
                string ip   = txtIpHost.Text;
                // Создаем сокет Tcp/Ip
                IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse(ip), port);
                Socket     socket  = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

                // Назначаем сокет локальной конечной точке и слушаем входящие сокеты
                try
                {
                    PiezoParameters piezo = new PiezoParameters();
                    string          msg   = txtCommand.Text + '\n';
                    socket.Connect(ipPoint);
                    //byte[] data = Encoding.Unicode.GetBytes(msg);
                    byte[] data = Encoding.ASCII.GetBytes(msg);
                    socket.Send(data);
                    // получаем ответ
                    data = new byte[70];       // буфер для ответа
                    StringBuilder builder = new StringBuilder();
                    int           bytes   = 0; // количество полученных байт

                    do
                    {
                        bytes = socket.Receive(data, data.Length, 0);
                        builder.Append(Encoding.ASCII.GetString(data, 0, bytes));
                    }while (socket.Available > 0);

                    int gg = data.Count();
                    MessageBox.Show(gg.ToString());
                    Console.WriteLine("ответ сервера: " + builder.ToString());


                    int uu = socket.Receive(data);
                    MessageBox.Show(uu.ToString());
                    byte[] data2 = new byte[70];

                    for (int i = 6; i < data.Count(); i++)
                    {
                        data2[i - 6] = data[i];
                    }
                    MessageBox.Show(Encoding.ASCII.GetString(data2));
                    txtAnswer.Text = Encoding.ASCII.GetString(data2);
                    // закрываем сокет
                    socket.Shutdown(SocketShutdown.Both);
                    socket.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    Console.WriteLine(ex.ToString());
                }
                finally
                {
                    Console.ReadLine();
                }
            }
        }