/** * Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT * All rights reserved. Use is subject to license terms. See LICENSE.TXT */ /** * <p align="center"><img alt="pvManager" src="http://pvmanager.diirt.org/images/PVManagerLogo150.png"></p> * <div style="float: right; margin-top: -170px" id="contents"></div> * * * <h1>Examples</h1> * * <p>You can find examples in <code>link org.diirt.datasource.sample</code> package. * We stopped including examples in the documentation itself because they tend * to become stale. We link to actual code that is part of the build, so that * there is more of a guarantee that they stay correct</p> * * <ol> * <li><a href="http://pvmanager.diirt.org/xref/org/epics/pvmanager/sample/ConfigurationExamples.html">Configuration examples</a> - * how to configure pvmanager to read from the right datasource and dispatch * events on the right thread.</li> * <li><a href="http://pvmanager.diirt.org/xref/org/epics/pvmanager/sample/BasicExamples.html">Basic examples</a> - * how to read/write from a single channel.</li> * <li><a href="http://pvmanager.diirt.org/xref/org/epics/pvmanager/sample/MultipleChannelExamples.html">Multiple channel examples</a> - * how to read/write multiple channels at a time.</li> * <li><a href="http://pvmanager.diirt.org/xref/org/epics/pvmanager/sample/VTypeExamples.html">VType examples</a> - * how to work with actual type and how to aggregate them in bigger structures.</li> * </ol> * * <h1> Package description</h1> * * This package contains all the basic components of the PVManager framework * and the basic support for the language to define the creation. * <p> * There are two distinct parts in the PVManager framework. The first part * includes all the elements that deal with data directly: read from various * sources ({@link org.diirt.datasource.DataSource}), performing computation ({@link org.diirt.datasource.ReadFunction}), * collecting data ({@link org.diirt.datasource.Collector}), scanning at the UI rate ({@link org.diirt.datasource.PVDirector}) * and notify on appropriate threads. * <p> * The second part consists of an expression language that allows to define * how to connect the first set of objects with each other. {@link org.diirt.datasource.expression.SourceRateExpression} * describes data as it's coming out at the network rate, {@link org.diirt.datasource.expression.DesiredRateExpression} * defines data at the scanning rate for the UI, and {@link org.diirt.datasource.ExpressionLanguage} * defines static methods that define the operator in the expression language. * <p> * Users can extend both the first part (by extending support for different types, * providing different support for different data source or creating new computation * elements) and the second part (by extending the language to support other cases. * All support for data types is relegated to separate packages: you can use * the same style to extend the framework to your needs. * <p> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> * <br> */ package org.diirt.datasource;