Exemple #1
0
        private void InitialTab()
        {
            try
            {
                if (serverpara.connectvalid == false)
                {
                    throw new Exception("服务器参数获取失败,请检查参数设置是否有误!");
                }
                string[] host = { serverpara.RedisPassword + '@' + serverpara.RedisIP + ':' + serverpara.RedisPort };

                //从连接池获得只读连接客户端
                int         initialDB = 0;
                RedisClient Client    = (RedisClient)redismanager.GetReadOnlyClient(ref (initialDB), ref (host));
                if (Client == null || !Client.Ping())
                {
                    throw new Exception("连接服务器失败,请设置服务器参数!");
                }
                //连接云端服务器成功

                myTab.Clear();
                foreach (var key in CNCinfo)
                {
                    Client.ChangeDb(key.MachineDB);

                    byte[] machinealarmbyte = new byte[] { };
                    byte[] alarmbyte        = Encoding.UTF8.GetBytes("ALARMNUM_HISTORY");
                    machinealarmbyte = Client.HGet("Alarm:AlarmNum", alarmbyte);
                    if (machinealarmbyte == null)
                    {
                        continue;
                    }
                    string machinealarmstr = System.Text.Encoding.Default.GetString(machinealarmbyte);
                    long   machinealarm    = Convert.ToInt64(machinealarmstr);

                    myTab.Rows.Add(new object[] { null, machinealarm, key.MachineName });
                }
                foreach (var key in Robotinfo)
                {
                    Client.ChangeDb(key.MachineDB);

                    byte[] machinealarmbyte = new byte[] { };
                    byte[] alarmbyte        = Encoding.UTF8.GetBytes("ALARMNUM_HISTORY");
                    machinealarmbyte = Client.HGet("Alarm:AlarmNum", alarmbyte);
                    if (machinealarmbyte == null)
                    {
                        continue;
                    }
                    string machinealarmstr = System.Text.Encoding.Default.GetString(machinealarmbyte);
                    long   machinealarm    = Convert.ToInt64(machinealarmstr);

                    myTab.Rows.Add(new object[] { null, machinealarm, key.MachineName });
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("ERROR:" + ex.Message, "ERROR");
            }
        }
Exemple #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            redispara.connectvalid = false;
            String IP   = textBox1.Text;
            int    port = 0;

            redispara.RedisIP       = textBox1.Text;
            redispara.RedisPort     = textBox2.Text;
            redispara.RedisPassword = textBox3.Text;

            if (int.TryParse(textBox2.Text, out port) != true)
            {
                MessageBox.Show("错误:服务器端口号输入错误,请重新输入!", "ERROR");
                return;
            }
            String password  = textBox3.Text;
            long   initialDb = 0;

            string[] host = { redispara.RedisPassword + '@' + redispara.RedisIP + ':' + redispara.RedisPort };
            try
            {
                RedisManager redismanager = new RedisManager(ref (initialDb), ref (host));
                RedisClient  Client       = (RedisClient)redismanager.GetReadOnlyClient(ref (initialDb), ref (host));
                if (!Client.Ping())
                {
                    throw new Exception("连接服务器失败!");
                }
                MessageBox.Show("测试连接本地Redis数据库成功!", "提示");
                redispara.connectvalid = true;
                Properties.Settings.Default.Save(); // 存储上一次成功连接的IP地址和端口号
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("ERROR:" + ex.Message, "ERROR");
                redispara.connectvalid = false;
            }
        }
