@Override public void writeValue(SampledValue v, JsonGenerator jGen) throws IOException { jGen.writeNumberField("value", v.getValue().getFloatValue()); jGen.writeStringField("@type", "SampledFloat"); } },
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; }
String[] splitChannelAddress = channelAddress.split(":"); if (value instanceof StringValue) { logger.debug(value.getStringValue()); logger.debug(Integer.toString(value.getIntegerValue())); logger.debug(Float.toString(value.getFloatValue())); logger.debug(Double.toString(value.getDoubleValue())); logger.debug(Converter.toHexString(value.getByteArrayValue())); logger.debug(Boolean.toString(value.getBooleanValue())); Object objectValue = value.getObjectValue(); if (splitChannelAddress[1].equals("MULTIPLE ATTRIBUTES") && objectValue instanceof Map) { @SuppressWarnings("unchecked")
private static void setValue(final SingleValueResource resource, final Value value) { if (resource instanceof BooleanResource) { if (!(value instanceof BooleanValue)) { // workaround... it is not possible to convert FloatValue to BooleanValue ((BooleanResource) resource).setValue(Math.abs(value.getFloatValue()) > 0.0001); } else { ((BooleanResource) resource).setValue(value.getBooleanValue()); } } else { ValueResourceUtils.setValue(resource, value); } }
@Override protected void parseValue(Value value, String channelAddress) { switch (channelAddress) { case "ATTRIBUTE:0001": status.setValue(value.getStringValue().equals("closed")); status.activate(true); break; case "ATTRIBUTE:0002": batteryStatus.setValue(value.getFloatValue()); batteryStatus.activate(true); break; } }
switch (valueid.getType()) { case BOOL: manager.setValueAsBool(valueid, value.getBooleanValue()); break; case BYTE: manager.setValueAsByte(valueid, value.getByteArrayValue()[0]); break; case DECIMAL: manager.setValueAsFloat(valueid, value.getFloatValue()); break; case INT: manager.setValueAsInt(valueid, value.getIntegerValue()); break; case LIST: throw new UnsupportedOperationException(); case SHORT: manager.setValueAsShort(valueid, (short) (value.getIntegerValue() & 0xFFFF)); break; case STRING: manager.setValueAsString(valueid, value.getStringValue()); break; case BUTTON: throw new UnsupportedOperationException(); case RAW: manager.setValueAsRaw(valueid, value.getByteArrayValue()); default: throw new UnsupportedOperationException();
@Override public Value integrate(SampledValue x0, SampledValue x1, Class<? extends Value> valueType) { final long dt = x1.getTimestamp() - x0.getTimestamp(); final boolean emptyDomain = (dt == 0 || x0.getQuality() == Quality.BAD || x1.getQuality() == Quality.BAD); final Value v0 = x0.getValue(); final Value v1 = x1.getValue(); if (v0 instanceof FloatValue || v0 instanceof DoubleValue || v0 instanceof BooleanValue) { if (emptyDomain) return new FloatValue(0.f); return new FloatValue(0.5f * (v0.getFloatValue() + v1.getFloatValue()) * dt); } if (v0 instanceof LongValue) { if (emptyDomain) return new LongValue(0L); return new LongValue((v0.getLongValue() + v1.getLongValue()) * dt / 2); } if (v0 instanceof IntegerValue) { if (emptyDomain) return new IntegerValue(0); return new IntegerValue((int) ((v0.getIntegerValue() + v1.getIntegerValue()) * dt / 2)); } throw new IllegalArgumentException("Cannot integrate a function with non-numerical value type " + v0.getClass().getCanonicalName()); }
.append(linebreak).append(separator).append(separator) .append("<value>") .append(val instanceof BooleanValue ? val.getBooleanValue() : val instanceof IntegerValue || val instanceof LongValue ? val.getLongValue() : val.getFloatValue()) .append("</value>") .append(linebreak).append(separator).append("</entry>"); .append("\"quality\":\"").append(sv.getQuality().toString()).append('\"').append(',') .append(linebreak).append(separator).append(separator) .append("\"value\":").append(val instanceof BooleanValue ? val.getBooleanValue() : val instanceof IntegerValue || val instanceof LongValue ? val.getLongValue() : val.getFloatValue()) .append(linebreak).append(separator); sb.append('}');
@Override public void setValue(Value value) { this.value = value.getBooleanValue(); }
@Override public Void run() throws Exception { lock.writeLock().lock(); try { if (configuration != null) { for (SampledValue value : values) { recorder.getProxy().appendValue(idEncoded, value.getValue().getDoubleValue(), value.getTimestamp(), (byte) value.getQuality().getQuality(), configuration); } } } catch (IOException e) { logger.error("", e); } catch (IllegalConversionException e) { logger.error("", e); } finally { lock.writeLock().unlock(); } return null; }
@Override public void setValue(Value value) { this.value = value.getLongValue(); }
@Override public void setValue(Value value) { this.value = value.getIntegerValue(); }
@Override public void setValue(Value value) { this.value = value.getStringValue(); }
@Override public void setValue(Value value) { arr = value.getByteArrayValue(); }
@Override protected void parseValue(Value value, String channelAddress) { switch (channelAddress) { case "ATTRIBUTE:0001": smokeAlert.setValue(value.getBooleanValue()); smokeAlert.activate(true); break; case "ATTRIBUTE:0002": batteryStatus.setValue(value.getFloatValue()); batteryStatus.activate(true); break; } }
@Override public Value integrate(SampledValue x0, SampledValue x1, Class<? extends Value> valueType) { final long dt = x1.getTimestamp() - x0.getTimestamp(); final boolean emptyDomain = (dt == 0 || x0.getQuality() == Quality.BAD || x1.getQuality() == Quality.BAD); final Value value = x0.getValue(); if (value instanceof FloatValue || value instanceof DoubleValue || value instanceof BooleanValue) { if (emptyDomain) { return new FloatValue(0.f); } return new FloatValue(value.getFloatValue() * dt); } if (value instanceof LongValue) { if (emptyDomain) { return new LongValue(0L); } return new LongValue(value.getLongValue() * dt); } if (value instanceof IntegerValue) { if (emptyDomain) { return new IntegerValue(0); } return new IntegerValue((int) (value.getIntegerValue() * dt)); } throw new IllegalArgumentException("Cannot integrate a function with non-numerical value type " + value.getClass().getCanonicalName()); }
@Override protected void parseValue(Value value, String channelAddress) { switch (channelAddress) { case "ATTRIBUTE:0001": highWater.setValue(value.getStringValue()); highWater.activate(true); break; case "ATTRIBUTE:0002": batteryStatus.setValue(value.getFloatValue()); batteryStatus.activate(true); break; } }
@Override public void writeValue(SampledValue v, JsonGenerator jGen) throws IOException { jGen.writeBooleanField(SINGLEVALUE, v.getValue().getBooleanValue()); jGen.writeStringField("@type", "SampledBoolean"); } },
@Override public Void run() throws Exception { lock.writeLock().lock(); try { if (configuration != null) { for (SampledValue value : values) { recorder.getProxy().appendValue(id, value.getValue().getDoubleValue(), value.getTimestamp(), (byte) value.getQuality().getQuality(), configuration); } } } catch (IOException e) { logger.error("", e); } catch (IllegalConversionException e) { logger.error("", e); } finally { lock.writeLock().unlock(); } return null; }
@Override public void writeValue(SampledValue v, JsonGenerator jGen) throws IOException { jGen.writeNumberField(SINGLEVALUE, v.getValue().getLongValue()); jGen.writeStringField("@type", "SampledLong"); } },