public void 批量读写(MitsubishiVersion version, int port) { client = new MitsubishiClient(version, ip, port); client.Open(); Random rnd = new Random((int)Stopwatch.GetTimestamp()); short short_number1 = (short)rnd.Next(short.MinValue, short.MaxValue); short short_number2 = (short)rnd.Next(short.MinValue, short.MaxValue); short short_number3 = (short)rnd.Next(short.MinValue, short.MaxValue); short short_number4 = (short)rnd.Next(short.MinValue, short.MaxValue); short short_number5 = (short)rnd.Next(short.MinValue, short.MaxValue); var bool_value = short_number1 % 2 == 1; client.Write("M100", !bool_value); client.Write("M101", !bool_value); client.Write("M102", bool_value); client.Write("M103", !bool_value); client.Write("M104", bool_value); var result = client.ReadBoolean("M100", 5); foreach (var item in result.Value) { if (item.Key == "M100" || item.Key == "M101" || item.Key == "M103") { Assert.True(item.Value == !bool_value); } else { Assert.True(item.Value == bool_value); } } client.Write("D100", short_number1); client.Write("D101", short_number2); client.Write("D102", short_number3); client.Write("D103", short_number4); client.Write("D104", short_number5); Assert.True(client.ReadInt16("D100").Value == short_number1); Assert.True(client.ReadInt16("D101").Value == short_number2); Assert.True(client.ReadInt16("D102").Value == short_number3); Assert.True(client.ReadInt16("D103").Value == short_number4); Assert.True(client.ReadInt16("D104").Value == short_number5); client?.Close(); }
private void ReadWrite() { Random rnd = new Random((int)Stopwatch.GetTimestamp()); for (int i = 0; i < 10; i++) { short short_number = (short)rnd.Next(short.MinValue, short.MaxValue); int int_number = rnd.Next(int.MinValue, int.MaxValue); float float_number = int_number / 100; var bool_value = short_number % 2 == 1; client.Write("X100", bool_value); Assert.True(client.ReadBoolean("X100").Value == bool_value); client.Write("Y100", !bool_value); Assert.True(client.ReadBoolean("Y100").Value == !bool_value); client.Write("M100", !bool_value); Assert.True(client.ReadBoolean("M100").Value == !bool_value); client.Write("M101", bool_value); Assert.True(client.ReadBoolean("M101").Value == bool_value); client.Write("M102", bool_value); Assert.True(client.ReadBoolean("M102").Value == bool_value); client.Write("M103", !bool_value); Assert.True(client.ReadBoolean("M103").Value == !bool_value); client.Write("M104", bool_value); Assert.True(client.ReadBoolean("M104").Value == bool_value); //client.Write("L100", !bool_value); //Assert.True(client.ReadBoolean("L100").Value == !bool_value); //client.Write("F100", bool_value); //Assert.True(client.ReadBoolean("F100").Value == bool_value); //client.Write("V100", !bool_value); //Assert.True(client.ReadBoolean("V100").Value == !bool_value); //client.Write("B100", bool_value); //Assert.True(client.ReadBoolean("B100").Value == bool_value); //client.Write("S100", bool_value); //Assert.True(client.ReadBoolean("S100").Value == bool_value); client.Write("D200", short_number); Assert.True(client.ReadInt16("D200").Value == short_number); client.Write("D200", int_number); Assert.True(client.ReadInt32("D200").Value == int_number); client.Write("D200", Convert.ToInt64(int_number)); Assert.True(client.ReadInt64("D200").Value == Convert.ToInt64(int_number)); client.Write("D200", float_number); Assert.True(client.ReadFloat("D200").Value == float_number); client.Write("D200", Convert.ToDouble(float_number)); Assert.True(client.ReadDouble("D200").Value == Convert.ToDouble(float_number)); //client.Write("W400", short_number); //Assert.True(client.ReadInt16("W400").Value == short_number); //client.Write("R200", r_number); //Assert.True(client.ReadInt16("R200").Value == r_number); Debug.WriteLine(short_number); } }
private void but_read_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(txt_address.Text)) { MessageBox.Show("请输入地址"); return; } dynamic result = null; if (rd_bit.Checked) { result = client.ReadBoolean(txt_address.Text); } else if (rd_short.Checked) { result = client.ReadInt16(txt_address.Text); } else if (rd_ushort.Checked) { result = client.ReadUInt16(txt_address.Text); } else if (rd_int.Checked) { result = client.ReadInt32(txt_address.Text); } else if (rd_uint.Checked) { result = client.ReadUInt32(txt_address.Text); } else if (rd_long.Checked) { result = client.ReadInt64(txt_address.Text); } else if (rd_ulong.Checked) { result = client.ReadUInt64(txt_address.Text); } else if (rd_float.Checked) { result = client.ReadFloat(txt_address.Text); } else if (rd_double.Checked) { result = client.ReadDouble(txt_address.Text); } if (result.IsSucceed) { AppendText($"[读取 {txt_address.Text?.Trim()} 成功]:{result.Value}"); } else { AppendText($"[读取 {txt_address.Text?.Trim()} 失败]:{result.Err}"); } if (chb_show_package.Checked || (ModifierKeys & Keys.Control) == Keys.Control) { AppendText($"[请求报文]{result.Requst}"); AppendText($"[响应报文]{result.Response}\r\n"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void but_read_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(txt_address.Text)) { MessageBox.Show("请输入地址"); return; } dynamic result = null; if (rd_bit.Checked) { result = client.ReadBoolean(txt_address.Text); } else if (rd_short.Checked) { result = client.ReadInt16(txt_address.Text); } else if (rd_ushort.Checked) { result = client.ReadUInt16(txt_address.Text); } else if (rd_int.Checked) { result = client.ReadInt32(txt_address.Text); } else if (rd_uint.Checked) { result = client.ReadUInt32(txt_address.Text); } else if (rd_long.Checked) { result = client.ReadInt64(txt_address.Text); } else if (rd_ulong.Checked) { result = client.ReadUInt64(txt_address.Text); } else if (rd_float.Checked) { result = client.ReadFloat(txt_address.Text); } else if (rd_double.Checked) { result = client.ReadDouble(txt_address.Text); } if (result.IsSucceed) { AppendText($"[读取 {txt_address.Text?.Trim()} 成功]:{result.Value}\t\t耗时:{result.TimeConsuming}ms"); } else { AppendText($"[读取 {txt_address.Text?.Trim()} 失败]:{result.Err}\t\t耗时:{result.TimeConsuming}ms"); } if (chb_show_package.Checked || (ModifierKeys & Keys.Control) == Keys.Control) { AppendText($"[请求报文]{result.Requst}"); AppendText($"[响应报文]{result.Response}\r\n"); } var config = ConnectionConfig.GetConfig(); switch (version) { case MitsubishiVersion.A_1E: config.MitsubishiA1E_IP = txt_ip.Text; config.MitsubishiA1E_Port = txt_port.Text; config.MitsubishiA1E_Address = txt_address.Text; config.MitsubishiA1E_Value = txt_value.Text; config.MitsubishiA1E_ShowPackage = chb_show_package.Checked; config.MitsubishiA1E_Datatype = string.Empty; if (rd_bit.Checked) { config.MitsubishiA1E_Datatype = "rd_bit"; } else if (rd_short.Checked) { config.MitsubishiA1E_Datatype = "rd_short"; } else if (rd_ushort.Checked) { config.MitsubishiA1E_Datatype = "rd_ushort"; } else if (rd_int.Checked) { config.MitsubishiA1E_Datatype = "rd_int"; } else if (rd_uint.Checked) { config.MitsubishiA1E_Datatype = "rd_uint"; } else if (rd_long.Checked) { config.MitsubishiA1E_Datatype = "rd_long"; } else if (rd_ulong.Checked) { config.MitsubishiA1E_Datatype = "rd_ulong"; } else if (rd_float.Checked) { config.MitsubishiA1E_Datatype = "rd_float"; } else if (rd_double.Checked) { config.MitsubishiA1E_Datatype = "rd_double"; } break; case MitsubishiVersion.Qna_3E: config.MitsubishiQna3E_IP = txt_ip.Text; config.MitsubishiQna3E_Port = txt_port.Text; config.MitsubishiQna3E_Address = txt_address.Text; config.MitsubishiQna3E_Value = txt_value.Text; config.MitsubishiQna3E_ShowPackage = chb_show_package.Checked; config.MitsubishiQna3E_Datatype = string.Empty; if (rd_bit.Checked) { config.MitsubishiQna3E_Datatype = "rd_bit"; } else if (rd_short.Checked) { config.MitsubishiQna3E_Datatype = "rd_short"; } else if (rd_ushort.Checked) { config.MitsubishiQna3E_Datatype = "rd_ushort"; } else if (rd_int.Checked) { config.MitsubishiQna3E_Datatype = "rd_int"; } else if (rd_uint.Checked) { config.MitsubishiQna3E_Datatype = "rd_uint"; } else if (rd_long.Checked) { config.MitsubishiQna3E_Datatype = "rd_long"; } else if (rd_ulong.Checked) { config.MitsubishiQna3E_Datatype = "rd_ulong"; } else if (rd_float.Checked) { config.MitsubishiQna3E_Datatype = "rd_float"; } else if (rd_double.Checked) { config.MitsubishiQna3E_Datatype = "rd_double"; } break; } config.SaveConfig(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }