private static async Task RegisterDeviceAsync(Connection.Devices.Device device) { var devReg = await Client.RegisterDeviceAsync(device, false); if (devReg.Success) { Console.WriteLine("Device was successfully registered"); } else { switch (devReg.Message) { case RegisterDeviceMessage.Unknown: Console.WriteLine("Unknown error"); break; case RegisterDeviceMessage.Unauthorized: Console.WriteLine("Failed to authorize"); break; case RegisterDeviceMessage.DeviceExists: Console.WriteLine("This device was already registered"); break; } } }
private static Connection.Devices.Device GetOrInitDevice(string[] args) { Connection.Devices.Device device; if (args.Contains("init")) { device = new Connection.Devices.Device(); device.Id = Guid.NewGuid().ToString(); device.Name = WaitForInput("Name : "); Console.Write("Description (optional) : "); device.Description = Console.ReadLine(); var js = JsonConvert.SerializeObject(device, Formatting.Indented); using (var fs = new FileStream("device.json", FileMode.Create, FileAccess.Write)) using (var sw = new StreamWriter(fs)) { sw.Write(js); } Console.WriteLine("Json successfully exported to device.json"); } else { if (!GetArgument(args, "-dev", out var path)) { path = "device.json"; } if (!File.Exists(path)) { Console.WriteLine("Device configuration file does not exist."); Console.WriteLine("Please provide device.json at the current directory or use \"-dev <PATH>\" parameter."); Console.WriteLine("If you don't have any file, add \"init\" argument to initialize new one"); return(null); } using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read)) using (var sr = new StreamReader(fs)) { var js = sr.ReadToEnd(); device = JsonConvert.DeserializeObject <Connection.Devices.Device>(js); } } return(device); }
static async Task SendRecordAsync(string[] args, Connection.Devices.Device device) { GetArgument(args, "-SI", out var siStr); GetArgument(args, "-axes", out var axesStr); GetArgument(args, "-temp", out var tempStr); GetArgument(args, "-humidity", out var humidStr); GetArgument(args, "-window", out var windowStr); if (float.TryParse(siStr, out var si) && int.TryParse(axesStr, out var axes) && float.TryParse(tempStr, out var temp) && float.TryParse(humidStr, out var humid) && int.TryParse(windowStr, out var windowInt)) { if (humid > 1 || humid < 0) { Console.WriteLine("humidity must be 1 or less than 1 and 0 or greater than 0"); return; } if (axes > 2 || axes < 0) { Console.WriteLine("axes must be 0 to 2"); return; } if (windowInt > 2 || windowInt < 0) { Console.WriteLine("window state must be 0 to 2"); return; } if (await Client.RecordAsync(device.Id, si, (Axes)axes, temp, humid, (WindowState)windowInt)) { Console.WriteLine("OK"); } else { Console.WriteLine("Failed to send record. Please check the authorization data"); } } else { Console.WriteLine("You must provide SI, axes, temp, humidity parameters"); } }
public DeviceDetailPage(Connection.Devices.Device device) { InitializeComponent(); ViewModel.Device = device; }