public override SimpleDatum GetData(bool bNormalize, out int nDataLen) { int nScale = 4; nDataLen = 4; Valuemap data = new Valuemap(1, 6, 1); data.SetPixel(0, 0, getValue(m_dfX, -MAX_X, MAX_X, bNormalize)); data.SetPixel(0, 1, getValue(m_dfXDot, -MAX_X * nScale, MAX_X * nScale, bNormalize)); data.SetPixel(0, 2, getValue(m_dfTheta, -MAX_THETA, MAX_THETA, bNormalize)); data.SetPixel(0, 3, getValue(m_dfThetaDot, -MAX_THETA * nScale * 2, MAX_THETA * nScale * 2, bNormalize)); data.SetPixel(0, 4, getValue(m_dfForceMag, -100, 100, bNormalize)); data.SetPixel(0, 5, m_nSteps); return(new SimpleDatum(data)); }
/// <summary> /// Query the next data in the streaming database. /// </summary> /// <param name="nWait">Specfies the maximum amount of time (in ms.) to wait for data.</param> /// <returns>A simple datum containing the data is returned.</returns> public SimpleDatum Query(int nWait) { if (!m_colData.WaitForCount(nWait)) { return(null); } int nCount = m_nQueryCount * m_nFieldCount; Valuemap vals = new Valuemap(1, m_nFieldCount, m_nQueryCount); double[] rgLast = null; for (int i = 0; i < m_nQueryCount; i++) { DataItem di = m_colData.GetData(nWait); if (di == null) { throw new Exception("The data item should not be null!"); } double[] rgItem = di.GetData(); for (int j = 0; j < rgItem.Length; j++) { vals.SetPixel(i, j, rgItem[j]); } rgLast = rgItem; } SimpleDatum sd = new SimpleDatum(vals); sd.TimeStamp = Utility.ConvertTimeFromMinutes(rgLast[0]); return(sd); }