We’re working to developp a new Ignition driver module and we’re trying to solve an issue whose effect is to display a lot of strange “[DeviceSubscriptionItem] : No node set!”
It’s occured after the following action:
- Start Ignition system
- Edit metadata and enable one device managed by our new driver module. We don’t have any problem and no strange message.
- Edit again the metadata of this device.
- The “disconnect” method of the driver is called.
- A new instance of our driver is created and connect method is called.
A this time, we’ve a lot of “[DeviceSubscriptionItem] : No node set!” messages which are written in the Ingition console. The problem is clearly linked to our code because if I disable the device, no other message is displayed.
When a message is displayed, the stack is the following.
Logger(Category).warn(Object) line: 1039
LoggerEx.warn(String) line: 302
DeviceSubscriptionItem.setValue(DataValue) line: 77
AggregateSubscriptionItem.setValue(DataValue) line: 54
ReadRequest.receiveMessage(Integer, Object) line: 54
ReadRequest.receiveMessage(Object, Object) line: 16
ScheduledRequest.receiveMessage(M, Object) line: 85
BasicRequestCycle.deliverMessage(M, Object, PendingRequest) line: 184
BasicRequestCycle.messageArrived(M, Object) line: 166
EcoSpecDriver(AbstractDriver).messageArrived(M) line: 708
EcoSpecDriver(NodeMapDriver).messageDone(Integer) line: 76
ReadRequest$1.run() line: 74
Executors$RunnableAdapter.call() line: 511
ScheduledThreadPoolExecutor$ScheduledFutureTask(FutureTask).run() line: 266
ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor$ScheduledFutureTask) line: 180
ScheduledThreadPoolExecutor$ScheduledFutureTask.run() line: 293
ScheduledThreadPoolExecutor(ThreadPoolExecutor).runWorker(ThreadPoolExecutor$Worker) line: 1142
ThreadPoolExecutor$Worker.run() line: 617
Thread.run() line: 745
In bold are the two lines which correspond to our driver but it’s in fact the standard NodeMapDriver.messageDone and AbstractDriver.messageArrived methods (not overrided). We’re trying to understand why the problem occurs and which actions / part of code in our driver code can explain this problem.
Note that I didn’t find any sendMessage call in our code !!!
Anybody has an idea and could help us ?