namespace EC.Util.CameraSDK; /// /// 相机信息 /// public class CameraInfo { #region Fields /// /// id /// public string Id { get; set; } = string.Empty; /// /// 相机厂商 /// public CameraManufactor Manufactor { get; set; } /// /// ip 地址 /// public string Ip { get; set; } = string.Empty; /// /// 端口 /// public int Port { get; set; } /// /// 账号 /// public string UserName { get; set; } = string.Empty; /// /// 密码 /// public string Password { get; set; } = string.Empty; #endregion Fields public static CameraInfo New(CameraManufactor manufactor, string ip, int port, string username, string password) { CameraInfo info = new() { Manufactor = manufactor, Ip = ip, Port = port, UserName = username, Password = password }; if (port <= 0) throw new Exception("Camera manufactor not support."); return info; } public static CameraInfo New(CameraManufactor manufactor, string ip, string username, string password) { CameraInfo info = new() { Manufactor = manufactor, Ip = ip, UserName = username, Password = password }; int port = manufactor switch { CameraManufactor.HiK => (int)CameraPort.HiK, CameraManufactor.DaHua => (int)CameraPort.DaHua, CameraManufactor.YuShi => (int)CameraPort.YuShi, _ => -1, }; if (port <= 0) throw new Exception("Camera manufactor not support."); info.Port = port; return info; } public static CameraInfo New(int manufactor, string ip, int port, string username, string password) { CameraManufactor cm = (CameraManufactor)manufactor; CameraInfo info = new() { Manufactor = cm, Ip = ip, Port = port, UserName = username, Password = password }; if (port <= 0) throw new Exception("Camera manufactor not support."); return info; } public static CameraInfo New(int manufactor, string ip, string username, string password) { CameraManufactor cm = (CameraManufactor)manufactor; CameraInfo info = new() { Manufactor = cm, Ip = ip, UserName = username, Password = password }; int port = cm switch { CameraManufactor.HiK => (int)CameraPort.HiK, CameraManufactor.DaHua => (int)CameraPort.DaHua, CameraManufactor.YuShi => (int)CameraPort.YuShi, _ => -1, }; if (port <= 0) throw new Exception("Camera manufactor not support."); info.Port = port; return info; } } /// /// 相机厂商 /// public enum CameraManufactor : int { HiK = 1, DaHua = 2, YuShi = 3, } /// /// 相机默认连接端口 /// public enum CameraPort : int { HiK = 8000, DaHua = 37777, YuShi = 8800, } /// /// Ptz 信息 /// public class PtzInfo { #region Fields public double Pan { get; set; } public double Tilt { get; set; } public double Zoom { get; set; } #endregion Fields public PtzInfo(double pan, double tilt, double zoom) { Pan = pan; Tilt = tilt; Zoom = zoom; } public static PtzInfo Default { get { return new(0, 0, 0); } } public static PtzInfo New(double pan, double tilt, double zoom) { return new PtzInfo(pan, tilt, zoom); } }