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

📄 frmsegconf.frm

📁 TCP/IP协议芯片使用说明
💻 FRM
📖 第 1 页 / 共 4 页
字号:
    frmState.Show vbModal, Me
    
    Me.Enabled = True
    
End Sub
        

''''''''''''''''''''''''''''''''''''''''''''''''
' Name : BoardAdd
' Parameter : newStr() is string of board's configuration data
'
' Add Board with receiving new board's configuration data
' save total count of boards to "intBoardNum" variable.
' save configuration data to "colBoards" collection
'
''''''''''''''''''''''''''''''''''''''''''''''''
Sub BoardAdd(newStr() As Byte)
On Error GoTo e_go

    Dim mac As String
    Dim i As Integer
    
    ' making mac address string key
    ' ex) 00:44:34:EA:3A:F0
    mac = ""
    For i = 0 To 5
        If Len(Hex(newStr(i))) = 1 Then
            mac = mac & "0" & Hex(newStr(i)) & ":"
        Else
            mac = mac & Hex(newStr(i)) & ":"
        End If
    Next i
    mac = Left(mac, Len(mac) - 1)
    
    ' Add Board entity by using mac .
    colBoards.Add newStr, mac
    ' add list view
    frmSEGConf.ListBoards.ListItems.Add intBoardNum, mac, mac
    frmSEGConf.ListBoards.ListItems.Item(intBoardNum).SmallIcon = 1
            
    ' Automatically select the first row of ListView
    If intBoardNum = 1 Then
        Call frmSEGConf.ListBoards_FirstRowSelect
        'frmSEGConf.ListBoards.SetFocus
    End If
    
    intBoardNum = intBoardNum + 1

e_go:
End Sub

''''''''''''''''''''''''''''''''''''''''''''''''
' Name : BoardUpdate
' Parameter : newStr() is string of board's configuration data
'
' Update Board's configuration data with receiving data
' delete previous data
' add new board's data
'
''''''''''''''''''''''''''''''''''''''''''''''''
Sub BoardUpdate(newStr() As Byte)
On Error GoTo U_ERROR

    Dim newInfo() As Byte
    ReDim newInfo(0 To Len(BoardInfo) - 1) As Byte
    
    ' Verify message
    If newStr(0) = BoardInfo.mac(0) And _
        newStr(1) = BoardInfo.mac(1) And _
        newStr(2) = BoardInfo.mac(2) And _
        newStr(3) = BoardInfo.mac(3) And _
        newStr(4) = BoardInfo.mac(4) And _
        newStr(5) = BoardInfo.mac(5) Then
        
        ' Updatae the item
        colBoards.Remove BoardKey
        CopyMemory newInfo(0), BoardInfo, Len(BoardInfo)
        colBoards.Add newInfo, BoardKey
        ToolMode = modeSettingComplete
        
    End If

U_ERROR:
    Erase newInfo
    
End Sub

''''''''''''''''''''''''''''''''''''''''''''''''
' Name : BoardRemove
' Parameter : None
'
' Delete all Board's data from "colBoards" collection
' Board's ListBox clears
' "intBoardNum" variable sets '0'
'
''''''''''''''''''''''''''''''''''''''''''''''''
Sub BoardRemove()
    
    Dim num As Integer
    
    ' Set false the flag, board select
    bSelect = False
    
    ' Delete All Board information
    If intBoardNum > 1 Then
    For num = 1 To intBoardNum - 1
        colBoards.Remove frmSEGConf.ListBoards.ListItems(num).Key
    Next num
    End If
    
    frmSEGConf.ListBoards.ListItems.Clear
    
    'Clear board's count
    intBoardNum = 1
    
End Sub

