⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 用VB编写的接收卫星接收机的是数据
💻 FRM
📖 第 1 页 / 共 3 页
字号:
End Sub

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 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 + -