vb.net - 如何检查接收到的字符串中的特定单词?
问题描述
我正在将字符串“end”从我的 arduino uno 发送到 vb.net 应用程序。我希望 vb.net 应用程序能够识别单词并执行特定操作。我可以看到控制台中正在接收该单词,但代码似乎无法识别它。
Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Console.WriteLine(SerialPort1.ReadExisting)
If SerialPort1.ReadExisting IsNot "end" Then
dataRxd = dataRxd & SerialPort1.ReadExisting
Else
txtRx.Text &= dataRxd
Console.WriteLine("###############")
Console.WriteLine(dataRxd)
'Dim result As newData = JsonConvert.DeserializeObject(Of newData)(dataRxd)
'Dim com As result.com
'SerialPort1.Close()
'MySqlConn = New MySqlConnection
'MySqlConn.ConnectionString = "server=localhost;userid=root;password=g4rg45m3ll1;database=tags"
'Try
' Dim SDA As New MySqlDataAdapter
' Dim dbDataSet As New DataTable
' Dim bSource As New BindingSource
' MySqlConn.Open()
' 'Query = "update tags.tags_read set LastRead= now() where TagID='" & dataRxd & "';"
' Query = "insert into tags.tags_read values ('" & dataRxd & "', now());"
' cmd = New MySqlCommand(Query, MySqlConn)
' reader = cmd.ExecuteReader
'Catch ex As MySqlException
' MessageBox.Show(ex.Message)
'End Try
'MySqlConn.Dispose()
'MySqlConn.Close()
'SerialPort1.Open()
End If
End Sub
这是 vb.net 应用程序接收到的数据示例,显示正在接收该词:
0001220000570221001B end 0001220000570221001B end 线程 0x4a70 已退出,代码为 0 (0x0)。
解决方案
ReadExisting
是一种方法,而不是一种属性。如果您调用它一次,那么您正在读取现有数据,因此没有更多数据。您不能再次调用它并获得相同的数据。如果您希望使用多次读取的数据,则应始终按此操作:将方法结果分配给变量,然后根据需要使用该变量。
Dim msg = SerialPort1.ReadExisting()
Console.WriteLine(msg)
If msg <> "end" Then
dataRxd = dataRxd & msg
请注意,我也使用<>
了而不是IsNot
,因为它确实是您关心的价值平等而不是引用平等。
推荐阅读
- r - 根据 R 中的现有值替换栅格中元素的百分比
- javascript - 如何对调用同一文件/类中的其他函数的函数进行单元测试,以便我无法模拟它们?
- ios - 访问对象(指针)表单 ObjectIdentifier
- java - 是否可以缓存已验证的 JWT 令牌以防止在 spring-boot 应用程序中重复验证过程
- javascript - 使用 moment.js 转换时间格式字符串
- regex - Dialogflow:正则表达式实体不匹配
- c# - Entity Framework Core 3.0 - 带有设计时服务的脚手架
- apache-spark - 为什么 Apache Spark 添加了 cache() 方法,即使我们可以通过调用 persist(StorageLevel.MEMORY_ONLY) 来实现相同的功能
- swift - Swift UIView Animate 无法正常工作
- java - 如何在两个日期之间获取数据 REST Spring