cpswitchpower.cs

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

CS
334
字号
//////////////////////////////////////////////////////////////////////////////////////////////// 
//
//          #######
//          #   ##    ####   #####    #####  ##  ##   #####
//             ##    ##  ##  ##  ##  ##      ##  ##  ##
//            ##  #  ######  ##  ##   ####   ##  ##   ####
//           ##  ##  ##      ##  ##      ##   #####      ##
//          #######   ####   ##  ##  #####       ##  #####
//                                           #####
//          Z-Wave, the wireless language.
//
//          Copyright Zensys A/S, 2003,2004
//
//          All Rights Reserved
//
//          Description:   This source file is the sourcefile for the
//                         CpSwitchPower class
//
//                         Source is generated by the Intel DeviceBuilder Tool
//
//          Author:   Johann Sigfredsson
//
//          Last Changed By:  $Author: jch $
//          Revision:         $Revision: 1.1 $
//          Last Changed:     $Date: 2006/03/31 14:30:46 $
//
//////////////////////////////////////////////////////////////////////////////////////////////

using System;
using System.Collections;
using System.Threading;
using Intel.Utilities;
using Intel.UPNP;

namespace MicroStack
{
    /// <summary>
    /// Transparent ClientSide UPnP Service
    /// </summary>
    public class CpSwitchPower
    {
       private Hashtable UnspecifiedTable = Hashtable.Synchronized(new Hashtable());
       internal UPnPService _S;

       public UPnPService GetUPnPService()
       {
            return(_S);
       }
       public static string SERVICE_NAME = "urn:schemas-upnp-org:service:SwitchPower:";

       public double VERSION
       {
           get
           {
               return(double.Parse(_S.Version));
           }
       }

       public delegate void StateVariableModifiedHandler_Status(CpSwitchPower sender, System.Boolean NewValue);
       private WeakEvent OnStateVariable_Status_Event = new WeakEvent();

       public event StateVariableModifiedHandler_Status OnStateVariable_Status
       {
			add{OnStateVariable_Status_Event.Register(value);}
			remove{OnStateVariable_Status_Event.UnRegister(value);}
       }


       protected void Status_ModifiedSink(UPnPStateVariable Var, object NewValue)
       {
            OnStateVariable_Status_Event.Fire(this, Status);
       }


       public delegate void SubscribeHandler(CpSwitchPower sender, bool Success);
       public event SubscribeHandler OnSubscribe;

       public delegate void Delegate_OnResult_GetStatus(CpSwitchPower sender, System.Boolean ResultStatus, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_GetStatus_Event = new WeakEvent();

       public event Delegate_OnResult_GetStatus OnResult_GetStatus
       {
			add{OnResult_GetStatus_Event.Register(value);}
			remove{OnResult_GetStatus_Event.UnRegister(value);}
       }


       public delegate void Delegate_OnResult_SetTarget(CpSwitchPower sender, System.Boolean newTargetValue, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_SetTarget_Event = new WeakEvent();


       public event Delegate_OnResult_SetTarget OnResult_SetTarget
       {
			add{OnResult_SetTarget_Event.Register(value);}
			remove{OnResult_SetTarget_Event.UnRegister(value);}
       }

        public CpSwitchPower(UPnPService s)
        {
            _S = s;
            _S.OnSubscribe += new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink);
            if(HasStateVariable_Status) _S.GetStateVariableObject("Status").OnModified += new UPnPStateVariable.ModifiedHandler(Status_ModifiedSink);
        }


        public void Dispose()
        {
            _S.OnSubscribe -= new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink);
            OnSubscribe = null;
            if(HasStateVariable_Status) _S.GetStateVariableObject("Status").OnModified -= new UPnPStateVariable.ModifiedHandler(Status_ModifiedSink);
        }


        public void _subscribe(int Timeout)
        {
            _S.Subscribe(Timeout, null);
        }


        protected void _subscribe_sink(UPnPService sender, bool OK)
        {
            if(OnSubscribe!=null)
            {
                OnSubscribe(this, OK);
            }
        }


        public void SetUnspecifiedValue(string EnumType, string val)
        {
            string hash = Thread.CurrentThread.GetHashCode().ToString() + ":" + EnumType;
            UnspecifiedTable[hash] = val;
        }


        public string GetUnspecifiedValue(string EnumType)
        {
            string hash = Thread.CurrentThread.GetHashCode().ToString() + ":" + EnumType;
            if(UnspecifiedTable.ContainsKey(hash)==false)
            {
               return("");
            }
            string RetVal = (string)UnspecifiedTable[hash];
            return(RetVal);
        }


        public System.Boolean Status
        {
            get
            {
               return((System.Boolean)_S.GetStateVariable("Status"));
            }
        }


        public System.Boolean Target
        {
            get
            {
               return((System.Boolean)_S.GetStateVariable("Target"));
            }
        }


        public bool HasStateVariable_Status
        {
            get
            {
               if(_S.GetStateVariableObject("Status")==null)
               {
                   return(false);
               }
               else
               {
                   return(true);
               }
            }
        }


