node.cs

来自「zwave 无线通讯协议 PC controller 控制器源码」· CS 代码 · 共 231 行

CS
231
字号
//////////////////////////////////////////////////////////////////////////////////////////////// 
//
//          #######
//          #   ##    ####   #####    #####  ##  ##   #####
//             ##    ##  ##  ##  ##  ##      ##  ##  ##
//            ##  #  ######  ##  ##   ####   ##  ##   ####
//           ##  ##  ##      ##  ##      ##   #####      ##
//          #######   ####   ##  ##  #####       ##  #####
//                                           #####
//          Z-Wave, the wireless language.
//
//          Copyright Zensys A/S, 2005
//
//          All Rights Reserved
//
//          Description:   
//
//          Author:   Morten Damsgaard, Linkage A/S
//
//          Last Changed By:  $Author: jrm $
//          Revision:         $Revision: 1.4 $
//          Last Changed:     $Date: 2006/07/24 09:14:16 $
//
//////////////////////////////////////////////////////////////////////////////////////////////
#region Using directives

using System;

#endregion

namespace Zensys.ZWave.Communication
{
  /// <summary>
  /// Description for Nodes.
  /// </summary>
  public class Node
  { 
    /// <summary>
    /// 
    /// </summary>
    /// <param name="id"></param>
    /// <param name="capability"></param>
    /// <param name="security"></param>
    /// <param name="reserved"></param>
    /// <param name="basic"></param>
    /// <param name="generic"></param>
    /// <param name="specific"></param>
    public Node(byte id, byte capability, byte security, byte reserved, byte basic, byte generic, byte specific)
      : this(id, capability, security, reserved, basic, generic, specific, null)
    {
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="id"></param>
    /// <param name="capability"></param>
    /// <param name="security"></param>
    /// <param name="reserved"></param>
    /// <param name="basic"></param>
    /// <param name="generic"></param>
    /// <param name="specific"></param>
    /// <param name="cmdCl"></param>
    public Node(byte id, byte capability, byte security, byte reserved, byte basic, byte generic, byte specific, byte[] cmdCl)
    {
      this.id = id;
      this.capability = capability;
      this.security = security;
      this.reserved = reserved;
      this.basic = basic;     
      this.generic = generic;
      this.specific = specific;
      if (cmdCl != null)
      {
        this.cmdClasses = new byte[cmdCl.Length];
        cmdCl.CopyTo(this.cmdClasses, 0);
      }
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="id"></param>
    /// <param name="capability"></param>
    /// <param name="security"></param>
    /// <param name="reserved"></param>
    /// <param name="basic"></param>
    /// <param name="generic"></param>
    /// <param name="specific"></param>
    /// <param name="cmdCl"></param>
    /// <param name="isVirtual"></param>
    public Node(byte id, byte capability, byte security, byte reserved, byte basic, byte generic, byte specific, byte[] cmdCl, bool isVirtual)
    {
      this.id = id;
      this.capability = capability;
      this.security = security;
      this.reserved = reserved;
      this.basic = basic;     
      this.generic = generic;
      this.specific = specific;
      this.isVirtual = isVirtual;
      if (cmdCl != null)
      {
        this.cmdClasses = new byte[cmdCl.Length];
        cmdCl.CopyTo(this.cmdClasses, 0);
      }
    }

    /// <summary>
    /// Verify if node is a listening node
    /// </summary>
    /// <returns>True is Node is a listening device, False if Node is not a listening device</returns>
    public bool IsNodeListening()
    {
      return ((capability & LISTENING_SUPPORT) != 0);
    }

    /// <summary>
    /// 
    /// </summary>
    public bool IsVirtual
    {
      get
      {
        return isVirtual;
      }
      set
      {
        isVirtual = value;
      }
    }  

    /// <summary>
    /// 
    /// </summary>
    /// <returns></returns>
    public override String ToString()
    {
      return "Node. Id: " + id + " Type: " + basic + " Cap: " + capability + " Sec: " + security + " Res: " + reserved;
    }

    /// <summary>
    /// get Node Id
    /// </summary>
    public byte Id
    {
      get { return id; }
    }

    /// <summary>
    /// 
    /// </summary>
    public byte Capability
    {
      get {return capability;}
      set {capability = value; }
    }

    /// <summary>
    /// 
    /// </summary>
    public byte Security
    {
      get { return security; }
      set { security = value; }
    }

    /// <summary>
    /// 
    /// </summary>
    public byte Reserved
    {
      get { return reserved; }
      set { reserved = value; }
    }

    /// <summary>
    /// 
    /// </summary>
    public byte Basic
    {
      get { return basic; }
      set { basic = value; }
    }
    
    /// <summary>
    /// Get Generic and specific Device Type
    /// </summary>
    public byte Generic
    {
      get { return generic;}
      set { generic = value; }
    }

    /// <summary>
    /// 
    /// </summary>
    public byte Specific
    {
      get { return specific; }
      set { specific = value; }
    }

    /// <summary>
    /// 
    /// </summary>
    public byte[] SupportedCmdClasses
    {
      get
      {
        return cmdClasses;
      }
      set
      {
        cmdClasses = value;
      }
    }

    private byte id;
    private byte capability;
    private byte security;
    private byte reserved;
    private byte basic;
    private byte generic;
    private byte specific;
    private bool isVirtual;
    private byte[] cmdClasses;
    private const byte LISTENING_SUPPORT = 0x80;
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?