SuZhouZhanFang/suzhou-iot-service/DataAcquisition/Program.cs

60 lines
2.0 KiB
C#

using log4net.Config;
using log4net;
using Microsoft.Extensions.Configuration;
using System.Text;
using log4net.Repository;
namespace DataAcquisition
{
internal class Program
{
static ILoggerRepository LoggerRepository;
static ILog log;
static IConfigurationRoot configuration;
static async Task Main(string[] args)
{
LoggerRepository = LogManager.CreateRepository("DataAcquisition");
XmlConfigurator.ConfigureAndWatch(LoggerRepository, new FileInfo("App.config"));
log = LogManager.GetLogger(LoggerRepository.Name, typeof(Program));
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
// 授权示例 调用一次即可 call only once
if (!HslCommunication.Authorization.SetAuthorizationCode("d8868ab9-4494-4056-98c6-b669e2434e25"))
{
return;
}
configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(path: "appsettings.json", optional: true, reloadOnChange: true)
.Build();
var connectionString = configuration.GetConnectionString("ConnectionString");
using (var collector = new ModbusDataCollector(connectionString))
{
// 订阅日志事件
collector.LogMessage += (sender, message) => { Console.WriteLine(message); log.Info(message); };
// 初始化并启动采集
await collector.InitializeAsync();
// 模拟运行一段时间后刷新配置
await Task.Delay(TimeSpan.FromMinutes(30));
Console.WriteLine("正在刷新设备配置...");
await collector.RefreshDevicesAsync();
Console.WriteLine("按任意键退出...");
Console.ReadKey();
}
//Console.WriteLine("启动服务");
//log.Info("启动服务");
//Console.ReadKey();
}
}
}