This is a handler I never finished, but it is functional to see the rooms and items returned (and you can expand on that). The key is using HAC.SSD to see what object types are supported. If you have intellisense setup, you can see the objects there.
This code is functional, but as you'll see below, I'm not doing anything with the data. I'm just outputting it to the debug window.
If you have any questions, fire away and I'll see what I can remember about it (haven't messed with this in a few years).
Public Sub DisplayPanelDownloadStatus(ByVal Phase As clsHAC.enuConfigPhase, ByVal ix As Integer, ByRef Cancel As Boolean)
If InvokeRequired Then
Invoke(New clsHAC.ConfigReadStatusDelegate(AddressOf DisplayPanelDownloadStatus), New Object() {Phase, ix, Cancel})
Else
Select Case Phase
Case clsHAC.enuConfigPhase.Names_AccessControlReader
Case clsHAC.enuConfigPhase.Names_Area
Case clsHAC.enuConfigPhase.Names_Button
Case clsHAC.enuConfigPhase.Names_Code
Case clsHAC.enuConfigPhase.Names_Tstat
Case clsHAC.enuConfigPhase.Names_Zone
Case clsHAC.enuConfigPhase.Names_Unit
Case clsHAC.enuConfigPhase.Names_Tstat
Case clsHAC.enuConfigPhase.Names_Message
Case clsHAC.enuConfigPhase.Names_UserSetting
Case clsHAC.enuConfigPhase.SetupData
End Select
' Display the status'
If (ix > 0) Then
' Update status bar panel text'
StatusBarPanel2.Text = String.Format("Reading {0} ({1})", Phase.ToString, ix)
Else
' Update status bar panel text'
StatusBarPanel2.Text = ("Reading " + Phase.ToString)
End If
If (Phase = clsHAC.enuConfigPhase.Done) Then
' Get room descriptions'
Dim rooms As clsSsRooms = DirectCast(HAC.SSD.Rooms, clsSsRooms)
For i As Integer = 1 To rooms.Count
Dim room As clsSsRoom = DirectCast(rooms(i), clsSsRoom)
Debug.WriteLine(String.Format("Room # & Name: {0} - {1}", Str(i), room.RoomName))
For x As Integer = 1 To room.Count
Dim roomItem As clsSsRoomItem = DirectCast(room(x), clsSsRoomItem)
Select Case roomItem.ItemType
Case enuSsRoomItemType.Button
Dim button As clsButton = HAC.Buttons(roomItem.IX)
Debug.WriteLine(String.Format("{0} contains {1}", room.RoomName, button.Name))
Exit Select
Case enuSsRoomItemType.Unit
Dim unit As clsUnit = HAC.Units(roomItem.IX)
Debug.WriteLine(String.Format("{0} contains {1}", room.RoomName, unit.Name))
Exit Select
Case Else
Exit Select
End Select
Next
Next
End If
End If
End Sub