Exemple #1
0
        static void Main(string[] args)
        {
            var configuration = GetConfigurationService(args).Get <Configuration>();

            if (!configuration.IsValid())
            {
                Console.Error.WriteLine("It is necessary to provide the DeviceApiEndpoint, and DeviceApiKey configuration properties via environment variables or command line arguments.");
                Environment.Exit(1);
            }
            Console.WriteLine("Starting with configuration: " + JsonConvert.SerializeObject(configuration));

            IO.Swagger.Client.Configuration.ApiKey = new Dictionary <string, string> {
                { "X-API-KEY", configuration.DeviceApiKey }
            };
            ApiClient  apliClient = new ApiClient(configuration.DeviceApiEndpoint);
            DevicesApi devicesApi = new DevicesApi(apliClient);

            Random random         = new Random();
            float  temperature    = random.Next(18, 30);
            float  airHumidity    = random.Next(0, 100);
            int    carbonMonoxide = random.Next(0, 5);

            string[] healthStatuses = { "needs_service", "needs_new_filter", "gas_leak", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK" };
            string   serialNumber   = Guid.NewGuid().ToString();

            devicesApi.RegisterDevice(new DeviceInfo {
                SerialNumber = serialNumber, FirmwareVersion = "1.0.0"
            });

            while (true)
            {
                devicesApi.SendReadings(new List <Reading> {
                    new Reading {
                        DateTime       = DateTime.UtcNow,
                        AirHumidity    = airHumidity,
                        Temperature    = temperature,
                        CarbonMonoxide = carbonMonoxide,
                        HealthStatus   = healthStatuses[random.Next(0, healthStatuses.Length)]
                    }
                }, serialNumber);
                temperature   += ((float)random.Next(-100, 100)) / 100f;
                airHumidity    = Math.Min(100f, airHumidity + ((float)random.Next(-100, 100)) / 100f);
                carbonMonoxide = Math.Min(10, Math.Max(carbonMonoxide + random.Next(-1, 2), 0));
                Thread.Sleep(60000);
            }
        }