예제 #1
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .UseSerilog()
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup <Runon>();

            GlobalApproach.PipeBuilder(true, Communication.EdgeService);

            EnableEdgeService = true;
        });
예제 #2
0
        internal static void BuildAsync()
        {
            if (YamlBase.Modules == null)
            {
                return;
            }

            Task.Run(async() =>
            {
                YamlBase.Modules.ForEach(async c =>
                {
                    switch (c.Launcher)
                    {
                    case nameof(Communication.CsvFile):
                        await Task.Run(() =>
                        {
                            if (c.Enable)
                            {
                                EnableCsvFile = true;
                                GlobalApproach.PipeBuilder(true, Communication.CsvFile);
                            }
                            ;
                        });
                        break;

                    case nameof(Communication.ModbusTcp):
                        await Task.Run(() =>
                        {
                            if (c.Enable)
                            {
                                EnableModbusTcp = true;
                                GlobalApproach.PipeBuilder(true, Communication.ModbusTcp);
                                IConstruction factory = SimpleFactory.BuildService(c.Arguments.Replace(" ", ""));
                                factory.Start();
                            }
                            ;
                        });
                        break;

                    case nameof(Communication.OpcUa):
                        await Task.Run(() =>
                        {
                            if (c.Enable)
                            {
                                EnableOpcUa = true;
                                GlobalApproach.PipeBuilder(true, Communication.OpcUa);
                            }
                            ;
                        });
                        break;
                    }
                });

                while (!EnableEdgeService)
                {
                    ;
                }

                if (EnableCsvFile == false)
                {
                    GlobalApproach.PipeBuilder(false, Communication.CsvFile);
                }
                if (EnableModbusTcp == false)
                {
                    GlobalApproach.PipeBuilder(false, Communication.ModbusTcp);
                }
                if (EnableOpcUa == false)
                {
                    GlobalApproach.PipeBuilder(false, Communication.OpcUa);
                }

                Console.WriteLine("\n Local IP => " + GeneralTools.GetLocalIP());

                string EquallyDivided = new('*', 14);

                Console.WriteLine($"{Welcome(WelcomeTitle)}\n {EquallyDivided} {ServiceTitle} {EquallyDivided}\n");

                await Task.Run(async() =>
                {
                    await Task.Delay(TimeSpan.FromSeconds(5));
                    if (!YamlBase.Propertie.Debug)
                    {
                        ShowWindow(GetConsoleWindow(), 0);
                    }
                });