예제 #1
0
        /// <summary>
        /// AI任务状态变化事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void StatusChangedHandler(object sender, EventArgs e)
        {
            //sender其实就是ai
            AI thisAI = (AI)sender;

            switch (thisAI.AIState)
            {
            case Status.Idle:
                AIState = Status.Idle;
                break;

            case Status.Ready:
                //创建下一个文件夹
                CurrentFileDirectiory = DataFileWriter.CreateNextDirectory(DataFileParentDirectory);
                //new CurrentData,缓存当前炮数据及将数据写入文件
                dataWriter = new DataWriter(CurrentFileDirectiory, AllActiveChannels.Count);
                AIState    = Status.Ready;
                break;

            case Status.Running:
                AIState = Status.Running;
                break;

            case Status.Error:
                thisAI.StopTask();
                AIState = Status.Error;
                break;

            default:
                break;
            }
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fileDirectory">保存数据和配置文件的文件夹</param>
        /// <param name="channelCount">通道数</param>
        public DataWriter(string fileDirectory, int channelCount)
        {
            shouldFinish      = false;
            isFinished        = false;
            dataQueue         = new Queue <double[, ]>();
            TotalSampleCount  = 0;
            totalChannelCount = channelCount;
            rtDataArray       = new double[totalChannelCount];

            dataFileWriter = new DataFileWriter(fileDirectory);

            OperateFile();
        }