关于iocomp IPlot说明资源的下载(不需要金币!):
iocomp iPlot使用说明
本系列博客均基于此说明展开。
本节内容对应资源P91-P98.
iPlot控件添加数据的方式很简单,通过控件对象指定通道后,使用AddXY后即可:
for(int i=0; i<100; i++)
{
XData = XData + 1; //Increment X Data
YData = (rand()/(double)RAND_MAX)*100; //Generate Random Y Data
m_iPlotX.GetChannel(0).AddXY(XData, YData); //Plot XY Data Pair
}
除了AddXY之外,还有其他添加数据的方式。这些方法使使用组件的内置计时器或计算机的内部系统时钟实时添加数据。、
- AddYElapsedSeconds:此方法添加您指定的Y数据和来自内部“秒”计数器的Y数据。如果您正在实时获取数据,并且希望使用内置的秒计时器,并且您无法从数据源访问独立的时间数据,则此选项非常有用。
iPlot1.Channel(0).AddYElapsedSeconds(YData)
- AddYElapsedTime:此方法添加指定的Y数据和来自内部时间计数器的Y数据。如果您正在实时获取数据,并且希望使用内置计时器,并且您无法从数据源访问独立的时间数据,则此选项非常有用。
iPlot1.Channel(0).AddYElapsedTime(YData)
- AddYNow:此方法添加指定的Y数据,以及来自计算机内部系统时钟(操作系统时钟)的Y数据。如果您正在实时获取数据,并且希望使用当前系统时间,并且您无法从数据源访问独立的时间数据,则此选项非常有用。
- AddYArray:此方法从一个变量数组中添加数据点,该数组只包含y值。然后,您将在数据点之间指定一个固定的X间隔。
iPlot1.Channel(0).AddYArray(XInterval, YDataArray)
- AddXYArray:此方法从包含x和y值的单个变量数组中添加数据点。数组必须是二维的,第一个维度包含X坐标数据,第二个维度包含Y坐标数据。两个维度必须具有相同数量的元素(即,如果第一个维度包含100个元素,则第二个维度必须包含100个元素),否则将生成异常。
iPlot1.Channel(0).AddXYArray(DataArray)
- AddXYArrays:此方法添加来自两个变量数组的数据点,每个数组包含x和y值。每个数组中的元素数必须相同(即如果XArray包含100个元素,则YArray必须包含100个元素),否则将生成异常)
iPlot1.Channel(0).AddXYArrays(XArray, YArray)
7.AddEmpty:此方法将数据点设置为空数据点。空数据点是没有X或Y值的数据点,只是数据点的索引占位符。由于此数据点没有X或Y值,因此不会显示任何数据标记,并且不会将跟踪线绘制到此数据点。这对于添加数据点“占位符”非常有用,以便您可以在以后设置数据点的X和Y值。
8. AddXNull:此方法在指定的X数据点添加数据点。Y值将设置为Null。
iPlot1.Channel(0).AddXNull(10.5)
如果在将数据点添加到通道后需要修改或读取数据点,可以使用以下属性和/或方法更改数据点的X或Y值。您需要知道数据点的索引才能进行此修改(添加数据点时,索引由AddXY和其他add data函数传回)…
Index = m_iPlot1.GetChannel(0).AddXY(10.5, 20.5); //Add a data point and get the data point's Index
m_iPlot1.GetChannel(0).SetDataX(Index, 11); //Change the data point's X and Y Value
m_iPlot1.GetChannel(0).SetDataY(Index, 21);
DataPointXValue = m_iPlot1.GetChannel(0).GetDataX(Index); //Read the data point's X and Y Value
DataPointYValue = m_iPlot1.GetChannel(0).GetDataY(Index);
我们可以在程序运行时读取Y值的最大值,最小值和平均值。
YMaxValue = iPlot1.Channel(Index).RunningYMax
YMinValue = iPlot1.Channel(Index).RunningYMin
YMeanValue = iPlot1.Channel(Index).RunningYMean
使用RunningYMax/RunningYMin/RunningYMean的缺点是,当你更改以前的数据点,这些值将不再有效,若要重新计算这些值,我们可以使用:
YMaxValue = iPlot1.Channel(Index).GetYMax
YMinValue = iPlot1.Channel(Index).GetYMin
YMeanValue = iPlot1.Channel(Index).GetYMean