Skip to Main Content
Cognex 支持中心
Logo

不可打印字符的 DataMan 脚本

本文描述了如何从读卡器的输出字符串中删除不可打印的字符。

2024/11/29

详细信息

在某些情况下,特别是在与数据管理或供应链相关的应用中,诸如 RS、GS 和 EOT 等特定控制字符可能会出现在 DataMatrix 代码中。这些字符用于技术和格式目的。

以下是它们的意思:

  1. RS(记录分离器):
    RS 字符 (ASCII 30) 用于分离数据序列中的记录。在 DataMatrix 代码中,它可用于分隔同一代码内不同的数据单位或字段。这有助于应用程序读取代码以正确界定数据部分并正确处理它们。
  2. GS(组分隔符):
    GS 字符 (ASCII 29) 用于分隔数据组。它可用于界定分层结构化或包含多个信息级别的 DataMatrix 代码中的数据子集。例如,在产品标签中,代码可能包含与产品本身、包装、生产日期等相关的信息,GS 字符会将这些详细信息分成不同的组。
  3. EOT(传输结束):
    EOT 字符 (ASCII 4) 标记数据流的结束。在 DataMatrix 代码的上下文中,它可用于指示编码数据字符串的结束。这允许应用程序读取代码,以知道没有更多的数据要处理和停止读取过程。

为什么在 DataMatrix 代码中使用它们?

  • 结构控制:这些控制字符有助于指示数据在代码中的结构。当多种类型的信息需要在同一代码中编码时,或者当复杂的数据需要分成逻辑部分时,这特别有用。
  • 与自动化处理系统的兼容性:这些字符用于使 DataMatrix 代码与需要分隔符和消息结束指示符(例如库存管理、可追溯性系统或物流)的系统兼容。

总之,DataMatrix 代码中的 RS、GS 和 EOT 字符用于逻辑地组织和构建编码数据,从而更容易在自动化系统中进行解释和处理。

以下是 DataMan 设置工具的结果,默认设置为: 

占位符

DataMan 设置工具可以按照以下方式选中“已启用”框来翻译不可打印的字符:

占位符

以下是结果: 

占位符

这些字符 (<RS>、<GS>、<EOT>) 可以使用脚本 从输出字符串中删除:

  • 转到“格式化数据”,
  • 转到“基本”,
  • 选中“基于脚本的格式”框,
  • 单击蓝色文本“基于脚本的格式”以打开“数据格式脚本”: 

    占位符

使用以下脚本作为“数据融合”脚本: 

var RS = "\x1E";
var RSN = "<RS>";
var GS = "\x1D";
var GSN = "<GS>";
var EOT = "\x04";
var EOTN = "<EOT>";
var res = "";

函数 onResult(解码结果、读写器属性、输出)
{
   if (decodeResults【0】.decoded)
   {                
       var convert = decodeResults【0】.content.replace(new RegExp(RS,'g'),RSN).replace(new RegExp(GS,'g'),GSN).replace(new RegExp(EOT,'g'),EOTN); 
   }
  
  res = convert.replace(/<RS>|<EOT>/g, '');
  res = res.replace(/<GS>/g, '-');
   
  output.content = res; // 无回车符     
  //output.content = res + "\r\n" ; // 带回车
}

占位符

以下是结果: 

占位符