OpenZWave Library 1.2
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"
33
34namespace 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;
52 friend class NodeNaming;
53 friend class NoOperation;
54 friend class SceneActivation;
55 friend class WakeUp;
56
57 public:
65 {
66 Type_ValueAdded = 0,
93 Type_DriverRemoved
94 };
95
102 {
103 Code_MsgComplete = 0,
109 Code_Alive
110 };
111
117 NotificationType GetType()const{ return m_type; }
118
123 uint32 GetHomeId()const{ return m_valueId.GetHomeId(); }
124
129 uint8 GetNodeId()const{ return m_valueId.GetNodeId(); }
130
135 ValueID const& GetValueID()const{ return m_valueId; }
136
141 uint8 GetGroupIdx()const{ assert(Type_Group==m_type); return m_byte; }
142
147 uint8 GetEvent()const{ assert(Type_NodeEvent==m_type); return m_byte; }
148
154 uint8 GetButtonId()const{ assert(Type_CreateButton==m_type || Type_DeleteButton==m_type || Type_ButtonOn==m_type || Type_ButtonOff==m_type); return m_byte; }
155
160 uint8 GetSceneId()const{ assert(Type_SceneEvent==m_type); return m_byte; }
161
166 uint8 GetNotification()const{ assert(Type_Notification==m_type); return m_byte; }
167
172 uint8 GetByte()const{ return m_byte; }
173
174 private:
175 Notification( NotificationType _type ): m_type( _type ), m_byte(0){}
176 ~Notification(){}
177
178 void SetHomeAndNodeIds( uint32 const _homeId, uint8 const _nodeId ){ m_valueId = ValueID( _homeId, _nodeId ); }
179 void SetHomeNodeIdAndInstance ( uint32 const _homeId, uint8 const _nodeId, uint32 const _instance ){ m_valueId = ValueID( _homeId, _nodeId, _instance ); }
180 void SetValueId( ValueID const& _valueId ){ m_valueId = _valueId; }
181 void SetGroupIdx( uint8 const _groupIdx ){ assert(Type_Group==m_type); m_byte = _groupIdx; }
182 void SetEvent( uint8 const _event ){ assert(Type_NodeEvent==m_type); m_byte = _event; }
183 void SetSceneId( uint8 const _sceneId ){ assert(Type_SceneEvent==m_type); m_byte = _sceneId; }
184 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; }
185 void SetNotification( uint8 const _noteId ){ assert(Type_Notification==m_type); m_byte = _noteId; }
186
187 NotificationType m_type;
188 ValueID m_valueId;
189 uint8 m_byte;
190 };
191
192} //namespace OpenZWave
193
194#endif //_Notification_H
195
unsigned int uint32
Definition: Defs.h:69
#define OPENZWAVE_EXPORT
Definition: Defs.h:51
unsigned char uint8
Definition: Defs.h:63
Implements COMMAND_CLASS_BASIC (0x20), a Z-Wave device command class.
Definition: Basic.h:40
The Driver class handles communication between OpenZWave and a device attached via a serial port (typ...
Definition: Driver.h:57
Manages a group of devices (various nodes associated with each other).
Definition: Group.h:45
The main public interface to OpenZWave.
Definition: Manager.h:109
Implements COMMAND_CLASS_MANUFACTURER_SPECIFIC (0x72), a Z-Wave device command class.
Definition: ManufacturerSpecific.h:39
Implements COMMAND_CLASS_NO_OPERATION (0x00), a Z-Wave device command class.
Definition: NoOperation.h:38
Implements COMMAND_CLASS_NODE_NAMING (0x77), a Z-Wave device command class.
Definition: NodeNaming.h:38
The Node class describes a Z-Wave node object...typically a device on the Z-Wave network.
Definition: Node.h:64
Provides a container for data sent via the notification callback handler installed by a call to Manag...
Definition: Notification.h:43
NotificationType
Definition: Notification.h:65
@ Type_SceneEvent
Definition: Notification.h:79
@ Type_DriverReady
Definition: Notification.h:84
@ Type_DriverReset
Definition: Notification.h:86
@ Type_NodeProtocolInfo
Definition: Notification.h:74
@ Type_NodeAdded
Definition: Notification.h:72
@ Type_CreateButton
Definition: Notification.h:80
@ Type_EssentialNodeQueriesComplete
Definition: Notification.h:87
@ Type_ValueRefreshed
Definition: Notification.h:69
@ Type_ButtonOff
Definition: Notification.h:83
@ Type_DriverFailed
Definition: Notification.h:85
@ Type_AwakeNodesQueried
Definition: Notification.h:89
@ Type_ButtonOn
Definition: Notification.h:82
@ Type_NodeEvent
Definition: Notification.h:76
@ Type_Group
Definition: Notification.h:70
@ Type_PollingDisabled
Definition: Notification.h:77
@ Type_NodeQueriesComplete
Definition: Notification.h:88
@ Type_AllNodesQueried
Definition: Notification.h:91
@ Type_ValueChanged
Definition: Notification.h:68
@ Type_PollingEnabled
Definition: Notification.h:78
@ Type_NodeNew
Definition: Notification.h:71
@ Type_DeleteButton
Definition: Notification.h:81
@ Type_AllNodesQueriedSomeDead
Definition: Notification.h:90
@ Type_Notification
Definition: Notification.h:92
@ Type_NodeNaming
Definition: Notification.h:75
@ Type_NodeRemoved
Definition: Notification.h:73
@ Type_ValueRemoved
Definition: Notification.h:67
uint8 GetEvent() const
Definition: Notification.h:147
uint8 GetGroupIdx() const
Definition: Notification.h:141
uint8 GetButtonId() const
Definition: Notification.h:154
ValueID const & GetValueID() const
Definition: Notification.h:135
uint8 GetNodeId() const
Definition: Notification.h:129
uint8 GetSceneId() const
Definition: Notification.h:160
uint8 GetNotification() const
Definition: Notification.h:166
NotificationCode
Definition: Notification.h:102
@ Code_Dead
Definition: Notification.h:108
@ Code_NoOperation
Definition: Notification.h:105
@ Code_Timeout
Definition: Notification.h:104
@ Code_Sleep
Definition: Notification.h:107
@ Code_Awake
Definition: Notification.h:106
NotificationType GetType() const
Definition: Notification.h:117
uint32 GetHomeId() const
Definition: Notification.h:123
uint8 GetByte() const
Definition: Notification.h:172
Implements COMMAND_CLASS_SCENEACTIVATION (0x2B), a Z-Wave device command class.
Definition: SceneActivation.h:40
Provides a unique ID for a value reported by a Z-Wave device.
Definition: ValueID.h:54
Container that holds all of the values associated with a given node.
Definition: ValueStore.h:44
Base class for values associated with a node.
Definition: Value.h:45
Implements COMMAND_CLASS_WAKE_UP (0x84), a Z-Wave device command class.
Definition: WakeUp.h:44
Definition: Bitfield.h:35