T_Ptz.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613
  1. var PTZ_With_ActiveX = 0;
  2. var lastpan;
  3. var lasttilt;
  4. var timeoutID = -1;
  5. var ptz_ch = 1;
  6. var ptz_move_stop = 0 ;
  7. var object_ptz_getposition = { channel:0, nX:0, nY:0 }
  8. function tvs_ptzpanspeed(cmd)
  9. {
  10. if(cmd <= 4){
  11. document.Tvs.SetPTZControlSpeed(g_lChID, 0, 1);
  12. }
  13. else if(cmd == 5){
  14. document.Tvs.SetPTZControlSpeed(g_lChID, 0, 2);
  15. }
  16. else if(cmd == 6){
  17. document.Tvs.SetPTZControlSpeed(g_lChID, 0, 3);
  18. }
  19. else if(cmd == 7){
  20. document.Tvs.SetPTZControlSpeed(g_lChID, 0, 5);
  21. }
  22. else if(cmd == 8){
  23. document.Tvs.SetPTZControlSpeed(g_lChID, 0, 7);
  24. }
  25. else{
  26. document.Tvs.SetPTZControlSpeed(g_lChID, 0, cmd);
  27. }
  28. }
  29. function tvs_ptztiltspeed(cmd)
  30. {
  31. if(cmd <= 4){
  32. document.Tvs.SetPTZControlSpeed(g_lChID, 1, 1);
  33. }
  34. else if(cmd == 5){
  35. document.Tvs.SetPTZControlSpeed(g_lChID, 1, 2);
  36. }
  37. else if(cmd == 6){
  38. document.Tvs.SetPTZControlSpeed(g_lChID, 1, 3);
  39. }
  40. else if(cmd == 7){
  41. document.Tvs.SetPTZControlSpeed(g_lChID, 1, 5);
  42. }
  43. else if(cmd == 8){
  44. document.Tvs.SetPTZControlSpeed(g_lChID, 1, 7);
  45. }
  46. else{
  47. document.Tvs.SetPTZControlSpeed(g_lChID, 1, cmd);
  48. }
  49. }
  50. function ptz_pt(ch, p, t)
  51. {
  52. //console.log("PTZ(" + p + ", " + t + ")");
  53. var stopflag = 0;
  54. pan = Math.floor(Math.abs(p / 7));
  55. tilt = Math.floor(Math.abs(t / 7));
  56. ptz_ch = ch;
  57. if(pan == lastpan && tilt == lasttilt){
  58. return;
  59. }
  60. lastpan = pan;
  61. lasttilt = tilt;
  62. if(pan == 0) p = 0;
  63. if(tilt == 0) t = 0;
  64. if(PTZ_With_ActiveX == 0){
  65. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MOVE=";
  66. if(p < 0){ // left
  67. if(t < 0){ // up
  68. url += "leftup," + pan + "," + tilt + "&PTZ_TIMEOUT=5000";
  69. }
  70. else if(t > 0){
  71. url += "leftdown," + pan + "," + tilt + "&PTZ_TIMEOUT=5000";
  72. }
  73. else{
  74. url += "left," + pan + "&PTZ_TIMEOUT=5000";
  75. }
  76. }
  77. else if(p > 0){
  78. if(t < 0){ // up
  79. url += "rightup," + pan + "," + tilt + "&PTZ_TIMEOUT=5000";
  80. }
  81. else if(t > 0){
  82. url += "rightdown," + pan + "," + tilt + "&PTZ_TIMEOUT=5000";
  83. }
  84. else{
  85. url += "right," + pan + "&PTZ_TIMEOUT=5000";
  86. }
  87. }
  88. else{
  89. if(t < 0){ // up
  90. url += "up," + tilt + "&PTZ_TIMEOUT=5000";
  91. }
  92. else if(t > 0){
  93. url += "down," + tilt + "&PTZ_TIMEOUT=5000";
  94. }
  95. else{
  96. url += "stop";
  97. stopflag = 1;
  98. }
  99. }
  100. //console.log("url = " + url);
  101. //data = ajaxGetAsync(url);
  102. data = ajaxGet(url);
  103. }
  104. else{
  105. tvs_ptzpanspeed(pan);
  106. tvs_ptztiltspeed(tilt);
  107. if(p < 0){ // left
  108. if(t < 0){ // up
  109. document.Tvs.SendPTZCommand(g_lChID, 10);
  110. }
  111. else if(t > 0){
  112. document.Tvs.SendPTZCommand(g_lChID, 11);
  113. }
  114. else{
  115. document.Tvs.SendPTZCommand(g_lChID, 2);
  116. }
  117. }
  118. else if(p > 0){
  119. if(t < 0){ // up
  120. document.Tvs.SendPTZCommand(g_lChID, 12);
  121. }
  122. else if(t > 0){
  123. document.Tvs.SendPTZCommand(g_lChID, 13);
  124. }
  125. else{
  126. document.Tvs.SendPTZCommand(g_lChID, 3);
  127. }
  128. }
  129. else{
  130. if(t < 0){ // up
  131. document.Tvs.SendPTZCommand(g_lChID, 4);
  132. }
  133. else if(t > 0){
  134. document.Tvs.SendPTZCommand(g_lChID, 5);
  135. }
  136. else{
  137. document.Tvs.SendPTZCommand(g_lChID, 0);
  138. stopflag = 1;
  139. }
  140. }
  141. }
  142. if(stopflag){
  143. if (timeoutID >= 0)
  144. {
  145. clearTimeout(timeoutID);
  146. timeoutID = -1;
  147. ptz_move_stop = 4 ;
  148. }
  149. }
  150. else{
  151. if (timeoutID >= 0)
  152. {
  153. clearTimeout(timeoutID);
  154. timeoutID = -1;
  155. }
  156. timeoutID = setInterval(ptz_timer, 490);
  157. }
  158. }
  159. function ptz_preset_set(ch, i)
  160. {
  161. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_PRESETSET=" + i;
  162. data = ajaxGetAsync(url);
  163. }
  164. function ptz_preset_goto(ch, i)
  165. {
  166. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_PRESETGOTO=" + i;
  167. data = ajaxGetAsync(url);
  168. ptz_move_stop = 4 ;
  169. }
  170. function ptz_preset_clear(ch, i)
  171. {
  172. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_PRESETCLR=" + i;
  173. data = ajaxGetAsync(url);
  174. }
  175. function ptz_pattern_goto(i)
  176. {
  177. i += 130
  178. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_PRESETGOTO=" + i;
  179. data = ajaxGetAsync(url);
  180. ptz_move_stop = 4 ;
  181. }
  182. function ptz_swing_goto(i)
  183. {
  184. i += 140
  185. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_PRESETGOTO=" + i;
  186. data = ajaxGetAsync(url);
  187. ptz_move_stop = 4 ;
  188. }
  189. function ptz_group_goto(i)
  190. {
  191. i += 150
  192. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_PRESETGOTO=" + i;
  193. data = ajaxGetAsync(url);
  194. ptz_move_stop = 4 ;
  195. }
  196. function ptz_set_pattern_start(i)
  197. {
  198. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_SETPATTERNSTART=" + i;
  199. data = ajaxGetAsync(url);
  200. }
  201. function ptz_set_pattern_stop(i)
  202. {
  203. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_SETPATTERNSTOP=" + i;
  204. data = ajaxGetAsync(url);
  205. ptz_move_stop = 4 ;
  206. }
  207. function ptz_general_command(i)
  208. {
  209. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_COMMAND=" + i;
  210. data = ajaxGetAsync(url);
  211. }
  212. function ptz_drag_zoom(a, b, c, d)
  213. {
  214. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_DRAGZOOM=" + a + "," + b + "," + c + "," + d;
  215. data = ajaxGetAsync(url);
  216. ptz_move_stop = 4 ;
  217. }
  218. function ptz_det_clicktocenter(ch,x,y)
  219. {
  220. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_DET_CENTERING=" + ch + "," + x + "," + y;
  221. data = ajaxGetAsync(url);
  222. ptz_move_stop = 4 ;
  223. }
  224. function ptz_det_drag_zoom(ch, a, b, c, d)
  225. {
  226. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_DET_DRAGZOOM=" + ch + "," + a + "," + b + "," + c + "," + d;
  227. data = ajaxGetAsync(url);
  228. ptz_move_stop = 4 ;
  229. }
  230. function __dcb_ptz_det_getposition(url, params, data, cb)
  231. {
  232. if(data) {
  233. var token = data.split("=");
  234. if(token.length != 2) {
  235. cb(object_ptz_getposition);
  236. }
  237. if(token[0] == "PTZ_DET_GETPOSITION") {
  238. var param = token[1].split(",");
  239. if(param.length != 3) {
  240. cb(object_ptz_getposition);
  241. }
  242. object_ptz_getposition = { channel:param[0], nX:param[1], nY:param[2] }
  243. }
  244. }
  245. cb(object_ptz_getposition);
  246. }
  247. function ptz_det_getposition(cb)
  248. {
  249. //url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_DET_GETPOSITION=";
  250. url ="/httpapx/ReadParam?action=readparam&PTZ_DET_GETPOSITION=0";
  251. if (cb == undefined) {
  252. data = ajaxGet(url);
  253. if(data) {
  254. var token = data.split("=");
  255. if(token.length != 2) {
  256. return object_ptz_getposition;
  257. }
  258. if(token[0] == "PTZ_DET_GETPOSITION") {
  259. var param = token[1].split(",");
  260. if(param.length != 3) {
  261. return object_ptz_getposition;
  262. }
  263. object_ptz_getposition = { channel:param[0], nX:param[1], nY:param[2] }
  264. }
  265. }
  266. return object_ptz_getposition ;
  267. }
  268. else {
  269. ajaxGetAsyncCb(url, undefined, __dcb_ptz_det_getposition, cb);
  270. }
  271. }
  272. function ptz_setmask(i, a, b, c, d)
  273. {
  274. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_SETMASK=" + i + "," + a + "," + b + "," + c + "," + d;
  275. data = ajaxGetAsync(url);
  276. }
  277. function ptz_mask_command(id, i)
  278. {
  279. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_MASKCOMMAND=" + id + "&PTZ_MASKID=" + i;
  280. data = ajaxGetAsync(url);
  281. }
  282. function ptz_zoomhome()
  283. {
  284. ptz_end(1);
  285. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=1&PTZ_ABSOLUTEPOSITION=-1,-1,0,-1";
  286. data = ajaxGetAsync(url);
  287. }
  288. function ptz_end(force)
  289. {
  290. if (timeoutID >= 0)
  291. {
  292. clearTimeout(timeoutID);
  293. timeoutID = -1;
  294. if(PTZ_With_ActiveX == 0){
  295. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ptz_ch + "&PTZ_MOVE=stop";
  296. data = ajaxGetAsync(url);
  297. }
  298. else{
  299. document.Tvs.SendPTZCommand(g_lChID, 0);
  300. }
  301. }
  302. else{
  303. if(force){
  304. if(PTZ_With_ActiveX == 0){
  305. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ptz_ch + "&PTZ_MOVE=stop";
  306. data = ajaxGetAsync(url);
  307. }
  308. else{
  309. document.Tvs.SendPTZCommand(g_lChID, 0);
  310. }
  311. }
  312. }
  313. }
  314. function ptz_timer()
  315. {
  316. if(PTZ_With_ActiveX == 0){
  317. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ptz_ch + "&PTZ_MOVE=continue";
  318. data = ajaxGetAsync(url);
  319. }
  320. else{
  321. document.Tvs.SendPTZCommand(g_lChID, 1);
  322. }
  323. }
  324. function ptz_cmd(ch, cmd)
  325. {
  326. switch(cmd)
  327. {
  328. /* case 'left':
  329. tvs_sendPtzCmd(2);
  330. break;
  331. case 'right':
  332. tvs_sendPtzCmd(3);
  333. break;
  334. case 'up':
  335. tvs_sendPtzCmd(4);
  336. break;
  337. case 'down':
  338. tvs_sendPtzCmd(5);
  339. break;
  340. */
  341. case 'zoom_in':
  342. if(PTZ_With_ActiveX == 0){
  343. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MOVE=zoomin,-1";
  344. data = ajaxGetAsync(url);
  345. }
  346. else{
  347. document.Tvs.SendPTZCommand(g_lChID, 6);
  348. }
  349. break;
  350. case 'zoom_out':
  351. if(PTZ_With_ActiveX == 0){
  352. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MOVE=zoomout,-1";
  353. data = ajaxGetAsync(url);
  354. }
  355. else{
  356. document.Tvs.SendPTZCommand(g_lChID, 7);
  357. }
  358. break;
  359. case 'focus_far':
  360. if(PTZ_With_ActiveX == 0){
  361. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MOVE=focusfar,-1";
  362. data = ajaxGetAsync(url);
  363. }
  364. else{
  365. document.Tvs.SendPTZCommand(g_lChID, 8);
  366. }
  367. break;
  368. case 'focus_near':
  369. if(PTZ_With_ActiveX == 0){
  370. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MOVE=focusnear,-1";
  371. data = ajaxGetAsync(url);
  372. }
  373. else{
  374. document.Tvs.SendPTZCommand(g_lChID, 9);
  375. }
  376. break;
  377. /*
  378. case 'left_up':
  379. tvs_sendPtzCmd(10);
  380. break;
  381. case 'left_down':
  382. tvs_sendPtzCmd(11);
  383. break;
  384. case 'right_up':
  385. tvs_sendPtzCmd(12);
  386. break;
  387. case 'right_down':
  388. tvs_sendPtzCmd(13);
  389. break;
  390. */
  391. case 'light_on':
  392. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_LIGHT=1";
  393. data = ajaxGetAsync(url);
  394. break;
  395. case 'light_off':
  396. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_LIGHT=0";
  397. data = ajaxGetAsync(url);
  398. break;
  399. case 'power_on':
  400. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_POWER=1";
  401. data = ajaxGetAsync(url);
  402. break;
  403. case 'power_off':
  404. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_POWER=0";
  405. data = ajaxGetAsync(url);
  406. break;
  407. case 'home':
  408. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MOVE=home";
  409. data = ajaxGetAsync(url);
  410. break;
  411. case 'iris_close':
  412. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MOVE=irisclose";
  413. data = ajaxGetAsync(url);
  414. break;
  415. case 'iris_open':
  416. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MOVE=irisopen";
  417. data = ajaxGetAsync(url);
  418. break;
  419. case 'iris_auto':
  420. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_IRISAUTO=1";
  421. data = ajaxGetAsync(url);
  422. break;
  423. case 'focus_auto':
  424. if(PTZ_With_ActiveX == 0){
  425. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_FOCUSAUTO=1";
  426. data = ajaxGetAsync(url);
  427. }
  428. else{
  429. document.Tvs.SendPTZCommand(g_lChID, 28);
  430. }
  431. break;
  432. case 'focus_manual':
  433. break;
  434. case 'menu_on':
  435. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MENUON=1";
  436. data = ajaxGetAsync(url);
  437. break;
  438. case 'menu_off':
  439. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MENUOFF=1";
  440. data = ajaxGetAsync(url);
  441. break;
  442. case 'menu_enter':
  443. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MENUENTER=1";
  444. data = ajaxGetAsync(url);
  445. break;
  446. case 'menu_esc':
  447. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_MENUESC=1";
  448. data = ajaxGetAsync(url);
  449. break;
  450. /*
  451. case 'ss_on':
  452. tvs_sendPtzCmd(112);
  453. break;
  454. case 'ss_off':
  455. tvs_sendPtzCmd(113);
  456. break;
  457. case 'ni_on':
  458. tvs_sendPtzCmd(114);
  459. break;
  460. case 'ni_off':
  461. tvs_sendPtzCmd(115);
  462. break;
  463. case 'st_on':
  464. tvs_sendPtzCmd(116);
  465. break;
  466. case 'st_off':
  467. tvs_sendPtzCmd(117);
  468. break;
  469. */
  470. case 'onepushaf':
  471. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_ONEPUSHAF=1";
  472. data = ajaxGetAsync(url);
  473. break;
  474. case 'onepushwb':
  475. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_ONEPUSHWB=1";
  476. data = ajaxGetAsync(url);
  477. break;
  478. case 'lsc_scan':
  479. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_LSCSCAN=1";
  480. data = ajaxGetAsync(url);
  481. break;
  482. case 'awc_set':
  483. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_AWCSET=1";
  484. data = ajaxGetAsync(url);
  485. break;
  486. case 'lens_offset_adjust':
  487. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_LENSOFFSETADJUST=1";
  488. data = ajaxGetAsync(url);
  489. break;
  490. case 'lens_iris_adjust':
  491. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_LENSIRISADJUST=1";
  492. data = ajaxGetAsync(url);
  493. break;
  494. case 'ventilation':
  495. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_VENTILATION=1";
  496. data = ajaxGetAsync(url);
  497. break;
  498. case 'calibration':
  499. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_CALIBRATION=1";
  500. data = ajaxGetAsync(url);
  501. break;
  502. case 'wiper_1h':
  503. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_WIPER=1h";
  504. data = ajaxGetAsync(url);
  505. break;
  506. case 'wiper_2h':
  507. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_WIPER=2h";
  508. data = ajaxGetAsync(url);
  509. break;
  510. case 'wiper_3h':
  511. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_WIPER=3h";
  512. data = ajaxGetAsync(url);
  513. break;
  514. }
  515. }
  516. function ptz_begin(ch, command)
  517. {
  518. ptz_ch = ch;
  519. if(timeoutID < 0){
  520. ptz_cmd(ch, command);
  521. timeoutID = setInterval(ptz_timer, 490);
  522. }
  523. }
  524. function ptz_preset_set_semocon(ch, num, action)
  525. {
  526. url ="/httpapx/SendPTZ?action=sendptz&PTZ_CHANNEL=" + ch + "&PTZ_PRESETSET_SEMOCON=" + num +
  527. "," + action;
  528. data = ajaxGetAsync(url);
  529. }
  530. function ptz_semocon_ir_command(cmd, val)
  531. {
  532. if(cmd == "bright")
  533. url ="/httpapx/SendPTZ?action=sendptz&PTZ_SEMOCON_IR_BRIGHT=" + val;
  534. else if(cmd == "dark")
  535. url ="/httpapx/SendPTZ?action=sendptz&PTZ_SEMOCON_IR_DARK=" + val;
  536. else if(cmd == "wide")
  537. url ="/httpapx/SendPTZ?action=sendptz&PTZ_SEMOCON_IR_WIDE=" + val;
  538. else if(cmd == "narrow")
  539. url ="/httpapx/SendPTZ?action=sendptz&PTZ_SEMOCON_IR_NARROW=" + val;
  540. else if(cmd == "stop")
  541. url ="/httpapx/SendPTZ?action=sendptz&PTZ_SEMOCON_IR_STOP=0";
  542. else if(cmd == "continue")
  543. url ="/httpapx/SendPTZ?action=sendptz&PTZ_SEMOCON_IR_CONTINUE=0";
  544. data = ajaxGetAsync(url);
  545. }
  546. function ptz_semocon_timer()
  547. {
  548. if(PTZ_With_ActiveX == 0){
  549. ptz_semocon_ir_command("continue", "0");
  550. }
  551. }
  552. function ptz_begin_semocon_ir(ch, cmd, val)
  553. {
  554. ptz_ch = ch;
  555. if(timeoutID < 0){
  556. ptz_semocon_ir_command(cmd, val);
  557. timeoutID = setInterval(ptz_semocon_timer, 490);
  558. }
  559. }
  560. function ptz_end_semocon_ir()
  561. {
  562. if (timeoutID >= 0)
  563. {
  564. clearTimeout(timeoutID);
  565. timeoutID = -1;
  566. if(PTZ_With_ActiveX == 0){
  567. ptz_semocon_ir_command("stop", "0");
  568. }
  569. }
  570. }