Esempio n. 1
0
        private void button9_Click(object sender, EventArgs e)
        {
            int  T;
            bool R;

            COMM_UpdateMsg("设置参数到设备 [0x" + CurConfig.Config.Address.ToString("X2") + "]", 0, " ", 1);
            T = CheckTools.RTC_EncodeTime(DateTime.Now.AddSeconds(1));
            DateTime DT = RTC_DecodeTime(T);

            CurConfig.Config.ProductDate = DT;
            byte[] ConfigDatas = new byte[200];


            ModbusPacket_AddData32(ref ConfigDatas, 0, RTC_EncodeTime(CurConfig.Config.ProductDate));

            R = CommByRS232.WritePacket(CurConfig.Config.Address, 2004, 2, ConfigDatas, 4);

            if (R == false)
            {
                COMM_UpdateMsg("失败", 0, "同步错误!", 0);
            }
            else
            {
                COMM_UpdateMsg("", 100, "读取成功!", 1);
                MessageBox.Show("  同步成功!当前设备内部时间:" + DT.ToString(), "消息", MessageBoxButtons.OK, MessageBoxIcon.None);
            }
        }
Esempio n. 2
0
        private void button56_Click(object sender, EventArgs e)
        {
            COMM_UpdateMsg("正在进行通讯测试……", 0, " ", 1);
            byte[] Productor = new byte[30];
            int    Length    = 0;
            bool   R         = CommByRS232.ReadPacket(CurConfig.Config.Address, 2002, 2, ref Productor, ref Length);

            COMM_UpdateMsg("", 80, "", 1);
            if (R == true)
            {
                COMM_UpdateMsg("", 100, "成功!", 1);
            }
            else
            {
                COMM_UpdateMsg("", 100, "失败!", 0);
            }
        }
Esempio n. 3
0
 private void button39_Click(object sender, EventArgs e)
 {
     try
     {
         if (button39.Text == "打开端口")
         {
             COMM_UpdateMsg("打开端口", 0, " ", 1);
             CurConfig.Config.Address = int.Parse(comboBox4.Text.Trim());
             bool R = CommByRS232.InitCommPort(comboBox1.Text.Trim(), int.Parse(comboBox2.Text.Trim()), 1, ModBusProc.HostMode);
             if (R == true)
             {
                 button39.Text      = "关端端口";
                 button39.ForeColor = Color.White;
                 button39.BackColor = Color.Red;
                 COMM_UpdateMsg("", 100, "打开成功!", 1);
             }
             else
             {
                 COMM_UpdateMsg("", 100, "打开失败!", 0);
             }
         }
         else
         {
             COMM_UpdateMsg("关闭端口", 0, " ", 1);
             if (CommByRS232.CommPort.IsOpen)
             {
                 CommByRS232.CommPort.Close();
             }
             button39.Text      = "打开端口";
             button39.ForeColor = Color.Black;
             button39.BackColor = Color.Gainsboro;
             COMM_UpdateMsg("", 100, "关闭成功!", 1);
         }
     }
     catch (Exception E)
     {
         COMM_UpdateMsg("端口操作", 0, "操作失败!", 0);
         MessageBox.Show(E.Message);
     }
 }
Esempio n. 4
0
        private void button12_Click(object sender, EventArgs e)
        {
            int T        = 0;
            int RxLength = 9;

            byte[] ConfigDatas = new byte[200];
            bool   R;

            COMM_UpdateMsg("从设备读取配置参数 [0x" + CurConfig.Config.Address.ToString("X2") + "]", 0, " ", 1);
            R = CommByRS232.ReadPacket(CurConfig.Config.Address, 2004, 2, ref ConfigDatas, ref RxLength);

            if (R == false)
            {
                COMM_UpdateMsg("失败", 0, "读取错误!", 0);
            }
            else
            {
                T = ModbusPacket_GetData32(ConfigDatas, 0);
                CurConfig.Config.ProductDate = RTC_DecodeTime(T);
                COMM_UpdateMsg("", 100, "读取成功!", 1);
                MessageBox.Show("当前设备内部时间: " + CurConfig.Config.ProductDate.ToString(), "消息", MessageBoxButtons.OK, MessageBoxIcon.None);
            }
        }
Esempio n. 5
0
        private void button11_Click(object sender, EventArgs e)
        {
            byte[] ConfigDatas = new byte[50];
            bool   R           = false;

            COMM_UpdateMsg("", 0, " ", 0);


            CurConfig.Config.Authcode = 123456;
            ModbusPacket_AddData32(ref ConfigDatas, 0, CurConfig.Config.Authcode);

            R = CommByRS232.WritePacket(CurConfig.Config.Address, 2136, 2, ConfigDatas, 4);

            if (R == true)
            {
                COMM_UpdateMsg("", 100, "修改密码成功!", 1);
                MessageBox.Show("初始密码为123456! ", "消息", MessageBoxButtons.OK, MessageBoxIcon.None);
                tbold.Text = CurConfig.Config.Authcode.ToString();
            }
            else
            {
                COMM_UpdateMsg("", 100, "失败!", 0);
            }
        }
Esempio n. 6
0
        private void button7_Click(object sender, EventArgs e)
        {
            COMM_UpdateMsg("从设备读取配置参数 [0x" + CurConfig.Config.Address.ToString("X2") + "]", 0, " ", 1);
            byte[] ConfigDatas = new byte[320];
            int    Length      = 108 * 2 + 5;
            bool   R           = CommByRS232.ReadPacket(CurConfig.Config.Address, 2004, 108, ref ConfigDatas, ref Length);//2004指的寄存器地址

            COMM_UpdateMsg("", 80, "", 1);
            if (R == true)
            {
                SysConfig.ConfigParams DevConfig = new SysConfig.ConfigParams();
                //DevConfig.ProductDate = ModbusPacket_GetData32(ConfigDatas, 0);
                DevConfig.DevNumber    = ModbusPacket_GetData32(ConfigDatas, 4);                           //偏移量,是指的字节的偏移量
                DevConfig.PasswordCode = ModbusPacket_GetData32(ConfigDatas, 8);

                DevConfig.CompName    = ModbusPacket_GetString(ConfigDatas, 12, 16);
                DevConfig.StationName = ModbusPacket_GetString(ConfigDatas, 28, 16);

                DevConfig.WarningLevel = ModbusPacket_GetData32(ConfigDatas, 44);
                DevConfig.WarnInterval = ModbusPacket_GetData(ConfigDatas, 48);
                DevConfig.WarnEnable   = (ModbusPacket_GetData(ConfigDatas, 50) > 0)?true:false;

                DevConfig.BaseLevel     = ModbusPacket_GetData32(ConfigDatas, 52);
                DevConfig.IncreaseLevel = ModbusPacket_GetData32(ConfigDatas, 56);
                DevConfig.InterTimeSet  = ModbusPacket_GetData(ConfigDatas, 60);//指的是字节数ModbusPacket_GetData

                DevConfig.TelCount = ModbusPacket_GetData(ConfigDatas, 62);
                DevConfig.TelNum1  = ModbusPacket_GetString(ConfigDatas, 64, 16);
                DevConfig.TelNum2  = ModbusPacket_GetString(ConfigDatas, 80, 16);
                DevConfig.TelNum3  = ModbusPacket_GetString(ConfigDatas, 96, 16);
                DevConfig.TelNum4  = ModbusPacket_GetString(ConfigDatas, 112, 16);
                DevConfig.TelNum5  = ModbusPacket_GetString(ConfigDatas, 128, 16);

                DevConfig.IpAddr1 = ModbusPacket_GetString(ConfigDatas, 144, 16);
                DevConfig.IpPort1 = ModbusPacket_GetString(ConfigDatas, 160, 8);

                DevConfig.IpAddr2 = ModbusPacket_GetString(ConfigDatas, 168, 16);
                DevConfig.IpPort2 = ModbusPacket_GetString(ConfigDatas, 184, 8);

                DevConfig.IpAddr3 = ModbusPacket_GetString(ConfigDatas, 192, 16);
                DevConfig.IpPort3 = ModbusPacket_GetString(ConfigDatas, 208, 8);//220


                Length = 26 * 2 + 5;
                byte[] ConfigDatas1 = new byte[80];
                R = CommByRS232.ReadPacket(CurConfig.Config.Address, 2112, 26, ref ConfigDatas1, ref Length);//指的是寄存器个数
                if (R == true)
                {
                    DevConfig.IpAddr4 = ModbusPacket_GetString(ConfigDatas1, 0, 16);
                    DevConfig.IpPort4 = ModbusPacket_GetString(ConfigDatas1, 16, 8);

                    DevConfig.IpAddr5 = ModbusPacket_GetString(ConfigDatas1, 24, 16);
                    DevConfig.IpPort5 = ModbusPacket_GetString(ConfigDatas1, 40, 8);

                    DevConfig.Authcode = ModbusPacket_GetData32(ConfigDatas1, 48);


                    LoadDefaultParams(DevConfig);

                    COMM_UpdateMsg("", 100, "成功!", 1);
                    tbnew.Text  = "";
                    tbnew2.Text = "";
                }
            }
            else
            {
                COMM_UpdateMsg("", 100, "失败!", 0);
            }
        }
