当前位置: 首页 > 知识库问答 >
问题:

条形码扫描器-串行端口

凌炜
2023-03-14

所以,我正在尝试使用我的条形码扫描器作为一个‘串行’设备,而不是一个键盘模拟器,但它没有创建com端口。我已经从手册上扫描了设置代码,将其设置为串行设备,这似乎正确配置了扫描仪(它停止将扫描代码发送到文本框\文本编辑器),但因为没有COM端口,所以我扫描条形码时无法捕获数据......

Windows在第一次插入时安装了驱动程序,但没有提供磁盘\驱动程序...不知道还有没有人经历过同样的问题.....

class Program
{
    // Create the serial port with basic settings
    private SerialPort port = new SerialPort("com1", 9600, Parity.None, 8, StopBits.One);

    [STAThread]
    static void Main(string[] args)
    {
        new Program();
    }

    private Program()
    {

        string[] ports = System.IO.Ports.SerialPort.GetPortNames();

        Console.WriteLine("Incoming Data:");

        // Attach a method to be called when there
        // is data waiting in the port's buffer
        port.DataReceived += new
          SerialDataReceivedEventHandler(port_DataReceived);

        // Begin communications
        port.Open();

        // Enter an application loop to keep this thread alive
        Application.Run();
    }

    private void port_DataReceived(object sender,
      SerialDataReceivedEventArgs e)
    {
        // Show all the incoming data in the port's buffer
        Console.WriteLine(port.ReadExisting());
    }
}

当我创建一个虚拟端口(使用第三方应用程序)时,代码运行,但我仍然无法从扫描仪获取数据....

共有1个答案

乜承嗣
2023-03-14

我只是个新手,我的任务是通过串口接收条形码扫描仪的数据...我花了很多时间...我有下一个结果

using System.IO.Ports;
using System.Timers;

namespace BarCode_manager
{
    public partial class MainWindow : Window
    {

        private static SerialPort currentPort = new SerialPort();
        private static System.Timers.Timer aTimer;

        private delegate void updateDelegate(string txt);

        public MainWindow()
        {
            InitializeComponent();
            currentPort.PortName = "COM6";
            currentPort.BaudRate = 9600;
            currentPort.ReadTimeout = 1000;

            aTimer = new System.Timers.Timer(1000);
            aTimer.Elapsed += OnTimedEvent;
            aTimer.AutoReset = true;
            aTimer.Enabled = true;
        }

        private void OnTimedEvent(object sender, ElapsedEventArgs e)
        {
           if (!currentPort.IsOpen)
            {
                currentPort.Open();
                System.Threading.Thread.Sleep(100); /// for recieve all data from scaner to buffer
                currentPort.DiscardInBuffer();      /// clear buffer          
            }
            try
            {
                string strFromPort = currentPort.ReadExisting();
                lblPortData.Dispatcher.BeginInvoke(new updateDelegate(updateTextBox), strFromPort);
            }
            catch { }
        }

        private void updateTextBox(string txt)
        {
            if (txt.Length != 0)
            {
                aTimer.Stop();
                aTimer.Dispose();
                txtReceive.Text = Convert.ToString(aTimer.Enabled);
                currentPort.Close();
            }
            lblPortData.Text = txt;
            lblCount.Content = txt.Length;
            txtReceive.Text = Convert.ToString(aTimer.Enabled);
        }          

        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (currentPort.IsOpen)
                currentPort.Close();
        }
    }
}
 类似资料:
  • 使用ML Kit的条码扫描API,您可以读取大多数使用标准条码格式编码的数据。 条形码是将信息从现实世界传递到应用程序的一种便捷方式。特别是,使用QR码等二维格式时,您可以编码结构化数据,如联系人信息或WiFi网络凭证。由于ML Kit可以自动识别和解析这些数据,因此当用户扫描条形码时,您的应用可以进行智能响应。 iOS Android 关键功能 阅读大多数标准格式 线性格式:Codabar,Co

  • 我正在使用react native camera为Android和iOS构建条形码扫描仪。 我可以在iOS中扫描条形码,但问题是扫描边界没有视觉效果。我希望整个屏幕能够扫描条形码,而不仅仅是屏幕中间。 有什么办法吗?如果有其他图书馆也适合我。

  • 我正在为平板电脑开发一个android应用程序(SynchroDigital iNOSP10-4.0 RES型号),我想使用ZXing库扫描包含字符串的QRcode。它会在我需要时启动扫描仪,但我无法扫描任何东西。 实际上,如果我直接使用条形码扫描仪应用程序,它甚至不起作用,黄色的点出现了,但什么也没有发生,无论亮度、距离或二维码的复杂性(尝试使用一个只包含字母“a”的巨大二维码),它都不会起作用

  • 我试图启动条形码扫描器上的用户按下一个按钮在HTML。然而,我又犯了一个错误: 在javascript中使用: 现在,在Java文件中,我有以下代码,它在中声明函数

  • 在基于swift的应用程序中,我必须使用设备摄像机以及使用Linea Pro5(LP5)外部条形码扫描器来实现条形码扫描。在应用程序中,必须检查iPhone与Linea Pro5(LP5)设备的连接状态,如果iPhone未与LP5连接,则必须打开iPhone摄像头,否则将使用LP5进行扫描。我必须对任何UIPutton进行的扫描驻留在应用程序屏幕上。 我的问题是,当我调用connect()方法时,

  • 我需要阅读申请的条形码。我正在使用触发器条形码扫描仪。通讯是通过USB。 如你所知,条形码扫描仪的工作方式就像键盘一样。当设备读取条形码时,它试图将该值写入具有焦点的输入。用户按下触发器,条形码扫描器工作,直到条形码读取成功。然后它就会进入待机模式。理想的方式读取大量条形码。 在xml端添加了上面的行。 它检测EditText何时失去焦点。但我不能把它分配回来。我确保EditText在触摸模式下是