vb代码转成java代码

zhangleialang 2016-01-25 08:40:41
Delegate Sub RecieveRefreshMethodDelegate(ByVal dbyte() As Byte, ByVal sta As Integer, ByVal len As Integer) '声明委托
Dim RecieveRefresh As New RecieveRefreshMethodDelegate(AddressOf TextBox_Display) '定义一个委托实例
Delegate Sub ProgressBarChangeMethodDelegate() '声明委托
Dim ProgressBarChange As New ProgressBarChangeMethodDelegate(AddressOf ProgressBar1Change) '定义一个委托实例
Dim SendBuf(200) As Byte
Dim RxBuf(100) As Byte
Dim RxCnt As Byte = 0
Dim BpsNum As Integer = 0
Dim BagTotal As Integer = &H8A1
Dim BagNum As Integer = 0
Dim LibTimFlag As Integer = 0
'CRC16校验
Function ChkCrc16(ByVal str() As Byte, ByVal sta As Integer, ByVal len As Integer) As String
Dim i As Integer = 0
Dim j As Integer = 0
Dim crc_register As Integer = 0
While len '总字节数
len -= 1
i = &H80 '一个字节8位,故循环8次
While i
If crc_register And &H8000 Then '高位为1则进行位或运算
crc_register <<= 1
crc_register = crc_register Mod 65536
crc_register = crc_register Xor &H1021
Else
crc_register <<= 1 '高位不为1,则乘2
End If
If str(j + sta) And i Then
crc_register = crc_register Xor &H1021 '加上本位的CRC码
End If
i = i / 2
End While
j += 1 '指向下一字节
End While
ChkCrc16 = crc_register '返回CRC-16校验码
End Function
'接收数据-触发接收事件
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived '添加接受事件
Dim inDataLen As Integer = SerialPort1.BytesToRead()
If inDataLen > 0 Then
Dim inBytes(inDataLen - 1) As Byte, bytes As Byte = 0
SerialPort1.Read(inBytes, 0, inDataLen)
While inDataLen
inDataLen -= 1
If RxCnt Then
RxBuf(RxCnt) = inBytes(bytes)
RxCnt += 1
If RxCnt >= 11 And RxBuf(4) + 6 = RxCnt Then
If RxBuf(RxCnt - 1) = &HFE Then
'SerialPort1.Write(RxBuf, 0, RxCnt)
RxFun()
RxCnt = 0
Else
RxCnt = 0
End If
End If
Else
If inBytes(bytes) = &HFE Then
RxBuf(RxCnt) = inBytes(bytes)
RxCnt += 1
End If
End If
bytes += 1
End While
End If
End Sub
Sub RxFun()
Dim crc16num As Integer
crc16num = ChkCrc16(RxBuf, 5, RxBuf(4) - 2)
If (RxBuf(RxBuf(4) + 3) = ((crc16num >> 8) Mod 256)) And (RxBuf(RxBuf(4) + 4) = (crc16num Mod 256)) Then
Select Case RxBuf(5)
Case &H1
Select Case RxBuf(6)

End Select
Case &H11
Select Case RxBuf(6)
Case &H11
LibTimFlag = 0
LibLoad()
End Select
Case &H31
Select Case RxBuf(6)
Case &H1
If RxBuf(7) = 0 Then
'MessageBox.Show("地址设置成功", "提示")
Else
'MessageBox.Show("地址设置失败", "提示")
End If
Case &H2
If RxBuf(7) = 0 Then
'MessageBox.Show("波特率设置成功", "提示")
Else
'MessageBox.Show("波特率设置失败", "提示")
End If
Case &H3
If RxBuf(7) = 0 Then
'MessageBox.Show("日期与时间设置成功", "提示")
Else
'MessageBox.Show("日期与时间设置失败", "提示")
End If
Case &HA
If RxBuf(7) = 0 Then
'MessageBox.Show("显示屏状态设置成功", "提示")
Else
'MessageBox.Show("显示屏状态设置失败", "提示")
End If
End Select
Case &H32
Select Case RxBuf(6)
Case &H1
If RxBuf(7) = 0 Then
'MessageBox.Show("地址查询成功", "提示")
Else
'MessageBox.Show("地址查询失败", "提示")
End If
Case &H2
If RxBuf(7) = 0 Then
Timer1.Enabled = False
TextBox4.Invoke(RecieveRefresh, RxBuf, 8, RxBuf(4) - 5) '调用接收数据函数
'MessageBox.Show("波特率查询成功", "提示")
Else
'MessageBox.Show("波特率查询失败", "提示")
End If
Case &H3
If RxBuf(7) = 0 Then
TextBox4.Invoke(RecieveRefresh, RxBuf, 8, RxBuf(4) - 5) '调用接收数据函数
'MessageBox.Show("日期与时间查询成功", "提示")
Else
'MessageBox.Show("日期与时间查询失败", "提示")
End If
Case &HA
If RxBuf(7) = 0 Then
Select Case RxBuf(8)
Case 0
PictureBox2.BackColor = Color.Black
Case 1
PictureBox2.BackColor = Color.Red
End Select
'MessageBox.Show("显示屏状态查询成功", "提示")
Else
'MessageBox.Show("显示屏状态查询失败", "提示")
End If
Case &H41
If RxBuf(7) = 0 Then
TextBox4.Invoke(RecieveRefresh, RxBuf, 8, RxBuf(4) - 5) '调用接收数据函数
'MessageBox.Show("软件版本查询成功", "提示")
Else
'MessageBox.Show("软件版本查询失败", "提示")
End If
Case &H42
If RxBuf(7) = 0 Then
TextBox4.Invoke(RecieveRefresh, RxBuf, 8, RxBuf(4) - 5) '调用接收数据函数
'MessageBox.Show("硬件版本查询成功", "提示")
Else
'MessageBox.Show("硬件版本查询失败", "提示")
End If

End Select
End Select
Else
MessageBox.Show("返回数据校验码错误", "提示")
End If
End Sub
...全文
196 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
心随自在飞 2016-01-26
  • 打赏
  • 举报
回复
懂Java 然后 就没然后了。。。

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