发布者 :高自盟
发布时间:2025/7/23 12:05:30
客户要扫芯片上的QR码,用新大陆Newland NVH220扫描很灵敏,但客户还要求扫码只输出IMEI的15位数字。有两种格式:
1、内容为:MT66;IMEI:863107050229797;RAM:4G;FLASH ROM:128G

2、内容为:863107050229797;20250723;SZ

新大陆的扫描枪基本上都有编辑功能,可以对条码的原始内容作截取或插入,但新大陆Newland NVH220的编辑功能有点不同,需要写JS脚本实现,这样灵活得多,但需要一些编程技巧。
以下是解决这个客户需求的示例:
1、打开NSET软件

2、刷新出NVH220的图标后,点【高级设置】

3、点【数据编辑】 /【高级模式】,先清除脚本框里的内容,再将新脚本填入,最后点【保存到设备】

4、关闭NSET。
附:
1、//不加回车
function getImei(str)
{
var idx = str.indexOf("IMEI:");
if(idx < 0) //如果没有 IMEI: 出现
{
var ss = str.split(";");
if(ss.length > 1)
{
return ss[0]; //如果有分号,就返回分号前面的字串
}
return str; //如果没有分号,就返回原字串
}
//到这里说明有 IMEI: 出现
var imeiright = str.substring(idx+5); //取出 IMEI: 右边的字串
var sss = imeiright.split(';'); //将IMEI:右边的字串按分号分割开
if(sss.length > 1)
{
return sss[0];
}
return imeiright; //IMEI右边的字串里没有;分割,此时将右则全部输出
}
var count = get_codes();
for (i = 0; i < count; i++) {
var code = get_decMsg(i);
var imei = getImei(code);
var codeType = get_codeType(i);
var exCodeType = get_exCodeType(i);
set_codeType(i,codeType);
set_exCodeType(i,exCodeType);
set_decMsg(i,imei, imei.length);
}
2、//加回车
function getImei(str)
{
var idx = str.indexOf("IMEI:");
if(idx < 0) //如果没有 IMEI: 出现
{
var ss = str.split(";");
if(ss.length > 1)
{
return ss[0]+'\r\n'; //如果有分号,就返回分号前面的字串
}
return str+'\r\n'; //如果没有分号,就返回原字串
}
//到这里说明有 IMEI: 出现
var imeiright = str.substring(idx+5); //取出 IMEI: 右边的字串
var sss = imeiright.split(';'); //将IMEI:右边的字串按分号分割开
if(sss.length > 1)
{
return sss[0]+'\r\n';
}
return imeiright+'\r\n'; //IMEI右边的字串里没有;分割,此时将右则全部输出
}
var count = get_codes();
for (i = 0; i < count; i++) {
var code = get_decMsg(i);
var imei = getImei(code);
var codeType = get_codeType(i);
var exCodeType = get_exCodeType(i);
set_codeType(i,codeType);
set_exCodeType(i,exCodeType);
set_decMsg(i,imei, imei.length);
}