265 void SetStaticRequests();
269 bool m_queryConfiguration;
270 uint8 m_queryRetries;
271 bool m_protocolInfoReceived;
272 bool m_basicprotocolInfoReceived;
273 bool m_nodeInfoReceived;
274 bool m_nodePlusInfoReceived;
275 bool m_manufacturerSpecificClassReceived;
276 bool m_nodeInfoSupported;
277 bool m_refreshonNodeInfoFrame;
317 string const&
GetType()
const{
return m_type; }
319 bool IsController()
const{
return ( m_basic == 0x01 || m_basic == 0x02 ) && ( m_generic == 0x01 || m_generic == 0x02 ); }
326 bool m_frequentListening;
338 uint8 m_neighbors[29];
339 uint8 m_numRouteNodes;
340 uint8 m_routeNodes[5];
341 map<uint8,uint8> m_buttonMap;
350 string GetManufacturerName()
const{
return m_manufacturerName; }
351 string GetProductName()
const{
return m_productName; }
352 string GetNodeName()
const{
return m_nodeName; }
353 string GetLocation()
const{
return m_location; }
356 uint16 GetManufacturerId()
const{
return m_manufacturerId; }
358 uint16 GetProductType()
const{
return m_productType; }
360 uint16 GetProductId()
const{
return m_productId; }
362 void SetManufacturerName(
string const& _manufacturerName ){ m_manufacturerName = _manufacturerName; }
363 void SetProductName(
string const& _productName ){ m_productName = _productName; }
364 void SetNodeName(
string const& _nodeName );
365 void SetLocation(
string const& _location );
367 void SetManufacturerId(
uint16 const& _manufacturerId ){ m_manufacturerId = _manufacturerId; }
368 void SetProductType(
uint16 const& _productType ){ m_productType = _productType; }
369 void SetProductId(
uint16 const& _productId ){ m_productId = _productId; }
371 string m_manufacturerName;
372 string m_productName;
381 uint16 GetDeviceType()
const {
return m_deviceType; }
382 string GetDeviceTypeString();
383 uint8 GetRoleType()
const {
return m_role; }
384 string GetRoleTypeString();
385 uint8 GetNodeType()
const {
return m_nodeType; }
386 string GetNodeTypeString();
440 CommandClass* AddCommandClass(
uint8 const _commandClassId,
bool advertised =
false);
447 void RemoveCommandClass(
uint8 const _commandClassId );
448 void ReadXML( TiXmlElement
const* _nodeElement );
449 void ReadDeviceProtocolXML( TiXmlElement
const* _ccsElement );
450 void ReadCommandClassesXML( TiXmlElement
const* _ccsElement );
451 void WriteXML( TiXmlElement* _nodeElement );
453 map<uint8,CommandClass*> m_commandClassMap;
454 map<uint8,CommandClass*> m_advertisedCommandClassMap;
456 map<uint8, string> m_globalInstanceLabel;
508 uint32 m_fileConfigRevision;
509 uint32 m_loadedConfigRevision;
510 uint32 m_latestConfigRevision;
536 bool CreateValueBool(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint16 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
bool const _default,
uint8 const _pollIntensity );
541 bool CreateValueList(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint16 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 );
542 bool CreateValueRaw(
ValueID::ValueGenre const _genre,
uint8 const _commandClassId,
uint8 const _instance,
uint16 const _valueIndex,
string const& _label,
string const& _units,
bool const _readOnly,
bool const _writeOnly,
uint8 const* _default,
uint8 const _length,
uint8 const _pollIntensity );
554 ValueStore* GetValueStore()
const{
return m_values; }
556 ValueStore* m_values;
562 bool SetConfigParam(
uint8 const _param,
int32 _value,
uint8 const _size );
563 void RequestConfigParam(
uint8 const _param );
564 bool RequestAllConfigParams(
uint32 const _requestFlags );
570 bool RequestDynamicValues();
581 uint8 GetNumGroups();
584 uint8 GetMaxAssociations(
uint8 const _groupIdx );
585 bool IsMultiInstance(
uint8 const _groupIdx );
586 string GetGroupLabel(
uint8 const _groupIdx );
587 void AddAssociation(
uint8 const _groupIdx,
uint8 const _targetNodeId,
uint8 const _instance = 0x00 );
588 void RemoveAssociation(
uint8 const _groupIdx,
uint8 const _targetNodeId,
uint8 const _instance = 0x00 );
589 void AutoAssociate();
593 void AddGroup(
Group* _group );
594 void WriteGroups( TiXmlElement* _associationsElement );
596 map<uint8,Group*> m_groups;
606 DeviceClass( TiXmlElement
const* _el );
607 ~DeviceClass(){
delete [] m_mandatoryCommandClasses; }
609 uint8 const* GetMandatoryCommandClasses(){
return m_mandatoryCommandClasses; }
610 uint8 GetBasicMapping(){
return m_basicMapping; }
611 string const& GetLabel(){
return m_label; }
614 uint8* m_mandatoryCommandClasses;
615 uint8 m_basicMapping;
620 class GenericDeviceClass :
public DeviceClass
623 GenericDeviceClass( TiXmlElement
const* _el );
624 ~GenericDeviceClass();
626 DeviceClass* GetSpecificDeviceClass(
uint8 const& _specific );
629 map<uint8,DeviceClass*> m_specificDeviceClasses;
633 bool SetDeviceClasses(
uint8 const _basic,
uint8 const _generic,
uint8 const _specific );
634 bool SetPlusDeviceClasses(
uint8 const _role,
uint8 const _nodeType,
uint16 const _deviceType );
635 bool AddMandatoryCommandClasses(
uint8 const* _commandClasses );
636 void ReadDeviceClasses();
637 string GetEndPointDeviceClassLabel(
uint8 const _generic,
uint8 const _specific );
639 static bool s_deviceClassesLoaded;
640 static map<uint8,string> s_basicDeviceClasses;
641 static map<uint8,GenericDeviceClass*> s_genericDeviceClasses;
642 static map<uint8,DeviceClass*> s_roleDeviceClasses;
643 static map<uint16,DeviceClass*> s_deviceTypeClasses;
644 static map<uint8, DeviceClass*> s_nodeTypes;
694 void GetNodeStatistics(
NodeData* _data );
701 uint32 m_receivedUnsolicited;
706 uint32 m_averageRequestRTT;
707 uint32 m_averageResponseRTT;
709 uint8 m_lastReceivedMessage[254];
711 bool m_txStatusReportSupported;
720 uint8 m_lastTxChannel;
722 uint8 m_routeUsed[4];
725 uint8 m_lastFailedLinkFrom;
726 uint8 m_lastFailedLinkTo;
739 uint8 m_nonces[8][8];
784 void ReadMetaDataFromXML(TiXmlElement
const* _valueElement);
785 void WriteMetaDataXML(TiXmlElement*);
786 map<MetaDataFields, string> m_metadata;
787 map<uint32_t, ChangeLogEntry> m_changeLog;
unsigned short uint16
Definition Defs.h:92
unsigned int uint32
Definition Defs.h:95
signed short int16
Definition Defs.h:91
signed int int32
Definition Defs.h:94
TXSTATUS_ROUTING_SCHEME
Definition Defs.h:455
TXSTATUS_ROUTE_SPEED
Definition Defs.h:468
unsigned char uint8
Definition Defs.h:89
Base class for all Z-Wave command classes.
Definition CommandClass.h:56
The Driver class handles communication between OpenZWave and a device attached via a serial port (typ...
Definition Driver.h:65
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:41
uint8 GetNodeId() const
Definition Node.h:312
void ClearAddingNode()
Definition Node.h:322
friend class ZWavePlusInfo
Definition Node.h:110
void UpdateProtocolInfo(uint8 const *_data)
Definition Node.cpp:1437
uint32 getFileConfigRevision()
Definition Node.h:471
bool CreateValueButton(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, uint8 const _pollIntensity)
Definition Node.cpp:2483
bool ProtocolInfoReceived() const
Definition Node.h:249
bool CreateValueDecimal(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, string const &_default, uint8 const _pollIntensity)
Definition Node.cpp:2539
friend class Hail
Definition Node.h:82
bool NodeInfoReceived() const
Definition Node.h:250
CommandClass * GetCommandClass(uint8 const _commandClassId, bool advertised=false) const
Definition Node.cpp:2108
void RefreshValuesOnWakeup()
Definition Node.cpp:2335
friend class CommandClass
Definition Node.h:79
friend class SwitchAll
Definition Node.h:98
@ NodeBroadcast
Definition Node.h:300
friend class SwitchToggleBinary
Definition Node.h:101
friend class ThermostatSetpoint
Definition Node.h:107
friend class Group
Definition Node.h:69
void SetAddingNode()
Definition Node.h:321
friend class SwitchBinary
Definition Node.h:99
void SetSecuredClasses(uint8 const *_data, uint8 const _length, uint32 const _instance=1)
Definition Node.cpp:1682
uint8 * GenerateNonceKey()
Definition Node.cpp:3766
bool CreateValueBool(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, bool const _default, uint8 const _pollIntensity)
Definition Node.cpp:2453
bool IsController() const
Definition Node.h:319
void SetNodeAlive(bool const _isAlive)
Definition Node.cpp:1903
void setLatestConfigRevision(uint32 rev)
Definition Node.cpp:3963
void QueryStageRetry(QueryStage const _stage, uint8 const _maxAttempts=0)
Definition Node.cpp:788
friend class Association
Definition Node.h:73
bool IsFrequentListeningDevice() const
Definition Node.h:304
friend class SensorBinary
Definition Node.h:96
bool IsBeamingDevice() const
Definition Node.h:305
void RemoveValueList(ValueList *_value)
Definition Node.cpp:2750
bool IsRoutingDevice() const
Definition Node.h:306
friend class ClimateControlSchedule
Definition Node.h:77
friend class Battery
Definition Node.h:76
Value * GetValue(ValueID const &_id)
Definition Node.cpp:2865
uint8 GetSecurity() const
Definition Node.h:310
friend class MultiChannelAssociation
Definition Node.h:91
friend class Alarm
Definition Node.h:72
friend class Meter
Definition Node.h:88
friend class Indicator
Definition Node.h:83
bool IsAddingNode() const
Definition Node.h:320
bool RemoveValue(uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex)
Definition Node.cpp:2896
uint8 GetSpecific() const
Definition Node.h:316
friend class Clock
Definition Node.h:78
friend class Lock
Definition Node.h:85
friend class EnergyProduction
Definition Node.h:81
void SetLevel(uint8 const _level)
Definition Node.cpp:2352
void QueryStageComplete(QueryStage const _stage)
Definition Node.cpp:760
uint32 getLoadedConfigRevision()
Definition Node.h:476
friend class Basic
Definition Node.h:75
friend class ManufacturerSpecific
Definition Node.h:86
bool CreateValueByte(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2509
friend class SensorAlarm
Definition Node.h:95
friend class ThermostatMode
Definition Node.h:105
void SetProductDetails(ProductDescriptor *product)
Definition Node.cpp:3893
friend class ThermostatFanMode
Definition Node.h:103
friend class Language
Definition Node.h:84
friend class SwitchToggleMultilevel
Definition Node.h:102
string GetQueryStageName(QueryStage const _stage)
Definition Node.cpp:847
bool IsSecured()
Definition Node.cpp:1621
uint8 * GetNonceKey(uint32 nonceid)
Definition Node.cpp:3806
string const GetMetaDataString(MetaDataFields)
Definition Node.cpp:4050
friend class NodeNaming
Definition Node.h:92
bool CreateValueSchedule(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, uint8 const _pollIntensity)
Definition Node.cpp:2661
Node(uint32 const _homeId, uint8 const _nodeId)
Definition Node.cpp:123
friend class ControllerReplication
Definition Node.h:80
bool CreateValueList(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 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:2599
uint8 GetBasic() const
Definition Node.h:314
string GetInstanceLabel(uint8 const _ccid, uint8 const _instance)
Definition Node.cpp:1637
MetaDataFields const GetMetaDataId(string)
Definition Node.cpp:4029
QueryStage
Definition Node.h:137
@ QueryStage_SecurityReport
Definition Node.h:145
@ QueryStage_Session
Definition Node.h:154
@ QueryStage_Probe1
Definition Node.h:151
@ QueryStage_Complete
Definition Node.h:157
@ QueryStage_ProtocolInfo
Definition Node.h:139
@ QueryStage_NodeInfo
Definition Node.h:143
@ QueryStage_CacheLoad
Definition Node.h:150
@ QueryStage_Neighbors
Definition Node.h:153
@ QueryStage_NodePlusInfo
Definition Node.h:144
@ QueryStage_Probe
Definition Node.h:140
@ QueryStage_Dynamic
Definition Node.h:155
@ QueryStage_WakeUp
Definition Node.h:141
@ QueryStage_Static
Definition Node.h:149
@ QueryStage_ManufacturerSpecific2
Definition Node.h:146
@ QueryStage_Instances
Definition Node.h:148
@ QueryStage_ManufacturerSpecific1
Definition Node.h:142
@ QueryStage_Versions
Definition Node.h:147
@ QueryStage_None
Definition Node.h:138
@ QueryStage_Configuration
Definition Node.h:156
@ QueryStage_Associations
Definition Node.h:152
void ReadValueFromXML(uint8 const _commandClassId, TiXmlElement const *_valueElement)
Definition Node.cpp:2811
bool IsNodeReset()
Definition Node.cpp:3877
uint32 GetMaxBaudRate() const
Definition Node.h:308
ValueID CreateValueID(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, ValueID::ValueType const _type)
Definition Node.cpp:2404
void checkLatestConfigRevision()
Definition Node.cpp:3982
friend class Security
Definition Node.h:94
bool CreateValueString(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, string const &_default, uint8 const _pollIntensity)
Definition Node.cpp:2720
virtual ~Node()
Definition Node.cpp:214
friend class ThermostatOperatingState
Definition Node.h:106
string const GetMetaData(MetaDataFields)
Definition Node.cpp:3998
uint8 GetVersion() const
Definition Node.h:309
bool IsListeningDevice() const
Definition Node.h:303
friend class Driver
Definition Node.h:68
friend class AssociationCommandConfiguration
Definition Node.h:74
bool AllQueriesCompleted() const
Definition Node.h:253
bool CreateValueFromXML(uint8 const _commandClassId, TiXmlElement const *_valueElement)
Definition Node.cpp:2763
void ApplicationCommandHandler(uint8 const *_data, bool encrypted)
Definition Node.cpp:2020
uint8 GetNumInstances(uint8 const _ccid)
Definition Node.cpp:1662
void SetNodeOn()
Definition Node.cpp:2374
ChangeLogEntry const GetChangeLog(uint32_t)
Definition Node.cpp:4013
friend class ManufacturerSpecificDB
Definition Node.h:87
friend class MeterPulse
Definition Node.h:89
uint8 GetGeneric() const
Definition Node.h:315
void setLoadedConfigRevision(uint32 rev)
Definition Node.cpp:3944
void SetNodeOff()
Definition Node.cpp:2389
friend class WakeUp
Definition Node.h:109
bool IsNodeZWavePlus() const
Definition Node.h:251
friend class ThermostatFanState
Definition Node.h:104
MetaDataFields
Definition Node.h:753
@ MetaData_ExclusionHelp
Definition Node.h:761
@ MetaData_OzwInfoPage_URL
Definition Node.h:754
@ MetaData_InclusionHelp
Definition Node.h:760
@ MetaData_ProductPic
Definition Node.h:756
@ MetaData_Identifier
Definition Node.h:767
@ MetaData_WakeupHelp
Definition Node.h:763
@ MetaData_Frequency
Definition Node.h:765
@ MetaData_ZWProductPage_URL
Definition Node.h:755
@ MetaData_ProductSupport_URL
Definition Node.h:764
@ MetaData_ProductPage_URL
Definition Node.h:759
@ MetaData_Invalid
Definition Node.h:768
@ MetaData_Name
Definition Node.h:766
@ MetaData_ProductManual_URL
Definition Node.h:758
@ MetaData_ResetHelp
Definition Node.h:762
@ MetaData_Description
Definition Node.h:757
void SetSecured(bool secure)
Definition Node.cpp:1613
friend class SensorMultilevel
Definition Node.h:97
friend class Version
Definition Node.h:108
void SetInstanceLabel(uint8 const _instance, char *label)
Definition Node.cpp:1628
friend class MultiInstance
Definition Node.h:90
void setFileConfigRevision(uint32 rev)
Definition Node.cpp:3925
@ SecurityFlag_OptionalFunctionality
Definition Node.h:294
@ SecurityFlag_RoutingSlave
Definition Node.h:290
@ SecurityFlag_Sensor250ms
Definition Node.h:292
@ SecurityFlag_Sensor1000ms
Definition Node.h:293
@ SecurityFlag_Controller
Definition Node.h:288
@ SecurityFlag_Security
Definition Node.h:287
@ SecurityFlag_BeamCapability
Definition Node.h:291
@ SecurityFlag_SpecificDevice
Definition Node.h:289
bool CreateValueShort(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int16 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2690
uint32 getLatestConfigRevision()
Definition Node.h:481
string const & GetType() const
Definition Node.h:317
friend class SwitchMultilevel
Definition Node.h:100
uint32 GetNeighbors(uint8 **o_associations)
Definition Node.cpp:859
friend class Manager
Definition Node.h:67
Node::QueryStage GetCurrentQueryStage()
Definition Node.h:209
void SetProtocolInfo(uint8 const *_protocolInfo, uint8 const _length)
Definition Node.cpp:1549
bool CreateValueInt(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int32 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2569
void UpdateNodeInfo(uint8 const *_data, uint8 const _length)
Definition Node.cpp:1802
friend class Protection
Definition Node.h:93
bool IsNodeAlive() const
Definition Node.h:223
bool CreateValueRaw(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 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:2630
void AdvanceQueries()
Definition Node.cpp:264
friend class Value
Definition Node.h:70
string getConfigPath()
Definition Node.cpp:3910
friend class ValueButton
Definition Node.h:71
bool CreateValueBitSet(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, string const &_units, bool const _readOnly, bool const _writeOnly, int32 const _default, uint8 const _pollIntensity)
Definition Node.cpp:2420
void SetQueryStage(QueryStage const _stage, bool const _advance=true)
Definition Node.cpp:821
void SetNodePlusInfoReceived(const bool _received)
Definition Node.h:255
bool IsSecurityDevice() const
Definition Node.h:307
Definition ManufacturerSpecificDB.h:47
Implements a platform-independent TimeStamp.
Definition TimeStamp.h:41
Boolean value sent to/received from a node.
Definition ValueBool.h:47
Byte value sent to/received from a node.
Definition ValueByte.h:46
Decimal value sent to/received from a node.
Definition ValueDecimal.h:46
Provides a unique ID for a value reported by a Z-Wave device.
Definition ValueID.h:63
ValueType
Definition ValueID.h:95
ValueGenre
Definition ValueID.h:81
Integer value sent to/received from a node.
Definition ValueInt.h:46
List of values sent to/received from a node.
Definition ValueList.h:47
Schedule sent to/received from a node.
Definition ValueSchedule.h:46
Short value sent to/received from a node.
Definition ValueShort.h:46
Container that holds all of the values associated with a given node.
Definition ValueStore.h:45
String value sent to/received from a node.
Definition ValueString.h:46
Base class for values associated with a node.
Definition Value.h:49
struct OpenZWave::InstanceAssociation InstanceAssociation
int revision
Definition Node.h:774
string date
Definition Node.h:773
string author
Definition Node.h:772
string description
Definition Node.h:775
uint32 m_receivedCnt
Definition Node.h:655
uint32 m_sentCnt
Definition Node.h:654
uint8 m_commandClassId
Definition Node.h:653
uint32 m_sentCnt
Definition Node.h:660
TXSTATUS_ROUTING_SCHEME m_routeScheme
Definition Node.h:685
char m_rssi_4[8]
Definition Node.h:681
char m_rssi_2[8]
Definition Node.h:679
uint32 m_retries
Definition Node.h:662
bool m_txStatusReportSupported
Definition Node.h:675
uint8 m_lastFailedLinkTo
Definition Node.h:690
uint32 m_receivedUnsolicited
Definition Node.h:665
uint32 m_lastResponseRTT
Definition Node.h:670
uint32 m_lastRequestRTT
Definition Node.h:668
uint32 m_sentFailed
Definition Node.h:661
uint32 m_averageResponseRTT
Definition Node.h:671
uint8 m_lastTxChannel
Definition Node.h:684
uint32 m_receivedDups
Definition Node.h:664
char m_rssi_5[8]
Definition Node.h:682
uint32 m_averageRequestRTT
Definition Node.h:669
string m_receivedTS
Definition Node.h:667
uint8 m_routeTries
Definition Node.h:688
char m_routeUsed[9]
Definition Node.h:686
string m_sentTS
Definition Node.h:666
uint8 m_ackChannel
Definition Node.h:683
list< CommandClassData > m_ccData
Definition Node.h:674
uint8 m_quality
Definition Node.h:672
TXSTATUS_ROUTE_SPEED m_routeSpeed
Definition Node.h:687
char m_rssi_3[8]
Definition Node.h:680
uint16 m_txTime
Definition Node.h:676
uint8 m_lastFailedLinkFrom
Definition Node.h:689
uint32 m_receivedCnt
Definition Node.h:663
char m_rssi_1[8]
Definition Node.h:678
uint8 m_lastReceivedMessage[254]
Definition Node.h:673
uint8 m_hops
Definition Node.h:677