''''''''''''''''''''''''''''''''''''''''''''''''
' Name : Form_Load
' Parameter : None
'
' Initialize control, variable, position
'
''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Form_Load()

    frmSEGConf.Caption = "EG-SR-7100A Configuration Tool ver " & App.Major & "." & App.Minor & "." & App.Revision
    
    Dim colX As ColumnHeader
    Dim intX As Integer
    Set colX = ListBoards.ColumnHeaders.Add()
    colX.Text = "Board list"
    colX.Width = ListBoards.Width
        
    
    WinsockUDP.RemoteHost = "255.255.255.255"
    WinsockUDP.RemotePort = 1460
    WinsockUDP.LocalPort = 5001
    WinsockUDP.Bind
    
    'Speed Value
    cboSpeed.AddItem "1200", 0
    cboSpeed.ItemData(0) = &HA0
    cboSpeed.AddItem "2400", 1
    cboSpeed.ItemData(1) = &HD0
    cboSpeed.AddItem "4800", 2
    cboSpeed.ItemData(2) = &HE8
    cboSpeed.AddItem "9600", 3
    cboSpeed.ItemData(3) = &HF4
    cboSpeed.AddItem "19200", 4
    cboSpeed.ItemData(4) = &HFA
    cboSpeed.AddItem "38400", 5
    cboSpeed.ItemData(5) = &HFD
    cboSpeed.AddItem "57600", 6
    cboSpeed.ItemData(6) = &HFE
    cboSpeed.AddItem "115200", 7
    cboSpeed.ItemData(7) = &HFF
    cboSpeed.AddItem "230400", 8
    cboSpeed.ItemData(8) = &HBB
    
    'Databit Value
    cboDataBits.AddItem "7", 0
    cboDataBits.ItemData(0) = &H7
    cboDataBits.AddItem "8", 1
    cboDataBits.ItemData(1) = &H8
    
    'Stopbit Value
    cboStopBits.AddItem "1", 0
    cboStopBits.ItemData(0) = &H1
    'cboStopBits.AddItem "2", 1
    'cboStopBits.ItemData(1) = &H2
    
    'Parity Value
    cboParity.AddItem "None", 0
    cboParity.ItemData(0) = &H0
    cboParity.AddItem "Odd", 1
    cboParity.ItemData(1) = &H1
    cboParity.AddItem "Even", 2
    cboParity.ItemData(2) = &H2
    
    cboFlow.AddItem "None", 0
    cboFlow.ItemData(0) = &H0
    cboFlow.AddItem "Xon/Xoff", 1
    cboFlow.ItemData(1) = &H1
    cboFlow.AddItem "CTS/RTS", 2
    cboFlow.ItemData(2) = &H2

    bSelect = False
    
    ToolMode = modeNone
    
    FrameTab(1).Left = TabStrip1.Left + 8
    FrameTab(1).Top = TabStrip1.Top + 24
    FrameTab(2).Left = TabStrip1.Left + 8
    FrameTab(2).Top = TabStrip1.Top + 24
    FrameTab(3).Left = TabStrip1.Left + 8
    FrameTab(3).Top = TabStrip1.Top + 24
    mintCurFrame = 1
    FrameTab(1).Visible = True
    
    txtDirectIP.Visible = False
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
    End
End Sub

''''''''''''''''''''''''''''''''''''''''''''''''
' Name : func_SearchBoard
' Parameter : None
'
' Search available Boards.
' Send "FIND" message
' Waiting Board's reply
'
''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub func_SearchBoard()

    Dim sendD() As Byte
    
    ' First, delete all board's information
    Call BoardRemove
    
    ToolMode = modeSearching
    ' Send FIND message
    ReDim sendD(0 To 3) As Byte
    sendD(0) = Asc("F")
    sendD(1) = Asc("I")
    sendD(2) = Asc("N")
    sendD(3) = Asc("D")
    
    If chkDirect.Value = 1 Then
        WinsockDirect.RemoteHost = txtDirectIP.Text
        WinsockDirect.RemotePort = 1461
        WinsockDirect.Connect
        
    Else
        WinsockUDP.RemoteHost = "255.255.255.255"
        WinsockUDP.RemotePort = 1460
        WinsockUDP.SendData sendD
        Erase sendD
    End If
    
    Call ShowMsgWindow
    WinsockDirect.Close

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''
' Name : func_SettingBoard
' Parameter : None
'
' Update the selected Board's configuration data.
' Make message with new configuration data.
' Send "SETT" message
' Waiting Board's reply
'
''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub func_SettingBoard()

