private void but_open_Click(object sender, EventArgs e) { Task.Run(() => { try { but_open.Text = "连接中..."; client?.Close(); client = new OmronFinsClient(txt_ip.Text?.Trim(), int.Parse(txt_port.Text.Trim())); var result = client.Open(); if (!result.IsSucceed) { MessageBox.Show($"连接失败:{result.Err}"); if (chb_show_package.Checked || (ModifierKeys & Keys.Control) == Keys.Control) { AppendText($"[请求报文]{result.Requst}"); if (result.Response.IsAny()) { AppendText($"[响应报文]{result.Response}\r\n"); } } } else { but_read.Enabled = true; but_brokenline.Enabled = true; but_write.Enabled = true; but_open.Enabled = false; but_close.Enabled = true; but_sendData.Enabled = true; AppendText($"连接成功\t\t\t\t耗时:{result.TimeConsuming}ms"); 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); } finally { but_open.Text = "连接"; } }); }
public void 长连接主动开关(int port) { client = new OmronFinsClient(ip, port); client.Open(); Random rnd = new Random((int)Stopwatch.GetTimestamp()); for (int i = 0; i < 100; i++) { short short_number = (short)rnd.Next(short.MinValue, short.MaxValue); ushort short_number_1 = (ushort)rnd.Next(ushort.MinValue, ushort.MaxValue); int int_number = rnd.Next(int.MinValue, int.MaxValue); uint int_number_1 = (uint)rnd.Next(0, int.MaxValue); float float_number = int_number / 100; var bool_value = short_number % 2 == 1; client.Write("D100", bool_value); Assert.True(client.ReadBoolean("D100").Value == bool_value); client.Write("D101", bool_value); Assert.True(client.ReadBoolean("D101").Value == bool_value); client.Write("D102", !bool_value); Assert.True(client.ReadBoolean("D102").Value == !bool_value); client.Write("D100", short_number); Assert.True(client.ReadInt16("D100").Value == short_number); client.Write("D100", short_number_1); Assert.True(client.ReadUInt16("D100").Value == short_number_1); client.Write("D100", int_number); Assert.True(client.ReadInt32("D100").Value == int_number); client.Write("D100", int_number_1); Assert.True(client.ReadUInt32("D100").Value == int_number_1); client.Write("D100", Convert.ToInt64(int_number)); Assert.True(client.ReadInt64("D100").Value == Convert.ToInt64(int_number)); client.Write("D100", Convert.ToUInt64(int_number_1)); Assert.True(client.ReadUInt64("D100").Value == Convert.ToUInt64(int_number_1)); client.Write("D200", float_number); Assert.True(client.ReadFloat("D200").Value == float_number); client.Write("D300", Convert.ToDouble(float_number)); Assert.True(client.ReadDouble("D300").Value == Convert.ToDouble(float_number)); } client.Close(); }