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

                //string[] array = new string[4];
                if (!reader.Read())
                {
                    MessageBox.Show("密码错误!");
                }
                else
                {
                    reader.Close();
                    DataBaseSys.CloseConn();

                    this.Hide();
                    Form1 f1 = new Form1(true);
                    f1.ShowDialog();
                    // ManagerSystem um = new ManagerSystem();
                    //MessageBox.Show("双击需要修改的坐标区域即可修改其中坐标地址!");
                    //um.ShowDialog();
                }
            }
            else
            {
                MessageBox.Show("密码不能为空!", "错误提示");
            }
        }
示例#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 + "';";
                                                     SQLiteDataReader msdrHand = DataBaseSys.GetDataReaderValue(sqlHandMes);
                                                     if (msdrHand.HasRows)
                                                     {
                                                         msdrHand.Close();
                                                         DataBaseSys.CloseConn();
                                                         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
                                                     {
                                                         msdrHand.Close();
                                                         DataBaseSys.CloseConn();
                                                         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(); }));
        }
示例#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 + "';";
                        SQLiteDataReader 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 + "';";
                                        SQLiteDataReader 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();
                            rder.Close();
                            DataBaseSys.CloseConn();
                        }
                        else
                        {
                            rder.Close();
                            DataBaseSys.CloseConn();
                            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());
                }
            }));
        }