@@ -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 )