增加对 设备 无线锁_杨格无线锁_(RS485-主动) 的支持
This commit is contained in:
@@ -347,7 +347,7 @@ Public Class TableInteraction
|
||||
Dim buf() As String = cbuf(cbuf.Length - 1).Split("*")
|
||||
Dim result As String = String.Empty
|
||||
Select Case nodename
|
||||
Case "RKEY"
|
||||
Case "RKEY","lock"
|
||||
result = cellstr
|
||||
Case "CLED_FRESHAIR"
|
||||
result = cellstr
|
||||
@@ -820,8 +820,8 @@ Public Class TableInteraction
|
||||
g_DO = ModuleFre
|
||||
ElseIf ModuleFre.Name.Equals("MUSIC") AndAlso ModuleFre.PROTOCOL_VER.Equals("1") Then
|
||||
g_MUSIC = ModuleFre
|
||||
ElseIf ModuleFre.Name.Equals("Lock") Then
|
||||
g_Lock = ModuleFre
|
||||
'ElseIf ModuleFre.Name.Equals("Lock") Then
|
||||
' g_Lock = ModuleFre
|
||||
ElseIf ModuleFre.Name.Equals("485MUSIC") Then
|
||||
g_485MUSIC = ModuleFre
|
||||
ElseIf ModuleFre.Name.Equals("RS485_Curtain") Then
|
||||
@@ -1164,6 +1164,7 @@ Public Class TableInteraction
|
||||
ElseIf ModuleFre.Nodes(i).DefaultClass.Equals("RKEY") Then
|
||||
gTableRowTag.Set_G_Attributes(ModuleFre.Nodes(i).DefaultClass, BasicClasses)
|
||||
SceneAttri = "4,12,1152921504606847008"
|
||||
|
||||
Else
|
||||
gTableRowTag.Set_G_Attributes(ModuleFre.Nodes(i).DefaultClass, BasicClasses)
|
||||
SceneAttri = "1,1,1152921504606846976"
|
||||
@@ -1852,6 +1853,7 @@ Public Class TableInteraction
|
||||
g_devname.devname.ToUpper.Equals("Scene_Restore".ToUpper) OrElse
|
||||
g_devname.devname.ToUpper.Equals("Dev_VirtualGlobalSet".ToUpper) OrElse
|
||||
g_devname.devname.ToUpper.Equals("HOPO_Curtain".ToUpper) OrElse
|
||||
g_devname.devname.ToUpper.Equals("lock".ToUpper) OrElse
|
||||
g_devname.devname.ToUpper.Equals("MUSIC".ToUpper) Then
|
||||
If ActionParameter.CheckDataIsOk(g_devname.devname.ToUpper, highpric, BasicClasses) Then
|
||||
_grd.Cell(e.Row, e.Col).BackColor = Color.White
|
||||
@@ -2056,7 +2058,7 @@ Public Class TableInteraction
|
||||
Dim typeInten() As String = {"RELAY", "RS485_Curtain".ToUpper, "LIGHT", "CURTAIN", "DRY_CURTAIN", "DIMMING", "TEMP", "DO",
|
||||
"INFRARED_FORWARD", "CLED_FRESHAIR", "CLEDFLOORHEAT", "485FreshAir".ToUpper, "485FloorHeat".ToUpper, "PB_LINE_CONTROL",
|
||||
"PB_LED_DEVICE", "PB_STRIP_DEVICE", "PB_RELAY_DEVICE", "DRY_NoCard".ToUpper, "Dev_ColorTemp".ToUpper, "RKEY".ToUpper,"Dev_Energy_Monitor".ToUpper,
|
||||
"BLEMUSIC".ToUpper, "Carbon_Device".ToUpper, "HOPO_Curtain".ToUpper, "Scene_Restore".ToUpper,"Dev_VirtualGlobalSet".ToUpper}
|
||||
"BLEMUSIC".ToUpper, "Carbon_Device".ToUpper, "HOPO_Curtain".ToUpper, "Scene_Restore".ToUpper,"Dev_VirtualGlobalSet".ToUpper,"LOCK".ToUpper}
|
||||
For Each index In typeInten
|
||||
Dim li As New List(Of String)
|
||||
|
||||
@@ -2087,7 +2089,7 @@ Public Class TableInteraction
|
||||
End Select
|
||||
If li.Count > 0 OrElse index.Equals("DRY_NoCard".ToUpper) OrElse index.Equals("HOPO_Curtain".ToUpper) OrElse index.Equals("Dev_ColorTemp".ToUpper) OrElse
|
||||
index.Equals("Carbon_Device".ToUpper) OrElse index.Equals("RKEY".ToUpper) OrElse index.Equals("BLEMUSIC".ToUpper) OrElse index.Equals("Scene_Restore".ToUpper)OrElse
|
||||
index.Equals("Dev_VirtualGlobalSet".ToUpper) OrElse index.Equals("Dev_Energy_Monitor".ToUpper) Then
|
||||
index.Equals("Dev_VirtualGlobalSet".ToUpper) OrElse index.Equals("Dev_Energy_Monitor".ToUpper)OrElse index.Equals("LOCK".ToUpper) Then
|
||||
li.Add("高级")
|
||||
End If
|
||||
dic.Add(index, li)
|
||||
@@ -3267,6 +3269,9 @@ Public Class TableInteraction
|
||||
Dim aliasbuf(31) As Byte
|
||||
'场景编号
|
||||
Dim sceneIndex As UShort = CUShort(rowtag.G_DicRow.Item(TableColNumber.SceneID))
|
||||
If sceneIndex = 23 Then
|
||||
Console.WriteLine($"FillDeviceObject 2597 ")
|
||||
End If
|
||||
Dim sceneNum() As Byte = BitConverter.GetBytes(sceneIndex)
|
||||
'30位保留字段
|
||||
Dim keepBuf(31) As Byte
|
||||
@@ -5514,7 +5519,7 @@ Public Class TableInteraction
|
||||
If (parstr.Count - 3) > 0 Then result(1) = parstr(3)
|
||||
li.Add(result)
|
||||
End If
|
||||
Case "RELAY", "PB_RELAY_DEVICE"
|
||||
Case "RELAY", "PB_RELAY_DEVICE","LOCK"
|
||||
If parstr.Length = 1 Then
|
||||
parCasre = parstr(0) '快速设置
|
||||
Select Case parCasre
|
||||
@@ -6791,7 +6796,7 @@ Public Class TableInteraction
|
||||
buf = {3, 2, 2, 0}
|
||||
Case "SLIDER"
|
||||
buf = {2, 2, 2, 0}
|
||||
Case "CARD","BLV_CARD" ‘250904 CZH 增加 BLV_CARD
|
||||
Case "CARD","BLV_CARD","LOCK" ‘250904 CZH 增加 BLV_CARD
|
||||
buf = {0, 1, 0, 0}
|
||||
Case "Virtual_Card"
|
||||
buf = {2, 0, 0, 0}
|
||||
@@ -7212,7 +7217,161 @@ ON DUPLICATE KEY UPDATE {updatastr};"
|
||||
|
||||
Return result
|
||||
End Function
|
||||
Public Sub UploadConfiguredDevicesList(HotelID As String, RoomTypeID As String,DbConnString As String)
|
||||
|
||||
'删除配置表
|
||||
Dim sql As String = $"DELETE FROM tbl_configured_devlist WHERE HotelID = '{HotelID}' AND RoomTypeID = '{RoomTypeID}'"
|
||||
|
||||
Add_room_type_circuit_powers(DbConnString,sql)
|
||||
'遍历设备列表
|
||||
Dim dev As DeviceModel
|
||||
Dim typeindex As Integer = 0
|
||||
'获取酒店id和房型id
|
||||
Dim g_devname As CtabRange
|
||||
Dim dic As Dictionary(Of string, string) = New Dictionary(Of string, string)
|
||||
Dim insert As String = ""
|
||||
Dim devAddr As String = ""
|
||||
Dim Server() As String
|
||||
Dim devdatetype As Integer
|
||||
Dim devname As String()
|
||||
For i=0 To Dic_Devicemodel.Count-1
|
||||
dev = Dic_Devicemodel.Values(i)
|
||||
If dev.Desc.DevInterface.Equals("VirtualObject") Then Continue For
|
||||
If i=0 Then
|
||||
typeindex=0
|
||||
|
||||
g_devname = GetCoLDevNametabRange(dev.Name, TableRowNumber.Max,TableColNumber.DeviceName)
|
||||
For gr As Integer = g_devname.fr To g_devname.lr
|
||||
If _grd.Cell(gr,TableColNumber.KeyName).Text.Contains("红外") OrElse _grd.Cell(gr,TableColNumber.KeyName).Text.Contains("雷达")OrElse _grd.Cell(gr,TableColNumber.KeyName).Text.Contains("门磁") Then
|
||||
Server= _grd.Cell(gr,TableColNumber.ServerAttribute).Text.Trim.Split(",")
|
||||
If IsNothing(Server) OrElse Server.Count=0 OrElse string.IsNullOrEmpty(Server(0)) Then Continue For
|
||||
|
||||
devAddr =$"00400000{Server(0).ToString.Trim}"
|
||||
insert= INSERTtbl_configured_devlist(HotelID,RoomTypeID,_grd.Cell(gr,TableColNumber.KeyName).Text,devAddr)
|
||||
If dic.ContainsKey(devAddr) Then
|
||||
Else
|
||||
dic.Add(devAddr,insert)
|
||||
End If
|
||||
|
||||
Elseif _grd.Cell(gr,TableColNumber.KeyName).Text.Contains("插卡")
|
||||
Server= _grd.Cell(gr,TableColNumber.ServerAttribute).Text.Trim.Split(",")
|
||||
If IsNothing(Server) OrElse Server.Count=0 OrElse string.IsNullOrEmpty(Server(0)) Then Continue For
|
||||
devAddr =$"004000001"
|
||||
insert= INSERTtbl_configured_devlist(HotelID,RoomTypeID,_grd.Cell(gr,TableColNumber.KeyName).Text,devAddr)
|
||||
If dic.ContainsKey(devAddr) Then
|
||||
Else
|
||||
dic.Add(devAddr,insert)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
Else
|
||||
'取dev.Desc.Name 按照如下格式截取出设备地址
|
||||
' 485(轮询)1
|
||||
'设备地址:9
|
||||
'A9恒压调光_(RS485_轮询)
|
||||
Dim str As String = dev.Desc.Name
|
||||
Dim strbuf() As String = str.Split(vbLf)
|
||||
If strbuf.Count > 1 Then
|
||||
Dim strbuf1() As String = strbuf(1).Trim.Split(":")
|
||||
If strbuf1.Count > 1 Then
|
||||
typeindex = cint (strbuf1(1).Trim)
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
'遍历设备节点
|
||||
For Each node In dev.Nodes
|
||||
'判断节点类型DEV_TYPE_DATA是否为空
|
||||
If string.IsNullOrEmpty(node.DEV_TYPE_DATA) Then
|
||||
Continue For
|
||||
Else
|
||||
'将node.DEV_TYPE_DATA 转int
|
||||
devdatetype = cint(node.DEV_TYPE_DATA)
|
||||
devAddr= devdatetype.ToString().PadLeft(3, "0"c)
|
||||
devAddr=devAddr & typeindex.ToString().PadLeft(3, "0"c)
|
||||
devAddr=devAddr &"001"
|
||||
If i=0 Then
|
||||
insert= INSERTtbl_configured_devlist(HotelID,RoomTypeID,dev.Name.Replace(vbLf,"_")&"_主机",devAddr)
|
||||
Else
|
||||
devname=dev.Name.Split (vbLf)
|
||||
insert= INSERTtbl_configured_devlist(HotelID,RoomTypeID,devname(2),devAddr)
|
||||
End If
|
||||
|
||||
If dic.ContainsKey(devAddr) Then
|
||||
Else
|
||||
dic.Add(devAddr,insert)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
Next
|
||||
|
||||
''遍历dic集合 将数据插入字符串平接成事务插入语句
|
||||
insert=""
|
||||
For Each item In dic
|
||||
insert = insert & item.Value
|
||||
Next
|
||||
'执行插入语句
|
||||
Add_room_type_circuit_powers(DbConnString,insert)
|
||||
End Sub
|
||||
Public Function Add_room_type_circuit_powers(DbConnString As String, 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
|
||||
Public Function INSERTtbl_configured_devlist(HotelID As String, RoomTypeID As String,DevName As String,DevAddr As String) As String
|
||||
|
||||
|
||||
' 主机显示在线仅表示其与服务器通讯正常,不代表主机端口功能完好,端口异常时需按异常按钮填报主机功能故障信息。
|
||||
'开关显示在线仅表示其与主机通讯正常,不代表按键功能正常,按键异常时需按异常按钮填报开关功能故障信息。
|
||||
'人在传感器范围内时,显示在线为正常,显示不在线为异常,需填报异常信息。
|
||||
'开门能打开灯为正常,显示不在线为异常,需填报异常信息
|
||||
|
||||
Dim Process As String = "待定"
|
||||
If DevName.Contains("主机") Then
|
||||
Process = "主机显示在线仅表示其与服务器通讯正常,不代表主机端口功能完好,端口异常时需按异常按钮填报主机功能故障信息。"
|
||||
Else If DevName.Contains("雷达") OrElse DevName.Contains("红外") then
|
||||
Process = "人在传感器范围内时,显示在线为正常,显示不在线为异常,需填报异常信息。"
|
||||
Else If DevName.Contains("门磁") Then
|
||||
Process = "开门能打开灯为正常,显示不在线为异常,需填报异常信息。"
|
||||
Else
|
||||
Process = "开关显示在线仅表示其与主机通讯正常,不代表按键功能正常,按键异常时需按异常按钮填报开关功能故障信息。"
|
||||
End If
|
||||
|
||||
|
||||
Dim insert As String = $"INSERT INTO `blv_rcu_db`.`tbl_configured_devlist`
|
||||
(`UpdateTime`
|
||||
,`HotelID`
|
||||
,`RoomTypeID`
|
||||
,`Process`
|
||||
,`DevName`
|
||||
,`DevAddr`)
|
||||
VALUES
|
||||
( '{Now.ToString("yyyy-MM-dd HH:mm:ss")}'
|
||||
,{HotelID}
|
||||
,{RoomTypeID}
|
||||
,'{Process}'
|
||||
,'{DevName}'
|
||||
,'{DevAddr}');{vbLf}"
|
||||
return insert
|
||||
End Function
|
||||
|
||||
Public Function TestReportingScenario(_UserName As String, _HotleID As String, _RoomTypeID As String, filename As String, Version As String) As ReportingScenario
|
||||
Dim aaa As New ReportingScenario(_UserName, _HotleID, _RoomTypeID, filename, Version, _grd, Dic_Devicemodel, Dic_ActionConfiguration)
|
||||
|
||||
Reference in New Issue
Block a user