johnnynine
Active Member
Elve v0.25 is now available for download at http://codecoretechnologies.com with free time-limited licenses during the public beta period.
Previous Elve beta versions EXPIRE TODAY so be sure to upgrade soon to extend your beta license.
In review of the system before our v1.0 release candidate we decided it was necessary to make improvements in some areas which would result in breaking backwards compatibility with the device drivers and some device driver methods and properties. We try to avoid these kinds of changes even during the beta development cycle unless the changes provide a significant improvement. Thank you for your cooperation. Please review the breaking changes below highlighted in red.
Changed TCP/UDP Port Range
* Changed the port range from 12990-12997 to 33900-33907. Although the original ports are not claimed by Avast, we found that some Avast installations use some of these ports so to avoid a conflict we are forced to change the port #'s. This is a breaking change if you have manually configured your network (such as a firewall) for the prior ports. You will also need to adjust the current ports in your Elve Mobile application, and your Windows firewall settings.
New Device Support
* Added Rain8net driver (needs testing)
Device Enhancements
* Elk M1: Added custom value names, counter names, and counter support.
* All Lighting Drivers: Added ''Set Light Level For Duration'' and ''Turn On Light For Duration''.
* Aprilaire: Now supports displaying text messages on the thermostat, button press events (needs more testing), and differential temperature settings.
* Russound: Added tuner power command.
* Nuvo grand concerto: Added paging support.
* All Drivers: Added SetPropertyForDurationAsync method. Because this is an advanced feature it is only available via the scripting language and not as an action in the action list.
* HAI Driver: Added TurnOnOutputForDuration method.
* The file and database log drivers now support disabling logging at timed intervals.
* Breaking Change: We have extended the use of Time Span by changing many driver actions which used to use a seconds or milliseconds parameter. Any action list or script that used these actions/methods needs to be updated. The use of the Time Span parameter provides a better solution and the following driver actions were affected:
** Elk M1 TurnOnOutput action/method which accepted a duration has been renamed to TurnOnOutputForDuration for consistency.
** Changed the Timer's StartTimer method to use Seconds instead of milliseconds.
** Changed the Elk M1's SetKeypadText method which accepts a # of seconds to SetKeypadTextForDuration which now accepts a TimeSpan object.
** Removed the StartTimer method from the Timers driver which accepted a number of seconds. This is a breaking change. Any action list or script that used this action/method needs to be updated.
** The Time and Duration properties on all media player drivers have been changed from a numeric seconds value to a TimeSpan.
** The Nuvo Grand Concerto and Nuvo MPS4 driver's DisplaySourceTrackStatus method has been changed to accept the TimeSpan datatype instead of numeric seconds.
Fixes
* Fixed: The IR library would inadvertently allow duplicate make/models and duplicate code/format/direction entries which would cause an error.
* Fixed: The Extron driver's tie commands were not working.
* Fixed: When learning USB-UIRT codes for receiving the infrared command format was incorrectly set to "Pronto".
* Fixed: Swapping device settings could cause Save button to stay disabled in Elve Management Studio.
* Fixed: The Elve Management Studio Properties grid was not updated automatically when an array property changed (although the array element grid was updated).
* Fixed: Editing an Inner Touch Screen's initial touch screen setting in Touch Screen build would not be remembered.
* Fixed: After updating the IR Library, IR Blaster and Receiver devices can now be restarted automatically so that the changes are recognized by the devices.
Other
* Added Test button to the action list editor window.
* Added a new Advanced tab to Image Browser control.
* Added Driver Pack support.
* Added complier.config configuration file for use when compiling uncompiled drivers.
* Changed the location of where 3rd party drivers should be saved. This is a breaking change. If you use this feature please move the driver files.
* Added new Image data type to scripting language.
* Changed media library drivers GetMediaImage method and media player drivers CoverArt to return an Image instead of ByteArray.
* Added basic support for device property images in touch screen image controls. deviceimage://device/property/index
* Added background image opacity and size mode to the touch screen background.
* Added background image opacity and size mode to touch screen controls with support background images.
* Added Touch Screen Chooser button to the user account details window to select the user's default touch screen.
Driver API
* The SharedLibrary.dll reference has changed to CodecoreTechnologies.Elve.dll. This is a breaking change for driver developers.
* The SharedLibrary namespace has changed to CodecoreTechnologies.Elve.DriverFramework. This is a breaking change for driver developers.
* StartDriver() now returns a boolean indicating if the driver is ready for use. This is a breaking change for driver developers.
* Added IsReady property to manage the driver's Ready state (ready for use).
* Added Driver.GetLogger() method to SDK which returns an ILogger instance.
* Added GetDevicePropertyValue, SetDevicePropertyValue, ToggleBooleanDevicePropertyValue, OffsetNumericDevicePropertyValue, and RunScript which allow accessing other drivers.
* Added SetPropertyAfterDelayAsync and InvokeMethodAfterDelayAsync methods which allow setting a property or invoking a method in the current driver after a period of time (without blocking the thread). And it provides a key so that a previous call's timer can be reset.
* Replaced BaseCommunication.LoggerVerbosity to BaseCommunication.Logger which should be set to the current driver's this.GetLogger(). This is a breaking change for driver developers.
* Added a UdpCommunication class.
* Added a UsbHidCommunication class.
* Changed the TcpCommunication class to be socket based instead of TcpClient based which has shown a 25% performance boost in some drivers.
* Removed old obsolete communication classes and members.
* The StartConnectionMonitoring method on all the communication classes is now an asynchronous/non-blocking call. It previously blocked while making the 1st connection. All serial drivers have been updated for this change. If you need to catch a connection failure you can use Open() or you can use the ConnectionAttemptFailed event. This also means that the Connected property can not be checked immediately after StartConnectionMonitoring() is called. This is a breaking change for driver developers.
Thanks you everyone for your continued support and feedback.
Previous Elve beta versions EXPIRE TODAY so be sure to upgrade soon to extend your beta license.
In review of the system before our v1.0 release candidate we decided it was necessary to make improvements in some areas which would result in breaking backwards compatibility with the device drivers and some device driver methods and properties. We try to avoid these kinds of changes even during the beta development cycle unless the changes provide a significant improvement. Thank you for your cooperation. Please review the breaking changes below highlighted in red.
Changed TCP/UDP Port Range
* Changed the port range from 12990-12997 to 33900-33907. Although the original ports are not claimed by Avast, we found that some Avast installations use some of these ports so to avoid a conflict we are forced to change the port #'s. This is a breaking change if you have manually configured your network (such as a firewall) for the prior ports. You will also need to adjust the current ports in your Elve Mobile application, and your Windows firewall settings.
New Device Support
* Added Rain8net driver (needs testing)
Device Enhancements
* Elk M1: Added custom value names, counter names, and counter support.
* All Lighting Drivers: Added ''Set Light Level For Duration'' and ''Turn On Light For Duration''.
* Aprilaire: Now supports displaying text messages on the thermostat, button press events (needs more testing), and differential temperature settings.
* Russound: Added tuner power command.
* Nuvo grand concerto: Added paging support.
* All Drivers: Added SetPropertyForDurationAsync method. Because this is an advanced feature it is only available via the scripting language and not as an action in the action list.
* HAI Driver: Added TurnOnOutputForDuration method.
* The file and database log drivers now support disabling logging at timed intervals.
* Breaking Change: We have extended the use of Time Span by changing many driver actions which used to use a seconds or milliseconds parameter. Any action list or script that used these actions/methods needs to be updated. The use of the Time Span parameter provides a better solution and the following driver actions were affected:
** Elk M1 TurnOnOutput action/method which accepted a duration has been renamed to TurnOnOutputForDuration for consistency.
** Changed the Timer's StartTimer method to use Seconds instead of milliseconds.
** Changed the Elk M1's SetKeypadText method which accepts a # of seconds to SetKeypadTextForDuration which now accepts a TimeSpan object.
** Removed the StartTimer method from the Timers driver which accepted a number of seconds. This is a breaking change. Any action list or script that used this action/method needs to be updated.
** The Time and Duration properties on all media player drivers have been changed from a numeric seconds value to a TimeSpan.
** The Nuvo Grand Concerto and Nuvo MPS4 driver's DisplaySourceTrackStatus method has been changed to accept the TimeSpan datatype instead of numeric seconds.
Fixes
* Fixed: The IR library would inadvertently allow duplicate make/models and duplicate code/format/direction entries which would cause an error.
* Fixed: The Extron driver's tie commands were not working.
* Fixed: When learning USB-UIRT codes for receiving the infrared command format was incorrectly set to "Pronto".
* Fixed: Swapping device settings could cause Save button to stay disabled in Elve Management Studio.
* Fixed: The Elve Management Studio Properties grid was not updated automatically when an array property changed (although the array element grid was updated).
* Fixed: Editing an Inner Touch Screen's initial touch screen setting in Touch Screen build would not be remembered.
* Fixed: After updating the IR Library, IR Blaster and Receiver devices can now be restarted automatically so that the changes are recognized by the devices.
Other
* Added Test button to the action list editor window.
* Added a new Advanced tab to Image Browser control.
* Added Driver Pack support.
* Added complier.config configuration file for use when compiling uncompiled drivers.
* Changed the location of where 3rd party drivers should be saved. This is a breaking change. If you use this feature please move the driver files.
* Added new Image data type to scripting language.
* Changed media library drivers GetMediaImage method and media player drivers CoverArt to return an Image instead of ByteArray.
* Added basic support for device property images in touch screen image controls. deviceimage://device/property/index
* Added background image opacity and size mode to the touch screen background.
* Added background image opacity and size mode to touch screen controls with support background images.
* Added Touch Screen Chooser button to the user account details window to select the user's default touch screen.
Driver API
* The SharedLibrary.dll reference has changed to CodecoreTechnologies.Elve.dll. This is a breaking change for driver developers.
* The SharedLibrary namespace has changed to CodecoreTechnologies.Elve.DriverFramework. This is a breaking change for driver developers.
* StartDriver() now returns a boolean indicating if the driver is ready for use. This is a breaking change for driver developers.
* Added IsReady property to manage the driver's Ready state (ready for use).
* Added Driver.GetLogger() method to SDK which returns an ILogger instance.
* Added GetDevicePropertyValue, SetDevicePropertyValue, ToggleBooleanDevicePropertyValue, OffsetNumericDevicePropertyValue, and RunScript which allow accessing other drivers.
* Added SetPropertyAfterDelayAsync and InvokeMethodAfterDelayAsync methods which allow setting a property or invoking a method in the current driver after a period of time (without blocking the thread). And it provides a key so that a previous call's timer can be reset.
* Replaced BaseCommunication.LoggerVerbosity to BaseCommunication.Logger which should be set to the current driver's this.GetLogger(). This is a breaking change for driver developers.
* Added a UdpCommunication class.
* Added a UsbHidCommunication class.
* Changed the TcpCommunication class to be socket based instead of TcpClient based which has shown a 25% performance boost in some drivers.
* Removed old obsolete communication classes and members.
* The StartConnectionMonitoring method on all the communication classes is now an asynchronous/non-blocking call. It previously blocked while making the 1st connection. All serial drivers have been updated for this change. If you need to catch a connection failure you can use Open() or you can use the ConnectionAttemptFailed event. This also means that the Connected property can not be checked immediately after StartConnectionMonitoring() is called. This is a breaking change for driver developers.
Thanks you everyone for your continued support and feedback.