v09.01.01 Jan 01, 2009
-initial release

v09.01.02 Jan 06, 2009
-added graphics package from John Siebert
-added Modulo 
-added RoundUp 
-added TriggeredAdd 
-added TriggeredSubtract 
-added TriggeredMultiply 
-added TriggeredDivide 
-added TriggerdCopy

v09.01.03 Jan 13, 2009
-added from Kevin Crabill, Cochrane Supply:
	AvgMinMax: Determines the minimum, maximum and average based on variable amount of inputs.
	NumericLatchCustom:	This is a modification to the existing latch object.  Currently you can only store one value for latching.  
						This object can store the previous X values.  A good example is monthly metering that istriggered at the end of the month.
	NumericLatchObject:	Same as Tridium's Latch object except the out property doesn't have transient flag set so value is maintained through a reboot.
	PingHealthConverter: Takes a BPingHealth input from a driver device and splits it into three different outputs.
	BTimeSplitter: Executes every updateTime and displays the current time in seven different outputs out, hours, minutes, seconds, day, month and year.
	BToggleLatch: This object has two different actions on it.  The latch action sets the out property to true while the unlatch action sets it to false.
	BToggleSwitch: The outputs for Analog and Boolean switch to either the NormalOpen input or the NormalClose input.  This is determined by booleanCmd input.						

v09.01.04 Jan 21, 2009
-added BStatusNumericToStatusStringNoPad: same as niagara numeric to string converter, but no padded 0's before or after the decimal, no decimal if no fraction

V09.02.02 Feb 16, 2009
-added 	BBqlNumericRecap from B. Collins,Electro Controls, Inc.  Executes a BQL query based on the Execute Period for one or more NumericPoint values.  
 					 Object calculates the Count, Average, Minimum, Maxium and Sum of the values returned by the BQL query 
-added BSysInfo, gets system information every X time period.  Linkable!

V09.02.03 Feb 22, 2009
- added from Tucker Watson, Activelogix
  - BTrendAnalyzer - Displays min,max,avg,count for selected trend/history
  
 V09.03.01 Mar 12, 2009
 -added BStatusNumericFifo, takes a status numeric input and puts it into a fifo that shifts with a trigger input.  calculates min/max/avg of buffered values.
 
 V09.04.01 Apr 17, 2009
 - added from Vance Hensley, PCTECHS4U 
   BBooleanCompareCmdStatus, (Note: This has a bug - after station restarts, all go out go true. Anyone want to take a look?) 
	compares the status to the command over the defined time period. If status does not match by the end of the elapsed time from, 
	sets output to true (for alarm).
 - added from Mike Arnott, Kors Engineering
   added BFireOnChange, Accepts a StatusString, StatusNumeric or StatusBoolean input, fires the appropriate event when String changes or Number changes or Boolean changes from False to True.
 
 V09.04.02 May 3, 2009
 -added from Vance Hensley, PCTECHS4U
  StatusBooleanToStatusEnum - takes StatusBoolean input and converts true/false to correct integers for StatusEnum output
  							  via two actions to set True Value & False Value. Handy for LON enums; occupancy is true via "0" (mostly)
  							  but SatSwitchs are often true via "1" or however the controller is programmed.
  BooleanRotateOnExecute - very simple boolean rotation object, use a trigger to execute.
  
  V09.04.03 June 22, 2009
 -added from Vance Hensley, Hoffman Building Technologies
  PeakValueAndTstamp - takes StatusNumeric input and checks for peaks. Includes a String display of the Date/Time Stamp as well.
  							  This object is coded to "Zero Out" at the first of the month.
  							  
V09.07.01 July 6, 2009
-added BAbsTimesToAbsTimeRange, takes two abs time inputs, creates an abs time range output  	
-aded BAbsTimeOffset, takes one abs time and one number as seconds, adds seconds (positive or negative) to time input to create time output.

V09.08.01 August 14, 2009
-added BGetHTTP, simple object to retrieve a web page as a StatusString
-modified BSysInfo, added Heap Total, Heap Used and Heap Free fields						  
-figured out how to add BajaDoc!

V09.09.01 Sept 09, 2009
-bug fix in BFireOnChange, was not passing the value in the "New Numeric Input" event
-added from Christopher Howard, Xen-Com, BHistoryToCSV, exports a history to a CSV file. 

V09.10.01 September 17, 2009: 
Tyler Long, McKenney's Inc.
-added BAvgMinMax_v1: This is a build upon Crabill's AvgMinMax type on version v09.01.03.  Added two inputs to exclude 
	values above and below set points inMaximum and inMinimum. Enabled actions so that the inputs (ie. InMinimum, InMaximum, & inCount)
	may be configured outside of the property sheet.
-added BParentFolderInfo: simple object that gets the parent folder name and outputs it as a String.
-added BSetNumericAction: A lot like the trCopy object, but instead of outputing a numeric, it fires a top that can be linked to the set/override actions of a numeric writable.

V09.11.01 November 6, 2009:
Not released as a jar yet, source only
-added BEnumWithStringOutput: it's an extension of the enumwritable that also accepts a numeric in and has a string output equivalent of the enum value.  

V10.01.01 January 11, 2010:
-added BBitsToStatusNumeric: takes 8 bits in, creates a numeric output from binary

V10.02.01 February 24, 2010:
-added BSetBooleanAction: actions to set a boolean true/false

V10.04.01 April 13,2010
-added StringToFile: writes a status string to a file. Borrowed heavily from the BHistoryToCSV from CMH, thanks!

V10.08.01 August 18, 2010
-added RevolvingTextLabel: widget that scrolls text if it is larger than the label size.  Will also parse delimited text and return a specific index if desired.

V10.08.02 August 31, 2010
-revised BEnumWithStringOutput to eliminate extraneous messages logged in system output

V10.10.01 October 20, 2010
-added BTrendDynamicAnalyzer by Alper Uzmezler, BAS Services: similar to the existing TrendAnalyzer, but uses dynamic time ranges (last month)
-added axCommunity.BEnumFromCommaSepVar: an EnumWritable extension that has a linkable string input you can use to create an enum from a comma separated value list

V10.11.01 November 2, 2010
-modified BAbsTimeToDateParts, added serial time out slot for milliseconds since epoch (1-1-1970)
-added BEpochToAbsTime: used to convert the serial time from BAbsTimeToDateParts back to an AbsTime

V11.03.01 March 22, 2011
-added BChangeCase by Justin Koffler: takes a string in and converts it to all uppercase, all lowercase and title case outputs.
-modified BStatusNumericFifo: nuisance station output removed, handles all 0's better than before (no NaN).

V11.05.01 May 8, 2011
-added BStopwatch by Justin Koffler: the mother of all elapsed timers!

V11.06.01 June 16 2011
-added BFilterExt by Dean Mynott: Drop it onto a BNumericPoint and it will filter the parent's output with a simple but effective filter. start with a value of 5
-added BRelTimeToStatusNumeric by Dean Mynott: rounds BrelTime into Hours, Minutes, Seconds

V11.08.01 Aug 15, 2011
-added BSuperOr by Christopher Howard @ xen-com: This is an OrGate on steriods!  This OrGate can be generated to accommodate any number of points.

V11.09.01 Sept 1, 2011
-revised comments on Kors Engineering submitted objects 

V11.09.02 Sept 1, 2011
-added BStatusStringToFormat by Dean Mynott @ Ronin: Great for bringing out Alarm Extension Text fields to Px Pages
-added BBooleanToggle by Dean Mynott @ Ronin: Toggles ON/OFF via Trigger or Action input

V11.11.01 Nov 15, 2011
-added BSimpleTStat by Murat Egrikavuk as discussed in forum topic 4832
-added BTstatA by Dean Mynott: Tstat with SP and Diff. If Diff >=0 then DirectActing, If Diff < 0 then ReverseActing
-added BTstatB by Dean Mynott: Tstat with onSP and offSP. If onSP >= offSP then DirectActing, If onSP < offSP then ReverseActing

V11.12.01 Dec 05, 2011
-added BBoundLabelHighlight by Dean Mynott: BoundLabel with adjustable highlight colour for mouseOver
-added BDropDownList by Ron Lea @ Firefoxx Controls: A PX ONLY button that pops up a nav menu with up to 20 hyperlinks/labels

V11.12.02 Dec 12, 2011
-added BWhoWhenNumericSetpoint by Mike Arnott: A numeric setpoint object that remembers the username and time of the last change
-added BWhoWhenBooleanSetpoint by Mike Arnott: A boolean setpoint object that remembers the username and time of the last change
-added BWhoWhenStringSetpoint by Mike Arnott: A String setpoint object that remembers the username and time of the last change
-added BWhoWhenEnumSetpoint by Mike Arnott: An enum setpoint object that remembers the username and time of the last change

V11.12.03 Dec 28, 2011
-fixed a bug with the BEnumFromCommaSepVar that was resetting the facets on a restart

V12.02.01 Feb 05, 2012
-added BSuperConcatPlus by Justin Koffler: Allows you to set the number of Status String input slots and the character you want to use as a delimiter.
-added BAsciiHexDecConversion by Justin Koffler: Accepts Status String inputs representing a value in ASCII, Hex or Decimal format and will output its corresponding value in ASCII, Hex and Decimal format.
-fixed a bug in BChangeCase that would cause an out of bounds error when input string was of zero length.

V12.02.02 Feb 05, 2012
-modified BSysInfo to include the "OsName" slot and I also added the action slots "RestartStation" and "RebootStation" 
	which as the name suggests will restart or reboot the station. (modified by: Justin Koffler)

V12.02.03 Feb 10, 2012
-added BLatestNumber by Justin Koffler: Accepts up to 24 Status Numeric inputs and will output the latest 
	value if it meets the minimum required value as configured in the "inMinValue" slot.

V12.02.04 Feb 13, 2012
-modified BAsciiHexDecConversion to include option to delimit the decimal and hex output by a user chosen delimiter. (modified by: Justin Koffler)

V12.02.05 Feb 18, 2012
-added BLatestStringNotMatching by Justin Koffler: Accepts up to 24 Status Numeric inputs and will output the latest value if it 
	meets the minimum required length as configured in the "inMinLength" slot and provided it does not match any values from 
	the slot "inCsvExclusionList".
-modified BLatestNumber by reordering slots so the output slot are at the top.
-modified BLatestNumber to include new slot 'outLastOutputChange' which will display the last time the output slot was updated.
-added BReplaceString by Justin Koffler: Replaces string subset from input string with new value and outputs the results.

V12.02.06 Feb 28, 2012
-added BOneShotBooleanSelect by Justin Koffler: When 'trigger' input or 'fire' action slot are true the value set in the 'inTrue' 
	slot will be represented in the 'out' slot for the amount of time configured in the 'time' slot. When the timer expires the 
	value in the 'inFalse' slot will be represented in the 'out' slot.

V12.03.01 March 2, 2012
-added 	DynamicLinkNumeric by Mike Arnott: A Simple Numeric in/out with an ordIn string - if the ordIn changes the object will try to create or change the in link source to the out slot of the object in ordIn
-added 	DynamicLinkBoolean by Mike Arnott: A Simple Boolean in/out with an ordIn string - if the ordIn changes the object will try to create or change the in link source to the out slot of the object in ordIn
-added 	DynamicLinkString by Mike Arnott: A Simple String in/out with an ordIn string - if the ordIn changes the object will try to create or change the in link source to the out slot of the object in ordIn

V12.03.02 March 6, 2012
-added BOneShotMultiSelect by Justin Koffler: When 'trigger' input or 'fire' action slot are true the value set in the 'inXTrue' 
	slot will be represented in the 'out' slot for the amount of time configured in the 'time' slot. When the timer expires the 
	value in the 'inXFalse' slot will be represented in the 'out' slot.
	
V12.03.03 March 15, 2012
-added BEventAtTime by Mike Arnott: Object accepts time of day as hours, minutes, seconds or a time string.  Fires an event (topic) at that time. 

V12.03.04 March 16, 2012
-modified BEventAtTime by Mike Arnott: Added timeOffset BRelTime to allow timezone or other offsets to the event time.
-added BEnumFromMultiString by Mike Arnott: An Enum extension that lets you input a variable number of statusstrings that become the
	enum facets.    
	
