Ejemplo n.º 1
0
        private void buttonLogin_Click(object sender, EventArgs e)
        {
            if (password.Text != "")
            {
                string          sql    = "select * from users where password='******';";
                MySqlDataReader reader = DataBaseSys.GetDataReaderValue(sql);

                //string[] array = new string[4];
                if (!reader.Read())
                {
                    MessageBox.Show("密码错误!");
                }
                else
                {
                    this.Hide();
                    Form1 f1 = new Form1(true);
                    f1.ShowDialog();
                    // ManagerSystem um = new ManagerSystem();
                    //MessageBox.Show("双击需要修改的坐标区域即可修改其中坐标地址!");
                    //um.ShowDialog();
                }
            }
            else
            {
                MessageBox.Show("密码不能为空!", "错误提示");
            }
        }
Ejemplo n.º 2
0
 //下位机串口2接收数据
 private void sp2_DataReceived(object sender, EventArgs e)
 {
     System.Threading.Thread.Sleep(100);
     this.Invoke((EventHandler)(delegate
     {  System.Threading.Thread.Sleep(100);                             
         Byte[] rb = new Byte[sp2.BytesToRead];
         sp2.Read(rb, 0, rb.Length);
         //手动状态下
         if (radioHand.Checked)
         {
             //存储回复FF信号的板子编号(04)
             if (rb[3] == 0XFF)
             {
                 strs += rb[2].ToString();
             }
             else//(03)
             {
                 string xYPoints = childToPcPointChange(rb);
                 childRandnum += rb[2].ToString();                       
                 adressPoints += xYPoints;
                 MessageBox.Show("定位成功子板id为" + childRandnum + "+-------收到的板子ID为:" + strs);
                 if (strs == childRandnum&&RexvData.Text!="")
                 {
                     lightSet.ForeColor = Color.Green;
                     string pointDingWei = "";
                     for (int i = 0; i < adressPoints.Split(',').Length; i++)
                     {
                         pointDingWei += adressPoints.Split(',')[i];
                     }
                     string[] pointDingWeiStrs = Regex.Replace(pointDingWei, @"(\w{4})", "$1,").Trim(',').Split(',');
                     DataTable dt = new DataTable();
                     dt.Rows.Add();
                     for (int i = 0; i < pointDingWeiStrs.Length; i++)
                     {
                         dt.Columns.Add("P" + (i + 1), System.Type.GetType("System.String"));
                         dt.Rows[0][i] = pointDingWeiStrs[i];
                     }
                     DataSet ds2 = new DataSet();
                     ds2.Tables.Add(dt);
                     //sda.Fill(ds2);
                     dataAdressView1.DataSource = ds2.Tables[0];
                     dataAdressView1.ReadOnly = true;
                     string machineId = RexvData.Text;
                     string newAdrsssPints = adressPoints.TrimEnd(',');
                     int n = adressPoints.Split(',').Length / 2;
                     string pointNumber = n > 10 ? n.ToString() : "0" + n;
                     String sqlHandMes = "select id from machines where machineId='" + RexvData.Text + "';";
                     MySqlDataReader msdrHand=DataBaseSys.GetDataReaderValue(sqlHandMes);
                     if (msdrHand.HasRows)
                     {
                         MessageBoxButtons ButtonHandAdress = MessageBoxButtons.OKCancel;
                         DialogResult drHand = MessageBox.Show("定位成功,存在相关的机种,需要修改吗?", "提示", ButtonHandAdress);
                         if (drHand == DialogResult.OK) {
                             if (!vip) MessageBox.Show("您没有管理员权限无法修改!");
                             else
                             {
                                 string sql = "update machines set childNumber='" + pointNumber + "' ,adressNumber='" + newAdrsssPints + "' where machineId= '" + RexvData.Text + "'";
                                 DataBaseSys.ExecuteNonQuery(sql);
                                 MessageBox.Show("修改成功!");
                             }                                                              }
                     }
                     else
                     {                         
                     MessageBoxButtons messButton = MessageBoxButtons.OKCancel;
                     DialogResult dr = MessageBox.Show("定位成功,无相关的机种,确定添加吗?", "提示", messButton);
                     if (dr == DialogResult.OK)//如果点击“确定”按钮
                     {
                         string addSql = "insert into machines(machineId,childNumber,adressNumber) values('" + machineId + "','" + pointNumber + "','" + newAdrsssPints + "')";
                         DataBaseSys.ExecuteNonQuery(addSql);
                         MessageBox.Show("添加成功!");
                         }                                
                     }
                     adressPoints = "";
                     MessageBoxButtons messButtonAdd = MessageBoxButtons.OKCancel;
                     DialogResult dr2 = MessageBox.Show("需要继续手动添加新机种吗?", "提示", messButtonAdd);
                     if (dr2 == DialogResult.OK)
                     {
                         insertButton.Enabled = false;
                         radioHand_MouseClick(null, null);                              
                     }
                     else radioAuto.Checked = true;
                 }
             }
         }
         //自动状态下
         else
         {
             b++;
             if (rb[3] == 0X00)//纠错成功回复00(05)
             {
                 childNumList.Remove("0" + rb[2]);
                 b = b - 1;                    
                 if (childNumList.Count==0)
                 {
                     for (int k = 0; k < dataAdressView1.ColumnCount; k++)
                     {
                         dataAdressView1.Rows[0].Cells[k].Style.ForeColor = Color.Black;                                                                                              
                     }
                     lightSet.ForeColor = Color.Green;
                     timer1.Enabled = false;
                     timer1.Stop();
                     childNumList.Clear();
                     return;
                 }                                                 
                 }
             else//有错误子板回复带坐标的(05)
             {
                 string[] pointNums = Regex.Replace(dataBasePoints, @"(\w{4})", "$1,").Trim(',').Split(',');//把数据库查的坐标以一组4位以逗号分隔
                 string xYPoints = childToPcPointChange(rb);
                 autoAdressPoints += xYPoints;
                 string[] autoPoints= Regex.Replace(autoAdressPoints.Replace(",",""), @"(\w{4})", "$1,").Trim(',').Split(',');//把下位机传来查的坐标以一组4位以逗号分隔                                  
                 for (int i = 0; i < pointNums.Length; i++)
                 {
                     for (int j = 0; j < autoPoints.Length; j++)
                     {
                         if (pointNums[i] == autoPoints[j])
                         {
                             sameMesList.Add(autoPoints[j]);
                             break ;
                         }
                     }
                 }
                 /*去重
                 for (int i = 0; i < sameMesList.Count - 1; i++)
                 {
                     for (int j = i + 1; j < sameMesList.Count; j++)
                     {
                         if (sameMesList[i].Equals(sameMesList[j]))
                         {
                             sameMesList.RemoveAt(j);
                             j--;
                         }
                     }
                 }*/
             }
             if (b == childNumList.Count)
             {
                 string s = "";
                 foreach (var item in sameMesList)
                 {
                     s+= item.ToString()+",";
                 }
                 for (int k = 0; k < dataAdressView1.ColumnCount; k++)
                 {
                     //string strData = dataAdressView1[j, 0].Value.ToString();
                     for (int j = 0; j < sameMesList.Count; j++)
                     {
                         if (dataAdressView1.Rows[0].Cells[k].Value.ToString() == sameMesList[j].ToString())
                         {
                             dataAdressView1.Rows[0].Cells[k].Style.ForeColor = Color.Red;
                             lightSet.ForeColor = Color.Red;
                             break;
                         }
                         else dataAdressView1.Rows[0].Cells[k].Style.ForeColor = Color.Black;
                     }
                 }
                 autoAdressPoints = "";
                 sameMesList.Clear();
                 b = 0;
             }
         }
         sp2.DiscardInBuffer();
     }));
 }  