On Error GoTo s_ERROR

    Dim sendD() As Byte
    Dim tmpstr() As String
    Dim ii As Integer
    
    ' If exist selected board ,
    If bSelect Then
        
        ' Getting selected board's information
        ' Making SETT message
        If chkDebug.Value = 1 Then
            BoardInfo.debugoff = 0
        Else
            BoardInfo.debugoff = 1
        End If
        
        BoardInfo.DHCP = chkDHCP.Value
        BoardInfo.UDP = chkUDPMode.Value
        BoardInfo.Connect = 0
        
        tmpstr = Split(txtIP.Text, ".")
        If UBound(tmpstr) <> 3 Then
            Call MessageBox("Invalid IP Address.")
            txtIP.SetFocus
            Exit Sub
        End If
        For ii = 0 To 3
            If tmpstr(ii) = "" Or CInt(tmpstr(ii)) > 255 Or CInt(tmpstr(ii)) < 0 Then
                Call MessageBox("Invalid IP Address.")
                txtIP.SetFocus
                Exit Sub
            End If
            BoardInfo.ip(ii) = CByte(tmpstr(ii))
        Next ii
        
        tmpstr = Split(txtSubnet.Text, ".")
        If UBound(tmpstr) <> 3 Then
            Call MessageBox("Invalid Subnet Mask.")
            txtSubnet.SetFocus
            Exit Sub
        End If
        For ii = 0 To 3
            If tmpstr(ii) = "" Or CInt(tmpstr(ii)) > 255 Or CInt(tmpstr(ii)) < 0 Then
                Call MessageBox("Invalid Subnet Mask.")
                txtSubnet.SetFocus
                Exit Sub
            End If
            BoardInfo.subnet(ii) = CByte(tmpstr(ii))
        Next ii
    
        tmpstr = Split(txtGW.Text, ".")
        If UBound(tmpstr) <> 3 Then
            Call MessageBox("Invalid Gateway Address.")
            txtGW.SetFocus
            Exit Sub
        End If
        For ii = 0 To 3
            If tmpstr(ii) = "" Or CInt(tmpstr(ii)) > 255 Or CInt(tmpstr(ii)) < 0 Then
                Call MessageBox("Invalid Gateway Address.")
                txtGW.SetFocus
                Exit Sub
            End If
            BoardInfo.gw(ii) = CByte(tmpstr(ii))
        Next ii
    
        BoardInfo.myport(0) = (CLng(txtPort.Text) And &HFF00) / &H100
        BoardInfo.myport(1) = CLng(txtPort.Text) And &HFF
        
        If optClientMode.Item(0).Value Then
            BoardInfo.bserver = 0
        ElseIf optClientMode.Item(1).Value Then
            BoardInfo.bserver = 1
        Else
            BoardInfo.bserver = 2
        End If
        
        tmpstr = Split(txtServerIP.Text, ".")
        If UBound(tmpstr) <> 3 Then
            Call MessageBox("Invalid Server IP Address.")
            txtServerIP.SetFocus
            Exit Sub
        End If
        For ii = 0 To 3
            If tmpstr(ii) = "" Or CInt(tmpstr(ii)) > 255 Or CInt(tmpstr(ii)) < 0 Then
                Call MessageBox("Invalid Server IP Address.")
                txtServerIP.SetFocus
                Exit Sub
            End If
            BoardInfo.peerip(ii) = CByte(tmpstr(ii))
        Next ii
    
        BoardInfo.peerport(0) = (CLng(txtServerPort.Text) And &HFF00) / &H100
        BoardInfo.peerport(1) = CLng(txtServerPort.Text) And &HFF
        BoardInfo.I_time(0) = (CLng(txtITime.Text) And &HFF00) / &H100
        BoardInfo.I_time(1) = CLng(txtITime.Text) And &HFF
        BoardInfo.D_time(0) = (CLng(txtDTime.Text) And &HFF00) / &H100
        BoardInfo.D_time(1) = CLng(txtDTime.Text) And &HFF
        BoardInfo.D_size(0) = (CInt(txtDSize.Text) And &HFF00) / &H100
        BoardInfo.D_size(1) = CInt(txtDSize.Text) And &HFF
        BoardInfo.D_ch = CInt("&h" & txtDChar.Text)
        
        BoardInfo.speed = cboSpeed.ItemData(cboSpeed.ListIndex)
        BoardInfo.databit = cboDataBits.ItemData(cboDataBits.ListIndex)
        BoardInfo.parity = cboParity.ItemData(cboParity.ListIndex)
        BoardInfo.stopbit = cboStopBits.ItemData(cboStopBits.ListIndex)
        BoardInfo.flow = cboFlow.ItemData(cboFlow.ListIndex)
        
        ToolMode = modeSetting
                
        ' Sending SETT message
        ReDim sendD(0 To Len(BoardInfo) + 3) As Byte
        sendD(0) = Asc("S")
        sendD(1) = Asc("E")
        sendD(2) = Asc("T")
        sendD(3) = Asc("T")
        CopyMemory sendD(4), BoardInfo, Len(BoardInfo)
        
        If chkDirect.Value = 1 Then
            WinsockDirect.RemoteHost = txtDirectIP.Text
            WinsockDirect.RemotePort = 1461
            WinsockDirect.Connect
            
        Else
            WinsockUDP.RemoteHost = "255.255.255.255"
            WinsockUDP.RemotePort = 1460
            WinsockUDP.SendData sendD
            Erase sendD
        End If
        
        Call ShowMsgWindow
        WinsockDirect.Close
    
    End If
    Exit Sub
    
