private PTZSpeed CreatePTZSpeed(PTZParameters.Vector vector, float speed = 0.5f) { var p = new PTZSpeed { PanTilt = new Vector2D() /*space = "http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace",*/ } { , //Zoom = new Vector1D() { x = 0, }, }; if (vector == PTZParameters.Vector.UP) { p.PanTilt.y = -speed; } else if (vector == PTZParameters.Vector.DOWN) { p.PanTilt.y = speed; } else if (vector == PTZParameters.Vector.LEFT) { p.PanTilt.x = -speed; } else if (vector == PTZParameters.Vector.RIGHT) { p.PanTilt.x = speed; } return(p); }
/// <summary> /// Возвращает вектор движения и количество шагов /// </summary> /// <param name="vector">Вектор направления</param> /// <param name="steep">Количество шагов</param> /// <returns></returns> public PTZVector GetVector(PTZParameters.Vector vector, float steep = 1f) { var p = new PTZVector { PanTilt = new Vector2D() { space = "http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace", }, Zoom = new Vector1D() { x = 0, }, }; if (vector == PTZParameters.Vector.UP) { p.PanTilt.y = -steep; } if (vector == PTZParameters.Vector.DOWN) { p.PanTilt.y = steep; } if (vector == PTZParameters.Vector.LEFT) { p.PanTilt.x = -steep; } if (vector == PTZParameters.Vector.RIGHT) { p.PanTilt.x = steep; } return(p); }
/// <summary> /// Производит перемещение по указаному вектору с заданым количеством шагов, с блокировкой потока на время выполнения /// </summary> /// <param name="vector">Направление движения</param> /// <param name="steep">Количество шагов</param> public string CountiniousMove(PTZParameters.Vector vector, int timeout = -1, float steep = 1f, float speed = 0.01000001f) //0.10000001f { try { ONVIF.SendResponce.CountinuousRotatePTZ(set, CreatePTZSpeed(vector, speed), timeout); return("OK"); } catch { return("Fail"); } }
/// <summary> /// Производит перемещение по указаному вектору с заданым количеством шагов /// </summary> /// <param name="vector">Направление движения</param> /// <param name="steep">Количество шагов</param> public string Move(PTZParameters.Vector vector, float steep = 1f) { try { ONVIF.SendResponce.RotatePTZ(set, GetVector(vector, steep), PTZSpeed); return("OK"); } catch { return("Fail"); } }
public PTZTile(PTZParameters.Vector vector, int steep, int sleepTime) { Vector = vector; Steep = steep; SleepTime = sleepTime; }