|
@@ -0,0 +1,2740 @@
|
|
|
|
+var socket;
|
|
|
|
+var isSocketConnect = false;
|
|
|
|
+var openFlagA = false;
|
|
|
|
+
|
|
|
|
+var isOpenMainCamera = false;
|
|
|
|
+
|
|
|
|
+var MainCanvas;
|
|
|
|
+var MainContext;
|
|
|
|
+
|
|
|
|
+var pMainShowStartX = 0;
|
|
|
|
+var pMainShowStartY = 0;
|
|
|
|
+
|
|
|
|
+var isMouseDown = false;
|
|
|
|
+var pALastX = 0;
|
|
|
|
+var pALastY = 0;
|
|
|
|
+var pACurrentX = 0;
|
|
|
|
+var pACurrentY = 0;
|
|
|
|
+
|
|
|
|
+var MainCamCutMode = 0;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//window.onload = function (event) {
|
|
|
|
+// WebSocketConnect();
|
|
|
|
+//}
|
|
|
|
+
|
|
|
|
+//>>>>>>>>>>>>>>>>.修改的地方>>>>>>>>>>>>>>>
|
|
|
|
+function releaseSocketPro() {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(3);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xFF;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+window.onbeforeunload = function () {
|
|
|
|
+
|
|
|
|
+ CloseCamera(); //关闭摄像头
|
|
|
|
+ isOpenMainCamera = false;
|
|
|
|
+ try {
|
|
|
|
+ releaseSocketPro(); //>>>>>>>>>>>>>>>>.修改的地方>>>>>>>>>>>>>>>
|
|
|
|
+ socket.close();
|
|
|
|
+ socket = null;
|
|
|
|
+ }
|
|
|
|
+ catch (ex) {
|
|
|
|
+ }
|
|
|
|
+ console.log("onbeforeunload");
|
|
|
|
+
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+//function CloseConnect() {
|
|
|
|
+// isSocketConnect = false;
|
|
|
|
+// CloseCamera(); //关闭摄像头
|
|
|
|
+// try {
|
|
|
|
+// releaseSocketPro(); //>>>>>>>>>>>>>>>>.修改的地方>>>>>>>>>>>>>>>
|
|
|
|
+// socket.close();
|
|
|
|
+// socket = null;
|
|
|
|
+// }
|
|
|
|
+// catch (ex) {
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function $(id) {
|
|
|
|
+ return document.getElementById(id);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function toSleep(milliSeconds) {
|
|
|
|
+ var startTime = new Date().getTime();
|
|
|
|
+ while (new Date().getTime() < startTime + milliSeconds);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function stringToUint8Array(str) {
|
|
|
|
+ var arr = [];
|
|
|
|
+ for (var i = 0, j = str.length; i < j; ++i) {
|
|
|
|
+ arr.push(str.charCodeAt(i));
|
|
|
|
+ }
|
|
|
|
+ arr.push('\0');
|
|
|
|
+ var tmpUint8Array = new Uint8Array(arr);
|
|
|
|
+ return tmpUint8Array
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function Uint8ArrayToString(fileData) {
|
|
|
|
+ var dataString = "";
|
|
|
|
+ for (var i = 0; i < fileData.length; i++) {
|
|
|
|
+ dataString += String.fromCharCode(fileData[i]);
|
|
|
|
+ }
|
|
|
|
+ return dataString
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function stringToByte(str) {
|
|
|
|
+ var bytes = new Array();
|
|
|
|
+ var len, c;
|
|
|
|
+ len = str.length;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ c = str.charCodeAt(i);
|
|
|
|
+ if (c >= 0x010000 && c <= 0x10FFFF) {
|
|
|
|
+ bytes.push(((c >> 18) & 0x07) | 0xF0);
|
|
|
|
+ bytes.push(((c >> 12) & 0x3F) | 0x80);
|
|
|
|
+ bytes.push(((c >> 6) & 0x3F) | 0x80);
|
|
|
|
+ bytes.push((c & 0x3F) | 0x80);
|
|
|
|
+ } else if (c >= 0x000800 && c <= 0x00FFFF) {
|
|
|
|
+ bytes.push(((c >> 12) & 0x0F) | 0xE0);
|
|
|
|
+ bytes.push(((c >> 6) & 0x3F) | 0x80);
|
|
|
|
+ bytes.push((c & 0x3F) | 0x80);
|
|
|
|
+ } else if (c >= 0x000080 && c <= 0x0007FF) {
|
|
|
|
+ bytes.push(((c >> 6) & 0x1F) | 0xC0);
|
|
|
|
+ bytes.push((c & 0x3F) | 0x80);
|
|
|
|
+ } else {
|
|
|
|
+ bytes.push(c & 0xFF);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return bytes;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function byteToString(arr) {
|
|
|
|
+ if (typeof arr === 'string') {
|
|
|
|
+ return arr;
|
|
|
|
+ }
|
|
|
|
+ var str = '',
|
|
|
|
+ _arr = arr;
|
|
|
|
+ for (var i = 0; i < _arr.length; i++) {
|
|
|
|
+ var one = _arr[i].toString(2),
|
|
|
|
+ v = one.match(/^1+?(?=0)/);
|
|
|
|
+ if (v && one.length == 8) {
|
|
|
|
+ var bytesLength = v[0].length;
|
|
|
|
+ var store = _arr[i].toString(2).slice(7 - bytesLength);
|
|
|
|
+ for (var st = 1; st < bytesLength; st++) {
|
|
|
|
+ store += _arr[st + i].toString(2).slice(2);
|
|
|
|
+ }
|
|
|
|
+ str += String.fromCharCode(parseInt(store, 2));
|
|
|
|
+ i += bytesLength - 1;
|
|
|
|
+ } else {
|
|
|
|
+ str += String.fromCharCode(_arr[i]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return str;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function addEvent(obj, xEvent, fn) {
|
|
|
|
+ if (obj.attachEvent) {
|
|
|
|
+ obj.attachEvent('on' + xEvent, fn);
|
|
|
|
+ } else {
|
|
|
|
+ obj.addEventListener(xEvent, fn, false);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function InitCanvas(DivMainBox, mX, mY, mwidth, mheight) {
|
|
|
|
+
|
|
|
|
+ //var DivMainBox = $("CameraCtl");
|
|
|
|
+
|
|
|
|
+ if (mwidth != 0 && mheight != 0) {
|
|
|
|
+ MainCanvas = document.createElement("canvas");
|
|
|
|
+ MainCanvas.style.border = "solid 1px #A0A0A0";
|
|
|
|
+ MainCanvas.id = "MainCamCanvas";
|
|
|
|
+ MainCanvas.width = mwidth;
|
|
|
|
+ MainCanvas.height = mheight;
|
|
|
|
+ MainContext = MainCanvas.getContext("2d");
|
|
|
|
+ DivMainBox.appendChild(MainCanvas); //添加画布
|
|
|
|
+ MainCanvas.onmousedown = MainCanvasMouseDown;
|
|
|
|
+ MainCanvas.onmousemove = MainCanvasMouseMove;
|
|
|
|
+ MainCanvas.onmouseup = MainCanvasMouseUp;
|
|
|
|
+ MainCanvas.onmouseout = MainCanvasMouseOut;
|
|
|
|
+ addEvent(MainCanvas, 'mousewheel', onMouseWheel);
|
|
|
|
+ addEvent(MainCanvas, 'DOMMouseScroll', onMouseWheel);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//*************摄像头操作初始化***************
|
|
|
|
+function Cam_ControlInit(documentObj, mX, mY, mwidth, mheight) {
|
|
|
|
+ WebSocketConnect();
|
|
|
|
+ InitCanvas(documentObj, mX, mY, mwidth, mheight);
|
|
|
|
+ //console.log("Cam_ControlInit");
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//*************获取设备数目***************
|
|
|
|
+function Cam_GetDevCount() {
|
|
|
|
+ GetDevCount();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//***************获取分辨率***************
|
|
|
|
+function Cam_GetDevResolution(iCamNo) {
|
|
|
|
+ GetResolution(iCamNo);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************打开主摄像头***************
|
|
|
|
+ function Cam_Open(iCamNo, width, height) {
|
|
|
|
+ OpenCamera(iCamNo, width, height);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //*************关闭摄像头***************
|
|
|
|
+ function Cam_Close() {
|
|
|
|
+
|
|
|
|
+ CloseCamera();
|
|
|
|
+ isOpenMainCamera = false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //*************拍照***************
|
|
|
|
+ function Cam_Photo(fileAddr) {
|
|
|
|
+ if (MainCamCutMode == 2) {
|
|
|
|
+ var rectx, recty, rectw, recth;
|
|
|
|
+ if (pALastX > pACurrentX)
|
|
|
|
+ rectx = pACurrentX;
|
|
|
|
+ else
|
|
|
|
+ rectx = pALastX;
|
|
|
|
+ if (pALastY > pACurrentY)
|
|
|
|
+ recty = pACurrentY;
|
|
|
|
+ else
|
|
|
|
+ recty = pALastY;
|
|
|
|
+ rectw = Math.abs(pACurrentX - pALastX);
|
|
|
|
+ recth = Math.abs(pACurrentY - pALastY);
|
|
|
|
+
|
|
|
|
+ SetCutRect(rectx, recty, rectw, recth); //手动裁剪区域
|
|
|
|
+ }
|
|
|
|
+ CaptureImage(fileAddr);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+//*************放大***************
|
|
|
|
+ function Cam_ZoomIn() {
|
|
|
|
+ ZoomIn();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************缩小***************
|
|
|
|
+function Cam_ZoomOut() {
|
|
|
|
+ ZoomOut();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************适合大小***************
|
|
|
|
+function Cam_BestSize() {
|
|
|
|
+ BestSize();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************1:1***************
|
|
|
|
+function Cam_TrueSize() {
|
|
|
|
+ TrueSize();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************旋转***************
|
|
|
|
+function Cam_Rotate(angle) {
|
|
|
|
+ Rotate(angle);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************左旋***************
|
|
|
|
+function Cam_RotateLeft() {
|
|
|
|
+ RotateL();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************右旋***************
|
|
|
|
+function Cam_RotateRight() {
|
|
|
|
+ RotateR();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************对焦***************
|
|
|
|
+function Cam_Focus() {
|
|
|
|
+ ManualFocus();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************设置视频属性***************
|
|
|
|
+function Cam_ShowVideoProp() {
|
|
|
|
+ ShowVideoProp();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************设置裁剪模式***************
|
|
|
|
+function Cam_SetCutMode( CutMode) {
|
|
|
|
+ SetCutMode(CutMode);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//*************读取身份证信息*************
|
|
|
|
+function Cam_ReadIdCard(cardImgPath) {
|
|
|
|
+ ReadIdCard(cardImgPath);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//*************读取身份证信息并生成正反面合并证件照*************
|
|
|
|
+function Cam_ReadIdCardEx(cardImgPath) {
|
|
|
|
+ ReadIdCardEx(cardImgPath);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************上传文件*************
|
|
|
|
+function UploadFile(url, filepath) {
|
|
|
|
+ toUploadFile(url, filepath);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function UploadFileEx(lpServer, port, lpAddr, filepath) {
|
|
|
|
+ toUploadFileEx(lpServer, lpAddr, port, filepath);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//*************设置文件格式*************
|
|
|
|
+function Cam_SetFileType(filetype) {
|
|
|
|
+ SetFileType(filetype);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************设置JPG图片质量*************
|
|
|
|
+function Cam_SetJpgQuality(val) {
|
|
|
|
+ SetJpgQuality(val);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//*************设置色彩模式*************
|
|
|
|
+function Cam_SetColorMode(colorMode) {
|
|
|
|
+ SetColorMode(colorMode);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************设置去黑边*************
|
|
|
|
+function Cam_SetDeleteBlackEdge(flag) {
|
|
|
|
+ SetDeleteBlackEdge(flag);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************设置去底色*************
|
|
|
|
+function Cam_SetDeleteBgColor(flag) {
|
|
|
|
+ SetDeleteBgColor(flag);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************从摄像头中识别二维码条码*************
|
|
|
|
+function Cam_RecogQrBarCodeFromCamera(type) {
|
|
|
|
+ RecogQrBarCodeFromCamera(type);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************从图片文件中识别二维码条码*************
|
|
|
|
+function Cam_RecogQrBarCodeFromFile(type,filePath) {
|
|
|
|
+ RecogQrBarCodeFromFile(type, filePath);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//*************添加要合并的图片到PDF*************
|
|
|
|
+function Cam_AddImgFileToPDF(filePath) {
|
|
|
|
+ AddImgFileToPDF(filePath);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************添加要合并PDF的图片路径集合*************
|
|
|
|
+function Cam_AddImgFileToPDFex(filePath) {
|
|
|
|
+ AddImgFileToPDFex(filePath);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************合并PDF*************
|
|
|
|
+function Cam_CombinePDF(filePath) {
|
|
|
|
+ CombinePDF(filePath);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//*************添加要合并的图片*************
|
|
|
|
+function Cam_AddMergeImageFile(filePath) {
|
|
|
|
+ AddMergeImageFile(filePath);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************合并图像*************
|
|
|
|
+function Cam_MergeImages(filePath,dir) {
|
|
|
|
+ MergeImages(filePath, dir);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************获取驱动盘符*************
|
|
|
|
+function GetDrives() {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(3);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA6;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//*************设置水印*************
|
|
|
|
+function SetWaterMark(isAdd, wType, addTime, wTransp, wPos, wSize, wColor, szInfo) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ if (szInfo == "")
|
|
|
|
+ return;
|
|
|
|
+ var info = encodeURI(szInfo);
|
|
|
|
+ //console.log(info);
|
|
|
|
+ var infoArray = stringToByte(info);
|
|
|
|
+ var len = infoArray.length;
|
|
|
|
+ var totalLen = len + 10;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA7;
|
|
|
|
+ aDataArray[3] = isAdd;
|
|
|
|
+ aDataArray[4] = wType;
|
|
|
|
+ aDataArray[5] = addTime;
|
|
|
|
+ aDataArray[6] = wPos;
|
|
|
|
+ aDataArray[7] = wSize;
|
|
|
|
+ aDataArray[8] = wTransp;
|
|
|
|
+ aDataArray[9] = wColor;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ aDataArray[10 + i] = infoArray[i];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function ReadCamLicense() {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(3);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA5;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function SetInchImgType(sizetype) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xB0;
|
|
|
|
+ aDataArray[3] = sizetype;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function SetInchLineType(linetype) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xB1;
|
|
|
|
+ aDataArray[3] = linetype;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/****************************************************************************************/
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function DeleteFile(filePath) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ if (filePath == "") {
|
|
|
|
+ var packageCount = 1;
|
|
|
|
+ var len = 0;
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ var totalLen = 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA8;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 0; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var path = encodeURI(filePath);
|
|
|
|
+ console.log(path);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA8;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 11; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA8;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(80);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function CombinePDF(filePath) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// if (filePath == "") {
|
|
|
|
+// var len = 0;
|
|
|
|
+// var aDataArray = new Uint8Array(3);
|
|
|
|
+// aDataArray[0] = 0x77;
|
|
|
|
+// aDataArray[1] = 0x88;
|
|
|
|
+// aDataArray[2] = 0x32;
|
|
|
|
+// for (var i = 0; i < len; i++) {
|
|
|
|
+// aDataArray[3 + i] = pathArray[i];
|
|
|
|
+// }
|
|
|
|
+// socket.send(aDataArray.buffer);
|
|
|
|
+// }
|
|
|
|
+// else {
|
|
|
|
+// var path = encodeURI(filePath);
|
|
|
|
+// var pathArray = stringToByte(path);
|
|
|
|
+// var len = pathArray.length;
|
|
|
|
+// var totalLen = len + 3;
|
|
|
|
+// var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+// aDataArray[0] = 0x77;
|
|
|
|
+// aDataArray[1] = 0x88;
|
|
|
|
+// aDataArray[2] = 0x32;
|
|
|
|
+// for (var i = 0; i < len; i++) {
|
|
|
|
+// aDataArray[3 + i] = pathArray[i];
|
|
|
|
+// }
|
|
|
|
+// socket.send(aDataArray.buffer);
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (filePath == "") {
|
|
|
|
+ var packageCount = 1;
|
|
|
|
+ var len = 0;
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ var totalLen = 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x32;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 0; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var path = encodeURI(filePath);
|
|
|
|
+ //console.log(path);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x32;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 11; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x32;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(80);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function AddImgFileToPDF(filePath) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ if (filePath == "") {
|
|
|
|
+ var packageCount = 1;
|
|
|
|
+ var len = 0;
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ var totalLen = 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x31;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 0; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var path = encodeURI(filePath);
|
|
|
|
+ console.log(path);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x31;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 11; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x31;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(200);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function AddImgFileToPDFex(filePath) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ if (filePath == "") {
|
|
|
|
+ var packageCount = 1;
|
|
|
|
+ var len = 0;
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ var totalLen = 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x33;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 0; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var path = encodeURI(filePath);
|
|
|
|
+ console.log(path);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x33;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 11; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x33;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(80);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function AddMergeImageFile(filePath) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ if (filePath == "") {
|
|
|
|
+ var len = 0;
|
|
|
|
+ var totalLen = len + 3;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC0;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ aDataArray[3 + i] = pathArray[i];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+
|
|
|
|
+ var path = encodeURI(filePath);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+ var totalLen = len + 3;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC0;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ aDataArray[3 + i] = pathArray[i];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function MergeImages(filePath, dir) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ if (filePath == "") {
|
|
|
|
+ var len = 0;
|
|
|
|
+ var totalLen = len + 4;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC1;
|
|
|
|
+ aDataArray[3] = dir;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ aDataArray[4 + i] = pathArray[i];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+
|
|
|
|
+ var path = encodeURI(filePath);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+ var totalLen = len + 4;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC1;
|
|
|
|
+ aDataArray[3] = dir;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ aDataArray[4 + i] = pathArray[i];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function RecogQrBarCodeFromCamera(type) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA3;
|
|
|
|
+ aDataArray[3] = type;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function RecogQrBarCodeFromFile(type, filePath) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ console.log(filePath);
|
|
|
|
+ var path = encodeURI(filePath);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+ var totalLen = len + 4;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA4;
|
|
|
|
+ aDataArray[3] = type;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ aDataArray[4 + i] = pathArray[i];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function SetFileType(filetype) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x28;
|
|
|
|
+ aDataArray[3] = filetype;
|
|
|
|
+ if (filetype == 1) //png格式
|
|
|
|
+ aDataArray[3] = 2;
|
|
|
|
+ if (filetype == 2) //tif格式
|
|
|
|
+ aDataArray[3] = 3;
|
|
|
|
+ if (filetype == 3) //pdf格式
|
|
|
|
+ aDataArray[3] = 4;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function SetJpgQuality(val) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x29;
|
|
|
|
+ aDataArray[3] = val;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function SetColorMode(colorMode) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA0;
|
|
|
|
+ aDataArray[3] = colorMode;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function SetDpi(xDpi,yDpi) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(7);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA9;
|
|
|
|
+ aDataArray[3] = xDpi >> 8 & 0xff;
|
|
|
|
+ aDataArray[4] = xDpi & 0xff;
|
|
|
|
+ aDataArray[5] = yDpi >> 8 & 0xff;
|
|
|
|
+ aDataArray[6] = yDpi & 0xff;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function SetDeleteBlackEdge(flag) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA1;
|
|
|
|
+ aDataArray[3] = flag;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function Cam_SetDeleteBgColor(flag) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xA2;
|
|
|
|
+ aDataArray[3] = flag;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function toUploadFile(url, filepath) {
|
|
|
|
+
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ //console.log(url);
|
|
|
|
+ var urlpath = encodeURI(url);
|
|
|
|
+ var urlpathArray = stringToByte(urlpath);
|
|
|
|
+ //console.log(urlpath);
|
|
|
|
+
|
|
|
|
+ var imgpath = encodeURI(filepath);
|
|
|
|
+ var imgpathArray = stringToByte(imgpath);
|
|
|
|
+
|
|
|
|
+ var len = urlpathArray.length + imgpathArray.length;
|
|
|
|
+ var pathDataArray = new Uint8Array(len);
|
|
|
|
+ for (var i = 0; i < urlpathArray.length; i++) {
|
|
|
|
+ pathDataArray[i] = urlpathArray[i];
|
|
|
|
+ }
|
|
|
|
+ for (var i = 0; i < imgpathArray.length; i++) {
|
|
|
|
+ pathDataArray[urlpathArray.length + i] = imgpathArray[i];
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen=len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 17;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x90;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = urlpathArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[7] = urlpathArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[8] = urlpathArray.length & 0xff;
|
|
|
|
+ aDataArray[9] = imgpathArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[10] = imgpathArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[11] = imgpathArray.length & 0xff;
|
|
|
|
+ aDataArray[12] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[13] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[14] = 90; //分包长度
|
|
|
|
+ aDataArray[15] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[16] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[17 + i] = pathDataArray[i + pindex*90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 17; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x90;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = urlpathArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[7] = urlpathArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[8] = urlpathArray.length & 0xff;
|
|
|
|
+ aDataArray[9] = imgpathArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[10] = imgpathArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[11] = imgpathArray.length & 0xff;
|
|
|
|
+ aDataArray[12] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[13] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[14] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[15] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[16] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[17 + i] = pathDataArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(80);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function toUploadFileEx(lpServer, lpAddr, port, filepath) {
|
|
|
|
+
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ //console.log(url);
|
|
|
|
+ var lpServerPath = encodeURI(lpServer);
|
|
|
|
+ var lpServerArray = stringToByte(lpServerPath);
|
|
|
|
+ var lpAddrPath = encodeURI(lpAddr);
|
|
|
|
+ var lpAddrArray = stringToByte(lpAddrPath);
|
|
|
|
+ var imgpath = encodeURI(filepath);
|
|
|
|
+ var imgpathArray = stringToByte(imgpath);
|
|
|
|
+
|
|
|
|
+ var len = lpServerArray.length + lpAddrArray.length + imgpathArray.length;
|
|
|
|
+
|
|
|
|
+ var pathDataArray = new Uint8Array(len);
|
|
|
|
+ for (var i = 0; i < lpServerArray.length; i++) {
|
|
|
|
+ pathDataArray[i] = lpServerArray[i];
|
|
|
|
+ }
|
|
|
|
+ for (var i = 0; i < lpAddrArray.length; i++) {
|
|
|
|
+ pathDataArray[lpServerArray.length + i] = lpAddrArray[i];
|
|
|
|
+ }
|
|
|
|
+ for (var i = 0; i < imgpathArray.length; i++) {
|
|
|
|
+ pathDataArray[lpServerArray.length + lpAddrArray.length + i] = imgpathArray[i];
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 23;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x92;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = port >> 16 & 0xff;
|
|
|
|
+ aDataArray[7] = port >> 8 & 0xff;
|
|
|
|
+ aDataArray[8] = port & 0xff;
|
|
|
|
+ aDataArray[9] = lpServerArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[10] = lpServerArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[11] = lpServerArray.length & 0xff;
|
|
|
|
+ aDataArray[12] = lpAddrArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[13] = lpAddrArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[14] = lpAddrArray.length & 0xff;
|
|
|
|
+ aDataArray[15] = imgpathArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[16] = imgpathArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[17] = imgpathArray.length & 0xff;
|
|
|
|
+ aDataArray[18] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[19] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[20] = 90; //分包长度
|
|
|
|
+ aDataArray[21] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[22] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[23 + i] = pathDataArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 23; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x92;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = port >> 16 & 0xff;
|
|
|
|
+ aDataArray[7] = port >> 8 & 0xff;
|
|
|
|
+ aDataArray[8] = port & 0xff;
|
|
|
|
+ aDataArray[9] = lpServerArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[10] = lpServerArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[11] = lpServerArray.length & 0xff;
|
|
|
|
+ aDataArray[12] = lpAddrArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[13] = lpAddrArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[14] = lpAddrArray.length & 0xff;
|
|
|
|
+ aDataArray[15] = imgpathArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[16] = imgpathArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[17] = imgpathArray.length & 0xff;
|
|
|
|
+ aDataArray[18] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[19] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[20] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[21] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[22] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[23 + i] = pathDataArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(80);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function AddOcrRecogFile(filePath) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ if (filePath == "") {
|
|
|
|
+ var packageCount = 1;
|
|
|
|
+ var len = 0;
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ var totalLen = 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC3;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 0; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var path = encodeURI(filePath);
|
|
|
|
+ console.log(path);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC3;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 11; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC3;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(200);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+// if (filePath == "") {
|
|
|
|
+// var len = 0;
|
|
|
|
+// var totalLen = len + 3;
|
|
|
|
+// var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+// aDataArray[0] = 0x77;
|
|
|
|
+// aDataArray[1] = 0x88;
|
|
|
|
+// aDataArray[2] = 0xC3;
|
|
|
|
+// for (var i = 0; i < len; i++) {
|
|
|
|
+// aDataArray[3 + i] = pathArray[i];
|
|
|
|
+// }
|
|
|
|
+// socket.send(aDataArray.buffer);
|
|
|
|
+// }
|
|
|
|
+// else {
|
|
|
|
+
|
|
|
|
+// var path = encodeURI(filePath);
|
|
|
|
+// var pathArray = stringToByte(path);
|
|
|
|
+// var len = pathArray.length;
|
|
|
|
+// var totalLen = len + 3;
|
|
|
|
+// var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+// aDataArray[0] = 0x77;
|
|
|
|
+// aDataArray[1] = 0x88;
|
|
|
|
+// aDataArray[2] = 0xC3;
|
|
|
|
+// for (var i = 0; i < len; i++) {
|
|
|
|
+// aDataArray[3 + i] = pathArray[i];
|
|
|
|
+// }
|
|
|
|
+// socket.send(aDataArray.buffer);
|
|
|
|
+
|
|
|
|
+// }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function OcrCallProEx(languageIndex, outpath, isDelSrcFile) {
|
|
|
|
+
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ var iRestPath = encodeURI(outpath);
|
|
|
|
+ var txtpathArray = stringToByte(iRestPath);
|
|
|
|
+ var len = txtpathArray.length;
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 13;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC4;
|
|
|
|
+ aDataArray[3] = languageIndex;
|
|
|
|
+ aDataArray[4] = isDelSrcFile;
|
|
|
|
+ aDataArray[5] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[6] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[7] = len & 0xff;;
|
|
|
|
+ aDataArray[8] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[9] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[10] = 90; //分包长度
|
|
|
|
+ aDataArray[11] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[12] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[13 + i] = txtpathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 13; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC4;
|
|
|
|
+ aDataArray[3] = languageIndex;
|
|
|
|
+ aDataArray[4] = isDelSrcFile;
|
|
|
|
+ aDataArray[5] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[6] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[7] = len & 0xff;
|
|
|
|
+ aDataArray[8] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[9] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[10] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[11] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[12] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[13 + i] = txtpathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(80);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function OcrCallPro(languageIndex, filePath, txtpath) {
|
|
|
|
+
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ //console.log(url);
|
|
|
|
+ var urlpath = encodeURI(filePath);
|
|
|
|
+ var urlpathArray = stringToByte(urlpath);
|
|
|
|
+ //console.log(urlpath);
|
|
|
|
+
|
|
|
|
+ var iRestPath = encodeURI(txtpath);
|
|
|
|
+ var txtpathArray = stringToByte(iRestPath);
|
|
|
|
+
|
|
|
|
+ var len = urlpathArray.length + txtpathArray.length;
|
|
|
|
+ var pathDataArray = new Uint8Array(len);
|
|
|
|
+ for (var i = 0; i < urlpathArray.length; i++) {
|
|
|
|
+ pathDataArray[i] = urlpathArray[i];
|
|
|
|
+ }
|
|
|
|
+ for (var i = 0; i < txtpathArray.length; i++) {
|
|
|
|
+ pathDataArray[urlpathArray.length + i] = txtpathArray[i];
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 18;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC2;
|
|
|
|
+ aDataArray[3] = languageIndex;
|
|
|
|
+ aDataArray[4] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[5] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[6] = len & 0xff;
|
|
|
|
+ aDataArray[7] = urlpathArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[8] = urlpathArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[9] = urlpathArray.length & 0xff;
|
|
|
|
+ aDataArray[10] = txtpathArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[11] = txtpathArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[12] = txtpathArray.length & 0xff;
|
|
|
|
+ aDataArray[13] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[14] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[15] = 90; //分包长度
|
|
|
|
+ aDataArray[16] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[17] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[18 + i] = pathDataArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 18; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xC2;
|
|
|
|
+ aDataArray[3] = languageIndex;
|
|
|
|
+ aDataArray[4] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[5] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[6] = len & 0xff;
|
|
|
|
+ aDataArray[7] = urlpathArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[8] = urlpathArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[9] = urlpathArray.length & 0xff;
|
|
|
|
+ aDataArray[10] = txtpathArray.length >> 16 & 0xff;
|
|
|
|
+ aDataArray[11] = txtpathArray.length >> 8 & 0xff;
|
|
|
|
+ aDataArray[12] = txtpathArray.length & 0xff;
|
|
|
|
+ aDataArray[13] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[14] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[15] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[16] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[17] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[18 + i] = pathDataArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(80);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function StartWiseCaptrue(folderPath) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ if (folderPath == "") {
|
|
|
|
+ var packageCount = 1;
|
|
|
|
+ var len = 0;
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ var totalLen = 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xE0;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 0; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var path = encodeURI(folderPath);
|
|
|
|
+ console.log(path);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 11;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xE0;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 11; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xE0;
|
|
|
|
+ aDataArray[3] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[4] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = len & 0xff;
|
|
|
|
+ aDataArray[6] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[7] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[9] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[10] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[11 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(200);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function StopWiseCaptrue() {
|
|
|
|
+ var aDataArray = new Uint8Array(3);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0xE1;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function ReadIdCard(cardImgPath) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ if (cardImgPath == "") {
|
|
|
|
+ var len = 0;
|
|
|
|
+ var totalLen = len + 3;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x80;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ aDataArray[3 + i] = pathArray[i];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var path = encodeURI(cardImgPath);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+ var totalLen = len + 3;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x80;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ aDataArray[3 + i] = pathArray[i];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function ReadIdCardEx(cardImgPath) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ if (cardImgPath == "") {
|
|
|
|
+ var len = 0;
|
|
|
|
+ var totalLen = len + 3;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x81;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ aDataArray[3 + i] = pathArray[i];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var path = encodeURI(cardImgPath);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+ var totalLen = len + 3;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x81;
|
|
|
|
+ for (var i = 0; i < len; i++) {
|
|
|
|
+ aDataArray[3 + i] = pathArray[i];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function GetDevCount() {
|
|
|
|
+ var aDataArray = new Uint8Array(3);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x50;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function GetResolution(iCamNo) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x51;
|
|
|
|
+ aDataArray[3] = iCamNo;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function OpenCamera(iCamNo, width, height) {
|
|
|
|
+
|
|
|
|
+ pALastX = 0;
|
|
|
|
+ pALastY = 0;
|
|
|
|
+ pACurrentX = 0;
|
|
|
|
+ pACurrentY = 0;
|
|
|
|
+
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(12);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x01; //打开摄像头
|
|
|
|
+ aDataArray[3] = iCamNo;
|
|
|
|
+ aDataArray[4] = MainCanvas.width >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = MainCanvas.width & 0xff;
|
|
|
|
+ aDataArray[6] = MainCanvas.height >> 8 & 0xff;
|
|
|
|
+ aDataArray[7] = MainCanvas.height & 0xff;
|
|
|
|
+ aDataArray[8] = width >> 8 & 0xff;
|
|
|
|
+ aDataArray[9] = width & 0xff;
|
|
|
|
+ aDataArray[10] = height >> 8 & 0xff;
|
|
|
|
+ aDataArray[11] = height & 0xff;
|
|
|
|
+
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function CloseCamera() {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x02; //关闭摄像头
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function CaptureImage(fileAddr) {
|
|
|
|
+
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ // var pathArray = stringToUint8Array(fileAddr);
|
|
|
|
+ if (fileAddr == "") {
|
|
|
|
+ var packageCount = 1;
|
|
|
|
+ var len = 0;
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ var totalLen = 12;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x10;
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ aDataArray[4] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[5] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[6] = len & 0xff;
|
|
|
|
+ aDataArray[7] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[9] = 0; //分包长度
|
|
|
|
+ aDataArray[10] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[11] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var path = encodeURI(fileAddr);
|
|
|
|
+ //console.log(path);
|
|
|
|
+ var pathArray = stringToByte(path);
|
|
|
|
+ var len = pathArray.length;
|
|
|
|
+
|
|
|
|
+ var packageCount = 0;
|
|
|
|
+ var tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+ packageCount++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log("packageCount:" + packageCount);
|
|
|
|
+
|
|
|
|
+ var pindex = 0;
|
|
|
|
+ tmpLen = len;
|
|
|
|
+ while (tmpLen > 0) {
|
|
|
|
+ tmpLen = tmpLen - 90;
|
|
|
|
+
|
|
|
|
+ if (tmpLen > 0) {
|
|
|
|
+ var totalLen = 90 + 12;
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x10;
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ aDataArray[4] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[5] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[6] = len & 0xff;
|
|
|
|
+ aDataArray[7] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[9] = 90; //分包长度
|
|
|
|
+ aDataArray[10] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[11] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < 90; i++) {
|
|
|
|
+ aDataArray[12 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var totalLen = 90 + tmpLen + 12; // 此时tmpLen为负数,做加法运算
|
|
|
|
+ var aDataArray = new Uint8Array(totalLen);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x10;
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ aDataArray[4] = len >> 16 & 0xff;
|
|
|
|
+ aDataArray[5] = len >> 8 & 0xff;
|
|
|
|
+ aDataArray[6] = len & 0xff;
|
|
|
|
+ aDataArray[7] = packageCount >> 8 & 0xff; //包总数
|
|
|
|
+ aDataArray[8] = packageCount & 0xff; //包总数
|
|
|
|
+ aDataArray[9] = 90 + tmpLen; //分包长度
|
|
|
|
+ aDataArray[10] = pindex >> 8 & 0xff; //包序号
|
|
|
|
+ aDataArray[11] = pindex & 0xff; //包序号
|
|
|
|
+ console.log("pindex:" + pindex);
|
|
|
|
+ for (var i = 0; i < (90 + tmpLen); i++) {
|
|
|
|
+ aDataArray[12 + i] = pathArray[i + pindex * 90];
|
|
|
|
+ }
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ pindex++;
|
|
|
|
+ toSleep(80);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function ZoomIn() {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x03; //放大
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function ZoomOut() {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x04; //缩小
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function BestSize() {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x05; //适合大小
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function TrueSize() {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x06; //1:1
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function Rotate(angle) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(5);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x78;
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ if (angle > 3 || angle<0)
|
|
|
|
+ angle=0;
|
|
|
|
+ aDataArray[4] = angle;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+function RotateL() {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x07; //左旋
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function RotateR() {
|
|
|
|
+ if (isSocketConnect ) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x08; //右旋
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function ManualFocus() {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x30;
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function SetCutMode(cutMode) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+
|
|
|
|
+ MainCamCutMode = cutMode;
|
|
|
|
+ var aDataArray = new Uint8Array(5);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x11; //设置裁剪模式
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ aDataArray[4] = cutMode;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function SetCutRect(rectX,rectY,rectW,rectH) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(12);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x13; //设置裁剪模式
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ aDataArray[4] = rectX >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = rectX & 0xff;
|
|
|
|
+ aDataArray[6] = rectY >> 8 & 0xff;
|
|
|
|
+ aDataArray[7] = rectY & 0xff;
|
|
|
|
+ aDataArray[8] = rectW >> 8 & 0xff;
|
|
|
|
+ aDataArray[9] = rectW & 0xff;
|
|
|
|
+ aDataArray[10] = rectH >> 8 & 0xff;
|
|
|
|
+ aDataArray[11] = rectH & 0xff;
|
|
|
|
+
|
|
|
|
+ //console.log(aDataArray[8] + "," + aDataArray[9]);
|
|
|
|
+
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function SetCustomArea(iX1, iY1, iX2, iY2) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(12);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x23; //设置自定义裁剪区域
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ aDataArray[4] = iX1 >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = iX1 & 0xff;
|
|
|
|
+ aDataArray[6] = iY1 >> 8 & 0xff;
|
|
|
|
+ aDataArray[7] = iY1 & 0xff;
|
|
|
|
+ aDataArray[8] = iX2 >> 8 & 0xff;
|
|
|
|
+ aDataArray[9] = iX2 & 0xff;
|
|
|
|
+ aDataArray[10] = iY2 >> 8 & 0xff;
|
|
|
|
+ aDataArray[11] = iY2 & 0xff;
|
|
|
|
+
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function ShowVideoProp() {
|
|
|
|
+ if (isSocketConnect ) {
|
|
|
|
+ var aDataArray = new Uint8Array(4);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x12; //设置视频属性
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function MoveOffsetXY(px,py,xdir,ydir) {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(10);
|
|
|
|
+ aDataArray[0] = 0x77;
|
|
|
|
+ aDataArray[1] = 0x88;
|
|
|
|
+ aDataArray[2] = 0x09; //移动
|
|
|
|
+ aDataArray[3] = 0x00;
|
|
|
|
+ aDataArray[4] = px >> 8 & 0xff;
|
|
|
|
+ aDataArray[5] = px & 0xff;
|
|
|
|
+ aDataArray[6] = py >> 8 & 0xff;
|
|
|
|
+ aDataArray[7] = py & 0xff;
|
|
|
|
+ aDataArray[8] = xdir ;
|
|
|
|
+ aDataArray[9] = ydir ;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function onMouseWheel(ev) { /*当鼠标滚轮事件发生时,执行一些操作*/
|
|
|
|
+ var ev = ev || window.event;
|
|
|
|
+ var down = true;
|
|
|
|
+ per = 1;
|
|
|
|
+ down = ev.wheelDelta ? ev.wheelDelta < 0 : ev.detail > 0;
|
|
|
|
+ if (down) {
|
|
|
|
+ ZoomOut();
|
|
|
|
+ //per += 0.05;
|
|
|
|
+ //console.log("onMouseWheel down");
|
|
|
|
+ } else {
|
|
|
|
+ ZoomIn();
|
|
|
|
+ //per -= 0.05;
|
|
|
|
+ //console.log("onMouseWheel up");
|
|
|
|
+ }
|
|
|
|
+ // if (ev.preventDefault) { /*FF 和 Chrome*/
|
|
|
|
+ // ev.preventDefault(); // 阻止默认事件
|
|
|
|
+ // }
|
|
|
|
+ return false;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function MainCanvasMouseDown(e) {
|
|
|
|
+ isMouseDown = true;
|
|
|
|
+ pALastX = e.pageX - MainCanvas.offsetLeft;
|
|
|
|
+ pALastY = e.pageY - MainCanvas.offsetTop;
|
|
|
|
+ if (MainCamCutMode == 2) {
|
|
|
|
+ pACurrentX = pALastX;
|
|
|
|
+ pACurrentY = pALastY;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function MainCanvasMouseUp(e) {
|
|
|
|
+ isMouseDown = false;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function MainCanvasMouseOut(e) {
|
|
|
|
+ isMouseDown = false;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function MainCanvasMouseMove(e) {
|
|
|
|
+ if (isMouseDown) {
|
|
|
|
+
|
|
|
|
+ if (MainCamCutMode == 2) {
|
|
|
|
+
|
|
|
|
+ pACurrentX = e.pageX - MainCanvas.offsetLeft;
|
|
|
|
+ pACurrentY = e.pageY - MainCanvas.offsetTop;
|
|
|
|
+
|
|
|
|
+ //console.log("MainCanvas:" + MainCanvas.offsetLeft + "," + MainCanvas.offsetTop);
|
|
|
|
+
|
|
|
|
+ var rectx,recty,rectw,recth ;
|
|
|
|
+ if (pALastX > pACurrentX)
|
|
|
|
+ rectx = pACurrentX;
|
|
|
|
+ else
|
|
|
|
+ rectx = pALastX;
|
|
|
|
+ if (pALastY > pACurrentY)
|
|
|
|
+ recty = pACurrentY;
|
|
|
|
+ else
|
|
|
|
+ recty = pALastY;
|
|
|
|
+ rectw = Math.abs(pACurrentX - pALastX);
|
|
|
|
+ recth = Math.abs(pACurrentY - pALastY);
|
|
|
|
+
|
|
|
|
+ SetCutRect(rectx, recty, rectw, recth); //手动裁剪区域
|
|
|
|
+ //console.log(rectx + "," + recty + "," + rectw + "," + recth);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ pACurrentX = e.pageX - MainCanvas.offsetLeft;
|
|
|
|
+ pACurrentY = e.pageY - MainCanvas.offsetTop;
|
|
|
|
+ var dx = pACurrentX - pALastX;
|
|
|
|
+ var dy = pACurrentY - pALastY;
|
|
|
|
+ var xdir = 0;
|
|
|
|
+ var ydir = 0;
|
|
|
|
+ if (dx < 0)
|
|
|
|
+ xdir = 0;
|
|
|
|
+ else
|
|
|
|
+ xdir = 1;
|
|
|
|
+ if (dy < 0)
|
|
|
|
+ ydir = 0;
|
|
|
|
+ else
|
|
|
|
+ ydir = 1;
|
|
|
|
+ pALastX = pACurrentX;
|
|
|
|
+ pALastY = pACurrentY;
|
|
|
|
+ MoveOffsetXY(Math.abs(dx), Math.abs(dy), xdir, ydir);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/************************************************************************************************************************************************/
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//>>>>>>>>>>>>>>>>.修改的地方>>>>>>>>>>>>>>>
|
|
|
|
+var lockReconnect = false;
|
|
|
|
+var connectCount = 0;
|
|
|
|
+var heartTimerId = -1;
|
|
|
|
+
|
|
|
|
+//心跳检测
|
|
|
|
+function heartCheck() {
|
|
|
|
+
|
|
|
|
+ clearInterval(heartTimerId);
|
|
|
|
+ heartTimerId = setInterval(function () {
|
|
|
|
+ if (isSocketConnect) {
|
|
|
|
+ var aDataArray = new Uint8Array(3);
|
|
|
|
+ aDataArray[0] = 0x11;
|
|
|
|
+ aDataArray[1] = 0x11;
|
|
|
|
+ aDataArray[2] = 0x11;
|
|
|
|
+ socket.send(aDataArray.buffer);
|
|
|
|
+ console.log("heartCheck...........");
|
|
|
|
+ }
|
|
|
|
+ }, 6000);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//var heartCheck = {
|
|
|
|
+// timeout: 4000, //4秒发一次心跳
|
|
|
|
+// timeoutObj: null,
|
|
|
|
+// serverTimeoutObj: null,
|
|
|
|
+// reset: function () {
|
|
|
|
+// //console.log("clearTimeout");
|
|
|
|
+// clearTimeout(this.timeoutObj);
|
|
|
|
+// clearTimeout(this.serverTimeoutObj);
|
|
|
|
+// return this;
|
|
|
|
+// },
|
|
|
|
+
|
|
|
|
+// start: function () {
|
|
|
|
+// var self = this;
|
|
|
|
+// console.log(self.timeout);
|
|
|
|
+// this.timeoutObj = setTimeout(function(){
|
|
|
|
+// //这里发送一个心跳,后端收到后,返回一个心跳消息,
|
|
|
|
+// console.log("websocket ping 01");
|
|
|
|
+// var aDataArray = new Uint8Array(3);
|
|
|
|
+// aDataArray[0] = 0x11;
|
|
|
|
+// aDataArray[1] = 0x11;
|
|
|
|
+// aDataArray[2] = 0x11;
|
|
|
|
+// socket.send(aDataArray.buffer);
|
|
|
|
+// console.log("websocket ping 02");
|
|
|
|
+// self.serverTimeoutObj = setTimeout(function () {//如果超过一定时间还没重置,说明后端主动断开了
|
|
|
|
+// console.log("websocket ping 03");
|
|
|
|
+// socket.close(); //如果onclose会执行reconnect,我们执行ws.close()就行了.如果直接执行reconnect 会触发onclose导致重连两次
|
|
|
|
+// }, self.timeout)
|
|
|
|
+// }, this.timeout)
|
|
|
|
+// }
|
|
|
|
+//}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+//掉线重连
|
|
|
|
+var intervalId = -1;
|
|
|
|
+function reconnect() {
|
|
|
|
+
|
|
|
|
+ clearInterval(intervalId);
|
|
|
|
+ intervalId = setInterval(function () {
|
|
|
|
+ if (isSocketConnect == false) {
|
|
|
|
+ WebSocketConnect();
|
|
|
|
+ console.log("reconnect...")
|
|
|
|
+ }
|
|
|
|
+ console.log("reconnectTimer.........!")
|
|
|
|
+ }, 3000);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function WebSocketConnect() {
|
|
|
|
+ socket = new WebSocket("ws://127.0.0.1:22225");
|
|
|
|
+ socket.binaryType = "arraybuffer";
|
|
|
|
+ try {
|
|
|
|
+
|
|
|
|
+ socket.onopen = function (event) {
|
|
|
|
+
|
|
|
|
+ //heartCheck.reset().start();
|
|
|
|
+ heartCheck();
|
|
|
|
+ isSocketConnect = true;
|
|
|
|
+ clearInterval(intervalId);
|
|
|
|
+ //if (isOpenMainCamera == false)
|
|
|
|
+ Cam_GetDevCount();
|
|
|
|
+ console.log("socket.onopen");
|
|
|
|
+
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ socket.onclose = function (event) {
|
|
|
|
+
|
|
|
|
+ console.log("socket.onclose");
|
|
|
|
+ isSocketConnect = false;
|
|
|
|
+ reconnect();
|
|
|
|
+ $("TextInfo").value = "websocket connect close!"
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ socket.onerror = function (event) {
|
|
|
|
+ isSocketConnect = false;
|
|
|
|
+ reconnect();
|
|
|
|
+ $("TextInfo").value = "websocket connect error!"
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ socket.onmessage = function (event) {
|
|
|
|
+
|
|
|
|
+ //heartCheck.reset().start();
|
|
|
|
+
|
|
|
|
+ var rDataArr = new Uint8Array(event.data);
|
|
|
|
+ if (rDataArr.length > 0) {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (rDataArr[0] == 0x11 && rDataArr[1] == 0x11 && rDataArr[2] == 0x11) {
|
|
|
|
+ console.log("heart socket!!!!");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (rDataArr[0] == 0x55 && rDataArr[1] == 0x66) {
|
|
|
|
+
|
|
|
|
+ //摄像头数目返回
|
|
|
|
+ if (rDataArr[2] == 0x50) {
|
|
|
|
+
|
|
|
|
+ var devCount = rDataArr[3];
|
|
|
|
+ var devNameBufLen = rDataArr.length - 4;
|
|
|
|
+ var devNameData = new Uint8Array(devNameBufLen);
|
|
|
|
+ for (var i = 0; i < devNameBufLen; i++) {
|
|
|
|
+ devNameData[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ //var AllCamName = Uint8ArrayToString(devNameData);
|
|
|
|
+ var str = byteToString(devNameData);
|
|
|
|
+ var AllCamName = decodeURIComponent(str);
|
|
|
|
+ var camName = new Array();
|
|
|
|
+ camName = AllCamName.split('|');
|
|
|
|
+ GetDevCountAndNameResultCB(devCount, camName);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //摄像头分辨率返回
|
|
|
|
+ if (rDataArr[2] == 0x51) {
|
|
|
|
+
|
|
|
|
+ var resCount = rDataArr[3];
|
|
|
|
+ var resArr = new Array();
|
|
|
|
+ for (var i = 0; i < resCount; i++) {
|
|
|
|
+ var width = rDataArr[4 + i * 4 + 0] * 256 + rDataArr[4 + i * 4 + 1];
|
|
|
|
+ var height = rDataArr[4 + i * 4 + 2] * 256 + rDataArr[4 + i * 4 + 3];
|
|
|
|
+ var resStr = "" + width + "*" + height;
|
|
|
|
+ resArr.push(resStr);
|
|
|
|
+ }
|
|
|
|
+ GetResolutionResultCB(resCount, resArr);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //摄像头开启状态返回
|
|
|
|
+ if (rDataArr[2] == 0x01) {
|
|
|
|
+
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ isOpenMainCamera = true;
|
|
|
|
+ GetCameraOnOffStatus(0);
|
|
|
|
+ //Cam_Rotate(1);
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x03) {
|
|
|
|
+ isOpenMainCamera = false;
|
|
|
|
+ GetCameraOnOffStatus(1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (rDataArr[2] == 0xA5) {
|
|
|
|
+ var flag;
|
|
|
|
+ if (rDataArr[3] == 0x00) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ if (flag == 0) {
|
|
|
|
+ var ResultStr = "";
|
|
|
|
+ var pDataLen = rDataArr.length - 4;
|
|
|
|
+ if (pDataLen > 0) {
|
|
|
|
+ var pData = new Uint8Array(pDataLen);
|
|
|
|
+ for (var i = 0; i < pDataLen; i++) {
|
|
|
|
+ pData[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ var str = byteToString(pData);
|
|
|
|
+ console.log(str);
|
|
|
|
+ ResultStr = decodeURIComponent(str);
|
|
|
|
+ }
|
|
|
|
+ console.log(ResultStr);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //当前拍照状态返回
|
|
|
|
+ if (rDataArr[2] == 0x10) {
|
|
|
|
+ //console.log(rDataArr[3]);
|
|
|
|
+ //GetCaptrueStatusResultCB(rDataArr[3]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //拍照结果返回
|
|
|
|
+ if (rDataArr[2] == 0x10) {
|
|
|
|
+
|
|
|
|
+ var flag;
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ var imgpathLen = rDataArr[4] * 256 + rDataArr[5];
|
|
|
|
+ if (imgpathLen == 0) {
|
|
|
|
+ var base64Len = rDataArr[6] * 65536 + rDataArr[7] * 256 + rDataArr[8];
|
|
|
|
+ var imgPathStr = "";
|
|
|
|
+ var base64Data = new Uint8Array(base64Len);
|
|
|
|
+ for (var i = 0; i < base64Len; i++) {
|
|
|
|
+ base64Data[i] = rDataArr[9 + imgpathLen + i];
|
|
|
|
+ }
|
|
|
|
+ var base64Str = Uint8ArrayToString(base64Data);
|
|
|
|
+ GetCaptrueImgResultCB(flag, imgPathStr, base64Str);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var base64Len = rDataArr[6] * 65536 + rDataArr[7] * 256 + rDataArr[8];
|
|
|
|
+ var pData = new Uint8Array(imgpathLen);
|
|
|
|
+ for (var i = 0; i < imgpathLen; i++) {
|
|
|
|
+ pData[i] = rDataArr[9 + i];
|
|
|
|
+ }
|
|
|
|
+ var str = byteToString(pData);
|
|
|
|
+ var imgPathStr = decodeURIComponent(str);
|
|
|
|
+
|
|
|
|
+ var base64Data = new Uint8Array(base64Len);
|
|
|
|
+ for (var i = 0; i < base64Len; i++) {
|
|
|
|
+ base64Data[i] = rDataArr[9 + imgpathLen + i];
|
|
|
|
+ }
|
|
|
|
+ var base64Str = Uint8ArrayToString(base64Data);
|
|
|
|
+
|
|
|
|
+ GetCaptrueImgResultCB(flag, imgPathStr, base64Str);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x02) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ GetCaptrueImgResultCB(flag, "", "");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //身份证信息返回
|
|
|
|
+ if (rDataArr[2] == 0x80) {
|
|
|
|
+ var flag;
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x02) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+ var pDataLen = rDataArr.length - 4;
|
|
|
|
+ var pData = new Uint8Array(pDataLen);
|
|
|
|
+ for (var i = 0; i < pDataLen; i++) {
|
|
|
|
+ pData[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ var str = byteToString(pData);
|
|
|
|
+ var AllInfoStr = decodeURIComponent(str);
|
|
|
|
+ var resultStr = new Array();
|
|
|
|
+ resultStr = AllInfoStr.split(';');
|
|
|
|
+ //console.log(resultStr);
|
|
|
|
+ GetIdCardInfoResultCB(flag, resultStr[0], resultStr[1], resultStr[2], resultStr[3], resultStr[4], resultStr[5], resultStr[6], resultStr[7], resultStr[8], resultStr[9]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //身份证信息及证件合并照片信息返回
|
|
|
|
+ if (rDataArr[2] == 0x81) {
|
|
|
|
+ var flag;
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x02) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var pDataLen = rDataArr.length - 4;
|
|
|
|
+ var pData = new Uint8Array(pDataLen);
|
|
|
|
+ for (var i = 0; i < pDataLen; i++) {
|
|
|
|
+ pData[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ var str = byteToString(pData);
|
|
|
|
+ var AllInfoStr = decodeURIComponent(str);
|
|
|
|
+ var resultStr = new Array();
|
|
|
|
+ resultStr = AllInfoStr.split(';');
|
|
|
|
+ GetIdCardInfoAndImgResultCB(flag, resultStr[0], resultStr[1], resultStr[2], resultStr[3], resultStr[4], resultStr[5], resultStr[6], resultStr[7], resultStr[8], resultStr[9], resultStr[10]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //上传结果返回
|
|
|
|
+ if (rDataArr[2] == 0x90) {
|
|
|
|
+ var flag;
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x02) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x03) {
|
|
|
|
+ flag = 3;
|
|
|
|
+ }
|
|
|
|
+ var pDataLen = rDataArr.length - 6;
|
|
|
|
+ if (pDataLen <= 0) {
|
|
|
|
+ HttpResultCB(flag, ResultStr);
|
|
|
|
+ }
|
|
|
|
+ var pData = new Uint8Array(pDataLen);
|
|
|
|
+ for (var i = 0; i < pDataLen; i++) {
|
|
|
|
+ pData[i] = rDataArr[6 + i];
|
|
|
|
+ }
|
|
|
|
+ var str = byteToString(pData);
|
|
|
|
+ console.log(str);
|
|
|
|
+ var ResultStr = decodeURIComponent(str);
|
|
|
|
+ console.log(ResultStr);
|
|
|
|
+ HttpResultCB(flag, ResultStr);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //添加需要OCR识别的图片文件返回结果
|
|
|
|
+ if (rDataArr[2] == 0xC3) {
|
|
|
|
+ var flag;
|
|
|
|
+ var base64Len = rDataArr.length - 4;
|
|
|
|
+ var base64Str = "";
|
|
|
|
+ if (base64Len > 0) {
|
|
|
|
+ var base64Data = new Uint8Array(base64Len);
|
|
|
|
+ for (var i = 0; i < base64Len; i++) {
|
|
|
|
+ base64Data[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ base64Str = Uint8ArrayToString(base64Data);
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x02) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+ AddOcrRecogFileResultCB(flag, base64Str);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //OCR识别结果
|
|
|
|
+ if (rDataArr[2] == 0xC2) {
|
|
|
|
+ var flag, proValue;
|
|
|
|
+ flag = rDataArr[3];
|
|
|
|
+ proValue = rDataArr[4];
|
|
|
|
+ var ResultStr = "";
|
|
|
|
+
|
|
|
|
+ console.log("result:" + flag + "_proValue:" + proValue);
|
|
|
|
+
|
|
|
|
+ if (flag == 0) {
|
|
|
|
+ //var pDataLen = rDataArr.length - 7;
|
|
|
|
+ //var pData = new Uint8Array(pDataLen);
|
|
|
|
+ //for (var i = 0; i < pDataLen; i++) {
|
|
|
|
+ // pData[i] = rDataArr[7 + i];
|
|
|
|
+ //}
|
|
|
|
+ //var str = byteToString(pData);
|
|
|
|
+ //console.log(str);
|
|
|
|
+ //ResultStr = decodeURIComponent(str);
|
|
|
|
+ //console.log(ResultStr);
|
|
|
|
+
|
|
|
|
+ var pathLen = rDataArr[5] * 256 + rDataArr[6];
|
|
|
|
+ var base64Len = rDataArr[7] * 65536 + rDataArr[8] * 256 + rDataArr[9];
|
|
|
|
+ var pData = new Uint8Array(pathLen);
|
|
|
|
+ for (var i = 0; i < pathLen; i++) {
|
|
|
|
+ pData[i] = rDataArr[10 + i];
|
|
|
|
+ }
|
|
|
|
+ var str = byteToString(pData);
|
|
|
|
+ ResultStr = decodeURIComponent(str);
|
|
|
|
+
|
|
|
|
+ var base64Data = new Uint8Array(base64Len);
|
|
|
|
+ for (var i = 0; i < base64Len; i++) {
|
|
|
|
+ base64Data[i] = rDataArr[10 + pathLen + i];
|
|
|
|
+ }
|
|
|
|
+ var base64Str = Uint8ArrayToString(base64Data);
|
|
|
|
+
|
|
|
|
+ OcrCallResultCB(flag, proValue, ResultStr, base64Str);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ OcrCallResultCB(flag, proValue, ResultStr, "");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //条码二维码识别结果返回
|
|
|
|
+ if (rDataArr[2] == 0x91) {
|
|
|
|
+ var flag;
|
|
|
|
+ if (rDataArr[3] == 0x00) {
|
|
|
|
+ flag = 2; //未识别到内容
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0; //识别到内容
|
|
|
|
+ }
|
|
|
|
+ var ResultStr = "";
|
|
|
|
+ var pDataLen = rDataArr.length - 4;
|
|
|
|
+ if (flag == 0 && pDataLen > 0) {
|
|
|
|
+ var pData = new Uint8Array(pDataLen);
|
|
|
|
+ for (var i = 0; i < pDataLen; i++) {
|
|
|
|
+ pData[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ var str = byteToString(pData);
|
|
|
|
+ ResultStr = decodeURIComponent(str);
|
|
|
|
+ }
|
|
|
|
+ console.log(ResultStr);
|
|
|
|
+ QrBarCodeRecogResultCB(flag, ResultStr);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //添加合并PDF文件结果返回
|
|
|
|
+ if (rDataArr[2] == 0x31) {
|
|
|
|
+ var flag;
|
|
|
|
+ var base64Len = rDataArr.length - 4;
|
|
|
|
+ var base64Str = "";
|
|
|
|
+ if (base64Len > 0) {
|
|
|
|
+ var base64Data = new Uint8Array(base64Len);
|
|
|
|
+ for (var i = 0; i < base64Len; i++) {
|
|
|
|
+ base64Data[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ base64Str = Uint8ArrayToString(base64Data);
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x02) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+ AddImgFileToPDFResultCB(flag, base64Str);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //合并PDF结果返回
|
|
|
|
+ if (rDataArr[2] == 0x32) {
|
|
|
|
+ var flag;
|
|
|
|
+ var base64Len = rDataArr.length - 4;
|
|
|
|
+ var base64Str = "";
|
|
|
|
+ if (base64Len > 0) {
|
|
|
|
+ var base64Data = new Uint8Array(base64Len);
|
|
|
|
+ for (var i = 0; i < base64Len; i++) {
|
|
|
|
+ base64Data[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ base64Str = Uint8ArrayToString(base64Data);
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x02) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+ PdfCombineResultCB(flag, base64Str);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //添加合并图像文件结果返回
|
|
|
|
+ if (rDataArr[2] == 0xC0) {
|
|
|
|
+ var flag;
|
|
|
|
+ var base64Len = rDataArr.length - 4;
|
|
|
|
+ var base64Str = "";
|
|
|
|
+ if (base64Len > 0) {
|
|
|
|
+ var base64Data = new Uint8Array(base64Len);
|
|
|
|
+ for (var i = 0; i < base64Len; i++) {
|
|
|
|
+ base64Data[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ base64Str = Uint8ArrayToString(base64Data);
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x02) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+ AddMergeImageFileResultCB(flag, base64Str);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //合并图像结果返回
|
|
|
|
+ if (rDataArr[2] == 0xC1) {
|
|
|
|
+ var flag;
|
|
|
|
+ var base64Len = rDataArr.length - 4;
|
|
|
|
+ var base64Str = "";
|
|
|
|
+ if (base64Len > 0) {
|
|
|
|
+ var base64Data = new Uint8Array(base64Len);
|
|
|
|
+ for (var i = 0; i < base64Len; i++) {
|
|
|
|
+ base64Data[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ base64Str = Uint8ArrayToString(base64Data);
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x02) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+ console.log("MergeImagesResultCB 01");
|
|
|
|
+ MergeImagesResultCB(flag, base64Str);
|
|
|
|
+ console.log("MergeImagesResultCB 02");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (rDataArr[2] == 0xA5) {
|
|
|
|
+ var flag;
|
|
|
|
+ if (rDataArr[3] == 0x00) {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+ if (rDataArr[3] == 0x01) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ var ResultStr = "";
|
|
|
|
+ if (flag == 0) {
|
|
|
|
+ var pDataLen = rDataArr.length - 4;
|
|
|
|
+ if (pDataLen > 0) {
|
|
|
|
+ var pData = new Uint8Array(pDataLen);
|
|
|
|
+ for (var i = 0; i < pDataLen; i++) {
|
|
|
|
+ pData[i] = rDataArr[4 + i];
|
|
|
|
+ }
|
|
|
|
+ var str = byteToString(pData);
|
|
|
|
+ ResultStr = decodeURIComponent(str);
|
|
|
|
+ }
|
|
|
|
+ // console.log(ResultStr);
|
|
|
|
+ }
|
|
|
|
+ GetLicenseResultCB(ResultStr);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //获取驱动盘符
|
|
|
|
+ if (rDataArr[2] == 0xA6) {
|
|
|
|
+ var strLen = rDataArr.length - 3;
|
|
|
|
+ if (strLen > 0) {
|
|
|
|
+ var driveData = new Uint8Array(strLen);
|
|
|
|
+ for (var i = 0; i < strLen; i++) {
|
|
|
|
+ driveData[i] = rDataArr[3 + i];
|
|
|
|
+ }
|
|
|
|
+ var driveStr = Uint8ArrayToString(driveData);
|
|
|
|
+ GetDriveResultCB(driveStr);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ GetDriveResultCB("");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //连拍返回结果
|
|
|
|
+ if (rDataArr[2] == 0xE0) {
|
|
|
|
+ var flag;
|
|
|
|
+ if (rDataArr[3] == 0) {
|
|
|
|
+ //console.log("wise captrue fail !!");
|
|
|
|
+ GetWiseCaptrueResultCB(2, Steady, "", "");
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ var Steady = rDataArr[4];
|
|
|
|
+ if (Steady == 1) {
|
|
|
|
+
|
|
|
|
+ var imgpathLen = rDataArr[5] * 256 + rDataArr[6];
|
|
|
|
+ var base64Len = rDataArr[7] * 65536 + rDataArr[8] * 256 + rDataArr[9];
|
|
|
|
+ var pData = new Uint8Array(imgpathLen);
|
|
|
|
+ for (var i = 0; i < imgpathLen; i++) {
|
|
|
|
+ pData[i] = rDataArr[10 + i];
|
|
|
|
+ }
|
|
|
|
+ var str = byteToString(pData);
|
|
|
|
+ var imgPathStr = decodeURIComponent(str);
|
|
|
|
+
|
|
|
|
+ var base64Data = new Uint8Array(base64Len);
|
|
|
|
+ for (var i = 0; i < base64Len; i++) {
|
|
|
|
+ base64Data[i] = rDataArr[10 + imgpathLen + i];
|
|
|
|
+ }
|
|
|
|
+ var base64Str = Uint8ArrayToString(base64Data);
|
|
|
|
+ GetWiseCaptrueResultCB(0, Steady, imgPathStr, base64Str);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ GetWiseCaptrueResultCB(0, Steady, "", "");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //删除文件结果
|
|
|
|
+ if (rDataArr[2] == 0xA8) {
|
|
|
|
+ var flag;
|
|
|
|
+ if (rDataArr[3] == 0) {
|
|
|
|
+ flag = 0;
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ flag = 2;
|
|
|
|
+ }
|
|
|
|
+ GetDeleteFileResultCB(flag);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //摄像头数据
|
|
|
|
+ if (rDataArr[2] == 0xcc) {
|
|
|
|
+
|
|
|
|
+ var ww = rDataArr[3] * 256 + rDataArr[4];
|
|
|
|
+ var hh = rDataArr[5] * 256 + rDataArr[6];
|
|
|
|
+ pMainShowStartX = rDataArr[7] * 256 + rDataArr[8];
|
|
|
|
+ pMainShowStartY = rDataArr[9] * 256 + rDataArr[10];
|
|
|
|
+ MainContext.clearRect(0, 0, MainCanvas.width, MainCanvas.height);
|
|
|
|
+ var imgData = MainContext.createImageData(ww, hh);
|
|
|
|
+ var dataNum = 0;
|
|
|
|
+ dataNum = dataNum + 11;
|
|
|
|
+ for (var i = 0; i < imgData.data.length; i += 4) {
|
|
|
|
+ imgData.data[i + 0] = rDataArr[dataNum];
|
|
|
|
+ imgData.data[i + 1] = rDataArr[dataNum + 1];
|
|
|
|
+ imgData.data[i + 2] = rDataArr[dataNum + 2];
|
|
|
|
+ imgData.data[i + 3] = 255;
|
|
|
|
+ dataNum = dataNum + 3;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ MainContext.putImageData(imgData, pMainShowStartX, pMainShowStartY);
|
|
|
|
+
|
|
|
|
+ if (MainCamCutMode == 2) {
|
|
|
|
+ MainContext.strokeStyle = 'blue'; // 设置线条的颜色
|
|
|
|
+ MainContext.lineWidth = 2; // 设置线条的宽度
|
|
|
|
+ MainContext.beginPath(); // 绘制直线
|
|
|
|
+ MainContext.rect(pALastX, pALastY, (pACurrentX - pALastX), (pACurrentY - pALastY));
|
|
|
|
+ MainContext.closePath();
|
|
|
|
+ MainContext.stroke();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ rDataArr = null;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ catch (ex) {
|
|
|
|
+ alert("异常错误!")
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|