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.