我遇到了这个问题,为Java中的应用程序编写代码,该代码与外部设备Uc连接,外部设备Uc从多个ADC通道获取样本并将它们发送回应用程序以进行处理和绘图。我的问题是,我不知道如何对与每个采样通道相对应的样本数据进行排序和存储以供以后处理,因为我无法一次性地描述所有数据,即3个不同的通道。任何建议将不胜感激!
答案 0 :(得分:0)
1)创建一个全局int变量(比如int eventTimer)并创建一个定时器,该定时器将拥有自己的线程,在每个定时器滴答时增加此eventTimer。根据采样率设置定时器的周期。
2)为每个频道创建一个地图,以存储“阅读时间和阅读价值”,如:
Map<int, float> readingsFromChannel1 = new HashMap<int, float>();
每当您收到该频道的新阅读时,请将其附加到地图中,如:
float value; // the value that you just get from channel 1
readingsFromChannel1.put(eventTimer, value);
3)在图表的绘图功能中:
// drawing of channel1 data:
iterator it = readingsFromChannel1.iterator();
while(it.next())
{
Map.Entry m =(Map.Entry)it.next();
int key=(Integer)m.getKey();
float value=(float)m.getValue();
// I assume that you have a putpixel(x,y) method for drawing:
putPixel(key - eventTimer, value);
}