Browse Source

update: 更新相机sdk

master
fajiao 2 years ago
parent
commit
454b47e945
  1. 2
      Cis.Application/Core/Component/CameraSDK/CameraSdkServer.cs
  2. 4
      Cis.Application/Core/Component/MarkSeacher/Seacher/YuShiMarkSeacher.cs
  3. 54
      EC.Helper/CameraSDK/Common/CameraException.cs
  4. 53
      EC.Helper/CameraSDK/Common/CameraStruct.cs
  5. 10
      EC.Helper/CameraSDK/Common/ICameraSDK.cs
  6. 27
      EC.Helper/CameraSDK/DaHua/DaHuaSDK.cs
  7. 27
      EC.Helper/CameraSDK/HiK/HiKSDK.cs
  8. 14
      EC.Helper/CameraSDK/YuShi/YuShiSDK.cs

2
Cis.Application/Core/Component/CameraSDK/CameraSdkServer.cs

@ -66,7 +66,7 @@ public class CameraSdkServer : ICameraSdkServer, ISingleton
{ {
bool ret = CameraSdkDict.TryGetValue(ip, out ICameraSDK cameraSDK); bool ret = CameraSdkDict.TryGetValue(ip, out ICameraSDK cameraSDK);
if (!ret) { ptzInfo = PtzInfo.Default; return false; } if (!ret) { ptzInfo = PtzInfo.Default; return false; }
return cameraSDK.GetPtzInfo(out ptzInfo); return cameraSDK.TryGetPtzInfo(out ptzInfo);
} }
#endregion Main Method #endregion Main Method

4
Cis.Application/Core/Component/MarkSeacher/Seacher/YuShiMarkSeacher.cs

@ -1,6 +1,4 @@
using System.Drawing; namespace Cis.Application.Core.Component.MarkSeacher;
namespace Cis.Application.Core.Component.MarkSeacher;
public class YuShiMarkSearcher : MarkSearcherBase public class YuShiMarkSearcher : MarkSearcherBase
{ {

54
EC.Helper/CameraSDK/Common/CameraException.cs

@ -0,0 +1,54 @@
namespace EC.Helper.CameraSDK;
/// <summary>
/// 相机异常
/// </summary>
public class CameraException : Exception
{
public CameraException() : base()
{
}
public CameraException(string? message) : base(message)
{
}
public CameraException(string? message, Exception? innerException) : base(message, innerException)
{
}
protected class CameraExceptionObj
{
public CameraType Type { get; set; }
public int ErrCode { get; set; }
public string? ErrMsg { get; set; }
public override string? ToString()
{
return $"Type:{Type}, ErrCode:{ErrCode}, ErrMsg:{ErrMsg}";
}
}
public static CameraException New(CameraType type, int errCode)
{
CameraExceptionObj obj = new()
{
Type = type,
ErrCode = errCode
};
return new CameraException(obj.ToString());
}
public static CameraException New(CameraType type, int errCode, string errMsg)
{
CameraExceptionObj obj = new()
{
Type = type,
ErrCode = errCode,
ErrMsg = errMsg
};
return new CameraException(obj.ToString());
}
}

53
EC.Helper/CameraSDK/Common/CameraStruct.cs

@ -109,56 +109,3 @@ public class PtzInfo
return new PtzInfo(pan, tilt, zoom); return new PtzInfo(pan, tilt, zoom);
} }
} }
/// <summary>
/// 相机异常
/// </summary>
public class CameraException : Exception
{
public CameraException() : base()
{
}
public CameraException(string? message) : base(message)
{
}
public CameraException(string? message, Exception? innerException) : base(message, innerException)
{
}
protected class CameraExceptionObj
{
public CameraType Type { get; set; }
public int ErrCode { get; set; }
public string? ErrMsg { get; set; }
public override string? ToString()
{
return $"Type:{Type}, ErrCode:{ErrCode}, ErrMsg:{ErrMsg}";
}
}
public static CameraException New(CameraType type, int errCode)
{
CameraExceptionObj obj = new()
{
Type = type,
ErrCode = errCode
};
return new CameraException(obj.ToString());
}
public static CameraException New(CameraType type, int errCode, string errMsg)
{
CameraExceptionObj obj = new()
{
Type = type,
ErrCode = errCode,
ErrMsg = errMsg
};
return new CameraException(obj.ToString());
}
}

10
EC.Helper/CameraSDK/Common/ICameraSDK.cs

@ -34,7 +34,7 @@ public abstract class ICameraSDK
public abstract bool ConnectSuccess(); public abstract bool ConnectSuccess();
/// <summary> /// <summary>
/// 处理异常 /// 构建异常
/// </summary> /// </summary>
public abstract void BuildException(); public abstract void BuildException();
@ -46,7 +46,13 @@ public abstract class ICameraSDK
/// 获取 ptz /// 获取 ptz
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public abstract bool GetPtzInfo(out PtzInfo ptzInfo); public abstract PtzInfo GetPtzInfo();
/// <summary>
/// 获取 ptz
/// </summary>
/// <returns></returns>
public abstract bool TryGetPtzInfo(out PtzInfo ptzInfo);
#endregion Main Method #endregion Main Method
} }

