package org.yamcs.algorithms;
import java.util.Calendar;
import java.util.Date;
import org.yamcs.parameter.ParameterValue;
import org.yamcs.protobuf.Pvalue.AcquisitionStatus;
import org.yamcs.protobuf.Pvalue.MonitoringResult;
import org.yamcs.utils.TimeEncoding;
/**
* A ParameterValue as passed to an algorithm. Actual implementations are
* generated on-the-fly to walk around the issue of Rhino that maps
* boxed primitives to JavaScript Objects instead of Numbers
*/
public abstract class ValueBinding {
public Date acquisitionTime;
public long acquisitionTimeMs;
public Date generationTime;
public long generationTimeMs;
public AcquisitionStatus acquisitionStatus;
public MonitoringResult monitoringResult;
public void updateValue(ParameterValue newValue) {
acquisitionStatus = newValue.getAcquisitionStatus();
monitoringResult = newValue.getMonitoringResult();
if(newValue.hasAcquisitionTime()) {
Calendar cal = TimeEncoding.toCalendar(newValue.getAcquisitionTime());
acquisitionTime = cal.getTime();
}
acquisitionTimeMs = newValue.getAcquisitionTime();
generationTime = TimeEncoding.toCalendar(newValue.getGenerationTime()).getTime();
generationTimeMs = newValue.getGenerationTime();
}
}