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