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); } }
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); }
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>(); }
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; } }
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; }
public DevServer(DevServerConfig config) { _config = config; DeviceRepository = new DeviceRepository(config.PathDevices); }
public DevServer(DevServerConfig config, IEnumerable <Device> devices) : this(config) { DeviceRepository = new DeviceRepository(config.PathDevices, devices); DeviceRepository.Commit(); }
public Simulator(DevServerConfig config, List <Device> devices) { this.config = config; this.devices = devices; }