Commit graph

150 commits

Author SHA1 Message Date
glsatz@gmail.com
a0c010c280 Fix ThermostatSetpoint base offset. Some thermstats assume the setpoints
start counting from index 0 and others index 1 so XML configuration is
needed to show the difference.
2011-12-17 07:25:05 +00:00
glsatz@gmail.com
0cd2338b65 Fix crash when help text is empty.
Fix crash when thermostat mode list is empty. Root cause of thermostat
mode list being empty isn't addressed. Lost packets need some form of recovery
mechamism.
Update badly formatted xml in trane devices.
2011-12-17 01:00:59 +00:00
pnaulls@gmail.com
930edeedd1 Need to unlock serial device at close, otherwise there may be problems
reopening it later.
2011-12-08 21:56:05 +00:00
glsatz
615de51616 Prevent MultiInstance crash from classes not found in the node. Patch by
hari@vt100.at
Add more controller commands to the list.
Add another Intermatic device.
2011-11-24 05:34:17 +00:00
glsatz
bcb3b708b8 Patch from Justin Hammond <justin@dynam.ac>:
This first one is to allow you to Specify your own custom logging Class
implemented via replacing the Platform Log class. Simply it just replaces
the existing Platform Log Class in the m_pImpl  variable (in the Log Class)
with the supplied Class instead. . There is also a Abstract Class called
i_LogImpl that your custom logging must be based on. 

The reason I've had to implement this, is that the device that will end up
hosting the application is based on Flash Storage, and I don't want to wear
out my Flash. My Current Logging infra is based on Log4cxx which can stream
Logs over the network instead (via Syslog, XML etc)
2011-10-26 05:44:38 +00:00
glsatz
cab4ad137e Make sure precision is zero to start. 2011-10-24 04:12:00 +00:00
glsatz
a6d5bfac55 Node::GetEndPointDeviceClassLabel now defaults to printing numbers if xml
cannot be located.
Add a Manager::GetValueFloatPrecision call that returns precision
information from the device. Only works with Decimal value types.
2011-10-24 03:41:25 +00:00
pnaulls@gmail.com
10dd34f55e Comment out time stuff, pending Windows solution. 2011-10-21 14:57:42 +00:00
glsatz@gmail.com
4e32d4dcb0 Attempt to prevent obscure case where an APPLICATION_COMMAND_HANDLER
message from another node using the same command class we are waiting for
is mistakenly accepted. Now actually check node number to the response.
2011-10-20 18:43:36 +00:00
glsatz
e987015885 Increase field size of the instance values in the ValueID class from 2 to 8
bits. ValueID is now a 64 bit value instead of 32 bits.
2011-10-19 22:35:43 +00:00
pnaulls@gmail.com
d94fb05f5f Last fix was still wrong, sorry 2011-10-19 16:42:29 +00:00
pnaulls@gmail.com
4714bcb605 Remove inadvertant change 2011-10-19 02:10:00 +00:00
pnaulls@gmail.com
8f090e5179 A number of pending changes I have.
- Report time lost to timeouts.
- Make the retry number configurable (as a #define)
- Refuse to write a config with a zero home ID, which can happen in weird cases.
2011-10-18 22:11:17 +00:00
pnaulls@gmail.com
0832f85d2b I forgot to include this line of code back in r307 for notify transactions configuration. 2011-10-18 15:40:24 +00:00
glsatz
11c8e619e0 Log number of instances. 2011-10-18 13:29:10 +00:00
pnaulls@gmail.com
91c03fcd07 As per fan modes, ignore reported modes that we don't know
about.
2011-10-17 23:15:27 +00:00
daviebdawg@gmail.com
af6bbb7027 Fix setting config param with value="list" 2011-10-15 20:57:43 +00:00
pnaulls@gmail.com
7835b99943 Don't try and add unknown fan modes to avoid a crash. There may be more
to this issue; discussion with Greg in progress.
2011-10-14 18:50:38 +00:00
glsatz
fe3cb460c3 Folow on to the splitting of the ManufacturerSpecific query stages. During
the first ManufacturerSpecific query stage, only process protocol specific
device configuratin from the xml file. During the second
ManufacturerSpecific query stage, process the CommandClass data.
2011-10-14 18:45:13 +00:00
daviebdawg@gmail.com
adc7c74e30 Fix copy-paste errors in file comments 2011-10-09 20:49:49 +00:00
daviebdawg@gmail.com
a96ce23bdd Fix handling bool config params 2011-10-09 20:09:46 +00:00
daviebdawg@gmail.com
16a9d6362b Fix 'Invalid type' when reading config param of value="list" 2011-10-09 18:49:01 +00:00
glsatz@gmail.com
6d4f8e3003 Add Soft Reset to list of controller commands. 2011-10-07 15:33:12 +00:00
glsatz
daf4dbceae More devices from tjko <oh6lxv@gmail.com>
Add device configuration option not to send a Node Protocol Request. See
act/lfm20.xml for an example of configuration syntax. Requires adding a new
query phase to obtain manufacturer information prior to sending Node
Protocol Request.
2011-10-07 04:35:13 +00:00
pnaulls@gmail.com
09e983423c Return empty string instead of NULL from node query methods. This
avoids breakage for non-existent nodes.
2011-10-06 16:45:26 +00:00
pnaulls@gmail.com
d76750a616 Defer polling until query process complete. Otherwise
we risk interferring with query repsonses.
2011-10-06 16:27:42 +00:00
dscottmiller3@gmail.com
9aa8590b35 2011-10-05 19:57:52 +00:00
glsatz
e26bf3ba46 Make controller check more specific to catch misconfigured devices on
waiting for sleeping devices to wake up.
2011-10-01 17:54:12 +00:00
glsatz
84be318dce 2011-09-30 05:01:29 +00:00
glsatz
38f7d10cdf Add a RequestNodeDynamic routine that will query the node's dynamic values
similarly to how the query state does it. Remove Driver RequestNodeState
function and use AddQuery in Manager.cpp instead. All Request/Refresh Node
functions return bool.
2011-09-30 05:00:44 +00:00
Maarten Damen
2c2db925e9 Minor fixes for MinGW. Compiling against third party extensions didn't work out as expected. 2011-09-28 18:24:25 +00:00
Maarten Damen
beca1dbd73 Added support for MinGW compiler. MinGW is a minimalist GNU compiler for Windows.
A new Makefile has been added, and specific fixes for the MinGW compiler.
2011-09-28 15:45:53 +00:00
glsatz
5f4a9149e7 Skip first message on send queue if it exists when inserting new
message. This prevents the situation where a low priority message is at the
top of the send queue but is ready to be removed. Before removal a high
priority message gets added to the send queue but would be put at the head
of the queue in front of the soon to be expired low priority message. The
unsent high priority message gets removed and the low priority message gets
resent.
2011-09-25 05:45:57 +00:00
glsatz
10a207fdec Actually check the flag to send the Version command class get. 2011-09-21 16:19:22 +00:00
glsatz
4479d7037f Add extra configuration for devices that do not support the Version command
class get functions. classgetsupported="false".
Add device Leviton RZI10 xml that doesn't support Version command class
get.
2011-09-21 15:39:44 +00:00
glsatz
a83fc7f5fe Configuration parameter values need stricter type/data size handling so:
add optional size paramater to Manager::SetConfigParam which is only used
if no type is available from the xml configuration file. It defaults to 2.
Manager::SetValue also handles proper size.
More statistics counters.
2011-09-21 04:32:36 +00:00
glsatz
88810540ef Use correct command value in RequestValue(). Kudos to burkpojken@gmail.com 2011-09-02 02:06:47 +00:00
glsatz
444cd06535 Add promiscuous message handling but left commented out.
Added tracking and returning driver specific message count and error data. see Manager::GetDriverStatistics
Random formatting changes for consistency.
Class SensorMultilevel will use multiple indexes for multiple sensors.
Node::GetNeighbors will only return valid data. Wait for proper query stage to complete.
On Driver shutdown stop threads then remove controller object.
Add extra comments to Driver::IsControllerCommand so we can better track commands.
Update Mac OS X example Main.cpp to be consistent with Linux version. Handle more notifications
and add a thread to wait for query completion.
Add statistics print out to both Linux and Mac OS X example apps.
Fix Mac hidapi to terminate its background CFRunLoop upon hid_close.
2011-08-16 20:25:14 +00:00
pnaulls@gmail.com
0199d54067 Misc grammar fixes. 2011-08-16 16:28:23 +00:00
pnaulls@gmail.com
796ac08fa6 Instead of the overhead of looking up the NotifyTransactions
option each time, just do it once.
2011-08-16 16:26:57 +00:00
glsatz
e3cea15dfd Fix Meter class multiple values retrieval and make value creation
consistent across multiple instances.
Fix gcc compile warning.
2011-08-11 22:01:35 +00:00
google@lansell.org
50755a7a0d Additional MultiInstance support. Messages can now be marked with an instance, and the content will be modified when the message is finalized. This simplifies adding multi-instance support to SetValue and RequestValue calls. Removed optional arguments from the RequestValue methods to avoid mistakes. 2011-08-11 18:24:30 +00:00
glsatz
3da39186ef More debugging to track query state.
Change the RequestState/RequestValue protocol to handle the case where
there is nothing to send. Must return true only if a message was sent so
the query state machine can track properly.
2011-08-10 17:27:42 +00:00
glsatz
c8f8569bbe Address numerous Meter V2+ class issues. MultiInstance support isn't
complete yet.
2011-08-10 03:05:01 +00:00
glsatz
a08a9e545c Add write only option to class variable creation including xml support.
xml name is 'write_only'.
Some Aeon Labs configuration variables affect other variables. Add an xml
'affects' options which takes as its argument a list of configuration
parameter numbers or the keyword all.
Create a node method to request dynamic variables so button releases and
hails can cause a refresh.
Fixed bug in CommandClass::ExtractValue where sign wasn't being taken from
the proper byte offset in the case of Meter V2 or higher messages.
Some thermostats start counting setpoint types at bit 0 instead of bit
1. Add an xml option called 'base' so the proper offset is used.
Add missing m_queryStageCompleted settings in Driver and Meter.
Attempt to add default values to the Trane xml configuration.
2011-08-09 07:48:22 +00:00
glsatz@gmail.com
172e8945c1 Fixed Association query. 2011-08-09 03:35:58 +00:00
glsatz
c4e92a11c9 Create a new node boolean variable m_queryStageCompleted that tracks the
status of the  current query response. This means  m_queryRetries is only a
retry counter.  All the  classes and places  where queries succeed  or fail
must update this variable.

Extra debugging left in this version as there will most likely be query
bugs due to this change.

Generate a log message when reading class variables from xml configuration
files without values.

Comment out unused variables in Meter.cpp since the stringent compilation
flags of gcc creates an error.

Random formatting changes to be consistent.
2011-08-09 02:53:54 +00:00
google@lansell.org
7d6054dda4 Fixed error in requesting multiple scales from a meter 2011-08-08 22:40:50 +00:00
google@lansell.org
815ab21793 Meter command class support for versions 2 and 3. 2011-08-08 22:34:41 +00:00
glsatz
b01d63f4c2 Change types to conform to proper specs for c++ string handling return values. From dev@fahrradbibliothek.de 2011-08-08 17:00:33 +00:00