用于串行端口活动的Visualizer(用于发送和接收的数据)

时间:2011-12-14 14:34:58

标签: c# .net winforms serial-port

我的应用程序主动使用串行端口与设备进行交互式通信。我需要的是添加一些从串口发送和接收数据的可视化器(两个闪烁的灯类似于两个闪烁的计算机,用于系统托盘中的网络活动)。 我应该采用什么方法来正确实现此功能?

1 个答案:

答案 0 :(得分:1)

最简单的方法是创建一个StatusStrip,并添加一个专门用于这些指标的部分。接下来,选择各个州的图像,并在每次进行活动时设置适当的图像。这是一些粗略的代码。

private System.Drawing.Image StateImageX { get; set; }
private System.Drawing.Image StateImageY { get; set; }

public delegate void DelegateRefreshControls ();
public DelegateRefreshControls RefreshControlHandler;

public Form1 ()
{
    this.InitializeComponent();

    this.StateImageX = System.Drawing.Image.FromFile(@"??\ImageX.png");
    this.StateImageY = System.Drawing.Image.FromFile(@"??\ImageY.png");

    this.RefreshControlHandler += new DelegateRefreshControls(this.RefreshControls);
}

private void Form1_FormClosing (object sender, FormClosingEventArgs e)
{
    this.RefreshControlHandler -= new DelegateRefreshControls(this.RefreshControls);
}

private void SerialPort_Activity (object sender, FormClosingEventArgs e)
{
    this.Invoke(this.RefreshControlHandler);
}

public void RefreshControls ()
{
    if (state == x) this.ToolStripStatusLabel.Image = this.StateImageX;
    if (state == y) this.ToolStripStatusLabel.Image = this.StateImageY;
}