johnnynine
Active Member
Elve v0.26 is now available for download at http://codecoretechnologies.com with free time-limited licenses during the public beta period.
Major Event Engine Changes
Elve has received a major overhaul to the device event system architecture and now supports notifying other devices when device events occur. Future updates will send notifications to other Elve components as well such as touch screens. Device driver developers have also been presented with a simpler way to raise events.
Devices no longer need to be restarted when a rules is added or removed to one of the device's events.
TESTING TESTING TESTING
Every custom event in Elve was changed during the event system overhaul so every custom event needs to be retested. Most events are device property change events which have not been changed so they shouldn't need retesting. You can "usually" tell the difference because custom events "usually" do NOT have a name that ends with "Changed". So the gist is that any event that does NOT end with the word "Changed" needs to be tested with different whenever filters if applicable. The easiest way to do this is to create a new rule and check the "Record each time this rule is run to the log" checkbox. Then check the log when the rule should or shouldn't run.
Breaking Changes for Driver Developers
Due to the device event system architecture changes, drivers which use custom events needed to be updated. Every driver which is included in the Elve installation HAS been upgraded. If you submitted a driver for inclusion in Elve and the driver uses custom events please send me a PM and I will send you the latest source code for your driver.
Change Log
Rules
* The EMS Rules form now prevents adding a rule with a duplicate name.
* Rules can now be saved and removed without restarting the driver.
* Rules can now be removed without reloading the rules list from the master service.
* Fixed: After removing a rule the window no longer shows the old rule details.
Driver SDK
* Device driver event's must now be declared using the DriverEvent datatype, as opposed to an ICollection<IRule>.
* Added HandleAddedRule() and HandleRemovedRule() to the Driver class to optionally allow drivers to react to new/removed rules.
* Added HandleDeviceEvent() method to Driver class to optionally allow drivers to react to events occurring in other drivers.
* Added RaiseDeviceEvent() method to Driver class to execute associated rules with matching event parameters and notifying other devices and components that the event has occurred.
* Removed InitializeRules() from the Driver class since HandleAddedRule() and HandleRemovedRule() were added.
Other
* Fixed: A FileNotFoundException or SocketException would cause the error logging system to throw an InvalidCastException.
* Errors when assigning device settings now log which setting has an issue.
* Fixed: A few Elk M1 events did not allow leaving an event parameter blank.
* Fixed: Rules for the UPB DeactivatedLink event were not being executed.
Major Event Engine Changes
Elve has received a major overhaul to the device event system architecture and now supports notifying other devices when device events occur. Future updates will send notifications to other Elve components as well such as touch screens. Device driver developers have also been presented with a simpler way to raise events.
Devices no longer need to be restarted when a rules is added or removed to one of the device's events.
TESTING TESTING TESTING
Every custom event in Elve was changed during the event system overhaul so every custom event needs to be retested. Most events are device property change events which have not been changed so they shouldn't need retesting. You can "usually" tell the difference because custom events "usually" do NOT have a name that ends with "Changed". So the gist is that any event that does NOT end with the word "Changed" needs to be tested with different whenever filters if applicable. The easiest way to do this is to create a new rule and check the "Record each time this rule is run to the log" checkbox. Then check the log when the rule should or shouldn't run.
Breaking Changes for Driver Developers
Due to the device event system architecture changes, drivers which use custom events needed to be updated. Every driver which is included in the Elve installation HAS been upgraded. If you submitted a driver for inclusion in Elve and the driver uses custom events please send me a PM and I will send you the latest source code for your driver.
Change Log
Rules
* The EMS Rules form now prevents adding a rule with a duplicate name.
* Rules can now be saved and removed without restarting the driver.
* Rules can now be removed without reloading the rules list from the master service.
* Fixed: After removing a rule the window no longer shows the old rule details.
Driver SDK
* Device driver event's must now be declared using the DriverEvent datatype, as opposed to an ICollection<IRule>.
* Added HandleAddedRule() and HandleRemovedRule() to the Driver class to optionally allow drivers to react to new/removed rules.
* Added HandleDeviceEvent() method to Driver class to optionally allow drivers to react to events occurring in other drivers.
* Added RaiseDeviceEvent() method to Driver class to execute associated rules with matching event parameters and notifying other devices and components that the event has occurred.
* Removed InitializeRules() from the Driver class since HandleAddedRule() and HandleRemovedRule() were added.
Other
* Fixed: A FileNotFoundException or SocketException would cause the error logging system to throw an InvalidCastException.
* Errors when assigning device settings now log which setting has an issue.
* Fixed: A few Elk M1 events did not allow leaving an event parameter blank.
* Fixed: Rules for the UPB DeactivatedLink event were not being executed.