📄 form1
字号:
Private Sub timerStateCtrl_Timer()
' 注意: 主要通过工具条的停止按钮的Enable标识控制了设备打开后其他按钮的状态
If Len(Trim(ezlibObj.CurrentDeviceName)) <> 0 And _
ezlibObj.IsChipRunning = ChipIsRunning Then
statusBar.Panels(2).Text = "设备" + ezlibObj.CurrentDeviceName + "已运转"
msfInfo.TextMatrix(0, 0) = "设备 " + ezlibObj.CurrentDeviceName + " 各属性"
msfInfo.TextMatrix(0, 1) = "设备 " + ezlibObj.CurrentDeviceName + " 各属性"
With Toolbar1
'.Buttons("SelectEndpoint").Enabled = True
'mitemSelectEndpoint.Enabled = True
If Len(Trim(strFirmwarePath)) <> 0 Then
mitemReloadFirmware.Enabled = True
Else
mitemReloadFirmware.Enabled = False
End If
mitemReloadOther.Enabled = True
If blIsTransCtrlSet = True Then
If .Buttons("StopTransfer").Enabled <> True Then
.Buttons("StartTransfer").Enabled = True
mitemStartTransfer.Enabled = True
.Buttons("StopTransfer").Enabled = False
mitemStopTransfer.Enabled = False
'.Buttons("OpenDevice").Enabled = True
'mitemOpenDevice.Enabled = True
' .Buttons("SelectEndpoint").Enabled = True
' mitemSelectEndpoint.Enabled = True
If Len(Trim(strFirmwarePath)) <> 0 Then
mitemReloadFirmware.Enabled = True
Else
mitemReloadFirmware.Enabled = False
End If
mitemReloadOther.Enabled = True
Else
.Buttons("StartTransfer").Enabled = False
mitemStartTransfer.Enabled = False
.Buttons("StopTransfer").Enabled = True
mitemStopTransfer.Enabled = True
' .Buttons("SelectEndpoint").Enabled = False
' mitemSelectEndpoint.Enabled = False
'.Buttons("OpenDevice").Enabled = False
'mitemOpenDevice.Enabled = False
mitemReloadFirmware.Enabled = False
mitemReloadOther.Enabled = False
End If
Else
.Buttons("StartTransfer").Enabled = False
mitemStartTransfer.Enabled = False
.Buttons("StopTransfer").Enabled = False
mitemStopTransfer.Enabled = False
End If
End With
Else
statusBar.Panels(2).Text = "没有打开任何设备"
msfInfo.TextMatrix(0, 0) = "属性"
msfInfo.TextMatrix(0, 1) = "属性"
With Toolbar1
'.Buttons("OpenDevice").Enabled = True
'mitemOpenDevice.Enabled = True
'.Buttons("SelectEndpoint").Enabled = False
' mitemSelectEndpoint.Enabled = False
.Buttons("StartTransfer").Enabled = False
mitemStartTransfer.Enabled = False
.Buttons("StopTransfer").Enabled = False
mitemStopTransfer.Enabled = False
.Buttons("StartTransfer").Enabled = False
mitemStartTransfer.Enabled = False
.Buttons("StopTransfer").Enabled = False
mitemStopTransfer.Enabled = False
mitemReloadFirmware.Enabled = False
mitemReloadOther.Enabled = False
End With
End If
End Sub
' This timer is used for Data Reveiving,
' Mapx file Saving and Map Drawing
Private Sub tmrDataThread_Timer()
Static retval As Long
Static lngPackagesRead As Long
'// Note: public variable ezLngDataAddr stores the DataBuffer's Address
' Public ezlngDataAddr as Long
'// Note: public variable ezlngTotalRead stores the Total Count of Package
'Public ezlngTotalRead As Long
ReDim databuffer(ezTransCtrl.PacketCount - 1, ezTransCtrl.PacketSize - 1) As Byte
retval = ezlibObj.ReadData(databuffer, lngPackagesRead)
If retval = 0 Then
' Draw map and Store Datas to Specified MapX File
Call fmBdrObj.UpdateFileAndMap(ezLngDataAddr, lngPackagesRead, ezTransCtrl.PacketSize)
' Show Status (Total Packets(K) Read)
' avoid ezlngTotalRead overflow
If ezlngTotalRead + ezTransCtrl.PacketSize > 2147483648# Then ezlngTotalRead = 0
ezlngTotalRead = ezlngTotalRead + lngPackagesRead
If ezlngTotalRead < 1000 Then
statusBar.Panels(1).Text = "同步流传输已读到 " + CStr(ezlngTotalRead) + " 个数据包"
Else
statusBar.Panels(1).Text = "同步流传输已读到 " + CStr(ezlngTotalRead / 1000) + "(K) 个数据包"
End If
' Feed Dog (We use tmrDog as Gate Dog,when Gata Dog died for Hunger, Dog will Stop DataTransfering and CloseDevice)
Me.ezLngDogFood = 1
End If
' Process other GUI Events
DoEvents
End Sub
'We use tmrDog as Gate Dog,when Gata Dog died for Hunger, Dog will Stop DataTransfering and CloseDevice
Private Sub tmrDog_Timer()
Static lngHungerCount As Long
If Me.ezLngDogFood = 1 Then
' eat Food
Me.ezLngDogFood = 0
lngHungerCount = 0
Else
' Hungry
lngHungerCount = lngHungerCount + 1
statusBar.Panels(1).Text = "同步流传输错误重试:" + CStr(lngHungerCount)
' Died of Hunger
If lngHungerCount > optLngRetryTimes Then
statusBar.Panels(1).Text = "设备关闭"
' Stop Data Transfer
Call procStop '// procStop will set tmrDog.Interval = 0
' Close Device
Me.ezlibObj.CloseDevice
' Clear FlexGrid
Call procFillDeviceDescriptor(False)
Call procFillConfigurationDescriptor(False)
'If blIsTransCtrlSet = False Then
'Call procFillTransferCtrl(False)
lngHungerCount = 0
End If
End If
DoEvents
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key
'Case "OpenDevice":
'Call procOpenDevice
'Case "SelectEndpoint":
'Call procTransferSetup
Case "StartTransfer":
Call procStart
Case "StopTransfer":
Call procStop
Case "Quit":
'Unload Me
End
End Select
End Sub
Private Sub toolBarTransfer_ButtonClick(ByVal Button As MSComctlLib.Button)
Dim retval As Long
Dim checklong As Long
Dim checkDataFPath As String
Dim checkTransCtrl As New TransCtrl
On Error Resume Next
' 1.Disable this button after Apply New Settings
toolBarTransfer.Buttons("applySettings").Enabled = False
' 2.If data file path is validate then appply it
checkDataFPath = Trim(frmMain.msfInfo.TextMatrix(24, 0))
If frmMain.fmBdrObj.InitFileMap(frmMain.frameRight.hwnd, frmMain.frameRight.hDC, checkDataFPath) = 1 Then
' data file path is invalidate
MsgBox "填写的数据存储文件的路径不正确,将设回原来的参数"
Else
' data file path is validate
frmMain.strDatafilePath = checkDataFPath
End If
Call frmMain.fmBdrObj.FreeFileMap
' 3.If Transfer Ctrl 's validate then apply it
checkTransCtrl.BufferCount = CLng(msfInfo.TextMatrix(6, 1))
checkTransCtrl.FramesPerBuffer = CLng(msfInfo.TextMatrix(5, 1))
checkTransCtrl.PacketCount = CLng(msfInfo.TextMatrix(4, 1))
checkTransCtrl.PacketSize = CLng(msfInfo.TextMatrix(3, 1))
With frmMain.ezlibObj
retval = .BeginTransfer(.Interfaces(frmMain.ezCurIfIndex).Endpoints(frmMain.ezCurEdIndex), checkTransCtrl, checklong)
If retval <> 0 Then
' Transfer Ctrl is Invalidate
Select Case retval
Case 1:
MsgBox "这是一个只写端口"
Case 2:
MsgBox "这个端口没配置管道"
Case 3:
MsgBox "不支持该类型的传输"
Case 4:
MsgBox "填写的传输控制参数不正确,将设回原来的参数"
End Select
Call .EndTransfer
' Fill Transfer Ctrl to FlexGrid with Old TransferCtrl Information
frmMain.blIsTransCtrlSet = True
Call procFillTransferCtrl(True)
Exit Sub
End If
'// Transfer Ctrl is Validate
' Change it with new TransferCtrl Information
Set frmMain.ezTransCtrl = checkTransCtrl
Call .EndTransfer
' Save Current Transfer Ctrl 's Feilds to File as References
refLngPacketSize = checkTransCtrl.PacketSize
refLngPacketCount = checkTransCtrl.PacketCount
refLngBufferCount = checkTransCtrl.BufferCount
refLngFramesPerBuffer = checkTransCtrl.FramesPerBuffer
Call procSaveReferences
'4 Fill Transfer Ctrl and Data file path to FlexGrid
frmMain.blIsTransCtrlSet = True
Call procFillTransferCtrl(True)
End With
End Sub
Private Sub txtEdit_KeyPress(KeyAscii As Integer)
If KeyAscii >= 48 And KeyAscii <= 57 Then Exit Sub
If KeyAscii = 8 Then Exit Sub
For a = 48 To 57 '此循环将全角数字转为半角数字
If KeyAscii = a - 23680 Then
KeyAscii = a
Exit Sub
End If
Next a
KeyAscii = 0
End Sub
Private Sub txtEdit_Validate(Cancel As Boolean)
Call SetParent(txtEdit.hwnd, Me.hwnd)
If Len(Trim(txtEdit.Text)) <> 0 And _
Trim(txtEdit.Text) <> Trim(msfInfo.Text) Then
msfInfo.Text = txtEdit.Text
txtEdit.Text = ""
toolBarTransfer.Buttons("applySettings").Enabled = True
frmMain.blIsTransCtrlSet = False
End If
msfInfo.Refresh
txtEdit.Visible = False
End Sub
Private Sub txtFile_Validate(Cancel As Boolean)
g_blBtnClicked = False
'in 100 ms,if you clicked Command Button cmdFile the g_blBtnClicked will be True
tmrEdit.Interval = 50
End Sub
Private Sub tmrEdit_Timer()
Static i As Integer
If g_blBtnClicked = False Then
i = i + 1
Else
i = 0
tmrEdit.Interval = 0
End If
If i > 3 Then
picEdit.Visible = False
Call SetParent(txtFile.hwnd, Me.hwnd)
Call SetParent(picEdit.hwnd, Me.hwnd)
Call SetParent(txtFile.hwnd, picEdit.hwnd)
msfInfo.Refresh
i = 0
' update data to Flex Grid Cell
If Len(Trim(txtFile.Text)) <> 0 And _
Trim(txtFile.Text) <> Trim(msfInfo.TextMatrix(24, 0)) Then
msfInfo.TextMatrix(24, 0) = txtFile.Text
msfInfo.TextMatrix(24, 1) = txtFile.Text
msfInfo.Refresh
txtFile.Text = ""
toolBarTransfer.Buttons("applySettings").Enabled = True
frmMain.blIsTransCtrlSet = False
End If
tmrEdit.Interval = 0
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -