boolean condition = makeNewBand || (!i.hasEndTime && i.itemState.count==2);
- if(i.stream.size() > 0 && !i.itemState.ooDeadband) {
+ if(i.stream.size() > 0 ) { //!i.itemState.ooDeadband) {
/// Extend existing band
// Extend endTime value
} else {
i.current.setEndTime( time.getBinding(), time.getValue() );
}
+ if (i.itemState.ooDeadband) {
+ if (isValidValue) {
+ // Set last value
+ if (i.current.hasLastValue()) {
+ i.current.setLastValue( value.getBinding(), value.getValue() );
+ }
- if (isValidValue) {
- // Set last value
- if (i.current.hasLastValue()) {
- i.current.setLastValue( value.getBinding(), value.getValue() );
- }
+ // Add sum
+ if (i.current.hasAvg() && i.isNumeric && !isNanValue && !restep) {
+ double duration = (currentTime - i.itemState.firstTime);
+ if(duration < 1e-9) {
+ i.current.setAvg( Bindings.DOUBLE, 0.0 );
+ } else {
+ i.current.setAvg( Bindings.DOUBLE, i.itemState.sum / duration);
+ }
+ }
- // Add sum
- if (i.current.hasAvg() && i.isNumeric && !isNanValue && !restep) {
- double duration = (currentTime - i.itemState.firstTime);
- if(duration < 1e-9) {
- i.current.setAvg( Bindings.DOUBLE, 0.0 );
- } else {
- i.current.setAvg( Bindings.DOUBLE, i.itemState.sum / duration);
+ // Update min-max
+ if (i.current.hasMin() && i.isNumeric && !isNanValue) {
+ Binding minBinding = i.current.getMinBinding();
+ Object prevMinValue = i.current.getMin();
+ Object currentValueWithMinBinding = value.getValue( minBinding );
+ int diff = minBinding.compare( prevMinValue, currentValueWithMinBinding );
+ if (diff>0) i.current.setMin( minBinding, currentValueWithMinBinding );
+ }
+ if (i.current.hasMax() && i.isNumeric && !isNanValue) {
+ Binding maxBinding = i.current.getMaxBinding();
+ Object prevMaxValue = i.current.getMax();
+ Object currentValueWithMaxBinding = value.getValue( maxBinding );
+ int diff = maxBinding.compare( prevMaxValue, currentValueWithMaxBinding );
+ if (diff<0) i.current.setMax( maxBinding, currentValueWithMaxBinding );
}
- }
- // Update min-max
- if (i.current.hasMin() && i.isNumeric && !isNanValue) {
- Binding minBinding = i.current.getMinBinding();
- Object prevMinValue = i.current.getMin();
- Object currentValueWithMinBinding = value.getValue( minBinding );
- int diff = minBinding.compare( prevMinValue, currentValueWithMinBinding );
- if (diff>0) i.current.setMin( minBinding, currentValueWithMinBinding );
- }
- if (i.current.hasMax() && i.isNumeric && !isNanValue) {
- Binding maxBinding = i.current.getMaxBinding();
- Object prevMaxValue = i.current.getMax();
- Object currentValueWithMaxBinding = value.getValue( maxBinding );
- int diff = maxBinding.compare( prevMaxValue, currentValueWithMaxBinding );
- if (diff<0) i.current.setMax( maxBinding, currentValueWithMaxBinding );
+ // Update median
+ if (i.current.hasMedian() && i.isNumeric && !isNanValue) {
+ Double median = i.itemState.median.getMedian();
+ i.current.setMedian( Bindings.DOUBLE, median);
+ }
+ } else {
+ i.current.setValueNull();
}
- // Update median
- if (i.current.hasMedian() && i.isNumeric && !isNanValue) {
- Double median = i.itemState.median.getMedian();
- i.current.setMedian( Bindings.DOUBLE, median);
- }
- } else {
- i.current.setValueNull();
- }
-
- // Add count
- if (i.current.hasCount()) {
- i.current.setCount( i.itemState.count );
+ // Add count
+ if (i.current.hasCount()) {
+ i.current.setCount( i.itemState.count );
+ }
}
// Write entry to file stream
// if (i.current.getTimeDouble()<0)
// System.err.println("Error sample "+i.current.getBinding().toString(i.current.getSample()));
i.stream.setNoflush( i.stream.size()-1, i.binding, i.current.getSample() );
+ //System.err.println(i.itemState.id + " update " + i.current.getSample());
}
if (condition) {
// Add the band to the file stream
i.stream.addNoflush( i.binding, i.current.getSample() );
+ //System.err.println(i.itemState.id + " add " + i.current.getSample());
}