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.
111 lines
2.4 KiB
111 lines
2.4 KiB
namespace EC.Helper.CameraSDK;
|
|
|
|
/// <summary>
|
|
/// 相机信息
|
|
/// </summary>
|
|
public class CameraInfo
|
|
{
|
|
#region Attr
|
|
|
|
/// <summary>
|
|
/// 相机厂商
|
|
/// </summary>
|
|
public int Manufactor { get; set; }
|
|
|
|
/// <summary>
|
|
/// ip 地址
|
|
/// </summary>
|
|
public string Ip { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 端口
|
|
/// </summary>
|
|
public int Port { get; set; }
|
|
|
|
/// <summary>
|
|
/// 账号
|
|
/// </summary>
|
|
public string UserName { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 密码
|
|
/// </summary>
|
|
public string Password { get; set; } = string.Empty;
|
|
|
|
#endregion Attr
|
|
|
|
public static CameraInfo New(int 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(int manufactor, string ip, string userName, string password)
|
|
{
|
|
CameraInfo info = new() { Manufactor = manufactor, Ip = ip, UserName = userName, Password = password };
|
|
int port = (CameraManufactor)manufactor switch
|
|
{
|
|
CameraManufactor.HiK => (int)CameraPort.HiK,
|
|
CameraManufactor.DaHua => (int)CameraPort.DaHua,
|
|
CameraManufactor.YuShi => (int)CameraPort.YuShi,
|
|
_ => -1,
|
|
};
|
|
info.Port = port;
|
|
if (port <= 0)
|
|
throw new Exception("Camera manufactor not support.");
|
|
return info;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 相机厂商
|
|
/// </summary>
|
|
public enum CameraManufactor : int
|
|
{
|
|
HiK = 1,
|
|
DaHua,
|
|
YuShi,
|
|
}
|
|
|
|
/// <summary>
|
|
/// 相机默认连接端口
|
|
/// </summary>
|
|
public enum CameraPort : int
|
|
{
|
|
HiK = 8000,
|
|
DaHua = 37777,
|
|
YuShi = 8800,
|
|
}
|
|
|
|
/// <summary>
|
|
/// Ptz 信息
|
|
/// </summary>
|
|
public class PtzInfo
|
|
{
|
|
#region Attr
|
|
|
|
public double Pan { get; set; }
|
|
public double Tilt { get; set; }
|
|
public double Zoom { get; set; }
|
|
|
|
#endregion Attr
|
|
|
|
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);
|
|
}
|
|
}
|
|
|