From 85aefb4ba131521595e48fe1a25f4db9a69e71e6 Mon Sep 17 00:00:00 2001 From: a1xd <68629610+a1xd@users.noreply.github.com> Date: Sun, 27 Sep 2020 23:04:29 -0400 Subject: add arg checks in wrapper minor changes to settings shape, requires driver reinstall add error handling to writer grapher changes: add prettier serialization + comments add elements for scale and separated limit/exp reset irrelevant (invisible) arg input before checks/write --- writer/Program.cs | 64 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 10 deletions(-) (limited to 'writer/Program.cs') diff --git a/writer/Program.cs b/writer/Program.cs index 7f9c37c..2d4128f 100644 --- a/writer/Program.cs +++ b/writer/Program.cs @@ -1,4 +1,5 @@ -using Newtonsoft.Json; +using Microsoft.CSharp.RuntimeBinder; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; @@ -6,24 +7,67 @@ using System.IO; namespace writer { + class Program { + static void Send(JToken settingsToken) + { + var settings = settingsToken.ToObject(); + + var errors = DriverInterop.GetSettingsErrors(settings); + if (errors.Empty()) + { + DriverInterop.Write(settings); + return; + } + + foreach (var err in errors.x) + { + Console.WriteLine(err + (settings.combineMagnitudes ? "" : " (x)")); + } + foreach (var err in errors.y) + { + Console.WriteLine(err + " (y)"); + } + } + static void Main(string[] args) { + if (args.Length != 1 || args[0].Equals("help")) + { + Console.WriteLine("USAGE: {0} ", System.AppDomain.CurrentDomain.FriendlyName); + return; + } + + if (!File.Exists(args[0])) + { + Console.WriteLine("Settings file not found at {0}", args[0]); + return; + } + try { - var serializerSettings = new JsonSerializerSettings + var JO = JObject.Parse(File.ReadAllText(args[0])); + + if (JO.ContainsKey(DriverSettings.Key)) { - MissingMemberHandling = MissingMemberHandling.Error, - }; - var token = JObject.Parse(File.ReadAllText(args[0]))["AccelerationSettings"]; - var settings = token.ToObject(JsonSerializer.Create(serializerSettings)); - DriverInterop.SetActiveSettings(settings); + Send(JO[DriverSettings.Key]); + return; + } + + Send(JO); + } + catch (JsonException e) + { + Console.WriteLine("Settings invalid:\n{0}", e.Message.ToString()); + } + catch (DriverNotInstalledException) + { + Console.WriteLine("Driver is not installed"); } catch (Exception e) - { - Console.WriteLine(e); - Console.ReadLine(); + { + Console.WriteLine("Error: {0}", e.Message.ToString()); } } } -- cgit v1.2.3