/// <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; } }
/// <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(); }