<< 点击显示目录 >> 主页 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.CpuConnect: this.tbStatus.Text = "Connected"; break;
case Action.CpuDisconnect: this.tbStatus.Text = "Disconnected"; break;
case Action.CpuRestarted: this.tbStatus.Text = "Restarted"; break;
case Action.CpuReadTime: this.tbStatus.Text = "Time read"; break;
case Action.CpuWriteTime: this.tbStatus.Text = "Time written"; break;
}
}