var Code_Pixel = [60, 500, 930, 1340, 1800, 2250, 2700, 3150, 3600, 4200]; // 10个坐标点,每两个坐标形成一个区间
var patt = /^V01-/; // 正则表达式,用于验证条码是否以 "V01-" 开头
function onResult(decodeResults, readerProperties, output) {
var allCodes = ["noread", "noread", "noread", "noread", "noread", "noread", "noread", "noread", "noread"]; // 初始化数组,填入占位符。
output.content = "";
for (var i = 0; i < decodeResults.length; i++) { // 遍历所有解码结果
if (decodeResults[i].decoded) { // 如果条码解码成功
var X_coordinate = decodeResults[i].symbology.center.x; // 获取条码中心点的 X 坐标
var Y_coordinate = decodeResults[i].symbology.center.y; // 获取条码中心点的 Y 坐标
var Code_Name = decodeResults[i].symbology.name;
var valid = patt.test(decodeResults[i].content); // 使用正则表达式验证条码是否有效
var Code = decodeResults[i].content.toString(); // 获取条码内容
var splitcode = /[,|;]/;
if (Code_Name == 'PDF417' || Code_Name == 'QR') {
var Code = Code.split(splitcode);
var idx = 0;
for (var m = 0; m < Code.length; m++){
if(Code[m].indexOf('V01-') != -1){
idx = m;
break;
}
}
if (typeof Code == 'object') {
Code = Code[idx].toString();
valid = patt.test(Code);
}
}
if (valid && allCodes.indexOf(Code) == -1) { // 如果条码有效且不重复
// 检查 X 坐标是否在 Code_Pixel 的某个区间内
for (var j = 0; j < Code_Pixel.length - 1; j++) { // 确保索引不会越界
if (X_coordinate > Code_Pixel[j] && X_coordinate <= Code_Pixel[j + 1]) { // 判断是否在区间内
allCodes[j] = Code; // 将条码赋值到正确的位置
}
}
}
}
}
allCodes.reverse(); // 逆序数组
if (WcsHandler != null) {
WcsHandler.send(STX + "104" + allCodes.join(",") + ETX); //发送数据给 WcsHandler
}
debugSend((STX + "104" + allCodes.join(",") + ETX)); //调试输出
output.SetupTool = allCodes.join(";"); //设置输出内容
}