The following API changes were introduced in Ignition version 7.6.0.
New Alarming System
The alarming system has been completely reworked in 7.6. Alarms are now executed centrally, through the AlarmManager provided in the gateway context. This new manager allows you to access the state and history of alarms, subscribe to events, and create new alarms.
Change in terminology: "Alerting" -> "Alarming"
To align better with industrial standards, the term "alarming" is now preferred for the core features in this version of Ignition. "Alerting" generally refers to alarming that is specific to a particular operator's preferences and settings. Therefore, the term may be used occasionally, but this version of Ignition doesn't offer any particular "alerting" features by this definition.
Alert Bus removed
The alert bus previously was the mechanism by which different parts of the system received alert events. This system has been removed. Now, if a sub-system is interested in alarm events, it can subscribe through AlarmManager#addListener. That method, which takes a new QualifiedPath, subscribes to everything at or below the path. Therefore, a system can subscribe to all events by passing a null or empty path
Pipelines & Notification Profiles
Alarm notification is now handled through the powerful and dynamic pipeline system. The actual notification is handled through the AlarmNotificationProfile extension point type, meaning that modules can implement new types of notification.
There is a new "project" available through ProjectManager#getGlobalProject for resources that apply to the entire system. This new global project is used like other projects, the only difference being that the resources are shown in the designer regardless of the individual project being edited.
Extensible Expression Functions
Modules can now add functions to the expression language through the ExpressionFunctionFactory passed into the new configureFunctionFactory(...) function on module hooks.
Drivers now conform to the standard ExtensionPoint pattern
The driver system has changed quite a bit in order to remove unnecessary sub-patterns and adhere more closely to the design of other parts of Ignition. Driver module authors will need to adapt their code. The following are the key changes:
- DriverAPI.VERSION is now 4.
- Driver#initialize() no longer has NodeManager and NodeBuilderFactory parameters; they can be obtained via the DriverContext.
- Driver#getDriverState() has been removed.
- Driver#getDriverSubState() has been renamed to Driver#getDriverStatus(). It is now the main mechanism for user-facing feedback of the driver's status.
- Driver#alterSubscriptions() has been removed. Subscription state is now managed by a DriverSubscriptionModel, obtainable via the DriverContext. See javadocs on DriverSubscriptionModel for more information.
- AbstractDriver#notifyConnectDone() has been removed (previously deprecated). Use #notifyConnectSucceeded() and #notifyConnectFailed(Exception).
- Drivers are no longer instantiated reflectively and setup with #initialize(). They are instantiated by an implementation of DriverType, which means implementations have control of how instantiation occurs. Drivers no longer have their properties reflectively set on them. The DriverType implementation will receive a driver's PersistentRecord type when asked to instantiate a Driver, and properties can be retrieved from the record. These PersistentRecords must have a reference to a parent DeviceSettingsRecord. This all means that Drivers now use the extension point pattern prevalent everywhere else in the Ignition platform.
- Custom UI/config pages are now just ConfigPanels.
- The LinkEntry sub-interfaces have moved and changed slightly. The ConfigUILink, in particular, has changed to allow the PersistentRecord to be edited. Use LegacyDeviceConfigConverter to convert existing device configurations into new PersistentRecords for each DriverType. Override runLegacyConversions() in your AbstractDriverModuleHook subclass and do the work there.
- AbstractNioDriver renamed to AbstractSocketDriver.
- More information can be found in the OPC-UA Driver Development section of this guide.
Authentication Profiles have become User Sources
Upgraded Platform Libraries
- Upgraded Apache commons-io-1.4 to commons-io-2.1.
- Upgraded Apache commons-lang-2.4 to commons-lang3-3.1.
- Upgraded Google google-collect-1.0-rc2 to guava-11.0.1.
- Ignition 7.6 framework version is now 5. The Driver API framework number is now 4.