Java源码示例:org.eclipse.milo.opcua.stack.core.types.structured.MonitoringParameters

示例1
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 );
}