Я пытаюсь определить интерфейс, в котором я хочу отобразить некоторые значения, полученные внешним устройством.Эти значения принимаются с частотой, которая может быть установлена через интерфейс.Конечно, период сюжета должен меняться в зависимости от периода, определенного пользователем.Поэтому я начал определять следующую диаграмму:
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
- следующий класс, как предлагается здесь :
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
- этоследующий класс:
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()
}
Я добавляю выборку в серию следующим образом:
dataset.advanceTime();
dataset.appendData(newData);
Я ожидал, что после того, как я установил период в 200 мс, график отобразит отчетX обозначает более или менее 5 значений времени:
00:00:00.000 00:00:05.000 00:00:10.000 00:00:15.000 00:00:20.000
И я ожидал 25 выборок в каждом «пространстве».
Вместо этого у меня есть 25 выборок для каждого «пространства», нодиаграмма показывает следующие значения на метке X:
00:00:00.000 00:00:00.025 00:00:00.050 00:00:00.075 00:00:00.100
Кажется, что период составляет 1 мс, но я добавляю выборки очень 200 мс.
Как я могу решить проблему?Если мне было непонятно, пожалуйста, скажите мне.Спасибо !!