internal BladePowerStatePacket GetBladePowerState(byte deviceId)
        {
            // Initialize return packet
            BladePowerStatePacket returnPacket = new BladePowerStatePacket();

            returnPacket.CompletionCode  = CompletionCode.UnspecifiedError;
            returnPacket.BladePowerState = 2;

            try
            {
                BladePowerStateResponse stateResponse = (BladePowerStateResponse)this.SendReceive(this.DeviceType, deviceId, new BladePowerStateRequest(), typeof(BladePowerStateResponse));
                if (stateResponse.CompletionCode != 0)
                {
                    returnPacket.CompletionCode = (CompletionCode)stateResponse.CompletionCode;
                }
                else
                {
                    returnPacket.CompletionCode  = CompletionCode.Success;
                    this.PowerState              = stateResponse.BladePowerState;
                    returnPacket.BladePowerState = this.PowerState;
                }
            }
            catch (System.Exception ex)
            {
                returnPacket.CompletionCode  = CompletionCode.UnspecifiedError;
                returnPacket.BladePowerState = 2;
                Tracer.WriteError(ex);
            }
            return(returnPacket);
        }
        internal BladePowerStatePacket SetBladePowerState(byte deviceId, byte state)
        {
            // Initialize return packet
            BladePowerStatePacket returnPacket = new BladePowerStatePacket();

            returnPacket.CompletionCode  = CompletionCode.UnspecifiedError;
            returnPacket.BladePowerState = 2;

            BladePowerStateResponse stateResponse = new BladePowerStateResponse();

            Tracer.WriteInfo("SetSledPowerState Switch id: " + deviceId);

            if (state == (byte)Contracts.PowerState.ON)
            {
                try
                {
                    stateResponse = (BladePowerStateResponse)this.SendReceive(this.DeviceType, deviceId, new BladePowerStateOnRequest(state), typeof(BladePowerStateResponse));
                    if (stateResponse.CompletionCode != 0)
                    {
                        returnPacket.CompletionCode = (CompletionCode)stateResponse.CompletionCode;
                    }
                    else
                    {
                        returnPacket.CompletionCode  = CompletionCode.Success;
                        returnPacket.BladePowerState = 1;
                    }
                }
                catch (System.Exception ex)
                {
                    returnPacket.CompletionCode  = CompletionCode.UnspecifiedError;
                    returnPacket.BladePowerState = 2;
                    Tracer.WriteError(ex);
                }
            }
            else
            {
                try
                {
                    stateResponse = (BladePowerStateResponse)this.SendReceive(this.DeviceType, deviceId, new BladePowerStateOffRequest(state), typeof(BladePowerStateResponse));
                    if (stateResponse.CompletionCode != 0)
                    {
                        returnPacket.CompletionCode = (CompletionCode)stateResponse.CompletionCode;
                    }
                    else
                    {
                        returnPacket.CompletionCode  = CompletionCode.Success;
                        returnPacket.BladePowerState = 0;
                    }
                }
                catch (System.Exception ex)
                {
                    returnPacket.CompletionCode  = CompletionCode.UnspecifiedError;
                    returnPacket.BladePowerState = 2;
                    Tracer.WriteError(ex);
                }
            }

            return(returnPacket);
        }
        internal BladePowerStatePacket SetBladePowerState(byte deviceId, byte state)
        {
            // Initialize return packet 
            BladePowerStatePacket returnPacket = new BladePowerStatePacket();
            returnPacket.CompletionCode = CompletionCode.UnspecifiedError;
            returnPacket.BladePowerState = 2;

            BladePowerStateResponse stateResponse=new BladePowerStateResponse();
            Tracer.WriteInfo("SetSledPowerState Switch id: " + deviceId);

            if (state == (byte)Contracts.PowerState.ON)
            {
                try
                {
                    stateResponse = (BladePowerStateResponse)this.SendReceive(this.DeviceType, deviceId, new BladePowerStateOnRequest(state), typeof(BladePowerStateResponse));
                    if (stateResponse.CompletionCode != 0)
                    {
                        returnPacket.CompletionCode = (CompletionCode)stateResponse.CompletionCode;
                    }
                    else
                    {
                        returnPacket.CompletionCode = CompletionCode.Success;
                        returnPacket.BladePowerState = 1;
                    }
                }
                catch (System.Exception ex)
                {
                    returnPacket.CompletionCode = CompletionCode.UnspecifiedError;
                    returnPacket.BladePowerState = 2;
                    Tracer.WriteError(ex);
                }
            }
            else 
            {
                try
                {
                    stateResponse = (BladePowerStateResponse)this.SendReceive(this.DeviceType, deviceId, new BladePowerStateOffRequest(state), typeof(BladePowerStateResponse));
                    if (stateResponse.CompletionCode != 0)
                    {
                        returnPacket.CompletionCode = (CompletionCode)stateResponse.CompletionCode;
                    }
                    else
                    {
                        returnPacket.CompletionCode = CompletionCode.Success;
                        returnPacket.BladePowerState = 0;
                    }
                }
                catch (System.Exception ex)
                {
                    returnPacket.CompletionCode = CompletionCode.UnspecifiedError;
                    returnPacket.BladePowerState = 2;
                    Tracer.WriteError(ex);
                }
            }

            return returnPacket;
        }