Esempio n. 7
0
        private void button10_Click(object sender, EventArgs e)
        {
            COMM_UpdateMsg("", 0, " ", 0);
            if (CommByRS232.CommPort.IsOpen == false)
            {
                MessageBox.Show("端口未打开,请先打开端口!");
                return;
            }

            byte[] ConfigDatas = new byte[50];
            bool   R           = false;

            if (tbold.Text.ToString().Trim() == "")
            {
                COMM_UpdateMsg("", 0, "密码不能为空!", 0);
                MessageBox.Show("请输入密码 ", "消息", MessageBoxButtons.OK, MessageBoxIcon.None);
                return;
            }

            if (tbnew.Text.ToString().Trim() == "" || tbnew2.Text.ToString().Trim() == "")
            {
                COMM_UpdateMsg("", 0, "新密码不能为空!", 0);
                MessageBox.Show("新密码不能为空! ", "消息", MessageBoxButtons.OK, MessageBoxIcon.None);
                return;
            }


            if (tbnew.Text.ToString().Trim() != tbnew2.Text.ToString().Trim())
            {
                COMM_UpdateMsg("", 0, "两次输入的密码不一致!", 0);
                MessageBox.Show("两次输入的密码不一致! ", "消息", MessageBoxButtons.OK, MessageBoxIcon.None);
                return;
            }

            //  正则表达式只能输入n位的数字:"^\d{n}$"。
            try
            {
                int.Parse(tbnew.Text.ToString());
            }
            catch
            {
                COMM_UpdateMsg("", 0, "密码长度不为6或必须为数字!", 0);
                MessageBox.Show("密码长度不为6或必须为数字! ", "消息", MessageBoxButtons.OK, MessageBoxIcon.None);
                return;
            }
            //if (tbnew.Text != @"^\d{6}$" )
            //{

            //    COMM_UpdateMsg("", 0, "密码长度不为6或必须为数字!", 0);
            //    MessageBox.Show("密码长度不为6或必须为数字! ", "消息", MessageBoxButtons.OK, MessageBoxIcon.None);
            //    return;
            //}

            /*
             * static   private   Regex   r   =   new   Regex( "^[0-9]{1,}$ ");       //这个可以写成静态的,就不用老是构造
             * if(!r.IsMatch(textBox1.Text))
             * {
             * Messagebox.Show( "请输入数字 ");
             * }
             */

            CurConfig.Config.Authcode = int.Parse(tbnew2.Text.ToString().Trim());
            ModbusPacket_AddData32(ref ConfigDatas, 0, CurConfig.Config.Authcode);
            R = CommByRS232.WritePacket(CurConfig.Config.Address, 2136, 2, ConfigDatas, 4);

            if (R == true)
            {
                COMM_UpdateMsg("", 100, "成功!", 1);
                MessageBox.Show("修改密码成功! ", "消息", MessageBoxButtons.OK, MessageBoxIcon.None);
            }
            else
            {
                COMM_UpdateMsg("", 100, "失败!", 0);
            }
        }
