Exemple #1
0
        /// <summary>
        /// 开始按钮  点击
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ButtonStart_Click(object sender, EventArgs e)
        {
            //判断manageReadData线程是否在运行
            //如果是,则直接return
            //如果不是,继续下边动作
            if (manageReadDataFlag)
            {
                MessageBox.Show("already start!");
                return;
            }


            if (CTSerialPort.SetSP() && CTSerialPort.OpenSP())  //判断串口是否能开启
            {
                tablename = DateTime.Now.ToString();            //定义内存表名时间前缀
                cTMySql.CreateDSTable(tablename + "_channel1"); //创建内存表
                cTMySql.CreateDSTable(tablename + "_channel2"); //创建内存表
                CTSerialPort.SendSP("E");
                Thread.Sleep(10);
                CTSerialPort.ClearInBuffer();

                manageReadDataFlag = true;                     //线程红绿灯信号 通过
                Thread mrd = new Thread(ManageReadDataThread); //实例化ManageReadData线程
                mrd.IsBackground = true;                       //设为后台线程
                mrd.Start();                                   //线程开始
                CTSerialPort.SendSP("A");                      //给下位机发送开始信号

                //波形1绘制线程
                reflashWave1ThreadFlag = true;
                Thread rfwave1 = new Thread(ReflashWave1Thread);
                rfwave1.IsBackground = true;
                rfwave1.Start(tablename + "_channel1");

                //波形2绘制线程
                reflashWave2ThreadFlag = true;
                Thread rfwave2 = new Thread(ReflashWave2Thread);
                rfwave2.IsBackground = true;
                rfwave2.Start(tablename + "_channel2");

                Console.WriteLine("开始接收数据");

                ButtonStop.Enabled  = true;
                ButtonStart.Enabled = false;
            }
            else
            {
                MessageBox.Show("串口通信参数有误,请重新设置");
            }
        }
 //发送串口数据
 public void SendSpData(string sendData)
 {
     CTSerialPort.SendSP(sendData);
 }