@Override public Object calculate(final List<Object> args) { VNumber minValue = (VNumber) args.get(0); VNumber maxValue = (VNumber) args.get(1); if (minValue == null || maxValue == null) { return null; } return VTableFactory.range(minValue.getValue().doubleValue(), maxValue.getValue().doubleValue()); }
@Override public Object calculate(final List<Object> args) { VNumber initialValue = (VNumber) args.get(0); VNumber increment = (VNumber) args.get(1); if (initialValue == null || increment == null) { return null; } return VTableFactory.step(initialValue.getValue().doubleValue(), increment.getValue().doubleValue()); }
@Override public Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VStringArray stringArray = (VStringArray) args.get(0); VNumber index = (VNumber) args.get(1); int i = index.getValue().intValue(); return newVString(stringArray.getData().get(i), stringArray, stringArray); }
@Override public final Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumber arg1 = (VNumber) args.get(0); VNumber arg2 = (VNumber) args.get(1); return ValueFactory.newVBoolean( calculate(arg1.getValue().doubleValue(), arg2.getValue().doubleValue()), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args)); }
@Override public Object calculate(final List<Object> args) { VNumber size = (VNumber) args.get(0); VBoolean invert = (VBoolean) args.get(1); if (size == null || invert == null) { return null; } return ValueFactory.newDisplay(size.getValue().intValue(), VTableFactory.step(0, 1), invert.getValue()); }
@Override public final Object calculate(List<Object> args) { VNumber arg = (VNumber) args.get(0); if (arg == null) { return null; } return ValueFactory.newVDouble(calculate(arg.getValue().doubleValue()), arg, arg, ValueFactory.displayNone()); }
@Override public void pvChanged(PVReaderEvent<VNumber> event) { if (event.isValueChanged()) { System.out.println("... value is " + event.getPvReader().getValue().getValue()); } } })
static double integrate(Instant start, Instant end, VNumber value, VNumber nextValue) { Instant actualStart = Collections.max(Arrays.asList(start, value.getTimestamp())); Instant actualEnd = end; if (nextValue != null) { actualEnd = Collections.min(Arrays.asList(end, nextValue.getTimestamp())); } Duration duration = Duration.between(actualStart, actualEnd); if (!duration.isNegative() && !duration.isZero()) { return TimeDuration.toSecondsDouble(duration.multipliedBy(value.getValue().longValue())); } else { return 0; } }
@Override public Object calculate(final List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray arg1 = (VNumberArray) args.get(0); VNumber arg2 = (VNumber) args.get(1); VNumber arg3 = (VNumber) args.get(2); return newVNumberArray( ListMath.rescale(arg1.getData(), arg2.getValue().doubleValue(), arg3.getValue().doubleValue()), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); } }
@Override public void pvChanged(PVReaderEvent<VNumber> event) { if (event.isValueChanged()) { System.out.println("... value is " + event.getPvReader().getValue().getValue()); } } })
@Override public void pvChanged(PVReaderEvent<VNumber> event) { VNumber value = event.getPvReader().getValue(); if (value != null) { System.out.println(value.getValue() + " " + value.getAlarmSeverity()); } } })
@Override public Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray numberArray = (VNumberArray) args.get(0); int fromIndex = ((VNumber) args.get(1)).getValue().intValue(); int toIndex = ((VNumber) args.get(2)).getValue().intValue(); return newVNumberArray( ListMath.limit(numberArray.getData(), fromIndex, toIndex), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
@Override public final Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } Number arg1 = ((VNumber) args.get(0)).getValue(); Number arg2 = ((VNumber) args.get(1)).getValue(); if (arg1 instanceof Float || arg2 instanceof Float || arg1 instanceof Double || arg2 instanceof Double) { throw new IllegalArgumentException("Operator '" + getName() + "' only works with integers"); } return newVInt( calculate(arg1.intValue(), arg2.intValue()), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
@Override public Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray numberArray = (VNumberArray) args.get(0); VNumber index = (VNumber) args.get(1); int i = index.getValue().intValue(); return newVNumber(numberArray.getData().getDouble(i), numberArray, numberArray, displayNone()); }
@Override public final Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumber arg1 = (VNumber) args.get(0); VNumberArray arg2 = (VNumberArray) args.get(1); return newVNumberArray( calculate(arg1.getValue().doubleValue(), arg2.getData()), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
@Override public VTable readValue() { VNumberArray values = yArray.getFunction().readValue(); VNumber offset = xInitialOffset.getFunction().readValue(); VNumber increment = xIncrementSize.getFunction().readValue(); if (values == null || offset == null || increment == null) { return null; } return ValueFactory.newVTable(Arrays.<Class<?>>asList(double.class, double.class), Arrays.asList("X", "Y"), Arrays.<Object>asList(ListNumbers.linearList(offset.getValue().doubleValue(), increment.getValue().doubleValue(), values.getData().size()), new ListDoubleView(values.getData()))); } }, "data");
@Override public final Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray arg1 = (VNumberArray) args.get(0); VNumber arg2 = (VNumber) args.get(1); return newVNumberArray( calculate(arg1.getData(), arg2.getValue().doubleValue()), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
static JsonObject toJson(VNumber vNumber) { return new JsonVTypeBuilder() .addType(vNumber) .addObject("value", vNumber.getValue()) .addAlarm(vNumber) .addTime(vNumber) .addDisplay(vNumber) .build(); }