Changelog for honeywellGalaxy
-----------------------------
100) Workaround for framework bug which was stopping zone
points for being polled when they are added to a
running station.
---- Release 1.0.0.0 ----
099) Updated documentation for the driver.
098) Tidied comments.
097) Do not set device status to fault if version command
fails - to cope with older ethernet boards.
096) Restructured device/panel alarm logic as requested by
Tridium. Code now raises offnormal and tonormal alarm
for the panel alarm state object.
095) Remove zones 513 to 520 - these were added making an
assumption about the protocol which is incorrect.
094) Changed vendor to Tridium. Added documentation tree.
Added top-level build script. Documentation yet to be
written.
093) Force zone points to always be subscribed / polled.
---- Forth version given to Tridium for testing 08/02/2010 ----
092) Version number updated to mark release to Tridium.
091) Updated zone points to have dynamic actions for writing
to them. Alarms that were previously logged at the device
level are now logged to the "panel" object instead.
090) Fixed license "none" problem for device and point limits.
089) Fixed alarm source name problem for device, proxy extension
and panel objects.
---- Third version given to Tridium for testing 04/02/2010 ----
088) Version number updated to mark release to Tridium following
change 087.
087) Code added to provide write support for zone points.
This partially works, but due to there being three
commands to write to a zone points, a problem exists
with this version... The out slot for zones already has
an enum type, and this is not compatible with the
enum type needed by the in slot[s]. This needs to be
discussed with Tridium.
086) Version number updated to mark release to Tridium.
085) Hid the discovery folder property in the point device
extension.
084) Changed slots using BDynamicEnum to BStatusEnum.
083) Added new property "Panel" under the device class. Moved
properties from device to "panel" as requested. Added
alarm source and property panelAlarmStatus. Added code to
examine all zone points alarm bits and to set or clear
the panelAlarmStatus property as applicable. If any zone
alarm bit is 1 then the staus is set to alarm, if all
are 0 it is set to ok. Added code in zone reponse handler
to print message if zone state cannot be determined.
082) Removed alarm source "source name" property from the point
manager view - it can be added by the user if required.
It is still present on the edit dialog.
081) Zone points "alarm bit" now drives the points "out" slot
bstatus value to "alarm" if 1, or to "ok" if 0.
080) Group points "alarm bit" now drives the points "out" slot
bstatus value to "alarm" if ALARM or RESET REQUIRED,
or to "ok" if NORMAL.
079) Group points had read/write fields in the pointId class
by mistake - these are now read-only.
078) Zone points changed to only update the "out" slot of the
point after the "fault" bit has been read from the device.
This ensures that all values of the "out" slot should be
valid, to prevent any transient values being shown from
partly read data.
077) All Enum types that extend BFrozenEnum now include method
getDisplayTag to return string values for each ordinal
value - the strings are read in from the lexicon.
076) License code updated following comments from Tridium.
Vendor is tridium. Code now checks number of devices
and points in the station against the license limits.
075) Added license checking code to the Network class.
---- Second version given to Tridium for testing 27/01/2010 ----
074) Version number updated to mark release to Tridium.
073) Zone points changed as per Andrew Jackson's request. Out
slot is now an enum type. Slots renamed as requested, and
changed to boolean from integer.
072) Group points changed as per Andrew Jackson's request. Redundant
copy of setState property removed. AlarmState and ReadyState
properties changed to enum types.
071) Changed alarm class string property to use BAlarmSourceInfo
and extended point manager view to show the Alarm Class and
Source Name properties in the view / edit dialog. The Source
Name defaults to %parent.parent.displayName% and the other
text fields for the alarm have no default value.
070) Added BStatus + fault cause properties to the UserProfile
class. Class now implements BIStatus interface. Read/write
code now updates the status / fault cause properties as
applicable.
069) ProxyExtension alarm class now has MGR_INCLUDE facets.
068) Moved tcp port properties from ethernet network to its main
communicator.
067) Overrode network.getNavChildren to make the frozen device
property appear in the tree view under the network. Removed
property unitNumber from DeviceId class. Stopped the NEW
FOLDER button being hidden in the point manager view.
066) Device properties logged on, time/date, panel version are
now transient.
065) Base network class is now abstract to prevent it showing
in the device manager view.
064) TODO.txt updated to include actions / items raised at
meeting with Tridium on 20/01/2010
---- Initial version given to Tridium for testing 19/01/2010 ----
063) Updated TODO.txt detailing outstanding items.
062) Procedure for setting up Galaxy Demo Case for SIA control
updated following dry run.
061) Corrected type in zone lookup code.
060) Trace suppressed in various places.
059) Added points for "outputs" and code to read/write them.
Outputs 1 to 256 work OK, there are protocol related
questions for outputs 257 to 260 which have been sent
to Honeywell.
058) Point discover job now provides 520 zone points. Code updated
to poll values for points 513 to 768 in addition to 1 to 512.
Code added to convert four digit zone numbers to three digit
zone numbers. Alarm code updated to decode zone number
correctly for both three digit and four digit numbers.
Alarm code updated as per Tridium's request.
057) Made group points writeable. Changed device action to only
allow writing to all groups. To write to individual groups
use the group point. Group points are now enums. Zone
points are now boolean.
056) Added comments indicating what to change next to allow
group points to be writable.
055) Updated to poll groups in same way as zones.
054) Updated to set the value[s] of the zone bits following
read via poll scheduler. The values are also copied to the
control point for use on wire-sheets.
053) Added custom poll scheduler to cater for points which
require multiple field-bus requests to get their value,
for example zones and groups. This currently sends the
requests for zones correctly, but does not yet update the
value of the point based on the reply.
052) Updated alarm code based on example from David @ Tridium.
There are issues with this, which he is looking at.
051) Source of alarms is now identified to a point, for zones,
or device for other alarm types. NOTE: if a point does not
exist in the station the device is used as the source for
zone alarms.
050) Points are now named correctly when added to the station
database. List of points now includes groups 1 to 32 and
zones 1 to 512.
049) Added point discover code + supporting code. Currently it
discovers dummy points only.
048) Treat / parse NEW event and OLD event packets the same way.
047) Change trace to use logger.
046) Receiver timeout set to 3 seconds - the panel sometimes
takes a while to respond, and this stops requests being
sent multiple times. Note: no timing information is
available in the documentation.
045) Fix ethernet network / ports to work when added to a new
station. User only has to enter IP address now.
044) Modified Unsolicited Message Handler to accept either
N blocks or O blocks inside events.
043) Hid the event communicator under the ethernet network.
Now changes to the IP address of the primary communicator
are automatically propogated to the event communicator.
Added property SIAEventPort to the ethernet network,
and this is also propogated to the event communicator
when it is changed.
042) Added TcpSocketManager and supporting code to make the
event socket act as a socket server. Events can now be
received by ethernet and serial networks.
041) Refactor ethernet network to have two communicators
instead of three. Added custom tcp socket manager to
make socket act as server instead of client. Need to
add custom transaction manager to make socket open
at startup instead of when first packet is transmitted.
040) Correct off by one error in set date for month.
039) Simulator updated to listen for connections from panel
for SIA events - this proves that the panel is a socket
client, not server, and that the port is bi-directional.
I.E. no longer need read-only/write-only pair of
communicators - just a single server socket...
038) Date / Time field now uses BAbsTime. Version + Date/Time
updated after each ping. Device fault cause no longer set
to OK following successfull commands.
037) Changed PIN fields to be of type BPassword.
036) Added custom device manager view with no buttons.
035) Added TODO.txt file listing outstanding items/questions
to discuss with Honeywell / Tridium.
034) Implemented action to allow set/unset/reset of groups.
Need to query Honeywell about groups and how they are
setup on the panel.
033) Updated code to save user profile to the panel.
032) Modify all methods that decode read packets to pass a
read context to the property setter to prevent values
being written back to the panel after a read.
031) Implemented setting time and date on the panel.
030) Implemented code to read time and date from the panel.
029) Reset device status and fault cause to "OK" after reading
a valid reply to a control command.
028) Tidied warnings for unused imports / variables.
027) Added UnsolicitiedResponseHandler class and connected it
to both the serial and ethernet communicators. Added code
to parse alarm events from the panel and raise them as
Niagara alarms. Checked in before asking questions to
Honeywell about these alarms as they do not appear to be
consistent with the protocol document. Added vendor supplied
Rabbit Programmer + firmware.
026) Added error checking in command response decoder. If
the block code in the reply is not as expected the device
is set to fault, and the fault cause is set to a suitable
error message. Added vendor supplied firmware files and
tools.
025) Implemented code to write the user profile back to the
panel when it is changed in Niagara. NOTE: this code
has been checked into SVN in a disabled mode as it has
not yet been fully tested.
024) The tagcode field in the user profile is now correctly
decoded from BCD format to string format.
023) Implemented action to read the unset/set/part set state
of an individual group.
022) Added code to decode the user profile block returned by
the panel - there are still some fields in this reply that
need additional explanation by Honeywell.
021) Implemented action to read a user profile. The reply is
just printed currently - it needs decoding into a struct
and storing as a property under device.
020) Implemented additional commands to read all status bits
for groups.
019) Implemented action to read the panel version. NOTE the
reply is a REJECT packet, Honeywell have been emailed
for advise on this.
018) Added remoteServicesPin property to the device object and
modified ping logic to it.
017) Implemented action to read all zone statuses information
for zones 1 to 256 and 257 to 512.
016) Implemented action to read all groups current statuses.
015) Disabled network level ping/upload/download actions, and
device level upload/download actions as this is not
applicable for this driver. Added device action to allow
control commands to be sent for test purposes.
014) Modified to send PIN Log On command every 4 minutes and
updated code to work with the Galaxy demo case instead of
the simulator.
013) Added user manual and installation manual to vendor docs.
Added class to map EV (event code) to event description.
012) Added vendor protocol documents to SVN.
011) Added class + methods to construct all types of SIA Control
and Request commands.
010) Driver now sends back "ACK" replies to the "ID", "N" and "A"
blocks sent by the panel simulator.
009) Panel simulator now sends three packets in a row, an "ID"
block, then a "N" block, then a "A" block. This simulates
and event being sent by the panel. The receiver side of the
driver correctly decodes all packets in this sequence.
008) Added code to simulator to send packets using the block "ID"
to send a "site identifier". The ethernet receiver side now
correctly reads and decodes these packets.
007) Added various methods to create packets, verify received packets
and verify size of packets.
006) Modified the extra two tcp communicators to make one read-only
and one write-only. The read-only one works OK, but the
write-only one causes errors when written to, as it is still
trying to read a reply, despite using write-only request
objects. Need input from Tridium for this.
005) Added two more tcp communicators to the ethernet object.
One of these is to be used to read events from panels, and
the other is to be used to send ACK messages for each event.
004) Added method to create a packet according to the rules in the
protocol specification. This includes header byte, block code
byte, data payload and checksum byte.
003) Now sends a fake ping message to both serial and tcp networks
proving that the driver is capable of using both.
002) Updated as per example from Tridium for driver using both
serial and ethernet communicators.
001) Added to SVN repository after creation by Niagara Wizard.
Copyright © 2000-2014 Tridium Inc. All rights reserved.