【发布时间】:2021-10-15 08:20:52
【问题描述】:
我正在尝试读取 NCR 7878 扫描仪/秤通过串行端口发送的数据。
我使用的是Visual Basic .NET,我可以使用串口ReadExisting 函数很好地获取条码数据。所以使用扫描仪我很好,问题是为了获得重量值,我必须向秤发送一些值,所以它知道何时将重量值发回,(我不知道什么值,我有很多谷歌搜索试图找到图书馆或其他东西,没有运气)请如果你有这方面的经验或知道我可以使用的图书馆。
我用来阅读的代码,只是在测试中非常简单:
Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Try
Dim sp As SerialPort = sender
_DataReaded4 = sp.BytesToRead
_DataReaded2 = sp.ReadByte()
_DataReaded3 = sp.ReadChar()
_DataReaded = sp.ReadExisting()
' SerialPort1.Read("", 0, 5)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
【问题讨论】:
-
那么,您的问题实际上是您需要向这个秤发送什么值来告诉它报告重量?
-
是的,这会很有帮助,我已经尝试了一些我在其他型号的手册中找到的,但到目前为止还没有运气。我知道我必须发送一个十六进制代码。
-
我怀疑您是否知道任何此类事情。十六进制通常是一种以人类可读形式显示二进制数据的方法,其中每一对或十六进制数字代表一个字节。更有可能的是,您实际上必须发送的是字节。如果您将十六进制代码作为文本发送,那么这可能是您的问题。
-
好吧,我不傻,我知道十六进制是什么,不,我不是将它作为字符串发送,我知道如何将十六进制写入端口,我已经尝试了几个我在手册中找到的代码,但不幸的是,这些代码是针对不同型号的,但我希望它们能工作......所以没有建议吗?
-
“不,我不会将它作为字符串发送”。那么你不会发送十六进制。您正在发送字节。十六进制只是向人类表示字节的一种方式。没有涉及十六进制,虽然我不知道你是否愚蠢,但很明显,要么你不知道什么是十六进制,要么你不了解发送数据的机制。所有人都有自己不知道或不理解的事情,所以这并不丢人,但坚持说你确实了解他们,然后表明你不了解他们并不能真正帮助任何人。