Esempio n. 1
0
        private void LoadConfigModbusMapper(IServiceCollection services)
        {
            string sqlite_conn_str         = Configuration.GetConnectionString("sqlite");
            SqliteAccessManager dam        = new SqliteAccessManager(sqlite_conn_str);
            ModbusSystem        modbusList = Configuration.GetSection("Modbus").Get <ModbusSystem>();

            using (DataAccess da = new DataAccess(dam.SessionFactory))
            {
                modbusList.GroupPoints        = da.Select <GroupPoint>();
                modbusList.GroupDigitalPoints = da.Select <EventGroupPoint>();
                services.AddSingleton(modbusList);
                services.AddSingleton <IModbusFactory, ModbusConnectionFactory>();

                EventMap map = new EventMap();
                map.Load();

                services.AddSingleton(map);

                AbsMqttBase.SetDefaultLoggerName("nlog.config", true);
                EventPublisherWorker worker = new EventPublisherWorker();
                worker.Initialize();

                services.AddSingleton(worker);

                services.AddSingleton <Microsoft.Extensions.Hosting.IHostedService, ModbusBackgroundService>();
                services.AddSingleton <Microsoft.Extensions.Hosting.IHostedService, ModbusDigitalProcessingService>();
                services.AddSingleton <Microsoft.Extensions.Hosting.IHostedService, ControlSubscribeWorker>();
                //services.AddSingleton<Microsoft.Extensions.Hosting.IHostedService, ModbusDigitalProcessingService>();
            }
        }
Esempio n. 2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton <IPacketQueue, PacketQueue>();

            EventPublisherWorker eventPublisher = new EventPublisherWorker();

            eventPublisher.Initialize();
            services.AddSingleton(eventPublisher);
            services.AddSingleton <Microsoft.Extensions.Hosting.IHostedService, ConsumeDataService>();
            services.AddSingleton <Microsoft.Extensions.Hosting.IHostedService, MqttHostService>();
            //IBackgroundMongoTaskQueue queue_service = new MongoBackgroundTaskQueue();
            //services.AddSingleton(queue_service);

            //services.AddHostedService<MongoBackgroundHostService>();
            //MQTTDaegunSubscribe describe = new MQTTDaegunSubscribe(loggerFactory, queue_service, mqttOptions);
            //services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }
 public ModbusDigitalProcessingService(Microsoft.Extensions.Logging.ILoggerFactory loggerFactory,
                                       IDataAccess mysql_dataAccess, IRedisConnectionFactory redisFactory,
                                       IModbusFactory modbus_factory, IConfiguration configuration, EventPublisherWorker worker, EventMap map,
                                       ModbusSystem modbusSystem)
 {
     logger               = loggerFactory.CreateLogger <ModbusBackgroundService>();
     config               = configuration;
     modbusFactory        = modbus_factory;
     eventPublisherWorker = worker;
     UpdatePeriod         = configuration.GetSection("EventPollInterval").Get <TimeSpan>();
     modbus               = modbusSystem;
     SiteId               = configuration.GetSection("SiteId").Get <short>();
     redis       = redisFactory.Connection().GetDatabase();
     DeviceIndex = configuration.GetSection("DeviceIndex").Get <int>();
     dbAccess    = mysql_dataAccess;
     event_map   = map;
 }
Esempio n. 4
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostContext, services) =>
        {
            services.AddLogging(log =>
            {
                log.ClearProviders();
                log.SetMinimumLevel(LogLevel.Trace);
                log.AddNLog(hostContext.Configuration);
            });
            services.AddSingleton <IPacketQueue, PacketQueue>();

            EventPublisherWorker eventPublisher = new EventPublisherWorker(2);
            eventPublisher.Initialize();
            services.AddSingleton(eventPublisher);
            services.AddSingleton <DaegunSubscriberWorker>();
            services.AddHostedService <Worker>();
        });
Esempio n. 5
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            AbsMqttBase.SetDefaultLoggerName("nlog.config", true);
            EventPublisherWorker worker = new EventPublisherWorker();

            worker.Initialize();
            CancellationTokenSource tk = new CancellationTokenSource();

            while (true)
            {
                Console.Write("Input the Event Code: ");
                string code = Console.ReadLine();
                if (int.TryParse(code, out int EventCode))
                {
                    Task t = worker.PublishEvent(6, "PCS1", EventCode, Events.Alarm.EventStatus.New, tk.Token);
                    t.Wait();
                }
            }
        }
 public ConsumeDataService(IPacketQueue packetQueue, EventPublisherWorker eventPublisherWorker, ILogger <ConsumeDataService> logger)
 {
     queue       = packetQueue;
     _worker     = eventPublisherWorker;
     this.logger = logger;
 }
Esempio n. 7
0
 public Worker(ILogger <Worker> logger, IPacketQueue packetQueue, EventPublisherWorker eventPublisherWorker)
 {
     _logger          = logger;
     this.packetQueue = packetQueue;
     this._worker     = eventPublisherWorker;
 }