@Override Value createScheduleValue(Float value) { return new FloatValue(value); } };
@Override public Value createOgemaValue() { return new FloatValue(value); }
/** * Like {@link ReadOnlyTimeSeries#getValue(long)}, but never returns null. * If the schedule is not defined at <tt>time</tt>, a bad quality value is returned. * @param schedule * @param time * @return */ public static SampledValue getValueSafe(ReadOnlyTimeSeries schedule, long time) { SampledValue val = schedule.getValue(time); if (val == null) val = new SampledValue(new FloatValue(Float.NaN), time, Quality.BAD); return val; }
@Override public SampledValue getValueSecure(long t) { final SampledValue result = getValue(t); return (result!=null) ? result : new SampledValue(new FloatValue(0.f), t, Quality.BAD); }
@Override public SampledValue getValueSecure(long t) { final SampledValue result = getValue(t); return (result != null) ? result : new SampledValue(new FloatValue(0.f), t, Quality.BAD); }
private final static SampledValue getValueSecure(ReadOnlyTimeSeries schedule, long t) { final SampledValue v = schedule.getValue(t); return (v != null ? v : new SampledValue(new FloatValue(Float.NaN), t, Quality.BAD)); }
@Override SampledValue createValue(long time) { return new SampledValue(new FloatValue(el.getData().getFloat()), time, Quality.GOOD); }
protected void init2() { for (Map.Entry<Integer, SampledValue> entry : comingValues.entrySet()) { final int key = entry.getKey(); final SampledValue sv = entry.getValue(); final float val = sv.getQuality() == Quality.GOOD ? (doAverage ? sv.getValue().getFloatValue() : 0) : Float.NaN; final boolean ok = !Float.isNaN(val); nextValuesIntegrated.put(key, new SampledValue(ok ? new FloatValue(val) : FloatValue.NAN, sv.getTimestamp(), ok ? Quality.GOOD : Quality.BAD)); } }
/** * Listener called whenever the management system updated the temperature setpoint. */ @Override public void resourceChanged(TemperatureResource res) { float localDesiredTemp = res.getCelsius(); ChannelConfiguration locator = this.commandChannel.get("COMMAND:01"); writeToChannel(locator, new FloatValue(localDesiredTemp)); }
@Override public final void setConstant(float value) { deleteValues(); setInterpolationMode(InterpolationMode.STEPS); addValue(Long.MIN_VALUE, new FloatValue(value)); addValue(0, new FloatValue(value)); }
@Override public SampledValue apply(Collection<SampledValue> input) { float v = 0f; int cnt = 0; for (SampledValue sv: input) { if (sv != null && sv.getQuality() == Quality.GOOD) { v += sv.getValue().getFloatValue(); cnt++; } } return new SampledValue(new FloatValue(v/cnt), input.iterator().next().getTimestamp(), cnt > 0 ? Quality.GOOD : Quality.BAD); } };
@Override public SampledValue apply(Collection<SampledValue> input) { float v = 0f; boolean qualityGood = false; for (SampledValue sv: input) { if (sv != null && sv.getQuality() == Quality.GOOD) { v += sv.getValue().getFloatValue(); qualityGood = true; } } return new SampledValue(new FloatValue(v), input.iterator().next().getTimestamp(), qualityGood ? Quality.GOOD : Quality.BAD); } };
Value getValue(N value) { if (value == null) value = getNullReplacement(); if (type == Float.class) return new FloatValue((Float) value); if (type == Integer.class) return new IntegerValue((Integer) value); if (type == Long.class) return new LongValue((Long) value); if (type == String.class) { return new StringValue((String) value); } return new FloatValue((Float) value); }
@Override public final SampledValue apply(SampledValue value) { return new SampledValue(new FloatValue(value.getValue().getFloatValue() * m_factor), value.getTimestamp(), value.getQuality()); }
@Override public final SampledValue apply(SampledValue value) { return new SampledValue(new FloatValue(value.getValue().getFloatValue() + m_addend), value.getTimestamp(), value.getQuality()); }
@Override public final SampledValue apply(final SampledValue value1, final SampledValue value2) { final long t1 = value1.getTimestamp(); final long t2 = value2.getTimestamp(); if (t1 != t2) return new SampledValue(new FloatValue(0.f), t1, Quality.BAD); final float x1 = value1.getValue().getFloatValue(); final float x2 = value2.getValue().getFloatValue(); final Quality q1 = value1.getQuality(); final Quality q2 = value2.getQuality(); final Quality quality = (q1 == Quality.GOOD && q2 == Quality.GOOD) ? Quality.GOOD : Quality.BAD; return new SampledValue(new FloatValue(x1 * x2), t2, quality); } }
private static Value transformBack(SingleValueResource in, float factor, float offset) { final Object value = ValueResourceUtils.getValue((ValueResource) in); if (in instanceof FloatResource) return new FloatValue(((float) value - offset) / factor); else if (in instanceof IntegerResource) return new IntegerValue(((int) value - (int) offset) / ((int) factor)); else if (in instanceof TimeResource) return new LongValue(((long) value - (long) offset) / ((long) factor)); else if (in instanceof BooleanResource) return new BooleanValue((boolean) value && (factor >= 0)); else throw new IllegalArgumentException("Unsupported resource type " + in.getResourceType().getName()); }
@Override public synchronized SampledValue getMin(long t0, long t1) { final FloatTreeTimeSeries f = new FloatTreeTimeSeries(this); f.multiplyBy(-1.f); final SampledValue negMax = f.getMax(t0, t1); return new SampledValue(new FloatValue(negMax.getValue().getFloatValue()), negMax.getTimestamp(), negMax .getQuality()); }
private static Value transform(Value in, float factor, float offset) { if (in instanceof FloatValue) return new FloatValue(in.getFloatValue() * factor + offset); else if (in instanceof IntegerValue) return new IntegerValue(in.getIntegerValue() * ((int) factor) + (int) offset); // problematic... else if (in instanceof LongValue) return new LongValue(in.getLongValue() * ((long) factor) + (long) offset);// problematic... else if (in instanceof BooleanValue) return new BooleanValue(in.getBooleanValue() && (factor >= 0)); else return in; }
private float getNewTemperatureValue(long currentTime, long lastUpdateTime) { AbsoluteSchedule logDataTemp = configPattern.simulatedTemperature.historicalData(); logDataTemp.create().activate(false); // List<SampledValue> tempValues = logDataTemp.getValues(currentTime - GlobalConfigurations.RADIATOR_HYSTERESIS); float roomSize = 40; // m^3 // TODO parameter // 3*5*2.6m^3 float wallSize = 8; // m^2 // TODO parameter float outsideTemperature = 10; // TODO parameter float newValue = TemperatureCalculator.getInstance().getNewValue(roomSize, wallSize, configPattern.simulatedTemperature.getCelsius(), outsideTemperature , currentTime, lastUpdateTime, null); logDataTemp.addValue(currentTime, new FloatValue(configPattern.simulatedTemperature.getValue())); return newValue; }