s_ERROR:
    Call MessageBox("Invalid parameter's value.")
    
End Sub

''''''''''''''''''''''''''''''''''''''''''''''''
' Name : func_Upload
' Parameter : None
'
' Uploading new firmware to selected Board.
' Send "FIRS" message for alert uploading to selected Board.
' Try to connect for making uploading socket.
' waiting until connecting Board.
'
''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub func_Upload()

    On Error Resume Next
    
    Dim Ret As Integer      ' Return value
    Dim sendD() As Byte
    Dim tmpstr() As String
    Dim ii As Integer
    
    If bSelect Then
        
        tmpstr = Split(txtIP.Text, ".")
        If UBound(tmpstr) <> 3 Then
            Call MessageBox("Invalid IP Address.")
            txtIP.SetFocus
            Exit Sub
        End If
        For ii = 0 To 3
            If tmpstr(ii) = "" Or CInt(tmpstr(ii)) > 255 Or CInt(tmpstr(ii)) < 0 Then
                Call MessageBox("Invalid IP Address.")
                txtIP.SetFocus
                Exit Sub
            End If
        Next ii
        
        ' Select firmware's file
        OpenLog.DialogTitle = "File Select"
        OpenLog.Filter = "Bin File (*.bin)|*.bin|All File (*.*)|*.*"
        Do
            OpenLog.CancelError = True
            OpenLog.FileName = ""
            OpenLog.ShowOpen
            If Err = cdlCancel Then
                Exit Sub
            End If
            
            strUploadFile = OpenLog.FileName
            ' if file not exist, return.
            Ret = Len(Dir$(strUploadFile))
            If Err Then
               Call MessageBox(Error$)
               Exit Sub
            End If
            If Ret Then
               Exit Do
            Else
               Call MessageBox("No existing " + strUploadFile)
            End If
        Loop
        
        ToolMode = modeUploading
        bDirectUpload = False
        
        ' Inform board uploading
        ' Send FIRS message
        ReDim sendD(0 To Len(BoardInfo) + 3) As Byte
        sendD(0) = Asc("F")
        sendD(1) = Asc("I")
        sendD(2) = Asc("R")
        sendD(3) = Asc("S")
        CopyMemory sendD(4), BoardInfo, Len(BoardInfo)
        
        If chkDirect.Value = 1 Then
            WinsockDirect.RemoteHost = txtDirectIP.Text
            WinsockDirect.RemotePort = 1461

⌨️ 快捷键说明

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