Example #1
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 #2
0
        public static List <Device> GenerateNewDevices(DevServerConfig config)
        {
            var lst = new List <Device>();

            lst.Add(new Device(config.DeviceCacheTime)
            {
                Id           = 1,
                SerialNumber = 1,
                SleepTime    = TimeSpan.FromMinutes(1),
                HasResponse  = true,
                HasTime      = false,
                Name         = "FirstESP",
                Type         = DeviceTypes.ESP,
                Outputs      = new List <Output>()
                {
                    new Output()
                    {
                        Id   = 1,
                        Name = "TestOut1",
                        Type = OutputTypes.Pwm,
                    }
                },
                ResponseTimeout = 2000,
                IpPort          = config.Esp_TcpPort,
            });
            lst.Add(new Device(config.DeviceCacheTime)
            {
                Id           = 2,
                SerialNumber = 2,
                SleepTime    = TimeSpan.FromMinutes(1),
                HasResponse  = true,
                HasTime      = true,
                Name         = "FirstESP_AVR",
                Type         = DeviceTypes.ESP_AVR,
                Outputs      = new List <Output>()
                {
                    new Output()
                    {
                        Id   = 1,
                        Name = "TestOut1",
                        Type = OutputTypes.Digital,
                    }
                },
                Sensors         = new List <Sensor>(),
                ResponseTimeout = 5000,
                IpPort          = config.Esp_TcpPort,
            });

            for (int i = 0; i < 4; ++i)
            {
                var sensor = new Sensor()
                {
                    Id   = i + 1,
                    Name = "Sensor " + i + 1,
                };
                lst[1].Sensors.Add(sensor);
            }

            return(lst);
        }
Example #3
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 #4
0
        private bool disposedValue = false; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                }
                DeviceRepository = null;
                Stop();
                disposedValue = true;
                _config       = null;
            }
        }
Example #5
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);
            }
        }
 public DeviceServerController(DevServerConfig devServerConfig)
 {
     DevServerConfig = devServerConfig;
 }
Example #7
0
 public DevServer(DevServerConfig config)
 {
     _config          = config;
     DeviceRepository = new DeviceRepository(config.PathDevices);
 }
Example #8
0
 public DevServer(DevServerConfig config, IEnumerable <Device> devices) : this(config)
 {
     DeviceRepository = new DeviceRepository(config.PathDevices, devices);
     DeviceRepository.Commit();
 }
Example #9
0
 public Simulator(DevServerConfig config, List <Device> devices)
 {
     this.config  = config;
     this.devices = devices;
 }