/// <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]; } } }
private void wskClient_DataArrival(object sender, DataArrivalEventArgs e) { if (ClientLog) { LogClient(string.Format("Data Arrival ({0}: {1} bytes)", e.RemoteIP, e.TotalBytes)); } object data = (wskClient.LegacySupport) ? wskClient.Get <string>() : wskClient.Get(); if (data.GetType() == typeof(string)) { LogClient(string.Format("Received: {0}", data)); } else if (data.GetType() == typeof(FileData)) { LogClient(string.Format("File Received: {0}", ((FileData)data).FileName)); HandleIncomingFile((FileData)data); } else { LogClient(string.Format("Data Arrived: {0}", data.GetType())); } }