首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送串行命令到触发器扫描器Honeywell 1900

发送串行命令到触发器扫描器Honeywell 1900
EN

Stack Overflow用户
提问于 2018-09-17 07:48:28
回答 2查看 1.7K关注 0票数 2

问题是,我可以使用串口软件"Hercules“发送命令<SYN>T<CR><LF>来触发扫描器,在数据表中,据说使用命令[SYN]T[CR]来触发扫描器,但我不能使用串口通信来触发它(两个命令)。当我手动使用扫描仪时,我得到输入,但不能触发它.有什么问题吗?(端口是虚拟的)

代码语言:javascript
复制
private static SerialPort port;
private static bool _continue = false;

public static void Main(string[] args)
{
    port = new SerialPort();
    port.PortName = "COM8";
    port.BaudRate = 115200;
    port.Parity = Parity.None;
    port.DataBits = 8;
    port.StopBits = StopBits.One;
    port.Handshake = Handshake.None;
    port.RtsEnable = true;
    port.DtrEnable = true;
    port.ReadTimeout = 500;
    port.WriteTimeout = 500;
    port.Open();

    _continue = true;
    Thread thr = new Thread(SerialPortProgram);
    thr.Start();

}


private static void SerialPortProgram()
{
    Console.WriteLine("Writing to port: <SYN>T<CR><LF>");
    string command = "<SYN>T<CR><LF>";
    port.WriteLine(command);

     while (_continue)
    {
        try
        {
           string input = port.ReadLine();
           Console.WriteLine("Input is - " + input);

        }
        catch (TimeoutException) { }
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-17 08:13:09

Python barcode scanner serial trigger是我回答类似Python问题的一篇文章。

内容如下所示。

这是因为您将在文档中编写的抽象表达式编码为原始输出数据。

该文档表示数据传输的3个字节。

‘'SYN’和'CR‘是以下十六进制数。

‘'SYN’= \x16

‘'CR’= \x0d或转义序列\r

不‘是一个普通的ASCII字符。

空白和<>{}用于分隔文档中的数据,而不是要发送的数据。

而且,甚至您也需要命令前缀。

还可以使用Write代替@Turbofant编写的WriteLine

你应该这样写。请试试看。

代码语言:javascript
复制
string command = "\x16M\x0d\x16T\x0d";
port.Write(command);
票数 2
EN

Stack Overflow用户

发布于 2018-09-17 08:16:46

我想问题是,您发送了错误的命令字符串。<Syn><CR><LF>表示特殊的、不可打印的ascii字符同步空闲、载波返回和行提要。您需要在字符串中正确地编码它们。

试着发送:

代码语言:javascript
复制
string command = "\x16t\r\n";
port.Write(command);

\x16<Syn> (因为Syn是ascii字符0x16,或十进制中的22 )。

\r<CR>

\n<LN>

使用port.Write而不是port.WriteLine,因为WriteLine会在字符串的末尾自动添加\r\n

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52363044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档