public XDocument Convert(IConvertibleModel model) { SpektrumModel newModel = new SpektrumModel(); newModel.Spektrum.Name = model.StandardizedModelInformation.ModelName; newModel.Spektrum.VCode = " 1.05"; string serializedModelString = SerializationHelper <SpektrumModel> .Serialize(newModel); return(XDocument.Parse(serializedModelString));// }
public XDocument Convert(IConvertibleModel model) { _Logger.Info("Converting model to a Spektrum DX8 radio type."); SpektrumModel newDX8Model = new SpektrumModel(); _Logger.Debug("Model: {0}", model.StandardizedModelInformation.ModelName); _Logger.Debug("Converting the model information."); newDX8Model.Spektrum.Name = model.StandardizedModelInformation.ModelName; newDX8Model.Spektrum.VCode = model.StandardizedModelInformation.Version; _Logger.Debug("Converting the configuration information."); newDX8Model.Config.FrameRate = model.StandardizedConfiguration.FrameRate; newDX8Model.Config.trimMode = model.StandardizedConfiguration.TrimMode; newDX8Model.Config.TrimType = model.StandardizedConfiguration.TrimType; _Logger.Debug("Converting the trainer information."); newDX8Model.Trainer.Type = model.StandardizedTrainer.Type; _Logger.Debug("Converting FMode."); newDX8Model.FMode.switch_a = model.StandardizedFlightMode.SwitchA; newDX8Model.FMode.switch_b = model.StandardizedFlightMode.SwitchB; newDX8Model.FMode.switch_c = model.StandardizedFlightMode.SwitchC; newDX8Model.FMode.size = model.StandardizedFlightMode.Size; DateTime start = DateTime.Now; _Logger.Debug("Starting serialization..."); string serializedModelString = SerializationHelper <SpektrumModel> .Serialize(newDX8Model); _Logger.Debug("Serialization complete. It took: {0}", DateTime.Now - start); StreamReader sReader = new StreamReader(new MemoryStream(System.Text.UTF8Encoding.Default.GetBytes(serializedModelString))); XmlReader reader = XmlReader.Create(sReader); return(XDocument.Load(reader)); }
static void Main(string[] args) { LogManager.EnableLogging(); if (args == null || args.Length < 1) { _Logger.Info(USAGE); return; } else if (args.Length == 1) { foreach (string argTest in CHECKS) { if (args [0].Contains(argTest)) { string newArg = argTest; string newArgPos0 = args [0].Replace(newArg, string.Empty); if (!newArgPos0.StartsWith(" ")) { int index = newArgPos0.IndexOf(" "); newArg += newArgPos0.Substring(0, index); newArgPos0 = newArgPos0.Substring(index); } args [0] = newArgPos0.Trim(); List <string> newArgs = new List <string> (args); if (argTest.StartsWith("-")) { newArgs.Insert(0, newArg); } else { newArgs.Add(newArg); } args = newArgs.ToArray(); } } } string filename = args.LastOrDefault(); if (args.Contains(DEBUG_FLAG)) { System.Diagnostics.Debugger.Launch(); } Reader reader = SPMReaderFactory.CreateReader(filename); try { _Logger.Info("Reading file for {0} model of radio.", reader.ModelName); reader.Read(); } catch (NotImplementedException) { string errorMsg = string.Format("The radio model, {0}, is not supported at this time.", reader.ModelName); _Logger.Error(errorMsg); Console.Error.WriteLine(errorMsg); return; } if (reader == null) { string errorMsg = "Unable to match the radio model to this file. Please check that you're submitting a valid file type."; _Logger.Error(errorMsg); Console.Error.WriteLine(errorMsg); return; } if (args.Contains(WRITE_XML_FLAG)) { _Logger.Info("Outputing standardized model XML."); _Logger.Info("Preparing XML document."); object doc = ((SPMReader.Readers.Spektrum.Spektrum)(reader)).ExportXDocument(); string output = null; if (doc != null) { output = doc.ToString(); } string outputFilename = filename.Substring(0, filename.Length - 4) + ".xml"; string temp = Path.GetTempFileName(); File.WriteAllText(temp, output); _Logger.Info("Ouptting XML document to: {0}", outputFilename); File.Copy(temp, outputFilename, true); } else if (args.Any(a => a.StartsWith(CONVERT_FLAG))) { if (!(reader is IConvertibleReader)) { _Logger.Info("The reader, {0}, does not support converting of files.", reader.ModelName); return; } string convertTo = args.Where(a => a.StartsWith(CONVERT_FLAG)).FirstOrDefault().Split(new char[] { ':' }).LastOrDefault(); _Logger.Info("Attempting file conversion."); IConvertibleModel baseModel = ((IConvertibleReader)reader).LoadConvertableModel(); IConvertibleWriter writer = ConversionWriterFactory.LoadConvertableWriter(convertTo); XDocument newFileContents = writer.Convert(baseModel); ((Writer)writer).WriteToModelFile(Path.GetTempFileName(), newFileContents); } _Logger.Info("Done!"); //LogManager.Shutdown (); }