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

📄 sendfile_.cls

📁 一份串口通信的好资料,对初学串口者很有用滴
💻 CLS
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "sendfile_"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
'要引发该事件,请遵循下列语法使用 RaiseEvent:
'RaiseEvent CONREQA[(arg1, arg2, ... , argn)]
Public Event CONREQA(CONREQA As Boolean)
'要引发该事件,请遵循下列语法使用 RaiseEvent:
'RaiseEvent SENDNEXTA[(arg1, arg2, ... , argn)]
Public Event SENDNEXTA(SENDNEXTA As Boolean)







Public Function SendFile(ByVal FileName As String, MSGLENTH As Long)

    Dim ABSfilename     As String
    Dim FileLenA        As Long
    Dim FileHandle      As Long
    Dim p               As Integer
    Dim EGREAD          As Long
    
    Dim buffer()        As Byte
    Dim BBCNUM          As Integer
    Dim waitconreq      As Boolean
    Dim waitsendnext    As Boolean
    
    ABSfilename = FileName
    ReDim buffer(MSGLENTH - 1)
    p = InStr(ABSfilename, "\")
    Do While p > 0
        ABSfilename = Right(ABSfilename, Len(ABSfilename) - p)
        p = InStr(ABSfilename, "\")
    Loop
    FileLenA = FileLen(FileName)
    
    Fmain.MSComm.Output = "ENQ"
    Fmain.NOTE.Text = Fmain.NOTE.Text & "SND:ENQ " & vbCrLf
    Do While CONREQ <> True
        RaiseEvent CONREQA(waitconreq)
        If wiatconreq Then CONREQ = True
        
    Loop
    
    FileHandle = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
    Do While EGREAD >= 0
        Ret = ReadFile(FileHandle, buffer(0), MSGLENTH, EGREAD, ByVal 0&)
        'BBC CHECK
        'PACK
        'SEND
        'WAIT REPLAY
        Do While SENDNEXT
            RaiseEvent SENDNEXTA(waitsendnext)
            If waitsendnext Then SENDNEXT = False
        Loop
        MSComm.Output = buffer
        SENDNEXT = False
        If EGREAD = 0 Then EGREAD = -1
    Loop
    CloseHandle (FileHandle)
    
End Function


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -