资讯详情

条形码与扫码枪的那些事

一段时间前,一家商店报纸在1号收银台扫描代码,商品显示在2号收银台,问他们是否拿错了代码扫描枪,坚持不,说是我们开发的POS系统有BUG,我Review在前端和后端代码之后,我无法理解如此简单的接口调用会有问题。从计算机通信理论的角度来看,哪台机器的请求响应肯定会回到哪台机器,后来让他们拍照扫码枪的连接,看到原来用的是无线扫码枪,但是电源线连接到电脑USB嘴,他们肯定会告诉我是有线连接扫码枪,不会错,因为现在扫码枪是即插即用的,技术没有太多关注,找不到京东假装是买家咨询客户服务,客户服务说这种情况串码,需要重新设置,好吧,先说条形码和扫码枪。

条形码,英语barcode,是全球产品的身份标记代码GS1.不同国家根据自身情况制定标准,中国商品编码中心制定国家标准。

条形码有100多种编码类型,以下两种是我们系统现在使用的编码

  • ENA-13: 全球通用商品条码,长度13位,字符集0-9。
  • Code-128编码:长度无限,字符集ASCII码。

我厂在开发新产品时会申请条形码,然后澳大利亚通过条形码向国内工厂发起采购需求。生产后,工厂会将条形码贴在产品上,然后打包托盘,将托盘放入集装箱,通过海运到达澳大利亚中转仓库,最后送到各店收货、上架、销售。整个过程依赖于条形码,现在大约有10000种商品。以下是商品条形码,使用的编码格式是ENA-13.

此外,我们在销售商品时会打印收据,收据上也有条形码,主要是为了方便客户下次退货和交换,这使用Code-128。

Java条形码生成有开源库Barcode4j Barcode4j支持Code-39、Code-128、EAN-13等编码格式,它在Canvas画条形码生成图片,然后将图片嵌入收据中。

/**   * 生成条形码   *    * @param barCode   *            条形码   * @return 图片文件名 ,使用时带上网站   */  public static String generateBarCode(String barCode) {   String fileName = null;   if (StringUtils.isEmpty(barCode)) {    return null;   }   FileOutputStream out = null;    // 如果你想要其他类型的条码(CODE 39, EAN-8...)直接获取相关对象Code39Bean...   Code128Bean bean = new Code128Bean();   // 分辨率:条码越大,值越长,分辨率越高   final int dpi = 512;   // 设置两侧是否有空白   bean.doQuietZone(true);    final double modouleWidth = UnitConv.in2mm(3.0f / dpi);   bean.setModuleWidth(modouleWidth);   bean.setBarHeight(5);   // bean.setFontSize(3);   // bean.setHeight(6);    // 设置文本位置(包括是否显示)   bean.setMsgPosition(HumanReadablePlacement.HRP_BOTTOM);   // 设置图片类型   String format = "image/png";    try {    fileName = Constants.BAR_CODE_ABS_PATH   barCode   ".png";    File file = new File(fileName);    out = new FileOutputStream(file);    // 输出到流    BitmapCanvasProvider canvas = new BitmapCanvasProvider(out, format, dpi, BufferedImage.TYPE_BYTE_BINARY,      false, 0);    // 生成条形码    bean.generateBarcode(canvas, barCode);     // 结束绘制    canvas.finish();   } catch (IOException e) {    e.printStackTrace();    return null;   } finally {    if (out != null)     try {      out.close();     } catch (IOException e) {      e.printStackTrace();     }   }    return fileName;  }

今天,我们突然发现,我们生成的所有条码图片都被放置了Linux目录下,目录层次没有拆分,现在一个目录下有几十万张图片,真的晕倒了。

一般采用扫码枪CIS技术,CIS采用内置发光二极管照明读取图像数据的接触式传感数据,一般分辨率为200~600dpi.

扫码枪分为有线和无线,现在一般用有线。USB接口、无线蓝牙和无线433协议,我们使用无线433扫描枪,它有一个接收器连接到计算机接收数据,一般接收器可以同时接收多个扫描枪,我们每个收银员配置一对,由于配置问题,1收银员扫描枪扫描数据被2收银员接收,然后商品数据就显示在2号收银台。

标签: 5080条形连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台