historicalDeadbandStyle vs historicalDeadBandStyle

Somewhere between 8.1.3 and 8.1.7 the exact case of the name that the tag editor uses for the historicalDeadbandStyle property changed.

Some of our scripts that ensure specific tag configurations dynamically are now freaking out at the mismatch.

Behind the scenes, does Ignition 8.1.7 allow the property to be set using either name but always read back the (newer) lower case “b” version?

Was there any support for the lower case “b” version on 8.1.3 or before? If our scripts used the lower-case “b” version in 8.1.3 would Ignition recognize it as that property or was it only looking for the upper-case “B” name? (all scripts are using system.tag.getConfiguration and system.tag.configure)

The code says it’s been historicalDeadbandStyle (lowercase-b) since before 8.0.0 was released…

It’s possible 7.9 or some prior version used a different case and it’s changed on upgrade, but I don’t see code to handle that on rename. It’s also theoretically possible the editor was putting the wrong value into the configuration in an earlier version, but if that were the case I’d expect things to just not be working outright, which I assume someone would have noticed.

Maybe we’ve just been using the wrong capitalization and never been setting this property properly… :confused:

In any case, what we noticed was that in 8.1.7 if you do a system.tag.configure with the uppercase-B and then system.tag.getConfiguration you get back only the lowercase-b version. In 8.1.3 you also got back the uppercase-B. Maybe one of the serialization changes between 8.1.3 and 8.1.7 is pruning the uppercase-B version or doing a case-insensitive name check and merging it into the lowercase-b? I may experiment a bit more and see…

Our scripts were the source of the upper-B property name. We’ve fixed that going forward.

Here are some things I’ve learned experimenting with this on our servers:

  • both 8.1.3 and 8.1.7 will create the property with lower-b if you use the GUI tag editor
  • something in 8.1.7 auto-adjusts all instances of the property to lower-b if you try to set upper-B
  • 8.1.3 tag editor will find and use the property in the history pane with either case
  • doing system.tag.configure in merge mode will adjust the existing property w/o changing the case even if input config has different case
  • the best way I’ve found on 8.1.3 to adjust the case on an existing property is to DELETE IT and then re-add it

So, I think Ignition does a reasonable job doing the “right thing”. We were just thrown by all of the existing tags suddenly changing when we upgraded, and many of our scripts panicked when the structs coming back from getConfiguration didn’t have the expected case any more.

At this point, this is just something we need to work around, although I’m still curious what changed in 8.1.7 that auto-corrected the case on all existing tags.

1 Like