Exemple #3
0
        private void buttonServerConnect_Click(object sender, EventArgs e)
        {
            try
            {
                //云服务器连接ip,por,password设置
                for (int i = 1; i <= 4; ++i)
                {
                    //检验输入是否为数字,数字是否介于0~255之间
                    int     tmp     = -1;
                    TextBox objText = (TextBox)this.panel1.Controls["textBox" + i.ToString()];
                    if (int.TryParse(objText.Text, out tmp) != true)
                    {
                        throw new Exception("错误:云服务器IP地址输入错误,请重新输入!");
                    }
                    else if (!(tmp >= 0 && tmp <= 255))
                    {
                        throw new Exception("错误:云服务器IP地址输入错误,请重新输入!");
                    }
                }
                String IP   = textBox1.Text + '.' + textBox2.Text + '.' + textBox3.Text + '.' + textBox4.Text;
                int    port = 0;
                if (int.TryParse(textBox5.Text, out port) != true)
                {
                    throw new Exception("错误:云服务器端口号输入错误,请重新输入!");
                }
                serverpara.RedisIP       = IP;
                serverpara.RedisPort     = textBox5.Text;
                serverpara.RedisPassword = textBox6.Text;
                serverpara.connectvalid  = false;

                //host主机参数  格式“password@ip:port”
                string[] host = { serverpara.RedisPassword + '@' + serverpara.RedisIP + ':' + serverpara.RedisPort };
                //从连接池获得只读连接客户端
                long        initialDB = 0;
                RedisClient Client    = (RedisClient)redismanager.GetReadOnlyClient(ref (initialDB), ref (host));
                if (Client == null || !Client.Ping())
                {
                    throw new Exception("连接云服务器失败!");
                }
                //云服务器连接成功
                serverpara.connectvalid = true;

                //本地服务器连接ip,por,password设置
                for (int i = 7; i <= 10; ++i)
                {
                    //检验输入是否为数字,数字是否介于0~255之间
                    int     tmpint  = -1;
                    TextBox objText = (TextBox)this.panel2.Controls["textBox" + i.ToString()];
                    if (int.TryParse(objText.Text, out tmpint) != true)
                    {
                        throw new Exception("错误:云服务器IP地址输入错误,请重新输入!");
                    }
                    else if (!(tmpint >= 0 && tmpint <= 255))
                    {
                        throw new Exception("错误:云服务器IP地址输入错误,请重新输入!");
                    }
                }
                IP   = textBox7.Text + '.' + textBox8.Text + '.' + textBox9.Text + '.' + textBox10.Text;
                port = 0;
                if (int.TryParse(textBox11.Text, out port) != true)
                {
                    throw new Exception("错误:云服务器端口号输入错误,请重新输入!");
                }

                redispara.RedisIP       = IP;
                redispara.RedisPort     = textBox11.Text;
                redispara.RedisPassword = textBox12.Text;
                redispara.connectvalid  = false;

                //localhost主机参数  格式“password@ip:port”
                string[] localhost = { redispara.RedisPassword + '@' + redispara.RedisIP + ':' + redispara.RedisPort };
                //从连接池获得只读连接客户端
                initialDB = 0;
                Client    = (RedisClient)localredismanager.GetReadOnlyClient(ref (initialDB), ref (localhost));
                if (Client == null || !Client.Ping())
                {
                    throw new Exception("连接本地服务器失败!");
                }
                //本地服务器连接成功
                redispara.connectvalid = true;

                /*if (redispara.connectvalid)
                 * {
                 *  try
                 *  {
                 *      FileStream fs = new FileStream(@"../LocalRedisPara.conf", FileMode.Create);
                 *      StreamWriter sw = new StreamWriter(fs);
                 *      sw.Write("RedisIP=" + redispara.RedisIP + ";RedisPort=" + redispara.RedisPort + ";RedisPassword="******"服务器参数设置完毕", "提示");
            }
            catch (Exception ex)
            {
                MessageBox.Show("ERROR:" + ex.Message, "ERROR");
                redismanager.dispose();
            }
        }
Exemple #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            button2_Click(sender, e);

            //redispara = redisparasetting.redisparaName;
            //服务器连接ip,por,password设置
            for (int i = 1; i <= 4; ++i)
            {
                //检验输入是否为数字,数字是否介于0~255之间
                int     tmp     = -1;
                TextBox objText = (TextBox)this.Controls["textBox" + i.ToString()];
                if (int.TryParse(objText.Text, out tmp) != true)
                {
                    MessageBox.Show("错误:服务器IP地址输入错误,请重新输入!", "ERROR");
                    return;
                }
                else if (!(tmp >= 0 && tmp <= 255))
                {
                    MessageBox.Show("错误:服务器IP地址输入错误,请重新输入!", "ERROR");
                    return;
                }
            }
            String IP   = textBox1.Text + '.' + textBox2.Text + '.' + textBox3.Text + '.' + textBox4.Text;
            int    port = 0;

            if (int.TryParse(textBox5.Text, out port) != true)
            {
                MessageBox.Show("错误:服务器端口号输入错误,请重新输入!", "ERROR");
                return;
            }
            serverpara.RedisIP       = IP;
            serverpara.RedisPort     = textBox5.Text;
            serverpara.RedisPassword = textBox6.Text;
            serverpara.connectvalid  = false;

            //host主机参数  格式“password@ip:port”
            string[] host = { serverpara.RedisPassword + '@' + serverpara.RedisIP + ':' + serverpara.RedisPort };

            try
            {
                //从连接池获得只读连接客户端
                long        initialDB = 0;
                RedisClient Client    = (RedisClient)redismanager.GetReadOnlyClient(ref (initialDB), ref (host));
                //byte[] ConnectTimeout = System.BitConverter.GetBytes(3);
                //Client.ConfigSet("repl-ping-slave-period", ConnectTimeout);
                if (Client == null ||   !Client.Ping())
                {
                    throw new Exception("连接服务器失败!");
                }
                //连接成功
                serverpara.connectvalid = true;
                redismanager.DisposeClient(ref (Client)); //dispose客户端
                Properties.Settings.Default.Save();       // 存储上一次成功连接的IP地址和端口号\
                firsttimerun = true;                      //第一次运行完成

                //测试连接
                MessageBox.Show(Client.Db.ToString());  //db index
                MessageBox.Show(Client.DbSize.ToString());

                //绘制用户界面
                if (machinestate == null)
                {
                    machinestate = new UserControlMachineState();
                }
                machinestate.Visible           = true;
                machinestate.listView1.Visible = true;
                machinestate.Dock = DockStyle.Fill;

                //绘制标题
                machinestate.Height = this.panel1.Height;
                machinestate.Width  = this.panel1.Width;

                if (!machinestate.ListViewTitleDraw(ref (LineNo)))
                {
                    throw new Exception();
                }
                this.panel1.Controls.Add(machinestate);

                //机床状态监测画面初始化
                ListViewInitial();

                //机床状态监测画面刷新
                t           = new System.Timers.Timer(1000);                          //实例化Timer类,设置间隔时间为10000毫秒;
                t.Elapsed  += new System.Timers.ElapsedEventHandler(ListViewRefrush); //到达时间的时候执行事件;
                t.AutoReset = true;                                                   //设置是执行一次(false)还是一直执行(true);
                t.Enabled   = true;                                                   //是否执行System.Timers.Timer.Elapsed事件;
            }
            catch (Exception ex)
            {
                MessageBox.Show("ERROR:" + ex.Message, "ERROR");
                if (machinestate != null)
                {
                    machinestate.Visible = false;
                    machinestate         = null;
                }
                redismanager.dispose();
                //redispara.dispose();
            }
        }
Exemple #5
0
        public bool setting(Operation operation)
        {
            string textSN   = textBox2.Text;
            string textNO   = textBox1.Text;
            string textIP   = textBox3.Text;
            string textPort = textBox4.Text;
            string textDB   = textBox5.Text;

            try
            {
                if (comboBox1.SelectedItem == null)
                {
                    throw new Exception("错误:未选择生产线路,请重新选择!");
                }
                String texttmp = comboBox1.SelectedItem.ToString();
                texttmp = texttmp.Substring(4);
                UInt16 lineselect;   //生产线编号
                if (UInt16.TryParse(texttmp, out lineselect) != true)
                {
                    throw new Exception("错误:生产线路错误,请重新设置!");
                }

                //连接本地数据库
                if (redispara.connectvalid == false)
                {
                    throw new Exception("错误:本地Redis数据库参数错误,请重新设置!");
                }
                long         initialDb    = 0;
                string[]     host         = { redispara.RedisPassword + '@' + redispara.RedisIP + ':' + redispara.RedisPort };
                RedisManager redismanager = new RedisManager(ref (initialDb), ref (host));
                RedisClient  Client       = (RedisClient)redismanager.GetReadOnlyClient(ref (initialDb), ref (host));
                if (!Client.Ping())
                {
                    throw new Exception("错误:本地Redis数据库参数错误,请重新设置!");
                }

                //读取生产线N的设备信息 LineNO
                bool   LineExist = false;
                string lineno    = "Line" + lineselect.ToString();
                //生产线lineno是否存在
                if (Client.SCard(lineno) == 0)
                {
                    LineExist = false;
                }
                else
                {
                    LineExist = true;
                }

                //缺省DB为null
                if (textDB == "")
                {
                    textDB = "null";
                }

                if (operation == Operation.Add)
                {
                    //设备信息输入校正
                    if (textSN == "")
                    {
                        throw new Exception("错误:设备SN码未输入,请重新输入!");
                    }
                    else if (textNO == "")
                    {
                        throw new Exception("错误:设备编号未输入,请重新输入!");
                    }
                    else if (textIP == "")
                    {
                        throw new Exception("错误:设备IP地址未输入,请重新输入!");
                    }
                    else if (textPort == "")
                    {
                        throw new Exception("错误:设备端口号未输入,请重新输入!");
                    }

                    //LineNO生产线加入设备SN码 key:LineNo(集合类型)
                    Client.SAdd(lineno, Encoding.UTF8.GetBytes(textSN));

                    //增加设备的参数信息,key:SN码(Hash类型)
                    byte[][] keys = new byte[][]
                    {
                        Encoding.UTF8.GetBytes("MachineNo"),
                        Encoding.UTF8.GetBytes("IP"),
                        Encoding.UTF8.GetBytes("Port"),
                        Encoding.UTF8.GetBytes("DB")
                    };

                    byte[][] values = new byte[][]
                    {
                        Encoding.UTF8.GetBytes(textNO),
                        Encoding.UTF8.GetBytes(textIP),
                        Encoding.UTF8.GetBytes(textPort),
                        Encoding.UTF8.GetBytes(textDB)
                    };
                    Client.HMSet("MachineSN:" + textSN, keys, values);
                    return(true);
                }
                else if (operation == Operation.Delete)
                {
                    //设备信息输入校正
                    if (textSN == "")
                    {
                        throw new Exception("错误:设备SN码未输入,请重新输入!");
                    }

                    if (LineExist == true)
                    {
                        Client.Remove(textSN);
                        Client.SRem(lineno, Encoding.UTF8.GetBytes(textSN));
                        return(true);
                    }
                    else
                    {
                        MessageBox.Show("生产线" + lineno.ToString() + "生产线数据已全部清除!", "提示");
                        return(false);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "ERROR");
                return(false);
            }
            return(true);
        }