688 lines
29 KiB
VB.net
688 lines
29 KiB
VB.net
Imports System.IO
|
||
Imports System.Text
|
||
Imports System.Xml
|
||
Imports DevModeFirmwareInfo.UTSModule
|
||
Imports FlexCell
|
||
Imports MySql.Data.MySqlClient
|
||
|
||
Public Class Form1
|
||
Public DbConnString As String = "Server=blv-cloud-db.mysql.rds.aliyuncs.com;Port=3307;Database=blv_rcu_db;Uid=blv_rcu;Pwd=fnadiaJDIJ7546;charset=utf8;"
|
||
|
||
'固件量
|
||
Public GFirmwareli As Dictionary(Of String, String)
|
||
'主机数量
|
||
Public GHostli As Dictionary(Of String, String)
|
||
'设备数量
|
||
Public GDevli As Dictionary(Of String, String)
|
||
Public FtpHost As String = "blv-oa.com"
|
||
Public FtpPort As Integer = 50
|
||
Public FtpUser As String = "BLV_Studio"
|
||
Public FtpPwd As String = "37f5675t6R&5*"
|
||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||
Dim xmlFilePath As String = SelectXmlFile()
|
||
If String.IsNullOrEmpty(xmlFilePath) Then
|
||
Return
|
||
End If
|
||
Dim strValue As String = XmlFieldExistsf(xmlFilePath, "DEV_NAME")
|
||
If strValue.Trim.ToLower.Equals("blv_c12") Then
|
||
ToolStripLabel2.Text = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
|
||
ToolStripLabel2.Tag = 1
|
||
ToolStripLabel1.Tag = xmlFilePath
|
||
Dim Hostli = New Dictionary(Of String, String)()
|
||
Dim intValue As Integer = XmlFieldExists(xmlFilePath, "DEV_DATA_MODEL_VER")
|
||
Hostli.Add(ToolStripLabel2.Text, intValue.ToString())
|
||
LoadData(GFirmwareli, Hostli, GDevli)
|
||
Else
|
||
MessageBox.Show("请选择正确的xml文件")
|
||
End If
|
||
|
||
'将文件路径截取文件名称设置到ToolStripLabel2文本中
|
||
|
||
End Sub
|
||
Public Function XmlFieldExists(xmlFile As String, fieldName As String) As Integer
|
||
Try
|
||
Dim doc As New XmlDocument()
|
||
doc.Load(xmlFile)
|
||
|
||
' 任意深度查找第一个匹配节点
|
||
Dim node As XmlNode = doc.SelectSingleNode($"//{fieldName}")
|
||
If node IsNot Nothing Then
|
||
'取到该节点的值
|
||
Dim value As String = node.InnerText.Trim()
|
||
'将其转int
|
||
Dim intValue As Integer = 0
|
||
Dim d As Double = 0
|
||
Double.TryParse(value, d)
|
||
Integer.TryParse(d, intValue)
|
||
Return intValue
|
||
Else
|
||
Return 0
|
||
End If
|
||
|
||
Catch ex As Exception
|
||
' 文件不存在、XML 格式错误、权限问题等都算“找不到”
|
||
Return 0
|
||
End Try
|
||
End Function
|
||
Public Function XmlFieldExistsf(xmlFile As String, fieldName As String) As String
|
||
Try
|
||
Dim doc As New XmlDocument()
|
||
doc.Load(xmlFile)
|
||
|
||
' 任意深度查找第一个匹配节点
|
||
Dim node As XmlNode = doc.SelectSingleNode($"//{fieldName}")
|
||
If node IsNot Nothing Then
|
||
'取到该节点的值
|
||
Dim value As String = node.InnerText
|
||
'将其转int
|
||
|
||
Return value
|
||
|
||
Else
|
||
Return ""
|
||
End If
|
||
|
||
Catch ex As Exception
|
||
' 文件不存在、XML 格式错误、权限问题等都算“找不到”
|
||
Return ""
|
||
End Try
|
||
End Function
|
||
'加载Grid1数据
|
||
Public Sub LoadData(Firmwareli As Dictionary(Of String, String), Hostli As Dictionary(Of String, String), Devli As Dictionary(Of String, String))
|
||
'嵌套遍历三个列表
|
||
initdevmodefirmware()
|
||
For Each Firmware In Firmwareli
|
||
For Each Host In Hostli
|
||
For Each Dev In Devli
|
||
Grid1.AddItem("")
|
||
Grid1.Cell(Grid1.Rows - 1, 0).Text = Grid1.Rows - 1
|
||
Grid1.Cell(Grid1.Rows - 1, 1).Text = Host.Value
|
||
Grid1.Cell(Grid1.Rows - 1, 2).Text = Host.Key
|
||
Grid1.Cell(Grid1.Rows - 1, 3).Text = Firmware.Value
|
||
Grid1.Cell(Grid1.Rows - 1, 4).Text = Firmware.Key
|
||
Grid1.Cell(Grid1.Rows - 1, 5).Text = Dev.Value
|
||
Grid1.Cell(Grid1.Rows - 1, 6).Text = Dev.Key
|
||
Grid1.Cell(Grid1.Rows - 1, 7).Text = "1"
|
||
Next
|
||
Next
|
||
Next
|
||
End Sub
|
||
|
||
|
||
Public Sub initdevmodefirmware()
|
||
With Grid1
|
||
.NewFile()
|
||
.ExtendLastCol = True
|
||
.DisplayRowNumber = True
|
||
.Rows = 1
|
||
.Cols = 8
|
||
For i As Integer = 0 To .Cols - 1
|
||
.Column(i).Alignment = AlignmentEnum.CenterCenter
|
||
.Column(i).Locked = True
|
||
Next
|
||
.Cell(0, 0).Text = "序号"
|
||
.Column(0).Width = 30
|
||
|
||
.Cell(0, 1).Text = "主机版本"
|
||
.Column(1).Width = 30
|
||
|
||
.Cell(0, 2).Text = "主机"
|
||
.Column(2).Width = 200
|
||
.Cell(0, 3).Text = "固件版本"
|
||
.Column(3).Width = 30
|
||
.Cell(0, 4).Text = "固件"
|
||
.Column(4).Width = 200
|
||
.Cell(0, 5).Text = "设备版本"
|
||
.Column(5).Width = 30
|
||
.Cell(0, 6).Text = "设备"
|
||
.Column(6).Width = 200
|
||
.Cell(0, 7).Text = "是否有效"
|
||
.Column(7).CellType = CellTypeEnum.CheckBox
|
||
.Column(7).Locked = False
|
||
|
||
End With
|
||
|
||
|
||
End Sub
|
||
''' <summary>
|
||
''' 弹出文件选择对话框,只允许选择 .xml 文件。
|
||
''' </summary>
|
||
''' <returns>选中的 .xml 文件的完整路径;如果用户取消,则返回 Nothing。</returns>
|
||
Public Function SelectXmlFile() As String
|
||
Using ofd As New OpenFileDialog()
|
||
ofd.Title = "请选择 XML 文件"
|
||
ofd.Filter = "XML 文件 (*.xml)|*.xml"
|
||
ofd.Multiselect = False
|
||
ofd.CheckFileExists = True
|
||
ofd.CheckPathExists = True
|
||
|
||
If ofd.ShowDialog() = DialogResult.OK Then
|
||
Return ofd.FileName
|
||
Else
|
||
Return Nothing
|
||
End If
|
||
End Using
|
||
End Function
|
||
Public Function SelecthexFile() As String
|
||
'C1F_A_L4_42_251110_NM
|
||
Using ofd As New OpenFileDialog()
|
||
ofd.Title = "请选择 XML 文件"
|
||
ofd.Filter = "XML 文件 (*.hex)|*.HEX"
|
||
ofd.Multiselect = False
|
||
ofd.CheckFileExists = True
|
||
ofd.CheckPathExists = True
|
||
|
||
If ofd.ShowDialog() = DialogResult.OK Then
|
||
Return ofd.FileName
|
||
Else
|
||
Return Nothing
|
||
End If
|
||
End Using
|
||
End Function
|
||
|
||
'查询主机、固件、设备 数量函数
|
||
Public Sub QueryCount()
|
||
GFirmwareli = New Dictionary(Of String, String)()
|
||
GHostli = New Dictionary(Of String, String)()
|
||
GDevli = New Dictionary(Of String, String)()
|
||
Dim ExecText As String = "SELECT HostVersion, HostName
|
||
FROM (
|
||
SELECT HostVersion,
|
||
HostName,
|
||
ROW_NUMBER() OVER (PARTITION BY HostName ORDER BY ID) AS rn
|
||
FROM tbl_devmode_firmware_info
|
||
) t
|
||
WHERE rn = 1;"
|
||
|
||
Dim dt As DataTable
|
||
|
||
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||
Try
|
||
db.Open()
|
||
dt = db.ExecuteDataTable(ExecText)
|
||
'将查询到的值赋给全局变量
|
||
For Each row As DataRow In dt.Rows
|
||
GHostli.Add(row("HostName").ToString(), row("HostVersion").ToString())
|
||
Next
|
||
|
||
ExecText = "SELECT FirmwareVersion, FirmwareName
|
||
FROM (
|
||
SELECT FirmwareVersion,
|
||
FirmwareName,
|
||
ROW_NUMBER() OVER (PARTITION BY FirmwareName ORDER BY ID) AS rn
|
||
FROM tbl_devmode_firmware_info
|
||
) t
|
||
WHERE rn = 1;"
|
||
dt = db.ExecuteDataTable(ExecText)
|
||
For Each row As DataRow In dt.Rows
|
||
GFirmwareli.Add(row("FirmwareName").ToString(), row("FirmwareVersion").ToString())
|
||
Next
|
||
ExecText = "SELECT DevVersion, DevName
|
||
FROM (
|
||
SELECT DevVersion,
|
||
DevName,
|
||
ROW_NUMBER() OVER (PARTITION BY DevName ORDER BY ID) AS rn
|
||
FROM tbl_devmode_firmware_info
|
||
) t
|
||
WHERE rn = 1;;"
|
||
|
||
dt = db.ExecuteDataTable(ExecText)
|
||
For Each row As DataRow In dt.Rows
|
||
GDevli.Add(row("DevName").ToString(), row("DevVersion").ToString())
|
||
Next
|
||
|
||
db.Close()
|
||
Catch ex As Exception
|
||
db.Close()
|
||
End Try
|
||
|
||
End Using
|
||
|
||
End Sub
|
||
'查询tbl_devmode_firmware_info 表中的数据,并显示在FlexCell控件中
|
||
Public Sub QueryData(tablename)
|
||
Dim ExecText As String = $"SELECT * FROM {tablename} ORDER BY ID DESC;"
|
||
Dim dt As DataTable
|
||
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||
Try
|
||
db.Open()
|
||
dt = db.ExecuteDataTable(ExecText)
|
||
db.Close()
|
||
Grid1.DataSource = dt
|
||
Grid1.Locked = True
|
||
Catch ex As Exception
|
||
db.Close()
|
||
End Try
|
||
End Using
|
||
End Sub
|
||
Public Sub QueryData2(tablename)
|
||
Dim ExecText As String = $"SELECT * FROM {tablename} ORDER BY MFD_ID DESC;"
|
||
Dim dt As DataTable
|
||
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||
Try
|
||
db.Open()
|
||
dt = db.ExecuteDataTable(ExecText)
|
||
db.Close()
|
||
Grid1.DataSource = dt
|
||
Grid1.Locked = True
|
||
Catch ex As Exception
|
||
db.Close()
|
||
End Try
|
||
End Using
|
||
End Sub
|
||
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||
UtsFtp.InitConnectParams(FtpPort, FtpUser, FtpPwd)
|
||
QueryCount()
|
||
QueryData("tbl_devmode_firmware_info")
|
||
|
||
|
||
End Sub
|
||
|
||
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
|
||
Dim xmlFilePath As String = SelectXmlFile()
|
||
If String.IsNullOrEmpty(xmlFilePath) Then
|
||
Return
|
||
End If
|
||
Dim strValue As String = XmlFieldExistsf(xmlFilePath, "DEV_INTERFACE")
|
||
If strValue.Trim.ToLower.Equals("RS485Active".ToLower) OrElse strValue.Trim.ToLower.Equals("VirtualObject".ToLower) OrElse strValue.Trim.ToLower.Equals("RS485Polling".ToLower) Then
|
||
ToolStripLabel2.Text = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
|
||
ToolStripLabel2.Tag = 2
|
||
ToolStripLabel1.Tag = xmlFilePath
|
||
Dim Devli = New Dictionary(Of String, String)()
|
||
Dim intValue As Integer = XmlFieldExists(xmlFilePath, "DEV_DATA_MODEL_VER")
|
||
Devli.Add(ToolStripLabel2.Text, intValue.ToString())
|
||
LoadData(GFirmwareli, GHostli, Devli)
|
||
Else
|
||
MessageBox.Show("请选择正确的xml文件")
|
||
End If
|
||
|
||
End Sub
|
||
|
||
Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
|
||
Dim xmlFilePath As String = SelecthexFile()
|
||
If String.IsNullOrEmpty(xmlFilePath) Then
|
||
Return
|
||
End If
|
||
Dim strValue As String = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
|
||
If IsFirmwareNameValid(strValue) Then
|
||
Dim buff1 As String() = strValue.Split("_")
|
||
ToolStripLabel2.Text = strValue
|
||
ToolStripLabel2.Tag = 3
|
||
ToolStripLabel1.Tag = xmlFilePath
|
||
Dim Firmwareli = New Dictionary(Of String, String)()
|
||
Dim intValue As Integer = Hex2ToInt(buff1(3).ToString)
|
||
Firmwareli.Add(ToolStripLabel2.Text, intValue.ToString())
|
||
LoadData(Firmwareli, GHostli, GDevli)
|
||
Else
|
||
MessageBox.Show("请选择正确的固件文件")
|
||
|
||
End If
|
||
'C1F_A_L4_42_251110_NM
|
||
'判断文件名称是否合法
|
||
|
||
|
||
End Sub
|
||
'判断固件文件名称是否合法函数
|
||
Private Function IsFirmwareNameValid(ByVal FirmwareName As String) As Boolean
|
||
Dim buff1 As String() = FirmwareName.ToLower.Replace(".hex", "").Split("_")
|
||
If buff1.Length = 6 AndAlso buff1(1).ToLower.Equals("a") AndAlso buff1(0).ToLower.Equals("c1f") Then
|
||
If buff1(5).ToLower.Equals("m") Or buff1(5).ToLower.Equals("nm") Then
|
||
If buff1(2).ToLower.Equals("l2") Or buff1(2).ToLower.Equals("l4") Then
|
||
|
||
If IsNumeric(Hex2ToInt(buff1(3).ToString)) AndAlso IsNumeric(buff1(4)) Then
|
||
Return True
|
||
Else
|
||
Return False
|
||
End If
|
||
Else
|
||
Return False
|
||
End If
|
||
Else
|
||
Return False
|
||
End If
|
||
|
||
Else
|
||
Return False
|
||
End If
|
||
End Function
|
||
|
||
|
||
Public Function Hex2ToInt(ByVal hex2 As String) As Integer
|
||
If hex2 Is Nothing OrElse hex2.Length <> 2 Then Return -1
|
||
|
||
Dim v As Byte
|
||
|
||
If Byte.TryParse(hex2, Globalization.NumberStyles.HexNumber, Nothing, v) Then
|
||
Return CInt(v)
|
||
End If
|
||
Return -1
|
||
End Function
|
||
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
|
||
Dim intag As Integer = ToolStripLabel2.Tag
|
||
Select Case intag
|
||
Case 1
|
||
UploadHostFile()
|
||
Case 2
|
||
UploadDEvFile()
|
||
Case 3
|
||
UploadFirmwareFile()
|
||
Case > 3
|
||
MsgBox("发布失败,未设置设备有效固件")
|
||
|
||
End Select
|
||
QueryCount()
|
||
QueryData("tbl_devmode_firmware_info")
|
||
End Sub
|
||
'上传固件文件函数
|
||
Private Sub UploadFirmwareFile()
|
||
''弹出提示询问是否填写完设备有效固件
|
||
If MsgBox("是否填写完设备有效固件", MsgBoxStyle.YesNo, "提示") = MsgBoxResult.Yes Then
|
||
Dim loadFilePath As String = ToolStripLabel1.Tag
|
||
Dim hostFilePath As String = $"\Data\Firmware\{ToolStripLabel2.Text}" '485Model \Data\Firmware\
|
||
'判断上传者是否为空
|
||
If String.IsNullOrEmpty(TextBox1.Text) Then
|
||
MsgBox("请填写上传者")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(TextBox2.Text) Then
|
||
MsgBox("备注不能为空!请填写备注!")
|
||
Return
|
||
End If
|
||
'判断文件是否已在服务器
|
||
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
|
||
MsgBox($"服务器已存在文件<{ToolStripLabel2.Text}>")
|
||
Return
|
||
End If
|
||
|
||
Try
|
||
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, loadFilePath) Then
|
||
'遍历表格
|
||
' Dim li As List(Of String) = New List(Of String)()
|
||
Dim rowstr As String = ""
|
||
Dim UserName = TextBox1.Text.Trim
|
||
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
|
||
Dim FirmwareEnable As Integer = 0
|
||
Dim HostVersion, FirmwareVersion, DevVersion As String
|
||
Dim HostName, FirmwareName, DevName As String
|
||
Dim md5 As String = GetStringMd5(loadFilePath)
|
||
Dim colNames As New StringBuilder
|
||
Dim buf As String() = ToolStripLabel2.Text.Split("_")
|
||
Dim mac As String = GetMACaddress()
|
||
Dim filepazth = $"\Data\Firmware\"
|
||
filepazth = filepazth.Replace("\", "\\")
|
||
For i As Integer = 1 To Grid1.Rows - 1
|
||
|
||
HostVersion = Grid1.Cell(i, 1).Text
|
||
HostName = Grid1.Cell(i, 2).Text
|
||
FirmwareVersion = Grid1.Cell(i, 3).Text
|
||
FirmwareName = Grid1.Cell(i, 4).Text
|
||
DevVersion = Grid1.Cell(i, 5).Text
|
||
DevName = Grid1.Cell(i, 6).Text
|
||
If Grid1.Cell(i, 7).Text.Equals("true") Or Grid1.Cell(i, 7).Text.Equals("1") Then
|
||
FirmwareEnable = 1
|
||
Else
|
||
FirmwareEnable = 0
|
||
End If
|
||
|
||
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_devmode_firmware_info` (`UserName`,`UpTime`,`FirmwareEnable`,`HostVersion`,`HostName`,`FirmwareVersion`,`FirmwareName`,`DevName`,`DevVersion`) VALUES ('{UserName}','{UpTime}',{FirmwareEnable},{HostVersion},'{HostName}',{FirmwareVersion},'{FirmwareName}','{DevName}',{DevVersion} );{vbCrLf}"
|
||
'li.Add(rowstr)
|
||
colNames.Append(rowstr)
|
||
Next
|
||
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_firmware_upload_logs` (`DateTime`,`AppType`,`FilePath`,`FileName`,`Ver`,`MD5Val`,`Handler`,`Remark`,`PC_MAC`,`PC_NAME`,`IsValid`,`Luncher_Ver`,`HOTEL_ID`,`ROOM_TYPE_ID`) VALUES ('{UpTime}','{"App_Cfg"}','{filepazth}','{ToolStripLabel2.Text}','{FirmwareVersion}','{md5}','{UserName}','{TextBox2.Text.Trim}','{mac}','{System.Environment.UserName}',1,'C1_L4',0,0)"
|
||
colNames.Append(rowstr)
|
||
|
||
Add_room_type_circuit_powers(colNames.ToString)
|
||
MsgBox("上传成功")
|
||
|
||
Else
|
||
MsgBox("文件上传失败!")
|
||
Return
|
||
End If
|
||
Catch ex As Exception
|
||
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
|
||
End Try
|
||
|
||
End If
|
||
|
||
End Sub
|
||
|
||
|
||
''上传主机文件函数
|
||
Private Sub UploadHostFile()
|
||
''弹出提示询问是否填写完设备有效固件
|
||
If MsgBox("是否填写完设备有效固件", MsgBoxStyle.YesNo, "提示") = MsgBoxResult.Yes Then
|
||
Dim loadFilePath As String = ToolStripLabel1.Tag
|
||
Dim hostFilePath As String = $"\Data\Model\RCUModel\{ToolStripLabel2.Text}" '485Model \Data\Firmware\
|
||
'判断上传者是否为空
|
||
If String.IsNullOrEmpty(TextBox1.Text) Then
|
||
MsgBox("请填写上传者")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(TextBox2.Text) Then
|
||
MsgBox("备注不能为空!请填写备注!")
|
||
Return
|
||
End If
|
||
'判断文件是否已在服务器
|
||
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
|
||
MsgBox($"服务器已存在文件<{ToolStripLabel2.Text}>")
|
||
Return
|
||
End If
|
||
Try
|
||
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, loadFilePath) Then
|
||
'遍历表格
|
||
' Dim li As List(Of String) = New List(Of String)()
|
||
Dim rowstr As String = ""
|
||
Dim UserName = TextBox1.Text.Trim
|
||
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
|
||
Dim FirmwareEnable As Integer = 0
|
||
Dim HostVersion, FirmwareVersion, DevVersion As String
|
||
Dim HostName, FirmwareName, DevName As String
|
||
Dim md5 As String = GetStringMd5(loadFilePath)
|
||
Dim colNames As New StringBuilder
|
||
For i As Integer = 1 To Grid1.Rows - 1
|
||
|
||
HostVersion = Grid1.Cell(i, 1).Text
|
||
HostName = Grid1.Cell(i, 2).Text
|
||
FirmwareVersion = Grid1.Cell(i, 3).Text
|
||
FirmwareName = Grid1.Cell(i, 4).Text
|
||
DevVersion = Grid1.Cell(i, 5).Text
|
||
DevName = Grid1.Cell(i, 6).Text
|
||
If Grid1.Cell(i, 7).Text.Equals("true") Or Grid1.Cell(i, 7).Text.Equals("1") Then
|
||
FirmwareEnable = 1
|
||
Else
|
||
FirmwareEnable = 0
|
||
End If
|
||
|
||
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_devmode_firmware_info` (`UserName`,`UpTime`,`FirmwareEnable`,`HostVersion`,`HostName`,`FirmwareVersion`,`FirmwareName`,`DevName`,`DevVersion`) VALUES ('{UserName}','{UpTime}',{FirmwareEnable},{HostVersion},'{HostName}',{FirmwareVersion},'{FirmwareName}','{DevName}',{DevVersion} );{vbCrLf}"
|
||
'li.Add(rowstr)
|
||
colNames.Append(rowstr)
|
||
Next
|
||
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data` (`Available`,`Directory`,`XML_FileName`,`UploadDateTime`,`Author`,`XLM_MD5`,`Remark`,`Brand`,`ModelNo`,`ModelName`,`Description`,`Image`,`DAT_FileName`,`Version`,`DAT_MD5`,`PartNumber`) VALUES (1,'{"\Data\Model\RCUModel".Replace("\", "\\")}','{ToolStripLabel2.Text}','{UpTime}','{UserName}','{md5}','{TextBox2.Text.Trim}','','','','','','','','','');"
|
||
|
||
colNames.Append(rowstr)
|
||
|
||
Add_room_type_circuit_powers(colNames.ToString)
|
||
MsgBox("上传成功")
|
||
|
||
Else
|
||
MsgBox("文件上传失败!")
|
||
Return
|
||
End If
|
||
Catch ex As Exception
|
||
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
|
||
End Try
|
||
|
||
End If
|
||
|
||
|
||
|
||
End Sub
|
||
|
||
|
||
Public Function GetMACaddress() As String
|
||
Dim netAddress As String = ""
|
||
Dim netName As String = ""
|
||
Dim searcher As New Management.ManagementObjectSearcher("select * from win32_NetworkAdapterConfiguration")
|
||
Dim moc2 As Management.ManagementObjectCollection = searcher.Get()
|
||
For Each mo As Management.ManagementObject In moc2
|
||
If CBool(mo("IPEnabled")) Then '判断是否是网卡
|
||
netName = mo.Properties("caption").Value.ToString '网卡名称
|
||
netAddress = mo.Properties("MACAddress").Value.ToString 'mac地址
|
||
End If
|
||
Next
|
||
Return netAddress
|
||
End Function
|
||
Private Sub UploadDEvFile()
|
||
''弹出提示询问是否填写完设备有效固件
|
||
If MsgBox("是否填写完设备有效固件", MsgBoxStyle.YesNo, "提示") = MsgBoxResult.Yes Then
|
||
Dim loadFilePath As String = ToolStripLabel1.Tag
|
||
Dim hostFilePath As String = $"\Data\Model\485Model\{ToolStripLabel2.Text}" '485Model \Data\Firmware\
|
||
'判断上传者是否为空
|
||
If String.IsNullOrEmpty(TextBox1.Text) Then
|
||
MsgBox("请填写上传者")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(TextBox2.Text) Then
|
||
MsgBox("备注不能为空!请填写备注!")
|
||
Return
|
||
End If
|
||
'判断文件是否已在服务器
|
||
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
|
||
MsgBox($"服务器已存在文件<{ToolStripLabel2.Text}>")
|
||
Return
|
||
End If
|
||
Try
|
||
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, loadFilePath) Then
|
||
'遍历表格
|
||
' Dim li As List(Of String) = New List(Of String)()
|
||
Dim rowstr As String = ""
|
||
Dim UserName = TextBox1.Text.Trim
|
||
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
|
||
Dim FirmwareEnable As Integer = 0
|
||
Dim HostVersion, FirmwareVersion, DevVersion As String
|
||
Dim HostName, FirmwareName, DevName As String
|
||
Dim md5 As String = GetStringMd5(loadFilePath)
|
||
Dim colNames As New StringBuilder
|
||
For i As Integer = 1 To Grid1.Rows - 1
|
||
|
||
HostVersion = Grid1.Cell(i, 1).Text
|
||
HostName = Grid1.Cell(i, 2).Text
|
||
FirmwareVersion = Grid1.Cell(i, 3).Text
|
||
FirmwareName = Grid1.Cell(i, 4).Text
|
||
DevVersion = Grid1.Cell(i, 5).Text
|
||
DevName = Grid1.Cell(i, 6).Text
|
||
If Grid1.Cell(i, 7).Text.Equals("true") Or Grid1.Cell(i, 7).Text.Equals("1") Then
|
||
FirmwareEnable = 1
|
||
Else
|
||
FirmwareEnable = 0
|
||
End If
|
||
|
||
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_devmode_firmware_info` (`UserName`,`UpTime`,`FirmwareEnable`,`HostVersion`,`HostName`,`FirmwareVersion`,`FirmwareName`,`DevName`,`DevVersion`) VALUES ('{UserName}','{UpTime}',{FirmwareEnable},{HostVersion},'{HostName}',{FirmwareVersion},'{FirmwareName}','{DevName}',{DevVersion} );{vbCrLf}"
|
||
'li.Add(rowstr)
|
||
colNames.Append(rowstr)
|
||
Next
|
||
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data` (`Available`,`Directory`,`XML_FileName`,`UploadDateTime`,`Author`,`XLM_MD5`,`Remark`,`Brand`,`ModelNo`,`ModelName`,`Description`,`Image`,`DAT_FileName`,`Version`,`DAT_MD5`,`PartNumber`) VALUES (1,'{"\Data\Model\485Model".Replace("\", "\\")}','{ToolStripLabel2.Text}','{UpTime}','{UserName}','{md5}','{TextBox2.Text.Trim}','','','','','','','','','');"
|
||
|
||
colNames.Append(rowstr)
|
||
|
||
Add_room_type_circuit_powers(colNames.ToString)
|
||
MsgBox("上传成功")
|
||
|
||
Else
|
||
MsgBox("文件上传失败!")
|
||
Return
|
||
End If
|
||
Catch ex As Exception
|
||
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
|
||
End Try
|
||
|
||
End If
|
||
|
||
|
||
|
||
End Sub
|
||
|
||
Public Function GetStringMd5(filePath As String) As String
|
||
Dim dataFile() As Byte = File.ReadAllBytes(filePath)
|
||
Dim databuff As Byte() = Security.Cryptography.MD5.Create().ComputeHash(dataFile)
|
||
Dim MD5str As String = BitConverter.ToString(databuff)
|
||
' Console.WriteLine($"md5-1:{MD5str}")
|
||
Return MD5str.Replace("-", "").ToUpper
|
||
End Function
|
||
Public Function Add_room_type_circuit_powers(insertClunm As String) As Boolean
|
||
If String.IsNullOrEmpty(insertClunm) Then Return False
|
||
Dim dt As DataTable
|
||
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||
db.Open()
|
||
Try
|
||
db.BeginTransaction()
|
||
dt = db.ExecuteDataTable(insertClunm)
|
||
db.CommitTransaction()
|
||
|
||
Catch ex As Exception
|
||
db.RollbackTransaction()
|
||
db.Close()
|
||
Return False
|
||
End Try
|
||
|
||
|
||
|
||
db.Close()
|
||
End Using
|
||
Return True
|
||
End Function
|
||
|
||
Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click
|
||
Dim xmlFilePath As String = SelectXmlFile()
|
||
If String.IsNullOrEmpty(xmlFilePath) Then
|
||
MsgBox("请选择正确的xml文件")
|
||
Return
|
||
End If
|
||
|
||
If String.IsNullOrEmpty(TextBox1.Text) Then
|
||
MsgBox("请填写上传者")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(TextBox2.Text) Then
|
||
MsgBox("备注不能为空!请填写备注!")
|
||
Return
|
||
End If
|
||
Dim strValue As String = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
|
||
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
|
||
Dim md5 As String = GetStringMd5(xmlFilePath)
|
||
Dim UserName = TextBox1.Text.Trim
|
||
Dim colNames As New StringBuilder
|
||
Dim hostFilePath As String = $"\Data\Model\BaseModel\{strValue}"
|
||
'判断文件是否已在服务器
|
||
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
|
||
MsgBox($"服务器已存在文件<{strValue}>")
|
||
Return
|
||
End If
|
||
|
||
Try
|
||
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, xmlFilePath) Then
|
||
Dim rowstr As String = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data` (`Available`,`Directory`,`XML_FileName`,`UploadDateTime`,`Author`,`XLM_MD5`,`Remark`,`Brand`,`ModelNo`,`ModelName`,`Description`,`Image`,`DAT_FileName`,`Version`,`DAT_MD5`,`PartNumber`) VALUES (1,'{"\Data\Model\BaseModel".Replace("\", "\\")}','{strValue}','{UpTime}','{UserName}','{md5}','{TextBox2.Text.Trim}','','','','','','','','','');"
|
||
|
||
colNames.Append(rowstr)
|
||
|
||
Add_room_type_circuit_powers(colNames.ToString)
|
||
MsgBox("上传成功")
|
||
End If
|
||
Catch ex As Exception
|
||
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
|
||
End Try
|
||
|
||
|
||
End Sub
|
||
|
||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button9.Click, Button5.Click, Button4.Click
|
||
QueryCount()
|
||
QueryData("tbl_devmode_firmware_info")
|
||
|
||
End Sub
|
||
|
||
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button6.Click, Button3.Click, Button10.Click
|
||
QueryData2("tbl_model_file_data")
|
||
End Sub
|
||
End Class
|