/// <summary>
        /// 数据到达事件处理函数
        /// 1.将数据传到dataWriter中为写文件做准备
        /// 2.更新最新数据latestData
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DataArrivalHandler(object sender, DataArrivalEventArgs e)
        {
            //sender其实就是ai
            IBasicAI thisAI = (IBasicAI)sender;

            double[,] newData = e.NewData;
            //只有AutoWriteDataToFile == true,才存文件
            if (thisAI.StaticConfig.AutoWriteDataToFile)
            {
                //传数据到dataWriter
                dataWriter.AcceptNewData(newData);
            }

            //更新最新数据latestData
            int latestdataIndex;

            //如果数据格式为“data[通道个数][每通道数据个数]”则不需要转置;
            //如果数据格式为“data[每通道数据个数][通道个数]”则需要转置
            if (basicAI.DataNeedTransposeWhenSaving)
            {
                latestdataIndex = newData.GetUpperBound(0);
                for (int i = 0; i < ChannelCount(-1); i++)
                {
                    latestData[i] = newData[latestdataIndex, i];
                }
            }
            else
            {
                latestdataIndex = newData.GetUpperBound(1);
                for (int i = 0; i < ChannelCount(-1); i++)
                {
                    latestData[i] = newData[i, latestdataIndex];
                }
            }
        }
Exemple #2
0
 public void Begin()
 {
     for (int i = 0; i < 400; i++)
     {
         double[,] data = new double[16, 10000];
         for (int j = 0; j < 16; j++)
         {
             for (int k = 0; k < 10000; k++)
             {
                 data[j, k] = i * 10000 + k;
             }
         }
         dataWriter.AcceptNewData(data);
         Thread.Sleep(5);
     }
     dataWriter.FinishWrite();
 }