Esempio n. 8
0
        private void button8_Click(object sender, EventArgs e)
        {
            bool R = false;

            COMM_UpdateMsg("设置参数到设备 [0x" + CurConfig.Config.Address.ToString("X2") + "]", 0, " ", 1);

            if (CommByRS232.CommPort.IsOpen == false)
            {
                MessageBox.Show("端口未打开,请先打开端口!");
            }
            else
            {
                R = SetConfigToDefault();
                COMM_UpdateMsg("", 20, "", 1);

                if (R == true)
                {
                    byte[] ConfigDatas = new byte[320];

                    ModbusPacket_AddData32(ref ConfigDatas, 0, CurConfig.Config.DevNumber);
                    ModbusPacket_AddData32(ref ConfigDatas, 4, CurConfig.Config.PasswordCode);
                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.CompName, 8, 16);
                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.StationName, 24, 16);

                    ModbusPacket_AddData32(ref ConfigDatas, 40, (int)CurConfig.Config.WarningLevel);
                    ModbusPacket_AddData(ref ConfigDatas, 44, CurConfig.Config.WarnInterval);
                    ModbusPacket_AddData(ref ConfigDatas, 46, CurConfig.Config.WarnEnable == true?1:0);

                    ModbusPacket_AddData32(ref ConfigDatas, 48, CurConfig.Config.BaseLevel);//预留的 for reserved
                    ModbusPacket_AddData32(ref ConfigDatas, 52, CurConfig.Config.IncreaseLevel);
                    ModbusPacket_AddData(ref ConfigDatas, 56, CurConfig.Config.InterTimeSet);

                    ModbusPacket_AddData(ref ConfigDatas, 58, CurConfig.Config.TelCount);
                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.TelNum1, 60, 16);
                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.TelNum2, 76, 16);
                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.TelNum3, 92, 16);
                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.TelNum4, 108, 16);
                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.TelNum5, 124, 16);

                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.IpAddr1, 140, 16);
                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.IpPort1, 156, 8);

                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.IpAddr2, 164, 16);
                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.IpPort2, 180, 8);

                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.IpAddr3, 188, 16);
                    ModbusPacket_GetByte(ref ConfigDatas, CurConfig.Config.IpPort3, 204, 8);

                    COMM_UpdateMsg("", 40, "", 1);

                    R = CommByRS232.WritePacket(CurConfig.Config.Address, 2006, 106, ConfigDatas, 212);

                    byte[] ConfigDatas1 = new byte[80];

                    if (R == true)
                    {
                        ModbusPacket_GetByte(ref ConfigDatas1, CurConfig.Config.IpAddr4, 0, 16);
                        ModbusPacket_GetByte(ref ConfigDatas1, CurConfig.Config.IpPort4, 16, 8);


                        ModbusPacket_GetByte(ref ConfigDatas1, CurConfig.Config.IpAddr5, 24, 16);
                        ModbusPacket_GetByte(ref ConfigDatas1, CurConfig.Config.IpPort5, 40, 8);

                        //ModbusPacket_AddData32(ref ConfigDatas1, 48, CurConfig.Config.Authcode);

                        COMM_UpdateMsg("", 80, "", 1);

                        R = CommByRS232.WritePacket(CurConfig.Config.Address, 2112, 24, ConfigDatas1, 48);
                    }
                }
            }
            if (R == true)
            {
                COMM_UpdateMsg("", 100, "成功!", 1);
            }
            else
            {
                COMM_UpdateMsg("", 100, "失败!", 0);
            }
        }