| | |
| | | import com.ard.work.sdk.dh.service.DaHuaSDK; |
| | | import com.ard.work.sdk.fjr.service.FjrSDK; |
| | | import com.ard.work.sdk.hb.service.HbSDK; |
| | | import com.ard.work.sdk.hik.service.AbstractHikVisionSDK; |
| | | import com.ard.work.sdk.hik.service.HikSDK; |
| | | import com.ard.work.sdk.hp.service.HpSDK; |
| | | import com.ard.work.sdk.service.CameraSDK; |
| | | import com.ard.work.sdk.zlxd.service.ZlxdSDK; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Qualifier; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | |
| | | @Component |
| | | public class CameraSDKFactory { |
| | | |
| | | @Autowired |
| | | @Qualifier("hikSDK") |
| | | private HikSDK hikSDK; |
| | | private final Map<String, CameraSDK> sdkRegistry; |
| | | |
| | | @Autowired |
| | | @Qualifier("dahuaSDK") |
| | | private DaHuaSDK dahuaSDK; |
| | | public CameraSDKFactory(HikSDK hikSDK, |
| | | DaHuaSDK dahuaSDK, |
| | | HpSDK hpSDK, |
| | | ZlxdSDK zlxdSDK, |
| | | HbSDK hbSDK, |
| | | FjrSDK fjrSDK) { |
| | | this.sdkRegistry = Map.of( |
| | | "1", hikSDK, |
| | | "2", dahuaSDK, |
| | | "4", zlxdSDK, |
| | | "5", hpSDK, |
| | | "7", hbSDK, |
| | | "8", fjrSDK |
| | | ); |
| | | } |
| | | |
| | | @Autowired |
| | | @Qualifier("hpSDK") |
| | | private HpSDK hpSDK; |
| | | |
| | | @Autowired |
| | | @Qualifier("zlxdSDK") |
| | | private ZlxdSDK zlxdSDK; |
| | | |
| | | @Autowired |
| | | @Qualifier("hbSDK") |
| | | private HbSDK hbSDK; |
| | | |
| | | @Autowired |
| | | @Qualifier("fjrSDK") |
| | | private FjrSDK fjrSDK; |
| | | /** |
| | | * 根据传入的工厂参数创建相应的相机SDK实例 |
| | | * |
| | |
| | | * @throws IllegalArgumentException 如果传入的工厂参数不支持 |
| | | */ |
| | | public CameraSDK createCameraSDK(String factory) { |
| | | switch (factory) { |
| | | case "1": |
| | | return hikSDK; |
| | | case "2": |
| | | return dahuaSDK; |
| | | case "4": |
| | | return zlxdSDK; |
| | | case "5": |
| | | return hpSDK; |
| | | case "7": |
| | | return hbSDK; |
| | | case "8": |
| | | return fjrSDK; |
| | | default: |
| | | throw new IllegalArgumentException("Unsupported device: " + factory); |
| | | CameraSDK sdk = sdkRegistry.get(factory); |
| | | if (sdk == null) { |
| | | throw new IllegalArgumentException("Unsupported camera factory: " + factory); |
| | | } |
| | | return sdk; |
| | | } |
| | | } |
| | | } |