在开始代码前先要准备好两件事:

首先,要安装新大陆的相应驱动,使得COM口能识别到扫码器。

其次,将扫码器切换到代码控制的自动扫码模式。这个找厂家要一下就行,他们会给你一串码,用扫码器扫一下这些码就能进行切换。

OK,下面开始代码。核心就是将扫码器作为COM口,通过发送指令来控制其扫码并获取扫码结果。

/// <summary>
/// 串口,用于操作扫码器
/// </summary>
private System.IO.Ports.SerialPort _scannerPort;

/// <summary>
/// 新大陆的扫码指令
/// </summary>
private const string NEWLAND_COMMAND_READ_CODE = "01-54-04";

public string ScanSN( )
{
    string returnText = "";

// ------ 创建串口对象 ------

_scannerPort = new System.IO.Ports.SerialPort();
    _scannerPort.PortName = "COM4"; // 需要修改为对应的值
    _scannerPort.BaudRate = 9600;
    _scannerPort.DataBits = 8;
    _scannerPort.Parity = Parity.None;
    _scannerPort.StopBits = StopBits.One;
    _scannerPort.DtrEnable = false;

// ------ 打开串口(注意捕获可能的错误,这里忽略) ------ 
    _scannerPort.Open();

// ------ 执行扫码指令启动扫码器扫码 ------

// 清空接收缓冲区
    _scannerPort.DiscardInBuffer();

// 发送命令
    byte[] commandByte = NEWLAND_COMMAND_READ_CODE.Split('-').AsParallel().Select(x => Convert.ToByte(x, 16)).ToArray();
    _scannerPort.Write(commandByte, 0, commandByte.Length);
    while (_scannerPort.BytesToWrite > 0)
    {
        System.Threading.Thread.Sleep(1);
    }

// ------ 读取扫码结果 ------

// 延时等待接收缓冲区有数据
    System.Diagnostics.Stopwatch timerWatch = new System.Diagnostics.Stopwatch();
    timerWatch.Start();
    while (_scannerPort.BytesToRead <= 0)
    {
        System.Threading.Thread.Sleep(1);
        if (timerWatch.ElapsedMilliseconds > 5000) { break; }
    }
    timerWatch.Stop();
    timerWatch = null;

// 读缓冲区内容
    if (_scannerPort.BytesToRead > 0)
    {
        byte[] m_recvBytes = new byte[_scannerPort.BytesToRead]; // 定义缓冲区大小
        int result = _scannerPort.Read(m_recvBytes, 0, m_recvBytes.Length); // 从串口读取数据
        if (result > 0)
        {
            returnText = Encoding.ASCII.GetString(m_recvBytes, 0, m_recvBytes.Length); // 对数据进行转换
            _scannerPort.DiscardInBuffer();
            returnText = returnText.Replace("\n", "");
            returnText = returnText.Replace("\r", "");
        }
    }

return returnText;
}

