public void OnAOTAFormClosing() { if (m_AOTAFormVisible) { ILightCurveDataProvider dataProvider = m_TangraHost.GetLightCurveDataProvider(); AotaReturnValue result = m_OccultWrapper.GetAOTAResult(); string directory = Path.GetDirectoryName(dataProvider.FileName); if (directory != null) { if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } var debugFileName = Path.ChangeExtension(dataProvider.FileName, ".aota.xml"); TrySaveReport(debugFileName, result); } if (result != null && result.AreResultsAvailable) { dataProvider.SetTimeExtractionEngine(result.AOTAVersion); if (result.IsMiss) { dataProvider.SetNoOccultationEvents(); } else { for (int i = 0; i < 5; i++) { if (!result.EventResults[i].IsNonEvent) { dataProvider.SetFoundOccultationEvent( i, result.EventResults[i].D_Frame, result.EventResults[i].R_Frame, result.EventResults[i].D_FrameUncertMinus, result.EventResults[i].D_FrameUncertPlus, result.EventResults[i].R_FrameUncertMinus, result.EventResults[i].R_FrameUncertPlus, result.EventResults[i].D_UTC, result.EventResults[i].R_UTC, result.CameraResult.CameraDelaysKnownToAOTA, result.CameraResult.FramesIntegrated); } } } } m_AOTAFormVisible = false; dataProvider.FinishedLightCurveEventTimeExtraction(); } }
private void TrySaveReport(string fullFileName, AotaReturnValue result) { if (result == null) { File.WriteAllText(fullFileName, "null"); return; } try { var xmlSer = new XmlSerializer(typeof(AotaReturnValue)); using (var fs = new FileStream(fullFileName, FileMode.Create, FileAccess.ReadWrite)) { xmlSer.Serialize(fs, result); } } catch (Exception ex) { Trace.WriteLine(ex); } }