This commit is contained in:
Yuri Staal 2025-03-13 14:42:07 +01:00
commit 434994fa1f
28 changed files with 8532 additions and 0 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

9
.cse Normal file
View file

@ -0,0 +1,9 @@
{
"_explorerStates": [
{
"_id": "MEP621_XPanel",
"_isOpen": true,
"_dateTime": "2025-03-13T09:08:32.8150000Z"
}
]
}

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
__TEMP

20
MEP621_XPanel.csln Normal file
View file

@ -0,0 +1,20 @@
{
"_fileMetadata": {
"_schema": "1.0.0.0",
"_createdByAppHost": "2.101.8.0",
"_created": "2025-03-13T10:08:32.384302+01:00",
"_lastModifiedByAppHost": "2.101.8.0",
"_minimumAppHost": "2.0.0",
"_modified": "2025-03-13T10:08:32.384271+01:00"
},
"_solution": {
"_name": "MEP621_XPanel",
"_projects": [
{
"_name": "MEP621_XPanel",
"_filename": "MEP621_XPanel/MEP621_XPanel.cuip",
"_datetime": "2025-03-13T09:08:32.137667Z"
}
]
}
}

BIN
MEP621_XPanel/.DS_Store vendored Normal file

Binary file not shown.

1404
MEP621_XPanel/Lab0.cuig Normal file

File diff suppressed because one or more lines are too long

949
MEP621_XPanel/Lab1.cuig Normal file

File diff suppressed because one or more lines are too long

1738
MEP621_XPanel/Lab2.cuig Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,13 @@
{
"FileMetadata": {
"_createdByProjectApp": "1.3701.9.0",
"_lastModifiedByProjectApp": "1.3701.9.0",
"_schema": "1.0.0.0",
"_createdByAppHost": "2.101.8.0",
"_created": "2025-03-13T10:08:32.149283+01:00",
"_lastModifiedByAppHost": "2.101.8.0",
"_minimumAppHost": "2.0.0",
"_modified": "2025-03-13T10:08:32.149128+01:00"
},
"HardButtons": []
}

View file

@ -0,0 +1,52 @@
{FileMetadata}
Schema = "1.0.0.0"
CreatedByAppHost = "2.101.8.0"
Created = 2025-03-13 10:08:32.295891+01:00
LastModifiedByAppHost = "2.101.8.0"
Modified = 2025-03-13 10:09:41.115029+01:00
CreatedByProjectApp = "1.3701.9.0"
LastModifiedByProjectApp = "1.3701.9.0"
MinimumProjectApp = "1.2600.1"
MinimumAppHost = "2.0.0"
{DeviceResolutionSource}
[
{
"ProjectId": "1de2647d-42ea-43c9-afea-1c63c52402a1",
"IsCustom": true,
"IsSelected": true,
"VisitedName": "Full HD",
"id": "Custom-L-ba34a430-7c66-4555-b2fa-3c4a1d368372-1920-1080",
"idName": "Full HD",
"resolutionId": "L-1920-1080",
"resolutionName": "Full HD",
"resolutionType": "custom",
"deviceSpecId": "Full HD",
"width": "1920px",
"height": "1080px",
"widthMedia": "1920px",
"heightMedia": "1080px",
"orientation": 1,
"supportedDevices": "",
"displayNameSuffix": "",
"componentKeys": [
"UiEditor"
],
"modes": [],
"IsMode": false
}
]
{ProjectAttributes}
[Attributes]
Name = "MEP621_XPanel"
ThemeId = "light-theme.css"
ThemePageColor = "#ffffff"
SdkId = "CH5:2.11.1.2"
ComponentKey = "UiEditor"
Id = "1de2647d-42ea-43c9-afea-1c63c52402a1"
DeviceResolutionIds = "Custom-L-ba34a430-7c66-4555-b2fa-3c4a1d368372-1920-1080"
ipId = "03"
ProjectSchemaVersion = "6"

575
MEP621_XPanel/Main.cuig Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,22 @@
{FileMetadata}
Schema = "1.0.0.0"
CreatedByAppHost = "2.101.8.0"
Created = 2025-03-13 10:56:15.264283+01:00
LastModifiedByAppHost = "2.101.8.0"
Modified = 2025-03-13 10:56:15.264262+01:00
CreatedByProjectApp = "1.3701.9.0"
LastModifiedByProjectApp = "1.3701.9.0"
MinimumProjectApp = ""
MinimumAppHost = "2.0.0"
{AssetAttributes}
[Attributes]
Id = "5faae61d-42cc-4fe4-9e6f-7812a4c8d98b"
Name = "Artwork_Masters25"
SourceUri = "Artwork_Masters25.jpg"
AspectRatio = "1.7769660507090674"
AssetSourceType = "File"
Username = ""
Password = ""

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 MiB

View file

@ -0,0 +1,22 @@
{FileMetadata}
Schema = "1.0.0.0"
CreatedByAppHost = "2.101.8.0"
Created = 2025-03-13 10:23:29.803496+01:00
LastModifiedByAppHost = "2.101.8.0"
Modified = 2025-03-13 10:23:29.80337+01:00
CreatedByProjectApp = "1.3701.9.0"
LastModifiedByProjectApp = "1.3701.9.0"
MinimumProjectApp = ""
MinimumAppHost = "2.0.0"
{AssetAttributes}
[Attributes]
Id = "48398299-e538-486c-bc01-f98c4e3ab459"
Name = "Background"
SourceUri = "Background.png"
AspectRatio = "1.7744916820702403"
AssetSourceType = "File"
Username = ""
Password = ""

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View file

@ -0,0 +1,22 @@
{FileMetadata}
Schema = "1.0.0.0"
CreatedByAppHost = "2.101.8.0"
Created = 2025-03-13 10:56:27.516127+01:00
LastModifiedByAppHost = "2.101.8.0"
Modified = 2025-03-13 10:56:27.51612+01:00
CreatedByProjectApp = "1.3701.9.0"
LastModifiedByProjectApp = "1.3701.9.0"
MinimumProjectApp = ""
MinimumAppHost = "2.0.0"
{AssetAttributes}
[Attributes]
Id = "d72f7bf3-fb1f-4e3a-8c01-1c687b78d58e"
Name = "masters_logo"
SourceUri = "masters_logo.png"
AspectRatio = "3.5128644939965694"
AssetSourceType = "File"
Username = ""
Password = ""

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

BIN
MEP621_XPanel/output/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,151 @@
{
"name": "MEP621_XPanel",
"timestamp": "2025-03-13T12:46:15.261768+00:00",
"version": "1.0.0.0",
"schema_version": 1,
"extra_value": "",
"signals": {
"states": {
"boolean": {
"1": {
"3": "Lab0.btnBack.Selected",
"4": "Lab0.btnDisplayPowerOff.Selected",
"5": "Lab0.btnDisplayPowerOn.Selected",
"6": "Lab0.btnSource1.Selected",
"7": "Lab0.btnSource2.Selected",
"8": "Lab0.btnSource3.Selected",
"9": "Lab0.btnSystemPowerOff.Selected",
"10": "Lab0.btnSystemPowerOn.Selected"
},
"2": {
"3": "Lab1.btnAlert.Selected",
"4": "Lab1.btnBack.Selected",
"5": "Lab1.btnOccupancy.Selected",
"6": "Lab1.btnOccupancyFb.Selected",
"7": "Lab1.btnVacancyFb.Selected"
},
"3": {
"3": "Lab2.btnBack.Selected",
"4": "Lab2.btnMaintenanceOff.Selected",
"5": "Lab2.btnMaintenanceOn.Selected",
"6": "Lab2.btnSystemCheck.Selected"
}
},
"numeric": {
"3": {
"9": "Lab2.btnCheck1.Mode",
"10": "Lab2.btnCheck2.Mode",
"11": "Lab2.btnCheck3.Mode",
"12": "Lab2.btnCheck4.Mode"
}
},
"string": {
"1": {
"1": "Lab0.txtRoomName.Indirect",
"2": "Lab0.txtSources.Indirect"
},
"2": {
"1": "Lab1.txtInputField.IndirectText",
"2": "Lab1.txtAlert.Indirect",
"3": "Lab1.txtRoomName.Indirect"
},
"3": {
"1": "Lab2.txtCheckStatus.Indirect",
"2": "Lab2.txtRoomName.Indirect",
"3": "Lab2.txtSystemCheck.Indirect"
}
}
},
"events": {
"boolean": {
"Lab0.btnBack.Press": {
"joinId": 3,
"smartObjectId": 1
},
"Lab0.btnDisplayPowerOff.Press": {
"joinId": 4,
"smartObjectId": 1
},
"Lab0.btnDisplayPowerOn.Press": {
"joinId": 5,
"smartObjectId": 1
},
"Lab0.btnSource1.Press": {
"joinId": 6,
"smartObjectId": 1
},
"Lab0.btnSource2.Press": {
"joinId": 7,
"smartObjectId": 1
},
"Lab0.btnSource3.Press": {
"joinId": 8,
"smartObjectId": 1
},
"Lab0.btnSystemPowerOff.Press": {
"joinId": 9,
"smartObjectId": 1
},
"Lab0.btnSystemPowerOn.Press": {
"joinId": 10,
"smartObjectId": 1
},
"Lab1.btnAlert.Press": {
"joinId": 3,
"smartObjectId": 2
},
"Lab1.btnBack.Press": {
"joinId": 4,
"smartObjectId": 2
},
"Lab1.btnOccupancy.Press": {
"joinId": 5,
"smartObjectId": 2
},
"Lab1.btnOccupancyFb.Press": {
"joinId": 6,
"smartObjectId": 2
},
"Lab1.btnVacancyFb.Press": {
"joinId": 7,
"smartObjectId": 2
},
"Lab2.btnBack.Press": {
"joinId": 3,
"smartObjectId": 3
},
"Lab2.btnCheck1.Press": {
"joinId": 4,
"smartObjectId": 3
},
"Lab2.btnCheck2.Press": {
"joinId": 5,
"smartObjectId": 3
},
"Lab2.btnCheck3.Press": {
"joinId": 6,
"smartObjectId": 3
},
"Lab2.btnCheck4.Press": {
"joinId": 7,
"smartObjectId": 3
},
"Lab2.btnCheckComplete.Press": {
"joinId": 8,
"smartObjectId": 3
},
"Lab2.btnStartCheck.Press": {
"joinId": 9,
"smartObjectId": 3
}
},
"numeric": {},
"string": {
"Lab1.txtInputField.OutputText": {
"joinId": 1,
"smartObjectId": 2
}
}
}
}
}

View file

@ -0,0 +1,767 @@
[
ObjTp=FSgntr
Sgntr=CHD
RelVrs=1
Schema=1
CrestronConstruct=1.3701.9.0
]
[
ObjTp=Hd
Schema=1
ProjectFile=MEP621_XPanel.cuip
ContractID=TUVQNjIxX1hQYW5lbA==
CEProjectVer=1.0.0.0
DateTimeUTC=2025-03-13 12:46:15.251
]
[
ObjTp=Symbol
Name=Lab0
SmplCName=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d
Hint=Lab0 (Control Join Id 1)
Code=1
SMWRev=4.28.00
Expand=expand_randomly
MinVariableInputs=16
MaxVariableInputs=16
MinVariableOutputs=16
MaxVariableOutputs=16
MinVariableInputsList2=0
MaxVariableInputsList2=0
MinVariableOutputsList2=0
MaxVariableOutputsList2=0
MinVariableInputsList3=4
MaxVariableInputsList3=4
MinVariableOutputsList3=4
MaxVariableOutputsList3=4
NumFixedParams=1
ParamCue1=ControlJoinId
ParamSigType1=UI_RO_String
ControlJoinId=1d
MPp=1
Pp1=1
ChdH=1
Render=8
InputCue1=[~UNUSED~]
InputSigType1=Digital
SmplCInputCue1=Lab0.btnSystemPowerOff.Selected.Input.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap1
InputCue2=[~UNUSED~]
InputSigType2=Digital
SmplCInputCue2=Lab0.btnSystemPowerOff.Selected.Input.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap2
InputCue3=[~UNUSED2~]
InputSigType3=Digital
SmplCInputCue3=Lab0.btnSystemPowerOff.Selected.Input.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap3
InputCue4=[~UNUSED~]
InputSigType4=Digital
SmplCInputCue4=Lab0.btnSystemPowerOff.Selected.Input.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap4
InputCue5=[~UNUSED~]
InputSigType5=Digital
SmplCInputCue5=Lab0.btnSystemPowerOff.Selected.Input.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap5
InputCue6=[~UNUSED2~]
InputSigType6=Digital
SmplCInputCue6=Lab0.btnSystemPowerOff.Selected.Input.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap6
InputCue7=[~BeginGroup~] Press
SmplCInputCue7=Lab0.btnBack.Selected.Input.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Group.3.Begin
InputSigType7=Digital
InputCue8=btnBack.Selected_fb
InputSigType8=Digital
SmplCInputCue8=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.i8l0efdm9ntol.pd-receivestateselected
InputToolTip8=btnBack.Selected
InputCue9=btnDisplayPowerOff.Selected_fb
InputSigType9=Digital
SmplCInputCue9=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.ioe9gpzv5mp9d.pd-receivestateselected
InputToolTip9=btnDisplayPowerOff.Selected
InputCue10=btnDisplayPowerOn.Selected_fb
InputSigType10=Digital
SmplCInputCue10=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.i8dy1ztqpfj6f.pd-receivestateselected
InputToolTip10=btnDisplayPowerOn.Selected
InputCue11=btnSource1.Selected_fb
InputSigType11=Digital
SmplCInputCue11=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.ibctnxo5lhbjf.pd-receivestateselected
InputToolTip11=btnSource1.Selected
InputCue12=btnSource2.Selected_fb
InputSigType12=Digital
SmplCInputCue12=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.ieyu46w7s1kwo.pd-receivestateselected
InputToolTip12=btnSource2.Selected
InputCue13=btnSource3.Selected_fb
InputSigType13=Digital
SmplCInputCue13=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.i3ozaik1i5kyx.pd-receivestateselected
InputToolTip13=btnSource3.Selected
InputCue14=btnSystemPowerOff.Selected_fb
InputSigType14=Digital
SmplCInputCue14=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.i0iqt263ivwg9.pd-receivestateselected
InputToolTip14=btnSystemPowerOff.Selected
InputCue15=btnSystemPowerOn.Selected_fb
InputSigType15=Digital
SmplCInputCue15=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.ios6ajykji3pb.pd-receivestateselected
InputToolTip15=btnSystemPowerOn.Selected
InputCue16=[~EndGroup~]
SmplCInputCue16=Lab0.btnBack.Selected.Input.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Group.3.EndGroup
InputSigType16=Digital
InputList3Cue1=[~BeginGroup~] Indirect Text
SmplCInputList3Cue1=Lab0.txtRoomName.Indirect.List3Input.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Group.1.Begin
InputList3SigType1=Serial
InputList3Cue2=txtRoomName.Indirect
InputList3SigType2=Serial
SmplCInputList3Cue2=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.i3sk5g7vxgv15.pd-receivestatelabel
Input3ToolTip2=txtRoomName.Indirect
InputList3Cue3=txtSources.Indirect
InputList3SigType3=Serial
SmplCInputList3Cue3=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.idtbl1rhzbzv2.pd-receivestatelabel
Input3ToolTip3=txtSources.Indirect
InputList3Cue4=[~EndGroup~]
SmplCInputList3Cue4=Lab0.txtRoomName.Indirect.List3Input.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Group.1.EndGroup
InputList3SigType4=Serial
OutputCue1=[~UNUSED~]
OutputSigType1=Digital
SmplCOutputCue1=Lab0.btnSystemPowerOff.Press.Output.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap1
OutputCue2=[~UNUSED~]
OutputSigType2=Digital
SmplCOutputCue2=Lab0.btnSystemPowerOff.Press.Output.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap2
OutputCue3=[~UNUSED2~]
OutputSigType3=Digital
SmplCOutputCue3=Lab0.btnSystemPowerOff.Press.Output.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap3
OutputCue4=[~UNUSED~]
OutputSigType4=Digital
SmplCOutputCue4=Lab0.btnSystemPowerOff.Press.Output.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap4
OutputCue5=[~UNUSED~]
OutputSigType5=Digital
SmplCOutputCue5=Lab0.btnSystemPowerOff.Press.Output.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap5
OutputCue6=[~UNUSED2~]
OutputSigType6=Digital
SmplCOutputCue6=Lab0.btnSystemPowerOff.Press.Output.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Gap6
OutputCue7=[~BeginGroup~] Press
SmplCOutputCue7=Lab0.btnBack.Press.Output.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Group.3.Begin
OutputSigType7=Digital
OutputCue8=btnBack.Press
OutputSigType8=Digital
SmplCOutputCue8=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.i8l0efdm9ntol.sendeventontouch
OutputToolTip8=btnBack.Press
OutputCue9=btnDisplayPowerOff.Press
OutputSigType9=Digital
SmplCOutputCue9=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.ioe9gpzv5mp9d.sendeventontouch
OutputToolTip9=btnDisplayPowerOff.Press
OutputCue10=btnDisplayPowerOn.Press
OutputSigType10=Digital
SmplCOutputCue10=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.i8dy1ztqpfj6f.sendeventontouch
OutputToolTip10=btnDisplayPowerOn.Press
OutputCue11=btnSource1.Press
OutputSigType11=Digital
SmplCOutputCue11=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.ibctnxo5lhbjf.sendeventontouch
OutputToolTip11=btnSource1.Press
OutputCue12=btnSource2.Press
OutputSigType12=Digital
SmplCOutputCue12=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.ieyu46w7s1kwo.sendeventontouch
OutputToolTip12=btnSource2.Press
OutputCue13=btnSource3.Press
OutputSigType13=Digital
SmplCOutputCue13=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.i3ozaik1i5kyx.sendeventontouch
OutputToolTip13=btnSource3.Press
OutputCue14=btnSystemPowerOff.Press
OutputSigType14=Digital
SmplCOutputCue14=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.i0iqt263ivwg9.sendeventontouch
OutputToolTip14=btnSystemPowerOff.Press
OutputCue15=btnSystemPowerOn.Press
OutputSigType15=Digital
SmplCOutputCue15=1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.ios6ajykji3pb.sendeventontouch
OutputToolTip15=btnSystemPowerOn.Press
OutputCue16=[~EndGroup~]
SmplCOutputCue16=Lab0.btnBack.Press.Output.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Group.3.EndGroup
OutputSigType16=Digital
OutputList3Cue1=[~BeginGroup~] Indirect Text
SmplCOutputList3Cue1=Lab0.txtRoomName.Indirect.Group1Event.Gap0.List3Output.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Group.1.Begin
OutputList3SigType1=Serial
OutputList3Cue2=[~UNUSED~]
OutputList3SigType2=Serial
SmplCOutputList3Cue2=Lab0.txtRoomName.Indirect.Group1Event.Gap0
OutputList3Cue3=[~UNUSED~]
OutputList3SigType3=Serial
SmplCOutputList3Cue3=Lab0.txtSources.Indirect.Group1Event.Gap1
OutputList3Cue4=[~EndGroup~]
SmplCOutputList3Cue4=Lab0.txtRoomName.Indirect.Group1Event.Gap0.List3Output.1ca24ee1-2bb7-43f3-9c4c-74160d429c5d.Group.1.EndGroup
OutputList3SigType4=Serial
]
[
ObjTp=Dp
Tp=1
HD=TRUE
NF=1
DNF=1
EncFmt=0
DVLF=1
Sgn=0
H=1
DV=1d
]
[
ObjTp=CHD
H=1
ChdCode=1
ParentChdFolder=0
]
[
ObjTp=Symbol
Name=Lab1
SmplCName=21c50c70-b0c9-481c-a3a2-de183821885a
Hint=Lab1 (Control Join Id 2)
Code=2
SMWRev=4.28.00
Expand=expand_randomly
MinVariableInputs=13
MaxVariableInputs=13
MinVariableOutputs=13
MaxVariableOutputs=13
MinVariableInputsList2=0
MaxVariableInputsList2=0
MinVariableOutputsList2=0
MaxVariableOutputsList2=0
MinVariableInputsList3=5
MaxVariableInputsList3=5
MinVariableOutputsList3=5
MaxVariableOutputsList3=5
NumFixedParams=1
ParamCue1=ControlJoinId
ParamSigType1=UI_RO_String
ControlJoinId=2d
MPp=1
Pp1=2
ChdH=2
Render=8
InputCue1=[~UNUSED~]
InputSigType1=Digital
SmplCInputCue1=Lab1.btnOccupancy.Selected.Input.21c50c70-b0c9-481c-a3a2-de183821885a.Gap1
InputCue2=[~UNUSED~]
InputSigType2=Digital
SmplCInputCue2=Lab1.btnOccupancy.Selected.Input.21c50c70-b0c9-481c-a3a2-de183821885a.Gap2
InputCue3=[~UNUSED2~]
InputSigType3=Digital
SmplCInputCue3=Lab1.btnOccupancy.Selected.Input.21c50c70-b0c9-481c-a3a2-de183821885a.Gap3
InputCue4=[~UNUSED~]
InputSigType4=Digital
SmplCInputCue4=Lab1.btnOccupancy.Selected.Input.21c50c70-b0c9-481c-a3a2-de183821885a.Gap4
InputCue5=[~UNUSED~]
InputSigType5=Digital
SmplCInputCue5=Lab1.btnOccupancy.Selected.Input.21c50c70-b0c9-481c-a3a2-de183821885a.Gap5
InputCue6=[~UNUSED2~]
InputSigType6=Digital
SmplCInputCue6=Lab1.btnOccupancy.Selected.Input.21c50c70-b0c9-481c-a3a2-de183821885a.Gap6
InputCue7=[~BeginGroup~] Press
SmplCInputCue7=Lab1.btnAlert.Selected.Input.21c50c70-b0c9-481c-a3a2-de183821885a.Group.3.Begin
InputSigType7=Digital
InputCue8=btnAlert.Selected_fb
InputSigType8=Digital
SmplCInputCue8=21c50c70-b0c9-481c-a3a2-de183821885a.inse.pd-receivestateselected
InputToolTip8=btnAlert.Selected
InputCue9=btnBack.Selected_fb
InputSigType9=Digital
SmplCInputCue9=21c50c70-b0c9-481c-a3a2-de183821885a.if1q8gfz14kw6.pd-receivestateselected
InputToolTip9=btnBack.Selected
InputCue10=btnOccupancy.Selected_fb
InputSigType10=Digital
SmplCInputCue10=21c50c70-b0c9-481c-a3a2-de183821885a.i4ee.pd-receivestateselected
InputToolTip10=btnOccupancy.Selected
InputCue11=btnOccupancyFb.Selected_fb
InputSigType11=Digital
SmplCInputCue11=21c50c70-b0c9-481c-a3a2-de183821885a.ik5q.pd-receivestateselected
InputToolTip11=btnOccupancyFb.Selected
InputCue12=btnVacancyFb.Selected_fb
InputSigType12=Digital
SmplCInputCue12=21c50c70-b0c9-481c-a3a2-de183821885a.iezj.pd-receivestateselected
InputToolTip12=btnVacancyFb.Selected
InputCue13=[~EndGroup~]
SmplCInputCue13=Lab1.btnAlert.Selected.Input.21c50c70-b0c9-481c-a3a2-de183821885a.Group.3.EndGroup
InputSigType13=Digital
InputList3Cue1=[~BeginGroup~] Text
SmplCInputList3Cue1=Lab1.txtInputField.IndirectText.List3Input.21c50c70-b0c9-481c-a3a2-de183821885a.Group.1.Begin
InputList3SigType1=Serial
InputList3Cue2=txtInputField.IndirectText_fb
InputList3SigType2=Serial
SmplCInputList3Cue2=21c50c70-b0c9-481c-a3a2-de183821885a.iuwv2.pd-receivestatevalue
Input3ToolTip2=txtInputField.Indirect Text
InputList3Cue3=txtAlert.Indirect
InputList3SigType3=Serial
SmplCInputList3Cue3=21c50c70-b0c9-481c-a3a2-de183821885a.iylu.pd-receivestatelabel
Input3ToolTip3=txtAlert.Indirect
InputList3Cue4=txtRoomName.Indirect
InputList3SigType4=Serial
SmplCInputList3Cue4=21c50c70-b0c9-481c-a3a2-de183821885a.i5zx.pd-receivestatelabel
Input3ToolTip4=txtRoomName.Indirect
InputList3Cue5=[~EndGroup~]
SmplCInputList3Cue5=Lab1.txtInputField.IndirectText.List3Input.21c50c70-b0c9-481c-a3a2-de183821885a.Group.1.EndGroup
InputList3SigType5=Serial
OutputCue1=[~UNUSED~]
OutputSigType1=Digital
SmplCOutputCue1=Lab1.btnOccupancy.Press.Output.21c50c70-b0c9-481c-a3a2-de183821885a.Gap1
OutputCue2=[~UNUSED~]
OutputSigType2=Digital
SmplCOutputCue2=Lab1.btnOccupancy.Press.Output.21c50c70-b0c9-481c-a3a2-de183821885a.Gap2
OutputCue3=[~UNUSED2~]
OutputSigType3=Digital
SmplCOutputCue3=Lab1.btnOccupancy.Press.Output.21c50c70-b0c9-481c-a3a2-de183821885a.Gap3
OutputCue4=[~UNUSED~]
OutputSigType4=Digital
SmplCOutputCue4=Lab1.btnOccupancy.Press.Output.21c50c70-b0c9-481c-a3a2-de183821885a.Gap4
OutputCue5=[~UNUSED~]
OutputSigType5=Digital
SmplCOutputCue5=Lab1.btnOccupancy.Press.Output.21c50c70-b0c9-481c-a3a2-de183821885a.Gap5
OutputCue6=[~UNUSED2~]
OutputSigType6=Digital
SmplCOutputCue6=Lab1.btnOccupancy.Press.Output.21c50c70-b0c9-481c-a3a2-de183821885a.Gap6
OutputCue7=[~BeginGroup~] Press
SmplCOutputCue7=Lab1.btnAlert.Press.Output.21c50c70-b0c9-481c-a3a2-de183821885a.Group.3.Begin
OutputSigType7=Digital
OutputCue8=btnAlert.Press
OutputSigType8=Digital
SmplCOutputCue8=21c50c70-b0c9-481c-a3a2-de183821885a.inse.sendeventontouch
OutputToolTip8=btnAlert.Press
OutputCue9=btnBack.Press
OutputSigType9=Digital
SmplCOutputCue9=21c50c70-b0c9-481c-a3a2-de183821885a.if1q8gfz14kw6.sendeventontouch
OutputToolTip9=btnBack.Press
OutputCue10=btnOccupancy.Press
OutputSigType10=Digital
SmplCOutputCue10=21c50c70-b0c9-481c-a3a2-de183821885a.i4ee.sendeventontouch
OutputToolTip10=btnOccupancy.Press
OutputCue11=btnOccupancyFb.Press
OutputSigType11=Digital
SmplCOutputCue11=21c50c70-b0c9-481c-a3a2-de183821885a.ik5q.sendeventontouch
OutputToolTip11=btnOccupancyFb.Press
OutputCue12=btnVacancyFb.Press
OutputSigType12=Digital
SmplCOutputCue12=21c50c70-b0c9-481c-a3a2-de183821885a.iezj.sendeventontouch
OutputToolTip12=btnVacancyFb.Press
OutputCue13=[~EndGroup~]
SmplCOutputCue13=Lab1.btnAlert.Press.Output.21c50c70-b0c9-481c-a3a2-de183821885a.Group.3.EndGroup
OutputSigType13=Digital
OutputList3Cue1=[~BeginGroup~] Text
SmplCOutputList3Cue1=Lab1.txtInputField.OutputText.List3Output.21c50c70-b0c9-481c-a3a2-de183821885a.Group.1.Begin
OutputList3SigType1=Serial
OutputList3Cue2=txtInputField.OutputText
OutputList3SigType2=Serial
SmplCOutputList3Cue2=21c50c70-b0c9-481c-a3a2-de183821885a.iuwv2.sendeventonchange
Output3ToolTip2=txtInputField.Output Text
OutputList3Cue3=[~UNUSED~]
OutputList3SigType3=Serial
SmplCOutputList3Cue3=Lab1.txtAlert.Indirect.Group1Event.Gap0
OutputList3Cue4=[~UNUSED~]
OutputList3SigType4=Serial
SmplCOutputList3Cue4=Lab1.txtRoomName.Indirect.Group1Event.Gap1
OutputList3Cue5=[~EndGroup~]
SmplCOutputList3Cue5=Lab1.txtInputField.OutputText.List3Output.21c50c70-b0c9-481c-a3a2-de183821885a.Group.1.EndGroup
OutputList3SigType5=Serial
]
[
ObjTp=Dp
Tp=1
HD=TRUE
NF=1
DNF=1
EncFmt=0
DVLF=1
Sgn=0
H=2
DV=2d
]
[
ObjTp=CHD
H=2
ChdCode=2
ParentChdFolder=0
]
[
ObjTp=Symbol
Name=Lab2
SmplCName=3e4f0a5a-c860-4e55-95bf-9da443b6871b
Hint=Lab2 (Control Join Id 3)
Code=3
SMWRev=4.28.00
Expand=expand_randomly
MinVariableInputs=18
MaxVariableInputs=18
MinVariableOutputs=18
MaxVariableOutputs=18
MinVariableInputsList2=30
MaxVariableInputsList2=30
MinVariableOutputsList2=30
MaxVariableOutputsList2=30
MinVariableInputsList3=5
MaxVariableInputsList3=5
MinVariableOutputsList3=5
MaxVariableOutputsList3=5
NumFixedParams=1
ParamCue1=ControlJoinId
ParamSigType1=UI_RO_String
ControlJoinId=3d
MPp=1
Pp1=3
ChdH=3
Render=8
InputCue1=[~UNUSED~]
InputSigType1=Digital
SmplCInputCue1=Lab2.btnSystemCheck.Selected.Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap1
InputCue2=[~UNUSED~]
InputSigType2=Digital
SmplCInputCue2=Lab2.btnSystemCheck.Selected.Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap2
InputCue3=[~UNUSED2~]
InputSigType3=Digital
SmplCInputCue3=Lab2.btnSystemCheck.Selected.Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap3
InputCue4=[~UNUSED~]
InputSigType4=Digital
SmplCInputCue4=Lab2.btnSystemCheck.Selected.Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap4
InputCue5=[~UNUSED~]
InputSigType5=Digital
SmplCInputCue5=Lab2.btnSystemCheck.Selected.Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap5
InputCue6=[~UNUSED2~]
InputSigType6=Digital
SmplCInputCue6=Lab2.btnSystemCheck.Selected.Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap6
InputCue7=[~BeginGroup~] Press
SmplCInputCue7=Lab2.btnBack.Selected.Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.3.Begin
InputSigType7=Digital
InputCue8=btnBack.Selected_fb
InputSigType8=Digital
SmplCInputCue8=3e4f0a5a-c860-4e55-95bf-9da443b6871b.ifg4u687j12vg.pd-receivestateselected
InputToolTip8=btnBack.Selected
InputCue9=[~UNUSED~]
InputSigType9=Digital
SmplCInputCue9=Lab2.btnCheck1.Press.Group3.StateGap3
InputCue10=[~UNUSED~]
InputSigType10=Digital
SmplCInputCue10=Lab2.btnCheck2.Press.Group3.StateGap4
InputCue11=[~UNUSED~]
InputSigType11=Digital
SmplCInputCue11=Lab2.btnCheck3.Press.Group3.StateGap5
InputCue12=[~UNUSED~]
InputSigType12=Digital
SmplCInputCue12=Lab2.btnCheck4.Press.Group3.StateGap6
InputCue13=[~UNUSED~]
InputSigType13=Digital
SmplCInputCue13=Lab2.btnCheckComplete.Press.Group3.StateGap7
InputCue14=btnMaintenanceOff.Selected_fb
InputSigType14=Digital
SmplCInputCue14=3e4f0a5a-c860-4e55-95bf-9da443b6871b.ihe6.pd-receivestateselected
InputToolTip14=btnMaintenanceOff.Selected
InputCue15=btnMaintenanceOn.Selected_fb
InputSigType15=Digital
SmplCInputCue15=3e4f0a5a-c860-4e55-95bf-9da443b6871b.io2v.pd-receivestateselected
InputToolTip15=btnMaintenanceOn.Selected
InputCue16=[~UNUSED~]
InputSigType16=Digital
SmplCInputCue16=Lab2.btnStartCheck.Press.Group3.StateGap8
InputCue17=btnSystemCheck.Selected_fb
InputSigType17=Digital
SmplCInputCue17=3e4f0a5a-c860-4e55-95bf-9da443b6871b.i8cpt0fyi2urj.pd-receivestateselected
InputToolTip17=btnSystemCheck.Selected
InputCue18=[~EndGroup~]
SmplCInputCue18=Lab2.btnBack.Selected.Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.3.EndGroup
InputSigType18=Digital
InputList2Cue1=[~UNUSED~]
InputList2SigType1=Analog
SmplCInputList2Cue1=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap1
InputList2Cue2=[~UNUSED~]
InputList2SigType2=Analog
SmplCInputList2Cue2=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap2
InputList2Cue3=[~UNUSED2~]
InputList2SigType3=Analog
SmplCInputList2Cue3=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap3
InputList2Cue4=[~UNUSED~]
InputList2SigType4=Analog
SmplCInputList2Cue4=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap4
InputList2Cue5=[~UNUSED~]
InputList2SigType5=Analog
SmplCInputList2Cue5=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap5
InputList2Cue6=[~UNUSED2~]
InputList2SigType6=Analog
SmplCInputList2Cue6=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap6
InputList2Cue7=[~UNUSED~]
InputList2SigType7=Analog
SmplCInputList2Cue7=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap7
InputList2Cue8=[~UNUSED~]
InputList2SigType8=Analog
SmplCInputList2Cue8=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap8
InputList2Cue9=[~UNUSED2~]
InputList2SigType9=Analog
SmplCInputList2Cue9=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap9
InputList2Cue10=[~UNUSED~]
InputList2SigType10=Analog
SmplCInputList2Cue10=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap10
InputList2Cue11=[~UNUSED~]
InputList2SigType11=Analog
SmplCInputList2Cue11=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap11
InputList2Cue12=[~UNUSED2~]
InputList2SigType12=Analog
SmplCInputList2Cue12=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap12
InputList2Cue13=[~UNUSED~]
InputList2SigType13=Analog
SmplCInputList2Cue13=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap13
InputList2Cue14=[~UNUSED~]
InputList2SigType14=Analog
SmplCInputList2Cue14=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap14
InputList2Cue15=[~UNUSED2~]
InputList2SigType15=Analog
SmplCInputList2Cue15=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap15
InputList2Cue16=[~UNUSED~]
InputList2SigType16=Analog
SmplCInputList2Cue16=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap16
InputList2Cue17=[~UNUSED~]
InputList2SigType17=Analog
SmplCInputList2Cue17=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap17
InputList2Cue18=[~UNUSED2~]
InputList2SigType18=Analog
SmplCInputList2Cue18=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap18
InputList2Cue19=[~UNUSED~]
InputList2SigType19=Analog
SmplCInputList2Cue19=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap19
InputList2Cue20=[~UNUSED~]
InputList2SigType20=Analog
SmplCInputList2Cue20=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap20
InputList2Cue21=[~UNUSED2~]
InputList2SigType21=Analog
SmplCInputList2Cue21=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap21
InputList2Cue22=[~UNUSED~]
InputList2SigType22=Analog
SmplCInputList2Cue22=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap22
InputList2Cue23=[~UNUSED~]
InputList2SigType23=Analog
SmplCInputList2Cue23=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap23
InputList2Cue24=[~UNUSED2~]
InputList2SigType24=Analog
SmplCInputList2Cue24=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap24
InputList2Cue25=[~BeginGroup~] Mode
SmplCInputList2Cue25=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.9.Begin
InputList2SigType25=Analog
InputList2Cue26=btnCheck1.Mode
InputList2SigType26=Analog
SmplCInputList2Cue26=3e4f0a5a-c860-4e55-95bf-9da443b6871b.i0cfc.pd-receivestatemode
Input2ToolTip26=btnCheck1.Mode
InputList2Cue27=btnCheck2.Mode
InputList2SigType27=Analog
SmplCInputList2Cue27=3e4f0a5a-c860-4e55-95bf-9da443b6871b.i25fb952eur2m.pd-receivestatemode
Input2ToolTip27=btnCheck2.Mode
InputList2Cue28=btnCheck3.Mode
InputList2SigType28=Analog
SmplCInputList2Cue28=3e4f0a5a-c860-4e55-95bf-9da443b6871b.ivuqnfs1j5yj3.pd-receivestatemode
Input2ToolTip28=btnCheck3.Mode
InputList2Cue29=btnCheck4.Mode
InputList2SigType29=Analog
SmplCInputList2Cue29=3e4f0a5a-c860-4e55-95bf-9da443b6871b.in0w8tk7gl0f7.pd-receivestatemode
Input2ToolTip29=btnCheck4.Mode
InputList2Cue30=[~EndGroup~]
SmplCInputList2Cue30=Lab2.btnCheck1.Mode.List2Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.9.EndGroup
InputList2SigType30=Analog
InputList3Cue1=[~BeginGroup~] Indirect Text
SmplCInputList3Cue1=Lab2.txtCheckStatus.Indirect.List3Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.1.Begin
InputList3SigType1=Serial
InputList3Cue2=txtCheckStatus.Indirect
InputList3SigType2=Serial
SmplCInputList3Cue2=3e4f0a5a-c860-4e55-95bf-9da443b6871b.ic9qsv0bcui67.pd-receivestatelabel
Input3ToolTip2=txtCheckStatus.Indirect
InputList3Cue3=txtRoomName.Indirect
InputList3SigType3=Serial
SmplCInputList3Cue3=3e4f0a5a-c860-4e55-95bf-9da443b6871b.iid3.pd-receivestatelabel
Input3ToolTip3=txtRoomName.Indirect
InputList3Cue4=txtSystemCheck.Indirect
InputList3SigType4=Serial
SmplCInputList3Cue4=3e4f0a5a-c860-4e55-95bf-9da443b6871b.ign2.pd-receivestatelabel
Input3ToolTip4=txtSystemCheck.Indirect
InputList3Cue5=[~EndGroup~]
SmplCInputList3Cue5=Lab2.txtCheckStatus.Indirect.List3Input.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.1.EndGroup
InputList3SigType5=Serial
OutputCue1=[~UNUSED~]
OutputSigType1=Digital
SmplCOutputCue1=Lab2.btnCheck1.Press.Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap1
OutputCue2=[~UNUSED~]
OutputSigType2=Digital
SmplCOutputCue2=Lab2.btnCheck1.Press.Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap2
OutputCue3=[~UNUSED2~]
OutputSigType3=Digital
SmplCOutputCue3=Lab2.btnCheck1.Press.Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap3
OutputCue4=[~UNUSED~]
OutputSigType4=Digital
SmplCOutputCue4=Lab2.btnCheck1.Press.Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap4
OutputCue5=[~UNUSED~]
OutputSigType5=Digital
SmplCOutputCue5=Lab2.btnCheck1.Press.Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap5
OutputCue6=[~UNUSED2~]
OutputSigType6=Digital
SmplCOutputCue6=Lab2.btnCheck1.Press.Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap6
OutputCue7=[~BeginGroup~] Press
SmplCOutputCue7=Lab2.btnBack.Press.Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.3.Begin
OutputSigType7=Digital
OutputCue8=btnBack.Press
OutputSigType8=Digital
SmplCOutputCue8=3e4f0a5a-c860-4e55-95bf-9da443b6871b.ifg4u687j12vg.sendeventontouch
OutputToolTip8=btnBack.Press
OutputCue9=btnCheck1.Press
OutputSigType9=Digital
SmplCOutputCue9=3e4f0a5a-c860-4e55-95bf-9da443b6871b.i0cfc.sendeventontouch
OutputToolTip9=btnCheck1.Press
OutputCue10=btnCheck2.Press
OutputSigType10=Digital
SmplCOutputCue10=3e4f0a5a-c860-4e55-95bf-9da443b6871b.i25fb952eur2m.sendeventontouch
OutputToolTip10=btnCheck2.Press
OutputCue11=btnCheck3.Press
OutputSigType11=Digital
SmplCOutputCue11=3e4f0a5a-c860-4e55-95bf-9da443b6871b.ivuqnfs1j5yj3.sendeventontouch
OutputToolTip11=btnCheck3.Press
OutputCue12=btnCheck4.Press
OutputSigType12=Digital
SmplCOutputCue12=3e4f0a5a-c860-4e55-95bf-9da443b6871b.in0w8tk7gl0f7.sendeventontouch
OutputToolTip12=btnCheck4.Press
OutputCue13=btnCheckComplete.Press
OutputSigType13=Digital
SmplCOutputCue13=3e4f0a5a-c860-4e55-95bf-9da443b6871b.inoa1exf7kbkk.sendeventontouch
OutputToolTip13=btnCheckComplete.Press
OutputCue14=[~UNUSED~]
OutputSigType14=Digital
SmplCOutputCue14=Lab2.btnMaintenanceOff.Selected.Group3Event.Gap0
OutputCue15=[~UNUSED~]
OutputSigType15=Digital
SmplCOutputCue15=Lab2.btnMaintenanceOn.Selected.Group3Event.Gap1
OutputCue16=btnStartCheck.Press
OutputSigType16=Digital
SmplCOutputCue16=3e4f0a5a-c860-4e55-95bf-9da443b6871b.ig49ntr2dqc0p.sendeventontouch
OutputToolTip16=btnStartCheck.Press
OutputCue17=[~UNUSED~]
OutputSigType17=Digital
SmplCOutputCue17=Lab2.btnSystemCheck.Selected.Group3Event.Gap2
OutputCue18=[~EndGroup~]
SmplCOutputCue18=Lab2.btnBack.Press.Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.3.EndGroup
OutputSigType18=Digital
OutputList2Cue1=[~UNUSED~]
OutputList2SigType1=Analog
SmplCOutputList2Cue1=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap1
OutputList2Cue2=[~UNUSED~]
OutputList2SigType2=Analog
SmplCOutputList2Cue2=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap2
OutputList2Cue3=[~UNUSED2~]
OutputList2SigType3=Analog
SmplCOutputList2Cue3=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap3
OutputList2Cue4=[~UNUSED~]
OutputList2SigType4=Analog
SmplCOutputList2Cue4=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap4
OutputList2Cue5=[~UNUSED~]
OutputList2SigType5=Analog
SmplCOutputList2Cue5=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap5
OutputList2Cue6=[~UNUSED2~]
OutputList2SigType6=Analog
SmplCOutputList2Cue6=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap6
OutputList2Cue7=[~UNUSED~]
OutputList2SigType7=Analog
SmplCOutputList2Cue7=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap7
OutputList2Cue8=[~UNUSED~]
OutputList2SigType8=Analog
SmplCOutputList2Cue8=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap8
OutputList2Cue9=[~UNUSED2~]
OutputList2SigType9=Analog
SmplCOutputList2Cue9=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap9
OutputList2Cue10=[~UNUSED~]
OutputList2SigType10=Analog
SmplCOutputList2Cue10=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap10
OutputList2Cue11=[~UNUSED~]
OutputList2SigType11=Analog
SmplCOutputList2Cue11=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap11
OutputList2Cue12=[~UNUSED2~]
OutputList2SigType12=Analog
SmplCOutputList2Cue12=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap12
OutputList2Cue13=[~UNUSED~]
OutputList2SigType13=Analog
SmplCOutputList2Cue13=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap13
OutputList2Cue14=[~UNUSED~]
OutputList2SigType14=Analog
SmplCOutputList2Cue14=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap14
OutputList2Cue15=[~UNUSED2~]
OutputList2SigType15=Analog
SmplCOutputList2Cue15=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap15
OutputList2Cue16=[~UNUSED~]
OutputList2SigType16=Analog
SmplCOutputList2Cue16=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap16
OutputList2Cue17=[~UNUSED~]
OutputList2SigType17=Analog
SmplCOutputList2Cue17=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap17
OutputList2Cue18=[~UNUSED2~]
OutputList2SigType18=Analog
SmplCOutputList2Cue18=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap18
OutputList2Cue19=[~UNUSED~]
OutputList2SigType19=Analog
SmplCOutputList2Cue19=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap19
OutputList2Cue20=[~UNUSED~]
OutputList2SigType20=Analog
SmplCOutputList2Cue20=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap20
OutputList2Cue21=[~UNUSED2~]
OutputList2SigType21=Analog
SmplCOutputList2Cue21=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap21
OutputList2Cue22=[~UNUSED~]
OutputList2SigType22=Analog
SmplCOutputList2Cue22=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap22
OutputList2Cue23=[~UNUSED~]
OutputList2SigType23=Analog
SmplCOutputList2Cue23=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap23
OutputList2Cue24=[~UNUSED2~]
OutputList2SigType24=Analog
SmplCOutputList2Cue24=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Gap24
OutputList2Cue25=[~BeginGroup~] Mode
SmplCOutputList2Cue25=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.9.Begin
OutputList2SigType25=Analog
OutputList2Cue26=[~UNUSED~]
OutputList2SigType26=Analog
SmplCOutputList2Cue26=Lab2.btnCheck1.Mode.Group9Event.Gap0
OutputList2Cue27=[~UNUSED~]
OutputList2SigType27=Analog
SmplCOutputList2Cue27=Lab2.btnCheck2.Mode.Group9Event.Gap1
OutputList2Cue28=[~UNUSED~]
OutputList2SigType28=Analog
SmplCOutputList2Cue28=Lab2.btnCheck3.Mode.Group9Event.Gap2
OutputList2Cue29=[~UNUSED~]
OutputList2SigType29=Analog
SmplCOutputList2Cue29=Lab2.btnCheck4.Mode.Group9Event.Gap3
OutputList2Cue30=[~EndGroup~]
SmplCOutputList2Cue30=Lab2.btnCheck1.Mode.Group9Event.Gap0.List2Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.9.EndGroup
OutputList2SigType30=Analog
OutputList3Cue1=[~BeginGroup~] Indirect Text
SmplCOutputList3Cue1=Lab2.txtCheckStatus.Indirect.Group1Event.Gap0.List3Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.1.Begin
OutputList3SigType1=Serial
OutputList3Cue2=[~UNUSED~]
OutputList3SigType2=Serial
SmplCOutputList3Cue2=Lab2.txtCheckStatus.Indirect.Group1Event.Gap0
OutputList3Cue3=[~UNUSED~]
OutputList3SigType3=Serial
SmplCOutputList3Cue3=Lab2.txtRoomName.Indirect.Group1Event.Gap1
OutputList3Cue4=[~UNUSED~]
OutputList3SigType4=Serial
SmplCOutputList3Cue4=Lab2.txtSystemCheck.Indirect.Group1Event.Gap2
OutputList3Cue5=[~EndGroup~]
SmplCOutputList3Cue5=Lab2.txtCheckStatus.Indirect.Group1Event.Gap0.List3Output.3e4f0a5a-c860-4e55-95bf-9da443b6871b.Group.1.EndGroup
OutputList3SigType5=Serial
]
[
ObjTp=Dp
Tp=1
HD=TRUE
NF=1
DNF=1
EncFmt=0
DVLF=1
Sgn=0
H=3
DV=3d
]
[
ObjTp=CHD
H=3
ChdCode=3
ParentChdFolder=0
]
[
ObjTp=Folder
Name=_reserved_
Hint=reserved to define hierarchy directly under the touch screen
H=0
ParentChdFolder=0
MaxChildren=1
Order1=CHD
Order2=CHD
Order3=CHD
Child1=1
Child2=2
Child3=3
]
;;;;;;;;;;;;;;;;

View file

@ -0,0 +1,271 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by CrestronConstruct.
// AppHost: 2.101.8.0
// UI Plugin: 1.3701.9.0
//
// Project: MEP621_XPanel
// Version: 1.0.0.0
// Sdk: CH5:2.11.1.2
// Strategy: Modern
// IndexOnly: False
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Globalization;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro;
namespace MEP621_XPanel
{
/// <summary>
/// Crestron class to wire up signals to and from the panel.
/// </summary>
internal class ComponentMediator : IDisposable
{
#region Members
private readonly IList<SmartObject> _smartObjects;
private IList<SmartObject> SmartObjects { get { return _smartObjects; } }
private Action<GenericBase, SmartObjectEventArgs> _activityEvent;
private Dictionary<uint, Func<uint, uint, eSigType, Indexes>> _smartObjectGetIndexesLookup = new Dictionary<uint, Func<uint, uint, eSigType, Indexes>>();
private readonly Dictionary<string, Action<IndexedEventArgs>> _booleanItemsOutputs;
private Dictionary<string, Action<IndexedEventArgs>> BooleanItemOutputs { get { return _booleanItemsOutputs; } }
private readonly Dictionary<string, Action<SmartObjectEventArgs>> _booleanOutputs;
private Dictionary<string, Action<SmartObjectEventArgs>> BooleanOutputs { get { return _booleanOutputs; } }
private readonly Dictionary<string, Action<IndexedEventArgs>> _numericItemsOutputs;
private Dictionary<string, Action<IndexedEventArgs>> NumericItemOutputs { get { return _numericItemsOutputs; } }
private readonly Dictionary<string, Action<SmartObjectEventArgs>> _numericOutputs;
private Dictionary<string, Action<SmartObjectEventArgs>> NumericOutputs { get { return _numericOutputs; } }
private readonly Dictionary<string, Action<IndexedEventArgs>> _stringItemsOutputs;
private Dictionary<string, Action<IndexedEventArgs>> StringItemOutputs { get { return _stringItemsOutputs; } }
private readonly Dictionary<string, Action<SmartObjectEventArgs>> _stringOutputs;
private Dictionary<string, Action<SmartObjectEventArgs>> StringOutputs { get { return _stringOutputs; } }
#endregion
#region Construction & Initialization
public ComponentMediator()
{
_smartObjects = new List<SmartObject>();
_booleanOutputs = new Dictionary<string, Action<SmartObjectEventArgs>>();
_numericOutputs = new Dictionary<string, Action<SmartObjectEventArgs>>();
_stringOutputs = new Dictionary<string, Action<SmartObjectEventArgs>>();
_booleanItemsOutputs = new Dictionary<string, Action<IndexedEventArgs>>();
_numericItemsOutputs = new Dictionary<string, Action<IndexedEventArgs>>();
_stringItemsOutputs = new Dictionary<string, Action<IndexedEventArgs>>();
}
public void HookSmartObjectEvents(SmartObject smartObject)
{
SmartObjects.Add(smartObject);
smartObject.SigChange += SmartObject_SigChange;
}
public void UnHookSmartObjectEvents(SmartObject smartObject)
{
SmartObjects.Remove(smartObject);
smartObject.SigChange -= SmartObject_SigChange;
}
#endregion
#region Smart Object Event Handler
private string GetKey(uint smartObjectId, uint join)
{
return smartObjectId.ToString(CultureInfo.InvariantCulture) + "." + join.ToString(CultureInfo.InvariantCulture);
}
internal void ConfigureBooleanItemEvent(uint controlJoinId, uint join, Func<uint, uint, eSigType, Indexes> getIndexes, Action<IndexedEventArgs> action)
{
string key = GetKey(controlJoinId, join);
if (!string.IsNullOrEmpty(key))
{
BooleanItemOutputs[key] = action;
//ErrorLog.Error("Adding key {0} to BooleanItemOutputs.", key);
if (_smartObjectGetIndexesLookup.ContainsKey(controlJoinId))
{
return;
}
_smartObjectGetIndexesLookup.Add(controlJoinId, getIndexes);
}
}
internal void ConfigureNumericItemEvent(uint controlJoinId, uint join, Func<uint, uint, eSigType, Indexes> getIndexes, Action<IndexedEventArgs> action)
{
string key = GetKey(controlJoinId, join);
if (!string.IsNullOrEmpty(key))
{
NumericItemOutputs[key] = action;
//ErrorLog.Error("Adding key {0} to NumericItemOutputs.", key);
if (_smartObjectGetIndexesLookup.ContainsKey(controlJoinId))
{
return;
}
_smartObjectGetIndexesLookup.Add(controlJoinId, getIndexes);
}
}
internal void ConfigureStringItemEvent(uint controlJoinId, uint join, Func<uint, uint, eSigType, Indexes> getIndexes, Action<IndexedEventArgs> action)
{
string key = GetKey(controlJoinId, join);
if (!string.IsNullOrEmpty(key))
{
StringItemOutputs[key] = action;
//ErrorLog.Error("Adding key {0} to StringItemOutputs.", key);
if (_smartObjectGetIndexesLookup.ContainsKey(controlJoinId))
{
return;
}
_smartObjectGetIndexesLookup.Add(controlJoinId, getIndexes);
}
}
internal void ConfigureBooleanEvent(uint controlJoinId, uint join, Action<SmartObjectEventArgs> action)
{
string key = GetKey(controlJoinId, join);
BooleanOutputs[key] = action;
//ErrorLog.Error("Adding key {0} to BooleanOutputs.", key);
}
internal void ConfigureNumericEvent(uint controlJoinId, uint join, Action<SmartObjectEventArgs> action)
{
string key = GetKey(controlJoinId, join);
NumericOutputs[key] = action;
//ErrorLog.Error("Adding key {0} to NumericOutputs.", key);
}
internal void ConfigureStringEvent(uint controlJoinId, uint join, Action<SmartObjectEventArgs> action)
{
string key = GetKey(controlJoinId, join);
StringOutputs[key] = action;
//ErrorLog.Error("Adding key {0} to StringOutputs.", key);
}
internal void ConfigureActivityEvent(Action<GenericBase, SmartObjectEventArgs> onActivity)
{
_activityEvent = onActivity;
}
private void SmartObject_SigChange(GenericBase currentDevice, SmartObjectEventArgs args)
{
try
{
if (_activityEvent != null)
{
_activityEvent.Invoke(currentDevice, args);
}
Func<uint, uint, eSigType, Indexes> getIndexes;
while (_smartObjectGetIndexesLookup.TryGetValue(args.SmartObjectArgs.ID, out getIndexes))
{
Dictionary<string, Action<IndexedEventArgs>> itemSignals = null;
//Resolve and invoke the corresponding method
Action<IndexedEventArgs> itemAction;
switch (args.Sig.Type)
{
case eSigType.Bool:
itemSignals = BooleanItemOutputs;
break;
case eSigType.UShort:
itemSignals = NumericItemOutputs;
break;
case eSigType.String:
itemSignals = StringItemOutputs;
break;
}
Indexes indexes = getIndexes.Invoke(args.SmartObjectArgs.ID, args.Sig.Number, args.Sig.Type);
if (indexes.IsError)
break;
string theKey = GetKey(args.SmartObjectArgs.ID - indexes.ItemIndex, args.Sig.Number - indexes.JoinIndex);
if (itemSignals != null &&
itemSignals.TryGetValue(theKey, out itemAction) &&
itemAction != null)
{
itemAction.Invoke(new IndexedEventArgs(args, indexes.ItemIndex, indexes.JoinIndex));
}
else
{
ErrorLog.Error("Unable to find action for {0} from {1} {2}", theKey, args.SmartObjectArgs.ID, args.Sig.Number);
}
break;
}
Dictionary<string, Action<SmartObjectEventArgs>> signals = null;
//Resolve and invoke the corresponding method
Action<SmartObjectEventArgs> action;
switch (args.Sig.Type)
{
case eSigType.Bool:
signals = BooleanOutputs;
break;
case eSigType.UShort:
signals = NumericOutputs;
break;
case eSigType.String:
signals = StringOutputs;
break;
}
string key = GetKey(args.SmartObjectArgs.ID, args.Sig.Number);
if (signals != null &&
signals.TryGetValue(key, out action) &&
action != null)
action.Invoke(args);
else
ErrorLog.Error("Unable to find action for {0}", key);
}
catch (Exception ex)
{
ErrorLog.Exception("Error while receiving feedback.", ex);
}
}
#endregion
#region IDisposable
private bool IsDisposed { get; set; }
public void Dispose()
{
if (IsDisposed)
return;
IsDisposed = true;
for (int i = 0; i < SmartObjects.Count; i++)
{
SmartObjects[i].SigChange -= SmartObject_SigChange;
}
}
#endregion
}
}

View file

@ -0,0 +1,149 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by CrestronConstruct.
// AppHost: 2.101.8.0
// UI Plugin: 1.3701.9.0
//
// Project: MEP621_XPanel
// Version: 1.0.0.0
// Sdk: CH5:2.11.1.2
// Strategy: Modern
// IndexOnly: False
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using Crestron.SimplSharp;
using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport;
using System;
using System.Collections.Generic;
using System.Linq;
namespace MEP621_XPanel
{
/// <summary>
/// Common Interface for Root Contracts.
/// </summary>
public interface IContract
{
object UserObject { get; set; }
void AddDevice(BasicTriListWithSmartObject device);
void RemoveDevice(BasicTriListWithSmartObject device);
/// <summary>
/// Fires on ANY activity on the panel.
/// </summary>
event EventHandler<EventArgs> Activity;
}
/// <summary>
/// Root contract giving access to top level project items such as Pages and global Widgets.
/// </summary>
public sealed class Contract : IContract, IDisposable
{
#region Components
private ComponentMediator ComponentMediator { get; set; }
public MEP621_XPanel.ILab0 Lab0 { get { return (MEP621_XPanel.ILab0)InternalLab0; } }
private MEP621_XPanel.Lab0 InternalLab0 { get; set; }
public MEP621_XPanel.ILab1 Lab1 { get { return (MEP621_XPanel.ILab1)InternalLab1; } }
private MEP621_XPanel.Lab1 InternalLab1 { get; set; }
public MEP621_XPanel.ILab2 Lab2 { get { return (MEP621_XPanel.ILab2)InternalLab2; } }
private MEP621_XPanel.Lab2 InternalLab2 { get; set; }
#endregion
#region Construction and Initialization
public Contract()
: this(new List<BasicTriListWithSmartObject>().ToArray())
{
}
public Contract(BasicTriListWithSmartObject device)
: this(new [] { device })
{
}
public Contract(BasicTriListWithSmartObject[] devices)
{
if (devices == null)
throw new ArgumentNullException("Devices is null");
ComponentMediator = new ComponentMediator();
ComponentMediator.ConfigureActivityEvent(onActivity);
InternalLab0 = new MEP621_XPanel.Lab0(ComponentMediator, 1);
InternalLab1 = new MEP621_XPanel.Lab1(ComponentMediator, 2);
InternalLab2 = new MEP621_XPanel.Lab2(ComponentMediator, 3);
for (int index = 0; index < devices.Length; index++)
{
AddDevice(devices[index]);
}
}
/// <summary>
/// Fires on ANY activity on the panel.
/// </summary>
public event EventHandler<EventArgs> Activity;
private void onActivity(GenericBase currentDevice, SmartObjectEventArgs args)
{
var handler = Activity;
if (handler != null)
handler(currentDevice, args);
}
#endregion
#region Standard Contract Members
public object UserObject { get; set; }
public void AddDevice(BasicTriListWithSmartObject device)
{
InternalLab0.AddDevice(device);
InternalLab1.AddDevice(device);
InternalLab2.AddDevice(device);
}
public void RemoveDevice(BasicTriListWithSmartObject device)
{
InternalLab0.RemoveDevice(device);
InternalLab1.RemoveDevice(device);
InternalLab2.RemoveDevice(device);
}
#endregion
#region IDisposable
public bool IsDisposed { get; set; }
public void Dispose()
{
if (IsDisposed)
return;
IsDisposed = true;
InternalLab0.Dispose();
InternalLab1.Dispose();
InternalLab2.Dispose();
ComponentMediator.Dispose();
}
#endregion
}
}

View file

@ -0,0 +1,277 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by CrestronConstruct.
// AppHost: 2.101.8.0
// UI Plugin: 1.3701.9.0
//
// Project: MEP621_XPanel
// Version: 1.0.0.0
// Sdk: CH5:2.11.1.2
// Strategy: Modern
// IndexOnly: False
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport;
namespace MEP621_XPanel
{
/// <summary>
/// Indexed <see cref="EventArgs"/> containing which button or Item was pressed.
/// </summary>
public class IndexedEventArgs : EventArgs
{
/// <summary>
/// Initializes a new instance of the <see cref="IndexedEventArgs"/> class.
/// </summary>
/// <param name="eventArgs">The <see cref="SmartObjectEventArgs"/> passed back from the panel.</param>
/// <param name="itemIndex">The position in the Widget List (0 based).</param>
/// <param name="joinIndex">The position in the Button List (0 based).</param>
public IndexedEventArgs(SmartObjectEventArgs eventArgs, ushort itemIndex, ushort joinIndex)
{
Device = (BasicTriListWithSmartObject)eventArgs.SmartObjectArgs.Device;
SigArgs = eventArgs;
ItemIndex = itemIndex;
JoinIndex = joinIndex;
}
/// <summary>
/// Gets device containing Smart object.
/// </summary>
public BasicTriListWithSmartObject Device { get; private set; }
/// <summary>
/// Signal arguments of what changed.
/// </summary>
public SigEventArgs SigArgs { get; private set; }
/// <summary>
/// Return the index within the widget list (0 based).
/// </summary>
internal ushort ItemIndex { get; private set; }
/// <summary>
/// Return the index within the button list (0 based).
/// </summary>
public ushort JoinIndex { get; private set; }
/// <summary>
/// Return a string with the current index values.
/// </summary>
public override string ToString()
{
return string.Format("IndexedEventArgs: JoinIndex={0} ItemIndex={1}", JoinIndex, ItemIndex);
}
}
/// <summary>
/// Indexed <see cref="EventArgs"/> containing which button was pressed.
/// </summary>
public class IndexedButtonEventArgs : IndexedEventArgs
{
/// <summary>
/// Initializes a new instance of the <see cref="IndexedButtonEventArgs"/> class.
/// </summary>
/// <param name="eventArgs">The <see cref="SmartObjectEventArgs"/> passed back from the panel.</param>
/// <param name="buttonIndex">The position of the button pressed in the complex control.</param>
public IndexedButtonEventArgs(SmartObjectEventArgs eventArgs, ushort buttonIndex) : base(eventArgs, 0, buttonIndex)
{
}
/// <summary>
/// Return the index within the list e.g. button N in a button list (0 based).
/// </summary>
public ushort ButtonIndex
{
get { return JoinIndex; }
}
}
/// <summary>
/// Indexed <see cref="EventArgs"/> containing which screen had source changed on it.
/// </summary>
public class IndexedScreenEventArgs : IndexedEventArgs
{
/// <summary>
/// Initializes a new instance of the <see cref="IndexedScreenEventArgs"/> class.
/// </summary>
/// <param name="eventArgs">The <see cref="SmartObjectEventArgs"/> passed back from the panel.</param>
/// <param name="screenIndex">The position of the screen in the complex control.</param>
public IndexedScreenEventArgs(SmartObjectEventArgs eventArgs, ushort screenIndex) : base(eventArgs, 0, screenIndex)
{
}
/// <summary>
/// Return the index within the list e.g. button N in a button list (0 based).
/// </summary>
public ushort ScreenIndex
{
get { return JoinIndex; }
}
}
/// <summary>
/// Indexed <see cref="EventArgs"/> containing which Item was pressed.
/// </summary>
public class ItemEventArgs : IndexedEventArgs
{
/// <summary>
/// Initializes a new instance of the <see cref="ItemEventArgs"/> class.
/// </summary>
/// <param name="eventArgs">The <see cref="SmartObjectEventArgs"/> passed back from the panel.</param>
/// <param name="widgetItemIndex">The position of the event triggered in the widget list.</param>
public ItemEventArgs(SmartObjectEventArgs eventArgs, ushort widgetItemIndex) : base(eventArgs, widgetItemIndex, 0)
{
}
/// <summary>
/// Return the Item index within the Widget List (0 based).
/// </summary>
public ushort WidgetItemIndex
{
get { return ItemIndex; }
}
/// <summary>
/// Return a string with the current index values.
/// </summary>
public override string ToString()
{
return string.Format("IndexedEventArgs: JoinIndex={0} WidgetItemIndex=ItemIndex={1}", JoinIndex, ItemIndex);
}
}
/// <summary>
/// Dpad button <see cref="EventArgs"/> containing which button was pressed.
/// </summary>
public class DpadEventArgs : IndexedEventArgs
{
/// <summary>
/// Initializes a new instance of the <see cref="DpadEventArgs"/> class.
/// </summary>
/// <param name="eventArgs">The <see cref="SmartObjectEventArgs"/> passed back from the panel.</param>
/// <param name="buttonIndex">The position of the button pressed in the complex control.</param>
public DpadEventArgs(SmartObjectEventArgs eventArgs, DpadButton dpadButton) : base(eventArgs, 0, (ushort)dpadButton)
{
DpadButton = dpadButton;
}
/// <summary>
/// </summary>
public DpadButton DpadButton { get; private set; }
}
/// <summary>
/// Enumerated list of buttons.
/// </summary>
public enum DpadButton : ushort
{
/// <summary>
/// Button Up.
/// </summary>
Up,
/// <summary>
/// Button Down.
/// </summary>
Down,
/// <summary>
/// Button Left.
/// </summary>
Left,
/// <summary>
/// Button Right.
/// </summary>
Right,
/// <summary>
/// Button Center.
/// </summary>
Center,
}
/// <summary>
/// Enumerated list of buttons.
/// </summary>
public enum KeypadButton : ushort
{
/// <summary>
/// Button 1.
/// </summary>
Button_1,
/// <summary>
/// Button 2 ABC.
/// </summary>
Button_2,
/// <summary>
/// Button 3 DEF.
/// </summary>
Button_3,
/// <summary>
/// Button 4 GHI.
/// </summary>
Button_4,
/// <summary>
/// Button 5 JKL.
/// </summary>
Button_5,
/// <summary>
/// Button 6 MNO.
/// </summary>
Button_6,
/// <summary>
/// Button 7 PQRS.
/// </summary>
Button_7,
/// <summary>
/// Button 8 TUV.
/// </summary>
Button_8,
/// <summary>
/// Button 9 WXYZ.
/// </summary>
Button_9,
/// <summary>
/// Button 0 +.
/// </summary>
Button_0,
/// <summary>
/// Button Star (*).
/// </summary>
Button_Star,
/// <summary>
/// Button Hash (#).
/// </summary>
Button_Hash,
/// <summary>
/// Button Extra (Phone).
/// </summary>
Button_Extra,
}
/// <summary>
/// Keypad button <see cref="EventArgs"/> containing which button was pressed.
/// </summary>
public class KeypadEventArgs : IndexedEventArgs
{
/// <summary>
/// Initializes a new instance of the <see cref="KeypadEventArgs"/> class.
/// </summary>
/// <param name="eventArgs">The <see cref="SmartObjectEventArgs"/> passed back from the panel.</param>
/// <param name="keypadButton">The button pressed.</param>
public KeypadEventArgs(SmartObjectEventArgs eventArgs, KeypadButton keypadButton) : base(eventArgs, 0, (ushort)keypadButton)
{
KeypadButton = keypadButton;
}
/// <summary>
/// Returns a <see cref="KeypadButton"/> showing the Keypad button that was pressed.
/// </summary>
public KeypadButton KeypadButton { get; private set; }
}
}

View file

@ -0,0 +1,688 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by CrestronConstruct.
// AppHost: 2.101.8.0
// UI Plugin: 1.3701.9.0
//
// Project: MEP621_XPanel
// Version: 1.0.0.0
// Sdk: CH5:2.11.1.2
// Strategy: Modern
// IndexOnly: False
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport;
using MEP621_XPanel;
namespace MEP621_XPanel
{
/// <summary>
/// Lab0
/// </summary>
public partial interface ILab0
{
object UserObject { get; set; }
/// <summary>
/// Event btnBack.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnBack_PressEvent;
/// <summary>
/// Event btnDisplayPowerOff.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnDisplayPowerOff_PressEvent;
/// <summary>
/// Event btnDisplayPowerOn.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnDisplayPowerOn_PressEvent;
/// <summary>
/// Event btnSource1.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnSource1_PressEvent;
/// <summary>
/// Event btnSource2.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnSource2_PressEvent;
/// <summary>
/// Event btnSource3.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnSource3_PressEvent;
/// <summary>
/// Event btnSystemPowerOff.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnSystemPowerOff_PressEvent;
/// <summary>
/// Event btnSystemPowerOn.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnSystemPowerOn_PressEvent;
/// <summary>
/// btnBack.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnBack_Selected(Lab0BoolInputSigDelegate callback);
/// <summary>
/// btnBack.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnBack_Selected(bool digital);
/// <summary>
/// btnDisplayPowerOff.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnDisplayPowerOff_Selected(Lab0BoolInputSigDelegate callback);
/// <summary>
/// btnDisplayPowerOff.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnDisplayPowerOff_Selected(bool digital);
/// <summary>
/// btnDisplayPowerOn.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnDisplayPowerOn_Selected(Lab0BoolInputSigDelegate callback);
/// <summary>
/// btnDisplayPowerOn.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnDisplayPowerOn_Selected(bool digital);
/// <summary>
/// btnSource1.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnSource1_Selected(Lab0BoolInputSigDelegate callback);
/// <summary>
/// btnSource1.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnSource1_Selected(bool digital);
/// <summary>
/// btnSource2.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnSource2_Selected(Lab0BoolInputSigDelegate callback);
/// <summary>
/// btnSource2.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnSource2_Selected(bool digital);
/// <summary>
/// btnSource3.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnSource3_Selected(Lab0BoolInputSigDelegate callback);
/// <summary>
/// btnSource3.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnSource3_Selected(bool digital);
/// <summary>
/// btnSystemPowerOff.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnSystemPowerOff_Selected(Lab0BoolInputSigDelegate callback);
/// <summary>
/// btnSystemPowerOff.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnSystemPowerOff_Selected(bool digital);
/// <summary>
/// btnSystemPowerOn.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnSystemPowerOn_Selected(Lab0BoolInputSigDelegate callback);
/// <summary>
/// btnSystemPowerOn.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnSystemPowerOn_Selected(bool digital);
/// <summary>
/// txtRoomName.Indirect Feedback
/// </summary>
/// <param name="callback">The <see cref="string"/> delegate to update the panel.</param>
void txtRoomName_Indirect(Lab0StringInputSigDelegate callback);
/// <summary>
/// txtRoomName.Indirect Feedback
/// </summary>
/// <param name="serial">The <see cref="string"/> to update the panel.</param>
void txtRoomName_Indirect(string serial);
/// <summary>
/// txtSources.Indirect Feedback
/// </summary>
/// <param name="callback">The <see cref="string"/> delegate to update the panel.</param>
void txtSources_Indirect(Lab0StringInputSigDelegate callback);
/// <summary>
/// txtSources.Indirect Feedback
/// </summary>
/// <param name="serial">The <see cref="string"/> to update the panel.</param>
void txtSources_Indirect(string serial);
}
/// <summary>
/// Digital callback used in feedback events.
/// </summary>
/// <param name="boolInputSig">The <see cref="BoolInputSig"/> joinInfo data.</param>
/// <param name="lab0">The <see cref="ILab0"/> on which to apply the feedback.</param>
public delegate void Lab0BoolInputSigDelegate(BoolInputSig boolInputSig, ILab0 lab0);
/// <summary>
/// Digital callback used in feedback events.
/// </summary>
/// <param name="stringInputSig">The <see cref="StringInputSig"/> joinInfo data.</param>
/// <param name="lab0">The <see cref="ILab0"/> on which to apply the feedback.</param>
public delegate void Lab0StringInputSigDelegate(StringInputSig stringInputSig, ILab0 lab0);
/// <summary>
/// Lab0
/// </summary>
internal partial class Lab0 : ILab0, IDisposable
{
#region Standard CH5 Component members
private ComponentMediator ComponentMediator { get; set; }
public object UserObject { get; set; }
/// <summary>
/// Gets the ControlJoinId a.k.a. SmartObjectId. This Id identifies the extender symbol.
/// </summary>
public uint ControlJoinId { get; private set; }
private IList<BasicTriListWithSmartObject> _devices;
/// <summary>
/// Gets the list of devices.
/// </summary>
public IList<BasicTriListWithSmartObject> Devices { get { return _devices; } }
#endregion
#region Joins
private static class Joins
{
/// <summary>
/// Digital signals,
/// </summary>
internal static class Booleans
{
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab0.btnBack.Press
/// btnBack.Press
/// </summary>
public const uint btnBack_PressEvent = 3;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab0.btnDisplayPowerOff.Press
/// btnDisplayPowerOff.Press
/// </summary>
public const uint btnDisplayPowerOff_PressEvent = 4;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab0.btnDisplayPowerOn.Press
/// btnDisplayPowerOn.Press
/// </summary>
public const uint btnDisplayPowerOn_PressEvent = 5;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab0.btnSource1.Press
/// btnSource1.Press
/// </summary>
public const uint btnSource1_PressEvent = 6;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab0.btnSource2.Press
/// btnSource2.Press
/// </summary>
public const uint btnSource2_PressEvent = 7;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab0.btnSource3.Press
/// btnSource3.Press
/// </summary>
public const uint btnSource3_PressEvent = 8;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab0.btnSystemPowerOff.Press
/// btnSystemPowerOff.Press
/// </summary>
public const uint btnSystemPowerOff_PressEvent = 9;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab0.btnSystemPowerOn.Press
/// btnSystemPowerOn.Press
/// </summary>
public const uint btnSystemPowerOn_PressEvent = 10;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab0.btnBack.Selected
/// btnBack.Selected
/// </summary>
public const uint btnBack_SelectedState = 3;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab0.btnDisplayPowerOff.Selected
/// btnDisplayPowerOff.Selected
/// </summary>
public const uint btnDisplayPowerOff_SelectedState = 4;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab0.btnDisplayPowerOn.Selected
/// btnDisplayPowerOn.Selected
/// </summary>
public const uint btnDisplayPowerOn_SelectedState = 5;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab0.btnSource1.Selected
/// btnSource1.Selected
/// </summary>
public const uint btnSource1_SelectedState = 6;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab0.btnSource2.Selected
/// btnSource2.Selected
/// </summary>
public const uint btnSource2_SelectedState = 7;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab0.btnSource3.Selected
/// btnSource3.Selected
/// </summary>
public const uint btnSource3_SelectedState = 8;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab0.btnSystemPowerOff.Selected
/// btnSystemPowerOff.Selected
/// </summary>
public const uint btnSystemPowerOff_SelectedState = 9;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab0.btnSystemPowerOn.Selected
/// btnSystemPowerOn.Selected
/// </summary>
public const uint btnSystemPowerOn_SelectedState = 10;
}
/// <summary>
/// Serial signals.
/// </summary>
internal static class Strings
{
/// <summary>
/// Input or Feedback serial joinInfo from Control System to panel: Lab0.txtRoomName.Indirect
/// txtRoomName.Indirect
/// </summary>
public const uint txtRoomName_IndirectState = 1;
/// <summary>
/// Input or Feedback serial joinInfo from Control System to panel: Lab0.txtSources.Indirect
/// txtSources.Indirect
/// </summary>
public const uint txtSources_IndirectState = 2;
}
}
#endregion
#region Construction and Initialization
/// <summary>
/// Initializes a new instance of the <see cref="Lab0"/> component class.
/// </summary>
/// <param name="componentMediator">The <see cref="ComponentMediator"/> used to instantiate the component.</param>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
/// <param name="itemCount">The number of items.</param>
internal Lab0(ComponentMediator componentMediator, uint controlJoinId, uint? itemCount)
{
ComponentMediator = componentMediator;
Initialize(controlJoinId, itemCount);
}
/// <summary>
/// Initializes a new instance of the <see cref="Lab0"/> component class.
/// </summary>
/// <param name="componentMediator">The <see cref="ComponentMediator"/> used to instantiate the component.</param>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
internal Lab0(ComponentMediator componentMediator, uint controlJoinId) : this(componentMediator, controlJoinId, null)
{
}
/// <summary>
/// Initializes a new instance with default itemCount.
/// </summary>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
private void Initialize(uint controlJoinId)
{
Initialize(controlJoinId, null);
}
private Dictionary<string, Indexes> _indexLookup = new Dictionary<string, Indexes>();
/// <summary>
/// Initializes a new instance of the <see cref="Lab0"/> component class.
/// </summary>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
/// <param name="itemCount">The number of items.</param>
private void Initialize(uint controlJoinId, uint? itemCount)
{
ControlJoinId = controlJoinId;
_devices = new List<BasicTriListWithSmartObject>();
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnBack_PressEvent, onbtnBack_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnDisplayPowerOff_PressEvent, onbtnDisplayPowerOff_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnDisplayPowerOn_PressEvent, onbtnDisplayPowerOn_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnSource1_PressEvent, onbtnSource1_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnSource2_PressEvent, onbtnSource2_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnSource3_PressEvent, onbtnSource3_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnSystemPowerOff_PressEvent, onbtnSystemPowerOff_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnSystemPowerOn_PressEvent, onbtnSystemPowerOn_Press);
}
public void AddDevice(BasicTriListWithSmartObject device)
{
Devices.Add(device);
ComponentMediator.HookSmartObjectEvents(device.SmartObjects[ControlJoinId]);
}
public void RemoveDevice(BasicTriListWithSmartObject device)
{
Devices.Remove(device);
ComponentMediator.UnHookSmartObjectEvents(device.SmartObjects[ControlJoinId]);
}
#endregion
#region CH5 Contract
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnBack_PressEvent;
private void onbtnBack_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnBack_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnDisplayPowerOff_PressEvent;
private void onbtnDisplayPowerOff_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnDisplayPowerOff_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnDisplayPowerOn_PressEvent;
private void onbtnDisplayPowerOn_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnDisplayPowerOn_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnSource1_PressEvent;
private void onbtnSource1_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnSource1_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnSource2_PressEvent;
private void onbtnSource2_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnSource2_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnSource3_PressEvent;
private void onbtnSource3_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnSource3_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnSystemPowerOff_PressEvent;
private void onbtnSystemPowerOff_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnSystemPowerOff_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnSystemPowerOn_PressEvent;
private void onbtnSystemPowerOn_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnSystemPowerOn_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public void btnBack_Selected(Lab0BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnBack_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnBack_Selected(bool digital)
{
btnBack_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnDisplayPowerOff_Selected(Lab0BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnDisplayPowerOff_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnDisplayPowerOff_Selected(bool digital)
{
btnDisplayPowerOff_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnDisplayPowerOn_Selected(Lab0BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnDisplayPowerOn_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnDisplayPowerOn_Selected(bool digital)
{
btnDisplayPowerOn_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnSource1_Selected(Lab0BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnSource1_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnSource1_Selected(bool digital)
{
btnSource1_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnSource2_Selected(Lab0BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnSource2_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnSource2_Selected(bool digital)
{
btnSource2_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnSource3_Selected(Lab0BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnSource3_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnSource3_Selected(bool digital)
{
btnSource3_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnSystemPowerOff_Selected(Lab0BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnSystemPowerOff_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnSystemPowerOff_Selected(bool digital)
{
btnSystemPowerOff_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnSystemPowerOn_Selected(Lab0BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnSystemPowerOn_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnSystemPowerOn_Selected(bool digital)
{
btnSystemPowerOn_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void txtRoomName_Indirect(Lab0StringInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].StringInput[Joins.Strings.txtRoomName_IndirectState], this);
}
}
/// <inheritdoc/>
public void txtRoomName_Indirect(string serial)
{
txtRoomName_Indirect((sig, component) => sig.StringValue = serial);
}
/// <inheritdoc/>
public void txtSources_Indirect(Lab0StringInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].StringInput[Joins.Strings.txtSources_IndirectState], this);
}
}
/// <inheritdoc/>
public void txtSources_Indirect(string serial)
{
txtSources_Indirect((sig, component) => sig.StringValue = serial);
}
#endregion
#region Overrides
public override int GetHashCode()
{
return (int)ControlJoinId;
}
public override string ToString()
{
return string.Format("Contract: {0} Component: {1} HashCode: {2} {3}", "Lab0", GetType().Name, GetHashCode(), UserObject != null ? "UserObject: " + UserObject : null);
}
#endregion
#region IDisposable
public bool IsDisposed { get; set; }
public void Dispose()
{
if (IsDisposed)
return;
IsDisposed = true;
btnBack_PressEvent = null;
btnDisplayPowerOff_PressEvent = null;
btnDisplayPowerOn_PressEvent = null;
btnSource1_PressEvent = null;
btnSource2_PressEvent = null;
btnSource3_PressEvent = null;
btnSystemPowerOff_PressEvent = null;
btnSystemPowerOn_PressEvent = null;
}
#endregion
}
}

View file

@ -0,0 +1,578 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by CrestronConstruct.
// AppHost: 2.101.8.0
// UI Plugin: 1.3701.9.0
//
// Project: MEP621_XPanel
// Version: 1.0.0.0
// Sdk: CH5:2.11.1.2
// Strategy: Modern
// IndexOnly: False
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport;
using MEP621_XPanel;
namespace MEP621_XPanel
{
/// <summary>
/// Lab1
/// </summary>
public partial interface ILab1
{
object UserObject { get; set; }
/// <summary>
/// Event txtInputField.Output Text (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> txtInputField_OutputTextEvent;
/// <summary>
/// Event btnAlert.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnAlert_PressEvent;
/// <summary>
/// Event btnBack.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnBack_PressEvent;
/// <summary>
/// Event btnOccupancy.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnOccupancy_PressEvent;
/// <summary>
/// Event btnOccupancyFb.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnOccupancyFb_PressEvent;
/// <summary>
/// Event btnVacancyFb.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnVacancyFb_PressEvent;
/// <summary>
/// btnAlert.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnAlert_Selected(Lab1BoolInputSigDelegate callback);
/// <summary>
/// btnAlert.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnAlert_Selected(bool digital);
/// <summary>
/// btnBack.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnBack_Selected(Lab1BoolInputSigDelegate callback);
/// <summary>
/// btnBack.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnBack_Selected(bool digital);
/// <summary>
/// btnOccupancy.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnOccupancy_Selected(Lab1BoolInputSigDelegate callback);
/// <summary>
/// btnOccupancy.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnOccupancy_Selected(bool digital);
/// <summary>
/// btnOccupancyFb.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnOccupancyFb_Selected(Lab1BoolInputSigDelegate callback);
/// <summary>
/// btnOccupancyFb.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnOccupancyFb_Selected(bool digital);
/// <summary>
/// btnVacancyFb.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnVacancyFb_Selected(Lab1BoolInputSigDelegate callback);
/// <summary>
/// btnVacancyFb.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnVacancyFb_Selected(bool digital);
/// <summary>
/// txtInputField.Indirect Text Feedback
/// </summary>
/// <param name="callback">The <see cref="string"/> delegate to update the panel.</param>
void txtInputField_IndirectText(Lab1StringInputSigDelegate callback);
/// <summary>
/// txtInputField.Indirect Text Feedback
/// </summary>
/// <param name="serial">The <see cref="string"/> to update the panel.</param>
void txtInputField_IndirectText(string serial);
/// <summary>
/// txtAlert.Indirect Feedback
/// </summary>
/// <param name="callback">The <see cref="string"/> delegate to update the panel.</param>
void txtAlert_Indirect(Lab1StringInputSigDelegate callback);
/// <summary>
/// txtAlert.Indirect Feedback
/// </summary>
/// <param name="serial">The <see cref="string"/> to update the panel.</param>
void txtAlert_Indirect(string serial);
/// <summary>
/// txtRoomName.Indirect Feedback
/// </summary>
/// <param name="callback">The <see cref="string"/> delegate to update the panel.</param>
void txtRoomName_Indirect(Lab1StringInputSigDelegate callback);
/// <summary>
/// txtRoomName.Indirect Feedback
/// </summary>
/// <param name="serial">The <see cref="string"/> to update the panel.</param>
void txtRoomName_Indirect(string serial);
}
/// <summary>
/// Digital callback used in feedback events.
/// </summary>
/// <param name="boolInputSig">The <see cref="BoolInputSig"/> joinInfo data.</param>
/// <param name="lab1">The <see cref="ILab1"/> on which to apply the feedback.</param>
public delegate void Lab1BoolInputSigDelegate(BoolInputSig boolInputSig, ILab1 lab1);
/// <summary>
/// Digital callback used in feedback events.
/// </summary>
/// <param name="stringInputSig">The <see cref="StringInputSig"/> joinInfo data.</param>
/// <param name="lab1">The <see cref="ILab1"/> on which to apply the feedback.</param>
public delegate void Lab1StringInputSigDelegate(StringInputSig stringInputSig, ILab1 lab1);
/// <summary>
/// Lab1
/// </summary>
internal partial class Lab1 : ILab1, IDisposable
{
#region Standard CH5 Component members
private ComponentMediator ComponentMediator { get; set; }
public object UserObject { get; set; }
/// <summary>
/// Gets the ControlJoinId a.k.a. SmartObjectId. This Id identifies the extender symbol.
/// </summary>
public uint ControlJoinId { get; private set; }
private IList<BasicTriListWithSmartObject> _devices;
/// <summary>
/// Gets the list of devices.
/// </summary>
public IList<BasicTriListWithSmartObject> Devices { get { return _devices; } }
#endregion
#region Joins
private static class Joins
{
/// <summary>
/// Digital signals,
/// </summary>
internal static class Booleans
{
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab1.btnAlert.Press
/// btnAlert.Press
/// </summary>
public const uint btnAlert_PressEvent = 3;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab1.btnBack.Press
/// btnBack.Press
/// </summary>
public const uint btnBack_PressEvent = 4;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab1.btnOccupancy.Press
/// btnOccupancy.Press
/// </summary>
public const uint btnOccupancy_PressEvent = 5;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab1.btnOccupancyFb.Press
/// btnOccupancyFb.Press
/// </summary>
public const uint btnOccupancyFb_PressEvent = 6;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab1.btnVacancyFb.Press
/// btnVacancyFb.Press
/// </summary>
public const uint btnVacancyFb_PressEvent = 7;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab1.btnAlert.Selected
/// btnAlert.Selected
/// </summary>
public const uint btnAlert_SelectedState = 3;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab1.btnBack.Selected
/// btnBack.Selected
/// </summary>
public const uint btnBack_SelectedState = 4;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab1.btnOccupancy.Selected
/// btnOccupancy.Selected
/// </summary>
public const uint btnOccupancy_SelectedState = 5;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab1.btnOccupancyFb.Selected
/// btnOccupancyFb.Selected
/// </summary>
public const uint btnOccupancyFb_SelectedState = 6;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab1.btnVacancyFb.Selected
/// btnVacancyFb.Selected
/// </summary>
public const uint btnVacancyFb_SelectedState = 7;
}
/// <summary>
/// Serial signals.
/// </summary>
internal static class Strings
{
/// <summary>
/// Output or Event serial joinInfo from panel to Control System: Lab1.txtInputField.OutputText
/// txtInputField.Output Text
/// </summary>
public const uint txtInputField_OutputTextEvent = 1;
/// <summary>
/// Input or Feedback serial joinInfo from Control System to panel: Lab1.txtInputField.IndirectText
/// txtInputField.Indirect Text
/// </summary>
public const uint txtInputField_IndirectTextState = 1;
/// <summary>
/// Input or Feedback serial joinInfo from Control System to panel: Lab1.txtAlert.Indirect
/// txtAlert.Indirect
/// </summary>
public const uint txtAlert_IndirectState = 2;
/// <summary>
/// Input or Feedback serial joinInfo from Control System to panel: Lab1.txtRoomName.Indirect
/// txtRoomName.Indirect
/// </summary>
public const uint txtRoomName_IndirectState = 3;
}
}
#endregion
#region Construction and Initialization
/// <summary>
/// Initializes a new instance of the <see cref="Lab1"/> component class.
/// </summary>
/// <param name="componentMediator">The <see cref="ComponentMediator"/> used to instantiate the component.</param>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
/// <param name="itemCount">The number of items.</param>
internal Lab1(ComponentMediator componentMediator, uint controlJoinId, uint? itemCount)
{
ComponentMediator = componentMediator;
Initialize(controlJoinId, itemCount);
}
/// <summary>
/// Initializes a new instance of the <see cref="Lab1"/> component class.
/// </summary>
/// <param name="componentMediator">The <see cref="ComponentMediator"/> used to instantiate the component.</param>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
internal Lab1(ComponentMediator componentMediator, uint controlJoinId) : this(componentMediator, controlJoinId, null)
{
}
/// <summary>
/// Initializes a new instance with default itemCount.
/// </summary>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
private void Initialize(uint controlJoinId)
{
Initialize(controlJoinId, null);
}
private Dictionary<string, Indexes> _indexLookup = new Dictionary<string, Indexes>();
/// <summary>
/// Initializes a new instance of the <see cref="Lab1"/> component class.
/// </summary>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
/// <param name="itemCount">The number of items.</param>
private void Initialize(uint controlJoinId, uint? itemCount)
{
ControlJoinId = controlJoinId;
_devices = new List<BasicTriListWithSmartObject>();
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnAlert_PressEvent, onbtnAlert_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnBack_PressEvent, onbtnBack_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnOccupancy_PressEvent, onbtnOccupancy_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnOccupancyFb_PressEvent, onbtnOccupancyFb_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnVacancyFb_PressEvent, onbtnVacancyFb_Press);
ComponentMediator.ConfigureStringEvent(controlJoinId, Joins.Strings.txtInputField_OutputTextEvent, ontxtInputField_OutputText);
}
public void AddDevice(BasicTriListWithSmartObject device)
{
Devices.Add(device);
ComponentMediator.HookSmartObjectEvents(device.SmartObjects[ControlJoinId]);
}
public void RemoveDevice(BasicTriListWithSmartObject device)
{
Devices.Remove(device);
ComponentMediator.UnHookSmartObjectEvents(device.SmartObjects[ControlJoinId]);
}
#endregion
#region CH5 Contract
/// <inheritdoc/>
public event EventHandler<UIEventArgs> txtInputField_OutputTextEvent;
private void ontxtInputField_OutputText(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = txtInputField_OutputTextEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnAlert_PressEvent;
private void onbtnAlert_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnAlert_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnBack_PressEvent;
private void onbtnBack_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnBack_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnOccupancy_PressEvent;
private void onbtnOccupancy_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnOccupancy_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnOccupancyFb_PressEvent;
private void onbtnOccupancyFb_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnOccupancyFb_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnVacancyFb_PressEvent;
private void onbtnVacancyFb_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnVacancyFb_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public void btnAlert_Selected(Lab1BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnAlert_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnAlert_Selected(bool digital)
{
btnAlert_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnBack_Selected(Lab1BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnBack_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnBack_Selected(bool digital)
{
btnBack_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnOccupancy_Selected(Lab1BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnOccupancy_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnOccupancy_Selected(bool digital)
{
btnOccupancy_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnOccupancyFb_Selected(Lab1BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnOccupancyFb_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnOccupancyFb_Selected(bool digital)
{
btnOccupancyFb_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnVacancyFb_Selected(Lab1BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnVacancyFb_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnVacancyFb_Selected(bool digital)
{
btnVacancyFb_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void txtAlert_Indirect(Lab1StringInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].StringInput[Joins.Strings.txtAlert_IndirectState], this);
}
}
/// <inheritdoc/>
public void txtAlert_Indirect(string serial)
{
txtAlert_Indirect((sig, component) => sig.StringValue = serial);
}
/// <inheritdoc/>
public void txtInputField_IndirectText(Lab1StringInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].StringInput[Joins.Strings.txtInputField_IndirectTextState], this);
}
}
/// <inheritdoc/>
public void txtInputField_IndirectText(string serial)
{
txtInputField_IndirectText((sig, component) => sig.StringValue = serial);
}
/// <inheritdoc/>
public void txtRoomName_Indirect(Lab1StringInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].StringInput[Joins.Strings.txtRoomName_IndirectState], this);
}
}
/// <inheritdoc/>
public void txtRoomName_Indirect(string serial)
{
txtRoomName_Indirect((sig, component) => sig.StringValue = serial);
}
#endregion
#region Overrides
public override int GetHashCode()
{
return (int)ControlJoinId;
}
public override string ToString()
{
return string.Format("Contract: {0} Component: {1} HashCode: {2} {3}", "Lab1", GetType().Name, GetHashCode(), UserObject != null ? "UserObject: " + UserObject : null);
}
#endregion
#region IDisposable
public bool IsDisposed { get; set; }
public void Dispose()
{
if (IsDisposed)
return;
IsDisposed = true;
txtInputField_OutputTextEvent = null;
btnAlert_PressEvent = null;
btnBack_PressEvent = null;
btnOccupancy_PressEvent = null;
btnOccupancyFb_PressEvent = null;
btnVacancyFb_PressEvent = null;
}
#endregion
}
}

View file

@ -0,0 +1,758 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by CrestronConstruct.
// AppHost: 2.101.8.0
// UI Plugin: 1.3701.9.0
//
// Project: MEP621_XPanel
// Version: 1.0.0.0
// Sdk: CH5:2.11.1.2
// Strategy: Modern
// IndexOnly: False
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport;
using MEP621_XPanel;
namespace MEP621_XPanel
{
/// <summary>
/// Lab2
/// </summary>
public partial interface ILab2
{
object UserObject { get; set; }
/// <summary>
/// Event btnBack.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnBack_PressEvent;
/// <summary>
/// Event btnCheck1.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnCheck1_PressEvent;
/// <summary>
/// Event btnCheck2.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnCheck2_PressEvent;
/// <summary>
/// Event btnCheck3.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnCheck3_PressEvent;
/// <summary>
/// Event btnCheck4.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnCheck4_PressEvent;
/// <summary>
/// Event btnCheckComplete.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnCheckComplete_PressEvent;
/// <summary>
/// Event btnStartCheck.Press (from panel to Control System)
/// </summary>
event EventHandler<UIEventArgs> btnStartCheck_PressEvent;
/// <summary>
/// btnBack.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnBack_Selected(Lab2BoolInputSigDelegate callback);
/// <summary>
/// btnBack.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnBack_Selected(bool digital);
/// <summary>
/// btnMaintenanceOff.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnMaintenanceOff_Selected(Lab2BoolInputSigDelegate callback);
/// <summary>
/// btnMaintenanceOff.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnMaintenanceOff_Selected(bool digital);
/// <summary>
/// btnMaintenanceOn.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnMaintenanceOn_Selected(Lab2BoolInputSigDelegate callback);
/// <summary>
/// btnMaintenanceOn.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnMaintenanceOn_Selected(bool digital);
/// <summary>
/// btnSystemCheck.Selected Feedback
/// </summary>
/// <param name="callback">The bool delegate to update the panel.</param>
void btnSystemCheck_Selected(Lab2BoolInputSigDelegate callback);
/// <summary>
/// btnSystemCheck.Selected Feedback
/// </summary>
/// <param name="digital">The bool to update the panel.</param>
void btnSystemCheck_Selected(bool digital);
/// <summary>
/// btnCheck1.Mode Feedback
/// </summary>
/// <param name="callback">The ushort delegate to update the panel.</param>
void btnCheck1_Mode(Lab2UShortInputSigDelegate callback);
/// <summary>
/// btnCheck1.Mode Feedback
/// </summary>
/// <param name="callback">The ushort analog to update the panel.</param>
void btnCheck1_Mode(ushort analog);
/// <summary>
/// btnCheck1.Mode Feedback
/// </summary>
/// <param name="callback">The short analog to update the panel.</param>
void btnCheck1_Mode(short analog);
/// <summary>
/// btnCheck2.Mode Feedback
/// </summary>
/// <param name="callback">The ushort delegate to update the panel.</param>
void btnCheck2_Mode(Lab2UShortInputSigDelegate callback);
/// <summary>
/// btnCheck2.Mode Feedback
/// </summary>
/// <param name="callback">The ushort analog to update the panel.</param>
void btnCheck2_Mode(ushort analog);
/// <summary>
/// btnCheck2.Mode Feedback
/// </summary>
/// <param name="callback">The short analog to update the panel.</param>
void btnCheck2_Mode(short analog);
/// <summary>
/// btnCheck3.Mode Feedback
/// </summary>
/// <param name="callback">The ushort delegate to update the panel.</param>
void btnCheck3_Mode(Lab2UShortInputSigDelegate callback);
/// <summary>
/// btnCheck3.Mode Feedback
/// </summary>
/// <param name="callback">The ushort analog to update the panel.</param>
void btnCheck3_Mode(ushort analog);
/// <summary>
/// btnCheck3.Mode Feedback
/// </summary>
/// <param name="callback">The short analog to update the panel.</param>
void btnCheck3_Mode(short analog);
/// <summary>
/// btnCheck4.Mode Feedback
/// </summary>
/// <param name="callback">The ushort delegate to update the panel.</param>
void btnCheck4_Mode(Lab2UShortInputSigDelegate callback);
/// <summary>
/// btnCheck4.Mode Feedback
/// </summary>
/// <param name="callback">The ushort analog to update the panel.</param>
void btnCheck4_Mode(ushort analog);
/// <summary>
/// btnCheck4.Mode Feedback
/// </summary>
/// <param name="callback">The short analog to update the panel.</param>
void btnCheck4_Mode(short analog);
/// <summary>
/// txtCheckStatus.Indirect Feedback
/// </summary>
/// <param name="callback">The <see cref="string"/> delegate to update the panel.</param>
void txtCheckStatus_Indirect(Lab2StringInputSigDelegate callback);
/// <summary>
/// txtCheckStatus.Indirect Feedback
/// </summary>
/// <param name="serial">The <see cref="string"/> to update the panel.</param>
void txtCheckStatus_Indirect(string serial);
/// <summary>
/// txtRoomName.Indirect Feedback
/// </summary>
/// <param name="callback">The <see cref="string"/> delegate to update the panel.</param>
void txtRoomName_Indirect(Lab2StringInputSigDelegate callback);
/// <summary>
/// txtRoomName.Indirect Feedback
/// </summary>
/// <param name="serial">The <see cref="string"/> to update the panel.</param>
void txtRoomName_Indirect(string serial);
/// <summary>
/// txtSystemCheck.Indirect Feedback
/// </summary>
/// <param name="callback">The <see cref="string"/> delegate to update the panel.</param>
void txtSystemCheck_Indirect(Lab2StringInputSigDelegate callback);
/// <summary>
/// txtSystemCheck.Indirect Feedback
/// </summary>
/// <param name="serial">The <see cref="string"/> to update the panel.</param>
void txtSystemCheck_Indirect(string serial);
}
/// <summary>
/// Digital callback used in feedback events.
/// </summary>
/// <param name="boolInputSig">The <see cref="BoolInputSig"/> joinInfo data.</param>
/// <param name="lab2">The <see cref="ILab2"/> on which to apply the feedback.</param>
public delegate void Lab2BoolInputSigDelegate(BoolInputSig boolInputSig, ILab2 lab2);
/// <summary>
/// Digital callback used in feedback events.
/// </summary>
/// <param name="uShortInputSig">The <see cref="UShortInputSig"/> joinInfo data.</param>
/// <param name="lab2">The <see cref="ILab2"/> on which to apply the feedback.</param>
public delegate void Lab2UShortInputSigDelegate(UShortInputSig uShortInputSig, ILab2 lab2);
/// <summary>
/// Digital callback used in feedback events.
/// </summary>
/// <param name="stringInputSig">The <see cref="StringInputSig"/> joinInfo data.</param>
/// <param name="lab2">The <see cref="ILab2"/> on which to apply the feedback.</param>
public delegate void Lab2StringInputSigDelegate(StringInputSig stringInputSig, ILab2 lab2);
/// <summary>
/// Lab2
/// </summary>
internal partial class Lab2 : ILab2, IDisposable
{
#region Standard CH5 Component members
private ComponentMediator ComponentMediator { get; set; }
public object UserObject { get; set; }
/// <summary>
/// Gets the ControlJoinId a.k.a. SmartObjectId. This Id identifies the extender symbol.
/// </summary>
public uint ControlJoinId { get; private set; }
private IList<BasicTriListWithSmartObject> _devices;
/// <summary>
/// Gets the list of devices.
/// </summary>
public IList<BasicTriListWithSmartObject> Devices { get { return _devices; } }
#endregion
#region Joins
private static class Joins
{
/// <summary>
/// Digital signals,
/// </summary>
internal static class Booleans
{
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab2.btnBack.Press
/// btnBack.Press
/// </summary>
public const uint btnBack_PressEvent = 3;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab2.btnCheck1.Press
/// btnCheck1.Press
/// </summary>
public const uint btnCheck1_PressEvent = 4;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab2.btnCheck2.Press
/// btnCheck2.Press
/// </summary>
public const uint btnCheck2_PressEvent = 5;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab2.btnCheck3.Press
/// btnCheck3.Press
/// </summary>
public const uint btnCheck3_PressEvent = 6;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab2.btnCheck4.Press
/// btnCheck4.Press
/// </summary>
public const uint btnCheck4_PressEvent = 7;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab2.btnCheckComplete.Press
/// btnCheckComplete.Press
/// </summary>
public const uint btnCheckComplete_PressEvent = 8;
/// <summary>
/// Output or Event digital joinInfo from panel to Control System: Lab2.btnStartCheck.Press
/// btnStartCheck.Press
/// </summary>
public const uint btnStartCheck_PressEvent = 9;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab2.btnBack.Selected
/// btnBack.Selected
/// </summary>
public const uint btnBack_SelectedState = 3;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab2.btnMaintenanceOff.Selected
/// btnMaintenanceOff.Selected
/// </summary>
public const uint btnMaintenanceOff_SelectedState = 4;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab2.btnMaintenanceOn.Selected
/// btnMaintenanceOn.Selected
/// </summary>
public const uint btnMaintenanceOn_SelectedState = 5;
/// <summary>
/// Input or Feedback digital joinInfo from Control System to panel: Lab2.btnSystemCheck.Selected
/// btnSystemCheck.Selected
/// </summary>
public const uint btnSystemCheck_SelectedState = 6;
}
/// <summary>
/// Analog signals.
/// </summary>
internal static class Numerics
{
/// <summary>
/// Input or Feedback analog joinInfo from Control System to panel: Lab2.btnCheck1.Mode
/// btnCheck1.Mode
/// </summary>
public const uint btnCheck1_ModeState = 9;
/// <summary>
/// Input or Feedback analog joinInfo from Control System to panel: Lab2.btnCheck2.Mode
/// btnCheck2.Mode
/// </summary>
public const uint btnCheck2_ModeState = 10;
/// <summary>
/// Input or Feedback analog joinInfo from Control System to panel: Lab2.btnCheck3.Mode
/// btnCheck3.Mode
/// </summary>
public const uint btnCheck3_ModeState = 11;
/// <summary>
/// Input or Feedback analog joinInfo from Control System to panel: Lab2.btnCheck4.Mode
/// btnCheck4.Mode
/// </summary>
public const uint btnCheck4_ModeState = 12;
}
/// <summary>
/// Serial signals.
/// </summary>
internal static class Strings
{
/// <summary>
/// Input or Feedback serial joinInfo from Control System to panel: Lab2.txtCheckStatus.Indirect
/// txtCheckStatus.Indirect
/// </summary>
public const uint txtCheckStatus_IndirectState = 1;
/// <summary>
/// Input or Feedback serial joinInfo from Control System to panel: Lab2.txtRoomName.Indirect
/// txtRoomName.Indirect
/// </summary>
public const uint txtRoomName_IndirectState = 2;
/// <summary>
/// Input or Feedback serial joinInfo from Control System to panel: Lab2.txtSystemCheck.Indirect
/// txtSystemCheck.Indirect
/// </summary>
public const uint txtSystemCheck_IndirectState = 3;
}
}
#endregion
#region Construction and Initialization
/// <summary>
/// Initializes a new instance of the <see cref="Lab2"/> component class.
/// </summary>
/// <param name="componentMediator">The <see cref="ComponentMediator"/> used to instantiate the component.</param>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
/// <param name="itemCount">The number of items.</param>
internal Lab2(ComponentMediator componentMediator, uint controlJoinId, uint? itemCount)
{
ComponentMediator = componentMediator;
Initialize(controlJoinId, itemCount);
}
/// <summary>
/// Initializes a new instance of the <see cref="Lab2"/> component class.
/// </summary>
/// <param name="componentMediator">The <see cref="ComponentMediator"/> used to instantiate the component.</param>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
internal Lab2(ComponentMediator componentMediator, uint controlJoinId) : this(componentMediator, controlJoinId, null)
{
}
/// <summary>
/// Initializes a new instance with default itemCount.
/// </summary>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
private void Initialize(uint controlJoinId)
{
Initialize(controlJoinId, null);
}
private Dictionary<string, Indexes> _indexLookup = new Dictionary<string, Indexes>();
/// <summary>
/// Initializes a new instance of the <see cref="Lab2"/> component class.
/// </summary>
/// <param name="controlJoinId">The SmartObjectId at which to create the component.</param>
/// <param name="itemCount">The number of items.</param>
private void Initialize(uint controlJoinId, uint? itemCount)
{
ControlJoinId = controlJoinId;
_devices = new List<BasicTriListWithSmartObject>();
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnBack_PressEvent, onbtnBack_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnCheck1_PressEvent, onbtnCheck1_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnCheck2_PressEvent, onbtnCheck2_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnCheck3_PressEvent, onbtnCheck3_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnCheck4_PressEvent, onbtnCheck4_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnCheckComplete_PressEvent, onbtnCheckComplete_Press);
ComponentMediator.ConfigureBooleanEvent(controlJoinId, Joins.Booleans.btnStartCheck_PressEvent, onbtnStartCheck_Press);
}
public void AddDevice(BasicTriListWithSmartObject device)
{
Devices.Add(device);
ComponentMediator.HookSmartObjectEvents(device.SmartObjects[ControlJoinId]);
}
public void RemoveDevice(BasicTriListWithSmartObject device)
{
Devices.Remove(device);
ComponentMediator.UnHookSmartObjectEvents(device.SmartObjects[ControlJoinId]);
}
#endregion
#region CH5 Contract
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnBack_PressEvent;
private void onbtnBack_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnBack_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnCheck1_PressEvent;
private void onbtnCheck1_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnCheck1_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnCheck2_PressEvent;
private void onbtnCheck2_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnCheck2_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnCheck3_PressEvent;
private void onbtnCheck3_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnCheck3_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnCheck4_PressEvent;
private void onbtnCheck4_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnCheck4_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnCheckComplete_PressEvent;
private void onbtnCheckComplete_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnCheckComplete_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public event EventHandler<UIEventArgs> btnStartCheck_PressEvent;
private void onbtnStartCheck_Press(SmartObjectEventArgs eventArgs)
{
EventHandler<UIEventArgs> handler = btnStartCheck_PressEvent;
if (handler != null)
handler(this, UIEventArgs.CreateEventArgs(eventArgs));
}
/// <inheritdoc/>
public void btnBack_Selected(Lab2BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnBack_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnBack_Selected(bool digital)
{
btnBack_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnMaintenanceOff_Selected(Lab2BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnMaintenanceOff_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnMaintenanceOff_Selected(bool digital)
{
btnMaintenanceOff_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnMaintenanceOn_Selected(Lab2BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnMaintenanceOn_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnMaintenanceOn_Selected(bool digital)
{
btnMaintenanceOn_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnSystemCheck_Selected(Lab2BoolInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].BooleanInput[Joins.Booleans.btnSystemCheck_SelectedState], this);
}
}
/// <inheritdoc/>
public void btnSystemCheck_Selected(bool digital)
{
btnSystemCheck_Selected((sig, component) => sig.BoolValue = digital);
}
/// <inheritdoc/>
public void btnCheck1_Mode(Lab2UShortInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].UShortInput[Joins.Numerics.btnCheck1_ModeState], this);
}
}
/// <inheritdoc/>
public void btnCheck1_Mode(ushort analog)
{
btnCheck1_Mode((sig, component) => sig.UShortValue = analog);
}
/// <inheritdoc/>
public void btnCheck1_Mode(short analog)
{
btnCheck1_Mode((sig, component) => sig.ShortValue = analog);
}
/// <inheritdoc/>
public void btnCheck2_Mode(Lab2UShortInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].UShortInput[Joins.Numerics.btnCheck2_ModeState], this);
}
}
/// <inheritdoc/>
public void btnCheck2_Mode(ushort analog)
{
btnCheck2_Mode((sig, component) => sig.UShortValue = analog);
}
/// <inheritdoc/>
public void btnCheck2_Mode(short analog)
{
btnCheck2_Mode((sig, component) => sig.ShortValue = analog);
}
/// <inheritdoc/>
public void btnCheck3_Mode(Lab2UShortInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].UShortInput[Joins.Numerics.btnCheck3_ModeState], this);
}
}
/// <inheritdoc/>
public void btnCheck3_Mode(ushort analog)
{
btnCheck3_Mode((sig, component) => sig.UShortValue = analog);
}
/// <inheritdoc/>
public void btnCheck3_Mode(short analog)
{
btnCheck3_Mode((sig, component) => sig.ShortValue = analog);
}
/// <inheritdoc/>
public void btnCheck4_Mode(Lab2UShortInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].UShortInput[Joins.Numerics.btnCheck4_ModeState], this);
}
}
/// <inheritdoc/>
public void btnCheck4_Mode(ushort analog)
{
btnCheck4_Mode((sig, component) => sig.UShortValue = analog);
}
/// <inheritdoc/>
public void btnCheck4_Mode(short analog)
{
btnCheck4_Mode((sig, component) => sig.ShortValue = analog);
}
/// <inheritdoc/>
public void txtCheckStatus_Indirect(Lab2StringInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].StringInput[Joins.Strings.txtCheckStatus_IndirectState], this);
}
}
/// <inheritdoc/>
public void txtCheckStatus_Indirect(string serial)
{
txtCheckStatus_Indirect((sig, component) => sig.StringValue = serial);
}
/// <inheritdoc/>
public void txtRoomName_Indirect(Lab2StringInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].StringInput[Joins.Strings.txtRoomName_IndirectState], this);
}
}
/// <inheritdoc/>
public void txtRoomName_Indirect(string serial)
{
txtRoomName_Indirect((sig, component) => sig.StringValue = serial);
}
/// <inheritdoc/>
public void txtSystemCheck_Indirect(Lab2StringInputSigDelegate callback)
{
for (int index = 0; index < Devices.Count; index++)
{
callback(Devices[index].SmartObjects[ControlJoinId].StringInput[Joins.Strings.txtSystemCheck_IndirectState], this);
}
}
/// <inheritdoc/>
public void txtSystemCheck_Indirect(string serial)
{
txtSystemCheck_Indirect((sig, component) => sig.StringValue = serial);
}
#endregion
#region Overrides
public override int GetHashCode()
{
return (int)ControlJoinId;
}
public override string ToString()
{
return string.Format("Contract: {0} Component: {1} HashCode: {2} {3}", "Lab2", GetType().Name, GetHashCode(), UserObject != null ? "UserObject: " + UserObject : null);
}
#endregion
#region IDisposable
public bool IsDisposed { get; set; }
public void Dispose()
{
if (IsDisposed)
return;
IsDisposed = true;
btnBack_PressEvent = null;
btnCheck1_PressEvent = null;
btnCheck2_PressEvent = null;
btnCheck3_PressEvent = null;
btnCheck4_PressEvent = null;
btnCheckComplete_PressEvent = null;
btnStartCheck_PressEvent = null;
}
#endregion
}
}

