예제 #1
0
        void SendRandData()
        {
            while (sendFlag)
            {
                UInt16 r1   = Convert.ToUInt16(controlconfig.valueItem(range1txt.Name));
                UInt16 r2   = Convert.ToUInt16(controlconfig.valueItem(range2txt.Name));
                UInt16 m1   = Convert.ToUInt16(controlconfig.valueItem(mid1txt.Name));
                UInt16 m2   = Convert.ToUInt16(controlconfig.valueItem(mid2txt.Name));
                UInt16 line = Convert.ToUInt16(controlconfig.valueItem(lineValtxt.Name));
                byte[] bt;
                switch (rangflag)
                {
                case 0:
                    bt = RandR(0, line);
                    CTSerialPort.SendSP(bt);
                    break;

                case 1:
                    bt = RandR(r1, m1);
                    CTSerialPort.SendSP(bt);
                    break;

                case 2:
                    bt = RandR(r2, m2);
                    CTSerialPort.SendSP(bt);
                    break;
                }
                int a = Convert.ToInt32(controlconfig.valueItem(timetxt.Name));
                Thread.Sleep(a);
            }
        }
예제 #2
0
        void OpenSP()
        {
            while (!CTSerialPort.IsComOpen())
            {
                CTSerialPort.SetSP(controlconfig.valueItem("porttxt"),
                                   controlconfig.valueItem("bodetxt"),
                                   controlconfig.valueItem("datatxt"),
                                   controlconfig.valueItem("stoptxt"));
                Thread.Sleep(20);
                try
                {
                    CTSerialPort.OpenSP();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("fail to open {0}", porttxt.Text);
                }
            }
            //Thread ra = new Thread(ReadA);
            //openThreadFlag = false;
            //ra.IsBackground = true;
            //ra.Start();

            Thread sd = new Thread(SendRandData);

            sd.IsBackground = true;
            sendFlag        = true;
            sd.Start();
        }
예제 #3
0
 void ReadB()
 {
     byte[] bt = new byte[1024];
     while ((!CTSerialPort.ReadSP(ref bt, 1) && bt[0].ToString() != "B") && !readbstopflag)
     {
         Thread.Sleep(20);
     }
     Console.WriteLine("B Secces", bt[0].ToString());
     raFlag   = false;
     sendFlag = false;
 }
예제 #4
0
        void ReadA()
        {
            byte[] bt = new byte[1024];
            while (!CTSerialPort.ReadSP(ref bt, 1) && bt[0].ToString() != "A" && !readastopflag)
            {
                Thread.Sleep(20);
            }
            Console.WriteLine("A Secces", bt[0].ToString());
            Thread rb = new Thread(ReadB);

            rb.IsBackground = true;
            raFlag          = true;
            rb.Start();
            Thread sd = new Thread(SendRandData);

            sd.IsBackground = true;
            sendFlag        = true;
            sd.Start();
        }
예제 #5
0
 private void button1_Click(object sender, EventArgs e)
 {
     controlconfig.AddOrModifyItem(porttxt.Name, porttxt.Text);
     controlconfig.AddOrModifyItem(bodetxt.Name, bodetxt.Text);
     controlconfig.AddOrModifyItem(datatxt.Name, datatxt.Text);
     controlconfig.AddOrModifyItem(stoptxt.Name, stoptxt.Text);
     controlconfig.AddOrModifyItem(range1txt.Name, range1txt.Text);
     controlconfig.AddOrModifyItem(mid1txt.Name, mid1txt.Text);
     controlconfig.AddOrModifyItem(range2txt.Name, range2txt.Text);
     controlconfig.AddOrModifyItem(mid2txt.Name, mid2txt.Text);
     controlconfig.AddOrModifyItem(lineValtxt.Name, lineValtxt.Text);
     controlconfig.AddOrModifyItem(timetxt.Name, timetxt.Text);
     if (button1.Text == "Start")
     {
         Thread op = new Thread(OpenSP);
         op.IsBackground = true;
         op.Start();
         openThreadFlag = true;
         button1.Text   = "Stop";
     }
     else
     {
         if (CTSerialPort.IsComOpen())
         {
             readbstopflag = true;
             readastopflag = true;
             sendFlag      = false;
             Thread.Sleep(200);
             CTSerialPort.CloseSP();
             readbstopflag = false;
             readastopflag = false;
         }
         openThreadFlag = false;
         readastopflag  = true;
         Thread.Sleep(200);
         readastopflag = false;
         button1.Text  = "Start";
     }
 }