Blob Blame History Raw
From 0d65f8fdcc320d8cc154c1a491a4984ef83a9040 Mon Sep 17 00:00:00 2001
From: jowerg <jowerg@gmail.com>
Date: Sat, 22 Apr 2017 08:45:11 -0400
Subject: [PATCH] Initial COMMAND_CLASS_BARRIER_OPERATOR support

---
 .../openzwave/command_classes/BarrierOperator.h    | 70 ++++++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 hardware/openzwave/command_classes/BarrierOperator.h

diff --git a/hardware/openzwave/command_classes/BarrierOperator.h b/hardware/openzwave/command_classes/BarrierOperator.h
new file mode 100644
index 000000000..0899304a1
--- /dev/null
+++ b/hardware/openzwave/command_classes/BarrierOperator.h
@@ -0,0 +1,70 @@
+//-----------------------------------------------------------------------------
+//
+//	BarrierOperator.h
+//
+//	Implementation of the COMMAND_CLASS_BARRIER_OPERATOR
+//
+//	Copyright (c) 2016 srirams (https://github.com/srirams)
+//
+//	SOFTWARE NOTICE AND LICENSE
+//
+//	This file is part of OpenZWave.
+//
+//	OpenZWave is free software: you can redistribute it and/or modify
+//	it under the terms of the GNU Lesser General Public License as published
+//	by the Free Software Foundation, either version 3 of the License,
+//	or (at your option) any later version.
+//
+//	OpenZWave is distributed in the hope that it will be useful,
+//	but WITHOUT ANY WARRANTY; without even the implied warranty of
+//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//	GNU Lesser General Public License for more details.
+//
+//	You should have received a copy of the GNU Lesser General Public License
+//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef _BarrierOperator_H
+#define _BarrierOperator_H
+
+#include "command_classes/CommandClass.h"
+
+namespace OpenZWave
+{
+	class ValueByte;
+	class ValueBool;
+
+	/** \brief Implements COMMAND_CLASS_BARRIER_OPERATOR (0x66), a Z-Wave device command class.
+	 * \ingroup CommandClass
+	 */
+	class BarrierOperator: public CommandClass
+	{
+	public:
+		static CommandClass* Create( uint32 const _homeId, uint8 const _nodeId ){ return new BarrierOperator( _homeId, _nodeId ); }
+		virtual ~BarrierOperator(){}
+
+		static uint8 const StaticGetCommandClassId(){ return 0x66; }
+		static string const StaticGetCommandClassName(){ return "COMMAND_CLASS_BARRIER_OPERATOR"; }
+
+		// From CommandClass
+		virtual bool RequestState( uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual bool RequestValue( uint32 const _requestFlags, uint8 const _index, uint8 const _instance, Driver::MsgQueue const _queue );
+		bool RequestSignalSupport( uint8 const _instance, Driver::MsgQueue const _queue );
+		virtual uint8 const GetCommandClassId()const{ return StaticGetCommandClassId(); }
+		virtual string const GetCommandClassName()const{ return StaticGetCommandClassName(); }
+		virtual bool HandleMsg( uint8 const* _data, uint32 const _length, uint32 const _instance = 1 );
+		virtual bool SetValue(Value const& _value);
+
+		virtual uint8 GetMaxVersion(){ return 3; }
+
+	protected:
+		virtual void CreateVars( uint8 const _instance );
+
+	private:
+		BarrierOperator( uint32 const _homeId, uint8 const _nodeId );
+	};
+
+} // namespace OpenZWave
+
+#endif