Those of you with driver implementations have some work ahead of you to make your driver compatible with the driver API changes that have occurred.
Here’s a brief summary:
[ul]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 instanitated 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 implenentation 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.[/ul]
I’ve highlighted some of the key changes.
The Modbus driver has been updated to accommodate these changes and will be a hugely helpful example for making the transition.
Of course, I’m available here in the forum as well as by email to answer any questions you have.