PviEventArgs class

<< 点击显示目录 >>

主页  PVI通信 > PVI帮助信息 > PVI Services > 事件处理 > Event classes >

PviEventArgs class

每个单独的PVI服务事件都包含额外的信息,这些信息是针对该事件和触发该事件的对象的。在最简单的情况下(当收到一个连接事件时),以下额外的数据会在一个 PviEventArgs 对象中返回  。PviEventArgs类同时构成所有其他高级事件类的基类。

例子。

当一个名为 "var_01 "的进程变量成功建立连接时,将为 "连接 "事件生成以下附加信息。

Name

"var_01"

Address

>""

ErrorCode

0

Action

Action.Connect

在本文件的所有例子中,为每个PVI服务对象的某个动作设置了一个处理程序。因此,没有必要提供额外的信息,因为仅仅是接收事件本身就说明了问题。然而,如果只用一个例程来处理几个事件,那么附加信息和(特别是)动作(Action 属性)都很重要。PviEventArgs对象的Action属性显示哪个动作实际触发了该事件。

// 所有事件都有一个处理程序
this.cpu.Connected += new PviEventHandler(CpuEventHandling);
this.cpu.Disconnected += new PviEventHandler(CpuEventHandling);
this.cpu.Restarted += new PviEventHandler(CpuEventHandling);
this.cpu.DateTimeRead += new CpuEventHandler(CpuEventHandling);
this.cpu.DateTimeWritten += new CpuEventHandler(CpuEventHandling);
/// <summary>
/// Handling several events
/// </summary>
private void CpuEventHandling(object sender, PviEventArgs e)
{
  switch ( e.Action )
  {
    case Action.CpuConnectthis.tbStatus.Text = "Connected"break;
    case Action.CpuDisconnectthis.tbStatus.Text = "Disconnected"break;
    case Action.CpuRestartedthis.tbStatus.Text = "Restarted"break;
    case Action.CpuReadTimethis.tbStatus.Text = "Time read"break;
    case Action.CpuWriteTimethis.tbStatus.Text = "Time written"break;
  }
}