JFreeChart: DynamicTimeSeries con un período de n milisegundos

Estoy intentando definir una interfaz en la que quiero trazar algunos valores recibidos por un dispositivo externo. Estos valores se reciben con una frecuencia que se puede configurar a través de la interfaz. Por supuesto, el período de la trama debe cambiar de acuerdo con el período definido por el usuario. Entonces comencé a definir el siguiente gráfico:

int periodMs = 200;
MilliDTSC dataset = new MilliDTSC(1,100, new MultipleOfMillisecond(periodMs));
dataset.setTimeBase(new MultipleOfMillisecond(periodMs))
dataset.addSeries(zeroSeries()),0,"Zero data") // zeroSeries returs a series with values set to 0
JFreeChart chart = createChart(dataset) // create the chart and set ranges and legends
ChartPanel panel = new ChartPanel(panel);

MilliDTSC es la siguiente clase, como se sugiereaqu:

public class MilliDTSC extends DynamicTimeSeriesCollection{
  public MilliDTSC(int nSeries, int nMoments, RegularTimePeriod timeSample){
    super(nSeries, nMoments, timeSample);
    if(timeSample instanceof Millisecond)
      this.pointsInTime = new Millisecond[nMoments]
    else if (timeSample instanceof MultipleOfMillisecond)
      this.pointsInTime = new MultipleOfMillisecond[nMoments]
  }
}

MultipleOfMillisecond es la siguiente clase:

public class MultipleOfMilliseconds extends Millisecond{
  MulitpleOfMilliseconds(int periodMs){
    this.periodMs = periodMs
  }

  public RegularTimePeriod previous(){
    RegularTimePeriod result = null;
    if(getMillisecond() - periodMs >= FIRST_MILLISECOND_IN_SECOND)
      result = new Millisecond((int)getMillisecond - periodMs, getSecond());
    else{
      Second previous = (Second)getSecond().previous();
      if(previous!=null)
        result = new Millisecond((int)(getMillisecond() - periodMS + LAST_MILLISECOND_IN_SECOND + 1), previous);
    }
    return result;
  }
  // similar for next()
}

Agrego muestra a la serie de la siguiente manera:

dataset.advanceTime();
dataset.appendData(newData);

o que esperaba es que una vez que fijé el período a 200 ms, el gráfico informa en la etiqueta X más o menos 5 valores de tiempo:

00:00:00.000 00:00:05.000 00:00:10.000 00:00:15.000 00:00:20.000

Y esperaba 25 muestras en cada "espacio".

Lo que sucede en su lugar es que tengo 25 muestras para cada "espacio", pero el gráfico informa los siguientes valores en la etiqueta X:

00:00:00.000 00:00:00.025 00:00:00.050 00:00:00.075 00:00:00.100

arece que el período es de 1 ms, pero estoy agregando muestras muy 200 ms.

¿Cómo puedo resolver el problema? Si no estaba claro, por favor dímelo. ¡¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta