You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.8 KiB

using EC.Util.CameraSDK;
using EC.Util.Common;
using JiLinApp.Biz.TransmitAlarm;
using JiLinApp.Docking.Alarm;
using JiLinApp.Docking.Military;
using JiLinApp.Docking.Ptz;
using NewLife.Configuration;
using System;
using System.IO;
namespace JiLinApp.Core;
public static class Global
{
#region Fields
private static JsonConfigProvider ConfigProvider { get; }
public static AppConfig AppConfig { get; }
public static MilitaryService MilitaryService { get; }
public static IAlarmService AlarmService { get; }
#endregion Fields
static Global()
{
try
{
// Config
string filePath = Path.Combine("config", "appconfig.json");
if (!File.Exists(filePath)) throw new FileNotFoundException(filePath);
ConfigProvider = new() { FileName = filePath };
AppConfig = new AppConfig();
ConfigProvider.Bind(AppConfig);
// BaseConfig
BaseConfig baseConfig = AppConfig.Base;
// ptzCtrlTypes
PtzControlTypeConfigHelper.Init(baseConfig.PtzCtrlTypes);
// MilitaryConfig
MilitaryConfig militaryConfig = AppConfig.Military;
MilitaryService = new MilitaryService(militaryConfig);
// AlarmPlatformConfig
AlarmPlatformConfig alarmPlatformConfig = AppConfig.AlarmPlatform;
AlarmService = AlarmServiceFactory.CreateService(alarmPlatformConfig);
AlarmService.Start();
}
catch (Exception)
{
throw;
}
}
public static void Init()
{
// 静态类在调用之后才会初始化静态类构造方法
CameraFactory.VirtualInit();
LogUnit.VirtualInit();
AlarmCodeHelper.VirtualInit();
}
}