private void button3_Click(object sender, EventArgs e)
 {
     byte[] data = new byte[1];
     data[0] = (byte)numericUpDown2.Value;
     WaitSometingForm.WaitSometing_Init();
     waitCommand = 7;
     CP1616Packet.CP1616ComSend(ref Uart, waitCommand, 0, data);
     if (!WaitSometingForm.WaitSometing(100, 150, "等待控制器读取节点标定系数,预计时长15s"))
     {
         waitCommand = 0;
         MessageBox.Show("读取失败!!!!!");
     }
     waitCommand = 0;
 }
Beispiel #2
0
 private void button1_Click(object sender, EventArgs e)
 {
     byte[] data = new byte[2];
     data[1] = (byte)numericUpDown1.Value;
     data[0] = (byte)numericUpDown2.Value;
     if (numericUpDown2.Value == 0)
     {
         data[0] = 0xfe;//广播地址
     }
     WaitSometingForm.WaitSometing_Init();
     waitCommand = 4;
     CP1616Packet.CP1616ComSend(ref Uart, waitCommand, 0, data);
     if (!WaitSometingForm.WaitSometing(100, 150, "等待控制器设定节点ID,预计时长15s"))
     {
         waitCommand = 0;
         MessageBox.Show("设定失败!!!!!");
     }
     waitCommand = 0;
 }
        private void button1_Click(object sender, EventArgs e)
        {
            byte[] data = new byte[1 + 12];
            float  k, b, A;

            if (float.TryParse(textBox1.Text, out k) == false)
            {
                MessageBox.Show("节点斜率k输入有误");
                return;
            }
            if (float.TryParse(textBox2.Text, out b) == false)
            {
                MessageBox.Show("节点截距b输入有误");
                return;
            }
            if (float.TryParse(textBox3.Text, out A) == false)
            {
                MessageBox.Show("节点增益A输入有误");
                return;
            }
            data[0] = (byte)numericUpDown2.Value;
            byte[] kbyte = BitConverter.GetBytes(k);
            byte[] bbyte = BitConverter.GetBytes(b);
            byte[] Abyte = BitConverter.GetBytes(A);
            for (int i = 0; i < 4; i++)
            {
                data[1 + i] = kbyte[i];
                data[5 + i] = bbyte[i];
                data[9 + i] = Abyte[i];
            }
            WaitSometingForm.WaitSometing_Init();
            waitCommand = 6;
            CP1616Packet.CP1616ComSend(ref Uart, waitCommand, 0, data);
            if (!WaitSometingForm.WaitSometing(100, 150, "等待控制器设定节点标定系数,预计时长15s"))
            {
                waitCommand = 0;
                MessageBox.Show("设定失败!!!!!");
            }
            waitCommand = 0;
        }
Beispiel #4
0
 private void btNetStart_Click(object sender, EventArgs e)
 {
     if (btNetStart.Text == "启动网络")
     {
         Uart.PortName = cbCom.Text;
         RxPacket      = new CP1616Packet();
         if (WFGlobal.OpenSerialPort(ref Uart) == false)
         {
             return;
         }
         Properties.Settings.Default.PortName = cbCom.Text;
         Properties.Settings.Default.Save();
         sensorSingIn.clearSignIn();
         listView1.Items.Clear();
         chart1.Series[0].Points.Clear();
         chart2.Series[0].Points.Clear();
         chart3.Series[0].Points.Clear();
         chart4.Series[0].Points.Clear();
         chart3.Series[1].Points.Clear();
         chart4.Series[1].Points.Clear();
         chart3.Series[2].Points.Clear();
         chart4.Series[2].Points.Clear();
         chart3.Series[3].Points.Clear();
         chart4.Series[3].Points.Clear();
         bStopNet = false;
         for (int i = 0; i < 3; i++)
         {
             startResult = 0;
             waitCommand = 1;
             CP1616Packet.CP1616ComSend(ref Uart, waitCommand, 0, (ushort)0);
             int x = 0;
             while (true)
             {
                 Thread.Sleep(1);
                 if (startResult != 0)
                 {
                     break;
                 }
                 x++;
                 if (x > 1000)
                 {
                     startResult = 0xff;
                     break;
                 }
             }
             if (startResult == 0xff)//超时了
             {
             }
             else
             {
                 break;
             }
         }
         if (startResult == 0xff)
         {
             MessageBox.Show("网络控制器未做应答!!!");
             Uart.Close();
             btNetStart.Text = "启动网络";
             return;
         }
         else if (startResult == 2)
         {
             bStopNet        = false;
             btNetStart.Text = "停止网络";
             MessageBox.Show("网络已经启动,等待接入");
         }
         else if (startResult == 3)
         {
             bStopNet        = false;
             btNetStart.Text = "停止网络";
             MessageBox.Show("标定网络已经启动,将自动转为测量网络,等待接入");
         }
         else
         {
             WaitSometingForm.WaitSometing_Init();
             waitCommand = 0x10;//点名完成
             if (!WaitSometingForm.WaitSometing(10, 3000, "等待无线节点组网,预计时长25s"))
             {
                 waitCommand = 0;
                 Uart.Close();
                 MessageBox.Show("组网失败");
                 return;
             }
             if (listView1.Items.Count != 0)
             {
                 WaitSometingForm.WaitSometing_Init();
                 waitCommand = 0x20;//等待测量数据
                 if (!WaitSometingForm.WaitSometing(10, 500, "等待网络数据,预计时长3s"))
                 {
                     waitCommand = 0;
                     MessageBox.Show("组网失败");
                     Uart.Close();
                     bStopNet = false;
                     return;
                 }
                 bStopNet        = false;
                 btNetStart.Text = "停止网络";
                 MessageBox.Show("网络启动成功");
             }
             else
             {
                 waitCommand = 0;
                 MessageBox.Show("当前网络没有发现任何无线节点,网络自动停止");
                 Uart.Close();
                 btNetStart.Text = "启动网络";
                 return;
             }
         }
     }
     else
     {
         bStopNet = true;
         WaitSometingForm.WaitSometing_Init();
         waitCommand = 0x02;//等待网络停止
         if (!WaitSometingForm.WaitSometing(10, 500, "等待网络停止,预计时长5s"))
         {
             waitCommand = 0;
             MessageBox.Show("网络停止失败");
             return;
         }
         MessageBox.Show("网络已停止");
         Uart.Close();
         btNetStart.Text = "启动网络";
     }
 }
