示例#1
0
        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;
                }
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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");
            }
        }
示例#4
0
 public DeviceDetailPage(Connection.Devices.Device device)
 {
     InitializeComponent();
     ViewModel.Device = device;
 }