zensysupnpbridgeddevice.cs

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

CS
170
字号
//////////////////////////////////////////////////////////////////////////////////////////////// 
//
//          #######
//          #   ##    ####   #####    #####  ##  ##   #####
//             ##    ##  ##  ##  ##  ##      ##  ##  ##
//            ##  #  ######  ##  ##   ####   ##  ##   ####
//           ##  ##  ##      ##  ##      ##   #####      ##
//          #######   ####   ##  ##  #####       ##  #####
//                                           #####
//          Z-Wave, the wireless language.
//
//          Copyright Zensys A/S, 2003,2004
//
//          All Rights Reserved
//
//          Description:   This source file is the main sourcefile for the
//                         ZensysBridgedDevice class which is the class all Z-Wave
//                         Bridge device should inherit from
//
//          Author:   Johann Sigfredsson
//
//          Last Changed By:  $Author: jch $
//          Revision:         $Revision: 1.1 $
//          Last Changed:     $Date: 2006/04/28 08:40:39 $
//
//////////////////////////////////////////////////////////////////////////////////////////////

using System;
using Zensys.ZWave.Communication;
using Zensys.ZCmdClass;
using Zensys.ZWave.Logging;

namespace Zensys
{
  /// <summary>
  /// Summary description for ZensysBridgedDevice.
  /// </summary>
  public class ZensysBridgedDevice
  {
    /// <summary>
    /// Current defined Z-Wave generic device types
    /// </summary>
    public enum ZWaveDeviceTypes
    {
      UNKNOWN                         = GenericType.GENERIC_TYPE_NON_INTEROPERABLE,
      GENERIC_CONTROLLER              = GenericType.GENERIC_TYPE_GENERIC_CONTROLLER,
      STATIC_CONTROLLER               = GenericType.GENERIC_TYPE_STATIC_CONTROLLER,
      REPEATER_SLAVE                  = GenericType.GENERIC_TYPE_REPEATER_SLAVE,
      SWITCH_BINARY                   = GenericType.GENERIC_TYPE_SWITCH_BINARY,
      SWITCH_MULTILEVEL               = GenericType.GENERIC_TYPE_SWITCH_MULTILEVEL,
      SENSOR_BINARY                   = GenericType.GENERIC_TYPE_SENSOR_BINARY,
      SENSOR_MULTILEVEL               = GenericType.GENERIC_TYPE_SENSOR_MULTILEVEL,
      METER_PULSE                     = GenericType.GENERIC_TYPE_METER_PULSE,
      ENTRY_CONTROL                   = GenericType.GENERIC_TYPE_ENTRY_CONTROL,
    }

    /// <summary>
    /// Current defined Z-Wave specific device types
    /// </summary>
    public enum ZWaveSpecificDeviceTypes
    {
      NOT_USED                        = GenericController.SPECIFIC_TYPE_NOT_USED,
      PORTABLE_REMOTE_CONTROLLER      = GenericController.SPECIFIC_TYPE_PORTABLE_REMOTE_CONTROLLER,
      PC_CONTROLLER                   = StaticController.SPECIFIC_TYPE_PC_CONTROLLER,
      REPEATER_SLAVE                  = RepeaterSlave.SPECIFIC_TYPE_REPEATER_SLAVE,
      POWER_SWITCH_BINARY             = SwitchBinary.SPECIFIC_TYPE_POWER_SWITCH_BINARY,
      POWER_SWITCH_MULTILEVEL         = SwitchMultilevel.SPECIFIC_TYPE_POWER_SWITCH_MULTILEVEL,
      ROUTING_SENSOR_BINARY           = SensorBinary.SPECIFIC_TYPE_ROUTING_SENSOR_BINARY,
      ROUTING_SENSOR_MULTILEVEL       = SensorMultilevel.SPECIFIC_TYPE_ROUTING_SENSOR_MULTILEVEL,
      CHIMNEY_FAN_SENSOR_MULTILEVEL   = SensorMultilevel.SPECIFIC_TYPE_CHIMNEY_FAN_SENSOR_MULTILEVEL,
      DOOR_LOCK                       = EntryControl.SPECIFIC_TYPE_DOOR_LOCK,
    }

    // This should be extended with new bridge types when needed
    /// <summary>
    /// Current defined Bridge types
    /// </summary>
    public enum ZWaveBridgeTypes : byte
    {
      UnKnown = 0,
      UPnP = 1,
      UPnP2ZWave = 2,
    }

    /// <summary>
    /// States describing which state current Bridge device is in
    /// </summary>
    public enum ZWaveBridgeDeviceState : byte
    {
      Stopped = 0,
      Started = 1,
    }

    /// <summary>
    /// 
    /// </summary>
    public delegate void BridgeEvent_SubscriberHandler(ZensysBridgedDevice device, byte funcID);

    protected ZWaveBridgeDeviceState state = ZWaveBridgeDeviceState.Stopped;
    protected byte nodeId;
    protected ZWaveDeviceTypes deviceZWaveType = ZWaveDeviceTypes.UNKNOWN; /* Default */
    protected ZWaveBridgeTypes bridgeType = ZWaveBridgeTypes.UnKnown;  /* What are the node bridged to - Default Unknown */
    protected ZWaveLogging log = null;

    protected object device;

    /// <summary>
    /// State of the Bridge device
    /// </summary>
    public virtual ZWaveBridgeDeviceState State {get {return state;} set {state = value;}}
    /// <summary>
    /// ZWave node Id on the Bridge device
    /// </summary>
    public virtual byte NodeId {get {return nodeId;} set {nodeId = value;}}
    /// <summary>
    /// ZWave device type on the Bridge device
    /// </summary>
    public virtual ZWaveDeviceTypes DeviceZWaveType {get {return deviceZWaveType;} set {deviceZWaveType = value;}}
    /// <summary>
    /// ZWave Bridge type on the Bridge device
    /// </summary>
    public virtual ZWaveBridgeTypes BridgeType {get {return bridgeType;} set {bridgeType = value;}}
    public ZWaveLogging Log { get { return log; } set { log = value; } }
    /// <summary>
    /// Class Constructor
    /// </summary>
    public ZensysBridgedDevice()
    {
    }

    /// <summary>
    ///  Initialize Zensys Bridge Device
    /// </summary>
    /// <param name="bType">Bridge type</param>
    /// <param name="devType">Z-Wave device type</param>
    /// <param name="Id">Z-Wave nodeID</param>
    /// <param name="log">Logclass to log</param>
    public void ZensysBridgeDeviceInit(ZWaveBridgeTypes bType, ZWaveDeviceTypes devType, byte Id, ZWaveLogging log)
    {
      nodeId = Id;
      deviceZWaveType = devType;
      //log = log;
      Log = log;
      bridgeType = bType;
    }

    /// <summary>
    /// Start Bridgeing Z-Wave Device
    /// </summary>
    public virtual void Start()
    {
      state = ZWaveBridgeDeviceState.Started;
    }

    /// <summary>
    /// Stop Bridgeing Z-Wave Device
    /// </summary>
    public virtual void Stop()
    {
      state = ZWaveBridgeDeviceState.Stopped;
    }

    public override string ToString()
    {
      return "BridgeBase";
    }

  }
}

⌨️ 快捷键说明

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