C# 控制新大陆扫码器自动扫码读取序列号相关推荐

  1. 扫码器:壹码通(EMT 6621)二维码带多个回车换行处理

    摘要:二维码运用越来越广泛了,目前在医院中一个二维码可以串联多个系统,二维码的内容也可以设置一些特殊字符去达成系统便捷性.本次遇到为二维码中开头内置了回车和空格,在程序判断为回车(KEY_ENTER) ...

  2. 浩瀚抄码器冻品进口肉类抄重工具怎么用抄码器?抄码器如何用?便携式抄码器牛羊肉手持抄码器

    浩瀚抄码器冻品进口肉类抄重工具怎么用抄码器?抄码器如何用?便携式抄码器牛羊肉手持抄码器进口冻肉扫码抄码器PDA哪个好?如何选择进口牛羊肉抄码器? 当前对于进出口牛羊肉的出入库管理,市面上仍保留人工目测 ...

  3. 抄码器视频教程牛羊抄码器冷库抄码机进口牛羊肉冷库冷冻肉抄码器怎么设置

    冷库专用·出入库管理 有条码:扫描包装条码,提取重量 无条码:输入净重数字重量 支持重量自动累加.件数汇总 功能: 1:适用于进口牛羊肉猪肉马肉等不定重的产品,需要统计每包装的重量进行累加合计. 2: ...

  4. 如何使用Babel转码器进行转码

    Babel安装流程 第一步:安装 Babel npm install --save-dev @babel/core 第二步:配置文件.babelrc Babel 的配置文件是.babelrc,存放在项 ...

  5. 三菱PLC与扫码器通讯控制PLC工作

    实现目标: 1.通过扫码器,扫码到的二维码或者一维码 ,控制PLC的输出(对PLC的输出进行控制),本案例中通过扫描二维码控制Y0-Y3的点亮 2.熟悉232串口通讯RS通讯控制模式 硬件配置: 1. ...

  6. 进口牛羊肉抄码器厂家OCR扫数字重量累加扫码机冷库进出口牛羊肉抄码机进口冻肉抄码设备 进口牛羊肉抄码枪

    进出口牛羊肉出入库牛羊肉抄码器扫码解决方案 牛羊肉抄码进口肉抄码 冻肉抄码设备 抄码自主研发 浩瀚智能终端技术冻肉(牛羊肉)抄码器 冷库专用·出入库管理 一机搞定=扫码抄码+自动累加+打印小票 1:适 ...

  7. Android 连接蓝牙扫码器 无输入框

    Android 的APP 需要集成一个蓝牙扫码器, 特别的是,需要扫码的地方是没有输入框的(EditText),不能通过直觉上理解的通过对EditText输入事件进行监听处理,取得扫码结果.并且设备也 ...

  8. 商品扫码器驱动如何设置 商品扫码器驱动设置步骤

    商品扫码器驱动如何设置?商品扫码器驱动设置步骤,商品扫码器一般分为三种接口,分别为USB接口.串口和键盘口.只需要选择适合使用的接口,也就是说电脑或其他设备上有什么接口,就选择什么接口就对了,就大多数 ...

  9. 虹科HK-NT 50网关让扫码器轻松连接工业PLC

    扫码器或扫码枪是一种读取条形码或二维码信息的机器.它利用发射出红外线光源,然后根据反射的结果,利用芯片来译码,最后再返回条形码或二维码所代表的正确字符.传统的扫码器主要应用在快递公司\仓储物流\仓库盘 ...

最新文章

  1. VS2013 编译使用 stlport
  2. 贪心算法解决跳马问题_算法浅谈——怪盗基德的珠宝选择问题与贪心算法
  3. Mysql中where条件一个单引号引发的性能损耗
  4. C语言Stock span 库存跨度问题(附完整源码)
  5. C++是不是类型安全的?
  6. php GD库文字居中,PHP GD ttftext居中对齐
  7. Spring学习笔记:尝试Lombok简化实体类代码
  8. 使用英文做LDA建模
  9. android 每日构建_Android构建类型和产品风味
  10. 沫沫金::struts下载文档[解决方案]
  11. 超五类网线和超六类网线的区别
  12. Ubuntu设置静态IP地址的几种方法
  13. 华为android手机root,华为手机怎么root
  14. C++ P1510 精卫填海
  15. 搜索思维[PPT制作]
  16. ue4设置默认打开的地图和默认游戏模式
  17. PWM(脉冲宽度调制)的工作原理、分类及其应用
  18. MVC |分部视图 PartialView()
  19. 转:攻击JavaWeb应用[2]-CS交互安全
  20. 笛卡尔:缔造牛顿的伟人,统一代数与几何的“精确”数学家

热门文章

  1. 共享windows无线网络给ubuntu有线网卡
  2. html5使用新字体,html5 – 使用带有canvas fillText的font-face字体
  3. python中choices_Django之choices选项和富文本编辑器的使用详解
  4. Windows7环境下Excel2010中图片超链接默认打开程序修改
  5. Redis学习笔记(二)SpringBoot整合
  6. excel不显示0_excel技巧:Excel中,为什么有时候会只显示公式不显示结果?
  7. matlab学习 创建特殊矩阵(magic, pascal, vander, rand, randn, hilb, rosser, hadamard)
  8. 今天是程序员节(Programmer’s Day)
  9. 和计算机有关的学校活动,有关大学生电脑节活动策划书
  10. 信息奥赛一本通1185:单词排序(OJ题目描述有问题)