设备:Newland NLS-PT982便携式数据采集器

设备系统:Win CE 6.0

开发工具:vs2008,Newland官网上下载的uToolsCE_NET

背景:需要扫描自定义的编码为UTF-8的二维码,读取并访问其中的网址。

private NLSScanner scaner = new NLSScanner();//这个在手持设备的库NLSCAN.MacCtrl里面
        public Form1()

{

InitializeComponent();

scaner.OnDecodeEvent += new DecodeEventHandler(scan_OnDecodeEvent);//每次扫描后执行OnDecodeEvent

int i = scaner.G_SetScannerEnabled(true);//如果为0,打开扫描设备成功,否则失败

}

  private void scan_OnDecodeEvent(object sender, ScannerEventArgs e)

{

for (int i = 0; i < e.DataLen; i++)

{

if (e.ByteData[i] == 0)

{

       //如果数据中存在0,把它替换为0x20

e.ByteData[i] = 0x20;

NLSSysCtrl.NKDbgPrintfW("ByteData[" + i.ToString() + "] = 0\r\n");

}

if (e.ByteData[i] < 0x20)

{

NLSSysCtrl.NKDbgPrintfW("ByteData[" + i.ToString() + "] = " + e.ByteData[i].ToString() + "\r\n");

}

}

    //如果是unicode编码,用这一行:

    //textBox1.Text = NLSScanner.MultiByteToUnicodeString(e.ByteData, e.DataLen);

    //如果是unicode编码,用这一行:

    textBox1.Text = Encoding.UTF8.GetString(e.ByteData, 0, e.DataLen);

    webBrowser1.Navigate(new Uri("about:blank"));//处理一下扫出来的二维码,取出其中的网址,用webbrowser访问一下
  }

程序很简单,但是有两个麻烦的地方,都出在红色且下划线的那一句代码:

1、字符编码。测试中发现中文不能正确显示,遂查询自定义二维码的生成代码,发现是UTF-8编码的,而库函数自带的只有unicode函数,于是自己写了一句:

textBox1.Text = Encoding.UTF8.GetString(e.ByteData, 0, e.DataLen);

2、条码长度。最开始,e.DataLen的位置我写的是e.ByteData.Length,出现这样一种情况,第一次假设扫描结果是QWERTYU,第二次扫描内容是123,那么第二次扫描的结果会变成123RTYU,单步调试发现,byte[]类型的e.ByteData没有清空。费劲一番周折,在文档中找到一个e.DataLen的属性,可以按照本次扫描条码的长度来取值,才算解决了这个问题。

转载于:https://www.cnblogs.com/xygao/archive/2011/05/24/2055868.html

