/// <summary> /// The main entry point for the application. /// </summary> static void Main() { while (true) { try { log.Info("Starting Main"); MetricsServiceSettings settings = new MetricsServiceSettings(); Program.project = getProject(); Program.reader = makeMetricsReader(project, settings); Program.exporter = makseMetricsExporter(settings); log.Info("Created Dependencies"); reader.VariablesUpdated += (object sender, VariablesUpdatedEventArgs args) => exporter.SendMetric(args.variables); var ServiceToRun = new ZenOnMetricsExporterService(reader); log.Info("Created Service"); ServiceToRun.OnStart(); log.Info("Service Running"); log.Info($"Waiting for thread to exit {ServiceToRun.readerThread.ThreadState}"); ServiceToRun.readerThread.Join(); log.Info($"Thread exited {ServiceToRun.readerThread.ThreadState}"); } catch (Exception ex) { log.Error(ex); Thread.Sleep(OneMinute); } } }
static WsMetricsExporter makseMetricsExporter(S7ExporterServiceSettings settings, string serviceName, string LinienName) { WsMetricsExporter exporter = new WsMetricsExporter( new WebSocketSharp.WebSocket(settings.MetricsWsEndpoint), serviceName, LinienName, settings.Location, Convert.ToInt32(settings.MetricsWsPingIntervalSec) ); return(exporter); }