Beispiel #5
0
        void Uart_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            int  irx;
            byte rx;

            while (true)
            {
                try
                {
                    irx = Uart.ReadByte();
                }
                catch
                {
                    return;
                }
                if (!Uart.IsOpen)
                {
                    return;
                }
                if (irx == -1)
                {
                    return;
                }
                rx = (byte)irx;
                if (RxPacket.DataPacketed(rx))
                {
                    byte[] data = new byte[2];
                    data[0] = RxPacket.Header.Command;
                    if (waitCommand == RxPacket.Header.Command)
                    {
                        WaitSometingForm.bGenerateSometing = true;
                    }
                    if (bStopNet)
                    {
                        data[1] = 0x02;//要求关闭网络
                        CP1616Packet.CP1616ComSend(ref Uart, 3, 0, data);
                    }
                    else if (RxPacket.Header.Command == 1)//标定网络启动确认
                    {
                        startResult = RxPacket.Data[0];
                    }
                    else if (RxPacket.Header.Command == 0x22)//标定网络,请求转换为测量网络
                    {
                        this.Invoke((EventHandler)(delegate
                        {
                            textBox1.AppendText(DateTime.Now.ToString("HH:mm:ss:ffff") + ":标定网络转换为测量网络\r\n");
                        }));
                        startResult = 3;
                        data[1]     = 0x03;
                        CP1616Packet.CP1616ComSend(ref Uart, 3, 0, data);
                    }
                    else if (RxPacket.Header.Command == 0x10)
                    {
                        data[1] = 0x00;
                        CP1616Packet.CP1616ComSend(ref Uart, 3, 0, data);
                        SignInProc();
                    }
                    else if (RxPacket.Header.Command == 0x20)
                    {
                        startResult = 2;
                        if (listView1.Items.Count == 0)
                        {
                            data[1] = 0x01;//请求传感器名单
                            CP1616Packet.CP1616ComSend(ref Uart, 3, 0, data);
                        }
                        else
                        {
                            data[1] = 0x00;
                            CP1616Packet.CP1616ComSend(ref Uart, 3, 0, data);
                            ADCDataProc();
                        }
                        this.Invoke((EventHandler)(delegate
                        {
                            if (btNetStart.Text == "启动网络")
                            {
                                btNetStart.Text = "停止网络";
                            }
                        }));
                    }
                    RxPacket = new CP1616Packet();
                }
            }
        }
