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>(); } }
// 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; }
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>(); });
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; }
public Worker(ILogger <Worker> logger, IPacketQueue packetQueue, EventPublisherWorker eventPublisherWorker) { _logger = logger; this.packetQueue = packetQueue; this._worker = eventPublisherWorker; }