Example #1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <GzipCompressionProviderOptions>(options => options.Level = CompressionLevel.Optimal);
            services.AddResponseCompression(options => options.Providers.Add <GzipCompressionProvider>());

            services.AddMvc()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
            .AddJsonOptions(options =>
            {
                options.SerializerSettings.Formatting       = Formatting.Indented;
                options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                options.SerializerSettings.Converters.Add(new StringEnumConverter {
                    NamingStrategy = new CamelCaseNamingStrategy()
                });
                options.SerializerSettings.Error = (object sender, Newtonsoft.Json.Serialization.ErrorEventArgs errorArgs) =>
                {      //Partial serialization
                    //todo Logger.Error("JsonParseError: " + errorArgs.ErrorContext.Error.Message);
                    errorArgs.ErrorContext.Handled = true;
                };
                options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            });

            services.AddSingleton(serviceProvider => DevServerConfig.ReadFromFile());
            services.AddSingleton <DevServer>();
        }
Example #2
0
        static void Main(string[] args)
        {
            try
            {
                Console.Title = "TechBrain";

                Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));

                var config    = DevServerConfig.ReadFromFile();
                var devServer = new DevServer(config);
                devServer.Start();

                var devices = devServer.DeviceRepository.GetAll();
                Console.Title = "TechBrain - Started";
                Console.ReadLine();
                //while (true)
                //{

                //}

                config.SaveToFile();
                devServer.DeviceRepository.Commit();
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
            }
        }
Example #3
0
        static void Main(string[] args)
        {
            try
            {
                Console.Title = "Simulator_TechBrain";
                Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));

                var config    = DevServerConfig.ReadFromFile();
                var devServer = new DevServer(config);
                if (devServer.DeviceRepository.Count == 0)
                {
                    devServer = new DevServer(config, Simulator.GenerateNewDevices(config));
                }
                devServer.Start();

                var devices = devServer.DeviceRepository.GetAll();
                var sim     = new Simulator(config, devices);
                sim.Start();
                foreach (var dev in devices)
                {
                    dev.IpPort    = config.Esp_TcpPort;
                    dev.SleepTime = null;
                }

                Thread.Sleep(100);
                devServer.PauseScan();
                while (true)
                {
                    sim.EspSend(devices[0].SerialNumber);
                    sim.EspSend(devices[1].SerialNumber);
                    Wrap("ping Esp", () => devices[0].Ping(), () => devices[0].IsOnline.ToStringNull());
                    Wrap("ping Esp_Avr", () => devices[1].Ping(), () => devices[0].IsOnline.ToStringNull());
                    Wrap("time Esp_Avr", () => devices[1].SetTime(DateTime.Now));
                    Wrap("sensors Esp_Avr", () => devices[1].UpdateSensors(), () => "=>" + Extender.JoinToString("; ", devices[1].Sensors.Select(v => v.Value as object)));
                    Wrap("outputs Esp", () => devices[0].SetOut(1, 23));
                    Wrap("outputs Esp_Avr", () => devices[1].SetOut(1, 100));
                    Wrap("sleep Esp", () => devices[0].Sleep(TimeSpan.FromSeconds(10)));
                    Wrap("sleep Esp_Avr", () => devices[1].Sleep(TimeSpan.FromSeconds(40)));

                    devServer.DeviceRepository.Commit();
                    Console.ReadLine();
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
            }
        }