예제 #1
0
        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));
        }
예제 #2
0
        /// <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);
        }