初始化项目
This commit is contained in:
397
BLV_Studio/FrmReleaseFirmware2.vb
Normal file
397
BLV_Studio/FrmReleaseFirmware2.vb
Normal file
@@ -0,0 +1,397 @@
|
||||
Imports System.IO
|
||||
Imports System.Security.Cryptography
|
||||
|
||||
Public Class FrmReleaseFirmware2
|
||||
Public FileName As String
|
||||
Public SafeFileName As String
|
||||
Public FileNameV4 As String
|
||||
Public SafeFileNameV4 As String
|
||||
Public InsertFirmwareV4 As New Dictionary(Of String, String)
|
||||
Public InsertFirmware As New Dictionary(Of String, String)
|
||||
Private Sub FrmReleaseFirmware2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
SetAPP_FOR_Codev(False)
|
||||
'SetLauncher_cbointem(Launcher_cbo, "tbl_luncher_list", "Luncher_Name")
|
||||
'SetLauncher_cbointem(Launcher_cbo, "tbl_luncher_list", "Luncher_Name")
|
||||
End Sub
|
||||
|
||||
|
||||
Public Sub SetAPP_FOR_Codev(flag As Boolean)
|
||||
Label6.Enabled = flag
|
||||
hotel_chk.Enabled = flag
|
||||
Roon_chk.Enabled = flag
|
||||
ApplicableModels_cbo.Enabled = flag
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
Public Function GetfilePathtext(filePathTextBox As TextBox, filelv As String) As String
|
||||
Dim openFileDialog As New OpenFileDialog
|
||||
openFileDialog.InitialDirectory = Application.StartupPath
|
||||
openFileDialog.RestoreDirectory = True
|
||||
openFileDialog.Title = "选择上传固件"
|
||||
openFileDialog.Filter = $"配置文件(*.hex)|*.hex"
|
||||
If openFileDialog.ShowDialog() = DialogResult.OK Then
|
||||
|
||||
If CuttingFilePath(openFileDialog.SafeFileName, filelv) Then
|
||||
filePathTextBox.Text = openFileDialog.FileName
|
||||
Else
|
||||
filePathTextBox.Text = ""
|
||||
End If
|
||||
Return openFileDialog.SafeFileName
|
||||
End If
|
||||
Return ""
|
||||
|
||||
End Function
|
||||
|
||||
Public Function CuttingFilePath(filepath As String, filelv As String) As Boolean
|
||||
|
||||
|
||||
If Not IsNothing(Firmware_cbo.SelectedItem) Then
|
||||
Dim filename As String = FileNamingFormat(filepath, Firmware_cbo.SelectedItem.ToString, filelv)
|
||||
Dim buff() As String
|
||||
If String.IsNullOrEmpty(filename) Then
|
||||
Roon_chk.Tag = ""
|
||||
hotel_chk.Tag = ""
|
||||
Roon_chk.Text = "房型:"
|
||||
hotel_chk.Text = "酒店:"
|
||||
MsgBox("文件格式不匹配")
|
||||
Return False
|
||||
Else
|
||||
buff = filename.Split("_")
|
||||
FirmwareVer_txt.Text = buff(3)
|
||||
If Firmware_cbo.SelectedItem.ToString.Equals("Hex_Code") Then
|
||||
Gethotleandroon(buff(5))
|
||||
End If
|
||||
Return True
|
||||
End If
|
||||
|
||||
End If
|
||||
Return False
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Public Function FileNamingFormat(filename As String, format As String, filelv As String) As String
|
||||
|
||||
Dim buff() As String = filename.Split(".")
|
||||
|
||||
If buff.Length = 2 Then
|
||||
If buff(1).ToLower.Equals("hex") Then
|
||||
Dim buff1() As String = buff(0).Split("_")
|
||||
If format.Equals("Hex_Code") Then '2022=11-13 czh 适配C1机型主机(已询问符合固件命名规则)
|
||||
If buff1.Length = 6 AndAlso buff1(1).ToLower.Equals("fw") AndAlso buff1(0).ToLower.Contains("c") Then 'AndAlso buff1(0).ToLower.Equals("c1f")
|
||||
If buff1(2).ToLower.Equals(filelv.ToLower) Then
|
||||
If IsNumeric(StrToHex(buff1(3).ToString)) AndAlso IsNumeric(buff1(4)) AndAlso IsNumeric(buff1(5)) Then
|
||||
Return buff(0)
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
ElseIf format.Equals("App_Cfg") Then
|
||||
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(filelv.ToLower) Then
|
||||
|
||||
If IsNumeric(StrToHex(buff1(3).ToString)) AndAlso IsNumeric(buff1(4)) Then
|
||||
Return buff(0)
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
Else
|
||||
Return ""
|
||||
End If
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Private Function StrToHex(pbSrc As String) As Integer
|
||||
Dim pBufDest(1) As Byte
|
||||
Dim h1 As Byte
|
||||
Dim h2 As Byte
|
||||
Dim s1 As Byte
|
||||
Dim s2 As Byte
|
||||
|
||||
Dim t1 As Integer
|
||||
Dim T2 As Integer
|
||||
Dim i As UInt16
|
||||
If Not pbSrc.Length = 2 Then Return -1
|
||||
|
||||
|
||||
|
||||
|
||||
h1 = pbSrc.Chars(0).ToString.ToLower
|
||||
h2 = Asc(pbSrc.Chars(1).ToString.ToLower)
|
||||
|
||||
t1 = toupper(h1)
|
||||
|
||||
T2 = toupper(h2)
|
||||
|
||||
If t1 = -1 AndAlso T2 = -1 Then Return -1
|
||||
|
||||
|
||||
|
||||
Return t1 * 16 + T2
|
||||
End Function
|
||||
Private Function toupper(val As Byte) As Integer
|
||||
If val < 0 OrElse val > 9 Then
|
||||
If val < Asc("a") OrElse val > Asc("f") Then
|
||||
Return -1
|
||||
Else
|
||||
Return val - Asc("a") + 10
|
||||
End If
|
||||
Else
|
||||
Return val
|
||||
End If
|
||||
End Function
|
||||
Public Sub Gethotleandroon(hotleid As String)
|
||||
Roon_chk.Tag = ""
|
||||
hotel_chk.Tag = ""
|
||||
Roon_chk.Text = "房型:"
|
||||
hotel_chk.Text = "酒店:"
|
||||
Dim sqlstr As String = $"SELECT a.ROOM_TYPE_NAME,b.IDOLD,b.HOTEL_NAME_CN FROM tbl_room_type_list a left JOIN tbl_hotel_basic_info b on b.IDOLD = a.HOTEL_OLD_ID where a.ROOM_TYPE_OLD_ID='{hotleid}';"
|
||||
Dim udt As DataTable
|
||||
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, FrmMain.DbConnString)
|
||||
db.Open()
|
||||
|
||||
udt = db.ExecuteDataTable(sqlstr)
|
||||
|
||||
db.Close()
|
||||
End Using
|
||||
If IsNothing(udt) Then
|
||||
Return
|
||||
Else
|
||||
For Each dtrow As DataRow In udt.Rows
|
||||
For i As Integer = 0 To udt.Columns.Count - 1
|
||||
If i = 0 Then
|
||||
Roon_chk.Text = "房型:" & dtrow.Item(i).ToString
|
||||
Roon_chk.Tag = hotleid
|
||||
End If
|
||||
If i = 2 Then
|
||||
hotel_chk.Text = "酒店:" & dtrow.Item(i).ToString
|
||||
hotel_chk.Tag = dtrow.Item(1).ToString
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub Firmware_cbo_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles Firmware_cbo.SelectionChangeCommitted
|
||||
If Firmware_cbo.SelectedItem.Equals("Hex_Code") Then
|
||||
SetAPP_FOR_Codev(True)
|
||||
SetLauncher_cbointem(ApplicableModels_cbo, "tbl_rcu_model_list", "RCU_Model_Name")
|
||||
Else
|
||||
SetAPP_FOR_Codev(False)
|
||||
Roon_chk.Tag = ""
|
||||
hotel_chk.Tag = ""
|
||||
Roon_chk.Text = "房型:"
|
||||
hotel_chk.Text = "酒店:"
|
||||
End If
|
||||
End Sub
|
||||
Public Function SetLauncher_cbointem(cbo As ComboBox, tabname As String, clunm As String, Optional col As String = "", Optional hotel As Integer = 0) As Dictionary(Of String, String)
|
||||
cbo.Items.Clear()
|
||||
Dim udt As DataTable
|
||||
Dim dickey As String = ""
|
||||
Dim dicval As String = ""
|
||||
Dim dic As New Dictionary(Of String, String)
|
||||
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, FrmMain.DbConnString)
|
||||
db.Open()
|
||||
If hotel <> 0 Then
|
||||
udt = db.ExecuteDataTable(db.CmdHelper.SearchAll(tabname, $"`HOTEL_OLD_ID`='{hotel}'"))
|
||||
Else
|
||||
udt = db.ExecuteDataTable(db.CmdHelper.SearchAll(tabname))
|
||||
End If
|
||||
|
||||
db.Close()
|
||||
End Using
|
||||
|
||||
If IsNothing(udt) Then
|
||||
Return Nothing
|
||||
Else
|
||||
For Each dtrow As DataRow In udt.Rows
|
||||
|
||||
For i As Integer = 0 To udt.Columns.Count - 1
|
||||
|
||||
If udt.Columns(i).ColumnName.Equals(clunm) Then
|
||||
|
||||
dickey = dtrow.Item(i).ToString
|
||||
ElseIf udt.Columns(i).ColumnName.Equals(col) Then
|
||||
dicval = dtrow.Item(i).ToString
|
||||
Else
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Next
|
||||
If String.IsNullOrWhiteSpace(dicval) Then
|
||||
dickey = dickey
|
||||
Else
|
||||
dickey = dicval & "_" & dickey
|
||||
End If
|
||||
|
||||
If dic.ContainsKey(dickey) Then
|
||||
Continue For
|
||||
End If
|
||||
dic.Add(dickey, dicval)
|
||||
|
||||
Next
|
||||
cbo.Items.AddRange(dic.Keys.ToArray)
|
||||
End If
|
||||
Return dic
|
||||
End Function
|
||||
|
||||
Private Sub SelectFile_btn_Click(sender As Object, e As EventArgs) Handles SelectFile_btn.Click
|
||||
SafeFileName = GetfilePathtext(FirmwarePath_txt, "L2")
|
||||
FileName = FirmwarePath_txt.Text
|
||||
End Sub
|
||||
|
||||
Private Sub SelectFileV4_btn_Click(sender As Object, e As EventArgs) Handles SelectFileV4_btn.Click
|
||||
SafeFileNameV4 = GetfilePathtext(FirmwarePathV4_txt, "L4")
|
||||
FileNameV4 = FirmwarePathV4_txt.Text
|
||||
End Sub
|
||||
Public Function GetStringMd5(filePath As String) As String
|
||||
Dim dataFile() As Byte = File.ReadAllBytes(filePath)
|
||||
Dim databuff As Byte() = MD5.Create().ComputeHash(dataFile)
|
||||
Dim MD5str As String = BitConverter.ToString(databuff)
|
||||
' Console.WriteLine($"md5-1:{MD5str}")
|
||||
Return MD5str.Replace("-", "")
|
||||
End Function
|
||||
|
||||
Private Sub Ok_btn_Click(sender As Object, e As EventArgs) Handles Ok_btn.Click
|
||||
InsertFirmware.Clear()
|
||||
If Not Firmware_cbo.Text.Length > 0 Then
|
||||
MsgBox("未选择上传固件类型")
|
||||
Return
|
||||
End If
|
||||
|
||||
If Not FirmwarePath_txt.Text.Length > 0 AndAlso Not FirmwarePathV4_txt.Text.Length > 0 Then
|
||||
MsgBox("未选择上传LV2固件")
|
||||
Return
|
||||
End If
|
||||
|
||||
If Not FirmwareVer_txt.Text.Length > 0 Then
|
||||
MsgBox("未添加上传固件版本")
|
||||
Return
|
||||
End If
|
||||
|
||||
'If Not Launcher_cbo.Text.Length > 0 Then
|
||||
' MsgBox("上传固件Launcher")
|
||||
' Return
|
||||
'End If
|
||||
If Firmware_cbo.SelectedItem.Equals("Hex_Code") Then
|
||||
If Not ApplicableModels_cbo.Text.Length > 0 Then
|
||||
MsgBox("未添加固件适用机型")
|
||||
Return
|
||||
Else
|
||||
InsertFirmware.Add("AppForModel", ApplicableModels_cbo.Text)
|
||||
End If
|
||||
Dim tag As String = hotel_chk.Tag
|
||||
If hotel_chk.Checked AndAlso tag.Length > 0 Then
|
||||
|
||||
InsertFirmware.Add("HOTEL_ID", hotel_chk.Tag)
|
||||
Else
|
||||
MsgBox("未确认酒店")
|
||||
Return
|
||||
End If
|
||||
tag = Roon_chk.Tag
|
||||
If Roon_chk.Checked AndAlso tag.Length > 0 Then
|
||||
|
||||
InsertFirmware.Add("ROOM_TYPE_ID", Roon_chk.Tag)
|
||||
Else
|
||||
|
||||
MsgBox("未确认房型")
|
||||
Return
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If Not Remark_txt.Text.Length > 0 Then
|
||||
MsgBox("未添加备注")
|
||||
Return
|
||||
End If
|
||||
Dim filepath As String = FirmwarePath_txt.Text
|
||||
Dim filepathV4 As String = FirmwarePathV4_txt.Text
|
||||
Dim md5 As String = ""
|
||||
Dim v4md5 As String = ""
|
||||
|
||||
|
||||
|
||||
|
||||
InsertFirmware.Add("AppType", Firmware_cbo.Text)
|
||||
If Not String.IsNullOrEmpty(FileName) Then
|
||||
InsertFirmware.Add("FileName", SafeFileName)
|
||||
md5 = GetStringMd5(filepath)
|
||||
End If
|
||||
|
||||
InsertFirmware.Add("MD5Val", md5)
|
||||
InsertFirmware.Add("Ver", FirmwareVer_txt.Text)
|
||||
InsertFirmware.Add("Luncher_Ver", "C1_L2")
|
||||
InsertFirmware.Add("Remark", Remark_txt.Text)
|
||||
InsertFirmware.Add("DateTime", Now.ToString("yyyy-MM-dd HH:mm:ss.fff"))
|
||||
InsertFirmware.Add("FilePath", "\Data\Firmware\".Replace("\", "\\"))
|
||||
InsertFirmware.Add("IsValid", "1")
|
||||
|
||||
For Each index In InsertFirmware
|
||||
InsertFirmwareV4.Add(index.Key, index.Value)
|
||||
Next
|
||||
|
||||
If InsertFirmwareV4.ContainsKey("FileName") Then
|
||||
If Not String.IsNullOrEmpty(filepathV4) Then
|
||||
InsertFirmwareV4.Item("FileName") = SafeFileNameV4
|
||||
v4md5 = GetStringMd5(filepathV4)
|
||||
Else
|
||||
InsertFirmwareV4.Remove("FileName")
|
||||
End If
|
||||
Else
|
||||
If Not String.IsNullOrEmpty(filepathV4) Then
|
||||
InsertFirmwareV4.Add("FileName", SafeFileNameV4)
|
||||
v4md5 = GetStringMd5(filepathV4)
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
InsertFirmwareV4.Item("MD5Val") = v4md5
|
||||
InsertFirmwareV4.Item("Luncher_Ver") = "C1_L4"
|
||||
'InsertFirmwarev4.Item("Ver")= FirmwareV4_txt.Text
|
||||
|
||||
Me.DialogResult = System.Windows.Forms.DialogResult.OK
|
||||
|
||||
Return
|
||||
End Sub
|
||||
|
||||
Private Sub No_btn_Click(sender As Object, e As EventArgs) Handles No_btn.Click
|
||||
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||
Return
|
||||
End Sub
|
||||
|
||||
Private Sub Firmware_cbo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Firmware_cbo.SelectedIndexChanged
|
||||
FirmwarePath_txt.Text = ""
|
||||
FirmwarePathV4_txt.Text = ""
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user