mirror of http://192.168.10.4:8099/sane/dpkg.git
657 lines
22 KiB
JavaScript
Executable File
657 lines
22 KiB
JavaScript
Executable File
(function (window) {
|
||
const TAG = 'WebScanController:'
|
||
let Result = function (code, msg, data) {
|
||
this.code = code;
|
||
this.msg = msg;
|
||
this.data = data;
|
||
};
|
||
|
||
function WebScanController(options) {
|
||
|
||
if (options.wsUrl == '' || options.wsUrl == null || options.wsUrl == undefined) {
|
||
WebScanController.prototype.wsUrl = "ws://localhost:38999";
|
||
} else {
|
||
WebScanController.prototype.wsUrl = options.wsUrl;
|
||
}
|
||
WebScanController.prototype.wslicence = options.wslicence;
|
||
return WebScanController.prototype;
|
||
}
|
||
|
||
WebScanController.prototype = {
|
||
constructor: WebScanController,
|
||
|
||
/*****************************************扫描仪相关********************************************************************************/
|
||
initDevice: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "init_device",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
|
||
},
|
||
deinitDevices: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "deinit_device",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
getDeviceNameList: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "get_device_name_list",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
openDevice: function (device_name, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "open_device",
|
||
iden: that.wslicence,
|
||
device_name: device_name
|
||
}, callBack)
|
||
},
|
||
closeDevice: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "close_device",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
setScanParams: function (appendParams, callBack) {
|
||
const that = this
|
||
let fixedParams = {
|
||
func: "set_device_param",
|
||
iden: that.wslicence
|
||
}
|
||
fixedParams.device_param = appendParams
|
||
console.log('final set scan params:' + JSON.stringify(fixedParams))
|
||
this.sendCommand(fixedParams, callBack)
|
||
},
|
||
getScanParams: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "get_device_param",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
resetScanParams: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "reset_device_param",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
getCurrDeviceName: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "get_curr_device_name",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
//开始扫描
|
||
startScan: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "start_scan",
|
||
iden: that.wslicence,
|
||
get_base64: true
|
||
}, callBack)
|
||
},
|
||
stopScan: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "stop_scan",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
|
||
|
||
/*****************************************基本接口********************************************************************************/
|
||
|
||
getLocalPic(path, callBack) {
|
||
let that = this
|
||
const cmd = {
|
||
func: "load_local_image",
|
||
iden: that.wslicence,
|
||
image_path: path
|
||
}
|
||
|
||
console.log(TAG, 'getLocalPic', JSON.parse(cmd))
|
||
this.sendCommand(cmd, callBack)
|
||
},
|
||
saveLocalPic(base64, callBack) {
|
||
const that = this
|
||
const cmd = {
|
||
func: "save_local_image",
|
||
iden: that.wslicence,
|
||
image_base64: base64
|
||
}
|
||
|
||
console.log(TAG, 'saveLocalPic', JSON.parse(cmd))
|
||
this.sendCommand(cmd, callBack)
|
||
},
|
||
//获取全局配置
|
||
getGlobalConfig: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "get_global_config",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
//设置全局配置
|
||
setGlobalConfig: function (appendParams, callBack) {
|
||
const that = this
|
||
let fixedParams = {
|
||
func: "set_global_config",
|
||
iden: that.wslicence
|
||
}
|
||
const finalParams = Object.assign({}, appendParams, fixedParams)
|
||
console.log('final set global params:' + JSON.stringify(finalParams))
|
||
this.sendCommand(finalParams, callBack)
|
||
},
|
||
//加载本地图像
|
||
loadLocalImage: function (imagePath, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "load_local_image",
|
||
iden: that.wslicence,
|
||
image_path: imagePath
|
||
}, callBack)
|
||
|
||
},
|
||
//保存本地图像
|
||
saveLocalImage: function (imageBase64, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "save_local_image",
|
||
iden: that.wslicence,
|
||
image_base64: imageBase64
|
||
}, callBack)
|
||
},
|
||
//删除本地文件(为了安全,仅能删除后端生成的文件)
|
||
deleteLocalFile: function (filePath, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "delete_local_file",
|
||
iden: that.wslicence,
|
||
file_path: filePath
|
||
}, callBack)
|
||
},
|
||
//清理全局文件保存目录(为了安全,只会删除后端生成的文件)
|
||
clearGlobalFileSavePath: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "clear_global_file_save_path",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
//合成本地图像
|
||
mergeLocalImage: function (imagePathList, mode, align, getBase64, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "merge_local_image",
|
||
iden: that.wslicence,
|
||
image_path_list: imagePathList,
|
||
mode: mode,
|
||
align: align,
|
||
interval: 0,
|
||
get_base64: getBase64
|
||
}, callBack)
|
||
|
||
},
|
||
//本地合成多张图像
|
||
localMakeMultiImage: function (imagePathList, format, tiffCompression, tiffJpegQuality, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "local_make_multi_image",
|
||
iden: that.wslicence,
|
||
image_path_list: imagePathList,
|
||
format: format,
|
||
tiff_compression: tiffCompression,
|
||
tiff_jpeg_quality: tiffJpegQuality
|
||
}, callBack)
|
||
},
|
||
//拆分本地图像
|
||
splitLocalImage: function (imagePath, mode, location, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "split_local_image",
|
||
iden: that.wslicence,
|
||
image_path: imagePath,
|
||
mode: mode,
|
||
location: location
|
||
}, callBack)
|
||
},
|
||
//本地生成压缩文件
|
||
localMakeZipFile: function (imagePathList, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "local_make_zip_file",
|
||
iden: that.wslicence,
|
||
image_path_list: imagePathList
|
||
}, callBack)
|
||
},
|
||
//本地图像纠偏
|
||
localImageDeskew: function (imagePath, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "local_image_deskew",
|
||
iden: that.wslicence,
|
||
image_path: imagePath
|
||
}, callBack)
|
||
},
|
||
//上传本地文件
|
||
uploadLocalFile: function (filePath, uploadMode, remoteFilePath, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "upload_local_file",
|
||
iden: that.wslicence,
|
||
file_path: filePath,
|
||
upload_mode: uploadMode,
|
||
remote_file_path: remoteFilePath
|
||
}, callBack)
|
||
|
||
},
|
||
//本地图片添加水印
|
||
localImageAddWatermark: function (imagePath, text, textColor, textOpacity, textPos, marginRight,
|
||
marginBottom, locationX, locationY, fontName, fontSize, fontBold, fontUnderline,
|
||
fontItalic, fontStrikeout, getBase64,
|
||
callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "local_image_add_watermark",
|
||
iden: that.wslicence,
|
||
image_path: imagePath,
|
||
text: text,
|
||
text_color: textColor,
|
||
text_opacity: textOpacity,
|
||
text_pos: textPos,
|
||
margin_left: parseInt(marginLeft),
|
||
margin_top: parseInt(marginTop),
|
||
margin_right: parseInt(marginRight),
|
||
margin_bottom: parseInt(marginBottom),
|
||
location_x: parseInt(locationX),
|
||
location_y: parseInt(locationY),
|
||
font_name: fontName,
|
||
font_size: parseInt(fontSize),
|
||
font_bold: fontBold,
|
||
font_underline: fontUnderline,
|
||
font_italic: fontItalic,
|
||
font_strikeout: fontStrikeout,
|
||
get_base64: getBase64
|
||
}, callBack)
|
||
|
||
},
|
||
/*****************************************文件管理相关********************************************************************************/
|
||
|
||
//获取批次号列表
|
||
getBatchIdList: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "get_batch_id_list",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
//打开批次(后端启动后默认打开最近批次,没有最近批次则会新建default批次并打开)
|
||
openBatch: function (batchId, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "open_batch",
|
||
iden: that.wslicence,
|
||
batch_id: batchId + ""
|
||
}, callBack)
|
||
|
||
},
|
||
//删除批次
|
||
deleteBatch: function (batchId, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "delete_batch",
|
||
iden: that.wslicence,
|
||
batch_id: batchId + ""// 批次id,不能是当前批次
|
||
}, callBack)
|
||
},
|
||
//新建批次(新建批次到列表尾部并打开该批次)
|
||
createNewBatch: function (batchId, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "new_batch",
|
||
iden: that.wslicence,
|
||
batch_id: batchId + ""
|
||
}, callBack)
|
||
},
|
||
//获取当前批次号
|
||
getCurrBatchId: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "get_curr_batch_id",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
//修改批次号
|
||
modifyBatchId: function (batchId, newBatchId, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "modify_batch_id",
|
||
iden: that.wslicence,
|
||
batch_id: batchId,
|
||
new_batch_id: newBatchId
|
||
}, callBack)
|
||
},
|
||
//加载图像缩略图列表
|
||
getImageThumbnailList: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "get_image_thumbnail_list",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
//获取图像数量
|
||
getImageCount: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "get_image_count",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
//绑定文件夹
|
||
bindFolder: function (folder, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "bind_folder",
|
||
iden: that.wslicence,
|
||
folder: folder,
|
||
name_mode: "order",
|
||
name_width: 4,
|
||
name_base: 0
|
||
}, callBack)
|
||
},
|
||
//停止绑定文件夹
|
||
stopBindFolder: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "stop_bind_folder",
|
||
iden: that.wslicence,
|
||
}, callBack)
|
||
},
|
||
//加载图像
|
||
loadImage: function (imageIndex, callBack) {
|
||
let that = this
|
||
this.sendCommand({
|
||
func: "load_image",
|
||
iden: imageIndex + "",
|
||
image_index: imageIndex
|
||
}, callBack)
|
||
|
||
},
|
||
//保存图像
|
||
saveImage: function (imageIndex, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "save_image",
|
||
iden: that.wslicence,
|
||
image_index: imageIndex
|
||
}, callBack)
|
||
|
||
},
|
||
//插入本地图像(需返回成功后前端缩略图才能作相应的UI修改)
|
||
insertLocalImage: function (imagePath, insertIndex, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "insert_local_image",
|
||
iden: that.wslicence,
|
||
image_path: imagePath,
|
||
insert_pos: insertIndex,//插入位置,-1表示最后
|
||
image_tag: ''//标签名,可以为空
|
||
}, callBack)
|
||
},
|
||
//插入图像
|
||
insertImage: function (imageBase64, insertIndex, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "insert_image",
|
||
iden: that.wslicence,
|
||
image_base64: imageBase64,
|
||
insert_pos: insertIndex,//插入位置,-1表示最后
|
||
image_tag: ''//标签名,可以为空
|
||
}, callBack)
|
||
},
|
||
//修改图像标签
|
||
modifyImageTag: function (imageIndexList, imageTagList, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "modify_image_tag",
|
||
iden: that.wslicence,
|
||
image_index_list: imageIndexList,
|
||
image_tag_list: imageTagList
|
||
}, callBack)
|
||
},
|
||
//删除图像
|
||
deleteImage: function (imageIndexList, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "delete_image",
|
||
iden: that.wslicence,
|
||
image_index_list: imageIndexList
|
||
}, callBack)
|
||
|
||
},
|
||
//清理图像列表
|
||
clearImageList: function (callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "clear_image_list",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
|
||
},
|
||
//修改图像
|
||
modifyImage: function (imageIndex, imageBase64, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "modify_image",
|
||
iden: that.wslicence,
|
||
image_index: imageIndex,
|
||
image_base64: imageBase64
|
||
}, callBack)
|
||
|
||
},
|
||
//使用本地图像修改图像
|
||
modifyImageByLocal: function (imageIndex, imagePath, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "modify_image_by_local",
|
||
iden: that.wslicence,
|
||
image_index: imageIndex,
|
||
image_path: imagePath
|
||
}, callBack)
|
||
},
|
||
//移动图像
|
||
moveImage: function (imageIndexList, target, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "move_image",
|
||
iden: that.wslicence,
|
||
image_index_list: imageIndexList,
|
||
mode: 'index',
|
||
target: target
|
||
}, callBack)
|
||
|
||
},
|
||
//图像书籍排序
|
||
imageBookSort: function (callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "image_book_sort",
|
||
iden: that.wslicence
|
||
}, callBack)
|
||
},
|
||
//合成图像
|
||
mergeImage: function (imageIndexList, mode, align, getBase64, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "merge_image",
|
||
iden: that.wslicence,
|
||
image_index_list: imageIndexList,
|
||
mode: mode,
|
||
align: align,
|
||
interval: 0,
|
||
get_base64: getBase64
|
||
}, callBack)
|
||
},
|
||
//合成多张图像
|
||
makeMultiImage: function (imageIndexList, format, callBack) {
|
||
const that = this
|
||
let msg = {
|
||
func: "make_multi_image",
|
||
iden: that.wslicence,
|
||
image_index_list: imageIndexList,
|
||
format: format,
|
||
tiff_compression: 'none',
|
||
tiff_jpeg_quality: 80,
|
||
get_base64: true
|
||
}
|
||
this.sendCommand(msg, callBack)
|
||
},
|
||
//交换图片
|
||
exchangeImage: function (index1, index2, callBack) {
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "exchange_image",
|
||
iden: that.wslicence,
|
||
image_index_1: index1,
|
||
image_index_2: index2
|
||
}, callBack)
|
||
},
|
||
//拆分图像
|
||
splitImage: function (imageIndex, mode, location, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "split_image",
|
||
iden: that.wslicence,
|
||
image_index: imageIndex,
|
||
mode: mode,
|
||
location: location,
|
||
get_base64: true
|
||
}, callBack)
|
||
},
|
||
//压缩图像
|
||
makeZipFile: function (imageIndexList, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "make_zip_file",
|
||
iden: that.wslicence,
|
||
image_index_list: imageIndexList,
|
||
get_base64: true
|
||
}, callBack)
|
||
|
||
|
||
},
|
||
//图像纠偏
|
||
imageDeskew: function (imageIndex, getBase64, callBack) {
|
||
|
||
const that = this
|
||
this.sendCommand({
|
||
func: "image_deskew",
|
||
iden: that.wslicence,
|
||
image_index: imageIndex,
|
||
get_base64: getBase64
|
||
}, callBack)
|
||
},
|
||
//图片添加水印
|
||
imageAddWatermark: function (imageIndex, markInfo, getBase64,
|
||
callBack) {
|
||
|
||
const that = this
|
||
|
||
let params = {
|
||
func: "image_add_watermark",
|
||
iden: that.wslicence,
|
||
image_index: imageIndex,
|
||
text: markInfo.text,
|
||
text_color: markInfo.text_color,
|
||
text_opacity: markInfo.text_opacity,
|
||
text_pos: markInfo.text_pos,
|
||
margin_left: parseInt(markInfo.margin_left),
|
||
margin_top: parseInt(markInfo.margin_top),
|
||
margin_right: parseInt(markInfo.margin_right),
|
||
margin_bottom: parseInt(markInfo.margin_bottom),
|
||
location_x: parseInt(markInfo.location_x),
|
||
location_y: parseInt(markInfo.location_y),
|
||
font_name: markInfo.font_name,
|
||
font_size: parseInt(markInfo.font_size),
|
||
font_bold: markInfo.font_bold,
|
||
font_underline: markInfo.font_underline,
|
||
font_italic: markInfo.font_italic,
|
||
font_strikeout: markInfo.font_strikeout,
|
||
get_base64: getBase64
|
||
}
|
||
console.log('添加水印:params===' + JSON.stringify(params))
|
||
|
||
this.sendCommand(params, callBack)
|
||
|
||
},
|
||
/*****************************************socket相关********************************************************************************/
|
||
callBackList: {}
|
||
,
|
||
addCallBack: function (key, listener) {
|
||
this.callBackList[key] = listener;
|
||
},
|
||
removeCallBack: function (key) {
|
||
delete this.callBackList[key];
|
||
},
|
||
getCallBack: function (key) {
|
||
return this.callBackList[key];
|
||
},
|
||
sendCommand: function (json, callBackListener) {
|
||
if (json.func && callBackListener) {
|
||
this.addCallBack(json.func, callBackListener)
|
||
}
|
||
this.SocketClient.send(JSON.stringify(json))
|
||
},
|
||
//初始化socketIO
|
||
initSocketIo: function (socketCallBack) {
|
||
this.socketCallBacks = socketCallBack
|
||
console.log(TAG, "initSocketIo ===============" + 'ws:' + this.wsUrl);
|
||
|
||
this.SocketClient = new WebSocket(this.wsUrl);
|
||
this.SocketClient.onopen = function (msg) {
|
||
console.log(TAG, "connect onopen")
|
||
socketCallBack(new Result(SOCKET_CONNECTED, "", null))
|
||
};
|
||
|
||
this.SocketClient.onmessage = function (event) {
|
||
console.log(TAG, "connect onmessage data:" + event.data)
|
||
if (event && event.data) {
|
||
socketCallBack(new Result(SOCKET_EVENT, "", event.data))
|
||
}
|
||
};
|
||
|
||
this.SocketClient.onclose = function (msg) {
|
||
console.log(TAG, "connect onclose:" + JSON.stringify(msg))
|
||
socketCallBack(new Result(SOCKET_DISCONNECTED, "", msg))
|
||
};
|
||
},
|
||
disconnect: function () {
|
||
if (this.SocketClient) {
|
||
this.SocketClient.close()
|
||
this.SocketClient = null
|
||
}
|
||
}
|
||
};
|
||
window.WebScanController = WebScanController;
|
||
})(window);
|