IdbMigrationStrategy for Device ExtensionPoints

new DataValue(new Variant(StatusCodes.Bad_AttributeIdInvalid))?

Tried new DataValue(e.getStatusCode()) Is that not the same?

Ah shit, that's actually correct and what I suggested was not.

In "easy mode" when you have actual UaNode instances and defer to the "Managed" impls that's basically what's happening:

Ok. Let me prune back my experiments and try again.

Edit: Oy! My driver is choking on disable then re-enable, and I hadn't noticed.

My subscriptions are working. Writes are writing. Phew! :sweat_smile:

The IA Logix driver isn't browsing at all, even when everything else is disabled. Weird results from your MB server driver.

FWIW, I'm not using the ManagedDevice layer, but I am using a node manager for my address space, and creating UaNodes on demand.

Hmm, I'll have to look into this. Hopefully whatever this is happened recently.

It's a UI/config bug... I think the Logix driver had its UI built before we had the generic extension point config page, and some of the settings moved but the move isn't reflected on the frontend/UI...

anyway end result is that the Concurrent Requests setting in the UI is ignored and the driver ends up getting created with 0 allowed, i.e. 0 CIP Connections allowed, and there's not sufficient assertions/validations to blow up when this happens.

Didn't get noticed because we've been using the API or restoring backups.

1 Like

I'm gonna be hammering the Milo sample server with the UA compliance test tool soon-ish as I get ready for an IOP event in March. Hopefully I'll shake out any remaining browse bugs or performance issues.

I strongly suspect I wrecked browse performance in some way when I implemented the access control stuff + refactored all the browse helpers. It feels like something went exponential.

1 Like

I replaced my open-coded attribute reads and writes with AttributeReader and AttributeWriter static methods. My ClientDriver is screaming along now. (Having to look at my own diagnostic tags, as the Web diagnostics aren't there for devices yet.) One of my torture tests is running 183k items ~500 requests ~1400ms actual sampling time (L81 front port, ~99% Class3 load).

I'll have to look at why it doesn't want to disable properly.

I'll test that, and my HostDevice driver type, tomorrow. Time for an adult beverage.

1 Like

For posterity: this bug was a race between device creation, channel creation, and device .startup(). v8.3's startup speed is both delightful and annoyingly good at exposing this kind of problem.

(My compliments to IA for mitigating my biggest concern about killing module hot-loading.)

1 Like