263 void SetStaticRequests();
267 bool m_queryConfiguration;
268 uint8 m_queryRetries;
269 bool m_protocolInfoReceived;
270 bool m_basicprotocolInfoReceived;
271 bool m_nodeInfoReceived;
272 bool m_nodePlusInfoReceived;
273 bool m_manufacturerSpecificClassReceived;
274 bool m_nodeInfoSupported;
275 bool m_refreshonNodeInfoFrame;
315 string const&
GetType()
const{
return m_type; }
317 bool IsController()
const{
return ( m_basic == 0x01 || m_basic == 0x02 ) && ( m_generic == 0x01 || m_generic == 0x02 ); }
324 bool m_frequentListening;
336 uint8 m_neighbors[29];
337 uint8 m_numRouteNodes;
338 uint8 m_routeNodes[5];
339 map<uint8,uint8> m_buttonMap;
348 string GetManufacturerName()
const{
return m_manufacturerName; }
349 string GetProductName()
const{
return m_productName; }
350 string GetNodeName()
const{
return m_nodeName; }
351 string GetLocation()
const{
return m_location; }
354 uint16 GetManufacturerId()
const{
return m_manufacturerId; }
356 uint16 GetProductType()
const{
return m_productType; }
358 uint16 GetProductId()
const{
return m_productId; }
360 void SetManufacturerName(
string const& _manufacturerName ){ m_manufacturerName = _manufacturerName; }
361 void SetProductName(
string const& _productName ){ m_productName = _productName; }
362 void SetNodeName(
string const& _nodeName );
363 void SetLocation(
string const& _location );
365 void SetManufacturerId(
uint16 const& _manufacturerId ){ m_manufacturerId = _manufacturerId; }
366 void SetProductType(
uint16 const& _productType ){ m_productType = _productType; }
367 void SetProductId(
uint16 const& _productId ){ m_productId = _productId; }
369 string m_manufacturerName;
370 string m_productName;
379 uint16 GetDeviceType()
const {
return m_deviceType; }
380 string GetDeviceTypeString();
381 uint8 GetRoleType()
const {
return m_role; }
382 string GetRoleTypeString();
383 uint8 GetNodeType()
const {
return m_nodeType; }
384 string GetNodeTypeString();
428 void RemoveCommandClass(
uint8 const _commandClassId );
429 void ReadXML( TiXmlElement
const* _nodeElement );
430 void ReadDeviceProtocolXML( TiXmlElement
const* _ccsElement );
431 void ReadCommandClassesXML( TiXmlElement
const* _ccsElement );
432 void WriteXML( TiXmlElement* _nodeElement );
434 map<uint8,CommandClass*> m_commandClassMap;
460 bool CreateValueBool(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint8 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
bool const _default,
uint8 const _pollIntensity );
465 bool CreateValueList(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint8 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
uint8 const _size, vector<ValueList::Item>
const& _items,
int32 const _default,
uint8 const _pollIntensity );
466 bool CreateValueRaw(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint8 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
uint8 const* _default,
uint8 const _length,
uint8 const _pollIntensity );
469 bool CreateValueString(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint8 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
string const& _default,
uint8 const _pollIntensity );
478 ValueStore* GetValueStore()
const{
return m_values; }
480 ValueStore* m_values;
486 bool SetConfigParam(
uint8 const _param,
int32 _value,
uint8 const _size );
487 void RequestConfigParam(
uint8 const _param );
488 bool RequestAllConfigParams(
uint32 const _requestFlags );
494 bool RequestDynamicValues();
500 uint8 GetNumGroups();
503 uint8 GetMaxAssociations(
uint8 const _groupIdx );
504 string GetGroupLabel(
uint8 const _groupIdx );
505 void AddAssociation(
uint8 const _groupIdx,
uint8 const _targetNodeId,
uint8 const _instance = 0x00 );
506 void RemoveAssociation(
uint8 const _groupIdx,
uint8 const _targetNodeId,
uint8 const _instance = 0x00 );
507 void AutoAssociate();
511 void AddGroup(
Group* _group );
512 void WriteGroups( TiXmlElement* _associationsElement );
514 map<uint8,Group*> m_groups;
524 DeviceClass( TiXmlElement
const* _el );
525 ~DeviceClass(){
delete [] m_mandatoryCommandClasses; }
527 uint8 const* GetMandatoryCommandClasses(){
return m_mandatoryCommandClasses; }
528 uint8 GetBasicMapping(){
return m_basicMapping; }
529 string const& GetLabel(){
return m_label; }
532 uint8* m_mandatoryCommandClasses;
533 uint8 m_basicMapping;
538 class GenericDeviceClass :
public DeviceClass
541 GenericDeviceClass( TiXmlElement
const* _el );
542 ~GenericDeviceClass();
544 DeviceClass* GetSpecificDeviceClass(
uint8 const& _specific );
547 map<uint8,DeviceClass*> m_specificDeviceClasses;
551 bool SetDeviceClasses(
uint8 const _basic,
uint8 const _generic,
uint8 const _specific );
552 bool SetPlusDeviceClasses(
uint8 const _role,
uint8 const _nodeType,
uint16 const _deviceType );
553 bool AddMandatoryCommandClasses(
uint8 const* _commandClasses );
554 void ReadDeviceClasses();
555 string GetEndPointDeviceClassLabel(
uint8 const _generic,
uint8 const _specific );
557 static bool s_deviceClassesLoaded;
558 static map<uint8,string> s_basicDeviceClasses;
559 static map<uint8,GenericDeviceClass*> s_genericDeviceClasses;
560 static map<uint8,DeviceClass*> s_roleDeviceClasses;
561 static map<uint16,DeviceClass*> s_deviceTypeClasses;
562 static map<uint8, DeviceClass*> s_nodeTypes;
596 void GetNodeStatistics(
NodeData* _data );
603 uint32 m_receivedUnsolicited;
608 uint32 m_averageRequestRTT;
609 uint32 m_averageResponseRTT;
611 uint8 m_lastReceivedMessage[254];
624 uint8 m_nonces[8][8];
unsigned short uint16
Definition Defs.h:77
unsigned int uint32
Definition Defs.h:80
signed short int16
Definition Defs.h:76
signed int int32
Definition Defs.h:79
unsigned char uint8
Definition Defs.h:74
Base class for all Z-Wave command classes.
Definition CommandClass.h:47
The Driver class handles communication between OpenZWave and a device attached via a serial port (typ...
Definition Driver.h:59
Manages a group of devices (various nodes associated with each other).
Definition Group.h:50
Implements a platform-independent mutex–for serializing access to a shared resource.
Definition Mutex.h:40
bool CreateValueBool(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, bool const _default, uint8 const _pollIntensity)
Definition Node.cpp:2165
uint8 GetNodeId() const
Definition Node.h:310
void ClearAddingNode()
Definition Node.h:320
friend class ZWavePlusInfo
Definition Node.h:108
void UpdateProtocolInfo(uint8 const *_data)
Definition Node.cpp:1354
bool CreateValueShort(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int16 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2403
bool ProtocolInfoReceived() const
Definition Node.h:247
friend class Hail
Definition Node.h:81
bool NodeInfoReceived() const
Definition Node.h:248
friend class CommandClass
Definition Node.h:78
friend class SwitchAll
Definition Node.h:96
@ NodeBroadcast
Definition Node.h:298
friend class SwitchToggleBinary
Definition Node.h:99
friend class ThermostatSetpoint
Definition Node.h:105
friend class Group
Definition Node.h:68
void SetAddingNode()
Definition Node.h:319
friend class SwitchBinary
Definition Node.h:97
uint8 * GenerateNonceKey()
Definition Node.cpp:3428
bool IsController() const
Definition Node.h:317
void SetNodeAlive(bool const _isAlive)
Definition Node.cpp:1726
void QueryStageRetry(QueryStage const _stage, uint8 const _maxAttempts=0)
Definition Node.cpp:750
friend class Association
Definition Node.h:72
bool IsFrequentListeningDevice() const
Definition Node.h:302
friend class SensorBinary
Definition Node.h:94
bool IsBeamingDevice() const
Definition Node.h:303
void RemoveValueList(ValueList *_value)
Definition Node.cpp:2463
bool IsRoutingDevice() const
Definition Node.h:304
friend class ClimateControlSchedule
Definition Node.h:76
friend class Battery
Definition Node.h:75
bool CreateValueList(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _size, vector< ValueList::Item > const &_items, int32 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2311
Value * GetValue(ValueID const &_id)
Definition Node.cpp:2569
uint8 GetSecurity() const
Definition Node.h:308
friend class MultiChannelAssociation
Definition Node.h:89
friend class Alarm
Definition Node.h:71
friend class Meter
Definition Node.h:86
friend class Indicator
Definition Node.h:82
bool IsAddingNode() const
Definition Node.h:318
uint8 GetSpecific() const
Definition Node.h:314
friend class Clock
Definition Node.h:77
friend class Lock
Definition Node.h:84
friend class EnergyProduction
Definition Node.h:80
void SetLevel(uint8 const _level)
Definition Node.cpp:2097
void QueryStageComplete(QueryStage const _stage)
Definition Node.cpp:722
bool CreateValueRaw(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const *_default, uint8 const _length, uint8 const _pollIntensity)
Definition Node.cpp:2343
friend class Basic
Definition Node.h:74
friend class ManufacturerSpecific
Definition Node.h:85
friend class SensorAlarm
Definition Node.h:93
ValueID CreateValueID(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, ValueID::ValueType const _type)
Definition Node.cpp:2149
friend class ThermostatMode
Definition Node.h:103
friend class ThermostatFanMode
Definition Node.h:101
friend class Language
Definition Node.h:83
friend class SwitchToggleMultilevel
Definition Node.h:100
string GetQueryStageName(QueryStage const _stage)
Definition Node.cpp:809
bool CreateValueButton(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, uint8 const _pollIntensity)
Definition Node.cpp:2195
uint8 * GetNonceKey(uint32 nonceid)
Definition Node.cpp:3468
friend class NodeNaming
Definition Node.h:90
Node(uint32 const _homeId, uint8 const _nodeId)
Definition Node.cpp:120
friend class ControllerReplication
Definition Node.h:79
bool CreateValueByte(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2221
uint8 GetBasic() const
Definition Node.h:312
QueryStage
Definition Node.h:135
@ QueryStage_SecurityReport
Definition Node.h:143
@ QueryStage_Session
Definition Node.h:152
@ QueryStage_Probe1
Definition Node.h:149
@ QueryStage_Complete
Definition Node.h:155
@ QueryStage_ProtocolInfo
Definition Node.h:137
@ QueryStage_NodeInfo
Definition Node.h:141
@ QueryStage_CacheLoad
Definition Node.h:148
@ QueryStage_Neighbors
Definition Node.h:151
@ QueryStage_NodePlusInfo
Definition Node.h:142
@ QueryStage_Probe
Definition Node.h:138
@ QueryStage_Dynamic
Definition Node.h:153
@ QueryStage_WakeUp
Definition Node.h:139
@ QueryStage_Static
Definition Node.h:147
@ QueryStage_ManufacturerSpecific2
Definition Node.h:144
@ QueryStage_Instances
Definition Node.h:146
@ QueryStage_ManufacturerSpecific1
Definition Node.h:140
@ QueryStage_Versions
Definition Node.h:145
@ QueryStage_None
Definition Node.h:136
@ QueryStage_Configuration
Definition Node.h:154
@ QueryStage_Associations
Definition Node.h:150
void ReadValueFromXML(uint8 const _commandClassId, TiXmlElement const *_valueElement)
Definition Node.cpp:2523
bool IsNodeReset()
Definition Node.cpp:3539
uint32 GetMaxBaudRate() const
Definition Node.h:306
friend class Security
Definition Node.h:92
bool CreateValueDecimal(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, string const &_default, uint8 const _pollIntensity)
Definition Node.cpp:2251
virtual ~Node()
Definition Node.cpp:189
friend class ThermostatOperatingState
Definition Node.h:104
uint8 GetVersion() const
Definition Node.h:307
bool IsListeningDevice() const
Definition Node.h:301
friend class Driver
Definition Node.h:67
friend class AssociationCommandConfiguration
Definition Node.h:73
bool AllQueriesCompleted() const
Definition Node.h:251
bool CreateValueFromXML(uint8 const _commandClassId, TiXmlElement const *_valueElement)
Definition Node.cpp:2476
void ApplicationCommandHandler(uint8 const *_data, bool encrypted)
Definition Node.cpp:1843
void SetNodeOn()
Definition Node.cpp:2119
friend class MeterPulse
Definition Node.h:87
uint8 GetGeneric() const
Definition Node.h:313
bool CreateValueString(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, string const &_default, uint8 const _pollIntensity)
Definition Node.cpp:2433
CommandClass * GetCommandClass(uint8 const _commandClassId) const
Definition Node.cpp:1889
bool CreateValueSchedule(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _pollIntensity)
Definition Node.cpp:2374
void SetNodeOff()
Definition Node.cpp:2134
friend class WakeUp
Definition Node.h:107
void SetSecuredClasses(uint8 const *_data, uint8 const _length)
Definition Node.cpp:1523
bool IsNodeZWavePlus() const
Definition Node.h:249
bool CreateValueInt(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int32 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2281
friend class ThermostatFanState
Definition Node.h:102
void SetSecured(bool secure)
Definition Node.cpp:1516
friend class SensorMultilevel
Definition Node.h:95
friend class Version
Definition Node.h:106
friend class MultiInstance
Definition Node.h:88
@ SecurityFlag_OptionalFunctionality
Definition Node.h:292
@ SecurityFlag_RoutingSlave
Definition Node.h:288
@ SecurityFlag_Sensor250ms
Definition Node.h:290
@ SecurityFlag_Sensor1000ms
Definition Node.h:291
@ SecurityFlag_Controller
Definition Node.h:286
@ SecurityFlag_Security
Definition Node.h:285
@ SecurityFlag_BeamCapability
Definition Node.h:289
@ SecurityFlag_SpecificDevice
Definition Node.h:287
string const & GetType() const
Definition Node.h:315
friend class SwitchMultilevel
Definition Node.h:98
uint32 GetNeighbors(uint8 **o_associations)
Definition Node.cpp:821
bool RemoveValue(uint8 const _commandClassId, uint8 const _instance, uint8 const _valueIndex)
Definition Node.cpp:2600
friend class Manager
Definition Node.h:66
Node::QueryStage GetCurrentQueryStage()
Definition Node.h:207
void SetProtocolInfo(uint8 const *_protocolInfo, uint8 const _length)
Definition Node.cpp:1453
void UpdateNodeInfo(uint8 const *_data, uint8 const _length)
Definition Node.cpp:1631
friend class Protection
Definition Node.h:91
bool IsNodeAlive() const
Definition Node.h:221
void AdvanceQueries()
Definition Node.cpp:239
friend class Value
Definition Node.h:69
friend class ValueButton
Definition Node.h:70
void SetQueryStage(QueryStage const _stage, bool const _advance=true)
Definition Node.cpp:783
void SetNodePlusInfoReceived(const bool _received)
Definition Node.h:253
bool IsSecurityDevice() const
Definition Node.h:305
Implements a platform-independent TimeStamp.
Definition TimeStamp.h:40
Boolean value sent to/received from a node.
Definition ValueBool.h:46
Byte value sent to/received from a node.
Definition ValueByte.h:45
Decimal value sent to/received from a node.
Definition ValueDecimal.h:45
ValueType
Definition ValueID.h:86
ValueGenre
Definition ValueID.h:72
Integer value sent to/received from a node.
Definition ValueInt.h:45
Schedule sent to/received from a node.
Definition ValueSchedule.h:45
Short value sent to/received from a node.
Definition ValueShort.h:45
Container that holds all of the values associated with a given node.
Definition ValueStore.h:44
String value sent to/received from a node.
Definition ValueString.h:45
Base class for values associated with a node.
Definition Value.h:48
struct OpenZWave::InstanceAssociation InstanceAssociation
uint32 m_receivedCnt
Definition Node.h:573
uint32 m_sentCnt
Definition Node.h:572
uint8 m_commandClassId
Definition Node.h:571
uint32 m_sentCnt
Definition Node.h:578
uint32 m_retries
Definition Node.h:580
uint32 m_receivedUnsolicited
Definition Node.h:583
uint32 m_lastResponseRTT
Definition Node.h:588
uint32 m_lastRequestRTT
Definition Node.h:586
uint32 m_sentFailed
Definition Node.h:579
uint32 m_averageResponseRTT
Definition Node.h:589
uint32 m_receivedDups
Definition Node.h:582
uint32 m_averageRequestRTT
Definition Node.h:587
string m_receivedTS
Definition Node.h:585
string m_sentTS
Definition Node.h:584
list< CommandClassData > m_ccData
Definition Node.h:592
uint8 m_quality
Definition Node.h:590
uint32 m_receivedCnt
Definition Node.h:581
uint8 m_lastReceivedMessage[254]
Definition Node.h:591