diff options
| author | a1xd <[email protected]> | 2020-09-27 23:04:29 -0400 |
|---|---|---|
| committer | a1xd <[email protected]> | 2020-09-27 23:04:29 -0400 |
| commit | 85aefb4ba131521595e48fe1a25f4db9a69e71e6 (patch) | |
| tree | f1c73a42b369f362a40ea251281d98ee02bf0a98 /writer/Program.cs | |
| parent | add os detection to installer (diff) | |
| download | rawaccel-85aefb4ba131521595e48fe1a25f4db9a69e71e6.tar.xz rawaccel-85aefb4ba131521595e48fe1a25f4db9a69e71e6.zip | |
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
Diffstat (limited to 'writer/Program.cs')
| -rw-r--r-- | writer/Program.cs | 64 |
1 files changed, 54 insertions, 10 deletions
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<DriverSettings>(); + + 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} <file>", 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<DriverSettings>(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()); } } } |