private static async Task RunTestWithLoadedConfig(ILogger sublogger, string ConfigDir) { Version v = Assembly.GetExecutingAssembly().GetName().Version; DirectoryInfo appDir = Directory.GetParent(Assembly.GetEntryAssembly().Location); DirectoryInfo appParentDir = new DirectoryInfo(appDir.Parent.FullName); DirectoryInfo appLogDir = new DirectoryInfo($"{appParentDir.FullName}{Path.DirectorySeparatorChar}logs"); string rootPath = ConfigDir; //$"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}{Path.DirectorySeparatorChar}"; string repositoryConfigPath = $"{rootPath}{Path.DirectorySeparatorChar}repository.xml.config"; string machineSubscriptionsPath = $"{rootPath}{Path.DirectorySeparatorChar}machines.xml.config"; var configMananger = new RepositoryFactory().LoadFrom(repositoryConfigPath); var influxServerAddress = new Uri($"http://{configMananger.Config.DatabaseIPaddress}:{configMananger.Config.DatabasePort}"); var ping = new Ping(); var reply = ping.Send(influxServerAddress.Host); if (reply.Status != IPStatus.Success) { sublogger.Fatal("Ping to Database Server Failed. Exiting..."); return; } var repo = new MachineRepository(configMananger.Config.DatabaseIPaddress, databaseName: configMananger.Config.DatabaseName, port: Convert.ToInt32(configMananger.Config.DatabasePort)); if (!repo.CanConnect()) { sublogger.Fatal("Can't Connect to DB Server. Exiting..."); return; } var _pressWriterInflux = new RepositoryWriterPressInflux(repo, sublogger); var _messageProcessor = new MessageProcessor(sublogger); var machines = new CollectorManagerFactory().LoadFromFile(machineSubscriptionsPath).WithRepoWriter(_pressWriterInflux).WithLogger(sublogger).Build(); var topicHandlers = new TopicHandlerFactory().AddMachines(machines).Build(); _messageProcessor.AddMachineTopicHandlers(topicHandlers); var _collector = new MQTTCollector(_messageProcessor, sublogger); Console.WriteLine("Starting Collection"); _collector.Start(); _messageProcessor.StartProcessing(); Console.WriteLine("Waiting indefinitely"); await _collector.WaitUntilStoppedAsync(); }
static void StartRepoMockTest() { string _loggingPath = $"{System.Reflection.Assembly.GetExecutingAssembly().Location}Collector{Path.DirectorySeparatorChar}"; ILogger logger = new LoggerConfiguration() .WriteTo.Console().MinimumLevel.Information() .CreateLogger(); string IPAddress = "192.168.10.11"; string MAC = "00D0C9FCA9BA"; var _pressWriterInflux = new RepositoryWriterMachineMock( (machine, IsConnected) => { logger.Information($"Mock Connection Write: {machine.Line}-{machine.MAC}-{IsConnected}"); }, (machine, IsCycling) => { logger.Information($"Mock Status Write: {machine.Line}-{machine.MAC}-{IsCycling}"); return(DateTime.UtcNow); } ); var realPress = new PressAdam6051( new Repository.Model.MachineInfoInflux() { IPAddress = IPAddress, MAC = MAC, Line = "Y-1-1", Department = Tag.Value.DepartmentPartsProduction, Name = "BC-80020001-0000" }, _pressWriterInflux, new PressAdam6051PayloadConverterStatus(), logger ); var _pressList = new List <PressAdam6051>(); _pressList.Add(realPress); for (int i = 2; i < 13; i++) { _pressList.Add(new PressAdam6051(new Repository.Model.MachineInfoInflux() { IPAddress = IPAddress, MAC = "00D0C9FCA9BA", Line = $"Z-1-{i}", Department = Tag.Value.DepartmentPartsProduction, Name = $"BC-801{"0000":i}-0000", }, _pressWriterInflux, new PressAdam6051MessageConverterMock(i), logger) ); } //var _listOfTopicHandlers = new List<ITopicMessageHandler>(); var PressTopicHandlerForData = new TopicHandler(realPress.TopicForStatus, realPress); //_listOfTopicHandlers.Add(PressTopicHandlerForData); var _messageProcessor = new MessageProcessor(logger); _messageProcessor.AddMachineTopicHandler(PressTopicHandlerForData); foreach (var press in _pressList) { _messageProcessor.AddMachineTopicHandler(new TopicHandler(press.TopicForStatus, press)); } var _collector = new MQTTCollector(_messageProcessor, logger); _collector.Start(); _messageProcessor.StartProcessing(); _collector.WaitUntilStopped(); }
private static async Task RunTestNotLoadedFromFileTest(ILogger sublogger) { string IPAddress = "192.168.10.11"; string MAC = "00D0C9FCA9BA"; // var influxServerAddress = new Uri("http://192.168.1.208:8086"); var repo = new MachineRepository("192.168.1.208"); if (!repo.CanConnect()) { sublogger.Fatal("Can't Connect to DB Server. Exiting..."); return; } var _pressWriterInflux = new RepositoryWriterPressInflux(repo, sublogger); var realPress = new PressAdam6051( new Repository.Model.MachineInfoInflux() { IPAddress = IPAddress, MAC = MAC, Line = "Y-1-1", Department = Tag.Value.DepartmentPartsProduction, Name = "Y-1-1" }, _pressWriterInflux, new PressAdam6051PayloadConverterStatus(), sublogger ); var _pressList = new List <PressAdam6051>(); _pressList.Add(realPress); for (int i = 2; i < 13; i++) { _pressList.Add(new PressAdam6051(new Repository.Model.MachineInfoInflux() { IPAddress = IPAddress, MAC = "00D0C9FCA9BA", Line = $"Z-1-{i}", Department = Tag.Value.DepartmentPartsProduction, Name = $"Z-1-{i}", }, _pressWriterInflux, new PressAdam6051MessageConverterMock(i), sublogger) ); } //var _listOfTopicHandlers = new List<ITopicMessageHandler>(); var PressTopicHandlerForData = new TopicHandler(realPress.TopicForStatus, realPress); //_listOfTopicHandlers.Add(PressTopicHandlerForData); var _messageProcessor = new MessageProcessor(sublogger); _messageProcessor.AddMachineTopicHandler(PressTopicHandlerForData); foreach (var press in _pressList) { _messageProcessor.AddMachineTopicHandler(new TopicHandler(press.TopicForStatus, press)); } var _collector = new MQTTCollector(_messageProcessor, sublogger); Console.WriteLine("Starting Collection"); //await _collector.StartAsync(); _collector.Start(); _messageProcessor.StartProcessing(); Console.WriteLine("Waiting indefinitely"); await _collector.WaitUntilStoppedAsync(); }