deviceapi.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512
  1. // JavaScript Document
  2. var W_OK = 0;//检查成功
  3. var W_TRY = 1;//试用
  4. var W_NO_FOUND =2;//没有找到校验服务器
  5. var W_EXCEED_NUM =3;//超过用户数了
  6. function getEvent(parseEvent) {
  7. return ;
  8. // if(g_msg) return;
  9. $.ajax({
  10. type: "post",
  11. url: "http://127.0.0.1:3001/msg/",
  12. dataType: "jsonp",
  13. timeout: 30000,
  14. data: {"act": "get","timeout":30000},
  15. //data中的timeout值要跟前面AJAX的timeout值相等,不设置默认是30000
  16. success: function (data,textStatus) {
  17. // $("#StatusArea").append("--- " + data );
  18. if(textStatus == "success")
  19. {
  20. getEvent(parseEvent);
  21. }
  22. if(data != null)
  23. {
  24. //AppendStatus(data+ "--\r\n");
  25. parseEvent(data.ch,data.e_type,data.e_handle,data.l_result,data.e_data);
  26. }
  27. },
  28. complete:function(XMLHttpRequest,textStatus){
  29. if(XMLHttpRequest.readyState=="4"){
  30. //alert(XMLHttpRequest.responseText);
  31. }
  32. },
  33. error: function (XMLHttpRequest, textStatus, errorThrown) {
  34. //$("#StatusArea").append("[state: " + textStatus + ", error: " + errorThrown + " ]<br/>");
  35. if (textStatus == "timeout") { // 请求超时
  36. // 递归调用
  37. getEvent(parseEvent);
  38. // 其他错误,如网络错误等
  39. } else {
  40. getEvent(parseEvent);
  41. }
  42. }
  43. });
  44. //setTimeout(getEvent ,1000);
  45. }
  46. function sendCmd(cmd_name,paraObj,resultCallback)
  47. {
  48. var nResult = -99;
  49. var bSync = false;
  50. $.ajax({
  51. type: "post",
  52. url: "http://127.0.0.1:3001/cmd/",
  53. dataType: "jsonp",
  54. data: {"act": cmd_name,"para":JSON.stringify(paraObj)},
  55. async:false,
  56. success: function (data,textStatus) {
  57. // $("#StatusArea").append("--- " + data );
  58. bSync = true;
  59. nResult = data.result;
  60. if(resultCallback!="" && resultCallback != null)
  61. resultCallback(nResult);
  62. return nResult;
  63. },
  64. complete:function(XMLHttpRequest,textStatus){
  65. if(XMLHttpRequest.readyState=="4"){
  66. //alert(XMLHttpRequest.responseText);
  67. }
  68. },
  69. error: function (XMLHttpRequest, textStatus, errorThrown) {
  70. console.log("网络错误! " + textStatus + ", error: " + errorThrown );
  71. if (textStatus == "timeout") { // 请求超时
  72. //getEvent(); // 递归调用
  73. // 其他错误,如网络错误等
  74. } else {
  75. //getEvent();
  76. }
  77. bSync = true;
  78. }
  79. });
  80. // Sleep(500);
  81. // var timestamp=new Date().getTime();
  82. // alert(timestamp+"---"+ nResult);
  83. return nResult;
  84. }
  85. //检查本地设备服务程序是否安装命令
  86. function check_ver(iVer,nextFunc)
  87. {
  88. var nResult = -99;
  89. var paraObj={};
  90. paraObj.a= iVer;
  91. $.ajax({
  92. type: "post",
  93. url: "http://127.0.0.1:3001/cmd/",
  94. dataType: "jsonp",
  95. data: {"act": "check_ver","para":JSON.stringify(paraObj)},
  96. timeout: 1000,
  97. //async:false,
  98. success: function (data,textStatus) {
  99. // $("#StatusArea").append("--- " + data );
  100. nResult = data.result;
  101. if(nextFunc!="" && nextFunc != null)
  102. nextFunc(nResult);
  103. return nResult;
  104. },
  105. complete:function(XMLHttpRequest,textStatus){
  106. if(XMLHttpRequest.readyState=="4"){
  107. //alert(XMLHttpRequest.responseText);
  108. }
  109. },
  110. error: function (XMLHttpRequest, textStatus, errorThrown) {
  111. //alert("没有安装! " + textStatus + ", error: " + errorThrown );
  112. nextFunc(nResult);
  113. if (textStatus == "timeout") { // 请求超时
  114. //getEvent(); // 递归调用
  115. // 其他错误,如网络错误等
  116. } else {
  117. //getEvent();
  118. }
  119. return nResult;
  120. }
  121. });
  122. return nResult;
  123. }
  124. function set_check_data_url(strUrl,nextFunc)
  125. {
  126. var nResult = -99;
  127. var paraObj={};
  128. paraObj.a= strUrl;
  129. nResult = sendCmd("set_check_url",paraObj,nextFunc);
  130. return nResult;
  131. }
  132. //最右边的是执行下一个函数的参数
  133. //下一步函数格式为function nextFunc(nResult)内含上次函数执行后返回的结果
  134. function OpenDevice(nDevice_type,nextFunc) {
  135. var nResult = -99;
  136. var paraObj={};
  137. paraObj.a=nDevice_type;
  138. paraObj.b = 0;
  139. nResult = sendCmd("QNV_OpenDevice",paraObj,nextFunc);
  140. return nResult;
  141. }
  142. function CloseDevice(nDevice_type,nextFunc) {
  143. var nResult = -99;
  144. var paraObj={};
  145. paraObj.a=nDevice_type;
  146. paraObj.b = 0;
  147. nResult = sendCmd("QNV_CloseDevice",paraObj,nextFunc);
  148. return nResult;
  149. }
  150. function SetDevCtrl( nChannelID, uCtrlType, nValue,nextFunc)
  151. {
  152. var nResult = -99;
  153. var paraObj = {};
  154. paraObj.a = nChannelID;
  155. paraObj.b = uCtrlType;
  156. paraObj.c = nValue;
  157. nResult = sendCmd("QNV_SetDevCtrl",paraObj,nextFunc);
  158. return nResult;
  159. }
  160. function GetDevCtrl(nChannelID,uCtrlType,nextFunc)
  161. {
  162. var nResult = -99;
  163. var paraObj = {};
  164. paraObj.a = nChannelID;
  165. paraObj.b = uCtrlType;
  166. nResult = sendCmd("QNV_GetDevCtrl",paraObj,nextFunc);
  167. return nResult;
  168. }
  169. function SetParam( nChannelID, uParamType, nValue,nextFunc)
  170. {
  171. var nResult = -99;
  172. var paraObj = {};
  173. paraObj.a = nChannelID;
  174. paraObj.b = uParamType;
  175. paraObj.c = nValue;
  176. nResult = sendCmd("QNV_SetParam",paraObj,nextFunc);
  177. return nResult;
  178. }
  179. function GetParam( nChannelID, uParamType,nextFunc )
  180. {
  181. var nResult = -99;
  182. var paraObj = {};
  183. paraObj.a = nChannelID;
  184. paraObj.b = uParamType;
  185. nResult = sendCmd("QNV_GetParam",paraObj,nextFunc);
  186. return nResult;
  187. }
  188. function PlayFile( nChannelID, uPlayType, nValue, nValueEx, pValue,nextFunc)
  189. {
  190. var nResult = -99;
  191. var paraObj = {};
  192. paraObj.a = nChannelID;
  193. paraObj.b = uPlayType;
  194. paraObj.c = nValue;
  195. paraObj.d = nValueEx;
  196. paraObj.e = pValue;
  197. nResult = sendCmd("QNV_PlayFile",paraObj,nextFunc);
  198. return nResult;
  199. }
  200. function PlayMultiFile( nChannelID, uPlayType, nValue, nValueEx, pValue,nextFunc)
  201. {
  202. var nResult = -99;
  203. var paraObj = {};
  204. paraObj.a = nChannelID;
  205. paraObj.b = uPlayType;
  206. paraObj.c = nValue;
  207. paraObj.d = nValueEx;
  208. paraObj.e = pValue;
  209. nResult = sendCmd("QNV_PlayMultiFile",paraObj,nextFunc);
  210. return nResult;
  211. }
  212. function PlayString( nChannelID, uPlayType, nValue, nValueEx, pValue,nextFunc)
  213. {
  214. var nResult = -99;
  215. var paraObj = {};
  216. paraObj.a = nChannelID;
  217. paraObj.b = uPlayType;
  218. paraObj.c = nValue;
  219. paraObj.d = nValueEx;
  220. paraObj.e = pValue;
  221. nResult = sendCmd("QNV_PlayString",paraObj,nextFunc);
  222. return nResult;
  223. }
  224. function RecordFile( nChannelID, uRecordType, nValue, nValueEx, pValue,nextFunc)
  225. {
  226. var nResult = -99;
  227. var paraObj = {};
  228. paraObj.a = nChannelID;
  229. paraObj.b = uRecordType;
  230. paraObj.c = nValue;
  231. paraObj.d = nValueEx;
  232. paraObj.e = pValue;
  233. nResult = sendCmd("QNV_RecordFile",paraObj,nextFunc);
  234. return nResult;
  235. }
  236. function Conference( nChannelID, nConfID, uConfType, nValue, pValue,nextFunc)
  237. {
  238. var nResult = -99;
  239. var paraObj = {};
  240. paraObj.a = nChannelID;
  241. paraObj.b = nConfID;
  242. paraObj.c = uConfType;
  243. paraObj.d = nValue;
  244. paraObj.e = pValue;
  245. nResult = sendCmd("QNV_Conference",paraObj,nextFunc);
  246. return nResult;
  247. }
  248. function General( nChannelID, uGeneralType, nValue, pValue,nextFunc)
  249. {
  250. var nResult = -99;
  251. var paraObj = {};
  252. paraObj.a = nChannelID;
  253. paraObj.b = uGeneralType;
  254. paraObj.c = nValue;
  255. paraObj.d = pValue;
  256. nResult = sendCmd("QNV_General",paraObj,nextFunc);
  257. return nResult;
  258. }
  259. function DevInfo( nChannelID, uDevInfoType,nextFunc)
  260. {
  261. var nResult = -99;
  262. var paraObj = {};
  263. paraObj.a = nChannelID;
  264. paraObj.b = uDevInfoType;
  265. nResult = sendCmd("QNV_DevInfo",paraObj,nextFunc);
  266. return nResult;
  267. }
  268. //nextFunc参数是一个对象包含result和缓存
  269. function Storage( nDevID, uOPType, uSeek, pPwd, pValue,nextFunc )
  270. {
  271. var paraObj = {};
  272. paraObj.a = nDevID;
  273. paraObj.b = uOPType;
  274. paraObj.c = uSeek;
  275. paraObj.d = pPwd;
  276. paraObj.e = pValue;
  277. var objResult ={};
  278. objResult.result = -99;
  279. $.ajax({
  280. type: "post",
  281. url: "http://127.0.0.1:3001/cmd/",
  282. dataType: "jsonp",
  283. data: {"act": "QNV_Storage","para":JSON.stringify(paraObj)},
  284. async:false,
  285. success: function (data) {
  286. // $("#StatusArea").append("--- " + data );
  287. objResult.result = data.result;
  288. objResult.content = data.content;
  289. if(data.outbuf != null )
  290. objResult.outbuf = decodeURIComponent(data.outbuf);
  291. if(nextFunc != null)
  292. nextFunc(objResult);
  293. },
  294. complete:function(XMLHttpRequest,textStatus){
  295. if(XMLHttpRequest.readyState=="4"){
  296. //alert(XMLHttpRequest.responseText);
  297. }
  298. },
  299. error: function (XMLHttpRequest, textStatus, errorThrown) {
  300. alert("网络错误! " + textStatus + ", error: " + errorThrown );
  301. if (textStatus == "timeout") { // 请求超时
  302. //getEvent(); // 递归调用
  303. // 其他错误,如网络错误等
  304. } else {
  305. //getEvent();
  306. }
  307. }
  308. });
  309. return objResult;
  310. }
  311. //接受文件在asp,php的参数为filedata1="文件名"
  312. function Remote( uRemoteType, nValue, pInValue, pInValueEx, pOutValue, nBufSize,nextFunc)
  313. {
  314. var nResult = -99;
  315. var paraObj = {};
  316. paraObj.a = uRemoteType;
  317. paraObj.b = nValue;
  318. paraObj.c = pInValue;
  319. paraObj.d = pInValueEx;
  320. paraObj.e = pOutValue;
  321. nResult = sendCmd("QNV_Remote",paraObj,nextFunc);
  322. return nResult;
  323. }
  324. //接受文件在asp,php的参数为filedata1="文件名"
  325. function Remote( uRemoteType, nValue, pInValue, pInValueEx, pOutValue, nBufSize,nextFunc)
  326. {
  327. var nResult = -99;
  328. var paraObj = {};
  329. paraObj.a = uRemoteType;
  330. paraObj.b = nValue;
  331. paraObj.c = pInValue;
  332. paraObj.d = pInValueEx;
  333. paraObj.e = pOutValue;
  334. nResult = sendCmd("QNV_Remote",paraObj,nextFunc);
  335. return nResult;
  336. }
  337. //返回一个结果对象
  338. function Tool( uToolType, nValue, pInValue, pInValueEx, nextFunc )
  339. {
  340. var objResult ={};
  341. var paraObj = {};
  342. paraObj.a = uToolType;
  343. paraObj.b = nValue;
  344. paraObj.c = pInValue;
  345. paraObj.d = pInValueEx;
  346. objResult.result = -99;
  347. $.ajax({
  348. type: "post",
  349. url: "http://127.0.0.1:3001/cmd/",
  350. dataType: "jsonp",
  351. data: {"act": "QNV_Tool","para":JSON.stringify(paraObj)},
  352. async:false,
  353. success: function (data) {
  354. // $("#StatusArea").append("--- " + data );
  355. objResult.result = data.result;
  356. objResult.content = data.content;
  357. objResult.outbuf = "";
  358. if(data.outbuf != null )
  359. {
  360. objResult.outbuf = decodeURIComponent(data.outbuf);
  361. }
  362. switch(uToolType) {
  363. case QNV_TOOL_PSTNEND:
  364. case QNV_TOOL_CODETYPE:
  365. if(nextFunc != null)
  366. nextFunc(objResult.result);
  367. return objResult.result;
  368. case QNV_TOOL_LOCATION:
  369. {
  370. if(nextFunc != null)
  371. nextFunc(objResult.outbuf);
  372. return objResult.outbuf;
  373. }
  374. case QNV_TOOL_DISKFREESPACE:
  375. case QNV_TOOL_DISKTOTALSPACE:
  376. {
  377. if(nextFunc != null)
  378. nextFunc(objResult.result);
  379. return objResult.result;
  380. }
  381. case QNV_TOOL_DISKLIST:
  382. {
  383. if(nextFunc != null)
  384. nextFunc(objResult.outbuf);
  385. return objResult.outbuf;
  386. }
  387. case QNV_TOOL_CONVERTFMT:
  388. if(nextFunc != null)
  389. nextFunc(objResult.result);
  390. return objResult.result;
  391. case QNV_TOOL_SELECTDIRECTORY:
  392. {
  393. if(nextFunc != null)
  394. nextFunc(objResult.outbuf);
  395. return objResult.outbuf;
  396. }
  397. case QNV_TOOL_SELECTFILE:
  398. {
  399. if(nextFunc != null)
  400. {
  401. nextFunc(objResult.outbuf);
  402. }
  403. return objResult.outbuf;
  404. }
  405. case QNV_TOOL_CONVERTTOTIFF:
  406. {
  407. if(nextFunc != null)
  408. nextFunc(objResult.result);
  409. return objResult.result;
  410. }
  411. case QNV_TOOL_SLEEP:
  412. if(nextFunc != null)
  413. nextFunc(objResult.result);
  414. return objResult.result;
  415. }
  416. },
  417. complete:function(XMLHttpRequest,textStatus){
  418. if(XMLHttpRequest.readyState=="4"){
  419. //alert(XMLHttpRequest.responseText);
  420. }
  421. },
  422. error: function (XMLHttpRequest, textStatus, errorThrown) {
  423. alert("网络错误! " + textStatus + ", error: " + errorThrown );
  424. if (textStatus == "timeout") { // 请求超时
  425. //getEvent(); // 递归调用
  426. // 其他错误,如网络错误等
  427. } else {
  428. //getEvent();
  429. }
  430. }
  431. });
  432. return objResult;
  433. }
  434. function CallLog( nChannelID, uLogType,nextFunc)
  435. {
  436. var objResult ={};
  437. var paraObj = {};
  438. paraObj.a = nChannelID;
  439. paraObj.b = uLogType;
  440. objResult.result = -99;
  441. $.ajax({
  442. type: "post",
  443. url: "http://127.0.0.1:3001/cmd/",
  444. dataType: "jsonp",
  445. data: {"act": "QNV_CallLog","para":JSON.stringify(paraObj)},
  446. async:false,
  447. success: function (data) {
  448. // $("#StatusArea").append("--- " + data );
  449. objResult.result = data.result;
  450. objResult.content = data.content;
  451. if(data.outbuf != null )
  452. objResult.outbuf = decodeURIComponent(data.outbuf);
  453. switch(uToolType) {
  454. case QNV_CALLLOG_BEGINTIME:
  455. case QNV_CALLLOG_RINGBACKTIME:
  456. case QNV_CALLLOG_CONNECTEDTIME:
  457. case QNV_CALLLOG_ENDTIME:
  458. case QNV_CALLLOG_CALLTYPE:
  459. case QNV_CALLLOG_CALLRESULT:
  460. case QNV_CALLLOG_DELRECFILE:
  461. case QNV_CALLLOG_RESET:
  462. if(nextFunc != null)
  463. nextFunc(objResult.result);
  464. return objResult.result;
  465. case QNV_CALLLOG_CALLID:
  466. case QNV_CALLLOG_CALLRECFILE:
  467. if(nextFunc != null)
  468. nextFunc(objResult.outbuf);
  469. return objResult.outbuf;;
  470. }
  471. },
  472. complete:function(XMLHttpRequest,textStatus){
  473. if(XMLHttpRequest.readyState=="4"){
  474. //alert(XMLHttpRequest.responseText);
  475. }
  476. },
  477. error: function (XMLHttpRequest, textStatus, errorThrown) {
  478. alert("网络错误! " + textStatus + ", error: " + errorThrown );
  479. if (textStatus == "timeout") { // 请求超时
  480. //getEvent(); // 递归调用
  481. // 其他错误,如网络错误等
  482. } else {
  483. //getEvent();
  484. }
  485. }
  486. });
  487. return objResult;
  488. }
  489. //URL中所有参数可以以p1=v1&p2=v2赋值,以post格式传送
  490. ////接受文件在asp,php的参数为file="文件名
  491. //strFilePath问文件本地路径
  492. //nextFunc下一条函数
  493. function UploadFile( strUrl, strFilePath,nextFunc)
  494. {
  495. var nResult = -99;
  496. var paraObj = {};
  497. paraObj.a = strUrl;
  498. paraObj.b = strFilePath;
  499. nResult = sendCmd("UploadFile",paraObj,nextFunc);
  500. return nResult;
  501. }