open-zwave/config/zwcfg.xsd
glsatz 11e3562ae2 Add better statistics gathering including per node and per command
class. Measure round-trip times for outgoing requests and return ACKs.

Remove deprecated RequestFlag_LowPriority from CommandClass as the new
queues take care of prioritization.

Remove classgetsupport xml configuration from Version and move it into
CommandClass so all classes can use it. Renamed to getsupported. Only
Version and Alarm command classes check it currently.

Add NoOperation command class that is used as a test message for
diagnostics as it appears all nodes support it. It is added to all nodes
but hidden from displays, configuration and reports.

Update Logging object to be able to log to terminal without logging to
file. This lets the library generate runtime error messages and terminate.

Update Options object creation and locking check and output error before
exiting if not set properly.

Have factory reset of controller remove the driver and then add the driver
back in. The user programs will see all the events properly.

Add a TestNetwork and TestNetworkNode methods for Manager to be used for
network diagnostics.

Add a Manager GetNodeStatistics method to retrieve node and command class
counters.

Remove relaxed command callback id check. This area needs further focus.

Remove MsgComplete notification and add Notification notification which
carries a code. Notification notification codes include MsgComplete,
Timeout and NoOperation. Timeout is sent when a sent message times
out. NoOperation is sent when a NoOperation command class message is
successfully transmitted.

Clear controller callback when requesting routing updates since it is left
over from delete / assign return routes and causes memory corruption. This
will be better addresses in the controller command rewrite to follow.

Allow routes from bad links and non-repeaters so we have a complete table.

Library will generate an error message and exit if it cannot open its
configuration files.

Add a platform FileOps object to determine if a directory exists. Also
provide unix and windows support. Windows support thanks to D. Scott
Miller.

Add support for TimeStamps to return a text string representation. Also
work from D. Scott Miller.
2012-12-10 15:56:24 +00:00

249 lines
8.5 KiB
XML

<?xml version='1.0'?>
<xs:schema
xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='http://code.google.com/p/open-zwave/'
xmlns:Driver='http://code.google.com/p/open-zwave/'
elementFormDefault='qualified'>
<xs:element name='Driver'>
<xs:complexType>
<xs:sequence>
<xs:element ref='Driver:Node' minOccurs='0' maxOccurs='unbounded'/>
</xs:sequence>
<xs:attribute name='version' type='xs:string' use='required'/>
<xs:attribute name='home_id' type='xs:string' use='required'/>
<xs:attribute name='node_id' type='xs:string' use='required'/>
<xs:attribute name='api_capabilities' type='xs:string' use='required'/>
<xs:attribute name='controller_capabilities' type='xs:string' use='required'/>
</xs:complexType>
</xs:element>
<xs:element name='Node'>
<xs:complexType>
<xs:sequence>
<xs:element ref='Driver:Manufacturer'/>
<xs:element ref='Driver:CommandClasses'/>
</xs:sequence>
<xs:attribute name='id' type='xs:string' use='required'/>
<xs:attribute name='name' type='xs:string' use='required'/>
<xs:attribute name='location' type='xs:string' use='optional'/>
<xs:attribute name='basic' type='xs:string' use='optional'/>
<xs:attribute name='generic' type='xs:string' use='optional'/>
<xs:attribute name='specific' type='xs:string' use='optional'/>
<xs:attribute name='type' type='xs:string' use='optional'/>
<xs:attribute name='listening' use='optional'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='frequentListening' use='optional'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='beaming' use='optional'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='routing' use='optional'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='max_baud_rate' type='xs:string' use='optional'/>
<xs:attribute name='version' type='xs:string' use='optional'/>
<xs:attribute name='query_stage' type='xs:string' use='optional'/>
<xs:attribute name='security' use='optional'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='nodeinfosupported' use='optional'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name='Manufacturer'>
<xs:complexType>
<xs:sequence>
<xs:element ref='Driver:Product'/>
</xs:sequence>
<xs:attribute name='id' type='xs:string' use='required'/>
<xs:attribute name='name' type='xs:string' use='required'/>
</xs:complexType>
</xs:element>
<xs:element name='Product'>
<xs:complexType>
<xs:attribute name='type' type='xs:string' use='required'/>
<xs:attribute name='id' type='xs:string' use='required'/>
<xs:attribute name='name' type='xs:string' use='required'/>
</xs:complexType>
</xs:element>
<xs:element name='CommandClasses'>
<xs:complexType>
<xs:sequence>
<xs:element ref='Driver:CommandClass' minOccurs='0' maxOccurs='unbounded'/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name='CommandClass'>
<xs:complexType>
<xs:sequence>
<xs:element ref='Driver:Instance' minOccurs='0' maxOccurs='unbounded'/>
<xs:element ref='Driver:Value' minOccurs='0' maxOccurs='unbounded'/>
<xs:element ref='Driver:Associations' minOccurs='0' maxOccurs='unbounded'/>
</xs:sequence>
<xs:attribute name='id' type='xs:string' use='required'/>
<xs:attribute name='name' type='xs:string' use='required'/>
<xs:attribute name='version' type='xs:string' use='required'/>
<xs:attribute name='after_mark' use='optional'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='create_vars' use='optional'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='getsupported' use='optional'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='request_flags' type='xs:string' use='optional'/>
<xs:attribute name='base' type='xs:string' use='optional'/>
<xs:attribute name='override_precision' type='xs:string' use='optional'/>
</xs:complexType>
</xs:element>
<xs:element name='Instance'>
<xs:complexType>
<xs:attribute name='index' type='xs:string' use='required'/>
</xs:complexType>
</xs:element>
<xs:element name='Value'>
<xs:complexType>
<xs:sequence>
<xs:element ref='Driver:Help' minOccurs='0' maxOccurs='1'/>
<xs:element ref='Driver:Item' minOccurs='0' maxOccurs='unbounded'/>
</xs:sequence>
<xs:attribute name='type' type='xs:string' use='required'/>
<xs:attribute name='genre' type='xs:string' use='required'/>
<xs:attribute name='instance' type='xs:string' use='required'/>
<xs:attribute name='index' type='xs:string' use='required'/>
<xs:attribute name='label' type='xs:string' use='required'/>
<xs:attribute name='units' type='xs:string' use='required'/>
<xs:attribute name='read_only' use='required'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='write_only' use='required'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='verify_changes' use='required'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='poll_intensity' type='xs:string' use='required'/>
<xs:attribute name='min' type='xs:string' use='required'/>
<xs:attribute name='max' type='xs:string' use='required'/>
<xs:attribute name='value' type='xs:string' use='optional'/>
<xs:attribute name='vindex' type='xs:string' use='optional'/>
<xs:attribute name='affects' type='xs:string' use='optional'/>
<xs:attribute name='size' type='xs:string' use='optional'/>
</xs:complexType>
</xs:element>
<xs:element name='Help'>
<xs:complexType mixed='true'>
</xs:complexType>
</xs:element>
<xs:element name='Item'>
<xs:complexType>
<xs:attribute name='label' type='xs:string' use='required'/>
<xs:attribute name='value' type='xs:string' use='required'/>
</xs:complexType>
</xs:element>
<xs:element name='Associations'>
<xs:complexType>
<xs:sequence>
<xs:element ref='Driver:Group' minOccurs='0' maxOccurs='unbounded'/>
</xs:sequence>
<xs:attribute name='num_groups' type='xs:string' use='required'/>
</xs:complexType>
</xs:element>
<xs:element name='Group'>
<xs:complexType>
<xs:sequence>
<xs:element name='Node' minOccurs='0' maxOccurs='unbounded'>
<xs:complexType>
<xs:attribute name='id' type='xs:string' use='required'/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name='index' type='xs:string' use='required'/>
<xs:attribute name='max_associations' type='xs:string' use='required'/>
<xs:attribute name='label' type='xs:string' use='required'/>
<xs:attribute name='auto' use='required'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='true'/>
<xs:enumeration value='false'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>