V12.03.05 March 28, 2012
-added a new view for the BSysInfo object, BSysInfoView by Mike Arnott:  Learned how to create a custom workbench view for an object!
	My graphics ability stinks - someone please, make it prettier!
	Note: added new dependancy on the converters.jar <dependency name="converters" />
	
V12.03.06 March 30, 2012
-modified BStringToFile by Mike Arnott: added threading to file write to avoid possible network share causing WD Timeout

V12.04.01 April 4, 2012
-moved the BSysInfoView to new package, org.axcommunity.niagara.views
-added BSetBooleanActionView by Mike Arnott: a workbench view of the BSetBooleanAction button that works like a momentary pushbutton.  
	Finally, a momentary PB in Niagara!

V12.04.02 April 15, 2012
-Minor tweaks to eliminate some unused code in the following objects: BLatestNumber, BLatestStringNotMatching, BOneShotBooleanSelect, 
	BOneShotMultiSelect, BReplaceString, BSuperConcatPlus.

V12.04.03 April 24, 2012
-Added status boolean slots "outSuccess" and "outFail" to BStringToFile.

V12.04.04 April 29, 2012
-Added logging to BSuperOr to find cause of null exception errors I was getting on station restarts.
-Modified logic of BSuperOr to eliminate the infinite 1 second delay loop upon first execution.
-Moved the onExecute processes in BSuperOr to a new method named onCalculate to help with the infinite loop issue.
-Modified logic of BSuperOr to NOT allow the onCalculate processes to take place if the system was not in a running 
	state (this is where I was getting the null exception errors before I added this).  - Justin Koffler

V12.05.01 May 10, 2012
- Modified 'BLatestStringNotMatching' to include new slot 'inUseExclusionList' with a default value of true.
- Modified 'BBooleanRotateOnExecute' by removing the TRANSIENT flag on the 'out' slot so it would retain its value 
	upon station restart. - Justin Koffler

V12.05.02 May 14, 2012
- Modified 'BAvgMinMax_v1' to include new slot 'sum' that is the sum of all the 'in' slots within the min/max range.
- Modified 'BAvgMinMax' to include new slot 'sum' that is the sum of all the 'in' slots.
- Modified 'BAvgMinMax' & 'BAvgMinMax_v1' so that it will only call the 'createOutput' method when a new value is written 
	to one of the 'in' slots.
- Modified 'BAvgMinMax' & 'BAvgMinMax_v1' to include new topic slot 'Calculated' that will fire when a new value is written 
	to an 'in' slot and the new output values have been calculated. - Justin Koffler

V12.06.01 June 3, 2012
- Modified 'BAsciiHexDecConversion' to fix an error that would occur if the decimal or Hex input included commas. 
- Modified 'BAsciiHexDecConversion' to fix an issue that when the ascii, decimal and hex inputs were blank the outputs would not change. 
	The outputs will not reflect the inputs when the inputs are blank.
- Modified 'BAsciiHexDecConversion' by adding two slots 'inBytesLong' and 'inUseBytesLong' which can be used to set pad or truncate 
	the decimal and hex output to a specified byte length. Also when used the outputs of the decimal and hex slots will contain zeros 
	to null the byte. - Justin Koffler
- Modified 'BSuperConcatPlus' to eliminate error thrown if all input slots are blank and the 'concatenate' action is triggered.
- Added BUnAckAlarmState extension - provides Alarm Ack on parent point of Unacked Alarm - Dean Mynott 

V12.06.02 June 29, 2012
- Modified 'BFireOnChange' by adding try|catch block to changed method and added error level logging when exception is caught.

V12.07.01 July 10, 2012
- MODIFIED BTstatA extension – reverse acting version. Goes ‘on’ at Setpoint - differential, and ‘off’ at Setpoint - Dean Mynott
- ADDED    BLimitOutput – takes StatusNumeric input and applies high and  low limits. Ignores limits if they are null - Dean Mynott

V12.07.02 July 14, 2012
- Added new object BStopwatch_v2 as a replacement for BStopwatch. The first version didn't seem to work very well but in case anyone 
	is actively using it I didn't want to make drastic modifications and screw up any of their logic so I made a new one. - Justin Koffler
- Alphabetized most of the palette, sorry this was driving me nuts but hope this doesn't confuse anyone. - Justin Koffler

