?? frm_sendget.frm
字號:
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
End
Begin VB.Line Line3
X1 = 120
X2 = 11760
Y1 = 5520
Y2 = 5520
End
Begin VB.Line Line2
X1 = 720
X2 = 11760
Y1 = 720
Y2 = 720
End
Begin VB.Label Label3
Caption = "發(fā)送目標(biāo):"
Height = 255
Left = 240
TabIndex = 5
Top = 1080
Width = 975
End
Begin VB.Line Line1
X1 = 0
X2 = 11880
Y1 = 2640
Y2 = 2640
End
Begin VB.Label Label2
Caption = "發(fā)送內(nèi)容:"
Height = 255
Left = 240
TabIndex = 4
Top = 1920
Width = 975
End
End
Attribute VB_Name = "Frm_SendGet"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim objItem As ListItem
Dim i As Integer
Dim Mcount As Integer
Public Function LRC(str As String) As String 'LRC校驗算法
Dim c As Integer
Dim i As Integer
Dim c_data As String
Dim d_lrc As Variant
c = 0
l = Len(str)
For c = c + 1 To l
c_data = Mid$(str, c, 2)
d_lrc = d_lrc + Val("&H" + c_data)
c = c + 1
Next c
If d_lrc > &HFF Then
d_lrc = d_lrc Mod &H100
End If
h_lrc = Hex(&HFF - d_lrc + 1)
If Len(h_lrc) > 2 Then
h_lrc = Mid(h_lrc, Len(h_lrc) - 1, 2)
End If
LRC = h_lrc
End Function
Private Sub Cmd_Clear_Click()
Text_send.Text = ""
End Sub
Private Sub Cmd_ClearRecive_Click()
ListView_Recive.ListItems.Clear
End Sub
Private Sub Cmd_ClearSend_Click()
ListView_Send.ListItems.Clear
End Sub
Private Sub Cmd_ColsePort_Click()
On Error GoTo ComErr
If MSComm1.PortOpen = True Then '
MSComm1.PortOpen = False
End If
StatusBar1.Panels(2).Text = " 端口已關(guān)閉!"
Exit Sub
ComErr:
MsgBox "端口關(guān)閉失敗,請檢查端口!", vbExclamation + vbOKOnly, "提示!"
End Sub
Private Sub Cmd_OpenPort_Click()
'初始化端口
'On Error GoTo ComErr
If MSComm1.PortOpen = True Then '設(shè)置短口前先關(guān)閉端口
MSComm1.PortOpen = False
End If
MSComm1.CommPort = PortItem '設(shè)置并返回通訊端口號。
MSComm1.Settings = "9600,n,8,1" ' '設(shè)置波特率、校驗位(1)、數(shù)據(jù)位、停止位
MSComm1.InputLen = 0 ' 屬性確定被 Input 屬性讀取的字符數(shù)。設(shè)置 InputLen 為 0,則 Input 屬性讀取緩沖區(qū)中全部的內(nèi)容。
MSComm1.InputMode = comInputModeTex 'comInputModeTex文本comInputModeBinary此模式下得到的是各種字節(jié)數(shù)值,
MSComm1.Handshaking = comNone '無握手
MSComm1.RThreshold = 1 '接受緩沖區(qū)內(nèi)有多少字符都不會引發(fā)ONcOMM事件'MSComm1.RThreshold = 0 '傳輸緩沖區(qū)完全空時生成OnComm事件MSComm1.DTREnable = True '用于在通信時是否起用DTR線路用于計算機(jī)告訴調(diào)制解調(diào)器可以發(fā)送數(shù)據(jù)MSComm1.RTSEnable = True '是否使RTS線有效,有計算機(jī)發(fā)送信號到解調(diào)器要求將數(shù)據(jù)送出
MSComm1.DTREnable = True
MSComm1.RTSEnable = True
MSComm1.SThreshold = 0 '傳輸緩沖區(qū)不引發(fā)發(fā)送事件
MSComm1.PortOpen = True '打開端口
If MSComm1.OutBufferCount <> 0 Then
MSComm1.OutBufferCount = 0 '清除發(fā)送緩沖區(qū)
End If
If MSComm1.InBufferCount <> 0 Then
MSComm1.InBufferCount = 0 '清除接收緩沖區(qū)
End If
'
Timer1.Enabled = False
' Timer1.Interval = 10000
'
StatusBar1.Panels(1).Text = " 端口設(shè)置:" & MSComm1.Settings
StatusBar1.Panels(2).Text = " 端口已打開!"
' Exit Sub
'ComErr:
' MsgBox "端口打開失敗,請檢查端口是否已經(jīng)被別的程序打開!", vbExclamation + vbOKOnly, "提示!"
End Sub
Private Sub Cmd_Port_Click()
Frm_Config.Show
End Sub
Private Sub Cmd_Send_Click()
On Error GoTo CMGSError
Dim BufSend As String '發(fā)送串
Dim Sendstr As String
Sendstr = Trim(Text_send.Text)
BufSend = ":" & "01" & "00" & Sendstr & LRC(Sendstr) + Chr$(13) + Chr$(10) '發(fā)送串內(nèi)容(1.起始位":",2.通信地址2個字符 3.功能碼2個字符 4.數(shù)據(jù)項 5.LRC校驗 2字符 6.結(jié)束字符 回車。)
' MsgBox Len(BufSend)
MSComm1.Output = BufSend
'向已發(fā)送列表添加內(nèi)容
Dim StrTo As String
StrTo = "默認(rèn)"
Dim i As Integer
i = 5
Do While 10
Set objItem = ListView_Send.ListItems.Add(, , StrTo)
With objItem
.SubItems(1) = Trim(Text_send.Text)
.SubItems(2) = GetMyFormatDataAndTime
End With
DoMySleep (10)
i = i - 1
Loop
Exit Sub
MsgBox "fawan"
CMGSError:
MsgBox "發(fā)送失敗!", vbExclamation + vbOKOnly, "提示!"
End Sub
Private Sub Command1_Click()
PlaySound App.Path & "\back.wav"
MsgBox "222"
MsgBox "222"
End Sub
Private Sub Command3_Click()
Check1.Value = True
End Sub
Private Sub Command4_Click()
PlaySound App.Path & "\Msg.wav"
MsgBox "22211111"
MsgBox "222111"
End Sub
Private Sub Form_Load()
'************初始化ListView_Send
ListView_Send.ColumnHeaders.Clear
'加入列首
' With ListView_Send.ColumnHeaders
' .Add , , "目標(biāo)", ListView_Send.Width * 0.5 / 8
' .Add , , "內(nèi)容", ListView_Send.Width * 6.2 / 8
' .Add , , "時間", ListView_Send.Width * 1.2 / 8
' End With
ListView_Recive.ColumnHeaders.Clear
'加入列首
With ListView_Recive.ColumnHeaders
.Add , , "來源", ListView_Recive.Width * 0.5 / 8
.Add , , "內(nèi)容", ListView_Recive.Width * 6.2 / 8
.Add , , "時間", ListView_Recive.Width * 1.2 / 8
End With
End Sub
Private Sub Timer1_Timer()
Dim IntCount As Integer '緩沖區(qū)等待被取走的字符數(shù)
IntCount = 0
IntCount = MSComm_Recive.InBufferCount ' 在接收緩沖區(qū)等待被取走的字符數(shù)
If IntCount > 0 Then
OutStr = ""
Text_Recive.Text = MSComm_Recive.Input
End If
End Sub
Private Sub Command2_Click()
Form_test.Show
End Sub
Private Sub MSComm1_OnComm()
On Error GoTo CMGSError
Dim ComOutStr As String '得到字符串
Dim StrData As String
Select Case MSComm1.CommEvent
Case comEvReceive
'讀取串口數(shù)據(jù)
ComOutStr = ComOutStr + MSComm1.Input
End Select
If InStr(ComOutStr, ":") = 1 And Len(ComOutStr) >= 10 Then '開始標(biāo)記是:
StrData = Mid(ComOutStr, 6, Len(ComOutStr) - 9)
If LRC(StrData) = Mid(ComOutStr, Len(ComOutStr) - 3, 2) Then ' 接收時LRC校驗,看發(fā)送總是否錯誤
'向接收列表添加內(nèi)容
Dim StrTo As String
StrTo = "默認(rèn)"
Set objItem = ListView_Recive.ListItems.Add(, , StrTo)
With objItem
.SubItems(1) = StrData
.SubItems(2) = GetMyFormatDataAndTime
End With
End If
End If
'
' Text1.Text = ComOutStr
' Mcount = Mcount + 1
' Label4.Caption = Mcount
Exit Sub
CMGSError:
MsgBox "接收失敗!", vbExclamation + vbOKOnly, "提示!"
End Sub
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -