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); } }
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(); }
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; }
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(); }
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"; } }