using Aurora.Api.Devices;
using System.Collections.Generic;
namespace VisionCommon {
///
/// 모션의 포지션 매니저
///
///
public class PositionManager {
private object _lock = new object();
private Dictionary _adapters = new Dictionary();
///
/// 포지션 어댑터를 등록한다.
///
/// 키 정보
/// 포지션 어댑터
public void SetAdapter(T info, IPositionAdapter positionAdapter) {
lock (_lock) {
if (!_adapters.ContainsKey(info)) {
_adapters.Add(info, positionAdapter);
}
}
}
///
/// 포지션 어댑터를 얻어온다.
///
/// 키 정보
/// 포지션 어댑터
public IPositionAdapter GetAdapter(T info) {
lock (_lock) {
if (_adapters.ContainsKey(info)) {
return _adapters[info];
}
}
return null;
}
///
/// 포지션을 얻어온다.
///
/// 키 정보
/// 포지션 타입
/// 포지션
public Position GetPosition(T info, ePositionType positionType) {
lock (_lock) {
var posAdapter = GetAdapter(info);
if (posAdapter == null) {
return null;
}
return posAdapter.GetPosition(positionType);
}
}
}
}