Beispiel #6
0
 private void btNetStart_Click(object sender, EventArgs e)
 {
     if (btNetStart.Text == "启动网络")
     {
         sensorSingIn.clearSignIn();
         listView1.Items.Clear();
         for (int i = 0; i < 3; i++)
         {
             startResult = 0;
             waitCommand = 5;
             //timer1.Enabled = true;
             CP1616Packet.CP1616ComSend(ref Uart, waitCommand, 0, (ushort)0);
             int x = 0;
             while (true)
             {
                 Thread.Sleep(1);
                 if (startResult != 0)
                 {
                     break;
                 }
                 x++;
                 if (x > 500)
                 {
                     startResult = 0xff;
                     break;
                 }
             }
             if (startResult == 0xff)//超时了
             {
             }
             else
             {
                 break;
             }
         }
         if (startResult == 0xff)
         {
             MessageBox.Show("网络控制器未做应答!!!");
             return;
         }
         else if (startResult == 2)
         {
             waitCommand = 0x10;
             MessageBox.Show("网络已经启动,等待接入");
         }
         else if (startResult == 3)
         {
             waitCommand = 0x10;
             MessageBox.Show("测量网络已经启动,将自动转为标定网络,等待接入");
         }
         else
         {
             WaitSometingForm.WaitSometing_Init();
             waitCommand = 0x10;//点名完成
             if (!WaitSometingForm.WaitSometing(10, 3000, "等待无线节点组网,预计时长25s"))
             {
                 waitCommand = 0;
                 MessageBox.Show("组网失败");
                 return;
             }
             if (listView1.Items.Count != 0)
             {
                 WaitSometingForm.WaitSometing_Init();
                 waitCommand = 0x22;//等待标定数据
                 if (!WaitSometingForm.WaitSometing(10, 500, "等待网络数据,预计时长3s"))
                 {
                     waitCommand = 0;
                     MessageBox.Show("组网失败");
                     bStopNet = false;
                     return;
                 }
                 bStopNet        = false;
                 btNetStart.Text = "停止网络";
                 MessageBox.Show("网络启动成功");
             }
             else
             {
                 waitCommand = 0;
                 MessageBox.Show("当前网络没有发现任何无线节点,网络自动停止");
                 return;
             }
         }
         bStopNet = false;
     }
     else
     {
         bStopNet = true;
         WaitSometingForm.WaitSometing_Init();
         waitCommand = 0x02;//等待网络停止
         if (!WaitSometingForm.WaitSometing(10, 500, "等待网络停止,预计时长5s"))
         {
             waitCommand = 0;
             MessageBox.Show("网络停止失败");
             return;
         }
         MessageBox.Show("网络已停止");
         btNetStart.Text = "启动网络";
     }
 }
Beispiel #7
0
        public void UartRxProc(CP1616Packet rxPacket)
        {
            if (bClosing)
            {
                return;
            }
            //Debug.WriteLine(WFNetLib.StringFunc.StringsFunction.byteToHexStr(rxPacket.Data, " "));
            byte[] data = new byte[2];
            data[0] = rxPacket.Header.Command;
            if (bStopNet)
            {
                data[1] = 0x02;                                   //
                CP1616Packet.CP1616ComSend(ref Uart, 3, 0, data); //接收应答,并要求关闭网络
            }
            else if (rxPacket.Header.Command == 5)                //标定网络启动确认
            {
                startResult = rxPacket.Data[0];
            }
            else if (rxPacket.Header.Command == 0x10)
            {
                data[1] = 0x00;
                CP1616Packet.CP1616ComSend(ref Uart, 3, 0, data);//接收应答
                SignInProc(rxPacket);
            }
            else if (rxPacket.Header.Command == 0x22)//标定软件只处理标定数据
            {
                startResult = 2;
                if (listView1.Items.Count == 0)
                {
                    data[1] = 0x01;                                   //请求传感器名单
                    CP1616Packet.CP1616ComSend(ref Uart, 3, 0, data); //接收应答,并请求传感器名单
                }
                else
                {
                    data[1] = 0x00;
                    CP1616Packet.CP1616ComSend(ref Uart, 3, 0, data);//接收应答
                    ADCDataProc(rxPacket);
                }
                this.Invoke((EventHandler)(delegate
                {
                    if (btNetStart.Text == "启动网络")
                    {
                        btNetStart.Text = "停止网络";
                    }
                }));
            }
            else if (rxPacket.Header.Command == 0x20)//测量网络,请求转换为标定网络
            {
                this.Invoke((EventHandler)(delegate
                {
                    textBox1.AppendText(DateTime.Now.ToString("HH:mm:ss:ffff") + ":测量网络转换为标定网络\r\n");
                }));

                startResult = 3;
                data[1]     = 0x03;
                CP1616Packet.CP1616ComSend(ref Uart, 3, 0, data);
            }
            if (waitCommand == rxPacket.Header.Command)
            {
                WaitSometingForm.bGenerateSometing = true;
            }
        }