OpenZWave Library  1.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Notification.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 //
3 // Notification.h
4 //
5 // Contains details of a Z-Wave event reported to the user
6 //
7 // Copyright (c) 2010 Mal Lansell <openzwave@lansell.org>
8 //
9 // SOFTWARE NOTICE AND LICENSE
10 //
11 // This file is part of OpenZWave.
12 //
13 // OpenZWave is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU Lesser General Public License as published
15 // by the Free Software Foundation, either version 3 of the License,
16 // or (at your option) any later version.
17 //
18 // OpenZWave is distributed in the hope that it will be useful,
19 // but WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU Lesser General Public License for more details.
22 //
23 // You should have received a copy of the GNU Lesser General Public License
24 // along with OpenZWave. If not, see <http://www.gnu.org/licenses/>.
25 //
26 //-----------------------------------------------------------------------------
27 
28 #ifndef _Notification_H
29 #define _Notification_H
30 
31 #include "Defs.h"
32 #include "value_classes/ValueID.h"
33 
34 namespace OpenZWave
35 {
43  {
44  friend class Manager;
45  friend class Driver;
46  friend class Node;
47  friend class Group;
48  friend class Value;
49  friend class ValueStore;
50  friend class Basic;
51  friend class ManufacturerSpecific;
52  friend class NodeNaming;
53  friend class NoOperation;
54  friend class SceneActivation;
55  friend class WakeUp;
56 
57  public:
66  {
67  Type_ValueAdded = 0,
95  Type_ControllerCommand,
97  Type_NodeReset
98  };
99 
106  {
107  Code_MsgComplete = 0,
113  Code_Alive
114  };
115 
121  NotificationType GetType()const{ return m_type; }
122 
127  uint32 GetHomeId()const{ return m_valueId.GetHomeId(); }
128 
133  uint8 GetNodeId()const{ return m_valueId.GetNodeId(); }
134 
139  ValueID const& GetValueID()const{ return m_valueId; }
140 
145  uint8 GetGroupIdx()const{ assert(Type_Group==m_type); return m_byte; }
146 
151  uint8 GetEvent()const{ assert((Type_NodeEvent==m_type) || (Type_ControllerCommand == m_type)); return m_event; }
152 
158  uint8 GetButtonId()const{ assert(Type_CreateButton==m_type || Type_DeleteButton==m_type || Type_ButtonOn==m_type || Type_ButtonOff==m_type); return m_byte; }
159 
164  uint8 GetSceneId()const{ assert(Type_SceneEvent==m_type); return m_byte; }
165 
170  uint8 GetNotification()const{ assert((Type_Notification==m_type) || (Type_ControllerCommand == m_type)); return m_byte; }
171 
176  uint8 GetByte()const{ return m_byte; }
177 
182  string GetAsString()const;
183 
184 
185  private:
186  Notification( NotificationType _type ): m_type( _type ), m_byte(0), m_event(0) {}
187  ~Notification(){}
188 
189  void SetHomeAndNodeIds( uint32 const _homeId, uint8 const _nodeId ){ m_valueId = ValueID( _homeId, _nodeId ); }
190  void SetHomeNodeIdAndInstance ( uint32 const _homeId, uint8 const _nodeId, uint32 const _instance ){ m_valueId = ValueID( _homeId, _nodeId, _instance ); }
191  void SetValueId( ValueID const& _valueId ){ m_valueId = _valueId; }
192  void SetGroupIdx( uint8 const _groupIdx ){ assert(Type_Group==m_type); m_byte = _groupIdx; }
193  void SetEvent( uint8 const _event ){ assert(Type_NodeEvent==m_type || Type_ControllerCommand == m_type); m_event = _event; }
194  void SetSceneId( uint8 const _sceneId ){ assert(Type_SceneEvent==m_type); m_byte = _sceneId; }
195  void SetButtonId( uint8 const _buttonId ){ assert(Type_CreateButton==m_type||Type_DeleteButton==m_type||Type_ButtonOn==m_type||Type_ButtonOff==m_type); m_byte = _buttonId; }
196  void SetNotification( uint8 const _noteId ){ assert((Type_Notification==m_type) || (Type_ControllerCommand == m_type)); m_byte = _noteId; }
197 
198  NotificationType m_type;
199  ValueID m_valueId;
200  uint8 m_byte;
201  uint8 m_event;
202  };
203 
204 } //namespace OpenZWave
205 
206 #endif //_Notification_H
207 
Implements COMMAND_CLASS_NO_OPERATION (0x00), a Z-Wave device command class.
Definition: NoOperation.h:37
Container that holds all of the values associated with a given node.
Definition: ValueStore.h:43
#define OPENZWAVE_EXPORT
Definition: Defs.h:52
Implements COMMAND_CLASS_MANUFACTURER_SPECIFIC (0x72), a Z-Wave device command class.
Definition: ManufacturerSpecific.h:38
Definition: Notification.h:82
Implements COMMAND_CLASS_WAKE_UP (0x84), a Z-Wave device command class.
Definition: WakeUp.h:43
The main public interface to OpenZWave.
Definition: Manager.h:109
Definition: Notification.h:77
uint8 GetGroupIdx() const
Definition: Notification.h:145
Definition: Notification.h:109
Definition: Notification.h:84
Definition: Notification.h:73
Definition: Notification.h:93
Definition: Notification.h:74
The Node class describes a Z-Wave node object...typically a device on the Z-Wave network.
Definition: Node.h:64
NotificationType
Definition: Notification.h:65
Definition: Notification.h:68
Definition: Notification.h:83
NotificationType GetType() const
Definition: Notification.h:121
uint8 GetButtonId() const
Definition: Notification.h:158
Definition: Notification.h:71
uint8 GetByte() const
Definition: Notification.h:176
Definition: Notification.h:112
uint32 GetHomeId() const
Definition: Notification.h:127
Definition: Notification.h:80
The Driver class handles communication between OpenZWave and a device attached via a serial port (typ...
Definition: Driver.h:58
Implements COMMAND_CLASS_SCENEACTIVATION (0x2B), a Z-Wave device command class.
Definition: SceneActivation.h:39
unsigned int uint32
Definition: Defs.h:80
Manages a group of devices (various nodes associated with each other).
Definition: Group.h:49
Definition: Notification.h:87
Definition: Notification.h:76
Provides a container for data sent via the notification callback handler installed by a call to Manag...
Definition: Notification.h:42
Provides a unique ID for a value reported by a Z-Wave device.
Definition: ValueID.h:53
uint8 GetNodeId() const
Definition: Notification.h:133
Definition: Notification.h:81
Definition: Notification.h:69
uint8 GetNotification() const
Definition: Notification.h:170
Definition: Notification.h:72
NotificationCode
Definition: Notification.h:105
ValueID const & GetValueID() const
Definition: Notification.h:139
Definition: Notification.h:108
Base class for values associated with a node.
Definition: Value.h:47
uint8 GetEvent() const
Definition: Notification.h:151
Implements COMMAND_CLASS_NODE_NAMING (0x77), a Z-Wave device command class.
Definition: NodeNaming.h:37
Definition: Notification.h:111
Definition: Notification.h:110
uint8 GetSceneId() const
Definition: Notification.h:164
Definition: Notification.h:94
Implements COMMAND_CLASS_BASIC (0x20), a Z-Wave device command class.
Definition: Basic.h:39
Definition: Notification.h:86
Definition: Notification.h:85
unsigned char uint8
Definition: Defs.h:74