IPCameraManager.cs 1.6 KB
using Dolen.CV;
using System;
using System.Collections.Generic;
using System.Text;

namespace DL.CV
{
    public class IPCameraManager
    {
        static List<IPCamera> cameras = new List<IPCamera>();
        /// <summary>
        /// 加载相机参数
        /// </summary>
        /// <param name="configPath"></param>
        public static void LoadConfig(string configPath)
        {
            string json = System.IO.File.ReadAllText(configPath);
            List<IPCameraConfig> configs = JsonHelper.DeserializeJsonToList<IPCameraConfig>(json);
            foreach (var item in configs)
            {
                cameras.Add(new IPCamera(item));
            }
        }

        public static IPCamera GetCamera(string name)
        {
            return cameras.Find(s => s.Config.Name.Equals(name));
        }
        public static void StartAll()
        {
            foreach (var item in cameras)
            {
                item.StartLive();
            }
        }
        public static void StoptAll()
        {
            foreach (var item in cameras)
            {
                item.StopLive();
            }
        }
        public static void StartLive(string name)
        {
            IPCamera camera = cameras.Find(s => s.Config.Name.Equals(name));
            if (camera != null)
            {
                camera.StartLive();
            }
        }
        public static void StopLive(string name)
        {
            IPCamera camera = cameras.Find(s => s.Config.Name.Equals(name));
            if (camera != null)
            {
                camera.StopLive();
            }
        }
    }
}