All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.diirt.datasource.extra.ExpressionLanguage Maven / Gradle / Ivy

/**
 * Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT
 * All rights reserved. Use is subject to license terms. See LICENSE.TXT
 */
package org.diirt.datasource.extra;

import org.diirt.vtype.VNumberArray;
import org.diirt.vtype.VNumber;
import org.diirt.datasource.vtype.DataTypeSupport;
import java.util.List;
import org.diirt.datasource.BasicTypeSupport;
import org.diirt.datasource.expression.DesiredRateExpression;
import org.diirt.datasource.expression.DesiredRateExpressionList;
import org.diirt.datasource.expression.SourceRateExpression;
import org.diirt.datasource.expression.SourceRateExpressionList;
import static org.diirt.datasource.ExpressionLanguage.*;

/**
 * PVManager expression language support for additional operations.
 *
 * @author carcassi
 */
public class ExpressionLanguage {
    private ExpressionLanguage() {}

    static {
        // Add support for Epics types.
        DataTypeSupport.install();
        // Add support for Basic types
        BasicTypeSupport.install();
    }

    /**
     * Aggregates the sample at the scan rate and takes the average.
     * 
     * @param arrayPv the expression to take the average of; can't be null
     * @return an expression representing the average of the expression
     */
    public static  WaterfallPlot  waterfallPlotOf(SourceRateExpression arrayPv) {
        DesiredRateExpression> queue = newValuesOf(arrayPv);
        return new WaterfallPlot(queue, "waterfallOf(" + arrayPv.getName() + ")");
    }

    /**
     * Creates a waterfall plot from a series of scalar pvs.
     * 
     * @param vDoubles the expression to take the average of; can't be null
     * @return an expression representing the average of the expression
     */
    public static  WaterfallPlot waterfallPlotOf(SourceRateExpressionList vDoubles) {
        DesiredRateExpressionList> queue = newValuesOf(vDoubles);
        return new WaterfallPlot(queue, "waterfallOf");
    }
    
    /**
     * Creates a group of dynamically managed expressions.
     * 
     * @return a new group
     */
    public static DynamicGroup group() {
        return new DynamicGroup();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy