using System.Drawing; using DispenserHal.Camera.DTO; using DispenserHal.Camera.Interface; using DispenserHal.Camera.VO; using Serilog; namespace DispenserHal.Camera.Client; public class CameraClient : ICamera { private readonly AbstractCamera delegateClient; public CameraClient(AbstractCamera delegateClient) { this.delegateClient = delegateClient; } /// /// 设备号 /// public string SN => delegateClient.SN; /// /// 连接状态 /// public bool Connected => delegateClient.Connected; /// /// 标识当前是否在采集视频中 /// public bool CapturingVideo => delegateClient.CapturingVideo; public CameraResponseVO Connect() { return delegateClient.Connect(); } public CameraResponseVO Connect(long timeout) { return delegateClient.Connect(timeout); } public CameraResponseVO Close() { return delegateClient.Close(); } public CameraResponseVO RegisterCallback(Action callback) { return delegateClient.RegisterCallback(callback); } public CameraResponseVO StartSteaming() { return delegateClient.StartSteaming(); } /// /// 相机拍照 /// /// public CameraResponseVO TokePhoto() { return delegateClient.TokePhoto(); } /// /// 开始连续采集 /// /// public CameraResponseVO StartCaptureVideo() { return delegateClient.StartCaptureVideo(); } /// /// 停止连续采集 /// /// public CameraResponseVO StopCaptureVideo() { return delegateClient.StopCaptureVideo(); } public CameraResponseVO SwitchHardTriggerMode() { return delegateClient.SwitchHardTriggerMode(); } public CameraResponseVO StopSteaming() { return delegateClient.StopSteaming(); } public CameraResponseVO SwitchContinuousMode() { return delegateClient.SwitchContinuousMode(); } public CameraResponseVO SwitchSoftwareTriggerMode() { return delegateClient.SwitchSoftwareTriggerMode(); } public CameraResponseVO SoftwareTrigger() { return delegateClient.SoftwareTrigger(); } //写入参数 public CameraResponseVO SetEnumValue(string strKey, uint nvalue) { Log.Information($"正在更新相机参数: {strKey},值为 {nvalue}"); return delegateClient.SetEnumValue(strKey, nvalue); } public CameraResponseVO SetIntValue(string strKey, long nvalue) { Log.Information($"正在更新相机参数: {strKey},值为 {nvalue}"); return delegateClient.SetIntValue(strKey, nvalue); } public CameraResponseVO SetBoolValue(string strKey, bool nvalue) { Log.Information($"正在更新相机参数: {strKey},值为 {nvalue}"); return delegateClient.SetBoolValue(strKey, nvalue); } public CameraResponseVO SetFloatValue(string strKey, float nvalue) { Log.Information($"正在更新相机参数: {strKey},值为 {nvalue}"); return delegateClient.SetFloatValue(strKey, nvalue); } public bool GetBoolValue(string key) { return delegateClient.GetBoolValue(key); } public IntValue GetIntValue(string key) { return delegateClient.GetIntValue(key); } public FloatValue? GetFloatValue(string key) { return delegateClient.GetFloatValue(key); } public EnumValue? GetEnumValue(string key) { return delegateClient.GetEnumValue(key); } public StringValue? GetStringValue(string key) { return delegateClient.GetStringValue(key); } public EnumItem GetEnumEntrySymbolic(string key, uint supportIndex) { return delegateClient.GetEnumEntrySymbolic(key, supportIndex); } }