/**
* Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT
* All rights reserved. Use is subject to license terms. See LICENSE.TXT
*/
package org.diirt.support.ca;
import gov.aps.jca.dbr.DBR;
import gov.aps.jca.dbr.DBRType;
import gov.aps.jca.dbr.DBR_CTRL_Double;
import gov.aps.jca.dbr.DBR_TIME_Double;
import org.diirt.vtype.VDouble;
import org.diirt.vtype.VTypeToString;
/**
*
* @author carcassi
*/
class VDoubleFromDbr extends VNumberMetadata<DBR_TIME_Double, DBR_CTRL_Double> implements VDouble {
public VDoubleFromDbr(DBR_TIME_Double dbrValue, DBR_CTRL_Double metadata, JCAConnectionPayload connPayload) {
super(dbrValue, metadata, connPayload);
}
private static DBR_TIME_Double convert(DBR dbrValue) {
try {
return (DBR_TIME_Double) dbrValue.convert(DBRType.TIME_DOUBLE);
} catch (Exception ex) {
throw new RuntimeException("Couldn't convert " + dbrValue.getType() + " to DBR_TIME_DOUBLE", ex);
}
}
public VDoubleFromDbr(DBR dbrValue, DBR_CTRL_Double metadata, JCAConnectionPayload connPayload) {
this(convert(dbrValue), metadata, connPayload);
}
@Override
public Double getValue() {
return dbrValue.getDoubleValue()[0];
}
@Override
public String toString() {
return VTypeToString.toString(this);
}
}