V12.09.01 September 23, 2012
- Modified 'BBqlNumericRecap' to include a few new slots and logic to support them. 
	New slots include: queryAndCalculate, calculating, lastQuery, error, calculated, errorOccured.>>>>>>> .r131

V12.09.02 Sept 26, 2012
- MODIFIED BDynamicTrendAnalyzer - made the TimeRange property non-transient. - Mike Arnott
- ADDED    BFilterLogMeanExt - new filter using a LogMean method to approach an average. Low filter values have an excellent step response.
           Higher values offer very smoot out put at the expense of response time... but still great. - Dean Mynott

V13.01.01 January 20, 2013
- MODIFIED 'BSysInfo' to include four new slots: 'ipAddress', 'hostName', 'domain' and 'fqdn'. - Justin Koffler

V13.01.02 January 28, 2013
- MODIFIED 'BWhoWhenBooleanSetpoint' to include new slots: 'SetTrue' (action), 'SetFalse' (action), 
	'outLogString' (status string), 'Value' (topic), 'LogString' (topic) and   'absTimeFacets' (facet) 
	and fixed logic so that facets are applied. - Justin Koffler
- MODIFIED 'BWhoWhenStringSetpoint' to include new slots: 'outLogString' (status string), 'Value' (topic), 'LogString' (topic) and 'absTimeFacets' (facet) - Justin Koffler

V13.02.01 Feb 7, 2013
- ADDED BRevolvingTextLabel2 as an ehnanced version of the BRevolvingTextLabel by Eric Bishop, TMT:
	-	Fixed the default height so that it defaults to the height of the font
	-	Removed the default colors, so it doesn’t constantly revert to a green background.
	-	Added scroll speed setting.
	-	Added an optional pause at the beginning of the string.
	-	Added end-of-string input (to change from the default “…”).

V13.03.01 March 20, 2013
- ADDED BScale - Numeric point extension which scales the output
- ADDED BBrushSwitch - Switches between two brushes using a boolean input
- ADDED BSetBrushAction - Fires a brush event
- ADDED BSetFontAction - Fires a brush event
- ADDED BFontSwitch - Switches between two fonts using a boolean input
- ADDED BWhoWhenBrushSetpoint - Brush setpoint that monitors when the last change was made and who made it
- ADDED BWhoWhenFontSetpoint - Font setpoint that monitors when the last change was made and who made it


V13.04.01 April 3, 2013
- MODIFIED BSysInfo to better handle errors thrown by getLocalHost() based commands
- ADDED BFireFoxxWeather - a new weather object that uses the Yahoo weather API.  The weather module is accessing Yahoo weather, there is a drop down list for western Canada.  
	For those people in the rest of the world, they will have to lookup the city code and enter it manually.  By Ron Lea (FireFoxx).
	
	
V13.04.02 April 3, 2013
- FIXED BFireFoxxWeather always reverted to the N. Canada location selected in the dropdown listbox.  Added a new choice for "Other" - you have to use that to manually put in other locations.	
	
V13.04.03 April 17, 2013
- FIXED BFireFoxxWeather now works in a versions < 3.5

V13.09.01 September 5, 2013
- MODIFIED BSysInfo to separate inet calls into new thread - was causing issues with some systems
- MODIFIED several objects to remove unused imports

V14.07.02 July 22, 2014
- ADDED BFileTOImage - input is a string containing a file ord, output is a BImage that can be used to animate px objects
- ADDED BNumericConstantAdjustable - an extension of the NumbericConstant that has math actions that can be used to adjust the output (add, sub, mult, div) by an entered double

V14.08.24 August 24, 2014
- MODIFIED BStatusEnumToStatusString to include new slot 'inputMustBeEnumWritable' and when true the link to slot 'enumIn' will not be required to be a EnumWritable - Justin Koffler
- MODIFIED BDynamicLinkString, BDynamicLinkNumeric and BDynamicLinkBoolean to include new action slot 'UpdateLink' that when triggered will force the dynamic link to update. I also added trace and error level console logging. - Justin Koffler

V14.09.01 September 25, 2014
- MODIFIED BBqlNumericRecap to support queries where the datatype of the column to be analyzed is a BSimple (aggregates for example)