53 class AssociationCommandConfiguration;
54 class ControllerReplication;
56 class ManufacturerSpecific;
57 class MultiChannelAssociation;
72 class ProductDescriptor;
73 class ManufacturerSpecificDB;
119 Driver* GetDriver()
const;
245 return m_protocolInfoReceived;
249 return m_nodeInfoReceived;
253 return m_nodePlusInfoReceived;
263 m_nodePlusInfoReceived = _received;
274 void SetStaticRequests();
278 bool m_queryConfiguration;
279 uint8 m_queryRetries;
280 bool m_protocolInfoReceived;
281 bool m_basicprotocolInfoReceived;
282 bool m_nodeInfoReceived;
283 bool m_nodePlusInfoReceived;
284 bool m_manufacturerSpecificClassReceived;
285 bool m_nodeInfoSupported;
286 bool m_refreshonNodeInfoFrame;
318 return m_frequentListening;
334 return m_maxBaudRate;
368 return (m_basic == 0x01 || m_basic == 0x02) && (m_generic == 0x01 || m_generic == 0x02);
380 m_addingNode =
false;
385 bool m_frequentListening;
397 uint8 m_neighbors[29];
398 uint8 m_numRouteNodes;
399 uint8 m_routeNodes[5];
400 map<uint8, uint8> m_buttonMap;
409 string GetManufacturerName()
const 411 return m_manufacturerName;
413 string GetProductName()
const 415 return m_productName;
417 string GetNodeName()
const 421 string GetLocation()
const 427 uint16 GetManufacturerId()
const 429 return m_manufacturerId;
432 uint16 GetProductType()
const 434 return m_productType;
437 uint16 GetProductId()
const 442 void SetManufacturerName(
string const& _manufacturerName)
444 m_manufacturerName = _manufacturerName;
446 void SetProductName(
string const& _productName)
448 m_productName = _productName;
450 void SetNodeName(
string const& _nodeName);
451 void SetLocation(
string const& _location);
453 void SetManufacturerId(
uint16 const& _manufacturerId)
455 m_manufacturerId = _manufacturerId;
457 void SetProductType(
uint16 const& _productType)
459 m_productType = _productType;
461 void SetProductId(
uint16 const& _productId)
463 m_productId = _productId;
466 string m_manufacturerName;
467 string m_productName;
476 uint16 GetDeviceType()
const 480 string GetDeviceTypeString();
481 uint8 GetRoleType()
const 485 string GetRoleTypeString();
486 uint8 GetNodeType()
const 490 string GetNodeTypeString();
551 void RemoveCommandClass(
uint8 const _commandClassId);
552 void ReadXML(TiXmlElement
const* _nodeElement);
553 void ReadDeviceProtocolXML(TiXmlElement
const* _ccsElement);
554 void ReadCommandClassesXML(TiXmlElement
const* _ccsElement);
555 void WriteXML(TiXmlElement* _nodeElement);
557 map<uint8, Internal::CC::CommandClass*> m_commandClassMap;
559 map<uint8, string> m_globalInstanceLabel;
561 TiXmlNode *m_nodeCache;
578 return m_fileConfigRevision;
587 return m_loadedConfigRevision;
596 return m_latestConfigRevision;
621 std::shared_ptr<Internal::ProductDescriptor> m_Product;
623 uint32 m_fileConfigRevision;
624 uint32 m_loadedConfigRevision;
625 uint32 m_latestConfigRevision;
651 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);
656 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<Internal::VC::ValueList::Item>
const& _items,
int32 const _default,
uint8 const _pollIntensity);
657 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);
674 Internal::VC::ValueStore* m_values;
680 bool SetConfigParam(
uint8 const _param,
int32 _value,
uint8 const _size);
681 void RequestConfigParam(
uint8 const _param);
682 bool RequestAllConfigParams(
uint32 const _requestFlags);
688 bool RequestDynamicValues();
699 uint8 GetNumGroups();
702 uint8 GetMaxAssociations(
uint8 const _groupIdx);
703 bool IsMultiInstance(
uint8 const _groupIdx);
704 string GetGroupLabel(
uint8 const _groupIdx);
705 void AddAssociation(
uint8 const _groupIdx,
uint8 const _targetNodeId,
uint8 const _instance = 0x00);
706 void RemoveAssociation(
uint8 const _groupIdx,
uint8 const _targetNodeId,
uint8 const _instance = 0x00);
707 void AutoAssociate();
711 void AddGroup(
Group* _group);
712 void WriteGroups(TiXmlElement* _associationsElement);
714 map<uint8, Group*> m_groups;
724 DeviceClass(TiXmlElement
const* _el);
727 delete[] m_mandatoryCommandClasses;
730 uint8 const* GetMandatoryCommandClasses()
732 return m_mandatoryCommandClasses;
734 uint8 GetBasicMapping()
736 return m_basicMapping;
738 string const& GetLabel()
744 uint8* m_mandatoryCommandClasses;
745 uint8 m_basicMapping;
750 class GenericDeviceClass:
public DeviceClass
753 GenericDeviceClass(TiXmlElement
const* _el);
754 ~GenericDeviceClass();
756 DeviceClass* GetSpecificDeviceClass(
uint8 const& _specific);
759 map<uint8, DeviceClass*> m_specificDeviceClasses;
762 bool SetDeviceClasses(
uint8 const _basic,
uint8 const _generic,
uint8 const _specific);
763 bool SetPlusDeviceClasses(
uint8 const _role,
uint8 const _nodeType,
uint16 const _deviceType);
764 bool AddMandatoryCommandClasses(
uint8 const* _commandClasses);
765 bool ReadDeviceClasses();
767 static bool s_deviceClassesLoaded;
768 static map<uint8, string> s_basicDeviceClasses;
769 static map<uint8, GenericDeviceClass*> s_genericDeviceClasses;
770 static map<uint8, DeviceClass*> s_roleDeviceClasses;
771 static map<uint16, DeviceClass*> s_deviceTypeClasses;
772 static map<uint8, DeviceClass*> s_nodeTypes;
821 void GetNodeStatistics(
NodeData* _data);
828 uint32 m_receivedUnsolicited;
833 uint32 m_averageRequestRTT;
834 uint32 m_averageResponseRTT;
836 uint8 m_lastReceivedMessage[254];
838 bool m_txStatusReportSupported;
847 uint8 m_lastTxChannel;
849 uint8 m_routeUsed[4];
852 uint8 m_lastFailedLinkFrom;
853 uint8 m_lastFailedLinkTo;
865 uint8 m_nonces[8][8];
910 void ReadMetaDataFromXML(TiXmlElement
const* _valueElement);
911 void WriteMetaDataXML(TiXmlElement*);
912 map<MetaDataFields, string> m_metadata;
913 map<uint32_t, ChangeLogEntry> m_changeLog;
string const GetMetaDataString(MetaDataFields)
Definition: Node.cpp:3891
bool IsAddingNode() const
Definition: Node.h:370
Implements COMMAND_CLASS_ASSOCIATION_COMMAND_CONFIGURATION (0x9b), a Z-Wave device command class.
Definition: AssociationCommandConfiguration.h:46
uint32 GetNeighbors(uint8 **o_neighbors)
Definition: Node.cpp:769
bool IsFrequentListeningDevice() const
Definition: Node.h:316
string const & GetType() const
Definition: Node.h:361
void RefreshValuesOnWakeup()
Definition: Node.cpp:2340
Internal::VC::Value * GetValue(ValueID const &_id)
Definition: Node.cpp:2759
TXSTATUS_ROUTING_SCHEME m_routeScheme
Definition: Node.h:812
uint8 GetSpecific(uint8 const _instance) const
Definition: Node.cpp:1695
Definition: Bitfield.cpp:30
void QueryStageRetry(QueryStage const _stage, uint8 const _maxAttempts=0)
Definition: Node.cpp:707
uint32 m_lastResponseRTT
Definition: Node.h:797
void SetProtocolInfo(uint8 const *_protocolInfo, uint8 const _length)
Definition: Node.cpp:1513
uint32 m_receivedCnt
Definition: Node.h:782
bool AllQueriesCompleted() const
Definition: Node.h:256
void checkLatestConfigRevision()
Definition: Node.cpp:3814
void SetInstanceLabel(uint8 const _instance, char *label)
Definition: Node.cpp:1593
uint32 getFileConfigRevision()
Definition: Node.h:576
uint32 m_sentFailed
Definition: Node.h:788
uint8 GetNumInstances(uint8 const _ccid)
Definition: Node.cpp:1624
unsigned short uint16
Definition: Defs.h:88
uint8 m_lastTxChannel
Definition: Node.h:811
ValueType
Definition: ValueID.h:98
TXSTATUS_ROUTE_SPEED m_routeSpeed
Definition: Node.h:814
Implements COMMAND_CLASS_CONTROLLER_REPLICATION (0x21), a Z-Wave device command class.
Definition: ControllerReplication.h:43
Implements COMMAND_CLASS_ASSOCIATION (0x85), a Z-Wave device command class.
Definition: Association.h:43
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:2534
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:2499
void SetSecured(bool secure)
Definition: Node.cpp:1583
The main public interface to OpenZWave.
Definition: Manager.h:108
uint8 m_ackChannel
Definition: Node.h:810
string GetQueryStageName(QueryStage const _stage)
Definition: Node.cpp:760
bool NodeInfoReceived() const
Definition: Node.h:247
Implements COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION (0x8E), a Z-Wave device command class.
Definition: MultiChannelAssociation.h:45
MetaDataFields
Definition: Node.h:878
bool ProtocolInfoReceived() const
Definition: Node.h:243
struct OpenZWave::InstanceAssociation InstanceAssociation
string GetBasicString()
Definition: Node.cpp:1640
QueryStage
Definition: Node.h:125
bool IsSecurityDevice() const
Definition: Node.h:328
bool m_txStatusReportSupported
Definition: Node.h:802
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:2481
bool IsSecured()
Definition: Node.cpp:1588
void ClearAddingNode()
Definition: Node.h:378
friend class Group
Definition: Node.h:85
void ReadValueFromXML(uint8 const _commandClassId, TiXmlElement const *_valueElement)
Definition: Node.cpp:2706
void SetNodeAlive(bool const _isAlive)
Definition: Node.cpp:1936
friend class ValueButton
Definition: Node.h:87
Container that holds all of the values associated with a given node.
Definition: ValueStore.h:49
string GetGenericString(uint8 const _instance)
Definition: Node.cpp:1670
uint8 GetVersion() const
Definition: Node.h:336
uint8 m_commandClassId
Definition: Node.h:780
The Node class describes a Z-Wave node object...typically a device on the Z-Wave network.
Definition: Node.h:81
Implements COMMAND_CLASS_NODE_NAMING (0x77), a Z-Wave device command class.
Definition: NodeNaming.h:56
bool IsNodeAlive() const
Definition: Node.h:214
Base class for all Z-Wave command classes.
Definition: CommandClass.h:60
char m_rssi_4[8]
Definition: Node.h:808
bool RemoveValue(uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex)
Definition: Node.cpp:2797
void setLoadedConfigRevision(uint32 rev)
Definition: Node.cpp:3784
uint8 m_lastFailedLinkFrom
Definition: Node.h:816
uint8 m_hops
Definition: Node.h:804
void QueryStageComplete(QueryStage const _stage)
Definition: Node.cpp:682
list< CommandClassData > m_ccData
Definition: Node.h:801
List of values sent to/received from a node.
Definition: ValueList.h:48
bool IsController() const
Definition: Node.h:366
uint8 * GetNonceKey(uint32 nonceid)
Definition: Node.cpp:3653
ChangeLogEntry const GetChangeLog(uint32_t)
Definition: Node.cpp:3840
uint8 GetSecurity() const
Definition: Node.h:340
string m_sentTS
Definition: Node.h:793
char m_rssi_2[8]
Definition: Node.h:806
signed short int16
Definition: Defs.h:87
MetaDataFields GetMetaDataId(string)
Definition: Node.cpp:3855
bool IsNodeReset()
Definition: Node.cpp:3731
virtual ~Node()
Definition: Node.cpp:124
void RemoveValueList(Internal::VC::ValueList *_value)
Definition: Node.cpp:2606
string getConfigPath()
Definition: Node.cpp:3755
string m_receivedTS
Definition: Node.h:794
The Driver class handles communication between OpenZWave and a device attached via a serial port (typ...
Definition: Driver.h:84
Implements COMMAND_CLASS_MULTI_INSTANCE (0x60), a Z-Wave device command class.
Definition: MultiInstance.h:44
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:2463
string GetSpecificString(uint8 const _instance)
Definition: Node.cpp:1706
uint8 m_routeTries
Definition: Node.h:815
signed int int32
Definition: Defs.h:90
friend class Internal::CC::CommandClass
Definition: Node.h:90
void SetNodePlusInfoReceived(const bool _received)
Definition: Node.h:261
unsigned int uint32
Definition: Defs.h:91
void SetNodeOn()
Definition: Node.cpp:2374
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:2409
uint32 m_sentCnt
Definition: Node.h:787
uint32 m_sentCnt
Definition: Node.h:781
void setFileConfigRevision(uint32 rev)
Definition: Node.cpp:3768
Manages a group of devices (various nodes associated with each other).
Definition: Group.h:71
uint8 m_lastFailedLinkTo
Definition: Node.h:817
void AdvanceQueries()
Definition: Node.cpp:173
uint8 m_lastReceivedMessage[254]
Definition: Node.h:800
Implements COMMAND_CLASS_HAIL (0x82), a Z-Wave device command class.
Definition: Hail.h:43
uint32 getLatestConfigRevision()
Definition: Node.h:594
bool CreateValueFromXML(uint8 const _commandClassId, TiXmlElement const *_valueElement)
Definition: Node.cpp:2616
uint32 m_averageResponseRTT
Definition: Node.h:798
uint32 GetMaxBaudRate() const
Definition: Node.h:332
void ApplicationCommandHandler(uint8 const *_data, bool encrypted)
Definition: Node.cpp:2042
void SetLevel(uint8 const _level)
Definition: Node.cpp:2355
void SetSecuredClasses(uint8 const *_data, uint8 const _length, uint32 const _instance=1)
Definition: Node.cpp:1737
void SetQueryStage(QueryStage const _stage, bool const _advance=true)
Definition: Node.cpp:737
uint32 m_lastRequestRTT
Definition: Node.h:795
void UpdateNodeInfo(uint8 const *_data, uint8 const _length)
Definition: Node.cpp:1841
Implements COMMAND_CLASS_MANUFACTURER_SPECIFIC (0x72), a Z-Wave device command class.
Definition: ManufacturerSpecific.h:44
string description
Definition: Node.h:902
Provides a unique ID for a value reported by a Z-Wave device.The ValueID is used to uniquely identify...
Definition: ValueID.h:76
Internal::CC::CommandClass * GetCommandClass(uint8 const _commandClassId) const
Definition: Node.cpp:2134
uint8 GetNodeId() const
Definition: Node.h:345
bool IsBeamingDevice() const
Definition: Node.h:320
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:2552
void SetAddingNode()
Definition: Node.h:374
char m_rssi_5[8]
Definition: Node.h:809
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< Internal::VC::ValueList::Item > const &_items, int32 const _default, uint8 const _pollIntensity)
Definition: Node.cpp:2517
uint16 m_txTime
Definition: Node.h:803
bool IsNodeZWavePlus() const
Definition: Node.h:251
bool CreateValueButton(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, string const &_label, uint8 const _pollIntensity)
Definition: Node.cpp:2445
uint32 m_averageRequestRTT
Definition: Node.h:796
uint8 GetGeneric(uint8 const _instance) const
Definition: Node.cpp:1660
void setLatestConfigRevision(uint32 rev)
Definition: Node.cpp:3799
ValueID CreateValueID(ValueID::ValueGenre const _genre, uint8 const _commandClassId, uint8 const _instance, uint16 const _valueIndex, ValueID::ValueType const _type)
Definition: Node.cpp:2400
Node(uint32 const _homeId, uint8 const _nodeId)
Definition: Node.cpp:101
Node::QueryStage GetCurrentQueryStage()
Definition: Node.h:197
TXSTATUS_ROUTING_SCHEME
Definition: Defs.h:448
uint32 getLoadedConfigRevision()
Definition: Node.h:585
uint32 m_receivedUnsolicited
Definition: Node.h:792
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:2427
uint8 * GenerateNonceKey()
Definition: Node.cpp:3606
char m_rssi_3[8]
Definition: Node.h:807
uint32 m_receivedCnt
Definition: Node.h:790
Implements COMMAND_CLASS_VERSION (0x86), a Z-Wave device command class.
Definition: Version.h:43
string GetInstanceLabel(uint8 const _ccid, uint8 const _instance)
Definition: Node.cpp:1601
string GetEndPointDeviceClassLabel(uint8 const _generic, uint8 const _specific)
Definition: Node.cpp:3001
Implements COMMAND_CLASS_ZWAVEPLUS_INFO (0x5E), a Z-Wave device command class.
Definition: ZWavePlusInfo.h:43
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:2588
void UpdateProtocolInfo(uint8 const *_data)
Definition: Node.cpp:1375
uint32 m_retries
Definition: Node.h:789
bool IsRoutingDevice() const
Definition: Node.h:324
void SetNodeOff()
Definition: Node.cpp:2387
int revision
Definition: Node.h:901
bool IsListeningDevice() const
Definition: Node.h:312
string date
Definition: Node.h:900
The _ManufacturerSpecificDB class handles the Config File Database that we use to configure devices.
Definition: ManufacturerSpecificDB.h:116
TXSTATUS_ROUTE_SPEED
Definition: Defs.h:461
uint8 GetBasic() const
Definition: Node.h:350
char m_routeUsed[9]
Definition: Node.h:813
ValueGenre
Definition: ValueID.h:84
Base class for values associated with a node.
Definition: Value.h:54
void SetProductDetails(std::shared_ptr< Internal::ProductDescriptor > product)
Definition: Node.cpp:3745
uint32 m_receivedDups
Definition: Node.h:791
string const GetMetaData(MetaDataFields)
Definition: Node.cpp:3827
uint8 m_quality
Definition: Node.h:799
char m_rssi_1[8]
Definition: Node.h:805
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:2570
string author
Definition: Node.h:899
unsigned char uint8
Definition: Defs.h:85