OOI Reactive Application.
SimulatorInteroperabilityTestis a sample of the
Producerpart of the
ReferenceApplication, which is an example of
Semantic-Datareactive networking based on OPC UA Part 14 Pub/Sub specification. The
Producerrole serves as a data generator to be used for testing purpose aimed at supporting the interoperability tests planned by the OPC Foundation. In the production environment, you may replace this library by a custom one supporting more realistic process data acquisition scenario.
Producerrole in the application:
DataManagementSetup: this class has been inherited by the
SimulatorDataManagementSetupclass. It initializes the communication and binds the fields used to populate the messages and local resources.
IMessageHandlerFactory: both has been implemented in the external common libraries and
Producerdoesn't depend on the implementation - the instance of this interfaces are localized as services using the
IBindingFactory: has been implemented in the class
DataGeneratorresponsible to synchronize the values of the local data repository properties and messages sent over the wire.
IConfigurationFactory: the class
ProducerConfigurationFactoryimplements this interface to be used for configuration opening.
SimulatorDataManagementSetupconstructor initializes all properties, which are injection points of all parts composing this role.
ServiceLocatoris implemented to resolve references to any external services.
DataManagementSetup.Start()method is called to initialize the infrastructure, enable all associations and start pumping the data.
Producerfunctionality. An instance of the
IBindingFactoryis responsible to create objects implementing
IBindingthat can be used to read or generate (simulator case) from the local data repository.
Producerrole responsible for:
DataGeneratorcaptures implementation of a generator of testing data aimed at accomplishing interoperability tests defined by the OPC Foundation for PubSub applications. The example contains properties implemented as an instance of class
ProducerBindingMonitoredValue. Modification of the
ProducerBindingMonitoredValue<type>.MonitoredValueprovides notification to the message handling state machine that a new value is available.
UAOOI.Configuration.Networking. In a typical scenario, this implementation should not be considered for further modification. The only open question is how to provide a path to the file containing the configuration of this role. In proposed solution the file path is provided by a service defined by the application entry point and localized using
IServiceLocatorin the class
ConfigurationDataProducer.xmlattached to the project.
Producersends out the following