27
EC.Helper/CameraSDK/DaHua/DaHuaSDK.cs

@ -82,7 +82,32 @@ public class DaHuaSDK : ICameraSDK
} }
} }
public override bool GetPtzInfo(out PtzInfo ptzInfo) public override PtzInfo GetPtzInfo()
{
bool ret = ConnectSuccess();
if (!ret) return PtzInfo.Default;
DaHuaOriSDK.DH_PTZ_LOCATION_INFO entity = new();
int nBufLen = GPIParams.Size;
int pRetLen = 0;
IntPtr ptrBuf = Marshal.AllocHGlobal(GPIParams.Size);
Marshal.StructureToPtr(entity, ptrBuf, true);
try
{
ret = DaHuaOriSDK.CLIENT_QueryDevState(LoginId, (int)DaHuaOriSDK.EM_DEVICE_STATE.PTZ_LOCATION, ptrBuf, nBufLen, ref pRetLen, 3000);
if (!ret) { BuildException(); return PtzInfo.Default; }
object? objBuf = Marshal.PtrToStructure(ptrBuf, GPIParams.Type);
if (objBuf == null) return PtzInfo.Default;
entity = (DaHuaOriSDK.DH_PTZ_LOCATION_INFO)objBuf;
return PtzInfo.New(entity.nPTZPan, entity.nPTZTilt, entity.nPTZZoom);
}
finally
{
Marshal.FreeHGlobal(ptrBuf);
}
}
public override bool TryGetPtzInfo(out PtzInfo ptzInfo)
{ {
bool ret = ConnectSuccess(); bool ret = ConnectSuccess();
if (!ret) { ptzInfo = PtzInfo.Default; return false; } if (!ret) { ptzInfo = PtzInfo.Default; return false; }

27
EC.Helper/CameraSDK/HiK/HiKSDK.cs

@ -68,7 +68,32 @@ public class HiKSDK : ICameraSDK
} }
} }
public override bool GetPtzInfo(out PtzInfo ptzInfo) public override PtzInfo GetPtzInfo()
{
bool ret = ConnectSuccess();
if (!ret) return PtzInfo.Default;
HiKOriSDK.NET_DVR_PTZPOS entity = new();
int dwSize = GPIParams.Size;
uint dwReturned = 0;
IntPtr ptrBuf = Marshal.AllocHGlobal(dwSize);
Marshal.StructureToPtr(entity, ptrBuf, true);
try
{
ret = HiKOriSDK.NET_DVR_GetDVRConfig(LoginId, HiKOriSDK.NET_DVR_GET_PTZPOS, 0, ptrBuf, (uint)dwSize, ref dwReturned);
if (!ret) { BuildException(); return PtzInfo.Default; }
object? objBuf = Marshal.PtrToStructure(ptrBuf, GPIParams.Type);
if (objBuf == null) return PtzInfo.Default;
entity = (HiKOriSDK.NET_DVR_PTZPOS)objBuf;
return PtzInfo.New(entity.wPanPos, entity.wTiltPos, entity.wZoomPos);
}
finally
{
Marshal.FreeHGlobal(ptrBuf);
}
}
public override bool TryGetPtzInfo(out PtzInfo ptzInfo)
{ {
bool ret = ConnectSuccess(); bool ret = ConnectSuccess();
if (!ret) { ptzInfo = PtzInfo.Default; return false; } if (!ret) { ptzInfo = PtzInfo.Default; return false; }

14
EC.Helper/CameraSDK/YuShi/YuShiSDK.cs

@ -58,7 +58,19 @@ public class YuShiSDK : ICameraSDK
#region Main Method #region Main Method
public override bool GetPtzInfo(out PtzInfo ptzInfo) public override PtzInfo GetPtzInfo()
{
bool ret = ConnectSuccess();
if (!ret) return PtzInfo.Default;
YuShiOriSDK.NETDEV_PTZ_STATUS_S entity = new();
ret = YuShiOriSDK.NETDEV_PTZGetStatus(LoginId, 1, ref entity);
if (!ret) { BuildException(); return PtzInfo.Default; }
return PtzInfo.New(entity.fPanTiltX, entity.fPanTiltY, entity.fZoomX);
}
public override bool TryGetPtzInfo(out PtzInfo ptzInfo)
{ {
bool ret = ConnectSuccess(); bool ret = ConnectSuccess();
if (!ret) { ptzInfo = PtzInfo.Default; return false; } if (!ret) { ptzInfo = PtzInfo.Default; return false; }

Loading…
Cancel
Save