Ejemplo n.º 3
0
        string childRandnum = "";//手动定位成功的子板号
        //扫码枪串口1接收数据
        private void sp_DataReceived(object sender, EventArgs e)
        {
            System.Threading.Thread.Sleep(100);
            this.Invoke((EventHandler)(delegate
            {
                try
                {
                    dataBasePoints = "";
                    lightSet.ForeColor = Color.Black;
                    if (radioAuto.Checked)
                    {
                        childNumList.Clear();
                        RexvData.Text = "";
                        Byte[] rb = new Byte[sp.BytesToRead];
                        UTF8Encoding utf = new UTF8Encoding();
                        sp.Read(rb, 0, rb.Length);//接收到数据从缓冲区以字节数组形式读出来                                                                      
                        string[] ds = utf.GetString(rb).Split(',');
                        string machineNum = ds[0];
                        string pointNumber = ds[1].Substring(0, 2);
                        string adressPoint = ds[1].Substring(2, (ds[1].Length) - 2);
                        string newStyle = Regex.Replace(adressPoint, @"(\w{2})", "$1,").Trim(',');
                        RexvData.Text = machineNum;
                        String sql = "select childNumber,adressNumber from machines where machineId='" + machineNum + "';";
                        MySqlDataReader rder = DataBaseSys.GetDataReaderValue(sql);
                        if (rder.Read())
                        {
                            string[] point = rder[1].ToString().Split(',');//4                      
                            string pointOld = "";
                            for (int i = 0; i < point.Length; i++)
                            {
                                pointOld += point[i];
                            }
                            dataBasePoints = pointOld;
                            string[] pointNums = Regex.Replace(pointOld, @"(\w{4})", "$1,").Trim(',').Split(',');
                            string[] twoPoint = Regex.Replace(adressPoint, @"(\w{4})", "$1,").Trim(',').Split(',');
                            if (!Enumerable.SequenceEqual(pointNums, twoPoint))
                            {
                                MessageBoxButtons messButton1 = MessageBoxButtons.OKCancel;
                                DialogResult dr1 = MessageBox.Show("已有该机种,坐标不一致!需要修改吗?", "提示", messButton1);
                                if (dr1 == DialogResult.OK)//如果点击“确定”按钮
                                {
                                    if (!vip) MessageBox.Show("您没有管理员权限无法修改!");
                                    else
                                    {
                                        string sqlAuto = "update machines set childNumber='" + pointNumber + "' ,adressNumber='" + newStyle + "' where machineId= '" + RexvData.Text + "'";
                                        DataBaseSys.ExecuteNonQuery(sqlAuto);
                                        pointNums = twoPoint;
                                        String sqlUpdate = "select childNumber,adressNumber from machines where machineId='" + RexvData.Text + "';";
                                        MySqlDataReader rderUpdate = DataBaseSys.GetDataReaderValue(sqlUpdate);
                                        rder = rderUpdate;
                                        if (rderUpdate.Read())
                                        {
                                            string[] pointUpdate = rderUpdate[1].ToString().Split(',');//4                      
                                            string pointOldUpdate = "";
                                            for (int i = 0; i < pointUpdate.Length; i++)
                                            {
                                                pointOldUpdate += pointUpdate[i];
                                            }
                                            dataBasePoints = pointOldUpdate;
                                            MessageBox.Show("修改成功!");
                                        }
                                    }
                                }
                            }
                            DataTable dt = new DataTable();
                            dt.Rows.Add();
                            for (int i = 0; i < pointNums.Length; i++)
                            {
                                dt.Columns.Add("P" + (i + 1), System.Type.GetType("System.String"));
                                dt.Rows[0][i] = pointNums[i];
                            }
                            DataSet ds2 = new DataSet();
                            ds2.Tables.Add(dt);
                            //sda.Fill(ds2);
                            dataAdressView1.DataSource = ds2.Tables[0];
                            dataAdressView1.ReadOnly = true;
                            //dataAdressView1.Rows[0].Cells[0].Style.BackColor = Color.Red;

                            //自动模式下解析数据库存放的坐标地址用来与子板通讯
                            string[] adressPointData = rder[1].ToString().Split(',');
                            // string pointNum = msr[0].ToString();
                            string[] adressPoint1 = getChildNum(adressPointData);
                            //adressPoint1 = adressPoint1.Where(sP => !string.IsNullOrEmpty(sP)).ToArray();
                            for (int i = 0; i < adressPoint1.Length; i++)
                            {
                                if (!string.IsNullOrEmpty(adressPoint1[i]))
                                {
                                    PortOrder po = new PortOrder(Direction.AB, "02", "0" + (i + 1), "0" + adressPoint1[i].Length / 4, adressPoint1[i]);
                                    childNumList.Add("0" + (i + 1));
                                    sp2.Write(hexToString(po.getConnOrder()), 0, hexToString(po.getConnOrder()).Length);
                                }
                            }
                            //定时向子板发送05自动读取命令以收到错误坐标指令
                            timer1.Enabled = true;
                            timer1.Start();
                        }
                        else
                        {
                            MessageBoxButtons messButton = MessageBoxButtons.OKCancel;
                            DialogResult dr = MessageBox.Show("检测到是新机种!确定添加吗?", "提示", messButton);
                            if (dr == DialogResult.OK)//如果点击“确定”按钮
                            {
                                try
                                {
                                    string addSql = "insert into machines(machineId,childNumber,adressNumber) values('" + machineNum + "','" + pointNumber + "','" + newStyle + "')";
                                    DataBaseSys.ExecuteNonQuery(addSql);
                                    MessageBox.Show("添加成功!请重新扫描。");
                                }
                                catch (Exception)
                                {
                                    MessageBox.Show("添加失败!");
                                }
                            }
                            else {RexvData.Text = ""; dataAdressView1.DataSource = new DataTable(); }
                            sp.DiscardInBuffer();
                        }
                    }
                }
                catch (Exception x)
                {
                    MessageBox.Show("出现异常错误!" + x.ToString());
                }
            }));
        }