Maintaining Drivers Module through Ignition versions (Ignition 7)

Hello,

I am maintaining some drivers that weren’t originally developed by me (although I’ve had experience developing my own drivers since then). Before, we were using Ignition 7.9.7, and later we updated to Ignition 7.9.14. The drivers always had some slight issues, especially when turning off the device and then turning it back on, however, since updating to 7.9.14 things have got worse.

I have been trying to figure out what might be the issue, and I just now realized in the build .pom file we have:

<requiredIgnitionVersion>7.8.0</requiredIgnitionVersion>
<requiredFrameworkVersion>7</requiredFrameworkVersion>

Shouldn’t this result in an API version mismatch or something of the like ? I thought it should read 7.9.0. That’s my first question.

Following that I went and checked the dependencies’ versions, and we’re using for ignition-common and gateway-api and driver-api from com.inductiveautomation.ignitionsdk version 7.8.0-SNAPSHOT. What version instead should we be using here if we’re using Ignition version 7.9.14 now ?

Also, for driver-api and ia-opcua of com.inductiveautomation.xopc we’re using 3.8.0-SNAPSHOT. Is this correct ? I tried to look for what would be the right dependencies but I could not find this information.

thanks in advance for the assistance,
Ricardo

requiredIgnitionVersion is a minimum value, so while you should probably update it to 7.9.0 it won’t matter.

requiredFrameworkVersion used to have to be an absolute match but we’ve stopped using this value.

Your dependencies should probably get updated to any non-SNAPSHOT 7.9.x release. The examples use 7.9.3 though there might be more recent ones available: https://github.com/inductiveautomation/ignition-sdk-examples/blob/ignition-7.9/AbstractTagDriverExample/atd-gateway/pom.xml

It doesn’t really matter because they are just APIs you compile against, not artifacts that get included in your module, and unless we added an API or otherwise made some breaking change then there’s not really any reason to worry about which point release in 7.9 you compile against. You’d know if this were a problem because your module wouldn’t load or would throw some kind of nasty exception letting you know a method you are calling doesn’t exist.

thanks for the quick reply. So even though it would be preferable to update this, it should not be the cause of the issues we’re seeing, right ?

Also, i was just going through the updated example for the AbstractTagDriverExample, and I notice you don’t have explicitly dependencies for com.inductiveautomation.xopc on the .pom, is that because these are included on com.inductiveautomation.ignitionsdk ? Maybe the version i’m using, that 3.8.0-SNAPSHOT is some older version not in use anymore ?

You should only have ever been referencing dependencies from the SDK artifacts.

And yes, I don’t imagine this is the cause of your issues.

Alright, thanks for the help. I’ll update these even though it might not solve the issues we’re seeing.