protected synchronized void internalWakeup ()
{
updateData ( Variant.NULL, Collections.singletonMap ( "opcua.init.error", Variant.TRUE ), AttributeMode.SET );
final ReadValueId readValueId = new ReadValueId ( this.nodeId, AttributeId.Value.uid (), null, QualifiedName.NULL_VALUE );
final UInteger clientHandle = uint ( this.handle );
// use same interval as subscription manager
final MonitoringParameters parameters = new MonitoringParameters ( clientHandle, this.subscriptionSupplier.get ().getRequestedPublishingInterval (), // sampling interval
null, // filter, null means use default
uint ( 10 ), // queue size
true // discard oldest
);
final MonitoredItemCreateRequest request = new MonitoredItemCreateRequest ( readValueId, MonitoringMode.Reporting, parameters );
final BiConsumer<UaMonitoredItem, Integer> onItemCreated = ( item, id ) -> item.setValueConsumer ( this::onSubscriptionValue );
this.subscriptionSupplier.get ().createMonitoredItems ( TimestampsToReturn.Both, newArrayList ( request ), onItemCreated );
}