Ptz.cpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. // Ptz.cpp: implementation of the CPtz class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "Ptz.h"
  5. //////////////////////////////////////////////////////////////////////
  6. // Construction/Destruction
  7. //////////////////////////////////////////////////////////////////////
  8. CPtz::CPtz()
  9. {
  10. }
  11. CPtz::~CPtz()
  12. {
  13. }
  14. bool CPtz::SetPtzParam(LLONG lLoginID, int nChannel)
  15. {
  16. if(lLoginID <=0 || nChannel < 0 )
  17. {
  18. return false;
  19. }
  20. m_lLoginID = lLoginID;
  21. m_nChannel = nChannel;
  22. return true;
  23. }
  24. bool CPtz::SetLoginID(LLONG lLoginID)
  25. {
  26. if(lLoginID <= 0)
  27. {
  28. return false;
  29. }
  30. m_lLoginID = lLoginID;
  31. return true;
  32. }
  33. bool CPtz::SetChannel(int nChannel)
  34. {
  35. if( nChannel < 0)
  36. {
  37. return false;
  38. }
  39. m_nChannel = nChannel;
  40. return true;
  41. }
  42. /*************************************************************************************************/
  43. #include<iostream>
  44. using namespace std;
  45. bool CPtz::PtzControl(int nType, int nParam1, int nParam2, int nParam3, bool bStop /* = false */)
  46. {
  47. //cout<<nType<<"'"<<m_lLoginID<<","<<m_nChannel<<","<<nParam1<<","<<nParam2<<","<<nParam3<<","<<bStop<<endl;
  48. if(m_lLoginID <=0 || m_nChannel < 0 )
  49. {
  50. return false;
  51. }
  52. return CLIENT_DHPTZControlEx(m_lLoginID, m_nChannel, nType, nParam1, nParam2, nParam3, bStop);
  53. }
  54. bool CPtz::PtzMenuControl(int nType)
  55. {
  56. switch(nType)
  57. {
  58. case DH_EXTPTZ_MENUUP://上
  59. case DH_EXTPTZ_MENUDOWN://下
  60. case DH_EXTPTZ_MENULEFT://左
  61. case DH_EXTPTZ_MENURIGHT://右
  62. case DH_EXTPTZ_OPENMENU://打开球机菜单
  63. case DH_EXTPTZ_CLOSEMENU://关闭菜单
  64. case DH_EXTPTZ_MENUOK://菜单确定
  65. case DH_EXTPTZ_MENUCANCEL://菜单取消
  66. {
  67. return PtzControl(nType, 0, 0, 0);
  68. }
  69. break;
  70. default:
  71. return false;
  72. }
  73. }
  74. bool CPtz::PtzAuxi(int nType, int nAuxi)
  75. {
  76. switch(nType)
  77. {
  78. case DH_EXTPTZ_AUXIOPEN://开
  79. case DH_EXTPTZ_AUXICLOSE://关
  80. {
  81. return PtzControl(nType, nAuxi, 0, 0);
  82. }
  83. break;
  84. default:
  85. return false;
  86. }
  87. }
  88. bool CPtz::PtzBasicControl(int nType, int nStep, bool bStop /* = false */)
  89. {
  90. switch(nType)
  91. {
  92. case DH_PTZ_UP_CONTROL: //上
  93. case DH_PTZ_DOWN_CONTROL://下
  94. case DH_PTZ_LEFT_CONTROL://左
  95. case DH_PTZ_RIGHT_CONTROL://右
  96. case DH_PTZ_ZOOM_DEC_CONTROL://镜头缩
  97. case DH_PTZ_ZOOM_ADD_CONTROL://镜头伸
  98. case DH_PTZ_FOCUS_DEC_CONTROL://焦距近
  99. case DH_PTZ_FOCUS_ADD_CONTROL://焦距远
  100. case DH_PTZ_APERTURE_DEC_CONTROL://光圈小
  101. case DH_PTZ_APERTURE_ADD_CONTROL://光圈大
  102. {
  103. return PtzControl(nType, 0, nStep, 0, bStop);
  104. }
  105. break;
  106. case DH_EXTPTZ_LEFTTOP: //左上
  107. case DH_EXTPTZ_LEFTDOWN://左下
  108. case DH_EXTPTZ_RIGHTTOP: //右上
  109. case DH_EXTPTZ_RIGHTDOWN://右下
  110. {
  111. return PtzControl(nType, nStep, nStep, 0, bStop);
  112. }
  113. break;
  114. default:
  115. return false;
  116. }
  117. }
  118. bool CPtz::PtzFastGo(int nX, int nY, int nZoom)
  119. {
  120. return PtzControl(DH_EXTPTZ_FASTGOTO, nX, nY, nZoom, false);
  121. }
  122. bool CPtz::PtzLineScan(int nType)
  123. {
  124. switch(nType)
  125. {
  126. case DH_EXTPTZ_SETLEFTBORDER: //设置左边界
  127. case DH_EXTPTZ_SETRIGHTBORDER: //设置右边界
  128. case DH_EXTPTZ_STARTLINESCAN: //开始线扫
  129. case DH_EXTPTZ_CLOSELINESCAN: //停止线扫
  130. {
  131. return PtzControl(nType, 0, 0, 0);
  132. }
  133. break;
  134. default:
  135. return false;
  136. }
  137. }
  138. bool CPtz::PtzLoop(int nType, int nGroup, int nPresetData, bool bBeginLoop /* = false */)
  139. {
  140. switch(nType)
  141. {
  142. case DH_PTZ_POINT_LOOP_CONTROL://开始巡航,停止巡航
  143. {
  144. if (bBeginLoop)
  145. {
  146. return PtzControl(nType, nGroup, 0, 76);//开始
  147. }
  148. else
  149. {
  150. return PtzControl(nType, nGroup, 0, 96);//停止
  151. }
  152. }
  153. break;
  154. case DH_EXTPTZ_ADDTOLOOP://增加巡航点
  155. case DH_EXTPTZ_DELFROMLOOP://删除巡航点
  156. {
  157. return PtzControl(nType, nGroup, nPresetData, 0);
  158. }
  159. break;
  160. case DH_EXTPTZ_CLOSELOOP://删除巡航组
  161. {
  162. return PtzControl(nType, nGroup, 0, 0);
  163. }
  164. break;
  165. default:
  166. return false;
  167. }
  168. }
  169. bool CPtz::PtzPreset(int nType, int nPresetData)
  170. {
  171. switch(nType)
  172. {
  173. case DH_PTZ_POINT_MOVE_CONTROL://转至预置点
  174. case DH_PTZ_POINT_SET_CONTROL://设置
  175. case DH_PTZ_POINT_DEL_CONTROL://删除
  176. {
  177. return PtzControl(nType, 0, nPresetData, 0);
  178. }
  179. break;
  180. default:
  181. return false;
  182. }
  183. }
  184. bool CPtz::PtzRotate(int nType)
  185. {
  186. switch(nType)
  187. {
  188. case DH_EXTPTZ_STARTPANCRUISE: //开始水平旋转
  189. case DH_EXTPTZ_STOPPANCRUISE: //停止水平旋转
  190. {
  191. return PtzControl(nType, 0, 0, 0);
  192. }
  193. default:
  194. return false;
  195. }
  196. }
  197. bool CPtz::PtzMode(int nType, int nGroup)
  198. {
  199. switch(nType)
  200. {
  201. case DH_EXTPTZ_SETMODESTART://开始记录
  202. case DH_EXTPTZ_SETMODESTOP: //停止记录
  203. case DH_EXTPTZ_RUNMODE: //开始巡迹
  204. case DH_EXTPTZ_STOPMODE://停止巡迹
  205. case DH_EXTPTZ_DELETEMODE://删除巡迹
  206. {
  207. return PtzControl(nType, nGroup, 0, 0);
  208. }
  209. break;
  210. default:
  211. return false;
  212. }
  213. }