/**
* 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.sim;
import org.diirt.vtype.VString;
import static org.diirt.vtype.ValueFactory.*;
/**
* Function to simulate a signal that generates Strings.
*
* @author carcassi
*/
public class Strings extends SimFunction<VString> {
private StringBuffer buffer = new StringBuffer();
/**
* Creates a signal uniformly distributed between -5.0 and 5.0, updating
* every 100ms (10Hz).
*/
public Strings() {
this(0.1);
}
/**
* Creates a signal uniformly distributed between min and max, updating
* every interval seconds.
*
* @param interval interval between samples in seconds
*/
public Strings(Double interval) {
super(interval, VString.class);
if (interval <= 0.0) {
throw new IllegalArgumentException("Interval must be greater than zero (was " + interval + ")");
}
}
@Override
VString nextValue() {
return newVString(nextString(), alarmNone(), timeNow());
}
String nextString() {
if (buffer.length() > 10) {
buffer.setLength(0);
}
buffer.append("A");
return buffer.toString();
}
}