View file

@ -0,0 +1,66 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by CrestronConstruct.
// AppHost: 2.101.8.0
// UI Plugin: 1.3701.9.0
//
// Project: MEP621_XPanel
// Version: 1.0.0.0
// Sdk: CH5:2.11.1.2
// Strategy: Modern
// IndexOnly: False
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport;
namespace MEP621_XPanel
{
public class UIEventArgs : EventArgs
{
public BasicTriListWithSmartObject Device { get; private set; }
public SigEventArgs SigArgs { get; private set; }
public UIEventArgs(SmartObjectEventArgs eventArgs)
{
Device = (BasicTriListWithSmartObject) eventArgs.SmartObjectArgs.Device;
SigArgs = eventArgs;
}
public static UIEventArgs CreateEventArgs(SmartObjectEventArgs eventArgs)
{
return new UIEventArgs(eventArgs);
}
}
/// <summary>
/// Data structure to carry return values because 2008 does not support Tuples.
/// </summary>
public struct Indexes
{
/// <summary>
/// Item index in Widget List.
/// </summary>
public ushort ItemIndex;
/// <summary>
/// join index in List (Button List, Tab, Dpad, keypad).
/// </summary>
public ushort JoinIndex;
public bool IsError;
public Indexes(ushort itemIndex, ushort joinIndex, bool isError)
{
ItemIndex = itemIndex;
JoinIndex = joinIndex;
IsError = isError;
}
}
}