?? frmenter.frm
字號(hào):
VERSION 5.00
Begin VB.Form frmEnter
Caption = "Form2"
ClientHeight = 1245
ClientLeft = 60
ClientTop = 345
ClientWidth = 4080
LinkTopic = "Form2"
ScaleHeight = 1245
ScaleWidth = 4080
StartUpPosition = 2 '屏幕中心
Begin VB.CommandButton cmdCancel
Caption = "Cancel"
Height = 375
Left = 2400
TabIndex = 3
Top = 720
Width = 975
End
Begin VB.CommandButton cmdOK
Caption = "OK"
Default = -1 'True
Height = 375
Left = 2400
TabIndex = 2
Top = 240
Width = 975
End
Begin VB.TextBox Text1
Height = 375
Left = 240
TabIndex = 1
Top = 600
Width = 1215
End
Begin VB.Label Label1
Caption = "輸入數(shù)據(jù)"
Height = 255
Left = 240
TabIndex = 0
Top = 240
Width = 975
End
End
Attribute VB_Name = "frmEnter"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public index As Integer '按下的按鈕序號(hào)
Const DEMO_CH451_CMD = &H56
Private Sub cmdCancel_Click()
mEnterBuffer = "" '放棄按鈕
Unload Me
End Sub
Private Sub cmdOK_Click()
Dim ilen As Integer
Dim mDemoReq As COMMAND_PACKET
mEnterBuffer = Text1.Text
If index <> -1 Then '數(shù)碼管對(duì)應(yīng)的按鍵
Dim mNumber As Byte
If Text1.Text <> "" Then
Dim mBcdCode1 As Byte
Dim mLength As Long
If mEnterBuffer = " " Then
mBcdCode1 = &H10 ' 空格
ElseIf mEnterBuffer = "=" Then
mBcdCode1 = &H13
ElseIf mEnterBuffer = "." Then
mBcdCode1 = &H1A
Else
mBcdCode1 = mCharToBcd(Left(mEnterBuffer, 1))
End If
ilen = Len(mEnterBuffer)
If ilen >= 2 And Right(Left(mEnterBuffer, 2), 1) = "." Then
mBcdCode1 = mBcdCode1 Or &H80
End If
If mBcdCode1 <> &HFF Then '輸入的字符有效
mNumber = index ' 如果IDC_N1至IDC_N8有序,則結(jié)果為0-7,分別對(duì)應(yīng)于各個(gè)數(shù)碼管按鈕
mNumber = 7 - mNumber
mDemoReq.mCommandCode = DEMO_CH451_CMD
mDemoReq.mCommandCodeNot = &HFF - DEMO_CH451_CMD
mDemoReq.mParameter(2) = &H8 Or mNumber ' CH451命令:加載字?jǐn)?shù)據(jù)到指定數(shù)碼管
mDemoReq.mParameter(1) = mBcdCode1 ' 字?jǐn)?shù)據(jù),對(duì)應(yīng)于BCD譯碼方式
mLength = CONST_CMD_LEN ' 命令包的長(zhǎng)度
On Error Resume Next
If CH375WriteData(mIndex, mDemoReq, mLength) Then ' 通過(guò)CH371發(fā)送數(shù)據(jù),成功
' 如果輸入時(shí)mLength大于8,則成功返回時(shí),為了更加可靠,可以檢查實(shí)際發(fā)送的長(zhǎng)度是否符合
mEnterBuffer = Left(mEnterBuffer, 1) ' 字符串結(jié)束符,只要一個(gè)字符
frmMain.Command1(index).Caption = Left(mEnterBuffer, 1) '設(shè)置按鈕上的字符
Else
MsgBox "CH375WriteData 失敗!", vbCritical, "信息提示"
End If
Else
MsgBox "請(qǐng)輸入字符0-9,A-F或者空格", vbExclamation, "信息提示"
End If
Else
MsgBox "請(qǐng)至少輸入一個(gè)字符0-9,A-F或者空格", vbExclamation, "信息提示"
End If
index = 0
Unload Me
ElseIf index = -1 Then '命令按鈕觸發(fā)
If Len(mEnterBuffer) >= 3 Then ' 已經(jīng)輸入數(shù)據(jù),并且長(zhǎng)度超過(guò)3位
ReDim mBcdCode(2) As Byte
mBcdCode(0) = mCharToBcd(Left(mEnterBuffer, 1))
mBcdCode(1) = mCharToBcd(Right(Left(mEnterBuffer, 2), 1))
mBcdCode(2) = mCharToBcd(Right(Left(mEnterBuffer, 3), 1))
If mBcdCode(0) <> &HFF And mBcdCode(1) <> &HFF And mBcdCode(2) <> &HFF Then ' 輸入的三個(gè)字符都有效
mDemoReq.mCommandCode = DEMO_CH451_CMD
mDemoReq.mCommandCodeNot = &HFF - DEMO_CH451_CMD
mDemoReq.mParameter(2) = mBcdCode(0) ' CH451命令:高4位
mDemoReq.mParameter(1) = mBcdCode(1) * &H10 Or mBcdCode(2) ' 低8位的字節(jié)數(shù)據(jù)
mLength = CONST_CMD_LEN ' 命令包的長(zhǎng)度
If CH375WriteData(mIndex, mDemoReq, mLength) Then ' 通過(guò)CH375發(fā)送數(shù)據(jù),成功
MsgBox "命令成功發(fā)送到CH451", vbExclamation, "信息提示"
Else
MsgBox "CH375WriteData 失敗", vbCritical, "信息提示"
End If
Else
MsgBox "請(qǐng)輸入3個(gè)字符0-9,A-F", vbExclamation, "信息提示"
End If
Else
MsgBox "請(qǐng)至少輸入3個(gè)字符0-9,A-F", vbExclamation, "信息提示"
End If
Unload Me
End If
End Sub
Private Function mCharToBcd(ByVal iChar As String) As Byte ' 輸入的ASCII字符
Dim mBCD As Byte
If iChar >= "0" And iChar <= "9" Then
mBCD = iChar - "0"
ElseIf iChar >= "A" And iChar <= "F" Then
mBCD = Asc(iChar) - Asc("A") + &HA
ElseIf iChar >= "a" And iChar <= "f" Then
mBCD = Asc(iChar) - Asc("a") + &HA
Else
mBCD = &HFF
End If
mCharToBcd = mBCD
End Function
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -