Abstract Tag Driver Example

Why do I get this when I try to simply change the name of the TagCount setting name to TagCount2 (and I did it everywhere) I get this in the Gateway? The same happens when I try to create a new Category or new setting.

Look at the …DriverSettings.properties file. That’s where the text keys are translated into actual displayed strings. That’s to support future internationalization of the driver (create a matching file with translated strings for each key).

This is what I have there:

ExampleCategory=Example Category

TCPCategory=TCP Category

TagCount2.Name=Tag Count2
TagCount2.Desc=The number of tags this device will expose.

Port.Name=TCP Port
Port.Desc=Device TCP Port.

Hmmm. Looks like those properties are getting loaded by BundleUtils. You’ll need to look at your hook class to see if that’s happening, and with the correct names.

What is the difference between the DriverTag, the DynamicDriverTag and WritableDriverTag? How can I implement the method called when someone write to a tag? Where can I find the documentation of the com.inductiveautomation.xopc.driver.api.tags package?

Ah, it looks like we’re not deploying the javadocs with the rest of the artifacts. We’ll have to fix that on our end for the next release.

I think the downloadable SDK does include javadocs though. The package itself doesn’t have documentation, but the DriverTag and WritableDriverTag interfaces do.

When using the AbstractTagDriver, to accept writes you just implement and add a WritableDriverTag and do something with the value given to you in setValue() when it’s called.

I’m doing this:

@Override
public void setup(GatewayContext context) {
    BundleUtil.get().addBundle(ATDExampleDriver.class);

    super.setup(context);
}

is it correct?

[quote=“joaopmrod2”]I’m doing this:[/quote]I’m gonna guess you need (untested):[code] @Override
public void setup(GatewayContext context) {
BundleUtil.get().addBundle(ATDExampleDriver.class);
BundleUtil.get().addBundle(ATDExampleDriverSettings.class);

    super.setup(context);
}[/code]and then update the contents of ATDExampleDriverSettings.properties for your use case.

How can I set the tag quality using a AbstarctTagDriver?

Return a DataValue that has a bad StatusCode from DriverTag#getValue()