?? frmsegconf.frm
字號:
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 + -