| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using System;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- using TeamAAS.Camera.Models;
- namespace TeamAAS.Camera.Interfaces
- {
- /// <summary>
- /// 提供相机生命周期管理接口,包括创建、获取、注销相机实例以及品牌发现。
- /// 实现类应保证线程安全,并在 Dispose 中释放所有已注册相机的资源。
- /// </summary>
- public interface ICameraManager : IDisposable
- {
- Task<bool> CreateCameraAsync(Guid id, CameraInfo cameraInfo);
- bool CreateCamera(Guid id, CameraInfo cameraInfo);
- ICamera GetCamera(Guid id);
- Task<ICamera> GetCameraAsync(Guid id);
- IReadOnlyCollection<ICamera> GetAllCameras();
- Task<IReadOnlyCollection<ICamera>> GetAllCamerasAsync();
- bool TryGetCamera(Guid id, out ICamera camera);
- bool ContainsCamera(Guid id);
- bool ContainsSN(string serialNumber);
- bool RemoveCamera(Guid id);
- Task<bool> RemoveCameraAsync(Guid id);
- void UnRegisterCamera(Guid id);
- Task UnRegisterCameraAsync(Guid id);
- ICamera GetCameraByNumber(int number);
- void RemoveAllCameras();
- (bool IsSucceed, string Message) InitializeAllCameras(CameraInfo[] cameras);
- Task<(bool IsSucceed, string Message)> InitializeAllCamerasAsync(CameraInfo[] cameras);
- void UpdateCameraNumber(Guid id, int newNumber);
- bool SaveConfig(string path = null);
- IReadOnlyList<CameraInfo> GetAllCameraInfos();
- // === 品牌/设备发现(原 CameraFactory 职责)===
- List<CameraInfo> DiscoverAllDevices();
- List<CameraInfo> DiscoverByBrand(string brand);
- List<(string Brand, string DisplayName, bool Installed)> GetAvailableBrands();
- string GetBrandDisplayName(string brand);
- List<(string Name, bool Installed, string Version)> GetSdkStatus();
- IReadOnlyList<CameraTypeInfo> GetAvailableTypes();
- }
- }
|