NewLand手持设备上条码扫描相关推荐

  1. 手机做条码扫描传给电脑_有线和无线扫描枪常用测试工具和软件你知道哪些?...

    当我们购买到一款扫描枪之后,往往需要对扫描枪的进行一些简单的测试,如果测试,有需要使用到哪些工具进行测试呢,接下来我们按照不同接口分类为大家分别介绍一下: USB接口类型 ①USB-KBW接口:USB ...

  2. android 条码扫描控件,Android Zxing条码扫描自定义控件(附代码)

    团队要做一个项目,里面要用到条码扫描,搜了一下,知道了Zxing.这是一个开源的条码扫描程序.官方网站有完整的Android程序可下载.但是,如果想将扫描功能融合在自己开发的程序里,则需要理清设计的思 ...

  3. 一个不错的金蝶KIS专业版条码扫描插件

    一个不错的金蝶KIS专业版条码扫描插件 插件简介: 本插件主要为满足金蝶KIS出入库数据的条码快速扫描而开发.在金蝶KIS里条码扫描有一个非常不方便的地方,就是扫描完一个物料之后一定要进行键盘或鼠标操 ...

  4. 牛图 NT08105二维条码扫描模组

    NT0810系列产品是款高度集成.性能优良的二维扫描引擎模组. NT0810系列产品拥有独特的光学结构设计及一套崭新的专有影像传感器,再配合先进的照明设计,在采集图像信息进行条码解读时,具有非凡的灵敏 ...

  5. Dynamsoft 条码阅读器,实现条码扫描

    Dynamsoft 条码阅读器,实现条码扫描 在所有平台上轻松实现条码扫描. Dynamsoft Barcode Reader 使开发人员能够轻松地将一维和二维条码扫描实施到他们在不同平台上运行的应用 ...

  6. python读取usb扫码枪数据_PyUsb USB条码扫描

    我在用Ubuntu的霍尼韦尔USB 3310g扫描仪从条形码或qrcode输出一个字符串.我有libusb和一个名为metro-usb(http://gitorious.org/other/metro ...

  7. 05模块-barcode【条码扫描】

    条码扫描主要还是用于手机扫描二维码的功能,其他功能也是可以的如:一维码.二维码 .条形码等等 <!DOCTYPE html> <html> <head> <m ...

  8. SilverLight 条码 扫描枪 MVVM(转载)

    目前做SL项目时,遇到条码的问题. 客户需要通过条码来加快工作效率以及减少错误.有条码,自然便引入扫描枪这个东西.不解释. 关键点是:扫描枪每次扫描完毕会触发回车 这是解决问题的关键! 现有两种情景: ...

  9. SLAM无人车通过上摄像头扫描二维码重定位

    SLAM无人车通过上摄像头扫描二维码重定位 slam 无人车扫描二维码重定位initpose 实现原理: 1.内参标定 2.外参标定得到相机相对于小车的安装坐标 3.通过功能包 ar_track_al ...

  10. 金蝶云星空二维码整体解决方案 金蝶云星空条码管理系统 金蝶ERP移动解决方案 金蝶云星空条码扫描 金蝶云星空WMS仓库移动扫码 金蝶安卓PDA扫码方案 金蝶云星空出入库盘点出货条码扫码 提供源码

    本人在ERP实施公司做顾问四五年,参与企业实施ERP十多个项目,非常熟悉企业ERP流程,在实施过程遇到众多问题,提出了不少根据企业具体情况的解决方案.          最近定制开发了一套适合企业的条 ...

最新文章

  1. 一维码Code 93简介及其解码实现(zxing-cpp)
  2. 如何起诉一辆自动驾驶汽车?
  3. 二、先在SD卡上启动U-boot,再烧写新的U-boot进Nandflash
  4. Stackoverflow 年度报告 2020:开发者最喜爱的数据库是什么?
  5. 他们守护非洲大象犀牛,马云守护他们
  6. idea导入java项目类上面显示红色的J符号解决办法
  7. android Activity的Task Affinity lanchMode
  8. HDU3784 继续xxx定律【角谷猜想】
  9. python与java前景-java和Python的前景谁更好
  10. 中兴F803/804 ONU实现端口间计算名(基于netbios协议)互通
  11. python画图案 使用循环完成_利用python在终端模拟下雪的效果
  12. python实现谷歌翻译
  13. VBA写入公式(4):数字转大写金额公式
  14. Gitee 多人协作开发教程
  15. 详述 MySQL 中的行级锁、表级锁和页级锁
  16. 「MySQL」- 基础增删改查
  17. egg mysql 模糊搜索_使用egg-mysql操作mysql数据库
  18. 趣拿场景营销拥有哪些黑科技
  19. 变频电源是否要加功率补偿器?为什么?
  20. 歪写数学史(三个“L”)

热门文章

  1. CSR8615蓝牙芯片功能调试入门笔记------ 下
  2. js 实现删除确认提示框
  3. JAVA 事务回滚方法调用非事务回滚方法
  4. lol服务器是用什么系统,能玩lol的云服务器
  5. java实现萤石云截图保存上传到ftp功能
  6. 东芝166打印机装驱动出现inf安装服务段落无效
  7. MAC系统级鼠标手势功能软件BetterAndBetter
  8. mpa和pis_1psia等于多少mpa
  9. python ocr 识别中文pdf_基于Python实现对PDF文件的OCR识别
  10. PhotoShop介绍