        public bool HasStateVariable_Target
        {
            get
            {
               if(_S.GetStateVariableObject("Target")==null)
               {
                   return(false);
               }
               else
               {
                   return(true);
               }
            }
        }


        public bool HasAction_GetStatus
        {
            get
            {
               if(_S.GetAction("GetStatus")==null)
               {
                   return(false);
               }
               else
               {
                   return(true);
               }
            }
        }


        public bool HasAction_SetTarget
        {
            get
            {
               if(_S.GetAction("SetTarget")==null)
               {
                   return(false);
               }
               else
               {
                   return(true);
               }
            }
        }


        public void Sync_GetStatus(out System.Boolean ResultStatus)
        {
           UPnPArgument[] args = new UPnPArgument[1];
           args[0] = new UPnPArgument("ResultStatus", "");
            _S.InvokeSync("GetStatus", args);
            ResultStatus = (System.Boolean) args[0].DataValue;
            return;
        }


        public void GetStatus()
        {
            GetStatus(null, null);
        }


        public void GetStatus(object _Tag, Delegate_OnResult_GetStatus _Callback)
        {
           UPnPArgument[] args = new UPnPArgument[1];
           args[0] = new UPnPArgument("ResultStatus", "");
           _S.InvokeAsync("GetStatus", args, new object[2]{_Tag,_Callback},new UPnPService.UPnPServiceInvokeHandler(Sink_GetStatus), new UPnPService.UPnPServiceInvokeErrorHandler(Error_Sink_GetStatus));
        }


        private void Sink_GetStatus(UPnPService sender, string MethodName, UPnPArgument[] Args, object RetVal, object _Tag)
        {
            object[] StateInfo = (object[])_Tag;
            if(StateInfo[1]!=null)
            {
                ((Delegate_OnResult_GetStatus)StateInfo[1])(this, (System.Boolean )Args[0].DataValue, null, StateInfo[0]);
            }
            else
            {
                OnResult_GetStatus_Event.Fire(this, (System.Boolean )Args[0].DataValue, null, StateInfo[0]);
            }
        }


        private void Error_Sink_GetStatus(UPnPService sender, string MethodName, UPnPArgument[] Args, UPnPInvokeException e, object _Tag)
        {
            object[] StateInfo = (object[])_Tag;
            if(StateInfo[1]!=null)
            {
                ((Delegate_OnResult_GetStatus)StateInfo[1])(this, (System.Boolean)UPnPService.CreateObjectInstance(typeof(System.Boolean),null), e, StateInfo[0]);
            }
            else
            {
                OnResult_GetStatus_Event.Fire(this, (System.Boolean)UPnPService.CreateObjectInstance(typeof(System.Boolean),null), e, StateInfo[0]);
            }
        }


        public void Sync_SetTarget(System.Boolean newTargetValue)
        {
           UPnPArgument[] args = new UPnPArgument[1];
           args[0] = new UPnPArgument("newTargetValue", newTargetValue);
            _S.InvokeSync("SetTarget", args);
            newTargetValue = (System.Boolean) args[0].DataValue;
            return;
        }


        public void SetTarget(System.Boolean newTargetValue)
        {
            SetTarget(newTargetValue, null, null);
        }


        public void SetTarget(System.Boolean newTargetValue, object _Tag, Delegate_OnResult_SetTarget _Callback)
        {
           UPnPArgument[] args = new UPnPArgument[1];
           args[0] = new UPnPArgument("newTargetValue", newTargetValue);
           _S.InvokeAsync("SetTarget", args, new object[2]{_Tag,_Callback},new UPnPService.UPnPServiceInvokeHandler(Sink_SetTarget), new UPnPService.UPnPServiceInvokeErrorHandler(Error_Sink_SetTarget));
        }


        private void Sink_SetTarget(UPnPService sender, string MethodName, UPnPArgument[] Args, object RetVal, object _Tag)
        {
            object[] StateInfo = (object[])_Tag;
            if(StateInfo[1]!=null)
            {
                ((Delegate_OnResult_SetTarget)StateInfo[1])(this, (System.Boolean )Args[0].DataValue, null, StateInfo[0]);
            }
            else
            {
                OnResult_SetTarget_Event.Fire(this, (System.Boolean )Args[0].DataValue, null, StateInfo[0]);
            }
        }


        private void Error_Sink_SetTarget(UPnPService sender, string MethodName, UPnPArgument[] Args, UPnPInvokeException e, object _Tag)
        {
            object[] StateInfo = (object[])_Tag;
            if(StateInfo[1]!=null)
            {
                ((Delegate_OnResult_SetTarget)StateInfo[1])(this, (System.Boolean )Args[0].DataValue, e, StateInfo[0]);
            }
            else
            {
                OnResult_SetTarget_Event.Fire(this, (System.Boolean )Args[0].DataValue, e, StateInfo[0]);
            }
        }
    }
}

⌨️ 快捷键说明

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