在VB.NET中使用字节

变红

我正在VB.NET中开发一个项目,该项目从SERIAL PORT读取一些信息。此信息以4个字节为一组。我能够从串行端口读取数据,但是我得到的只是一包4个数字。

例如,我的阅读是:

134 0 0 4
140 0 0 6
141 0 0 5
133 0 0 8
...

手册说明了如何将此数字转换为可用数据。我能够通过一篇论文做到这一点,但是我不知道如何在VB.NET中编写代码。我不知道如何在字节级别上工作。

我附上一张有关字节含义的图片。 在此处输入图片说明

变红

我得到了答案,这要感谢用户x4rf41

也许需要一些修复,但是它是我一直在寻找的。

这是代码:

Private Sub thread_lectura_tarjeta1()

        Dim RXByte As Byte 'byte recived
        Dim RXPacket As List(Of Byte) = New List(Of Byte) 'each reading has 4 bytes
        Dim lectura As Long = 0 'is the FINAL data
        Dim COMPort As SerialPort = ensayo.get_digitalizadores(0).get_puerto_com
        Dim chk_signo As Byte = 0

        While (True)

            lectura = 0

            Do 'each package starts with a byte > 127, because is the only byte that its first bit is 0

                RXByte = COMPort.ReadByte

            Loop Until (RXByte > 127)

            RXByte = RXByte And 127
            RXPacket.Insert(0, RXByte)

            RXByte = COMPort.ReadByte            
            RXPacket.Insert(1, RXByte)

            RXByte = COMPort.ReadByte
            chk_signo = RXByte And 8
            RXPacket.Insert(2, RXByte And 7)

            RXByte = COMPort.ReadByte
            RXPacket.Insert(3, RXByte)

            lectura = RXPacket.Item(0) + RXPacket.Item(1) * 128 + RXPacket.Item(2) * 16384

            'checking sign


            If chk_signo = 8 Then ' negative number

                lectura = (lectura Xor 131071) * -1
            End If



            Sleep(1) 'wait 1 milisecond and read again

        End While
    End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在vb.net中使用字符串变量引用动态创建的OvalShape

来自分类Dev

在VB.net中使用字符串创建新日期

来自分类Dev

在VB.NET中使用系统表

来自分类Dev

在VB.NET中使用DataURL

来自分类Dev

在Javascript中使用vb.net代码

来自分类Dev

在vb.net中使用ANSI代码

来自分类Dev

在VB ASP.NET中使用HighCharts

来自分类Dev

在vb.net中使用RegEx

来自分类Dev

在vb.net中使用MATLAB函数

来自分类Dev

在vb.net中使用Excel

来自分类Dev

在vb.net中使用ANSI代码

来自分类Dev

在VB.NET中使用Linq

来自分类Dev

在Vb.net中使用Order By排序

来自分类Dev

在VB.NET中使用JSON.NET组织数据

来自分类Dev

在VB.NET中使用AForge.NET反转图像

来自分类Dev

如何使用VB.Net在datagridview中使用CellEndEdit事件?

来自分类Dev

尝试学习如何在VB.net中使用IndexOf

来自分类Dev

在vb.net中使用javascript hide()/ show()

来自分类Dev

在VB.NET中使用单个属性实现多个接口

来自分类Dev

在VB.NET中使用LINQ和名称空间

来自分类Dev

如何在VB.NET中使用DateTimePicker搜索日期

来自分类Dev

尝试在VB.NET中使用C#Web服务

来自分类Dev

如何在C#中使用FileOpen(VB.NET)?

来自分类Dev

在VB.NET中使用停止条件进行递归

来自分类Dev

如何在VB.NET中使用BeginInvoke

来自分类Dev

如何在VB.NET中使用Dictionary类

来自分类Dev

在VB.NET项目中使用OpenCV库

来自分类Dev

LINQ Order BY在VB.NET中使用文字值吗?

来自分类Dev

如何在vb.net中使用XML节点的if条件