├── .gitattributes ├── .gitignore ├── Cisco Touch 10 ├── KL Cisco Touch 10 DPad v1.1.umc ├── KL Cisco Touch 10 Group v1.1.ush ├── KL Cisco Touch 10 Group v1.1.usp ├── KL Cisco Touch 10 Group v1.2.umc ├── KL Cisco Touch 10 Group v1.2.ush ├── KL Cisco Touch 10 Group v1.2.usp ├── KL Cisco Touch 10 Processor v1.0.ush ├── KL Cisco Touch 10 Processor v1.0.usp ├── KL Cisco Touch 10 System v1.8.umc ├── KL Cisco Touch 10 System v1.8.ush ├── KL Cisco Touch 10 System v1.8.usp ├── KL Cisco Touch 10 Toggle v1.1.umc ├── KL Cisco Touch 10 Toggle v1.1.ush └── KL Cisco Touch 10 Toggle v1.1.usp ├── Cisco ├── KL Cisco Phonebook Pager v1.0.umc ├── KL Cisco SX80 Connect v1.0.usp ├── KL Cisco Touch 10 Button v1.0.umc ├── KL Cisco Touch 10 Group v1.0.umc ├── KL Cisco Touch 10 Toggle v1.0.umc ├── KL Phonebook Pager Driver v1.1.ush ├── KL Phonebook Pager Driver v1.1.usp ├── KL SX80 Phonebook Pager.ush └── KL SX80 Phonebook Pager.usp ├── Click to Join ├── KL Polycom Click-to-Join Control v1.3.umc ├── KL Polycom Click-to-Join v0.1.usp ├── KL Polycom Click-to-Join v1.1.ush └── KL Polycom Click-to-Join v1.1.usp ├── Countdown Timer └── KL Countdown Timer v1.0.umc ├── Display Management ├── KL Display Management v3.0.umc └── KL Display Management v3.0_archive.zip ├── Dynamic EISC ├── KL Dynamic EISC Client v1.0.umc ├── KL Dynamic EISC Client v1.0_archive.zip ├── KL Dynamic TCP Client v1.0.ush └── KL Dynamic TCP Client v1.0.usp ├── Grep └── KL Grep v1.0.usp ├── Instant On └── KL Instant On v1.2.umc ├── Kernel ├── Boardroom_Kernel_v1.3.umc ├── KL Page Tracking v1.0.usp ├── Keypad_Kernel_v1.0.umc ├── Training Room_Kernel_v1.0.umc └── VC Room_Kernel_v1.2.umc ├── LICENSE ├── Multiple Analog One-Shot ├── KL Multiple Analog One-Shot v1.0.ush └── KL Multiple Analog One-Shot v1.0.usp ├── Page Tracking ├── KL Page Tracking v1.0.ush └── KL Page Tracking v1.0.usp ├── Phonebook ├── KL Phonebook Driver v1.0.ush ├── KL Phonebook Driver v1.0.usp ├── KL Phonebook Driver v1.1.ush ├── KL Phonebook Driver v1.1.usp ├── KL Phonebook v1.0.umc ├── KL Phonebook v1.1.umc ├── MassLogic.clz ├── Phonebook Demo XPANEL.vtp ├── Phonebook Demo_CP3_v1.1.smw ├── Phonebook Demo_CP3_v1.1_compiled.zip └── Phonebook Demo_CP3_v1.smw ├── Polycom ├── KL Polycom Click-to-Join Control v1.3.um2 ├── KL Polycom Click-to-Join Control v1.3.umc ├── KL Polycom Click-to-Join v1.1.ush ├── KL Polycom Click-to-Join v1.1.usp ├── KL Polycom Globaldir Processor v1.1.ush └── KL Polycom Globaldir Processor v1.1.usp ├── README.md ├── Samsung ├── KL Samsung Checksum v1.0.ush └── KL Samsung Checksum v1.0.usp ├── Serial └── KL Serial Selector v1.0.umc ├── SimplCrypto ├── SIMPL │ ├── Crypto Tests v1.smw │ ├── Simpl MD5 v1.ush │ ├── Simpl MD5 v1.usp │ └── SimplCrypto.clz ├── SimplCrypto.sln ├── SimplCrypto.suo └── SimplCrypto │ ├── Properties │ ├── AssemblyInfo.cs │ └── ControlSystem.cfg │ ├── SimplCrypto.csproj │ ├── SimplCrypto.csproj.user │ ├── SimplCrypto.projectinfo │ └── SimplMD5.cs ├── Speed Dial ├── KL Speed Dial v1.0.umc ├── KL Speed Dial v1.0.ush ├── KL Speed Dial v1.0.usp └── KL Speed Dial v1.0_Manifest.arcv ├── Standard UI ├── KL 16x16 Switcher v1.6.umc ├── KL Analog Multiway 16 v1.0.umc ├── KL Analog Multiway 16 with Offset v1.0.umc ├── KL Display Management v2.4.umc ├── KL Expanded Keyboard v1.0.umc ├── KL Multiple Analog Offset with Zero-Pass v1.2.umc ├── KL Passcode Driver v1.0.ush ├── KL Passcode Driver v1.0.usp ├── KL Passcode Entry v1.0.umc ├── KL Positive Negative Offset v1.0.ush ├── KL Positive Negative Offset v1.0.usp ├── KL Serial Select v1.1.umc ├── KL Simple Text Config Driver v1.1.ush ├── KL Simple Text Config Driver v1.1.usp ├── KL Simple Text Config v1.1.umc ├── KL Switcher Feedback v1.3.ush ├── KL Switcher Feedback v1.3.usp ├── KL System Power v1.2.umc ├── KL Text Edit v1.0.umc └── KL UI Mode v1.2.umc ├── TV Presets └── KL TV Presets v1.0.umc ├── Telnet └── KL Telnet Handshake v1.0.umc ├── Timed Pop Up └── KL Timed Pop Up v1.0.umc ├── Visionary PacketAV ├── KL Visionary PacketAV Decoder v1.0.umc ├── KL Visionary PacketAV Decoder v1.0_archive.zip ├── KL Visionary PacketAV Decoder v1.4.umc ├── KL Visionary PacketAV Driver v1.0.usp └── KL Visionary PacketAV Driver v1.3.usp └── Weekday Schedule └── KL Weekday Schedule v1.1.usp /.gitattributes: -------------------------------------------------------------------------------- 1 | *.smw binary 2 | *.umc binary 3 | *.vtp binary 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Archives 2 | *_archive.zip 3 | *_compiled.zip 4 | 5 | # Output files 6 | *.ASV 7 | *.arcv 8 | *.bin 9 | *.cdm 10 | *.ch5z 11 | *.lpz 12 | *.sig 13 | *.sm2 14 | *.smft 15 | *.spz 16 | *.um2 17 | *.vtz 18 | *.hash 19 | 20 | # SmartGraphics files 21 | *.ced 22 | *.sgd 23 | *.sgd_ 24 | *.sgd2 25 | *.bak 26 | 27 | # Project databases 28 | ProjDabs.ldb 29 | ProjDabs.mdb 30 | 31 | # SIMPL+ build 32 | SPlsWork/ 33 | 34 | # XPanel 35 | *.xexe/ 36 | *.xweb/ 37 | *.prj/ 38 | *.c3prj/ 39 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 DPad v1.1.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.14.21 8 | IntStrVrs=2 9 | MinSMWVrs=2.07.04 10 | MinTIOVrs=0 11 | SavedBy=SMW4.11.06 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Cisco Touch 10 DPad v1.1.umc 19 | DbVr=202.00.001.00 20 | DvcDbVr=200.20.002.00 21 | PgmNm=Kiel Lofstrand 22 | DlrNm=C1 23 | Incl=362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,767,830,883,1032,1062,1079,1134,1157,1199,1220,1222,1299,1348,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,3708,3902,3912,3918,3925,1766,2574,2651,2817,2886,2938,2947,3181,3197,3233,3710,3735,3736,3816,3888,4176,4308,4476,4591,4769,5360,5388,5420,5455,5497,5699,5813,5919,6150,6161, 24 | McNm=KL Cisco Touch 10 DPad v1.0 25 | SmVr=1120 26 | DvVr=1120 27 | TpN1=1 28 | TpN2=2 29 | TpN3=3 30 | TpN4=4 31 | TpN5=5 32 | APg=1 33 | FltTmp=1 34 | FpCS=0 35 | EnType=0 36 | ZeroOnIoOk=0 37 | SGMethod=1 38 | ] 39 | [ 40 | ObjTp=Bk 41 | Nm1=\ 42 | Sx1=0 43 | Sy1=0 44 | Mx1=0 45 | ] 46 | [ 47 | ObjTp=Bw 48 | H=1 49 | Lx=0 50 | Ly=0 51 | Rx=1118 52 | Ry=915 53 | Xm=-1 54 | Ym=-1 55 | SH=9 56 | Z=100 57 | Ht=1 58 | Hi=2 59 | ] 60 | [ 61 | ObjTp=Symbol 62 | Name=KL Cisco Touch 10 DPad v1.1 63 | Code=1 64 | SmplCName=KL Cisco Touch 10 DPad v1.1.umc 65 | Smpl-C=3 66 | CompilerTimePrecision=Single_Or_Double_Precision 67 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 68 | SMWRev=2.07.04 69 | TIORev=0 70 | S+=1 71 | HelpID=1055 72 | APg=1 73 | StdCmd=0 74 | FltTmp=1 75 | FpCS=0 76 | NumFixedInputs=7 77 | NumFixedOutputs=7 78 | NumFixedParams=1 79 | MinVariableInputs=0 80 | MinVariableInputsList2=0 81 | MinVariableInputsList3=0 82 | MinVariableOutputs=0 83 | MinVariableOutputsList2=0 84 | MinVariableOutputsList3=0 85 | MinVariableParams=0 86 | SymbolTree=46 87 | UserSymTreeName=Touch 10 88 | InputSigType1=Digital|Analog|Serial|String 89 | InputSigType2=Digital|Analog|Serial|String 90 | InputSigType3=Digital|Analog|Serial|String 91 | InputSigType4=Digital|Analog|Serial|String 92 | InputSigType5=Digital|Analog|Serial|String 93 | InputSigType6=Digital|Analog|Serial|String 94 | InputSigType7=Serial 95 | OutputSigType1=Digital 96 | OutputSigType2=Digital 97 | OutputSigType3=Digital 98 | OutputSigType4=Digital 99 | OutputSigType5=Digital 100 | OutputSigType6=Digital|Analog|Serial|String 101 | OutputSigType7=Serial 102 | ParamSigType1=String 103 | InputCue1=[~UNUSED~] 104 | InputCue2=[~UNUSED~] 105 | InputCue3=[~UNUSED~] 106 | InputCue4=[~UNUSED~] 107 | InputCue5=[~UNUSED~] 108 | InputCue6=[~UNUSED~] 109 | InputCue7=From_Processor 110 | OutputCue1=Up 111 | OutputCue2=Down 112 | OutputCue3=Left 113 | OutputCue4=Right 114 | OutputCue5=Center 115 | OutputCue6=[~UNUSED~] 116 | OutputCue7=To_Processor 117 | ParamCue1=Widget ID 118 | FileName=KL Cisco Touch 10 DPad v1.1.umc 119 | EncodingType=0 120 | ZeroOnIoOk=0 121 | ] 122 | [ 123 | ObjTp=Sm 124 | H=1 125 | SmC=157 126 | Nm=Central Control Modules 127 | ObjVer=1 128 | CF=2 129 | n1I=1 130 | n1O=1 131 | mI=1 132 | mO=1 133 | tO=1 134 | mP=1 135 | P1= 136 | ] 137 | [ 138 | ObjTp=Sm 139 | H=2 140 | SmC=157 141 | Nm=Network Modules 142 | ObjVer=1 143 | CF=2 144 | n1I=1 145 | n1O=1 146 | mI=1 147 | mO=1 148 | tO=1 149 | mP=1 150 | P1= 151 | ] 152 | [ 153 | ObjTp=Sm 154 | H=3 155 | SmC=157 156 | Nm=Ethernet 157 | ObjVer=1 158 | CF=2 159 | n1I=1 160 | n1O=1 161 | mI=1 162 | mO=1 163 | tO=1 164 | mP=1 165 | P1= 166 | ] 167 | [ 168 | ObjTp=Sm 169 | H=4 170 | SmC=156 171 | Nm=Logic 172 | ObjVer=1 173 | CF=2 174 | mC=2 175 | C1=9 176 | C2=8 177 | ] 178 | [ 179 | ObjTp=Sm 180 | H=5 181 | SmC=157 182 | Nm=DefineArguments 183 | ObjVer=1 184 | CF=2 185 | n1I=1 186 | n1O=1 187 | mC=1 188 | C1=6 189 | mI=1 190 | mO=1 191 | tO=1 192 | mP=1 193 | P1= 194 | ] 195 | [ 196 | ObjTp=Sm 197 | H=6 198 | SmC=55 199 | Nm=Argument Definition 200 | ObjVer=1 201 | PrH=5 202 | CF=2 203 | n1I=7 204 | n1O=7 205 | mI=7 206 | I1=9 207 | I2=9 208 | I3=9 209 | I4=9 210 | I5=9 211 | I6=9 212 | I7=11 213 | mO=7 214 | tO=7 215 | O1=4 216 | O2=5 217 | O3=6 218 | O4=7 219 | O5=8 220 | O6=9 221 | O7=10 222 | mP=1 223 | P1=Widget ID 224 | ] 225 | [ 226 | ObjTp=Sm 227 | H=8 228 | SmC=38 229 | Nm=Analog Equate 230 | ObjVer=1 231 | PrH=4 232 | CF=2 233 | n1I=2 234 | n1O=5 235 | mI=2 236 | I1=12 237 | mO=5 238 | tO=5 239 | O1=4 240 | O2=5 241 | O3=6 242 | O4=7 243 | O5=8 244 | mP=5 245 | P1=1d 246 | P2=2d 247 | P3=3d 248 | P4=4d 249 | P5=5d 250 | ] 251 | [ 252 | ObjTp=Sm 253 | H=9 254 | SmC=103 255 | Nm=KL Cisco Touch 10 Group v1.1.usp 256 | ObjVer=1 257 | PrH=4 258 | CF=2 259 | n2I=2 260 | mI=2 261 | I1=13 262 | I2=11 263 | mO=2 264 | tO=2 265 | O1=12 266 | O2=10 267 | mP=7 268 | P1= 269 | P2=#Widget ID 270 | P3=up 271 | P4=down 272 | P5=left 273 | P6=right 274 | P7=center 275 | ] 276 | [ 277 | ObjTp=Sg 278 | H=4 279 | Nm=Up 280 | ] 281 | [ 282 | ObjTp=Sg 283 | H=5 284 | Nm=Down 285 | ] 286 | [ 287 | ObjTp=Sg 288 | H=6 289 | Nm=Left 290 | ] 291 | [ 292 | ObjTp=Sg 293 | H=7 294 | Nm=Right 295 | ] 296 | [ 297 | ObjTp=Sg 298 | H=8 299 | Nm=Center 300 | ] 301 | [ 302 | ObjTp=Sg 303 | H=9 304 | Nm=[~UNUSED~] 305 | SgTp=31 306 | ] 307 | [ 308 | ObjTp=Sg 309 | H=10 310 | Nm=To_Processor 311 | SgTp=4 312 | ] 313 | [ 314 | ObjTp=Sg 315 | H=11 316 | Nm=From_Processor 317 | SgTp=4 318 | ] 319 | [ 320 | ObjTp=Sg 321 | H=12 322 | Nm=dpad_sel 323 | SgTp=2 324 | ] 325 | [ 326 | ObjTp=Sg 327 | H=13 328 | Nm=//__analog_reserved__ 329 | SgTp=2 330 | ] 331 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 Group v1.1.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.05.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS= 19 | Inclusions_CDS=5,6,7 20 | Name=KL Cisco Touch 10 Group v1.1 21 | SmplCName=KL Cisco Touch 10 Group v1.1.usp 22 | Code=1 23 | SysRev5=4.000 24 | SMWRev=2.02.05 25 | InputList2Cue1=Select_Fb 26 | InputList2SigType1=Analog 27 | InputList2Cue2=From_Processor 28 | InputList2SigType2=Serial 29 | OutputList2Cue1=Select 30 | OutputList2SigType1=Analog 31 | OutputList2Cue2=To_Processor 32 | OutputList2SigType2=Serial 33 | ParamCue1=[Reference Name] 34 | ParamCue2=Widget_ID 35 | ParamSigType2=String 36 | ParamCue3=Item_ID[1] 37 | ParamSigType3=String 38 | ParamCue4=Item_ID[2] 39 | ParamSigType4=String 40 | ParamCue5=Item_ID[3] 41 | ParamSigType5=String 42 | ParamCue6=Item_ID[4] 43 | ParamSigType6=String 44 | ParamCue7=Item_ID[5] 45 | ParamSigType7=String 46 | MinVariableInputs=0 47 | MaxVariableInputs=0 48 | MinVariableInputsList2=2 49 | MaxVariableInputsList2=2 50 | MinVariableOutputs=0 51 | MaxVariableOutputs=0 52 | MinVariableOutputsList2=2 53 | MaxVariableOutputsList2=2 54 | MinVariableParams=2 55 | MaxVariableParams=6 56 | Expand=expand_separately 57 | Expand2=expand_separately 58 | ProgramTree=Logic 59 | SymbolTree=32 60 | Hint= 61 | PdfHelp= 62 | HelpID= 63 | Render=4 64 | Smpl-C=16 65 | CompilerCode=-48 66 | CompilerParamCode=27 67 | CompilerParamCode5=14 68 | NumFixedParams=1 69 | Pp1=1 70 | Pp2=2 71 | Pp3=3 72 | Pp4=4 73 | Pp5=5 74 | Pp6=6 75 | Pp7=7 76 | MPp=7 77 | NVStorage=10 78 | ParamSigType1=String 79 | SmplCInputCue1=o# 80 | SmplCOutputCue1=i# 81 | SmplCInputList2Cue1=an# 82 | SmplCOutputList2Cue1=ai# 83 | SPlus2CompiledName=S2_KL_Cisco_Touch_10_Group_v1_1 84 | SymJam=NonExclusive 85 | FileName=KL Cisco Touch 10 Group v1.1.ush 86 | SIMPLPlusModuleEncoding=0 87 | [END] 88 | [BEGIN] 89 | ObjTp=Dp 90 | H=1 91 | Tp=1 92 | NoS=False 93 | [END] 94 | [BEGIN] 95 | ObjTp=Dp 96 | H=2 97 | Tp=1 98 | HD=False 99 | NoS=False 100 | VVS=0 101 | [END] 102 | [BEGIN] 103 | ObjTp=Dp 104 | H=3 105 | Tp=1 106 | HD=False 107 | NoS=False 108 | VVS=0 109 | [END] 110 | [BEGIN] 111 | ObjTp=Dp 112 | H=4 113 | Tp=1 114 | HD=False 115 | NoS=False 116 | VVS=0 117 | [END] 118 | [BEGIN] 119 | ObjTp=Dp 120 | H=5 121 | Tp=1 122 | HD=False 123 | NoS=False 124 | VVS=0 125 | [END] 126 | [BEGIN] 127 | ObjTp=Dp 128 | H=6 129 | Tp=1 130 | HD=False 131 | NoS=False 132 | VVS=0 133 | [END] 134 | [BEGIN] 135 | ObjTp=Dp 136 | H=7 137 | Tp=1 138 | HD=False 139 | NoS=False 140 | VVS=0 141 | [END] 142 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 Group v1.1.usp: -------------------------------------------------------------------------------- 1 | // Dealer Name: ConvergeOne 2 | // System Name: 3 | // System Number: 4 | // Programmer: Kiel Lofstrand 5 | // Comments: 6 | 7 | // --- Compiler Directives -------------------------------------------------- 8 | // #CATEGORY "" 9 | // #DIGITAL_EXPAND 10 | // #ANALOG_SERIAL_EXPAND 11 | 12 | #DEFAULT_VOLATILE 13 | #ENABLE_STACK_CHECKING 14 | // #ENABLE_TRACE 15 | // #PRINT_TO_TRACE 16 | 17 | #DEFINE_CONSTANT MAX_TEXT_LEN 200 18 | #DEFINE_CONSTANT MAX_ID_LEN 50 19 | #DEFINE_CONSTANT MAX_PARAM_LEN 50 20 | #DEFINE_CONSTANT MAX_ITEMS 5 21 | 22 | // #USER_SIMPLSHARP_LIBRARY "SIMPLSharpLibrary1" 23 | 24 | // --- Inputs --------------------------------------------------------------- 25 | 26 | ANALOG_INPUT Select_Fb; 27 | 28 | STRING_INPUT From_Processor[MAX_TEXT_LEN]; 29 | 30 | // --- Outputs -------------------------------------------------------------- 31 | 32 | ANALOG_OUTPUT Select; 33 | 34 | STRING_OUTPUT To_Processor; 35 | 36 | // --- Sockets -------------------------------------------------------------- 37 | 38 | // --- Parameters ----------------------------------------------------------- 39 | 40 | STRING_PARAMETER Widget_ID[MAX_ID_LEN]; 41 | STRING_PARAMETER Item_ID[MAX_ITEMS][MAX_ID_LEN]; 42 | 43 | // --- Global Variables ----------------------------------------------------- 44 | 45 | // --- Functions ------------------------------------------------------------ 46 | 47 | // --- Events --------------------------------------------------------------- 48 | 49 | CHANGE Select_Fb 50 | { 51 | If (Select_Fb = 0) 52 | { 53 | MakeString(To_Processor, "xcommand UserInterface Extensions Widget UnSetValue WidgetID: \x22%s\x22", Widget_ID); 54 | } 55 | Else 56 | { 57 | If (Len(Item_ID[Select_Fb]) > 0) 58 | { 59 | MakeString(To_Processor, "xcommand UserInterface Extensions Widget SetValue WidgetID: \x22%s\x22 Value: \x22%s\x22", Widget_ID, Item_ID[Select_Fb]); 60 | } 61 | } 62 | } 63 | 64 | CHANGE From_Processor 65 | { 66 | INTEGER i; 67 | STRING temp[MAX_TEXT_LEN]; 68 | 69 | If (From_Processor = "< Send ID >") 70 | { 71 | MakeString(To_Processor, "< %s >", Widget_ID); 72 | } 73 | Else 74 | { 75 | If (Find("Released", From_Processor)) 76 | { 77 | Select = 0; 78 | } 79 | Else If (Find("Pressed", From_Processor)) 80 | { 81 | temp = Remove(Widget_ID, From_Processor); 82 | 83 | For (i = 1 To MAX_ITEMS) 84 | { 85 | If (Len(Item_ID[i]) > 0) 86 | { 87 | If (Find(Item_ID[i], From_Processor)) 88 | { 89 | Select = i; 90 | Break; 91 | } 92 | } 93 | } 94 | } 95 | } 96 | } 97 | 98 | // --- Main ----------------------------------------------------------------- 99 | 100 | FUNCTION Main() 101 | { 102 | WaitForInitializationComplete(); 103 | } 104 | 105 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 Group v1.2.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.05.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS= 19 | Inclusions_CDS=5,6,7 20 | Name=KL Cisco Touch 10 Group v1.2 21 | SmplCName=KL Cisco Touch 10 Group v1.2.usp 22 | Code=1 23 | SysRev5=4.000 24 | SMWRev=2.02.05 25 | InputList2Cue1=Select_Fb 26 | InputList2SigType1=Analog 27 | InputList2Cue2=From_Processor 28 | InputList2SigType2=Serial 29 | OutputList2Cue1=Select 30 | OutputList2SigType1=Analog 31 | OutputList2Cue2=To_Processor 32 | OutputList2SigType2=Serial 33 | ParamCue1=[Reference Name] 34 | ParamCue2=Widget_ID 35 | ParamSigType2=String 36 | ParamCue3=Clear_Value_On_Release 37 | ParamSigType3=Constant 38 | ParamCue4=Item_ID[1] 39 | ParamSigType4=String 40 | ParamCue5=Item_ID[2] 41 | ParamSigType5=String 42 | ParamCue6=Item_ID[3] 43 | ParamSigType6=String 44 | ParamCue7=Item_ID[4] 45 | ParamSigType7=String 46 | ParamCue8=Item_ID[5] 47 | ParamSigType8=String 48 | ParamCue9=Item_ID[6] 49 | ParamSigType9=String 50 | ParamCue10=Item_ID[7] 51 | ParamSigType10=String 52 | ParamCue11=Item_ID[8] 53 | ParamSigType11=String 54 | ParamCue12=Item_ID[9] 55 | ParamSigType12=String 56 | ParamCue13=Item_ID[10] 57 | ParamSigType13=String 58 | ParamCue14=Item_ID[11] 59 | ParamSigType14=String 60 | ParamCue15=Item_ID[12] 61 | ParamSigType15=String 62 | ParamCue16=Item_ID[13] 63 | ParamSigType16=String 64 | ParamCue17=Item_ID[14] 65 | ParamSigType17=String 66 | ParamCue18=Item_ID[15] 67 | ParamSigType18=String 68 | ParamCue19=Item_ID[16] 69 | ParamSigType19=String 70 | MinVariableInputs=0 71 | MaxVariableInputs=0 72 | MinVariableInputsList2=2 73 | MaxVariableInputsList2=2 74 | MinVariableOutputs=0 75 | MaxVariableOutputs=0 76 | MinVariableOutputsList2=2 77 | MaxVariableOutputsList2=2 78 | MinVariableParams=3 79 | MaxVariableParams=18 80 | Expand=expand_separately 81 | Expand2=expand_separately 82 | ProgramTree=Logic 83 | SymbolTree=32 84 | Hint= 85 | PdfHelp= 86 | HelpID= 87 | Render=4 88 | Smpl-C=16 89 | CompilerCode=-48 90 | CompilerParamCode=27 91 | CompilerParamCode5=14 92 | NumFixedParams=1 93 | Pp1=1 94 | Pp2=2 95 | Pp3=3 96 | Pp4=4 97 | Pp5=5 98 | Pp6=6 99 | Pp7=7 100 | Pp8=8 101 | Pp9=9 102 | Pp10=10 103 | Pp11=11 104 | Pp12=12 105 | Pp13=13 106 | Pp14=14 107 | Pp15=15 108 | Pp16=16 109 | Pp17=17 110 | Pp18=18 111 | Pp19=19 112 | MPp=19 113 | NVStorage=10 114 | ParamSigType1=String 115 | SmplCInputCue1=o# 116 | SmplCOutputCue1=i# 117 | SmplCInputList2Cue1=an# 118 | SmplCOutputList2Cue1=ai# 119 | SPlus2CompiledName=S2_KL_Cisco_Touch_10_Group_v1_2 120 | SymJam=NonExclusive 121 | FileName=KL Cisco Touch 10 Group v1.2.ush 122 | SIMPLPlusModuleEncoding=0 123 | [END] 124 | [BEGIN] 125 | ObjTp=Dp 126 | H=1 127 | Tp=1 128 | NoS=False 129 | [END] 130 | [BEGIN] 131 | ObjTp=Dp 132 | H=2 133 | Tp=1 134 | HD=False 135 | NoS=False 136 | VVS=0 137 | [END] 138 | [BEGIN] 139 | ObjTp=Dp 140 | H=3 141 | Tp=1 142 | HD=False 143 | Sgn=0 144 | Lng=False 145 | NF=63 146 | NoS=True 147 | DNF=1 148 | VVS=0 149 | [END] 150 | [BEGIN] 151 | ObjTp=Dp 152 | H=4 153 | Tp=1 154 | HD=False 155 | NoS=False 156 | VVS=0 157 | [END] 158 | [BEGIN] 159 | ObjTp=Dp 160 | H=5 161 | Tp=1 162 | HD=False 163 | NoS=False 164 | VVS=0 165 | [END] 166 | [BEGIN] 167 | ObjTp=Dp 168 | H=6 169 | Tp=1 170 | HD=False 171 | NoS=False 172 | VVS=0 173 | [END] 174 | [BEGIN] 175 | ObjTp=Dp 176 | H=7 177 | Tp=1 178 | HD=False 179 | NoS=False 180 | VVS=0 181 | [END] 182 | [BEGIN] 183 | ObjTp=Dp 184 | H=8 185 | Tp=1 186 | HD=False 187 | NoS=False 188 | VVS=0 189 | [END] 190 | [BEGIN] 191 | ObjTp=Dp 192 | H=9 193 | Tp=1 194 | HD=False 195 | NoS=False 196 | VVS=0 197 | [END] 198 | [BEGIN] 199 | ObjTp=Dp 200 | H=10 201 | Tp=1 202 | HD=False 203 | NoS=False 204 | VVS=0 205 | [END] 206 | [BEGIN] 207 | ObjTp=Dp 208 | H=11 209 | Tp=1 210 | HD=False 211 | NoS=False 212 | VVS=0 213 | [END] 214 | [BEGIN] 215 | ObjTp=Dp 216 | H=12 217 | Tp=1 218 | HD=False 219 | NoS=False 220 | VVS=0 221 | [END] 222 | [BEGIN] 223 | ObjTp=Dp 224 | H=13 225 | Tp=1 226 | HD=False 227 | NoS=False 228 | VVS=0 229 | [END] 230 | [BEGIN] 231 | ObjTp=Dp 232 | H=14 233 | Tp=1 234 | HD=False 235 | NoS=False 236 | VVS=0 237 | [END] 238 | [BEGIN] 239 | ObjTp=Dp 240 | H=15 241 | Tp=1 242 | HD=False 243 | NoS=False 244 | VVS=0 245 | [END] 246 | [BEGIN] 247 | ObjTp=Dp 248 | H=16 249 | Tp=1 250 | HD=False 251 | NoS=False 252 | VVS=0 253 | [END] 254 | [BEGIN] 255 | ObjTp=Dp 256 | H=17 257 | Tp=1 258 | HD=False 259 | NoS=False 260 | VVS=0 261 | [END] 262 | [BEGIN] 263 | ObjTp=Dp 264 | H=18 265 | Tp=1 266 | HD=False 267 | NoS=False 268 | VVS=0 269 | [END] 270 | [BEGIN] 271 | ObjTp=Dp 272 | H=19 273 | Tp=1 274 | HD=False 275 | NoS=False 276 | VVS=0 277 | [END] 278 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 Group v1.2.usp: -------------------------------------------------------------------------------- 1 | // Dealer Name: ConvergeOne 2 | // System Name: 3 | // System Number: 4 | // Programmer: Kiel Lofstrand 5 | // Comments: 6 | 7 | // --- Compiler Directives -------------------------------------------------- 8 | // #CATEGORY "" 9 | // #DIGITAL_EXPAND 10 | // #ANALOG_SERIAL_EXPAND 11 | 12 | #DEFAULT_VOLATILE 13 | #ENABLE_STACK_CHECKING 14 | // #ENABLE_TRACE 15 | // #PRINT_TO_TRACE 16 | 17 | #DEFINE_CONSTANT MAX_TEXT_LEN 200 18 | #DEFINE_CONSTANT MAX_ID_LEN 50 19 | #DEFINE_CONSTANT MAX_PARAM_LEN 50 20 | #DEFINE_CONSTANT MAX_ITEMS 16 21 | 22 | // #USER_SIMPLSHARP_LIBRARY "SIMPLSharpLibrary1" 23 | 24 | // --- Inputs --------------------------------------------------------------- 25 | 26 | ANALOG_INPUT Select_Fb; 27 | 28 | STRING_INPUT From_Processor[MAX_TEXT_LEN]; 29 | 30 | // --- Outputs -------------------------------------------------------------- 31 | 32 | ANALOG_OUTPUT Select; 33 | 34 | STRING_OUTPUT To_Processor; 35 | 36 | // --- Sockets -------------------------------------------------------------- 37 | 38 | // --- Parameters ----------------------------------------------------------- 39 | 40 | STRING_PARAMETER Widget_ID[MAX_ID_LEN]; 41 | INTEGER_PARAMETER Clear_Value_On_Release; 42 | 43 | STRING_PARAMETER Item_ID[MAX_ITEMS][MAX_ID_LEN]; 44 | 45 | // --- Global Variables ----------------------------------------------------- 46 | 47 | // --- Functions ------------------------------------------------------------ 48 | 49 | // --- Events --------------------------------------------------------------- 50 | 51 | CHANGE Select_Fb 52 | { 53 | If (Select_Fb = 0) 54 | { 55 | MakeString(To_Processor, "xcommand UserInterface Extensions Widget UnSetValue WidgetID: \x22%s\x22", Widget_ID); 56 | } 57 | Else 58 | { 59 | If (Len(Item_ID[Select_Fb]) > 0) 60 | { 61 | MakeString(To_Processor, "xcommand UserInterface Extensions Widget SetValue WidgetID: \x22%s\x22 Value: \x22%s\x22", Widget_ID, Item_ID[Select_Fb]); 62 | } 63 | } 64 | } 65 | 66 | CHANGE From_Processor 67 | { 68 | INTEGER i; 69 | STRING temp[MAX_TEXT_LEN]; 70 | 71 | If (From_Processor = "< Send ID >") 72 | { 73 | MakeString(To_Processor, "< %s >", Widget_ID); 74 | } 75 | Else 76 | { 77 | If (Find("Released", From_Processor)) 78 | { 79 | Select = 0; 80 | 81 | If (Clear_Value_On_Release = 1) 82 | { 83 | MakeString(To_Processor, "xcommand UserInterface Extensions Widget UnsetValue WidgetID: \x22%s\x22", Widget_ID); 84 | } 85 | } 86 | Else If (Find("Pressed", From_Processor)) 87 | { 88 | temp = Remove(Widget_ID, From_Processor); 89 | 90 | For (i = 1 To MAX_ITEMS) 91 | { 92 | If (Len(Item_ID[i]) > 0) 93 | { 94 | If (Find(Item_ID[i], From_Processor)) 95 | { 96 | Select = i; 97 | Break; 98 | } 99 | } 100 | } 101 | } 102 | } 103 | } 104 | 105 | // --- Main ----------------------------------------------------------------- 106 | 107 | FUNCTION Main() 108 | { 109 | WaitForInitializationComplete(); 110 | } 111 | 112 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 Processor v1.0.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854,6114,6136,6423, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=KL Cisco Touch 10 Processor v1.0 21 | SmplCName=KL Cisco Touch 10 Processor v1.0.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Initialize 26 | InputSigType1=Digital 27 | InputList2Cue1=From_System_Module 28 | InputList2SigType1=Serial 29 | InputList2Cue2=From_Widget_Module[#] 30 | InputList2SigType2=Serial 31 | OutputList2Cue1=To_System_Module 32 | OutputList2SigType1=Serial 33 | OutputList2Cue2=To_Widget_Module[#] 34 | OutputList2SigType2=Serial 35 | ParamCue1=[Reference Name] 36 | MinVariableInputs=1 37 | MaxVariableInputs=1 38 | MinVariableInputsList2=2 39 | MaxVariableInputsList2=101 40 | MinVariableOutputs=0 41 | MaxVariableOutputs=0 42 | MinVariableOutputsList2=2 43 | MaxVariableOutputsList2=101 44 | MinVariableParams=0 45 | MaxVariableParams=0 46 | Expand=expand_separately 47 | Expand2=expand_separately 48 | ProgramTree=Logic 49 | SymbolTree=32 50 | Hint= 51 | PdfHelp= 52 | HelpID= 53 | Render=4 54 | Smpl-C=16 55 | CompilerCode=-48 56 | CompilerParamCode=27 57 | CompilerParamCode5=14 58 | NumFixedParams=1 59 | Pp1=1 60 | MPp=1 61 | NVStorage=10 62 | ParamSigType1=String 63 | SmplCInputCue1=o# 64 | SmplCOutputCue1=i# 65 | SmplCInputList2Cue1=an# 66 | SmplCOutputList2Cue1=ai# 67 | SPlus2CompiledName=S2_KL_Cisco_Touch_10_Processor_v1_0 68 | SymJam=NonExclusive 69 | FileName=KL Cisco Touch 10 Processor v1.0.ush 70 | SIMPLPlusModuleEncoding=0 71 | [END] 72 | [BEGIN] 73 | ObjTp=Dp 74 | H=1 75 | Tp=1 76 | NoS=False 77 | [END] 78 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 Processor v1.0.usp: -------------------------------------------------------------------------------- 1 | // Dealer Name: ConvergeOne 2 | // System Name: 3 | // System Number: 4 | // Programmer: Kiel Lofstrand 5 | // Comments: 6 | 7 | // --- Compiler Directives -------------------------------------------------- 8 | // #CATEGORY "" 9 | // #DIGITAL_EXPAND 10 | // #ANALOG_SERIAL_EXPAND 11 | 12 | #DEFAULT_VOLATILE 13 | #ENABLE_STACK_CHECKING 14 | // #ENABLE_TRACE 15 | // #PRINT_TO_TRACE 16 | 17 | #DEFINE_CONSTANT MAX_TEXT_LEN 200 18 | #DEFINE_CONSTANT MAX_MODULES 100 19 | #DEFINE_CONSTANT MAX_ID_LEN 50 20 | 21 | // #USER_SIMPLSHARP_LIBRARY "SIMPLSharpLibrary1" 22 | 23 | // --- Inputs --------------------------------------------------------------- 24 | 25 | DIGITAL_INPUT Initialize; 26 | STRING_INPUT From_System_Module[MAX_TEXT_LEN]; 27 | 28 | STRING_INPUT From_Widget_Module[MAX_MODULES][MAX_TEXT_LEN]; 29 | 30 | // --- Outputs -------------------------------------------------------------- 31 | 32 | STRING_OUTPUT To_System_Module; 33 | 34 | STRING_OUTPUT To_Widget_Module[MAX_MODULES]; 35 | 36 | // --- Sockets -------------------------------------------------------------- 37 | 38 | // TCP_CLIENT 39 | // TCP_SERVER 40 | // UDP_SOCKET 41 | 42 | // --- Parameters ----------------------------------------------------------- 43 | 44 | // INTEGER_PARAMETER 45 | // SIGNED_INTEGER_PARAMETER 46 | // LONG_INTEGER_PARAMETER 47 | // SIGNED_LONG_INTEGER_PARAMETER 48 | // STRING_PARAMETER 49 | 50 | // --- Global Variables ----------------------------------------------------- 51 | 52 | STRING gsWidgetID[MAX_MODULES][MAX_ID_LEN]; 53 | 54 | // --- Functions ------------------------------------------------------------ 55 | 56 | STRING_FUNCTION Strip (STRING s) 57 | { 58 | INTEGER i; 59 | INTEGER j; 60 | 61 | // Look for first printable ASCII character 62 | For (i = 1 To Len(s)) 63 | { 64 | If (Byte(s, i) > 32) 65 | Break; 66 | } 67 | 68 | // Look for last printable ASCII character 69 | For (j = Len(s) To 1 Step -1) 70 | { 71 | If (Byte(s, j) > 32) 72 | Break; 73 | } 74 | 75 | // If our string was " My Name \r": 76 | // i = 4 77 | // j = 10 78 | // j - i = 6 + 1 = 7 79 | // Mid() = "My Name" 80 | Return(Mid(s, i, j - i + 1)); 81 | } 82 | 83 | // --- Events --------------------------------------------------------------- 84 | 85 | THREADSAFE PUSH Initialize 86 | { 87 | INTEGER i; 88 | 89 | For (i = 1 To MAX_MODULES) 90 | { 91 | // Only process modules with a defined signal 92 | If (IsSignalDefined(To_Widget_Module[i])) 93 | { 94 | MakeString(To_Widget_Module[i], "< Send ID >"); 95 | ProcessLogic(); 96 | } 97 | } 98 | } 99 | 100 | CHANGE From_System_Module 101 | { 102 | INTEGER i; 103 | 104 | For (i = 1 To MAX_MODULES) 105 | { 106 | // Duplicate IDs will only match the first one registered 107 | If (Find(gsWidgetID[i], From_System_Module)) 108 | { 109 | To_Widget_Module[i] = From_System_Module; 110 | Break; 111 | } 112 | } 113 | } 114 | 115 | CHANGE From_Widget_Module 116 | { 117 | INTEGER i; 118 | INTEGER j; 119 | STRING temp[MAX_TEXT_LEN]; 120 | 121 | i = GetLastModifiedArrayIndex(); 122 | 123 | // Check to see if module is responding with Widget ID 124 | If (Left(From_Widget_Module[i], 1) = "<") 125 | { 126 | j = Find(">", From_Widget_Module[i]); 127 | 128 | If (j > 0) 129 | { 130 | temp = Mid(From_Widget_Module[i], 2, Find(">", From_Widget_Module[i], 2) - 2); 131 | gsWidgetID[i] = Strip(temp); 132 | 133 | Trace("Widget %s is #%d", gsWidgetID[i], i); 134 | } 135 | } 136 | Else 137 | { 138 | // Pass device commands thru 139 | To_System_Module = From_Widget_Module[i]; 140 | } 141 | } 142 | 143 | // --- Main ----------------------------------------------------------------- 144 | 145 | FUNCTION Main() 146 | { 147 | WaitForInitializationComplete(); 148 | } 149 | 150 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 System v1.8.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.05.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS= 19 | Inclusions_CDS=5,6,7 20 | Name=KL Cisco Touch 10 System v1.8 21 | SmplCName=KL Cisco Touch 10 System v1.8.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Initialize 26 | InputSigType1=Digital 27 | InputCue2=Sleep 28 | InputSigType2=Digital 29 | InputCue3=Wake 30 | InputSigType3=Digital 31 | InputCue4=MicMuteOn 32 | InputSigType4=Digital 33 | InputCue5=MicMuteOff 34 | InputSigType5=Digital 35 | InputList2Cue1=From_Widget_Module 36 | InputList2SigType1=Serial 37 | InputList2Cue2=From_Device 38 | InputList2SigType2=Serial 39 | InputList2Cue3=Source_State[1] 40 | InputList2SigType3=Analog 41 | InputList2Cue4=Source_State[2] 42 | InputList2SigType4=Analog 43 | InputList2Cue5=Source_State[3] 44 | InputList2SigType5=Analog 45 | InputList2Cue6=Source_State[4] 46 | InputList2SigType6=Analog 47 | InputList2Cue7=Source_State[5] 48 | InputList2SigType7=Analog 49 | InputList2Cue8=Source_State[6] 50 | InputList2SigType8=Analog 51 | InputList2Cue9=Source_State[7] 52 | InputList2SigType9=Analog 53 | InputList2Cue10=Source_State[8] 54 | InputList2SigType10=Analog 55 | InputList2Cue11=Source_Name[#] 56 | InputList2SigType11=Serial 57 | OutputList2Cue1=Standby 58 | OutputList2SigType1=Analog 59 | OutputList2Cue2=MicMute 60 | OutputList2SigType2=Analog 61 | OutputList2Cue3=Presenting 62 | OutputList2SigType3=Analog 63 | OutputList2Cue4=Selected_Source 64 | OutputList2SigType4=Analog 65 | OutputList2Cue5=To_Widget_Module 66 | OutputList2SigType5=Serial 67 | OutputList2Cue6=To_Device 68 | OutputList2SigType6=Serial 69 | OutputList2Cue7=Call_Status[#] 70 | OutputList2SigType7=Analog 71 | ParamCue1=[Reference Name] 72 | ParamCue2=Paired_With_Other_Module 73 | ParamSigType2=Constant 74 | ParamCue3=Connector_ID 75 | ParamSigType3=String 76 | ParamCue4=Source_Type[1] 77 | ParamSigType4=String 78 | ParamCue5=Source_Type[2] 79 | ParamSigType5=String 80 | ParamCue6=Source_Type[3] 81 | ParamSigType6=String 82 | ParamCue7=Source_Type[4] 83 | ParamSigType7=String 84 | ParamCue8=Source_Type[5] 85 | ParamSigType8=String 86 | ParamCue9=Source_Type[6] 87 | ParamSigType9=String 88 | ParamCue10=Source_Type[7] 89 | ParamSigType10=String 90 | ParamCue11=Source_Type[8] 91 | ParamSigType11=String 92 | MinVariableInputs=5 93 | MaxVariableInputs=5 94 | MinVariableInputsList2=11 95 | MaxVariableInputsList2=18 96 | MinVariableOutputs=0 97 | MaxVariableOutputs=0 98 | MinVariableOutputsList2=7 99 | MaxVariableOutputsList2=11 100 | MinVariableParams=3 101 | MaxVariableParams=10 102 | Expand=expand_separately 103 | Expand2=expand_separately 104 | ProgramTree=Logic 105 | SymbolTree=32 106 | Hint= 107 | PdfHelp= 108 | HelpID= 109 | Render=4 110 | Smpl-C=16 111 | CompilerCode=-48 112 | CompilerParamCode=27 113 | CompilerParamCode5=14 114 | NumFixedParams=1 115 | Pp1=1 116 | Pp2=2 117 | Pp3=3 118 | Pp4=4 119 | Pp5=5 120 | Pp6=6 121 | Pp7=7 122 | Pp8=8 123 | Pp9=9 124 | Pp10=10 125 | Pp11=11 126 | MPp=11 127 | NVStorage=10 128 | ParamSigType1=String 129 | SmplCInputCue1=o# 130 | SmplCOutputCue1=i# 131 | SmplCInputList2Cue1=an# 132 | SmplCOutputList2Cue1=ai# 133 | SPlus2CompiledName=S2_KL_Cisco_Touch_10_System_v1_8 134 | SymJam=NonExclusive 135 | FileName=KL Cisco Touch 10 System v1.8.ush 136 | SIMPLPlusModuleEncoding=0 137 | [END] 138 | [BEGIN] 139 | ObjTp=Dp 140 | H=1 141 | Tp=1 142 | NoS=False 143 | [END] 144 | [BEGIN] 145 | ObjTp=Dp 146 | H=2 147 | Tp=1 148 | HD=False 149 | Sgn=0 150 | Lng=False 151 | NF=63 152 | NoS=True 153 | DNF=1 154 | VVS=0 155 | [END] 156 | [BEGIN] 157 | ObjTp=Dp 158 | H=3 159 | Tp=1 160 | HD=False 161 | NoS=False 162 | VVS=0 163 | [END] 164 | [BEGIN] 165 | ObjTp=Dp 166 | H=4 167 | Tp=1 168 | HD=False 169 | NoS=False 170 | VVS=0 171 | [END] 172 | [BEGIN] 173 | ObjTp=Dp 174 | H=5 175 | Tp=1 176 | HD=False 177 | NoS=False 178 | VVS=0 179 | [END] 180 | [BEGIN] 181 | ObjTp=Dp 182 | H=6 183 | Tp=1 184 | HD=False 185 | NoS=False 186 | VVS=0 187 | [END] 188 | [BEGIN] 189 | ObjTp=Dp 190 | H=7 191 | Tp=1 192 | HD=False 193 | NoS=False 194 | VVS=0 195 | [END] 196 | [BEGIN] 197 | ObjTp=Dp 198 | H=8 199 | Tp=1 200 | HD=False 201 | NoS=False 202 | VVS=0 203 | [END] 204 | [BEGIN] 205 | ObjTp=Dp 206 | H=9 207 | Tp=1 208 | HD=False 209 | NoS=False 210 | VVS=0 211 | [END] 212 | [BEGIN] 213 | ObjTp=Dp 214 | H=10 215 | Tp=1 216 | HD=False 217 | NoS=False 218 | VVS=0 219 | [END] 220 | [BEGIN] 221 | ObjTp=Dp 222 | H=11 223 | Tp=1 224 | HD=False 225 | NoS=False 226 | VVS=0 227 | [END] 228 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 Toggle v1.1.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.14.21 8 | IntStrVrs=2 9 | MinSMWVrs=2.02.05 10 | MinTIOVrs=0 11 | SavedBy=SMW4.11.06 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Cisco Touch 10 Toggle v1.1.umc 19 | DbVr=202.00.001.00 20 | DvcDbVr=200.20.002.00 21 | PgmNm=Kiel Lofstrand 22 | DlrNm=C1 23 | Incl=362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,767,830,883,1032,1062,1079,1134,1157,1199,1220,1222,1299,1348,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,3708,3902,3912,3918,3925,1766,2574,2651,2817,2886,2938,2947,3181,3197,3233,3710,3735,3736,3816,3888,4176,4308,4476,4591,4769,5360,5388,5420,5455,5497,5699,5813,5919,6150,6161, 24 | McNm=KL Cisco Touch 10 Toggle v1.0 25 | SmVr=1120 26 | DvVr=1120 27 | TpN1=1 28 | TpN2=2 29 | TpN3=3 30 | TpN4=4 31 | TpN5=5 32 | APg=1 33 | FltTmp=1 34 | FpCS=0 35 | EnType=0 36 | ZeroOnIoOk=0 37 | SGMethod=1 38 | ] 39 | [ 40 | ObjTp=Bk 41 | Nm1=\ 42 | Sx1=0 43 | Sy1=0 44 | Mx1=0 45 | ] 46 | [ 47 | ObjTp=Symbol 48 | Name=KL Cisco Touch 10 Toggle v1.1 49 | Code=1 50 | SmplCName=KL Cisco Touch 10 Toggle v1.1.umc 51 | Smpl-C=3 52 | CompilerTimePrecision=Single_Or_Double_Precision 53 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 54 | SMWRev=2.02.05 55 | TIORev=0 56 | S+=1 57 | HelpID=1055 58 | APg=1 59 | StdCmd=0 60 | FltTmp=1 61 | FpCS=0 62 | NumFixedInputs=4 63 | NumFixedOutputs=4 64 | NumFixedParams=1 65 | MinVariableInputs=0 66 | MinVariableInputsList2=0 67 | MinVariableInputsList3=0 68 | MinVariableOutputs=0 69 | MinVariableOutputsList2=0 70 | MinVariableOutputsList3=0 71 | MinVariableParams=0 72 | SymbolTree=46 73 | UserSymTreeName=Touch 10 74 | InputSigType1=Digital 75 | InputSigType2=Digital 76 | InputSigType3=Digital|Analog|Serial|String 77 | InputSigType4=Serial 78 | OutputSigType1=Digital 79 | OutputSigType2=Digital 80 | OutputSigType3=Digital|Analog|Serial|String 81 | OutputSigType4=Serial 82 | ParamSigType1=String 83 | InputCue1=Set 84 | InputCue2=Reset 85 | InputCue3=[~UNUSED~] 86 | InputCue4=From_Processor 87 | OutputCue1=Out 88 | OutputCue2=Out* 89 | OutputCue3=[~UNUSED~] 90 | OutputCue4=To_Processor 91 | ParamCue1=Widget ID 92 | FileName=KL Cisco Touch 10 Toggle v1.1.umc 93 | EncodingType=0 94 | ZeroOnIoOk=0 95 | ] 96 | [ 97 | ObjTp=Sm 98 | H=1 99 | SmC=157 100 | Nm=Central Control Modules 101 | ObjVer=1 102 | CF=2 103 | n1I=1 104 | n1O=1 105 | mI=1 106 | mO=1 107 | tO=1 108 | mP=1 109 | P1= 110 | ] 111 | [ 112 | ObjTp=Sm 113 | H=2 114 | SmC=157 115 | Nm=Network Modules 116 | ObjVer=1 117 | CF=2 118 | n1I=1 119 | n1O=1 120 | mI=1 121 | mO=1 122 | tO=1 123 | mP=1 124 | P1= 125 | ] 126 | [ 127 | ObjTp=Sm 128 | H=3 129 | SmC=157 130 | Nm=Ethernet 131 | ObjVer=1 132 | CF=2 133 | n1I=1 134 | n1O=1 135 | mI=1 136 | mO=1 137 | tO=1 138 | mP=1 139 | P1= 140 | ] 141 | [ 142 | ObjTp=Sm 143 | H=4 144 | SmC=156 145 | Nm=Logic 146 | ObjVer=1 147 | CF=2 148 | mC=2 149 | C1=9 150 | C2=8 151 | ] 152 | [ 153 | ObjTp=Sm 154 | H=5 155 | SmC=157 156 | Nm=DefineArguments 157 | ObjVer=1 158 | CF=2 159 | n1I=1 160 | n1O=1 161 | mC=1 162 | C1=6 163 | mI=1 164 | mO=1 165 | tO=1 166 | mP=1 167 | P1= 168 | ] 169 | [ 170 | ObjTp=Sm 171 | H=6 172 | SmC=55 173 | Nm=Argument Definition 174 | ObjVer=1 175 | PrH=5 176 | CF=2 177 | n1I=4 178 | n1O=4 179 | mI=4 180 | I1=4 181 | I2=5 182 | I3=8 183 | I4=9 184 | mO=4 185 | tO=4 186 | O1=6 187 | O2=7 188 | O3=8 189 | O4=10 190 | mP=1 191 | P1=Widget ID 192 | ] 193 | [ 194 | ObjTp=Sm 195 | H=8 196 | SmC=205 197 | Nm=NOT 198 | ObjVer=1 199 | PrH=4 200 | CF=2 201 | n1I=1 202 | n1O=1 203 | mI=1 204 | I1=6 205 | mO=1 206 | tO=1 207 | O1=7 208 | ] 209 | [ 210 | ObjTp=Sm 211 | H=9 212 | SmC=103 213 | Nm=KL Cisco Touch 10 Toggle v1.1.usp 214 | ObjVer=1 215 | PrH=4 216 | CF=2 217 | n1I=2 218 | n2I=1 219 | n1O=1 220 | mI=3 221 | I1=4 222 | I2=5 223 | I3=9 224 | mO=2 225 | tO=2 226 | O1=6 227 | O2=10 228 | mP=2 229 | P1= 230 | P2=#Widget ID 231 | ] 232 | [ 233 | ObjTp=Sg 234 | H=4 235 | Nm=Set 236 | ] 237 | [ 238 | ObjTp=Sg 239 | H=5 240 | Nm=Reset 241 | ] 242 | [ 243 | ObjTp=Sg 244 | H=6 245 | Nm=Out 246 | ] 247 | [ 248 | ObjTp=Sg 249 | H=7 250 | Nm=Out* 251 | ] 252 | [ 253 | ObjTp=Sg 254 | H=8 255 | Nm=[~UNUSED~] 256 | SgTp=31 257 | ] 258 | [ 259 | ObjTp=Sg 260 | H=9 261 | Nm=From_Processor 262 | SgTp=4 263 | ] 264 | [ 265 | ObjTp=Sg 266 | H=10 267 | Nm=To_Processor 268 | SgTp=4 269 | ] 270 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 Toggle v1.1.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.05.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS= 19 | Inclusions_CDS=5,6,7 20 | Name=KL Cisco Touch 10 Toggle v1.1 21 | SmplCName=KL Cisco Touch 10 Toggle v1.1.usp 22 | Code=1 23 | SysRev5=4.000 24 | SMWRev=2.02.05 25 | InputCue1=Tog_Set 26 | InputSigType1=Digital 27 | InputCue2=Tog_Reset 28 | InputSigType2=Digital 29 | OutputCue1=Out 30 | OutputSigType1=Digital 31 | InputList2Cue1=From_Processor 32 | InputList2SigType1=Serial 33 | OutputList2Cue1=To_Processor 34 | OutputList2SigType1=Serial 35 | ParamCue1=[Reference Name] 36 | ParamCue2=Widget_ID 37 | ParamSigType2=String 38 | MinVariableInputs=2 39 | MaxVariableInputs=2 40 | MinVariableInputsList2=1 41 | MaxVariableInputsList2=1 42 | MinVariableOutputs=1 43 | MaxVariableOutputs=1 44 | MinVariableOutputsList2=1 45 | MaxVariableOutputsList2=1 46 | MinVariableParams=1 47 | MaxVariableParams=1 48 | Expand=expand_separately 49 | Expand2=expand_separately 50 | ProgramTree=Logic 51 | SymbolTree=32 52 | Hint= 53 | PdfHelp= 54 | HelpID= 55 | Render=4 56 | Smpl-C=16 57 | CompilerCode=-48 58 | CompilerParamCode=27 59 | CompilerParamCode5=14 60 | NumFixedParams=1 61 | Pp1=1 62 | Pp2=2 63 | MPp=2 64 | NVStorage=10 65 | ParamSigType1=String 66 | SmplCInputCue1=o# 67 | SmplCOutputCue1=i# 68 | SmplCInputList2Cue1=an# 69 | SmplCOutputList2Cue1=ai# 70 | SPlus2CompiledName=S2_KL_Cisco_Touch_10_Toggle_v1_1 71 | SymJam=NonExclusive 72 | FileName=KL Cisco Touch 10 Toggle v1.1.ush 73 | SIMPLPlusModuleEncoding=0 74 | [END] 75 | [BEGIN] 76 | ObjTp=Dp 77 | H=1 78 | Tp=1 79 | NoS=False 80 | [END] 81 | [BEGIN] 82 | ObjTp=Dp 83 | H=2 84 | Tp=1 85 | HD=False 86 | NoS=False 87 | VVS=0 88 | [END] 89 | -------------------------------------------------------------------------------- /Cisco Touch 10/KL Cisco Touch 10 Toggle v1.1.usp: -------------------------------------------------------------------------------- 1 | // Dealer Name: ConvergeOne 2 | // System Name: 3 | // System Number: 4 | // Programmer: Kiel Lofstrand 5 | // Comments: 6 | 7 | // --- Compiler Directives -------------------------------------------------- 8 | // #CATEGORY "" 9 | // #DIGITAL_EXPAND 10 | // #ANALOG_SERIAL_EXPAND 11 | 12 | #DEFAULT_VOLATILE 13 | #ENABLE_STACK_CHECKING 14 | #ENABLE_TRACE 15 | // #PRINT_TO_TRACE 16 | 17 | #DEFINE_CONSTANT MAX_TEXT_LEN 200 18 | #DEFINE_CONSTANT MAX_ID_LEN 50 19 | #DEFINE_CONSTANT MAX_PARAM_LEN 50 20 | 21 | // #USER_SIMPLSHARP_LIBRARY "SIMPLSharpLibrary1" 22 | 23 | // --- Inputs --------------------------------------------------------------- 24 | 25 | DIGITAL_INPUT Tog_Set; 26 | DIGITAL_INPUT Tog_Reset; 27 | 28 | STRING_INPUT From_Processor[MAX_TEXT_LEN]; 29 | 30 | // --- Outputs -------------------------------------------------------------- 31 | 32 | DIGITAL_OUTPUT Out; 33 | 34 | STRING_OUTPUT To_Processor; 35 | 36 | // --- Sockets -------------------------------------------------------------- 37 | 38 | // --- Parameters ----------------------------------------------------------- 39 | 40 | STRING_PARAMETER Widget_ID[MAX_ID_LEN]; 41 | 42 | // --- Global Variables ----------------------------------------------------- 43 | 44 | // --- Functions ------------------------------------------------------------ 45 | 46 | // --- Events --------------------------------------------------------------- 47 | 48 | PUSH Tog_Set 49 | { 50 | MakeString(To_Processor, "xcommand UserInterface Extensions Widget SetValue WidgetID: \x22%s\x22 Value: \x22on\x22", Widget_ID); 51 | } 52 | 53 | PUSH Tog_Reset 54 | { 55 | MakeString(To_Processor, "xcommand UserInterface Extensions Widget SetValue WidgetID: \x22%s\x22 Value: \x22off\x22", Widget_ID); 56 | } 57 | 58 | CHANGE From_Processor 59 | { 60 | STRING temp[MAX_TEXT_LEN]; 61 | 62 | If (From_Processor = "< Send ID >") 63 | { 64 | MakeString(To_Processor, "< %s >", Widget_ID); 65 | } 66 | Else 67 | { 68 | If (Find("Changed", From_Processor)) 69 | { 70 | temp = Remove(Widget_ID, From_Processor); 71 | 72 | If (Find("on", From_Processor)) 73 | Out = 1; 74 | Else If (Find("off", From_Processor)) 75 | Out = 0; 76 | } 77 | } 78 | } 79 | 80 | // --- Main ----------------------------------------------------------------- 81 | 82 | Function Main() 83 | { 84 | WaitForInitializationComplete(); 85 | } 86 | 87 | -------------------------------------------------------------------------------- /Cisco/KL Cisco SX80 Connect v1.0.usp: -------------------------------------------------------------------------------- 1 | /******************************************************************************************* 2 | SIMPL+ Module Information 3 | (Fill in comments below) 4 | *******************************************************************************************/ 5 | /* 6 | Dealer Name: 7 | System Name: 8 | System Number: 9 | Programmer: 10 | Comments: 11 | */ 12 | 13 | /******************************************************************************************* 14 | Compiler Directives 15 | (Uncomment and declare compiler directives as needed) 16 | *******************************************************************************************/ 17 | // #ENABLE_DYNAMIC 18 | // #SYMBOL_NAME "" 19 | // #HINT "" 20 | // #DEFINE_CONSTANT 21 | // #CATEGORY "" 22 | // #PRINT_TO_TRACE 23 | // #DIGITAL_EXPAND 24 | // #ANALOG_SERIAL_EXPAND 25 | // #OUTPUT_SHIFT 26 | // #HELP_PDF_FILE "" 27 | #DEFAULT_VOLATILE 28 | #ENABLE_STACK_CHECKING 29 | #ENABLE_TRACE 30 | // #ENCODING_ASCII 31 | // #ENCODING_UTF16 32 | // #ENCODING_INHERIT_FROM_PARENT 33 | // #ENCODING_INHERIT_FROM_PROGRAM 34 | /* 35 | #HELP_BEGIN 36 | (add additional lines of help lines) 37 | #HELP_END 38 | */ 39 | 40 | /******************************************************************************************* 41 | Include Libraries 42 | (Uncomment and include additional libraries as needed) 43 | *******************************************************************************************/ 44 | // #CRESTRON_LIBRARY "" 45 | // #USER_LIBRARY "" 46 | 47 | /******************************************************************************************* 48 | DIGITAL, ANALOG and SERIAL INPUTS and OUTPUTS 49 | (Uncomment and declare inputs and outputs as needed) 50 | *******************************************************************************************/ 51 | DIGITAL_INPUT Connect; 52 | // ANALOG_INPUT 53 | // STRING_INPUT 54 | BUFFER_INPUT From_Console[255]; 55 | 56 | // DIGITAL_OUTPUT 57 | // ANALOG_OUTPUT 58 | STRING_OUTPUT To_Console; 59 | 60 | /******************************************************************************************* 61 | SOCKETS 62 | (Uncomment and define socket definitions as needed) 63 | *******************************************************************************************/ 64 | // TCP_CLIENT 65 | // TCP_SERVER 66 | // UDP_SOCKET 67 | 68 | /******************************************************************************************* 69 | Parameters 70 | (Uncomment and declare parameters as needed) 71 | *******************************************************************************************/ 72 | // INTEGER_PARAMETER 73 | // SIGNED_INTEGER_PARAMETER 74 | // LONG_INTEGER_PARAMETER 75 | // SIGNED_LONG_INTEGER_PARAMETER 76 | // STRING_PARAMETER 77 | 78 | /******************************************************************************************* 79 | Parameter Properties 80 | (Uncomment and declare parameter properties as needed) 81 | *******************************************************************************************/ 82 | /* 83 | #BEGIN_PARAMETER_PROPERTIES parameter_variable, parameter_variable, ... 84 | // propValidUnits = // unitString or unitDecimal|unitHex|unitPercent|unitCharacter|unitTime|unitTicks; 85 | // propDefaultUnit = // unitString, unitDecimal, unitHex, unitPercent, unitCharacter, unitTime or unitTicks; 86 | // propBounds = lower_bound , upper_bound; 87 | // propDefaultValue = ; // or, propDefaultValue = ""; 88 | // propList = // { "value" , "label" } , { "value" , "label" } , ... ; 89 | // propShortDescription = "status_bar_hint_text"; 90 | // #BEGIN_PROP_FULL_DESCRIPTION line_1... line_2... line_n #END_PROP_FULL_DESCRIPTION 91 | // #BEGIN_PROP_NOTES line_1... line_2... line_n #END_PROP_NOTES 92 | #END_PARAMETER_PROPERTIES 93 | */ 94 | 95 | /******************************************************************************************* 96 | Structure Definitions 97 | (Uncomment and define structure definitions as needed) 98 | Note: Be sure to initialize all declared STRING variables as needed 99 | For example, in Function Main: struct.myString = ""; 100 | *******************************************************************************************/ 101 | /* 102 | STRUCTURE MyStruct1 103 | { 104 | }; 105 | 106 | MyStruct1 struct; 107 | */ 108 | 109 | /******************************************************************************************* 110 | Global Variables 111 | (Uncomment and declare global variables as needed) 112 | Note: Be sure to initialize all declared STRING variables as needed 113 | For example, in Function Main: myString = ""; 114 | *******************************************************************************************/ 115 | // INTEGER 116 | // LONG_INTEGER 117 | // SIGNED_INTEGER 118 | // SIGNED_LONG_INTEGER 119 | // STRING 120 | 121 | /******************************************************************************************* 122 | Functions 123 | (Add any additional functions here) 124 | Note: Functions must be physically placed before the location in 125 | the code that calls them. 126 | *******************************************************************************************/ 127 | /* 128 | Function MyFunction1() 129 | { 130 | // TODO: Add local variable declarations here 131 | 132 | // TODO: Add code here 133 | } 134 | */ 135 | 136 | /* 137 | Integer_Function MyIntFunction1() 138 | { 139 | // TODO: Add local variable declarations here 140 | 141 | // TODO: Add code here 142 | 143 | Return (0); 144 | } 145 | */ 146 | 147 | /* 148 | String_Function MyStrFunction1() 149 | { 150 | // TODO: Add local variable declarations here 151 | 152 | // TODO: Add code here 153 | 154 | Return (""); 155 | } 156 | */ 157 | 158 | /******************************************************************************************* 159 | Event Handlers 160 | (Uncomment and declare additional event handlers as needed) 161 | *******************************************************************************************/ 162 | /* 163 | PUSH input 164 | { 165 | // TODO: Add code here 166 | } 167 | */ 168 | 169 | /* 170 | RELEASE input 171 | { 172 | // TODO: Add code here 173 | } 174 | */ 175 | 176 | THREADSAFE CHANGE From_Console 177 | { 178 | STRING Temp[255]; 179 | 180 | While (Find("\r", From_Console)) 181 | { 182 | Temp = Remove("\r", From_Console); 183 | 184 | If (Find("MAC Address", Temp)) 185 | { 186 | Temp = 187 | } 188 | } 189 | } 190 | 191 | /* 192 | EVENT 193 | { 194 | // TODO: Add code here 195 | } 196 | */ 197 | 198 | /* 199 | SOCKETCONNECT 200 | { 201 | // TODO: Add code here 202 | } 203 | */ 204 | 205 | /* 206 | SOCKETDISCONNECT 207 | { 208 | // TODO: Add code here 209 | } 210 | */ 211 | 212 | /* 213 | SOCKETRECEIVE 214 | { 215 | // TODO: Add code here 216 | } 217 | */ 218 | 219 | /* 220 | SOCKETSTATUS 221 | { 222 | // TODO: Add code here 223 | } 224 | */ 225 | 226 | /******************************************************************************************* 227 | Main() 228 | Uncomment and place one-time startup code here 229 | (This code will get called when the system starts up) 230 | *******************************************************************************************/ 231 | 232 | Function Main() 233 | { 234 | WaitForInitializationComplete(); 235 | To_Console = "est\n"; 236 | } 237 | 238 | 239 | -------------------------------------------------------------------------------- /Cisco/KL Cisco Touch 10 Button v1.0.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.07.03 8 | IntStrVrs=2 9 | MinSMWVrs=0 10 | MinTIOVrs=0 11 | SavedBy=SMW4.07.03 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Cisco Touch 10 Button v1.0.umc 19 | DbVr=63.07.003.00 20 | DvcDbVr=87.00.003.00 21 | PgmNm=Kiel Lofstrand 22 | DlrNm=SPS 23 | Incl=362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,767,830,883,1032,1062,1079,1134,1157,1199,1220,1222,1299,1348,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,3708,3902,3912,3918,3925,1766,2574,2651,2817,2886,2938,2947,3181,3197,3233,3710,3735,3736,3816,3888,4176,4308,4476,4591,4769,5360,5388,5420,5455, 24 | SmVr=1039 25 | DvVr=1039 26 | TpN1=1 27 | TpN2=2 28 | TpN3=3 29 | TpN4=4 30 | TpN5=5 31 | APg=1 32 | FltTmp=1 33 | FpCS=0 34 | EnType=0 35 | ZeroOnIoOk=0 36 | SGMethod=1 37 | ] 38 | [ 39 | ObjTp=Bk 40 | Nm1=\ 41 | Sx1=0 42 | Sy1=0 43 | Mx1=0 44 | ] 45 | [ 46 | ObjTp=Bw 47 | H=1 48 | Lx=0 49 | Ly=196 50 | Rx=1591 51 | Ry=954 52 | Xm=-1 53 | Ym=-1 54 | SH=7 55 | Z=100 56 | Ht=3 57 | Hi=5 58 | ] 59 | [ 60 | ObjTp=Bw 61 | H=1 62 | Lx=0 63 | Ly=0 64 | Rx=1591 65 | Ry=249 66 | Xm=-1 67 | Ym=-1 68 | SH=6 69 | Z=100 70 | Ht=3 71 | Hi=1 72 | ] 73 | [ 74 | ObjTp=Symbol 75 | Name=KL Cisco Touch 10 Button v1.0 76 | Code=1 77 | SmplCName=KL Cisco Touch 10 Button v1.0.umc 78 | Smpl-C=3 79 | CompilerTimePrecision=Single_Or_Double_Precision 80 | SMWRev=0 81 | TIORev=0 82 | HelpID=1055 83 | APg=1 84 | StdCmd=0 85 | FltTmp=1 86 | FpCS=0 87 | NumFixedInputs=4 88 | NumFixedOutputs=4 89 | NumFixedParams=1 90 | MinVariableInputs=0 91 | MinVariableInputsList2=0 92 | MinVariableInputsList3=0 93 | MinVariableOutputs=0 94 | MinVariableOutputsList2=0 95 | MinVariableOutputsList3=0 96 | MinVariableParams=0 97 | SymbolTree=32 98 | InputSigType1=Serial 99 | InputSigType2=Digital|Analog|Serial|String 100 | InputSigType3=Digital 101 | OutputSigType1=Serial 102 | OutputSigType2=Digital|Analog|Serial|String 103 | OutputSigType3=Digital 104 | OutputSigType4=Digital|Analog|Serial|String 105 | ParamSigType1=Time|Percent|Constant|String|FileName|HexAddress|Any 106 | InputCue1=from_codec$ 107 | InputCue2=[~UNUSED~] 108 | InputCue3=fb 109 | InputCue4=fb* 110 | OutputCue1=to_codec$ 111 | OutputCue2=[~UNUSED~] 112 | OutputCue3=press 113 | OutputCue4=[~UNUSED~] 114 | ParamCue1=widget_id 115 | FileName=KL Cisco Touch 10 Button v1.0.umc 116 | EncodingType=0 117 | ZeroOnIoOk=0 118 | ] 119 | [ 120 | ObjTp=Sm 121 | H=1 122 | SmC=157 123 | Nm=Central Control Modules 124 | ObjVer=1 125 | CF=2 126 | n1I=1 127 | n1O=1 128 | mI=1 129 | mO=1 130 | tO=1 131 | mP=1 132 | P1= 133 | ] 134 | [ 135 | ObjTp=Sm 136 | H=2 137 | SmC=157 138 | Nm=Network Modules 139 | ObjVer=1 140 | CF=2 141 | n1I=1 142 | n1O=1 143 | mI=1 144 | mO=1 145 | tO=1 146 | mP=1 147 | P1= 148 | ] 149 | [ 150 | ObjTp=Sm 151 | H=3 152 | SmC=157 153 | Nm=Ethernet 154 | ObjVer=1 155 | CF=2 156 | n1I=1 157 | n1O=1 158 | mI=1 159 | mO=1 160 | tO=1 161 | mP=1 162 | P1= 163 | ] 164 | [ 165 | ObjTp=Sm 166 | H=4 167 | SmC=156 168 | Nm=Logic 169 | ObjVer=1 170 | CF=2 171 | mC=2 172 | C1=7 173 | C2=9 174 | ] 175 | [ 176 | ObjTp=Sm 177 | H=5 178 | SmC=157 179 | Nm=DefineArguments 180 | ObjVer=1 181 | CF=2 182 | n1I=1 183 | n1O=1 184 | mC=1 185 | C1=6 186 | mI=1 187 | mO=1 188 | tO=1 189 | mP=1 190 | P1= 191 | ] 192 | [ 193 | ObjTp=Sm 194 | H=6 195 | SmC=55 196 | Nm=Argument Definition 197 | ObjVer=1 198 | PrH=5 199 | CF=2 200 | n1I=4 201 | n1O=4 202 | mI=4 203 | I1=4 204 | I2=6 205 | I3=14 206 | I4=15 207 | mO=4 208 | tO=4 209 | O1=5 210 | O2=6 211 | O3=13 212 | O4=6 213 | mP=1 214 | P1=widget_id 215 | ] 216 | [ 217 | ObjTp=Sm 218 | H=7 219 | SmC=101 220 | Nm=Serial I/O 221 | ObjVer=1 222 | PrH=4 223 | CF=2 224 | n1I=4 225 | n1O=3 226 | mI=4 227 | I1=4 228 | I3=14 229 | I4=15 230 | mO=3 231 | tO=3 232 | O1=5 233 | O2=9 234 | O3=16 235 | mP=5 236 | P1=\n 237 | P2=xcommand UserInterface Extensions Widget SetValue WidgetId:"\[#widget_id\]" Value:"active" 238 | P3=xcommand UserInterface Extensions Widget SetValue WidgetId:"\[#widget_id\]" Value:"inactive" 239 | P4=*e UserInterface Extensions Event Pressed Signal: "\[#widget_id\]" 240 | P5=*e UserInterface Extensions Event Released Signal: "\[#widget_id\]" 241 | ] 242 | [ 243 | ObjTp=Sm 244 | H=9 245 | SmC=12 246 | Nm=Set/Reset Latch 247 | ObjVer=1 248 | PrH=4 249 | CF=2 250 | n1I=2 251 | n1O=2 252 | mI=2 253 | I1=9 254 | I2=16 255 | mO=2 256 | tO=2 257 | O1=13 258 | ] 259 | [ 260 | ObjTp=Sg 261 | H=4 262 | Nm=from_codec$ 263 | SgTp=4 264 | ] 265 | [ 266 | ObjTp=Sg 267 | H=5 268 | Nm=to_codec$ 269 | SgTp=4 270 | ] 271 | [ 272 | ObjTp=Sg 273 | H=6 274 | Nm=[~UNUSED~] 275 | SgTp=31 276 | ] 277 | [ 278 | ObjTp=Sg 279 | H=9 280 | Nm=press_mv 281 | ] 282 | [ 283 | ObjTp=Sg 284 | H=13 285 | Nm=press 286 | ] 287 | [ 288 | ObjTp=Sg 289 | H=14 290 | Nm=fb 291 | ] 292 | [ 293 | ObjTp=Sg 294 | H=15 295 | Nm=fb* 296 | ] 297 | [ 298 | ObjTp=Sg 299 | H=16 300 | Nm=release_mv 301 | ] 302 | -------------------------------------------------------------------------------- /Cisco/KL Cisco Touch 10 Group v1.0.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.07.03 8 | IntStrVrs=2 9 | MinSMWVrs=0 10 | MinTIOVrs=0 11 | SavedBy=SMW4.07.03 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Cisco Touch 10 Group v1.0.umc 19 | DbVr=63.07.003.00 20 | DvcDbVr=87.00.003.00 21 | PgmNm=Kiel Lofstrand 22 | DlrNm=SPS 23 | Incl=362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,767,830,883,1032,1062,1079,1134,1157,1199,1220,1222,1299,1348,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,3708,3902,3912,3918,3925,1766,2574,2651,2817,2886,2938,2947,3181,3197,3233,3710,3735,3736,3816,3888,4176,4308,4476,4591,4769,5360,5388,5420,5455, 24 | McNm=KL Cisco Touch 10 Group v1.0 25 | SmVr=1033 26 | DvVr=1033 27 | TpN1=1 28 | TpN2=2 29 | TpN3=3 30 | TpN4=4 31 | TpN5=5 32 | APg=1 33 | FltTmp=1 34 | FpCS=0 35 | EnType=0 36 | ZeroOnIoOk=0 37 | SGMethod=1 38 | ] 39 | [ 40 | ObjTp=Bk 41 | Nm1=\ 42 | Sx1=0 43 | Sy1=0 44 | Mx1=0 45 | ] 46 | [ 47 | ObjTp=Bw 48 | H=1 49 | Lx=0 50 | Ly=200 51 | Rx=1058 52 | Ry=400 53 | Xm=-1 54 | Ym=-1 55 | SH=7 56 | Z=100 57 | P=168 58 | Ht=4 59 | Hi=2 60 | ] 61 | [ 62 | ObjTp=Bw 63 | H=1 64 | Lx=0 65 | Ly=400 66 | Rx=1058 67 | Ry=600 68 | Xm=-1 69 | Ym=-1 70 | SH=6 71 | Z=100 72 | Ht=1 73 | Hi=3 74 | ] 75 | [ 76 | ObjTp=Bw 77 | H=1 78 | Lx=0 79 | Ly=0 80 | Rx=1058 81 | Ry=202 82 | Xm=-1 83 | Ym=-1 84 | SH=8 85 | Z=100 86 | P=22 87 | Ht=4 88 | Hi=4 89 | ] 90 | [ 91 | ObjTp=Symbol 92 | Name=KL Cisco Touch 10 Group v1.0 93 | Code=1 94 | SmplCName=KL Cisco Touch 10 Group v1.0.umc 95 | Smpl-C=3 96 | CompilerTimePrecision=Single_Or_Double_Precision 97 | SMWRev=0 98 | TIORev=0 99 | HelpID=1055 100 | APg=1 101 | StdCmd=0 102 | FltTmp=1 103 | FpCS=0 104 | NumFixedInputs=11 105 | NumFixedOutputs=11 106 | NumFixedParams=5 107 | MinVariableInputs=0 108 | MinVariableInputsList2=0 109 | MinVariableInputsList3=0 110 | MinVariableOutputs=0 111 | MinVariableOutputsList2=0 112 | MinVariableOutputsList3=0 113 | MinVariableParams=0 114 | SymbolTree=32 115 | InputSigType1=Serial 116 | InputSigType2=Digital|Analog|Serial|String 117 | InputSigType3=Digital 118 | InputSigType4=Digital 119 | InputSigType5=Digital 120 | InputSigType6=Digital 121 | InputSigType7=Digital 122 | InputSigType8=Digital|Analog|Serial|String 123 | OutputSigType1=Serial 124 | OutputSigType2=Digital|Analog|Serial|String 125 | OutputSigType3=Digital|Analog|Serial|String 126 | OutputSigType4=Digital 127 | ParamSigType1=Time|Percent|Constant|String|FileName|HexAddress|Any 128 | ParamSigType2=Time|Percent|Constant|String|FileName|HexAddress|Any 129 | ParamSigType3=Time|Percent|Constant|String|FileName|HexAddress|Any 130 | ParamSigType4=Time|Percent|Constant|String|FileName|HexAddress|Any 131 | ParamSigType5=Time|Percent|Constant|String|FileName|HexAddress|Any 132 | InputCue1=from_codec$ 133 | InputCue2=[~UNUSED~] 134 | InputCue3=clear 135 | InputCue4=in1 136 | InputCue5=in2 137 | InputCue6=in3 138 | InputCue7=in4 139 | InputCue8=[~UNUSED~] 140 | InputCue9=[~UNUSED~] 141 | InputCue10=[~UNUSED~] 142 | InputCue11=[~UNUSED~] 143 | OutputCue1=to_codec$ 144 | OutputCue2=[~UNUSED~] 145 | OutputCue3=[~UNUSED~] 146 | OutputCue4=out1 147 | OutputCue5=out2 148 | OutputCue6=out3 149 | OutputCue7=out4 150 | OutputCue8=out1_mv 151 | OutputCue9=out2_mv 152 | OutputCue10=out3_mv 153 | OutputCue11=out4_mv 154 | ParamCue1=widget_id 155 | ParamCue2=id1 156 | ParamCue3=id2 157 | ParamCue4=id3 158 | ParamCue5=id4 159 | FileName=KL Cisco Touch 10 Group v1.0.umc 160 | EncodingType=0 161 | ZeroOnIoOk=0 162 | ] 163 | [ 164 | ObjTp=Sm 165 | H=1 166 | SmC=157 167 | Nm=Central Control Modules 168 | ObjVer=1 169 | CF=2 170 | n1I=1 171 | n1O=1 172 | mI=1 173 | mO=1 174 | tO=1 175 | mP=1 176 | P1= 177 | ] 178 | [ 179 | ObjTp=Sm 180 | H=2 181 | SmC=157 182 | Nm=Network Modules 183 | ObjVer=1 184 | CF=2 185 | n1I=1 186 | n1O=1 187 | mI=1 188 | mO=1 189 | tO=1 190 | mP=1 191 | P1= 192 | ] 193 | [ 194 | ObjTp=Sm 195 | H=3 196 | SmC=157 197 | Nm=Ethernet 198 | ObjVer=1 199 | CF=2 200 | n1I=1 201 | n1O=1 202 | mI=1 203 | mO=1 204 | tO=1 205 | mP=1 206 | P1= 207 | ] 208 | [ 209 | ObjTp=Sm 210 | H=4 211 | SmC=156 212 | Nm=Logic 213 | ObjVer=1 214 | CF=2 215 | mC=2 216 | C1=7 217 | C2=8 218 | ] 219 | [ 220 | ObjTp=Sm 221 | H=5 222 | SmC=157 223 | Nm=DefineArguments 224 | ObjVer=1 225 | CF=2 226 | n1I=1 227 | n1O=1 228 | mC=1 229 | C1=6 230 | mI=1 231 | mO=1 232 | tO=1 233 | mP=1 234 | P1= 235 | ] 236 | [ 237 | ObjTp=Sm 238 | H=6 239 | SmC=55 240 | Nm=Argument Definition 241 | ObjVer=1 242 | PrH=5 243 | CF=2 244 | n1I=11 245 | n1O=11 246 | mI=11 247 | I1=4 248 | I2=6 249 | I3=7 250 | I4=8 251 | I5=9 252 | I6=10 253 | I7=11 254 | I8=6 255 | I9=6 256 | I10=6 257 | I11=6 258 | mO=11 259 | tO=11 260 | O1=5 261 | O2=6 262 | O3=6 263 | O4=12 264 | O5=13 265 | O6=14 266 | O7=15 267 | O8=16 268 | O9=17 269 | O10=18 270 | O11=19 271 | mP=5 272 | P1=widget_id 273 | P2=id1 274 | P3=id2 275 | P4=id3 276 | P5=id4 277 | ] 278 | [ 279 | ObjTp=Sm 280 | H=7 281 | SmC=101 282 | Nm=Serial I/O 283 | ObjVer=1 284 | PrH=4 285 | CF=2 286 | n1I=7 287 | n1O=5 288 | mI=7 289 | I1=4 290 | I3=7 291 | I4=8 292 | I5=9 293 | I6=10 294 | I7=11 295 | mO=5 296 | tO=5 297 | O1=5 298 | O2=16 299 | O3=17 300 | O4=18 301 | O5=19 302 | mP=10 303 | P1=\n 304 | P2=xcommand UserInterface Extensions Widget UnSetValue WidgetId:"\[#widget_id\]" 305 | P3=xcommand UserInterface Extensions Widget SetValue WidgetId:"\[#widget_id\]" Value:"\[#id1\]" 306 | P4=xcommand UserInterface Extensions Widget SetValue WidgetId:"\[#widget_id\]" Value:"\[#id2\]" 307 | P5=xcommand UserInterface Extensions Widget SetValue WidgetId:"\[#widget_id\]" Value:"\[#id3\]" 308 | P6=xcommand UserInterface Extensions Widget SetValue WidgetId:"\[#widget_id\]" Value:"\[#id4\]" 309 | P7=*e UserInterface Extensions Event Pressed Signal: "\[#widget_id\]:\[#id1\]" 310 | P8=*e UserInterface Extensions Event Pressed Signal: "\[#widget_id\]:\[#id2\]" 311 | P9=*e UserInterface Extensions Event Pressed Signal: "\[#widget_id\]:\[#id3\]" 312 | P10=*e UserInterface Extensions Event Pressed Signal: "\[#widget_id\]:\[#id4\]" 313 | ] 314 | [ 315 | ObjTp=Sm 316 | H=8 317 | SmC=19 318 | Nm=Interlock 319 | ObjVer=1 320 | PrH=4 321 | CF=2 322 | n1I=6 323 | n1O=4 324 | mI=6 325 | I1=7 326 | I3=16 327 | I4=17 328 | I5=18 329 | I6=19 330 | mO=4 331 | tO=4 332 | O1=12 333 | O2=13 334 | O3=14 335 | O4=15 336 | ] 337 | [ 338 | ObjTp=Sg 339 | H=4 340 | Nm=from_codec$ 341 | SgTp=4 342 | ] 343 | [ 344 | ObjTp=Sg 345 | H=5 346 | Nm=to_codec$ 347 | SgTp=4 348 | ] 349 | [ 350 | ObjTp=Sg 351 | H=6 352 | Nm=[~UNUSED~] 353 | SgTp=31 354 | ] 355 | [ 356 | ObjTp=Sg 357 | H=7 358 | Nm=clear 359 | ] 360 | [ 361 | ObjTp=Sg 362 | H=8 363 | Nm=in1 364 | ] 365 | [ 366 | ObjTp=Sg 367 | H=9 368 | Nm=in2 369 | ] 370 | [ 371 | ObjTp=Sg 372 | H=10 373 | Nm=in3 374 | ] 375 | [ 376 | ObjTp=Sg 377 | H=11 378 | Nm=in4 379 | ] 380 | [ 381 | ObjTp=Sg 382 | H=12 383 | Nm=out1 384 | ] 385 | [ 386 | ObjTp=Sg 387 | H=13 388 | Nm=out2 389 | ] 390 | [ 391 | ObjTp=Sg 392 | H=14 393 | Nm=out3 394 | ] 395 | [ 396 | ObjTp=Sg 397 | H=15 398 | Nm=out4 399 | ] 400 | [ 401 | ObjTp=Sg 402 | H=16 403 | Nm=out1_mv 404 | ] 405 | [ 406 | ObjTp=Sg 407 | H=17 408 | Nm=out2_mv 409 | ] 410 | [ 411 | ObjTp=Sg 412 | H=18 413 | Nm=out3_mv 414 | ] 415 | [ 416 | ObjTp=Sg 417 | H=19 418 | Nm=out4_mv 419 | ] 420 | -------------------------------------------------------------------------------- /Cisco/KL Cisco Touch 10 Toggle v1.0.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.07.03 8 | IntStrVrs=2 9 | MinSMWVrs=0 10 | MinTIOVrs=0 11 | SavedBy=SMW4.07.03 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Cisco Touch 10 Toggle v1.0.umc 19 | DbVr=63.07.003.00 20 | DvcDbVr=87.00.003.00 21 | PgmNm=Kiel Lofstrand 22 | DlrNm=SPS 23 | Incl=362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,767,830,883,1032,1062,1079,1134,1157,1199,1220,1222,1299,1348,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,3708,3902,3912,3918,3925,1766,2574,2651,2817,2886,2938,2947,3181,3197,3233,3710,3735,3736,3816,3888,4176,4308,4476,4591,4769,5360,5388,5420,5455, 24 | SmVr=1039 25 | DvVr=1039 26 | TpN1=1 27 | TpN2=2 28 | TpN3=3 29 | TpN4=4 30 | TpN5=5 31 | APg=1 32 | FltTmp=1 33 | FpCS=0 34 | EnType=0 35 | ZeroOnIoOk=0 36 | SGMethod=1 37 | ] 38 | [ 39 | ObjTp=Bk 40 | Nm1=\ 41 | Sx1=0 42 | Sy1=0 43 | Mx1=0 44 | ] 45 | [ 46 | ObjTp=Bw 47 | H=1 48 | Lx=0 49 | Ly=0 50 | Rx=1591 51 | Ry=477 52 | Xm=-1 53 | Ym=-1 54 | SH=6 55 | Z=100 56 | Ht=4 57 | Hi=3 58 | ] 59 | [ 60 | ObjTp=Bw 61 | H=1 62 | Lx=0 63 | Ly=477 64 | Rx=1591 65 | Ry=954 66 | Xm=-1 67 | Ym=-1 68 | SH=7 69 | Z=100 70 | Ht=4 71 | Hi=2 72 | ] 73 | [ 74 | ObjTp=Symbol 75 | Name=KL Cisco Touch 10 Toggle v1.0 76 | Code=1 77 | SmplCName=KL Cisco Touch 10 Toggle v1.0.umc 78 | Smpl-C=3 79 | CompilerTimePrecision=Single_Or_Double_Precision 80 | SMWRev=0 81 | TIORev=0 82 | HelpID=1055 83 | APg=1 84 | StdCmd=0 85 | FltTmp=1 86 | FpCS=0 87 | NumFixedInputs=4 88 | NumFixedOutputs=4 89 | NumFixedParams=1 90 | MinVariableInputs=0 91 | MinVariableInputsList2=0 92 | MinVariableInputsList3=0 93 | MinVariableOutputs=0 94 | MinVariableOutputsList2=0 95 | MinVariableOutputsList3=0 96 | MinVariableParams=0 97 | SymbolTree=32 98 | InputSigType1=Serial 99 | InputSigType2=Digital|Analog|Serial|String 100 | InputSigType3=Digital 101 | OutputSigType1=Serial 102 | OutputSigType2=Digital|Analog|Serial|String 103 | OutputSigType3=Digital 104 | ParamSigType1=Time|Percent|Constant|String|FileName|HexAddress|Any 105 | InputCue1=from_codec$ 106 | InputCue2=[~UNUSED~] 107 | InputCue3=set 108 | InputCue4=reset 109 | OutputCue1=to_codec$ 110 | OutputCue2=[~UNUSED~] 111 | OutputCue3=out 112 | OutputCue4=out* 113 | ParamCue1=widget_id 114 | FileName=KL Cisco Touch 10 Toggle v1.0.umc 115 | EncodingType=0 116 | ZeroOnIoOk=0 117 | ] 118 | [ 119 | ObjTp=Sm 120 | H=1 121 | SmC=157 122 | Nm=Central Control Modules 123 | ObjVer=1 124 | CF=2 125 | n1I=1 126 | n1O=1 127 | mI=1 128 | mO=1 129 | tO=1 130 | mP=1 131 | P1= 132 | ] 133 | [ 134 | ObjTp=Sm 135 | H=2 136 | SmC=157 137 | Nm=Network Modules 138 | ObjVer=1 139 | CF=2 140 | n1I=1 141 | n1O=1 142 | mI=1 143 | mO=1 144 | tO=1 145 | mP=1 146 | P1= 147 | ] 148 | [ 149 | ObjTp=Sm 150 | H=3 151 | SmC=157 152 | Nm=Ethernet 153 | ObjVer=1 154 | CF=2 155 | n1I=1 156 | n1O=1 157 | mI=1 158 | mO=1 159 | tO=1 160 | mP=1 161 | P1= 162 | ] 163 | [ 164 | ObjTp=Sm 165 | H=4 166 | SmC=156 167 | Nm=Logic 168 | ObjVer=1 169 | CF=2 170 | mC=2 171 | C1=7 172 | C2=8 173 | ] 174 | [ 175 | ObjTp=Sm 176 | H=5 177 | SmC=157 178 | Nm=DefineArguments 179 | ObjVer=1 180 | CF=2 181 | n1I=1 182 | n1O=1 183 | mC=1 184 | C1=6 185 | mI=1 186 | mO=1 187 | tO=1 188 | mP=1 189 | P1= 190 | ] 191 | [ 192 | ObjTp=Sm 193 | H=6 194 | SmC=55 195 | Nm=Argument Definition 196 | ObjVer=1 197 | PrH=5 198 | CF=2 199 | n1I=4 200 | n1O=4 201 | mI=4 202 | I1=4 203 | I2=6 204 | I3=7 205 | I4=8 206 | mO=4 207 | tO=4 208 | O1=5 209 | O2=6 210 | O3=9 211 | O4=10 212 | mP=1 213 | P1=widget_id 214 | ] 215 | [ 216 | ObjTp=Sm 217 | H=7 218 | SmC=101 219 | Nm=Serial I/O 220 | ObjVer=1 221 | PrH=4 222 | CF=2 223 | n1I=4 224 | n1O=3 225 | mI=4 226 | I1=4 227 | I3=7 228 | I4=8 229 | mO=3 230 | tO=3 231 | O1=5 232 | O2=11 233 | O3=12 234 | mP=5 235 | P1=\n 236 | P2=xcommand UserInterface Extensions Widget SetValue WidgetId:"\[#widget_id\]" Value:"on" 237 | P3=xcommand UserInterface Extensions Widget SetValue WidgetId:"\[#widget_id\]" Value:"off" 238 | P4=*e UserInterface Extensions Event Changed Signal: "\[#widget_id\]:on" 239 | P5=*e UserInterface Extensions Event Changed Signal: "\[#widget_id\]:off" 240 | ] 241 | [ 242 | ObjTp=Sm 243 | H=8 244 | SmC=19 245 | Nm=Interlock 246 | ObjVer=1 247 | PrH=4 248 | CF=2 249 | n1I=4 250 | n1O=2 251 | mI=4 252 | I3=11 253 | I4=12 254 | mO=2 255 | tO=2 256 | O1=9 257 | O2=10 258 | ] 259 | [ 260 | ObjTp=Sg 261 | H=4 262 | Nm=from_codec$ 263 | SgTp=4 264 | ] 265 | [ 266 | ObjTp=Sg 267 | H=5 268 | Nm=to_codec$ 269 | SgTp=4 270 | ] 271 | [ 272 | ObjTp=Sg 273 | H=6 274 | Nm=[~UNUSED~] 275 | SgTp=31 276 | ] 277 | [ 278 | ObjTp=Sg 279 | H=7 280 | Nm=set 281 | ] 282 | [ 283 | ObjTp=Sg 284 | H=8 285 | Nm=reset 286 | ] 287 | [ 288 | ObjTp=Sg 289 | H=9 290 | Nm=out 291 | ] 292 | [ 293 | ObjTp=Sg 294 | H=10 295 | Nm=out* 296 | ] 297 | [ 298 | ObjTp=Sg 299 | H=11 300 | Nm=out_mv 301 | ] 302 | [ 303 | ObjTp=Sg 304 | H=12 305 | Nm=out*_mv 306 | ] 307 | -------------------------------------------------------------------------------- /Cisco/KL Phonebook Pager Driver v1.1.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=KL Phonebook Pager Driver v1.1 21 | SmplCName=KL Phonebook Pager Driver v1.1.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Refresh 26 | InputSigType1=Digital 27 | InputCue2=First_Page 28 | InputSigType2=Digital 29 | InputCue3=Previous_Page 30 | InputSigType3=Digital 31 | InputCue4=Next_Page 32 | InputSigType4=Digital 33 | InputCue5=Select[#] 34 | InputSigType5=Digital 35 | InputList2Cue1=Total_Rows 36 | InputList2SigType1=Analog 37 | InputList2Cue2=Names$[#] 38 | InputList2SigType2=Serial 39 | OutputList2Cue1=Current_Page 40 | OutputList2SigType1=Analog 41 | OutputList2Cue2=Total_Pages 42 | OutputList2SigType2=Analog 43 | OutputList2Cue3=Selection 44 | OutputList2SigType3=Analog 45 | OutputList2Cue4=Entry_Name$[#] 46 | OutputList2SigType4=Serial 47 | ParamCue1=[Reference Name] 48 | ParamCue2=Entries_Per_Page 49 | ParamSigType2=Constant 50 | MinVariableInputs=5 51 | MaxVariableInputs=29 52 | MinVariableInputsList2=2 53 | MaxVariableInputsList2=256 54 | MinVariableOutputs=0 55 | MaxVariableOutputs=0 56 | MinVariableOutputsList2=4 57 | MaxVariableOutputsList2=28 58 | MinVariableParams=1 59 | MaxVariableParams=1 60 | Expand=expand_separately 61 | Expand2=expand_separately 62 | ProgramTree=Logic 63 | SymbolTree=32 64 | Hint= 65 | PdfHelp= 66 | HelpID= 67 | Render=4 68 | Smpl-C=16 69 | CompilerCode=-48 70 | CompilerParamCode=27 71 | CompilerParamCode5=14 72 | NumFixedParams=1 73 | Pp1=1 74 | Pp2=2 75 | MPp=2 76 | NVStorage=10 77 | ParamSigType1=String 78 | SmplCInputCue1=o# 79 | SmplCOutputCue1=i# 80 | SmplCInputList2Cue1=an# 81 | SmplCOutputList2Cue1=ai# 82 | SPlus2CompiledName=S2_KL_Phonebook_Pager_Driver_v1_1 83 | SymJam=NonExclusive 84 | FileName=KL Phonebook Pager Driver v1.1.ush 85 | SIMPLPlusModuleEncoding=0 86 | clz1=Cisco SX80 Corporate Phone Book 87 | clz2=Cisco SX80 Phone Book 88 | [END] 89 | [BEGIN] 90 | ObjTp=Dp 91 | H=1 92 | Tp=1 93 | NoS=False 94 | [END] 95 | [BEGIN] 96 | ObjTp=Dp 97 | H=2 98 | Tp=1 99 | HD=False 100 | Sgn=0 101 | Lng=False 102 | NF=63 103 | NoS=True 104 | DNF=1 105 | VVS=0 106 | [END] 107 | -------------------------------------------------------------------------------- /Cisco/KL Phonebook Pager Driver v1.1.usp: -------------------------------------------------------------------------------- 1 | /******************************************************************************************* 2 | SIMPL+ Module Information 3 | (Fill in comments below) 4 | *******************************************************************************************/ 5 | /* 6 | Dealer Name: 7 | System Name: 8 | System Number: 9 | Programmer: 10 | Comments: 11 | */ 12 | 13 | /******************************************************************************************* 14 | Compiler Directives 15 | (Uncomment and declare compiler directives as needed) 16 | *******************************************************************************************/ 17 | // #ENABLE_DYNAMIC 18 | // #SYMBOL_NAME "" 19 | // #HINT "" 20 | // #DEFINE_CONSTANT 21 | // #CATEGORY "" 22 | // #PRINT_TO_TRACE 23 | // #DIGITAL_EXPAND 24 | // #ANALOG_SERIAL_EXPAND 25 | // #OUTPUT_SHIFT 26 | // #HELP_PDF_FILE "" 27 | #DEFAULT_VOLATILE 28 | #ENABLE_STACK_CHECKING 29 | #ENABLE_TRACE 30 | // #ENCODING_ASCII 31 | // #ENCODING_UTF16 32 | // #ENCODING_INHERIT_FROM_PARENT 33 | // #ENCODING_INHERIT_FROM_PROGRAM 34 | /* 35 | #HELP_BEGIN 36 | (add additional lines of help lines) 37 | #HELP_END 38 | */ 39 | 40 | /******************************************************************************************* 41 | DIGITAL, ANALOG and SERIAL INPUTS and OUTPUTS 42 | (Uncomment and declare inputs and outputs as needed) 43 | *******************************************************************************************/ 44 | DIGITAL_INPUT Refresh, First_Page, Previous_Page, Next_Page; 45 | ANALOG_INPUT Total_Rows; 46 | DIGITAL_INPUT Select[25]; 47 | STRING_INPUT Names$[255][100]; 48 | // BUFFER_INPUT 49 | 50 | // DIGITAL_OUTPUT 51 | ANALOG_OUTPUT Current_Page, Total_Pages, Selection; 52 | STRING_OUTPUT Entry_Name$[25]; 53 | 54 | /******************************************************************************************* 55 | Parameters 56 | (Uncomment and declare parameters as needed) 57 | *******************************************************************************************/ 58 | INTEGER_PARAMETER Entries_Per_Page; 59 | // SIGNED_INTEGER_PARAMETER 60 | // LONG_INTEGER_PARAMETER 61 | // SIGNED_LONG_INTEGER_PARAMETER 62 | // STRING_PARAMETER 63 | 64 | /******************************************************************************************* 65 | Global Variables 66 | (Uncomment and declare global variables as needed) 67 | Note: Be sure to initialize all declared STRING variables as needed 68 | For example, in Function Main: myString = ""; 69 | *******************************************************************************************/ 70 | INTEGER nPage, nTotalPages; 71 | STRING sName[255][100]; 72 | 73 | /******************************************************************************************* 74 | Functions 75 | (Add any additional functions here) 76 | Note: Functions must be physically placed before the location in 77 | the code that calls them. 78 | *******************************************************************************************/ 79 | 80 | Function Paginate() 81 | { 82 | INTEGER i, j; 83 | 84 | // Which entry do we start on? 85 | i = (nPage - 1) * Entries_Per_Page; 86 | 87 | // Loop over one page of names 88 | For (j = 1 To Entries_Per_Page) 89 | { 90 | // Hit the last one? 91 | If (i + j > Total_Rows) 92 | { 93 | Entry_Name$[j] = ""; 94 | } 95 | Else 96 | { 97 | Entry_Name$[j] = sName[i + j]; 98 | } 99 | } 100 | } 101 | 102 | /******************************************************************************************* 103 | Event Handlers 104 | (Uncomment and declare additional event handlers as needed) 105 | *******************************************************************************************/ 106 | 107 | CHANGE Names$ 108 | { 109 | INTEGER i, j; 110 | 111 | // Which name changed? 112 | i = GetLastModifiedArrayIndex(); 113 | 114 | // Save it 115 | sName[i] = Names$[i]; 116 | } 117 | 118 | CHANGE Total_Rows 119 | { 120 | // Go back to the first page 121 | nPage = 1; 122 | Current_Page = nPage; 123 | 124 | // How many pages do we have now? 125 | nTotalPages = (Total_Rows / Entries_Per_Page); 126 | 127 | IF (Total_Rows % Entries_Per_Page > 0) 128 | { 129 | nTotalPages = nTotalPages + 1; 130 | } 131 | 132 | Total_Pages = nTotalPages; 133 | 134 | // Nothing selected now 135 | Selection = 0; 136 | Paginate(); 137 | } 138 | 139 | PUSH Refresh 140 | { 141 | Paginate(); 142 | } 143 | 144 | PUSH First_Page 145 | { 146 | // Go back to the first page 147 | nPage = 1; 148 | Current_Page = nPage; 149 | 150 | // Nothing selected now 151 | Selection = 0; 152 | Paginate(); 153 | } 154 | 155 | PUSH Previous_Page 156 | { 157 | // Can we go back? 158 | IF (nPage > 1) 159 | { 160 | nPage = nPage - 1; 161 | Current_Page = nPage; 162 | 163 | // Nothing selected now 164 | Selection = 0; 165 | Paginate(); 166 | } 167 | } 168 | 169 | PUSH Next_Page 170 | { 171 | // Can we go forward? 172 | IF (nPage < nTotalPages) 173 | { 174 | nPage = nPage + 1; 175 | Current_Page = nPage; 176 | 177 | // Nothing selected now 178 | Selection = 0; 179 | Paginate(); 180 | } 181 | } 182 | 183 | PUSH Select 184 | { 185 | INTEGER i, k; 186 | 187 | i = GetLastModifiedArrayIndex(); 188 | 189 | // What is the base index for this page we're on? 190 | k = (nPage - 1) * Entries_Per_Page; 191 | 192 | If ((k + i) <= Total_Rows) 193 | { 194 | Selection = k + i; 195 | } 196 | } 197 | 198 | /******************************************************************************************* 199 | Main() 200 | Uncomment and place one-time startup code here 201 | (This code will get called when the system starts up) 202 | *******************************************************************************************/ 203 | /* 204 | Function Main() 205 | { 206 | // TODO: Add code here 207 | // Initialize declared global and local variables/arrays as needed. 208 | 209 | // WaitForInitializationComplete(); 210 | // If you are reading any Input or Output variables, uncomment 211 | // the WaitForInitializationComplete statement above and read 212 | // them afterwards. Input/Output variables will not have 213 | // their correct values set until after the logic processor 214 | // runs and propagates the values to them. 215 | } 216 | */ 217 | 218 | -------------------------------------------------------------------------------- /Cisco/KL SX80 Phonebook Pager.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.02.26 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,718,756,767,830,841,842,854,883,955,1032,1062,1079,1128,1129,1134,1140,1157,1158,1195,1199,1220,1221,1222,1223,1299,1348,1349,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,2706,2707,3235,3236,3427,3454,3567,3568,3601,3602,3708,3902,3903,3912,3918,3925,3926,4206,4207, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=KL SX80 Phonebook Pager 21 | SmplCName=KL SX80 Phonebook Pager.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=First_Page 26 | InputSigType1=Digital 27 | InputCue2=Next_Page 28 | InputSigType2=Digital 29 | InputCue3=Previous_Page 30 | InputSigType3=Digital 31 | InputCue4=Select_Entry[#] 32 | InputSigType4=Digital 33 | InputList2Cue1=Phonebook_Names$[#] 34 | InputList2SigType1=Serial 35 | OutputList2Cue1=Current_Page 36 | OutputList2SigType1=Analog 37 | OutputList2Cue2=Total_Pages 38 | OutputList2SigType2=Analog 39 | OutputList2Cue3=Selected_Entry 40 | OutputList2SigType3=Analog 41 | OutputList2Cue4=Page_Names$[#] 42 | OutputList2SigType4=Serial 43 | ParamCue1=[Reference Name] 44 | MinVariableInputs=4 45 | MaxVariableInputs=8 46 | MinVariableInputsList2=1 47 | MaxVariableInputsList2=200 48 | MinVariableOutputs=0 49 | MaxVariableOutputs=0 50 | MinVariableOutputsList2=4 51 | MaxVariableOutputsList2=8 52 | MinVariableParams=0 53 | MaxVariableParams=0 54 | Expand=expand_separately 55 | Expand2=expand_separately 56 | ProgramTree=Logic 57 | SymbolTree=32 58 | Hint= 59 | PdfHelp= 60 | HelpID= 61 | Render=4 62 | Smpl-C=16 63 | CompilerCode=-48 64 | CompilerParamCode=27 65 | CompilerParamCode5=14 66 | NumFixedParams=1 67 | Pp1=1 68 | MPp=1 69 | NVStorage=10 70 | ParamSigType1=String 71 | SmplCInputCue1=o# 72 | SmplCOutputCue1=i# 73 | SmplCInputList2Cue1=an# 74 | SmplCOutputList2Cue1=ai# 75 | SPlus2CompiledName=S2_KL_SX80_Phonebook_Pager 76 | SymJam=NonExclusive 77 | FileName=KL SX80 Phonebook Pager.ush 78 | SIMPLPlusModuleEncoding=0 79 | clz1=Cisco SX80 Corporate Phone Book 80 | [END] 81 | [BEGIN] 82 | ObjTp=Dp 83 | H=1 84 | Tp=1 85 | NoS=False 86 | [END] 87 | -------------------------------------------------------------------------------- /Click to Join/KL Polycom Click-to-Join v1.1.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=KL Polycom Click-to-Join v1.1 21 | SmplCName=KL Polycom Click-to-Join v1.1.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Update 26 | InputSigType1=Digital 27 | InputCue2=Dial 28 | InputSigType2=Digital 29 | InputCue3=Clear 30 | InputSigType3=Digital 31 | InputCue4=Select_Meeting[#] 32 | InputSigType4=Digital 33 | OutputCue1=Update_Busy_Fb 34 | OutputSigType1=Digital 35 | OutputCue2=Selected_Meeting_Can_Dial 36 | OutputSigType2=Digital 37 | OutputCue3=Scheduled_Meeting_Reminder 38 | OutputSigType3=Digital 39 | OutputCue4=Select_Meeting_Fb[#] 40 | OutputSigType4=Digital 41 | InputList2Cue1=From_Device 42 | InputList2SigType1=Serial 43 | OutputList2Cue1=Number_Of_Meetings 44 | OutputList2SigType1=Analog 45 | OutputList2Cue2=To_Device 46 | OutputList2SigType2=Serial 47 | OutputList2Cue3=Selected_Meeting_Subject 48 | OutputList2SigType3=Serial 49 | OutputList2Cue4=Selected_Meeting_Organizer 50 | OutputList2SigType4=Serial 51 | OutputList2Cue5=Selected_Meeting_Location 52 | OutputList2SigType5=Serial 53 | OutputList2Cue6=Selected_Meeting_StartTime 54 | OutputList2SigType6=Serial 55 | OutputList2Cue7=Selected_Meeting_EndTime 56 | OutputList2SigType7=Serial 57 | OutputList2Cue8=Selected_Meeting_DialString 58 | OutputList2SigType8=Serial 59 | OutputList2Cue9=Selected_Meeting_Password 60 | OutputList2SigType9=Serial 61 | OutputList2Cue10=Meeting_Subject[#] 62 | OutputList2SigType10=Serial 63 | ParamCue1=[Reference Name] 64 | MinVariableInputs=4 65 | MaxVariableInputs=13 66 | MinVariableInputsList2=1 67 | MaxVariableInputsList2=1 68 | MinVariableOutputs=4 69 | MaxVariableOutputs=13 70 | MinVariableOutputsList2=10 71 | MaxVariableOutputsList2=19 72 | MinVariableParams=0 73 | MaxVariableParams=0 74 | Expand=expand_separately 75 | Expand2=expand_separately 76 | ProgramTree=Logic 77 | SymbolTree=32 78 | Hint= 79 | PdfHelp= 80 | HelpID= 81 | Render=4 82 | Smpl-C=16 83 | CompilerCode=-48 84 | CompilerParamCode=27 85 | CompilerParamCode5=14 86 | NumFixedParams=1 87 | Pp1=1 88 | MPp=1 89 | NVStorage=10 90 | ParamSigType1=String 91 | SmplCInputCue1=o# 92 | SmplCOutputCue1=i# 93 | SmplCInputList2Cue1=an# 94 | SmplCOutputList2Cue1=ai# 95 | SPlus2CompiledName=S2_KL_Polycom_Click_to_Join_v1_1 96 | SymJam=NonExclusive 97 | FileName=KL Polycom Click-to-Join v1.1.ush 98 | SIMPLPlusModuleEncoding=0 99 | [END] 100 | [BEGIN] 101 | ObjTp=Dp 102 | H=1 103 | Tp=1 104 | NoS=False 105 | [END] 106 | -------------------------------------------------------------------------------- /Countdown Timer/KL Countdown Timer v1.0.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.03.20 8 | IntStrVrs=2 9 | MinSMWVrs=2.07.04 10 | MinTIOVrs=0 11 | SavedBy=SMW4.03.20 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Countdown Timer v1.0.umc 19 | DbVr=54.00.012.00 20 | DvcDbVr=71.05.004.00 21 | PgmNm=Kiel Lofstrand 22 | DlrNm=SPS 23 | Incl=362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,767,830,883,1032,1062,1079,1134,1157,1199,1220,1222,1299,1348,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,3708,3902,3912,3918,3925,1766,2574,2651,2817,2886,2938,2947,3181,3197,3233,3710,3735,3736,3816,3888,4176,4308,4476,4591,4769, 24 | McNm=KL Countdown Timer v1.0 25 | SmVr=981 26 | DvVr=981 27 | TpN1=1 28 | TpN2=2 29 | TpN3=3 30 | TpN4=4 31 | TpN5=5 32 | APg=1 33 | FltTmp=1 34 | FpCS=0 35 | EnType=0 36 | ZeroOnIoOk=0 37 | SGMethod=1 38 | ] 39 | [ 40 | ObjTp=Bk 41 | Nm1=\ 42 | Sx1=0 43 | Sy1=0 44 | Mx1=0 45 | ] 46 | [ 47 | ObjTp=Bw 48 | H=1 49 | Lx=235 50 | Ly=161 51 | Rx=939 52 | Ry=422 53 | Xm=-1 54 | Ym=-1 55 | SH=9 56 | Z=100 57 | Ht=4 58 | Hi=1 59 | ] 60 | [ 61 | ObjTp=Bw 62 | H=1 63 | Lx=0 64 | Ly=0 65 | Rx=1290 66 | Ry=456 67 | Xm=-1 68 | Ym=-1 69 | SH=6 70 | Z=100 71 | Ht=4 72 | Hi=1 73 | ] 74 | [ 75 | ObjTp=Bw 76 | H=1 77 | Lx=0 78 | Ly=456 79 | Rx=1290 80 | Ry=912 81 | Xm=-1 82 | Ym=-1 83 | SH=7 84 | Z=100 85 | Ht=4 86 | Hi=1 87 | ] 88 | [ 89 | ObjTp=Bw 90 | H=1 91 | Lx=156 92 | Ly=345 93 | Rx=808 94 | Ry=613 95 | Xm=-1 96 | Ym=-1 97 | SH=8 98 | Z=100 99 | Ht=4 100 | Hi=1 101 | ] 102 | [ 103 | ObjTp=Bw 104 | H=1 105 | Lx=75 106 | Ly=26 107 | Rx=564 108 | Ry=236 109 | Xm=-1 110 | Ym=-1 111 | SH=13 112 | Z=100 113 | Ht=4 114 | Hi=1 115 | ] 116 | [ 117 | ObjTp=Bw 118 | H=1 119 | Lx=252 120 | Ly=222 121 | Rx=874 122 | Ry=431 123 | Xm=-1 124 | Ym=-1 125 | SH=12 126 | Z=100 127 | Ht=4 128 | Hi=1 129 | ] 130 | [ 131 | ObjTp=Bw 132 | H=1 133 | Lx=317 134 | Ly=596 135 | Rx=1042 136 | Ry=833 137 | Xm=-1 138 | Ym=-1 139 | SH=11 140 | Z=100 141 | Ht=4 142 | Hi=1 143 | ] 144 | [ 145 | ObjTp=Bw 146 | H=1 147 | Lx=109 148 | Ly=523 149 | Rx=774 150 | Ry=767 151 | Xm=-1 152 | Ym=-1 153 | SH=10 154 | Z=100 155 | Ht=4 156 | Hi=1 157 | ] 158 | [ 159 | ObjTp=Symbol 160 | Name=KL Countdown Timer v1.0 161 | Code=1 162 | SmplCName=KL Countdown Timer v1.0.umc 163 | Smpl-C=3 164 | CompilerTimePrecision=Single_Or_Double_Precision 165 | SMWRev=2.07.04 166 | TIORev=0 167 | HelpID=1055 168 | APg=1 169 | StdCmd=0 170 | FltTmp=1 171 | FpCS=0 172 | NumFixedInputs=2 173 | NumFixedOutputs=3 174 | NumFixedParams=2 175 | MinVariableInputs=0 176 | MinVariableInputsList2=0 177 | MinVariableInputsList3=0 178 | MinVariableOutputs=0 179 | MinVariableOutputsList2=0 180 | MinVariableOutputsList3=0 181 | MinVariableParams=0 182 | SymbolTree=13 183 | OutputSigType1=Analog 184 | OutputSigType2=Analog 185 | OutputSigType3=Digital 186 | ParamSigType1=Time|Constant 187 | ParamSigType2=Percent|Constant 188 | InputCue1=trig 189 | InputCue2=reset 190 | OutputCue1=progress 191 | OutputCue2=counter 192 | OutputCue3=expired 193 | ParamCue1=time 194 | ParamCue2=span 195 | MPp=2 196 | Pp1=1 197 | Pp2=2 198 | FileName=KL Countdown Timer v1.0.umc 199 | EncodingType=0 200 | ZeroOnIoOk=0 201 | ] 202 | [ 203 | ObjTp=Sm 204 | H=1 205 | SmC=157 206 | Nm=Central Control Modules 207 | ObjVer=1 208 | CF=2 209 | n1I=1 210 | n1O=1 211 | mI=1 212 | mO=1 213 | tO=1 214 | mP=1 215 | P1= 216 | ] 217 | [ 218 | ObjTp=Sm 219 | H=2 220 | SmC=157 221 | Nm=Network Modules 222 | ObjVer=1 223 | CF=2 224 | n1I=1 225 | n1O=1 226 | mI=1 227 | mO=1 228 | tO=1 229 | mP=1 230 | P1= 231 | ] 232 | [ 233 | ObjTp=Sm 234 | H=3 235 | SmC=157 236 | Nm=Ethernet 237 | ObjVer=1 238 | CF=2 239 | n1I=1 240 | n1O=1 241 | mI=1 242 | mO=1 243 | tO=1 244 | mP=1 245 | P1= 246 | ] 247 | [ 248 | ObjTp=Sm 249 | H=4 250 | SmC=156 251 | Nm=Logic 252 | ObjVer=1 253 | CF=2 254 | mC=7 255 | C1=8 256 | C2=7 257 | C3=9 258 | C4=10 259 | C5=11 260 | C6=12 261 | C7=13 262 | ] 263 | [ 264 | ObjTp=Sm 265 | H=5 266 | SmC=157 267 | Nm=DefineArguments 268 | ObjVer=1 269 | CF=2 270 | n1I=1 271 | n1O=1 272 | mC=1 273 | C1=6 274 | mI=1 275 | mO=1 276 | tO=1 277 | mP=1 278 | P1= 279 | ] 280 | [ 281 | ObjTp=Sm 282 | H=6 283 | SmC=55 284 | Nm=Argument Definition 285 | ObjVer=1 286 | PrH=5 287 | CF=2 288 | n1I=2 289 | n1O=3 290 | mI=2 291 | I1=4 292 | I2=5 293 | mO=3 294 | tO=3 295 | O1=8 296 | O2=6 297 | O3=7 298 | mP=2 299 | P1=time 300 | P2=span 301 | MPp=2 302 | Pp1=1 303 | Pp2=2 304 | ] 305 | [ 306 | ObjTp=Sm 307 | H=7 308 | SmC=32 309 | Nm=Analog Initialize 310 | ObjVer=1 311 | PrH=4 312 | CF=2 313 | n1I=1 314 | n1O=1 315 | mI=1 316 | I1=4 317 | mO=1 318 | tO=1 319 | O1=8 320 | mP=1 321 | P1=0% 322 | ] 323 | [ 324 | ObjTp=Sm 325 | H=8 326 | SmC=9 327 | Nm=One Shot 328 | ObjVer=1 329 | PrH=4 330 | CF=2 331 | n1I=3 332 | n1O=2 333 | mI=3 334 | I1=4 335 | I3=5 336 | mO=2 337 | tO=2 338 | O1=9 339 | mP=1 340 | P1=#time 341 | ] 342 | [ 343 | ObjTp=Sm 344 | H=9 345 | SmC=22 346 | Nm=Analog Ramp 347 | ObjVer=1 348 | PrH=4 349 | CF=2 350 | n1I=3 351 | n1O=1 352 | mI=3 353 | I1=9 354 | I2=11 355 | mO=1 356 | tO=1 357 | O1=8 358 | mP=1 359 | P1=#time 360 | ] 361 | [ 362 | ObjTp=Sm 363 | H=10 364 | SmC=58 365 | Nm=Analog Flip 366 | ObjVer=1 367 | PrH=4 368 | CF=2 369 | n1I=1 370 | n1O=1 371 | mI=1 372 | I1=8 373 | mO=1 374 | tO=1 375 | O1=10 376 | ] 377 | [ 378 | ObjTp=Sm 379 | H=11 380 | SmC=24 381 | Nm=Analog Scaler 382 | ObjVer=1 383 | PrH=4 384 | CF=2 385 | n1I=1 386 | n1O=1 387 | mI=1 388 | I1=10 389 | mO=1 390 | tO=1 391 | O1=6 392 | mP=3 393 | P1=#span 394 | P2= 395 | P3=0d 396 | ] 397 | [ 398 | ObjTp=Sm 399 | H=12 400 | SmC=38 401 | Nm=Analog Equate 402 | ObjVer=1 403 | PrH=4 404 | CF=2 405 | n1I=2 406 | n1O=1 407 | mI=2 408 | I1=6 409 | mO=1 410 | tO=1 411 | O1=13 412 | mP=1 413 | P1=0d 414 | ] 415 | [ 416 | ObjTp=Sm 417 | H=13 418 | SmC=1 419 | Nm=AND 420 | ObjVer=1 421 | PrH=4 422 | CF=2 423 | n1I=2 424 | n1O=1 425 | mI=2 426 | I1=9 427 | I2=13 428 | mO=1 429 | tO=1 430 | O1=7 431 | ] 432 | [ 433 | ObjTp=Sg 434 | H=4 435 | Nm=trig 436 | ] 437 | [ 438 | ObjTp=Sg 439 | H=5 440 | Nm=reset 441 | ] 442 | [ 443 | ObjTp=Sg 444 | H=6 445 | Nm=counter 446 | SgTp=2 447 | ] 448 | [ 449 | ObjTp=Sg 450 | H=7 451 | Nm=expired 452 | ] 453 | [ 454 | ObjTp=Sg 455 | H=8 456 | Nm=progress 457 | SgTp=2 458 | ] 459 | [ 460 | ObjTp=Sg 461 | H=9 462 | Nm=counter_active 463 | ] 464 | [ 465 | ObjTp=Sg 466 | H=10 467 | Nm=progress_flip 468 | SgTp=2 469 | ] 470 | [ 471 | ObjTp=Sg 472 | H=11 473 | Nm=//__digital_reserved__ 474 | ] 475 | [ 476 | ObjTp=Sg 477 | H=13 478 | Nm=counter=0 479 | ] 480 | [ 481 | ObjTp=Dp 482 | H=1 483 | Tp=1 484 | NF=48 485 | DNF=16 486 | EncFmt=0 487 | DVLF=1 488 | Sgn=0 489 | ] 490 | [ 491 | ObjTp=Dp 492 | H=2 493 | Tp=1 494 | NF=7 495 | DNF=1 496 | EncFmt=0 497 | DVLF=1 498 | Sgn=0 499 | ] 500 | -------------------------------------------------------------------------------- /Display Management/KL Display Management v3.0_archive.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kielthecoder/crestron/07a4516273f441658767b6ab8dfa869f90da03cc/Display Management/KL Display Management v3.0_archive.zip -------------------------------------------------------------------------------- /Dynamic EISC/KL Dynamic EISC Client v1.0_archive.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kielthecoder/crestron/07a4516273f441658767b6ab8dfa869f90da03cc/Dynamic EISC/KL Dynamic EISC Client v1.0_archive.zip -------------------------------------------------------------------------------- /Dynamic EISC/KL Dynamic TCP Client v1.0.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.06.00 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,718,756,767,830,841,842,854,883,955,1032,1062,1079,1128,1129,1134,1140,1157,1158,1195,1199,1220,1221,1222,1223,1299,1348,1349,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,2706,2707,3235,3236,3427,3454,3567,3568,3601,3602,3708,3902,3903,3912,3918,3925,3926,4206,4207, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6,7 20 | Name=KL Dynamic TCP Client v1.0 21 | SmplCName=KL Dynamic TCP Client v1.0.usp 22 | Code=1 23 | SysRev5=4.000 24 | SMWRev=2.02.05 25 | InputCue1=Connect 26 | InputSigType1=Digital 27 | OutputCue1=Connect_Fb 28 | OutputSigType1=Digital 29 | InputList2Cue1=Port 30 | InputList2SigType1=Analog 31 | InputList2Cue2=Address 32 | InputList2SigType2=Serial 33 | InputList2Cue3=TX 34 | InputList2SigType3=Serial 35 | OutputList2Cue1=Status 36 | OutputList2SigType1=Analog 37 | OutputList2Cue2=RX 38 | OutputList2SigType2=Serial 39 | ParamCue1=[Reference Name] 40 | MinVariableInputs=1 41 | MaxVariableInputs=1 42 | MinVariableInputsList2=3 43 | MaxVariableInputsList2=3 44 | MinVariableOutputs=1 45 | MaxVariableOutputs=1 46 | MinVariableOutputsList2=2 47 | MaxVariableOutputsList2=2 48 | MinVariableParams=0 49 | MaxVariableParams=0 50 | Expand=expand_separately 51 | Expand2=expand_separately 52 | ProgramTree=Logic 53 | SymbolTree=32 54 | Hint= 55 | PdfHelp= 56 | HelpID= 57 | Render=4 58 | Smpl-C=16 59 | CompilerCode=-48 60 | CompilerParamCode=27 61 | CompilerParamCode5=14 62 | NumFixedParams=1 63 | Pp1=1 64 | MPp=1 65 | NVStorage=10 66 | ParamSigType1=String 67 | SmplCInputCue1=o# 68 | SmplCOutputCue1=i# 69 | SmplCInputList2Cue1=an# 70 | SmplCOutputList2Cue1=ai# 71 | SPlus2CompiledName=S2_KL_Dynamic_TCP_Client_v1_0 72 | SymJam=NonExclusive 73 | FileName=KL Dynamic TCP Client v1.0.ush 74 | SIMPLPlusModuleEncoding=0 75 | [END] 76 | [BEGIN] 77 | ObjTp=Dp 78 | H=1 79 | Tp=1 80 | NoS=False 81 | [END] 82 | -------------------------------------------------------------------------------- /Dynamic EISC/KL Dynamic TCP Client v1.0.usp: -------------------------------------------------------------------------------- 1 | /* 2 | Dealer Name: IMT 3 | System Name: 4 | System Number: 5 | Programmer: Kiel Lofstrand 6 | Comments: 7 | */ 8 | 9 | // COMPILER DIRECTIVES ///////////////////////////////////////////////////////////////////// 10 | 11 | #DEFAULT_VOLATILE 12 | #ENABLE_STACK_CHECKING 13 | #ENABLE_TRACE 14 | // #DIGITAL_EXPAND 15 | // #ANALOG_SERIAL_EXPAND 16 | 17 | /* 18 | #HELP_BEGIN 19 | (add additional lines of help lines) 20 | #HELP_END 21 | */ 22 | 23 | #DEFINE_CONSTANT ADDR_LEN 100 24 | #DEFINE_CONSTANT BUF_LEN 1000 25 | 26 | // LIBRARIES /////////////////////////////////////////////////////////////////////////////// 27 | 28 | // #USER_SIMPLSHARP_LIBRARY "LibraryName" 29 | 30 | // INPUTS ////////////////////////////////////////////////////////////////////////////////// 31 | 32 | DIGITAL_INPUT Connect; 33 | ANALOG_INPUT Port; 34 | STRING_INPUT Address[ADDR_LEN]; 35 | STRING_INPUT TX[BUF_LEN]; 36 | 37 | // OUTPUTS ///////////////////////////////////////////////////////////////////////////////// 38 | 39 | DIGITAL_OUTPUT Connect_Fb; 40 | ANALOG_OUTPUT Status; 41 | STRING_OUTPUT RX; 42 | 43 | // SOCKETS ///////////////////////////////////////////////////////////////////////////////// 44 | 45 | TCP_CLIENT Socket[BUF_LEN]; 46 | 47 | // PARAMETERS ////////////////////////////////////////////////////////////////////////////// 48 | 49 | // STRUCTURES ////////////////////////////////////////////////////////////////////////////// 50 | 51 | // GLOBAL VARIABLES //////////////////////////////////////////////////////////////////////// 52 | 53 | INTEGER giConnected; 54 | 55 | // FUNCTIONS /////////////////////////////////////////////////////////////////////////////// 56 | 57 | // EVENT HANDLERS ////////////////////////////////////////////////////////////////////////// 58 | 59 | PUSH Connect 60 | { 61 | SocketConnectClient(Socket, Address, Port, 1); 62 | } 63 | 64 | RELEASE Connect 65 | { 66 | SocketDisconnectClient(Socket); 67 | } 68 | 69 | CHANGE TX 70 | { 71 | If (giConnected) 72 | { 73 | Trace("Sending %d bytes...", Len(TX)); 74 | SocketSend(Socket, TX); 75 | } 76 | } 77 | 78 | SOCKETSTATUS Socket 79 | { 80 | Status = SocketGetStatus(); 81 | } 82 | 83 | SOCKETCONNECT Socket 84 | { 85 | giConnected = 1; 86 | Connect_Fb = giConnected; 87 | } 88 | 89 | SOCKETDISCONNECT Socket 90 | { 91 | giConnected = 0; 92 | Connect_Fb = giConnected; 93 | } 94 | 95 | SOCKETRECEIVE Socket 96 | { 97 | RX = Socket.SocketRxBuf; 98 | ClearBuffer(Socket.SocketRxBuf); 99 | } 100 | 101 | // CALLBACKS AND DELEGATES ///////////////////////////////////////////////////////////////// 102 | 103 | // MAIN //////////////////////////////////////////////////////////////////////////////////// 104 | 105 | FUNCTION Main() 106 | { 107 | WaitForInitializationComplete(); 108 | } 109 | -------------------------------------------------------------------------------- /Grep/KL Grep v1.0.usp: -------------------------------------------------------------------------------- 1 | /******************************************************************************************* 2 | SIMPL+ Module Information 3 | (Fill in comments below) 4 | *******************************************************************************************/ 5 | /* 6 | Dealer Name: 7 | System Name: 8 | System Number: 9 | Programmer: 10 | Comments: 11 | */ 12 | 13 | /******************************************************************************************* 14 | Compiler Directives 15 | (Uncomment and declare compiler directives as needed) 16 | *******************************************************************************************/ 17 | // #ENABLE_DYNAMIC 18 | // #SYMBOL_NAME "" 19 | // #HINT "" 20 | // #DEFINE_CONSTANT 21 | // #CATEGORY "" 22 | // #PRINT_TO_TRACE 23 | // #DIGITAL_EXPAND 24 | // #ANALOG_SERIAL_EXPAND 25 | // #OUTPUT_SHIFT 26 | // #HELP_PDF_FILE "" 27 | #DEFAULT_VOLATILE 28 | #ENABLE_STACK_CHECKING 29 | #ENABLE_TRACE 30 | // #ENCODING_ASCII 31 | // #ENCODING_UTF16 32 | // #ENCODING_INHERIT_FROM_PARENT 33 | // #ENCODING_INHERIT_FROM_PROGRAM 34 | 35 | /******************************************************************************************* 36 | DIGITAL, ANALOG and SERIAL INPUTS and OUTPUTS 37 | (Uncomment and declare inputs and outputs as needed) 38 | *******************************************************************************************/ 39 | BUFFER_INPUT Text_In[10000]; 40 | 41 | DIGITAL_OUTPUT Match_Found; 42 | ANALOG_OUTPUT Text_Length; 43 | STRING_OUTPUT Text_Out; 44 | 45 | /******************************************************************************************* 46 | Parameters 47 | (Uncomment and declare parameters as needed) 48 | *******************************************************************************************/ 49 | STRING_PARAMETER Match_Start[255], Match_End[255]; 50 | 51 | /******************************************************************************************* 52 | Global Variables 53 | (Uncomment and declare global variables as needed) 54 | Note: Be sure to initialize all declared STRING variables as needed 55 | For example, in Function Main: myString = ""; 56 | *******************************************************************************************/ 57 | // INTEGER 58 | // LONG_INTEGER 59 | // SIGNED_INTEGER 60 | // SIGNED_LONG_INTEGER 61 | // STRING 62 | 63 | /******************************************************************************************* 64 | Functions 65 | (Add any additional functions here) 66 | Note: Functions must be physically placed before the location in 67 | the code that calls them. 68 | *******************************************************************************************/ 69 | 70 | STRING_FUNCTION Trim (STRING text) 71 | { 72 | INTEGER i, j; 73 | 74 | For (i = 1 To Len(text)) 75 | { 76 | If (Byte(text, i) > 32) 77 | Break; 78 | } 79 | 80 | For (j = Len(text) To i Step -1) 81 | { 82 | If (Byte(text, j) > 32) 83 | Break; 84 | } 85 | 86 | Return(Mid(text, i, j - i + 1)); 87 | } 88 | 89 | /******************************************************************************************* 90 | Event Handlers 91 | (Uncomment and declare additional event handlers as needed) 92 | *******************************************************************************************/ 93 | 94 | CHANGE Text_In 95 | { 96 | INTEGER i, m, n; 97 | STRING temp[10000]; 98 | 99 | m = Find(Match_Start, Text_In, 1); 100 | 101 | If (m > 0) 102 | { 103 | n = Find(Match_End, Text_In, m); 104 | 105 | IF (n > 0) 106 | { 107 | temp = Remove(Match_End, Text_In, 1); 108 | 109 | i = m + Len(Match_Start); 110 | temp = Trim(Mid(temp, i, n - i)); 111 | 112 | Match_Found = 1; 113 | Text_Length = Len(temp); 114 | Text_Out = temp; 115 | 116 | Return; 117 | } 118 | } 119 | 120 | Match_Found = 0; 121 | } 122 | 123 | -------------------------------------------------------------------------------- /Instant On/KL Instant On v1.2.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.07.03 8 | IntStrVrs=2 9 | MinSMWVrs=2.07.04 10 | MinTIOVrs=0 11 | SavedBy=SMW4.02.65 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Instant On v1.2.umc 19 | DbVr=63.07.003.00 20 | DvcDbVr=87.00.003.00 21 | PgmNm=Kiel Lofstrand 22 | DlrNm=SPS 23 | Incl=362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,767,830,883,1032,1062,1079,1134,1157,1199,1220,1222,1299,1348,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,3708,3902,3912,3918,3925,1766,2574,2651,2817,2886,2938,2947,3181,3197,3233,3710,3735,3736,3816,3888,4176,4308,4476,4591,4769,5360,5388,5420,5455, 24 | McNm=KL Instant On v1.1 25 | SmVr=1039 26 | DvVr=1039 27 | TpN1=1 28 | TpN2=2 29 | TpN3=3 30 | TpN4=4 31 | TpN5=5 32 | APg=1 33 | FltTmp=1 34 | FpCS=0 35 | EnType=0 36 | ZeroOnIoOk=1 37 | SGMethod=1 38 | ] 39 | [ 40 | ObjTp=Bk 41 | Nm1=\ 42 | Sx1=0 43 | Sy1=0 44 | Mx1=0 45 | ] 46 | [ 47 | ObjTp=Bw 48 | H=1 49 | Lx=337 50 | Ly=379 51 | Rx=1215 52 | Ry=659 53 | Xm=-1 54 | Ym=-1 55 | SH=7 56 | Z=100 57 | Ht=4 58 | Hi=3 59 | ] 60 | [ 61 | ObjTp=Bw 62 | H=1 63 | Lx=100 64 | Ly=80 65 | Rx=1041 66 | Ry=403 67 | Xm=-1 68 | Ym=-1 69 | SH=13 70 | Z=100 71 | Ht=4 72 | Hi=1 73 | ] 74 | [ 75 | ObjTp=Bw 76 | H=1 77 | Lx=163 78 | Ly=397 79 | Rx=986 80 | Ry=707 81 | Xm=-1 82 | Ym=-1 83 | SH=12 84 | Z=100 85 | Ht=4 86 | Hi=1 87 | ] 88 | [ 89 | ObjTp=Bw 90 | H=1 91 | Lx=333 92 | Ly=80 93 | Rx=1132 94 | Ry=322 95 | Xm=-1 96 | Ym=-1 97 | SH=11 98 | Z=100 99 | Ht=4 100 | Hi=1 101 | ] 102 | [ 103 | ObjTp=Bw 104 | H=1 105 | Lx=216 106 | Ly=344 107 | Rx=944 108 | Ry=670 109 | Xm=-1 110 | Ym=-1 111 | SH=10 112 | Z=100 113 | Ht=4 114 | Hi=1 115 | ] 116 | [ 117 | ObjTp=Bw 118 | H=1 119 | Lx=625 120 | Ly=0 121 | Rx=1250 122 | Ry=734 123 | Xm=-1 124 | Ym=-1 125 | SH=9 126 | Z=100 127 | Ht=1 128 | Hi=2 129 | ] 130 | [ 131 | ObjTp=Bw 132 | H=1 133 | Lx=193 134 | Ly=43 135 | Rx=1131 136 | Ry=370 137 | Xm=-1 138 | Ym=-1 139 | SH=8 140 | Z=100 141 | Ht=1 142 | Hi=1 143 | ] 144 | [ 145 | ObjTp=Bw 146 | H=1 147 | Lx=0 148 | Ly=0 149 | Rx=625 150 | Ry=734 151 | Xm=-1 152 | Ym=-1 153 | SH=6 154 | Z=100 155 | Ht=1 156 | Hi=4 157 | ] 158 | [ 159 | ObjTp=Symbol 160 | Name=KL Instant On v1.2 161 | Code=1 162 | SmplCName=KL Instant On v1.2.umc 163 | Smpl-C=3 164 | CompilerTimePrecision=Single_Or_Double_Precision 165 | SMWRev=2.07.04 166 | TIORev=0 167 | HelpID=1055 168 | APg=1 169 | StdCmd=0 170 | FltTmp=1 171 | FpCS=0 172 | NumFixedInputs=4 173 | NumFixedOutputs=2 174 | NumFixedParams=1 175 | MinVariableInputs=0 176 | MinVariableInputsList2=0 177 | MinVariableInputsList3=0 178 | MinVariableOutputs=0 179 | MinVariableOutputsList2=0 180 | MinVariableOutputsList3=0 181 | MinVariableParams=0 182 | SymbolTree=32 183 | ParamSigType1=Time|Constant 184 | InputCue1=Enable 185 | InputCue2=Display_Is_On 186 | InputCue3=Display_Is_Off 187 | InputCue4=Trigger 188 | OutputCue1=Instant_On 189 | OutputCue2=Instant_Off 190 | ParamCue1=Timeout 191 | MPp=1 192 | Pp1=1 193 | FileName=KL Instant On v1.2.umc 194 | EncodingType=0 195 | ZeroOnIoOk=1 196 | ] 197 | [ 198 | ObjTp=Sm 199 | H=1 200 | SmC=157 201 | Nm=Central Control Modules 202 | ObjVer=1 203 | CF=2 204 | n1I=1 205 | n1O=1 206 | mI=1 207 | mO=1 208 | tO=1 209 | mP=1 210 | P1= 211 | ] 212 | [ 213 | ObjTp=Sm 214 | H=2 215 | SmC=157 216 | Nm=Network Modules 217 | ObjVer=1 218 | CF=2 219 | n1I=1 220 | n1O=1 221 | mI=1 222 | mO=1 223 | tO=1 224 | mP=1 225 | P1= 226 | ] 227 | [ 228 | ObjTp=Sm 229 | H=3 230 | SmC=157 231 | Nm=Ethernet 232 | ObjVer=1 233 | CF=2 234 | n1I=1 235 | n1O=1 236 | mI=1 237 | mO=1 238 | tO=1 239 | mP=1 240 | P1= 241 | ] 242 | [ 243 | ObjTp=Sm 244 | H=4 245 | SmC=156 246 | Nm=Logic 247 | ObjVer=1 248 | CF=2 249 | mC=7 250 | C1=7 251 | C2=8 252 | C3=9 253 | C4=10 254 | C5=11 255 | C6=12 256 | C7=13 257 | ] 258 | [ 259 | ObjTp=Sm 260 | H=5 261 | SmC=157 262 | Nm=DefineArguments 263 | ObjVer=1 264 | CF=2 265 | n1I=1 266 | n1O=1 267 | mC=1 268 | C1=6 269 | mI=1 270 | mO=1 271 | tO=1 272 | mP=1 273 | P1= 274 | ] 275 | [ 276 | ObjTp=Sm 277 | H=6 278 | SmC=55 279 | Nm=Argument Definition 280 | ObjVer=1 281 | PrH=5 282 | CF=2 283 | n1I=4 284 | n1O=2 285 | mI=4 286 | I1=6 287 | I2=12 288 | I3=10 289 | I4=4 290 | mO=2 291 | tO=2 292 | O1=11 293 | O2=17 294 | mP=1 295 | P1=Timeout 296 | MPp=1 297 | Pp1=1 298 | ] 299 | [ 300 | ObjTp=Sm 301 | H=7 302 | SmC=20 303 | Nm=Buffer 304 | ObjVer=1 305 | PrH=4 306 | CF=2 307 | n1I=4 308 | n1O=3 309 | mI=4 310 | I1=6 311 | I2=4 312 | I3=7 313 | I4=13 314 | mO=3 315 | tO=3 316 | O1=9 317 | O2=11 318 | O3=17 319 | ] 320 | [ 321 | ObjTp=Sm 322 | H=8 323 | SmC=205 324 | Nm=NOT 325 | ObjVer=1 326 | PrH=4 327 | CF=2 328 | n1I=1 329 | n1O=1 330 | mI=1 331 | I1=9 332 | mO=1 333 | tO=1 334 | O1=5 335 | ] 336 | [ 337 | ObjTp=Sm 338 | H=9 339 | SmC=20 340 | Nm=Buffer 341 | ObjVer=1 342 | PrH=4 343 | CF=2 344 | n1I=2 345 | n1O=1 346 | mI=2 347 | I1=10 348 | I2=9 349 | mO=1 350 | tO=1 351 | O1=7 352 | ] 353 | [ 354 | ObjTp=Sm 355 | H=10 356 | SmC=20 357 | Nm=Buffer 358 | ObjVer=1 359 | PrH=4 360 | CF=2 361 | n1I=2 362 | n1O=1 363 | mI=2 364 | I1=12 365 | I2=5 366 | mO=1 367 | tO=1 368 | O1=8 369 | ] 370 | [ 371 | ObjTp=Sm 372 | H=11 373 | SmC=9 374 | Nm=One Shot 375 | ObjVer=1 376 | PrH=4 377 | CF=2 378 | n1I=3 379 | n1O=2 380 | mI=3 381 | I1=8 382 | I3=4 383 | mO=2 384 | tO=2 385 | O1=14 386 | mP=1 387 | P1=#Timeout 388 | ] 389 | [ 390 | ObjTp=Sm 391 | H=12 392 | SmC=9 393 | Nm=One Shot 394 | ObjVer=1 395 | PrH=4 396 | CF=2 397 | n1I=3 398 | n1O=2 399 | mI=3 400 | I1=15 401 | I2=14 402 | mO=2 403 | tO=2 404 | O1=16 405 | mP=1 406 | P1=.1s 407 | ] 408 | [ 409 | ObjTp=Sm 410 | H=13 411 | SmC=20 412 | Nm=Buffer 413 | ObjVer=1 414 | PrH=4 415 | CF=2 416 | n1I=2 417 | n1O=1 418 | mI=2 419 | I1=5 420 | I2=16 421 | mO=1 422 | tO=1 423 | O1=13 424 | ] 425 | [ 426 | ObjTp=Sg 427 | H=4 428 | Nm=Trigger 429 | ] 430 | [ 431 | ObjTp=Sg 432 | H=5 433 | Nm=Trigger* 434 | ] 435 | [ 436 | ObjTp=Sg 437 | H=6 438 | Nm=Enable 439 | ] 440 | [ 441 | ObjTp=Sg 442 | H=7 443 | Nm=Instant_On? 444 | ] 445 | [ 446 | ObjTp=Sg 447 | H=8 448 | Nm=Trigger*_b 449 | ] 450 | [ 451 | ObjTp=Sg 452 | H=9 453 | Nm=Trigger_b 454 | ] 455 | [ 456 | ObjTp=Sg 457 | H=10 458 | Nm=Display_Is_Off 459 | ] 460 | [ 461 | ObjTp=Sg 462 | H=11 463 | Nm=Instant_On 464 | ] 465 | [ 466 | ObjTp=Sg 467 | H=12 468 | Nm=Display_Is_On 469 | ] 470 | [ 471 | ObjTp=Sg 472 | H=13 473 | Nm=Instant_Off? 474 | ] 475 | [ 476 | ObjTp=Sg 477 | H=14 478 | Nm=Timeout_mv 479 | ] 480 | [ 481 | ObjTp=Sg 482 | H=15 483 | Nm=//__digital_reserved__ 484 | ] 485 | [ 486 | ObjTp=Sg 487 | H=16 488 | Nm=Timeout_Expired_mv 489 | ] 490 | [ 491 | ObjTp=Sg 492 | H=17 493 | Nm=Instant_Off 494 | ] 495 | [ 496 | ObjTp=Dp 497 | H=1 498 | Tp=1 499 | NF=48 500 | DNF=16 501 | EncFmt=0 502 | DVLF=1 503 | Sgn=0 504 | ] 505 | -------------------------------------------------------------------------------- /Kernel/KL Page Tracking v1.0.usp: -------------------------------------------------------------------------------- 1 | /******************************************************************************************* 2 | SIMPL+ Module Information 3 | (Fill in comments below) 4 | *******************************************************************************************/ 5 | /* 6 | Dealer Name: 7 | System Name: 8 | System Number: 9 | Programmer: 10 | Comments: 11 | */ 12 | 13 | /******************************************************************************************* 14 | Compiler Directives 15 | (Uncomment and declare compiler directives as needed) 16 | *******************************************************************************************/ 17 | // #ENABLE_DYNAMIC 18 | // #SYMBOL_NAME "" 19 | // #HINT "" 20 | #DEFINE_CONSTANT MAX_PAGES 10 21 | // #CATEGORY "" 22 | // #PRINT_TO_TRACE 23 | // #DIGITAL_EXPAND 24 | // #ANALOG_SERIAL_EXPAND 25 | // #OUTPUT_SHIFT 26 | // #HELP_PDF_FILE "" 27 | #DEFAULT_VOLATILE 28 | #ENABLE_STACK_CHECKING 29 | #ENABLE_TRACE 30 | // #ENCODING_ASCII 31 | // #ENCODING_UTF16 32 | // #ENCODING_INHERIT_FROM_PARENT 33 | // #ENCODING_INHERIT_FROM_PROGRAM 34 | /* 35 | #HELP_BEGIN 36 | (add additional lines of help lines) 37 | #HELP_END 38 | */ 39 | 40 | /******************************************************************************************* 41 | DIGITAL, ANALOG and SERIAL INPUTS and OUTPUTS 42 | (Uncomment and declare inputs and outputs as needed) 43 | *******************************************************************************************/ 44 | DIGITAL_INPUT Previous_Page, Select_Page[MAX_PAGES]; 45 | 46 | DIGITAL_OUTPUT Page_Fb[MAX_PAGES]; 47 | 48 | /******************************************************************************************* 49 | Global Variables 50 | (Uncomment and declare global variables as needed) 51 | Note: Be sure to initialize all declared STRING variables as needed 52 | For example, in Function Main: myString = ""; 53 | *******************************************************************************************/ 54 | INTEGER nActivePage, nNextPage, nLastPage; 55 | 56 | /******************************************************************************************* 57 | Functions 58 | (Add any additional functions here) 59 | Note: Functions must be physically placed before the location in 60 | the code that calls them. 61 | *******************************************************************************************/ 62 | 63 | Function UpdateFeedback() 64 | { 65 | INTEGER i; 66 | 67 | For (i = 1 To MAX_PAGES) 68 | { 69 | If (i = nActivePage) 70 | { 71 | Page_Fb[i] = 1; 72 | } 73 | Else 74 | { 75 | Page_Fb[i] = 0; 76 | } 77 | } 78 | } 79 | 80 | /******************************************************************************************* 81 | Event Handlers 82 | (Uncomment and declare additional event handlers as needed) 83 | *******************************************************************************************/ 84 | 85 | PUSH Select_Page 86 | { 87 | nNextPage = GetLastModifiedArrayIndex(); 88 | nLastPage = nActivePage; 89 | } 90 | 91 | RELEASE Select_Page 92 | { 93 | nActivePage = nNextPage; 94 | 95 | UpdateFeedback(); 96 | } 97 | 98 | PUSH Previous_Page 99 | { 100 | nNextPage = nLastPage; 101 | nLastPage = nActivePage; 102 | } 103 | 104 | RELEASE Previous_Page 105 | { 106 | nActivePage = nNextPage; 107 | 108 | UpdateFeedback(); 109 | } 110 | 111 | /******************************************************************************************* 112 | Main() 113 | Uncomment and place one-time startup code here 114 | (This code will get called when the system starts up) 115 | *******************************************************************************************/ 116 | 117 | Function Main() 118 | { 119 | nActivePage = 0; 120 | nNextPage = 0; 121 | nLastPage = 0; 122 | } 123 | 124 | 125 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Kiel Lofstrand 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Multiple Analog One-Shot/KL Multiple Analog One-Shot v1.0.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS= 19 | Inclusions_CDS=5,6 20 | Name=KL Multiple Analog One-Shot v1.0 21 | SmplCName=KL Multiple Analog One-Shot v1.0.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | OutputCue1=out 26 | OutputSigType1=Digital 27 | InputList2Cue1=ain[#] 28 | InputList2SigType1=Analog 29 | ParamCue1=[Reference Name] 30 | ParamCue2=duration 31 | ParamSigType2=Constant 32 | MinVariableInputs=0 33 | MaxVariableInputs=0 34 | MinVariableInputsList2=1 35 | MaxVariableInputsList2=255 36 | MinVariableOutputs=1 37 | MaxVariableOutputs=1 38 | MinVariableOutputsList2=0 39 | MaxVariableOutputsList2=0 40 | MinVariableParams=1 41 | MaxVariableParams=1 42 | Expand=expand_separately 43 | Expand2=expand_separately 44 | ProgramTree=Logic 45 | SymbolTree=32 46 | Hint= 47 | PdfHelp= 48 | HelpID= 49 | Render=4 50 | Smpl-C=16 51 | CompilerCode=-48 52 | CompilerParamCode=27 53 | CompilerParamCode5=14 54 | NumFixedParams=1 55 | Pp1=1 56 | Pp2=2 57 | MPp=2 58 | NVStorage=10 59 | ParamSigType1=String 60 | SmplCInputCue1=o# 61 | SmplCOutputCue1=i# 62 | SmplCInputList2Cue1=an# 63 | SmplCOutputList2Cue1=ai# 64 | SPlus2CompiledName=S2_KL_Multiple_Analog_One_Shot_v1_0 65 | SymJam=NonExclusive 66 | FileName=KL Multiple Analog One-Shot v1.0.ush 67 | SIMPLPlusModuleEncoding=0 68 | [END] 69 | [BEGIN] 70 | ObjTp=Dp 71 | H=1 72 | Tp=1 73 | NoS=False 74 | [END] 75 | [BEGIN] 76 | ObjTp=Dp 77 | H=2 78 | Tp=1 79 | HD=False 80 | Sgn=0 81 | Lng=False 82 | NF=63 83 | NoS=True 84 | DNF=1 85 | VVS=0 86 | [END] 87 | -------------------------------------------------------------------------------- /Multiple Analog One-Shot/KL Multiple Analog One-Shot v1.0.usp: -------------------------------------------------------------------------------- 1 | // Dealer Name: 2 | // System Name: 3 | // System Number: 4 | // Programmer: 5 | // Comments: 6 | 7 | // - Compiler Directives ------------------------------------------------------ 8 | // #ENABLE_DYNAMIC 9 | // #SYMBOL_NAME "" 10 | // #HINT "" 11 | // #DEFINE_CONSTANT 12 | // #CATEGORY "" 13 | // #PRINT_TO_TRACE 14 | // #DIGITAL_EXPAND 15 | // #ANALOG_SERIAL_EXPAND 16 | // #OUTPUT_SHIFT 17 | // #HELP_PDF_FILE "" 18 | #DEFAULT_VOLATILE 19 | #ENABLE_STACK_CHECKING 20 | #ENABLE_TRACE 21 | // #ENCODING_ASCII 22 | // #ENCODING_UTF16 23 | // #ENCODING_INHERIT_FROM_PARENT 24 | // #ENCODING_INHERIT_FROM_PROGRAM 25 | 26 | // - Inputs ------------------------------------------------------------------- 27 | // DIGITAL_INPUT 28 | ANALOG_INPUT ain[255]; 29 | // STRING_INPUT 30 | // BUFFER_INPUT 31 | 32 | // - Outputs ------------------------------------------------------------------ 33 | DIGITAL_OUTPUT out; 34 | // ANALOG_OUTPUT 35 | // STRING_OUTPUT 36 | 37 | // - Parameters --------------------------------------------------------------- 38 | INTEGER_PARAMETER duration; 39 | // SIGNED_INTEGER_PARAMETER 40 | // LONG_INTEGER_PARAMETER 41 | // SIGNED_LONG_INTEGER_PARAMETER 42 | // STRING_PARAMETER 43 | 44 | // - Event Handlers ----------------------------------------------------------- 45 | 46 | THREADSAFE CHANGE ain 47 | { 48 | Pulse(duration, out); 49 | } 50 | 51 | // - Main --------------------------------------------------------------------- 52 | 53 | Function Main() 54 | { 55 | out = 0; 56 | 57 | WaitForInitializationComplete(); 58 | } 59 | -------------------------------------------------------------------------------- /Page Tracking/KL Page Tracking v1.0.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=KL Page Tracking v1.0 21 | SmplCName=KL Page Tracking v1.0.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Clear 26 | InputSigType1=Digital 27 | InputCue2=Previous 28 | InputSigType2=Digital 29 | InputCue3=Goto_Page[#] 30 | InputSigType3=Digital 31 | OutputCue1=[~UNUSED~] 32 | OutputSigType1=Digital 33 | OutputCue2=[~UNUSED~] 34 | OutputSigType2=Digital 35 | OutputCue3=Show_Page[#] 36 | OutputSigType3=Digital 37 | ParamCue1=[Reference Name] 38 | MinVariableInputs=12 39 | MaxVariableInputs=12 40 | MinVariableInputsList2=0 41 | MaxVariableInputsList2=0 42 | MinVariableOutputs=12 43 | MaxVariableOutputs=12 44 | MinVariableOutputsList2=0 45 | MaxVariableOutputsList2=0 46 | MinVariableParams=0 47 | MaxVariableParams=0 48 | Expand=expand_inputs_with_outputs 49 | Expand2=expand_separately 50 | ProgramTree=Logic 51 | SymbolTree=32 52 | Hint= 53 | PdfHelp= 54 | HelpID= 55 | Render=4 56 | Smpl-C=16 57 | CompilerCode=-48 58 | CompilerParamCode=27 59 | CompilerParamCode5=14 60 | NumFixedParams=1 61 | Pp1=1 62 | MPp=1 63 | NVStorage=10 64 | ParamSigType1=String 65 | SmplCInputCue1=o# 66 | SmplCOutputCue1=i# 67 | SmplCInputList2Cue1=an# 68 | SmplCOutputList2Cue1=ai# 69 | SPlus2CompiledName=S2_KL_Page_Tracking_v1_0 70 | SymJam=NonExclusive 71 | FileName=KL Page Tracking v1.0.ush 72 | SIMPLPlusModuleEncoding=0 73 | clz1=Cisco SX80 Corporate Phone Book 74 | clz2=Cisco SX80 Phone Book 75 | [END] 76 | [BEGIN] 77 | ObjTp=Dp 78 | H=1 79 | Tp=1 80 | NoS=False 81 | [END] 82 | -------------------------------------------------------------------------------- /Page Tracking/KL Page Tracking v1.0.usp: -------------------------------------------------------------------------------- 1 | // --- SIMPL+ Module Information -------------------------------------------- 2 | // 3 | // Dealer Name: 4 | // System Name: 5 | // System Number: 6 | // Programmer: Kiel Lofstrand 7 | // Comments: 8 | 9 | // --- Compiler Directives -------------------------------------------------- 10 | 11 | #DEFAULT_VOLATILE 12 | #ENABLE_STACK_CHECKING 13 | // #ENABLE_TRACE 14 | #DIGITAL_EXPAND InputsWithOutputs 15 | 16 | //#USER_SIMPLSHARP_LIBRARY "SIMPLSharpLibrary1" 17 | 18 | // --- Inputs --------------------------------------------------------------- 19 | 20 | DIGITAL_INPUT Clear; 21 | DIGITAL_INPUT Previous; 22 | DIGITAL_INPUT Goto_Page[10,10]; 23 | 24 | // --- Outputs -------------------------------------------------------------- 25 | 26 | DIGITAL_OUTPUT _SKIP_, _SKIP_; 27 | DIGITAL_OUTPUT Show_Page[10,10]; 28 | 29 | // --- Parameters ----------------------------------------------------------- 30 | 31 | // --- Global Variables ----------------------------------------------------- 32 | 33 | INTEGER giCurrentPage[100]; 34 | INTEGER giPageIndex; 35 | 36 | // --- Functions ------------------------------------------------------------ 37 | 38 | // --- Callbacks ------------------------------------------------------------ 39 | 40 | // --- Event Handlers ------------------------------------------------------- 41 | 42 | PUSH Clear 43 | { 44 | // Reset pointer 45 | giPageIndex = 0; 46 | Trace("PageIndex = %d", giPageIndex); 47 | 48 | // Update feedback 49 | SetArray(Show_Page, 0); 50 | } 51 | 52 | PUSH Previous 53 | { 54 | // Are we at the first page yet? 55 | If (giPageIndex > 1) 56 | giPageIndex = giPageIndex - 1; 57 | 58 | // Update feedback 59 | SetArray(Show_Page, 0); 60 | Show_Page[giCurrentPage[giPageIndex]] = 1; 61 | } 62 | 63 | PUSH Goto_Page 64 | { 65 | INTEGER i, n; 66 | 67 | // n is page number (1 - 10) 68 | n = GetLastModifiedArrayIndex(); 69 | 70 | // Is this page different from the current page? 71 | If (n <> giCurrentPage[giPageIndex]) 72 | { 73 | // Update pointer 74 | If (giPageIndex < 100) 75 | giPageIndex = giPageIndex + 1; 76 | Else 77 | { 78 | // Shift array down to make room for next page 79 | For (i = 1 To 99) 80 | { 81 | giCurrentPage[i] = giCurrentPage[i + 1]; 82 | } 83 | } 84 | 85 | // Remember this page 86 | giCurrentPage[giPageIndex] = n; 87 | Trace("PageIndex = %d", giPageIndex); 88 | 89 | // Update feedback 90 | SetArray(Show_Page, 0); 91 | Show_Page[n] = 1; 92 | } 93 | } 94 | 95 | // --- Main() --------------------------------------------------------------- 96 | 97 | Function Main() 98 | { 99 | WaitForInitializationComplete(); 100 | } 101 | -------------------------------------------------------------------------------- /Phonebook/KL Phonebook Driver v1.0.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.05.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,718,756,767,830,841,842,854,883,955,1032,1062,1079,1128,1129,1134,1140,1157,1158,1195,1199,1220,1221,1222,1223,1299,1348,1349,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,2706,2707,3235,3236,3427,3454,3567,3568,3601,3602,3708,3902,3903,3912,3918,3925,3926,4206,4207, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6,7 20 | Name=KL Phonebook Driver v1.0 21 | SmplCName=KL Phonebook Driver v1.0.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Load 26 | InputSigType1=Digital 27 | InputCue2=Store 28 | InputSigType2=Digital 29 | InputCue3=First_Page 30 | InputSigType3=Digital 31 | InputCue4=Previous_Page 32 | InputSigType4=Digital 33 | InputCue5=Next_Page 34 | InputSigType5=Digital 35 | InputCue6=Last_Page 36 | InputSigType6=Digital 37 | InputCue7=Clear_Selection 38 | InputSigType7=Digital 39 | InputCue8=Add_New_Contact 40 | InputSigType8=Digital 41 | InputCue9=Delete_Selected_Contact 42 | InputSigType9=Digital 43 | InputList2Cue1=Select 44 | InputList2SigType1=Analog 45 | InputList2Cue2=New_Contact_Name 46 | InputList2SigType2=Serial 47 | InputList2Cue3=New_Contact_Number 48 | InputList2SigType3=Serial 49 | OutputList2Cue1=Page_Size 50 | OutputList2SigType1=Analog 51 | OutputList2Cue2=Current_Page 52 | OutputList2SigType2=Analog 53 | OutputList2Cue3=Total_Pages 54 | OutputList2SigType3=Analog 55 | OutputList2Cue4=Select_Fb 56 | OutputList2SigType4=Analog 57 | OutputList2Cue5=Selected_Entry_Name 58 | OutputList2SigType5=Serial 59 | OutputList2Cue6=Selected_Entry_Number 60 | OutputList2SigType6=Serial 61 | OutputList2Cue7=Entry_Name[#] 62 | OutputList2SigType7=Serial 63 | ParamCue1=[Reference Name] 64 | ParamCue2=File_Name 65 | ParamSigType2=String 66 | MinVariableInputs=9 67 | MaxVariableInputs=9 68 | MinVariableInputsList2=3 69 | MaxVariableInputsList2=3 70 | MinVariableOutputs=0 71 | MaxVariableOutputs=0 72 | MinVariableOutputsList2=7 73 | MaxVariableOutputsList2=16 74 | MinVariableParams=1 75 | MaxVariableParams=1 76 | Expand=expand_separately 77 | Expand2=expand_separately 78 | ProgramTree=Logic 79 | SymbolTree=32 80 | Hint= 81 | PdfHelp= 82 | HelpID= 83 | Render=4 84 | Smpl-C=16 85 | CompilerCode=-48 86 | CompilerParamCode=27 87 | CompilerParamCode5=14 88 | NumFixedParams=1 89 | Pp1=1 90 | Pp2=2 91 | MPp=2 92 | NVStorage=10 93 | ParamSigType1=String 94 | SmplCInputCue1=o# 95 | SmplCOutputCue1=i# 96 | SmplCInputList2Cue1=an# 97 | SmplCOutputList2Cue1=ai# 98 | SPlus2CompiledName=S2_KL_Phonebook_Driver_v1_0 99 | SymJam=NonExclusive 100 | FileName=KL Phonebook Driver v1.0.ush 101 | SIMPLPlusModuleEncoding=0 102 | clz1=MassLogic 103 | [END] 104 | [BEGIN] 105 | ObjTp=Dp 106 | H=1 107 | Tp=1 108 | NoS=False 109 | [END] 110 | [BEGIN] 111 | ObjTp=Dp 112 | H=2 113 | Tp=1 114 | HD=False 115 | NoS=False 116 | VVS=0 117 | [END] 118 | -------------------------------------------------------------------------------- /Phonebook/KL Phonebook Driver v1.0.usp: -------------------------------------------------------------------------------- 1 | // Dealer Name: ConvergeOne 2 | // System Name: 3 | // System Number: 4 | // Programmer: Kiel Lofstrand 5 | // Comments: 6 | 7 | // --- Compiler Directives -------------------------------------------------- 8 | // #CATEGORY "" 9 | // #DIGITAL_EXPAND 10 | // #ANALOG_SERIAL_EXPAND 11 | 12 | #DEFAULT_VOLATILE 13 | #ENABLE_STACK_CHECKING 14 | #ENABLE_TRACE 15 | // #PRINT_TO_TRACE 16 | 17 | #DEFINE_CONSTANT MAX_FILE_NAME_LEN 200 18 | #DEFINE_CONSTANT MAX_PAGE_SIZE 10 19 | #DEFINE_CONSTANT MAX_NAME_LEN 50 20 | #DEFINE_CONSTANT MAX_NUMBER_LEN 50 21 | 22 | #USER_SIMPLSHARP_LIBRARY "MassLogic" 23 | 24 | // --- Inputs --------------------------------------------------------------- 25 | 26 | DIGITAL_INPUT Load; 27 | DIGITAL_INPUT Store; 28 | DIGITAL_INPUT First_Page; 29 | DIGITAL_INPUT Previous_Page; 30 | DIGITAL_INPUT Next_Page; 31 | DIGITAL_INPUT Last_Page; 32 | DIGITAL_INPUT Clear_Selection; 33 | DIGITAL_INPUT Add_New_Contact; 34 | DIGITAL_INPUT Delete_Selected_Contact; 35 | 36 | ANALOG_INPUT Select; 37 | STRING_INPUT New_Contact_Name[MAX_NAME_LEN]; 38 | STRING_INPUT New_Contact_Number[MAX_NUMBER_LEN]; 39 | // BUFFER_INPUT 40 | 41 | // --- Outputs -------------------------------------------------------------- 42 | 43 | // DIGITAL_OUTPUT 44 | ANALOG_OUTPUT Page_Size; 45 | ANALOG_OUTPUT Current_Page; 46 | ANALOG_OUTPUT Total_Pages; 47 | 48 | ANALOG_OUTPUT Select_Fb; 49 | 50 | STRING_OUTPUT Selected_Entry_Name; 51 | STRING_OUTPUT Selected_Entry_Number; 52 | 53 | STRING_OUTPUT Entry_Name[MAX_PAGE_SIZE]; 54 | 55 | // --- Sockets -------------------------------------------------------------- 56 | 57 | // TCP_CLIENT 58 | // TCP_SERVER 59 | // UDP_SOCKET 60 | 61 | // --- Parameters ----------------------------------------------------------- 62 | 63 | STRING_PARAMETER File_Name[MAX_FILE_NAME_LEN]; 64 | 65 | // --- Global Variables ----------------------------------------------------- 66 | 67 | Phonebook Contacts; 68 | 69 | // --- Functions ------------------------------------------------------------ 70 | 71 | // Function MyFunction1() 72 | // Integer_Function MyIntFunction1() 73 | // String_Function MyStrFunction1() 74 | 75 | // --- Events --------------------------------------------------------------- 76 | 77 | THREADSAFE PUSH Load 78 | { 79 | Contacts.Load(); 80 | } 81 | 82 | THREADSAFE PUSH Store 83 | { 84 | Contacts.Store(); 85 | } 86 | 87 | THREADSAFE PUSH First_Page 88 | { 89 | Contacts.FirstPage(); 90 | } 91 | 92 | THREADSAFE PUSH Previous_Page 93 | { 94 | Contacts.PreviousPage(); 95 | } 96 | 97 | THREADSAFE PUSH Next_Page 98 | { 99 | Contacts.NextPage(); 100 | } 101 | 102 | THREADSAFE PUSH Last_Page 103 | { 104 | Contacts.LastPage(); 105 | } 106 | 107 | THREADSAFE CHANGE Select 108 | { 109 | Contacts.Selection = Select; 110 | } 111 | 112 | THREADSAFE PUSH Clear_Selection 113 | { 114 | Contacts.Selection = 0; 115 | } 116 | 117 | THREADSAFE PUSH Add_New_Contact 118 | { 119 | Contacts.Add(New_Contact_Name, New_Contact_Number); 120 | } 121 | 122 | THREADSAFE PUSH Delete_Selected_Contact 123 | { 124 | Contacts.DeleteSelected(); 125 | } 126 | 127 | // --- Main ----------------------------------------------------------------- 128 | 129 | EventHandler Contacts_UpdatePageNumber(Phonebook sender, EventArgs e) 130 | { 131 | Current_Page = sender.CurrentPage; 132 | Total_Pages = sender.TotalPages; 133 | } 134 | 135 | EventHandler Contacts_UpdatePageEntries(Phonebook sender, EventArgs e) 136 | { 137 | INTEGER i; 138 | 139 | For (i = 1 To sender.PageSize) 140 | { 141 | Entry_Name[i] = sender.EntryName(i); 142 | } 143 | } 144 | 145 | EventHandler Contacts_OnSelection(Phonebook sender, EventArgs e) 146 | { 147 | Select_Fb = Contacts.Selection; 148 | Selected_Entry_Name = Contacts.SelectedEntryName; 149 | Selected_Entry_Number = Contacts.SelectedEntryNumber; 150 | } 151 | 152 | Function Main() 153 | { 154 | Contacts.Initialize(); 155 | Contacts.FileName = File_Name; 156 | 157 | RegisterEvent(Contacts, UpdatePageNumber, Contacts_UpdatePageNumber); 158 | RegisterEvent(Contacts, UpdatePageEntries, Contacts_UpdatePageEntries); 159 | RegisterEvent(Contacts, OnSelection, Contacts_OnSelection); 160 | 161 | WaitForInitializationComplete(); 162 | 163 | Page_Size = Contacts.PageSize; 164 | } 165 | 166 | -------------------------------------------------------------------------------- /Phonebook/KL Phonebook Driver v1.1.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.06.00 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,718,756,767,830,841,842,854,883,955,1032,1062,1079,1128,1129,1134,1140,1157,1158,1195,1199,1220,1221,1222,1223,1299,1348,1349,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,2706,2707,3235,3236,3427,3454,3567,3568,3601,3602,3708,3902,3903,3912,3918,3925,3926,4206,4207, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6,7 20 | Name=KL Phonebook Driver v1.1 21 | SmplCName=KL Phonebook Driver v1.1.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Load 26 | InputSigType1=Digital 27 | InputCue2=Store 28 | InputSigType2=Digital 29 | InputCue3=First_Page 30 | InputSigType3=Digital 31 | InputCue4=Previous_Page 32 | InputSigType4=Digital 33 | InputCue5=Next_Page 34 | InputSigType5=Digital 35 | InputCue6=Last_Page 36 | InputSigType6=Digital 37 | InputCue7=Clear_Selection 38 | InputSigType7=Digital 39 | InputCue8=Add_New_Contact 40 | InputSigType8=Digital 41 | InputCue9=Delete_Selected_Contact 42 | InputSigType9=Digital 43 | OutputCue1=Load_Fb 44 | OutputSigType1=Digital 45 | OutputCue2=Store_Fb 46 | OutputSigType2=Digital 47 | InputList2Cue1=Select 48 | InputList2SigType1=Analog 49 | InputList2Cue2=New_Contact_Name 50 | InputList2SigType2=Serial 51 | InputList2Cue3=New_Contact_Number 52 | InputList2SigType3=Serial 53 | OutputList2Cue1=Page_Size 54 | OutputList2SigType1=Analog 55 | OutputList2Cue2=Current_Page 56 | OutputList2SigType2=Analog 57 | OutputList2Cue3=Total_Pages 58 | OutputList2SigType3=Analog 59 | OutputList2Cue4=Select_Fb 60 | OutputList2SigType4=Analog 61 | OutputList2Cue5=Selected_Entry_Name 62 | OutputList2SigType5=Serial 63 | OutputList2Cue6=Selected_Entry_Number 64 | OutputList2SigType6=Serial 65 | OutputList2Cue7=Entry_Name[#] 66 | OutputList2SigType7=Serial 67 | ParamCue1=[Reference Name] 68 | ParamCue2=File_Name 69 | ParamSigType2=String 70 | MinVariableInputs=9 71 | MaxVariableInputs=9 72 | MinVariableInputsList2=3 73 | MaxVariableInputsList2=3 74 | MinVariableOutputs=2 75 | MaxVariableOutputs=2 76 | MinVariableOutputsList2=7 77 | MaxVariableOutputsList2=16 78 | MinVariableParams=1 79 | MaxVariableParams=1 80 | Expand=expand_separately 81 | Expand2=expand_separately 82 | ProgramTree=Logic 83 | SymbolTree=32 84 | Hint= 85 | PdfHelp= 86 | HelpID= 87 | Render=4 88 | Smpl-C=16 89 | CompilerCode=-48 90 | CompilerParamCode=27 91 | CompilerParamCode5=14 92 | NumFixedParams=1 93 | Pp1=1 94 | Pp2=2 95 | MPp=2 96 | NVStorage=10 97 | ParamSigType1=String 98 | SmplCInputCue1=o# 99 | SmplCOutputCue1=i# 100 | SmplCInputList2Cue1=an# 101 | SmplCOutputList2Cue1=ai# 102 | SPlus2CompiledName=S2_KL_Phonebook_Driver_v1_1 103 | SymJam=NonExclusive 104 | FileName=KL Phonebook Driver v1.1.ush 105 | SIMPLPlusModuleEncoding=0 106 | clz1=MassLogic 107 | [END] 108 | [BEGIN] 109 | ObjTp=Dp 110 | H=1 111 | Tp=1 112 | NoS=False 113 | [END] 114 | [BEGIN] 115 | ObjTp=Dp 116 | H=2 117 | Tp=1 118 | HD=False 119 | NoS=False 120 | VVS=0 121 | [END] 122 | -------------------------------------------------------------------------------- /Phonebook/KL Phonebook Driver v1.1.usp: -------------------------------------------------------------------------------- 1 | // Dealer Name: ConvergeOne 2 | // System Name: 3 | // System Number: 4 | // Programmer: Kiel Lofstrand 5 | // Comments: 6 | 7 | // --- Compiler Directives -------------------------------------------------- 8 | // #CATEGORY "" 9 | // #DIGITAL_EXPAND 10 | // #ANALOG_SERIAL_EXPAND 11 | 12 | #DEFAULT_VOLATILE 13 | #ENABLE_STACK_CHECKING 14 | // #ENABLE_TRACE 15 | // #PRINT_TO_TRACE 16 | 17 | #DEFINE_CONSTANT MAX_FILE_NAME_LEN 200 18 | #DEFINE_CONSTANT MAX_PAGE_SIZE 10 19 | #DEFINE_CONSTANT MAX_NAME_LEN 50 20 | #DEFINE_CONSTANT MAX_NUMBER_LEN 50 21 | 22 | #USER_SIMPLSHARP_LIBRARY "MassLogic" 23 | 24 | // --- Inputs --------------------------------------------------------------- 25 | 26 | DIGITAL_INPUT Load; 27 | DIGITAL_INPUT Store; 28 | DIGITAL_INPUT First_Page; 29 | DIGITAL_INPUT Previous_Page; 30 | DIGITAL_INPUT Next_Page; 31 | DIGITAL_INPUT Last_Page; 32 | DIGITAL_INPUT Clear_Selection; 33 | DIGITAL_INPUT Add_New_Contact; 34 | DIGITAL_INPUT Delete_Selected_Contact; 35 | 36 | ANALOG_INPUT Select; 37 | STRING_INPUT New_Contact_Name[MAX_NAME_LEN]; 38 | STRING_INPUT New_Contact_Number[MAX_NUMBER_LEN]; 39 | 40 | // --- Outputs -------------------------------------------------------------- 41 | 42 | DIGITAL_OUTPUT Load_Fb; 43 | DIGITAL_OUTPUT Store_Fb; 44 | 45 | ANALOG_OUTPUT Page_Size; 46 | ANALOG_OUTPUT Current_Page; 47 | ANALOG_OUTPUT Total_Pages; 48 | 49 | ANALOG_OUTPUT Select_Fb; 50 | 51 | STRING_OUTPUT Selected_Entry_Name; 52 | STRING_OUTPUT Selected_Entry_Number; 53 | 54 | STRING_OUTPUT Entry_Name[MAX_PAGE_SIZE]; 55 | 56 | // --- Parameters ----------------------------------------------------------- 57 | 58 | STRING_PARAMETER File_Name[MAX_FILE_NAME_LEN]; 59 | 60 | // --- Global Variables ----------------------------------------------------- 61 | 62 | Phonebook Contacts; 63 | 64 | // --- Events --------------------------------------------------------------- 65 | 66 | THREADSAFE PUSH Load 67 | { 68 | Contacts.Load(); 69 | Pulse(1, Load_Fb); 70 | } 71 | 72 | THREADSAFE PUSH Store 73 | { 74 | Contacts.Store(); 75 | Pulse(1, Store_Fb); 76 | } 77 | 78 | THREADSAFE PUSH First_Page 79 | { 80 | Contacts.FirstPage(); 81 | } 82 | 83 | THREADSAFE PUSH Previous_Page 84 | { 85 | Contacts.PreviousPage(); 86 | } 87 | 88 | THREADSAFE PUSH Next_Page 89 | { 90 | Contacts.NextPage(); 91 | } 92 | 93 | THREADSAFE PUSH Last_Page 94 | { 95 | Contacts.LastPage(); 96 | } 97 | 98 | THREADSAFE CHANGE Select 99 | { 100 | Contacts.Selection = Select; 101 | } 102 | 103 | THREADSAFE PUSH Clear_Selection 104 | { 105 | Contacts.Selection = 0; 106 | } 107 | 108 | THREADSAFE PUSH Add_New_Contact 109 | { 110 | Contacts.Add(New_Contact_Name, New_Contact_Number); 111 | } 112 | 113 | THREADSAFE PUSH Delete_Selected_Contact 114 | { 115 | Contacts.DeleteSelected(); 116 | } 117 | 118 | // --- Main ----------------------------------------------------------------- 119 | 120 | EventHandler Contacts_UpdatePageNumber(Phonebook sender, EventArgs e) 121 | { 122 | Current_Page = sender.CurrentPage; 123 | Total_Pages = sender.TotalPages; 124 | } 125 | 126 | EventHandler Contacts_UpdatePageEntries(Phonebook sender, EventArgs e) 127 | { 128 | INTEGER i; 129 | 130 | For (i = 1 To sender.PageSize) 131 | { 132 | Entry_Name[i] = sender.EntryName(i); 133 | } 134 | } 135 | 136 | EventHandler Contacts_OnSelection(Phonebook sender, EventArgs e) 137 | { 138 | Select_Fb = Contacts.Selection; 139 | Selected_Entry_Name = Contacts.SelectedEntryName; 140 | Selected_Entry_Number = Contacts.SelectedEntryNumber; 141 | } 142 | 143 | Function Main() 144 | { 145 | Contacts.Initialize(); 146 | Contacts.FileName = File_Name; 147 | 148 | RegisterEvent(Contacts, UpdatePageNumber, Contacts_UpdatePageNumber); 149 | RegisterEvent(Contacts, UpdatePageEntries, Contacts_UpdatePageEntries); 150 | RegisterEvent(Contacts, OnSelection, Contacts_OnSelection); 151 | 152 | WaitForInitializationComplete(); 153 | 154 | Page_Size = Contacts.PageSize; 155 | } 156 | 157 | -------------------------------------------------------------------------------- /Phonebook/MassLogic.clz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kielthecoder/crestron/07a4516273f441658767b6ab8dfa869f90da03cc/Phonebook/MassLogic.clz -------------------------------------------------------------------------------- /Phonebook/Phonebook Demo XPANEL.vtp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kielthecoder/crestron/07a4516273f441658767b6ab8dfa869f90da03cc/Phonebook/Phonebook Demo XPANEL.vtp -------------------------------------------------------------------------------- /Phonebook/Phonebook Demo_CP3_v1.1_compiled.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kielthecoder/crestron/07a4516273f441658767b6ab8dfa869f90da03cc/Phonebook/Phonebook Demo_CP3_v1.1_compiled.zip -------------------------------------------------------------------------------- /Polycom/KL Polycom Click-to-Join v1.1.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=KL Polycom Click-to-Join v1.1 21 | SmplCName=KL Polycom Click-to-Join v1.1.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Update 26 | InputSigType1=Digital 27 | InputCue2=Dial 28 | InputSigType2=Digital 29 | InputCue3=Clear 30 | InputSigType3=Digital 31 | InputCue4=Select_Meeting[#] 32 | InputSigType4=Digital 33 | OutputCue1=Update_Busy_Fb 34 | OutputSigType1=Digital 35 | OutputCue2=Selected_Meeting_Can_Dial 36 | OutputSigType2=Digital 37 | OutputCue3=Scheduled_Meeting_Reminder 38 | OutputSigType3=Digital 39 | OutputCue4=Select_Meeting_Fb[#] 40 | OutputSigType4=Digital 41 | InputList2Cue1=From_Device 42 | InputList2SigType1=Serial 43 | OutputList2Cue1=Number_Of_Meetings 44 | OutputList2SigType1=Analog 45 | OutputList2Cue2=To_Device 46 | OutputList2SigType2=Serial 47 | OutputList2Cue3=Selected_Meeting_Subject 48 | OutputList2SigType3=Serial 49 | OutputList2Cue4=Selected_Meeting_Organizer 50 | OutputList2SigType4=Serial 51 | OutputList2Cue5=Selected_Meeting_Location 52 | OutputList2SigType5=Serial 53 | OutputList2Cue6=Selected_Meeting_StartTime 54 | OutputList2SigType6=Serial 55 | OutputList2Cue7=Selected_Meeting_EndTime 56 | OutputList2SigType7=Serial 57 | OutputList2Cue8=Selected_Meeting_DialString 58 | OutputList2SigType8=Serial 59 | OutputList2Cue9=Selected_Meeting_Password 60 | OutputList2SigType9=Serial 61 | OutputList2Cue10=Meeting_Subject[#] 62 | OutputList2SigType10=Serial 63 | ParamCue1=[Reference Name] 64 | MinVariableInputs=4 65 | MaxVariableInputs=13 66 | MinVariableInputsList2=1 67 | MaxVariableInputsList2=1 68 | MinVariableOutputs=4 69 | MaxVariableOutputs=13 70 | MinVariableOutputsList2=10 71 | MaxVariableOutputsList2=19 72 | MinVariableParams=0 73 | MaxVariableParams=0 74 | Expand=expand_separately 75 | Expand2=expand_separately 76 | ProgramTree=Logic 77 | SymbolTree=32 78 | Hint= 79 | PdfHelp= 80 | HelpID= 81 | Render=4 82 | Smpl-C=16 83 | CompilerCode=-48 84 | CompilerParamCode=27 85 | CompilerParamCode5=14 86 | NumFixedParams=1 87 | Pp1=1 88 | MPp=1 89 | NVStorage=10 90 | ParamSigType1=String 91 | SmplCInputCue1=o# 92 | SmplCOutputCue1=i# 93 | SmplCInputList2Cue1=an# 94 | SmplCOutputList2Cue1=ai# 95 | SPlus2CompiledName=S2_KL_Polycom_Click_to_Join_v1_1 96 | SymJam=NonExclusive 97 | FileName=KL Polycom Click-to-Join v1.1.ush 98 | SIMPLPlusModuleEncoding=0 99 | [END] 100 | [BEGIN] 101 | ObjTp=Dp 102 | H=1 103 | Tp=1 104 | NoS=False 105 | [END] 106 | -------------------------------------------------------------------------------- /Polycom/KL Polycom Globaldir Processor v1.1.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,718,756,767,830,841,842,854,883,955,1032,1062,1079,1128,1129,1134,1140,1157,1158,1195,1199,1220,1221,1222,1223,1299,1348,1349,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,2706,2707,3235,3236,3427,3454,3567,3568,3601,3602,3708,3902,3903,3912,3918,3925,3926,4206,4207, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=KL Polycom Globaldir Processor v1.1 21 | SmplCName=KL Polycom Globaldir Processor v1.1.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Global_Search 26 | InputSigType1=Digital 27 | InputCue2=Global_Addressbook_Dial 28 | InputSigType2=Digital 29 | OutputCue1=Global_Addressbook_Search_Active 30 | OutputSigType1=Digital 31 | InputList2Cue1=Global_Address_Book_Entry_Select_Value_In 32 | InputList2SigType1=Analog 33 | InputList2Cue2=Global_Addressbook_Search_String_In 34 | InputList2SigType2=Serial 35 | InputList2Cue3=From_Device 36 | InputList2SigType3=Serial 37 | OutputList2Cue1=Selected_Global_Address_Book_Entry_Value 38 | OutputList2SigType1=Analog 39 | OutputList2Cue2=To_Device 40 | OutputList2SigType2=Serial 41 | OutputList2Cue3=Get_Address_Book_Status_Text 42 | OutputList2SigType3=Serial 43 | OutputList2Cue4=Global_Address_Book_Name_Text[#] 44 | OutputList2SigType4=Serial 45 | ParamCue1=[Reference Name] 46 | MinVariableInputs=2 47 | MaxVariableInputs=2 48 | MinVariableInputsList2=3 49 | MaxVariableInputsList2=3 50 | MinVariableOutputs=1 51 | MaxVariableOutputs=1 52 | MinVariableOutputsList2=4 53 | MaxVariableOutputsList2=10 54 | MinVariableParams=0 55 | MaxVariableParams=0 56 | Expand=expand_separately 57 | Expand2=expand_separately 58 | ProgramTree=Logic 59 | SymbolTree=32 60 | Hint= 61 | PdfHelp= 62 | HelpID= 63 | Render=4 64 | Smpl-C=16 65 | CompilerCode=-48 66 | CompilerParamCode=27 67 | CompilerParamCode5=14 68 | NumFixedParams=1 69 | Pp1=1 70 | MPp=1 71 | NVStorage=10 72 | ParamSigType1=String 73 | SmplCInputCue1=o# 74 | SmplCOutputCue1=i# 75 | SmplCInputList2Cue1=an# 76 | SmplCOutputList2Cue1=ai# 77 | SPlus2CompiledName=S2_KL_Polycom_Globaldir_Processor_v1_1 78 | SymJam=NonExclusive 79 | FileName=KL Polycom Globaldir Processor v1.1.ush 80 | SIMPLPlusModuleEncoding=0 81 | clz1=PolycomRPGPhoneBook 82 | [END] 83 | [BEGIN] 84 | ObjTp=Dp 85 | H=1 86 | Tp=1 87 | NoS=False 88 | [END] 89 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # crestron 2 | Helpful Crestron modules I've developed on various projects 3 | -------------------------------------------------------------------------------- /Samsung/KL Samsung Checksum v1.0.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS= 19 | Inclusions_CDS=5,6 20 | Name=KL Samsung Checksum v1.0 21 | SmplCName=KL Samsung Checksum v1.0.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputList2Cue1=From_Simpl 26 | InputList2SigType1=Serial 27 | OutputList2Cue1=To_Device 28 | OutputList2SigType1=Serial 29 | ParamCue1=[Reference Name] 30 | MinVariableInputs=0 31 | MaxVariableInputs=0 32 | MinVariableInputsList2=1 33 | MaxVariableInputsList2=1 34 | MinVariableOutputs=0 35 | MaxVariableOutputs=0 36 | MinVariableOutputsList2=1 37 | MaxVariableOutputsList2=1 38 | MinVariableParams=0 39 | MaxVariableParams=0 40 | Expand=expand_separately 41 | Expand2=expand_separately 42 | ProgramTree=Logic 43 | SymbolTree=32 44 | Hint= 45 | PdfHelp= 46 | HelpID= 47 | Render=4 48 | Smpl-C=16 49 | CompilerCode=-48 50 | CompilerParamCode=27 51 | CompilerParamCode5=14 52 | NumFixedParams=1 53 | Pp1=1 54 | MPp=1 55 | NVStorage=10 56 | ParamSigType1=String 57 | SmplCInputCue1=o# 58 | SmplCOutputCue1=i# 59 | SmplCInputList2Cue1=an# 60 | SmplCOutputList2Cue1=ai# 61 | SPlus2CompiledName=S2_KL_Samsung_Checksum_v1_0 62 | SymJam=NonExclusive 63 | FileName=KL Samsung Checksum v1.0.ush 64 | SIMPLPlusModuleEncoding=0 65 | [END] 66 | [BEGIN] 67 | ObjTp=Dp 68 | H=1 69 | Tp=1 70 | NoS=False 71 | [END] 72 | -------------------------------------------------------------------------------- /Samsung/KL Samsung Checksum v1.0.usp: -------------------------------------------------------------------------------- 1 | // --- SIMPL+ Module Information -------------------------------------------- 2 | // 3 | // Dealer Name: 4 | // System Name: 5 | // System Number: 6 | // Programmer: Kiel Lofstrand 7 | // Comments: 8 | 9 | // --- Compiler Directives -------------------------------------------------- 10 | 11 | #DEFAULT_VOLATILE 12 | #ENABLE_STACK_CHECKING 13 | #ENABLE_TRACE 14 | 15 | //#USER_SIMPLSHARP_LIBRARY "SIMPLSharpLibrary1" 16 | 17 | // --- Inputs --------------------------------------------------------------- 18 | 19 | STRING_INPUT From_Simpl[10]; 20 | 21 | // --- Outputs -------------------------------------------------------------- 22 | 23 | STRING_OUTPUT To_Device; 24 | 25 | // --- Parameters ----------------------------------------------------------- 26 | 27 | // --- Global Variables ----------------------------------------------------- 28 | 29 | // --- Functions ------------------------------------------------------------ 30 | 31 | // --- Callbacks ------------------------------------------------------------ 32 | 33 | // --- Event Handlers ------------------------------------------------------- 34 | 35 | THREADSAFE CHANGE From_Simpl 36 | { 37 | INTEGER i; 38 | INTEGER cks; 39 | 40 | cks = 0; 41 | 42 | For (i = 2 To Len(From_Simpl)) 43 | { 44 | cks = cks + Byte(From_Simpl, i); 45 | } 46 | 47 | To_Device = From_Simpl + Chr(cks); 48 | } 49 | 50 | // --- Main() --------------------------------------------------------------- 51 | 52 | Function Main() 53 | { 54 | WaitForInitializationComplete(); 55 | } 56 | -------------------------------------------------------------------------------- /Serial/KL Serial Selector v1.0.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.09.04 8 | IntStrVrs=2 9 | MinSMWVrs=0 10 | MinTIOVrs=0 11 | SavedBy=SMW4.09.04 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Serial Selector v1.0.umc 19 | DbVr=70.00.001.00 20 | DvcDbVr=96.05.001.00 21 | PgmNm=Kiel Lofstrand 22 | DlrNm=C1 23 | Incl=362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,767,830,883,1032,1062,1079,1134,1157,1199,1220,1222,1299,1348,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,3708,3902,3912,3918,3925,1766,2574,2651,2817,2886,2938,2947,3181,3197,3233,3710,3735,3736,3816,3888,4176,4308,4476,4591,4769,5360,5388,5420,5455,5497,5699,5813,5919, 24 | SmVr=1069 25 | DvVr=1069 26 | TpN1=1 27 | TpN2=2 28 | TpN3=3 29 | TpN4=4 30 | TpN5=5 31 | APg=1 32 | FltTmp=1 33 | FpCS=0 34 | EnType=0 35 | ZeroOnIoOk=0 36 | SGMethod=1 37 | ] 38 | [ 39 | ObjTp=Bk 40 | Nm1=\ 41 | Sx1=0 42 | Sy1=0 43 | Mx1=0 44 | ] 45 | [ 46 | ObjTp=Bw 47 | H=1 48 | Lx=0 49 | Ly=0 50 | Rx=772 51 | Ry=913 52 | Xm=-1 53 | Ym=-1 54 | SH=6 55 | Z=100 56 | Ht=4 57 | Hi=1 58 | ] 59 | [ 60 | ObjTp=Bw 61 | H=1 62 | Lx=772 63 | Ly=0 64 | Rx=1544 65 | Ry=913 66 | Xm=-1 67 | Ym=-1 68 | SH=7 69 | Z=100 70 | Ht=1 71 | Hi=1 72 | ] 73 | [ 74 | ObjTp=Symbol 75 | Name=KL Serial Selector v1.0 76 | Code=1 77 | SmplCName=KL Serial Selector v1.0.umc 78 | Smpl-C=3 79 | CompilerTimePrecision=Single_Or_Double_Precision 80 | Exclusions=1,19,20,21,88,89,167,168,179,216,225,248,249,266,302,305, 81 | SMWRev=0 82 | TIORev=0 83 | HelpID=1055 84 | APg=1 85 | StdCmd=0 86 | FltTmp=1 87 | FpCS=0 88 | NumFixedInputs=11 89 | NumFixedOutputs=1 90 | NumFixedParams=1 91 | MinVariableInputs=0 92 | MinVariableInputsList2=0 93 | MinVariableInputsList3=0 94 | MinVariableOutputs=0 95 | MinVariableOutputsList2=0 96 | MinVariableOutputsList3=0 97 | MinVariableParams=0 98 | SymbolTree=32 99 | InputSigType1=Analog 100 | InputSigType2=Serial 101 | OutputSigType1=Serial 102 | ParamSigType1=Constant 103 | InputCue1=Select 104 | InputCue2=In1$ 105 | InputCue3=In2$ 106 | InputCue4=In3$ 107 | InputCue5=In4$ 108 | InputCue6=In5$ 109 | InputCue7=In6$ 110 | InputCue8=In7$ 111 | InputCue9=In8$ 112 | InputCue10=In9$ 113 | InputCue11=In10$ 114 | OutputCue1=Out$ 115 | ParamCue1=Max String Length 116 | FileName=KL Serial Selector v1.0.umc 117 | EncodingType=0 118 | ZeroOnIoOk=0 119 | ] 120 | [ 121 | ObjTp=Sm 122 | H=1 123 | SmC=157 124 | Nm=Central Control Modules 125 | ObjVer=1 126 | CF=2 127 | n1I=1 128 | n1O=1 129 | mI=1 130 | mO=1 131 | tO=1 132 | mP=1 133 | P1= 134 | ] 135 | [ 136 | ObjTp=Sm 137 | H=2 138 | SmC=157 139 | Nm=Network Modules 140 | ObjVer=1 141 | CF=2 142 | n1I=1 143 | n1O=1 144 | mI=1 145 | mO=1 146 | tO=1 147 | mP=1 148 | P1= 149 | ] 150 | [ 151 | ObjTp=Sm 152 | H=3 153 | SmC=157 154 | Nm=Ethernet 155 | ObjVer=1 156 | CF=2 157 | n1I=1 158 | n1O=1 159 | mI=1 160 | mO=1 161 | tO=1 162 | mP=1 163 | P1= 164 | ] 165 | [ 166 | ObjTp=Sm 167 | H=4 168 | SmC=156 169 | Nm=Logic 170 | ObjVer=1 171 | CF=2 172 | mC=13 173 | C1=7 174 | C2=9 175 | C3=8 176 | C4=10 177 | C5=11 178 | C6=12 179 | C7=13 180 | C8=14 181 | C9=15 182 | C10=16 183 | C11=17 184 | C12=18 185 | C13=19 186 | ] 187 | [ 188 | ObjTp=Sm 189 | H=5 190 | SmC=157 191 | Nm=DefineArguments 192 | ObjVer=1 193 | CF=2 194 | n1I=1 195 | n1O=1 196 | mC=1 197 | C1=6 198 | mI=1 199 | mO=1 200 | tO=1 201 | mP=1 202 | P1= 203 | ] 204 | [ 205 | ObjTp=Sm 206 | H=6 207 | SmC=55 208 | Nm=Argument Definition 209 | ObjVer=1 210 | PrH=5 211 | CF=2 212 | n1I=11 213 | n1O=1 214 | mI=11 215 | I1=4 216 | I2=5 217 | I3=6 218 | I4=7 219 | I5=8 220 | I6=9 221 | I7=10 222 | I8=11 223 | I9=12 224 | I10=13 225 | I11=14 226 | mO=1 227 | tO=1 228 | O1=15 229 | mP=1 230 | P1=Max String Length 231 | ] 232 | [ 233 | ObjTp=Sm 234 | H=7 235 | SmC=858 236 | Nm=Make String Permanent 237 | ObjVer=1 238 | PrH=4 239 | CF=2 240 | n1I=10 241 | mI=10 242 | I1=5 243 | I2=6 244 | I3=7 245 | I4=8 246 | I5=9 247 | I6=10 248 | I7=11 249 | I8=12 250 | I9=13 251 | I10=14 252 | mP=1 253 | P1=#Max String Length 254 | ] 255 | [ 256 | ObjTp=Sm 257 | H=8 258 | SmC=89 259 | Nm=Serial Send 260 | ObjVer=1 261 | PrH=4 262 | CF=2 263 | n1I=1 264 | n1O=1 265 | mI=1 266 | I1=16 267 | mO=1 268 | tO=1 269 | O1=15 270 | mP=1 271 | P1="" 272 | ] 273 | [ 274 | ObjTp=Sm 275 | H=9 276 | SmC=38 277 | Nm=Analog Equate 278 | ObjVer=1 279 | PrH=4 280 | CF=2 281 | n1I=2 282 | n1O=11 283 | mI=2 284 | I1=4 285 | mO=11 286 | tO=11 287 | O1=16 288 | O2=17 289 | O3=18 290 | O4=19 291 | O5=20 292 | O6=21 293 | O7=22 294 | O8=23 295 | O9=24 296 | O10=25 297 | O11=26 298 | mP=11 299 | P1=0d 300 | P2=1d 301 | P3=2d 302 | P4=3d 303 | P5=4d 304 | P6=5d 305 | P7=6d 306 | P8=7d 307 | P9=8d 308 | P10=9d 309 | P11=10d 310 | ] 311 | [ 312 | ObjTp=Sm 313 | H=10 314 | SmC=46 315 | Nm=Analog Buffer 316 | ObjVer=1 317 | PrH=4 318 | CF=2 319 | n1I=2 320 | n1O=1 321 | mI=2 322 | I1=17 323 | I2=5 324 | mO=1 325 | tO=1 326 | O1=15 327 | ] 328 | [ 329 | ObjTp=Sm 330 | H=11 331 | SmC=46 332 | Nm=Analog Buffer 333 | ObjVer=1 334 | PrH=4 335 | CF=2 336 | n1I=2 337 | n1O=1 338 | mI=2 339 | I1=18 340 | I2=6 341 | mO=1 342 | tO=1 343 | O1=15 344 | ] 345 | [ 346 | ObjTp=Sm 347 | H=12 348 | SmC=46 349 | Nm=Analog Buffer 350 | ObjVer=1 351 | PrH=4 352 | CF=2 353 | n1I=2 354 | n1O=1 355 | mI=2 356 | I1=19 357 | I2=7 358 | mO=1 359 | tO=1 360 | O1=15 361 | ] 362 | [ 363 | ObjTp=Sm 364 | H=13 365 | SmC=46 366 | Nm=Analog Buffer 367 | ObjVer=1 368 | PrH=4 369 | CF=2 370 | n1I=2 371 | n1O=1 372 | mI=2 373 | I1=20 374 | I2=8 375 | mO=1 376 | tO=1 377 | O1=15 378 | ] 379 | [ 380 | ObjTp=Sm 381 | H=14 382 | SmC=46 383 | Nm=Analog Buffer 384 | ObjVer=1 385 | PrH=4 386 | CF=2 387 | n1I=2 388 | n1O=1 389 | mI=2 390 | I1=21 391 | I2=9 392 | mO=1 393 | tO=1 394 | O1=15 395 | ] 396 | [ 397 | ObjTp=Sm 398 | H=15 399 | SmC=46 400 | Nm=Analog Buffer 401 | ObjVer=1 402 | PrH=4 403 | CF=2 404 | n1I=2 405 | n1O=1 406 | mI=2 407 | I1=22 408 | I2=10 409 | mO=1 410 | tO=1 411 | O1=15 412 | ] 413 | [ 414 | ObjTp=Sm 415 | H=16 416 | SmC=46 417 | Nm=Analog Buffer 418 | ObjVer=1 419 | PrH=4 420 | CF=2 421 | n1I=2 422 | n1O=1 423 | mI=2 424 | I1=23 425 | I2=11 426 | mO=1 427 | tO=1 428 | O1=15 429 | ] 430 | [ 431 | ObjTp=Sm 432 | H=17 433 | SmC=46 434 | Nm=Analog Buffer 435 | ObjVer=1 436 | PrH=4 437 | CF=2 438 | n1I=2 439 | n1O=1 440 | mI=2 441 | I1=24 442 | I2=12 443 | mO=1 444 | tO=1 445 | O1=15 446 | ] 447 | [ 448 | ObjTp=Sm 449 | H=18 450 | SmC=46 451 | Nm=Analog Buffer 452 | ObjVer=1 453 | PrH=4 454 | CF=2 455 | n1I=2 456 | n1O=1 457 | mI=2 458 | I1=25 459 | I2=13 460 | mO=1 461 | tO=1 462 | O1=15 463 | ] 464 | [ 465 | ObjTp=Sm 466 | H=19 467 | SmC=46 468 | Nm=Analog Buffer 469 | ObjVer=1 470 | PrH=4 471 | CF=2 472 | n1I=2 473 | n1O=1 474 | mI=2 475 | I1=26 476 | I2=14 477 | mO=1 478 | tO=1 479 | O1=15 480 | ] 481 | [ 482 | ObjTp=Sg 483 | H=4 484 | Nm=Select 485 | SgTp=2 486 | ] 487 | [ 488 | ObjTp=Sg 489 | H=5 490 | Nm=In1$ 491 | SgTp=4 492 | ] 493 | [ 494 | ObjTp=Sg 495 | H=6 496 | Nm=In2$ 497 | SgTp=4 498 | ] 499 | [ 500 | ObjTp=Sg 501 | H=7 502 | Nm=In3$ 503 | SgTp=4 504 | ] 505 | [ 506 | ObjTp=Sg 507 | H=8 508 | Nm=In4$ 509 | SgTp=4 510 | ] 511 | [ 512 | ObjTp=Sg 513 | H=9 514 | Nm=In5$ 515 | SgTp=4 516 | ] 517 | [ 518 | ObjTp=Sg 519 | H=10 520 | Nm=In6$ 521 | SgTp=4 522 | ] 523 | [ 524 | ObjTp=Sg 525 | H=11 526 | Nm=In7$ 527 | SgTp=4 528 | ] 529 | [ 530 | ObjTp=Sg 531 | H=12 532 | Nm=In8$ 533 | SgTp=4 534 | ] 535 | [ 536 | ObjTp=Sg 537 | H=13 538 | Nm=In9$ 539 | SgTp=4 540 | ] 541 | [ 542 | ObjTp=Sg 543 | H=14 544 | Nm=In10$ 545 | SgTp=4 546 | ] 547 | [ 548 | ObjTp=Sg 549 | H=15 550 | Nm=Out$ 551 | SgTp=4 552 | ] 553 | [ 554 | ObjTp=Sg 555 | H=16 556 | Nm=Select_0 557 | ] 558 | [ 559 | ObjTp=Sg 560 | H=17 561 | Nm=Select_1 562 | ] 563 | [ 564 | ObjTp=Sg 565 | H=18 566 | Nm=Select_2 567 | ] 568 | [ 569 | ObjTp=Sg 570 | H=19 571 | Nm=Select_3 572 | ] 573 | [ 574 | ObjTp=Sg 575 | H=20 576 | Nm=Select_4 577 | ] 578 | [ 579 | ObjTp=Sg 580 | H=21 581 | Nm=Select_5 582 | ] 583 | [ 584 | ObjTp=Sg 585 | H=22 586 | Nm=Select_6 587 | ] 588 | [ 589 | ObjTp=Sg 590 | H=23 591 | Nm=Select_7 592 | ] 593 | [ 594 | ObjTp=Sg 595 | H=24 596 | Nm=Select_8 597 | ] 598 | [ 599 | ObjTp=Sg 600 | H=25 601 | Nm=Select_9 602 | ] 603 | [ 604 | ObjTp=Sg 605 | H=26 606 | Nm=Select_10 607 | ] 608 | -------------------------------------------------------------------------------- /SimplCrypto/SIMPL/Simpl MD5 v1.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,718,756,767,830,841,842,854,883,955,1032,1062,1079,1128,1129,1134,1140,1157,1158,1195,1199,1220,1221,1222,1223,1299,1348,1349,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,2706,2707,3235,3236,3427,3454,3567,3568,3601,3602,3708,3902,3903,3912,3918,3925,3926,4206,4207,6114,6136,6423, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=Simpl MD5 v1 21 | SmplCName=Simpl MD5 v1.usp 22 | Code=1 23 | SysRev5=3.090 24 | SMWRev=2.02.05 25 | InputList2Cue1=Data_In 26 | InputList2SigType1=Serial 27 | OutputList2Cue1=MD5_Out 28 | OutputList2SigType1=Serial 29 | ParamCue1=[Reference Name] 30 | MinVariableInputs=0 31 | MaxVariableInputs=0 32 | MinVariableInputsList2=1 33 | MaxVariableInputsList2=1 34 | MinVariableOutputs=0 35 | MaxVariableOutputs=0 36 | MinVariableOutputsList2=1 37 | MaxVariableOutputsList2=1 38 | MinVariableParams=0 39 | MaxVariableParams=0 40 | Expand=expand_separately 41 | Expand2=expand_separately 42 | ProgramTree=Logic 43 | SymbolTree=32 44 | Hint= 45 | PdfHelp= 46 | HelpID= 47 | Render=4 48 | Smpl-C=16 49 | CompilerCode=-48 50 | CompilerParamCode=27 51 | CompilerParamCode5=14 52 | NumFixedParams=1 53 | Pp1=1 54 | MPp=1 55 | NVStorage=10 56 | ParamSigType1=String 57 | SmplCInputCue1=o# 58 | SmplCOutputCue1=i# 59 | SmplCInputList2Cue1=an# 60 | SmplCOutputList2Cue1=ai# 61 | SPlus2CompiledName=S2_Simpl_MD5_v1 62 | SymJam=NonExclusive 63 | FileName=Simpl MD5 v1.ush 64 | SIMPLPlusModuleEncoding=0 65 | clz1=SimplCrypto 66 | [END] 67 | [BEGIN] 68 | ObjTp=Dp 69 | H=1 70 | Tp=1 71 | NoS=False 72 | [END] 73 | -------------------------------------------------------------------------------- /SimplCrypto/SIMPL/Simpl MD5 v1.usp: -------------------------------------------------------------------------------- 1 | // New Module 2 | // v1.0 3 | // 4 | // Dealer: 5 | // System: 6 | // Programmer: Kiel Lofstrand 7 | // Comments: 8 | 9 | // --- Compiler Directives ---------------------------------------------------- 10 | 11 | #DEFAULT_VOLATILE 12 | #ENABLE_STACK_CHECKING 13 | #ENABLE_TRACE 14 | 15 | #DEFINE_CONSTANT MAX_DATA_LEN 50 16 | 17 | // --- Libraries -------------------------------------------------------------- 18 | 19 | #USER_SIMPLSHARP_LIBRARY "SimplCrypto" 20 | 21 | // --- Inputs ----------------------------------------------------------------- 22 | 23 | // DIGITAL_INPUT 24 | // ANALOG_INPUT 25 | STRING_INPUT Data_In[MAX_DATA_LEN]; 26 | // BUFFER_INPUT 27 | 28 | // --- Outputs ---------------------------------------------------------------- 29 | 30 | // DIGITAL_OUTPUT 31 | // ANALOG_OUTPUT 32 | STRING_OUTPUT MD5_Out; 33 | 34 | // --- Parameters ------------------------------------------------------------- 35 | 36 | // INTEGER_PARAMETER 37 | // SIGNED_INTEGER_PARAMETER 38 | // LONG_INTEGER_PARAMETER 39 | // SIGNED_LONG_INTEGER_PARAMETER 40 | // STRING_PARAMETER 41 | 42 | // --- Sockets ---------------------------------------------------------------- 43 | 44 | // TCP_CLIENT 45 | // TCP_SERVER 46 | // UDP_SOCKET 47 | 48 | // --- Structures ------------------------------------------------------------- 49 | 50 | // STRUCTURE MyStruct 51 | // { 52 | // }; 53 | 54 | // --- Global Variables ------------------------------------------------------- 55 | 56 | // INTEGER 57 | // LONG_INTEGER 58 | // SIGNED_INTEGER 59 | // SIGNED_LONG_INTEGER 60 | // STRING 61 | 62 | SimplMD5 MD5; 63 | 64 | // --- Functions -------------------------------------------------------------- 65 | 66 | // FUNCTION MyFunc() 67 | // { 68 | // } 69 | 70 | // INTEGER_FUNCTION MyIntFunc() 71 | // { 72 | // Return(0); 73 | // } 74 | 75 | // STRING_FUNCTION MyStrFunc() 76 | // { 77 | // Return(""); 78 | // } 79 | 80 | // --- Events ----------------------------------------------------------------- 81 | 82 | // PUSH 83 | // RELEASE 84 | 85 | CHANGE Data_In 86 | { 87 | MD5_Out = MD5.HexString(Data_In); 88 | } 89 | 90 | // EVENT 91 | // SOCKETCONNECT 92 | // SOCKETDISCONNECT 93 | // SOCKETSTATUS 94 | // SOCKETRECEIVE 95 | 96 | // THREADSAFE CHANGE From_Device 97 | // { 98 | // STRING temp[255]; 99 | // 100 | // While (1) 101 | // { 102 | // temp = Gather("\n", From_Device); 103 | // } 104 | // } 105 | 106 | // --- Main ------------------------------------------------------------------- 107 | 108 | FUNCTION Main() 109 | { 110 | WaitForInitializationComplete(); 111 | } 112 | -------------------------------------------------------------------------------- /SimplCrypto/SIMPL/SimplCrypto.clz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kielthecoder/crestron/07a4516273f441658767b6ab8dfa869f90da03cc/SimplCrypto/SIMPL/SimplCrypto.clz -------------------------------------------------------------------------------- /SimplCrypto/SimplCrypto.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimplCrypto", "SimplCrypto\SimplCrypto.csproj", "{0BF6D44C-1114-48B5-929A-FA107C1E6080}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Any CPU = Debug|Any CPU 9 | Release|Any CPU = Release|Any CPU 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {0BF6D44C-1114-48B5-929A-FA107C1E6080}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 13 | {0BF6D44C-1114-48B5-929A-FA107C1E6080}.Debug|Any CPU.Build.0 = Debug|Any CPU 14 | {0BF6D44C-1114-48B5-929A-FA107C1E6080}.Release|Any CPU.ActiveCfg = Release|Any CPU 15 | {0BF6D44C-1114-48B5-929A-FA107C1E6080}.Release|Any CPU.Build.0 = Release|Any CPU 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /SimplCrypto/SimplCrypto.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kielthecoder/crestron/07a4516273f441658767b6ab8dfa869f90da03cc/SimplCrypto/SimplCrypto.suo -------------------------------------------------------------------------------- /SimplCrypto/SimplCrypto/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | [assembly: AssemblyTitle("SimplCrypto")] 4 | [assembly: AssemblyCompany("")] 5 | [assembly: AssemblyProduct("SimplCrypto")] 6 | [assembly: AssemblyCopyright("Copyright © 2020")] 7 | [assembly: AssemblyVersion("1.0.0.*")] 8 | 9 | -------------------------------------------------------------------------------- /SimplCrypto/SimplCrypto/Properties/ControlSystem.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kielthecoder/crestron/07a4516273f441658767b6ab8dfa869f90da03cc/SimplCrypto/SimplCrypto/Properties/ControlSystem.cfg -------------------------------------------------------------------------------- /SimplCrypto/SimplCrypto/SimplCrypto.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | Release 4 | AnyCPU 5 | 9.0.30729 6 | 2.0 7 | {0BF6D44C-1114-48B5-929A-FA107C1E6080} 8 | Library 9 | Properties 10 | SimplCrypto 11 | SimplCrypto 12 | {0B4745B0-194B-4BB6-8E21-E9057CA92500};{4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 13 | WindowsCE 14 | E2BECB1F-8C8C-41ba-B736-9BE7D946A398 15 | 5.0 16 | SmartDeviceProject1 17 | v3.5 18 | Windows CE 19 | 20 | 21 | 22 | 23 | .allowedReferenceRelatedFileExtensions 24 | true 25 | full 26 | false 27 | bin\Debug\ 28 | DEBUG;TRACE; 29 | prompt 30 | 4 31 | 512 32 | true 33 | true 34 | off 35 | 36 | 37 | .allowedReferenceRelatedFileExtensions 38 | none 39 | true 40 | bin\Release\ 41 | prompt 42 | 4 43 | 512 44 | true 45 | true 46 | off 47 | 48 | 49 | 50 | 51 | False 52 | C:\ProgramData\Crestron\SDK\SimplSharpCryptographyInterface.dll 53 | 54 | 55 | False 56 | C:\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll 57 | 58 | 59 | False 60 | C:\ProgramData\Crestron\SDK\SimplSharpHelperInterface.dll 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | rem S# preparation will execute after these operations 74 | 75 | -------------------------------------------------------------------------------- /SimplCrypto/SimplCrypto/SimplCrypto.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | E282E6BE-C7C3-4ece-916A-88FB1CF8AF3C 4 | 5 | -------------------------------------------------------------------------------- /SimplCrypto/SimplCrypto/SimplCrypto.projectinfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kielthecoder/crestron/07a4516273f441658767b6ab8dfa869f90da03cc/SimplCrypto/SimplCrypto/SimplCrypto.projectinfo -------------------------------------------------------------------------------- /SimplCrypto/SimplCrypto/SimplMD5.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | using Crestron.SimplSharp; 4 | using Crestron.SimplSharp.Cryptography; 5 | 6 | namespace SimplCrypto 7 | { 8 | public class SimplMD5 9 | { 10 | private char[] hex_table = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; 11 | 12 | public SimplMD5() 13 | { 14 | } 15 | 16 | public string HexString(string data) 17 | { 18 | StringBuilder sb = new StringBuilder(); 19 | byte[] bytes = Encoding.ASCII.GetBytes(data); 20 | 21 | using (var md5 = MD5.Create()) 22 | { 23 | byte[] hash = md5.ComputeHash(bytes); 24 | 25 | foreach (var b in hash) 26 | { 27 | sb.Append(hex_table[b >> 4]); 28 | sb.Append(hex_table[b & 15]); 29 | } 30 | } 31 | 32 | return sb.ToString(); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Speed Dial/KL Speed Dial v1.0.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=KL Speed Dial v1.0 21 | SmplCName=KL Speed Dial v1.0.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Save 26 | InputSigType1=Digital 27 | InputCue2=Recall 28 | InputSigType2=Digital 29 | InputCue3=Select[#] 30 | InputSigType3=Digital 31 | InputList2Cue1=Number_In 32 | InputList2SigType1=Serial 33 | InputList2Cue2=Name_In 34 | InputList2SigType2=Serial 35 | OutputList2Cue1=Number_Out 36 | OutputList2SigType1=Serial 37 | OutputList2Cue2=Name_Out[#] 38 | OutputList2SigType2=Serial 39 | ParamCue1=[Reference Name] 40 | ParamCue2=FileName 41 | ParamSigType2=String 42 | MinVariableInputs=3 43 | MaxVariableInputs=12 44 | MinVariableInputsList2=2 45 | MaxVariableInputsList2=2 46 | MinVariableOutputs=0 47 | MaxVariableOutputs=0 48 | MinVariableOutputsList2=2 49 | MaxVariableOutputsList2=11 50 | MinVariableParams=1 51 | MaxVariableParams=1 52 | Expand=expand_separately 53 | Expand2=expand_separately 54 | ProgramTree=Logic 55 | SymbolTree=32 56 | Hint= 57 | PdfHelp= 58 | HelpID= 59 | Render=4 60 | Smpl-C=16 61 | CompilerCode=-48 62 | CompilerParamCode=27 63 | CompilerParamCode5=14 64 | NumFixedParams=1 65 | Pp1=1 66 | Pp2=2 67 | MPp=2 68 | NVStorage=10 69 | ParamSigType1=String 70 | SmplCInputCue1=o# 71 | SmplCOutputCue1=i# 72 | SmplCInputList2Cue1=an# 73 | SmplCOutputList2Cue1=ai# 74 | SPlus2CompiledName=S2_KL_Speed_Dial_v1_0 75 | SymJam=NonExclusive 76 | FileName=KL Speed Dial v1.0.ush 77 | SIMPLPlusModuleEncoding=0 78 | [END] 79 | [BEGIN] 80 | ObjTp=Dp 81 | H=1 82 | Tp=1 83 | NoS=False 84 | [END] 85 | [BEGIN] 86 | ObjTp=Dp 87 | H=2 88 | Tp=1 89 | HD=False 90 | NoS=False 91 | VVS=0 92 | [END] 93 | -------------------------------------------------------------------------------- /Speed Dial/KL Speed Dial v1.0.usp: -------------------------------------------------------------------------------- 1 | /******************************************************************************************* 2 | SIMPL+ Module Information 3 | (Fill in comments below) 4 | *******************************************************************************************/ 5 | /* 6 | Dealer Name: 7 | System Name: 8 | System Number: 9 | Programmer: 10 | Comments: 11 | */ 12 | 13 | /******************************************************************************************* 14 | Compiler Directives 15 | (Uncomment and declare compiler directives as needed) 16 | *******************************************************************************************/ 17 | // #ENABLE_DYNAMIC 18 | // #SYMBOL_NAME "" 19 | // #HINT "" 20 | #DEFINE_CONSTANT MAX_ENTRIES 10 21 | // #CATEGORY "" 22 | // #PRINT_TO_TRACE 23 | // #DIGITAL_EXPAND 24 | // #ANALOG_SERIAL_EXPAND 25 | // #OUTPUT_SHIFT 26 | // #HELP_PDF_FILE "" 27 | #DEFAULT_VOLATILE 28 | #ENABLE_STACK_CHECKING 29 | #ENABLE_TRACE 30 | // #ENCODING_ASCII 31 | // #ENCODING_UTF16 32 | // #ENCODING_INHERIT_FROM_PARENT 33 | // #ENCODING_INHERIT_FROM_PROGRAM 34 | /* 35 | #HELP_BEGIN 36 | (add additional lines of help lines) 37 | #HELP_END 38 | */ 39 | 40 | /******************************************************************************************* 41 | DIGITAL, ANALOG and SERIAL INPUTS and OUTPUTS 42 | (Uncomment and declare inputs and outputs as needed) 43 | *******************************************************************************************/ 44 | DIGITAL_INPUT Save, Recall; 45 | DIGITAL_INPUT Select[MAX_ENTRIES]; 46 | // ANALOG_INPUT 47 | STRING_INPUT Number_In[50], Name_In[200]; 48 | // BUFFER_INPUT 49 | 50 | // DIGITAL_OUTPUT 51 | // ANALOG_OUTPUT 52 | STRING_OUTPUT Number_Out; 53 | STRING_OUTPUT Name_Out[MAX_ENTRIES]; 54 | 55 | /******************************************************************************************* 56 | Parameters 57 | (Uncomment and declare parameters as needed) 58 | *******************************************************************************************/ 59 | // INTEGER_PARAMETER 60 | // SIGNED_INTEGER_PARAMETER 61 | // LONG_INTEGER_PARAMETER 62 | // SIGNED_LONG_INTEGER_PARAMETER 63 | STRING_PARAMETER FileName[255]; 64 | 65 | /******************************************************************************************* 66 | Structure Definitions 67 | (Uncomment and define structure definitions as needed) 68 | Note: Be sure to initialize all declared STRING variables as needed 69 | For example, in Function Main: struct.myString = ""; 70 | *******************************************************************************************/ 71 | 72 | STRUCTURE TSPEEDDIAL 73 | { 74 | STRING EntryName[200]; 75 | STRING Number[50]; 76 | }; 77 | 78 | NONVOLATILE TSPEEDDIAL SpeedDial[MAX_ENTRIES]; 79 | 80 | /******************************************************************************************* 81 | Global Variables 82 | (Uncomment and declare global variables as needed) 83 | Note: Be sure to initialize all declared STRING variables as needed 84 | For example, in Function Main: myString = ""; 85 | *******************************************************************************************/ 86 | VOLATILE INTEGER SpeedDialIndex; 87 | // LONG_INTEGER 88 | // SIGNED_INTEGER 89 | // SIGNED_LONG_INTEGER 90 | VOLATILE STRING NumberIn[50]; 91 | VOLATILE STRING NameIn[200]; 92 | 93 | /******************************************************************************************* 94 | Functions 95 | (Add any additional functions here) 96 | Note: Functions must be physically placed before the location in 97 | the code that calls them. 98 | *******************************************************************************************/ 99 | 100 | Function LoadFromFile() 101 | { 102 | SIGNED_INTEGER fileHandle; 103 | SIGNED_INTEGER result; 104 | INTEGER i; 105 | STRING textBuffer[1024]; 106 | STRING textLine[255]; 107 | STRING temp[255]; 108 | 109 | If (StartFileOperations() = 0) 110 | { 111 | fileHandle = FileOpen(FileName, _O_RDONLY | _O_TEXT); 112 | 113 | If (fileHandle >= 0) 114 | { 115 | textBuffer = ""; 116 | i = 1; 117 | 118 | While (FileEOF(fileHandle) = 0) 119 | { 120 | If (i > MAX_ENTRIES) 121 | { 122 | Break; 123 | } 124 | 125 | result = FileRead(fileHandle, textLine, 255); 126 | textBuffer = textBuffer + textLine; 127 | 128 | While (Find("\n", textBuffer)) 129 | { 130 | If (i > MAX_ENTRIES) 131 | { 132 | Break; 133 | } 134 | 135 | textLine = Remove("\n", textBuffer); 136 | 137 | temp = Remove("|", textLine); 138 | SpeedDial[i].EntryName = Left(temp, Len(temp) - 1); 139 | 140 | temp = Left(textLine, Len(textLine) - 2); 141 | SpeedDial[i].Number = temp; 142 | 143 | i = i + 1; 144 | } 145 | } 146 | 147 | While (Find("\n", textBuffer)) 148 | { 149 | If (i > MAX_ENTRIES) 150 | { 151 | Break; 152 | } 153 | 154 | textLine = Remove("\n", textBuffer); 155 | 156 | temp = Remove("|", textLine); 157 | SpeedDial[i].EntryName = Left(temp, Len(temp) - 1); 158 | 159 | temp = Left(textLine, Len(textLine) - 2); 160 | SpeedDial[i].Number = temp; 161 | 162 | i = i + 1; 163 | } 164 | 165 | FileClose(fileHandle); 166 | } 167 | 168 | EndFileOperations(); 169 | } 170 | } 171 | 172 | Function SaveToFile() 173 | { 174 | SIGNED_INTEGER fileHandle; 175 | SIGNED_INTEGER result; 176 | INTEGER i; 177 | STRING textLine[255]; 178 | 179 | If (StartFileOperations() = 0) 180 | { 181 | fileHandle = FileOpen(FileName, _O_WRONLY | _O_CREAT | _O_TEXT); 182 | 183 | If (fileHandle >= 0) 184 | { 185 | For (i = 1 To MAX_ENTRIES) 186 | { 187 | MakeString(textLine, "%s|%s\n", SpeedDial[i].EntryName, SpeedDial[i].Number); 188 | 189 | result = FileWrite(fileHandle, textLine, Len(textLine)); 190 | 191 | If (result <= 0) 192 | { 193 | Break; 194 | } 195 | } 196 | 197 | FileClose(fileHandle); 198 | } 199 | 200 | EndFileOperations(); 201 | } 202 | } 203 | 204 | Function UpdateNames() 205 | { 206 | INTEGER i; 207 | 208 | For (i = 1 To MAX_ENTRIES) 209 | { 210 | Name_Out[i] = SpeedDial[i].EntryName; 211 | } 212 | } 213 | 214 | /******************************************************************************************* 215 | Event Handlers 216 | (Uncomment and declare additional event handlers as needed) 217 | *******************************************************************************************/ 218 | 219 | PUSH Select 220 | { 221 | SpeedDialIndex = GetLastModifiedArrayIndex(); 222 | } 223 | 224 | CHANGE Number_In 225 | { 226 | NumberIn = Number_In; 227 | } 228 | 229 | CHANGE Name_In 230 | { 231 | NameIn = Name_In; 232 | } 233 | 234 | PUSH Save 235 | { 236 | If (SpeedDialIndex > 0) 237 | { 238 | SpeedDial[SpeedDialIndex].EntryName = NameIn; 239 | SpeedDial[SpeedDialIndex].Number = NumberIn; 240 | 241 | UpdateNames(); 242 | SaveToFile(); 243 | } 244 | } 245 | 246 | PUSH Recall 247 | { 248 | If (SpeedDialIndex > 0) 249 | { 250 | Number_Out = SpeedDial[SpeedDialIndex].Number; 251 | } 252 | } 253 | 254 | /******************************************************************************************* 255 | Main() 256 | Uncomment and place one-time startup code here 257 | (This code will get called when the system starts up) 258 | *******************************************************************************************/ 259 | 260 | Function Main() 261 | { 262 | INTEGER i; 263 | 264 | For (i = 1 To MAX_ENTRIES) 265 | { 266 | SpeedDial[i].EntryName = "New Entry"; 267 | SpeedDial[i].Number = ItoA(i); 268 | } 269 | 270 | WaitForInitializationComplete(); 271 | LoadFromFile(); 272 | UpdateNames(); 273 | } 274 | -------------------------------------------------------------------------------- /Speed Dial/KL Speed Dial v1.0_Manifest.arcv: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | ObjTp=FSgntr 3 | Sgntr=ArchiveManifest 4 | RelVrs=4.09.04 5 | IsProgram=0 6 | TopLevelProgram=KL Speed Dial v1.0.umc 7 | [END] 8 | [BEGIN] 9 | ObjTp=ArchiveItem 10 | File=KL Speed Dial v1.0.umc 11 | Scope=1 12 | [END] 13 | [BEGIN] 14 | ObjTp=ArchiveItem 15 | File=KL Speed Dial v1.0.ush 16 | Scope=1 17 | [END] 18 | -------------------------------------------------------------------------------- /Standard UI/KL Passcode Driver v1.0.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854,6114, 18 | Exclusions_CDS= 19 | Inclusions_CDS=5,6 20 | Name=KL Passcode Driver v1.0 21 | SmplCName=KL Passcode Driver v1.0.usp 22 | Code=1 23 | SysRev5=4.000 24 | SMWRev=2.02.05 25 | InputCue1=Set_Passcode 26 | InputSigType1=Digital 27 | InputCue2=Key_Clear 28 | InputSigType2=Digital 29 | InputCue3=Key_Enter 30 | InputSigType3=Digital 31 | InputCue4=Key_Pad[#] 32 | InputSigType4=Digital 33 | OutputCue1=Passcode_Correct 34 | OutputSigType1=Digital 35 | OutputCue2=Passcode_Wrong 36 | OutputSigType2=Digital 37 | OutputCue3=Passcode_Saved 38 | OutputSigType3=Digital 39 | InputList2Cue1=Admin_Passcode_In 40 | InputList2SigType1=Serial 41 | OutputList2Cue1=Passcode_Entry 42 | OutputList2SigType1=Serial 43 | OutputList2Cue2=Passcode_Masked 44 | OutputList2SigType2=Serial 45 | ParamCue1=[Reference Name] 46 | ParamCue2=Backdoor_Passcode 47 | ParamSigType2=String 48 | MinVariableInputs=4 49 | MaxVariableInputs=13 50 | MinVariableInputsList2=1 51 | MaxVariableInputsList2=1 52 | MinVariableOutputs=3 53 | MaxVariableOutputs=3 54 | MinVariableOutputsList2=2 55 | MaxVariableOutputsList2=2 56 | MinVariableParams=1 57 | MaxVariableParams=1 58 | Expand=expand_separately 59 | Expand2=expand_separately 60 | ProgramTree=Logic 61 | SymbolTree=32 62 | Hint= 63 | PdfHelp= 64 | HelpID= 65 | Render=4 66 | Smpl-C=16 67 | CompilerCode=-48 68 | CompilerParamCode=27 69 | CompilerParamCode5=14 70 | NumFixedParams=1 71 | Pp1=1 72 | Pp2=2 73 | MPp=2 74 | NVStorage=10 75 | ParamSigType1=String 76 | SmplCInputCue1=o# 77 | SmplCOutputCue1=i# 78 | SmplCInputList2Cue1=an# 79 | SmplCOutputList2Cue1=ai# 80 | SPlus2CompiledName=S2_KL_Passcode_Driver_v1_0 81 | SymJam=NonExclusive 82 | FileName=KL Passcode Driver v1.0.ush 83 | SIMPLPlusModuleEncoding=0 84 | [END] 85 | [BEGIN] 86 | ObjTp=Dp 87 | H=1 88 | Tp=1 89 | NoS=False 90 | [END] 91 | [BEGIN] 92 | ObjTp=Dp 93 | H=2 94 | Tp=1 95 | HD=False 96 | NoS=False 97 | VVS=0 98 | [END] 99 | -------------------------------------------------------------------------------- /Standard UI/KL Passcode Driver v1.0.usp: -------------------------------------------------------------------------------- 1 | // KL Passcode Driver 2 | // v1.0 3 | // 4 | // Dealer: 5 | // System: 6 | // Programmer: Kiel Lofstrand 7 | // Comments: 8 | 9 | // --- Compiler Directives ---------------------------------------------------- 10 | 11 | #DEFAULT_VOLATILE 12 | #ENABLE_STACK_CHECKING 13 | #ENABLE_TRACE 14 | 15 | #DEFINE_CONSTANT MAX_PASSCODE_LEN 10 16 | 17 | // --- Libraries -------------------------------------------------------------- 18 | 19 | // #USER_SIMPLSHARP_LIBRARY "" 20 | 21 | // --- Inputs ----------------------------------------------------------------- 22 | 23 | DIGITAL_INPUT Set_Passcode; 24 | DIGITAL_INPUT Key_Clear; 25 | DIGITAL_INPUT Key_Enter; 26 | STRING_INPUT Admin_Passcode_In[MAX_PASSCODE_LEN]; 27 | 28 | DIGITAL_INPUT Key_Pad[10]; 29 | 30 | // --- Outputs ---------------------------------------------------------------- 31 | 32 | DIGITAL_OUTPUT Passcode_Correct; 33 | DIGITAL_OUTPUT Passcode_Wrong; 34 | DIGITAL_OUTPUT Passcode_Saved; 35 | STRING_OUTPUT Passcode_Entry; 36 | STRING_OUTPUT Passcode_Masked; 37 | 38 | // --- Parameters ------------------------------------------------------------- 39 | 40 | // INTEGER_PARAMETER 41 | // SIGNED_INTEGER_PARAMETER 42 | // LONG_INTEGER_PARAMETER 43 | // SIGNED_LONG_INTEGER_PARAMETER 44 | STRING_PARAMETER Backdoor_Passcode[MAX_PASSCODE_LEN]; 45 | 46 | // --- Sockets ---------------------------------------------------------------- 47 | 48 | // --- Structures ------------------------------------------------------------- 49 | 50 | // --- Global Variables ------------------------------------------------------- 51 | 52 | STRING Passcode[MAX_PASSCODE_LEN]; 53 | 54 | // --- Functions -------------------------------------------------------------- 55 | 56 | STRING_FUNCTION Mask(STRING text) 57 | { 58 | STRING temp[MAX_PASSCODE_LEN]; 59 | INTEGER i; 60 | 61 | temp = ""; 62 | 63 | For (i = 1 To Len(text)) 64 | temp = temp + "*"; 65 | 66 | Return(temp); 67 | } 68 | 69 | // --- Events ----------------------------------------------------------------- 70 | 71 | PUSH Set_Passcode 72 | { 73 | Passcode = Admin_Passcode_In; 74 | Passcode_Entry = Passcode; 75 | Passcode_Masked = Mask(Passcode); 76 | } 77 | 78 | RELEASE Set_Passcode 79 | { 80 | Passcode = ""; 81 | Passcode_Entry = Passcode; 82 | Passcode_Masked = Passcode; 83 | } 84 | 85 | PUSH Key_Pad 86 | { 87 | INTEGER i; 88 | 89 | If (Len(Passcode) < MAX_PASSCODE_LEN) 90 | { 91 | i = GetLastModifiedArrayIndex(); 92 | 93 | If (i = 10) 94 | i = 0; 95 | 96 | Passcode = Passcode + ItoA(i); 97 | Passcode_Entry = Passcode; 98 | Passcode_Masked = Mask(Passcode); 99 | } 100 | } 101 | 102 | PUSH Key_Clear 103 | { 104 | Passcode = ""; 105 | Passcode_Entry = Passcode; 106 | Passcode_Masked = Passcode; 107 | } 108 | 109 | PUSH Key_Enter 110 | { 111 | If (Set_Passcode) 112 | { 113 | Pulse(10, Passcode_Saved); 114 | } 115 | Else 116 | { 117 | If ((Passcode = Admin_Passcode_In) || 118 | (Passcode = Backdoor_Passcode)) 119 | { 120 | Pulse(10, Passcode_Correct); 121 | } 122 | Else 123 | { 124 | Pulse(10, Passcode_Wrong); 125 | } 126 | 127 | Passcode = ""; 128 | Passcode_Entry = Passcode; 129 | Passcode_Masked = Passcode; 130 | } 131 | } 132 | 133 | // --- Main ------------------------------------------------------------------- 134 | 135 | FUNCTION Main() 136 | { 137 | WaitForInitializationComplete(); 138 | } 139 | -------------------------------------------------------------------------------- /Standard UI/KL Passcode Entry v1.0.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.11.06 8 | IntStrVrs=2 9 | MinSMWVrs=2.02.05 10 | MinTIOVrs=0 11 | SavedBy=SMW4.11.06 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Passcode Entry v1.0.umc 19 | DbVr=88.06.004.00 20 | DvcDbVr=115.00.002.00 21 | Incl=362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,767,830,883,1032,1062,1079,1134,1157,1199,1220,1222,1299,1348,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,3708,3902,3912,3918,3925,1766,2574,2651,2817,2886,2938,2947,3181,3197,3233,3710,3735,3736,3816,3888,4176,4308,4476,4591,4769,5360,5388,5420,5455,5497,5699,5813,5919,6150,6161, 22 | McNm=KL Passcode Entry v1.0 23 | SmVr=1103 24 | DvVr=1103 25 | TpN1=1 26 | TpN2=2 27 | TpN3=3 28 | TpN4=4 29 | TpN5=5 30 | APg=1 31 | FltTmp=1 32 | FpCS=0 33 | EnType=0 34 | ZeroOnIoOk=0 35 | SGMethod=1 36 | ] 37 | [ 38 | ObjTp=Bk 39 | Nm1=\ 40 | Sx1=0 41 | Sy1=0 42 | Mx1=0 43 | ] 44 | [ 45 | ObjTp=Bw 46 | H=1 47 | Lx=641 48 | Ly=0 49 | Rx=1282 50 | Ry=913 51 | Xm=-1 52 | Ym=-1 53 | SH=7 54 | Z=100 55 | Ht=1 56 | Hi=14 57 | ] 58 | [ 59 | ObjTp=Bw 60 | H=1 61 | Lx=0 62 | Ly=0 63 | Rx=641 64 | Ry=913 65 | Xm=-1 66 | Ym=-1 67 | SH=6 68 | Z=100 69 | Ht=1 70 | Hi=3 71 | ] 72 | [ 73 | ObjTp=Symbol 74 | Name=KL Passcode Entry v1.0 75 | Code=1 76 | SmplCName=KL Passcode Entry v1.0.umc 77 | Smpl-C=3 78 | CompilerTimePrecision=Single_Or_Double_Precision 79 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854,6114,302,305, 80 | SMWRev=2.02.05 81 | TIORev=0 82 | S+=1 83 | HelpID=1055 84 | APg=1 85 | StdCmd=0 86 | FltTmp=1 87 | FpCS=0 88 | NumFixedInputs=14 89 | NumFixedOutputs=14 90 | NumFixedParams=1 91 | MinVariableInputs=0 92 | MinVariableInputsList2=0 93 | MinVariableInputsList3=0 94 | MinVariableOutputs=0 95 | MinVariableOutputsList2=0 96 | MinVariableOutputsList3=0 97 | MinVariableParams=0 98 | SymbolTree=32 99 | InputSigType1=Digital 100 | InputSigType2=Digital|Analog|Serial|String 101 | InputSigType3=Digital 102 | OutputSigType1=Serial 103 | OutputSigType2=Digital|Analog|Serial|String 104 | OutputSigType3=Serial 105 | OutputSigType4=Serial 106 | OutputSigType5=Digital 107 | OutputSigType6=Digital 108 | OutputSigType7=Digital 109 | OutputSigType8=Digital|Analog|Serial|String 110 | ParamSigType1=String 111 | InputCue1=Set_Admin_Passcode 112 | InputCue2=[~UNUSED~] 113 | InputCue3=Key_1 114 | InputCue4=Key_2 115 | InputCue5=Key_3 116 | InputCue6=Key_4 117 | InputCue7=Key_5 118 | InputCue8=Key_6 119 | InputCue9=Key_7 120 | InputCue10=Key_8 121 | InputCue11=Key_9 122 | InputCue12=Key_0 123 | InputCue13=Key_Clear 124 | InputCue14=Key_Enter 125 | OutputCue1=Admin_Passcode$ 126 | OutputCue2=[~UNUSED~] 127 | OutputCue3=Passcode_Entry$ 128 | OutputCue4=Passcode_Mask$ 129 | OutputCue5=Passcode_Correct_Pulse 130 | OutputCue6=Passcode_Wrong_Pulse 131 | OutputCue7=Passcode_Saved_Pulse 132 | OutputCue8=[~UNUSED~] 133 | OutputCue9=[~UNUSED~] 134 | OutputCue10=[~UNUSED~] 135 | OutputCue11=[~UNUSED~] 136 | OutputCue12=[~UNUSED~] 137 | OutputCue13=[~UNUSED~] 138 | OutputCue14=[~UNUSED~] 139 | ParamCue1=Backdoor Passcode 140 | FileName=KL Passcode Entry v1.0.umc 141 | EncodingType=0 142 | ZeroOnIoOk=0 143 | ] 144 | [ 145 | ObjTp=Sm 146 | H=1 147 | SmC=157 148 | Nm=Central Control Modules 149 | ObjVer=1 150 | CF=2 151 | n1I=1 152 | n1O=1 153 | mI=1 154 | mO=1 155 | tO=1 156 | mP=1 157 | P1= 158 | ] 159 | [ 160 | ObjTp=Sm 161 | H=2 162 | SmC=157 163 | Nm=Network Modules 164 | ObjVer=1 165 | CF=2 166 | n1I=1 167 | n1O=1 168 | mI=1 169 | mO=1 170 | tO=1 171 | mP=1 172 | P1= 173 | ] 174 | [ 175 | ObjTp=Sm 176 | H=3 177 | SmC=157 178 | Nm=Ethernet 179 | ObjVer=1 180 | CF=2 181 | n1I=1 182 | n1O=1 183 | mI=1 184 | mO=1 185 | tO=1 186 | mP=1 187 | P1= 188 | ] 189 | [ 190 | ObjTp=Sm 191 | H=4 192 | SmC=156 193 | Nm=Logic 194 | ObjVer=1 195 | CF=2 196 | mC=4 197 | C1=7 198 | C2=8 199 | C3=10 200 | C4=9 201 | ] 202 | [ 203 | ObjTp=Sm 204 | H=5 205 | SmC=157 206 | Nm=DefineArguments 207 | ObjVer=1 208 | CF=2 209 | n1I=1 210 | n1O=1 211 | mC=1 212 | C1=6 213 | mI=1 214 | mO=1 215 | tO=1 216 | mP=1 217 | P1= 218 | ] 219 | [ 220 | ObjTp=Sm 221 | H=6 222 | SmC=55 223 | Nm=Argument Definition 224 | ObjVer=1 225 | PrH=5 226 | CF=2 227 | n1I=14 228 | n1O=14 229 | mI=14 230 | I1=6 231 | I2=5 232 | I3=7 233 | I4=8 234 | I5=9 235 | I6=10 236 | I7=11 237 | I8=12 238 | I9=13 239 | I10=14 240 | I11=15 241 | I12=17 242 | I13=16 243 | I14=18 244 | mO=14 245 | tO=14 246 | O1=23 247 | O2=5 248 | O3=19 249 | O4=4 250 | O5=22 251 | O6=20 252 | O7=21 253 | O8=5 254 | O9=5 255 | O10=5 256 | O11=5 257 | O12=5 258 | O13=5 259 | O14=5 260 | mP=1 261 | P1=Backdoor Passcode 262 | ] 263 | [ 264 | ObjTp=Sm 265 | H=7 266 | SmC=103 267 | Nm=KL Passcode Driver v1.0.usp 268 | ObjVer=1 269 | PrH=4 270 | CF=2 271 | n1I=13 272 | n2I=1 273 | n1O=3 274 | mI=14 275 | I1=6 276 | I2=16 277 | I3=18 278 | I4=7 279 | I5=8 280 | I6=9 281 | I7=10 282 | I8=11 283 | I9=12 284 | I10=13 285 | I11=14 286 | I12=15 287 | I13=17 288 | I14=23 289 | mO=5 290 | tO=5 291 | O1=22 292 | O2=20 293 | O3=21 294 | O4=19 295 | O5=4 296 | mP=2 297 | P1= 298 | P2=#Backdoor Passcode 299 | ] 300 | [ 301 | ObjTp=Sm 302 | H=8 303 | SmC=858 304 | Nm=Make String Permanent 305 | ObjVer=1 306 | PrH=4 307 | CF=2 308 | n1I=1 309 | mI=1 310 | I1=19 311 | mP=1 312 | P1=10d 313 | ] 314 | [ 315 | ObjTp=Sm 316 | H=9 317 | SmC=46 318 | Nm=Analog Buffer 319 | ObjVer=1 320 | PrH=4 321 | CF=2 322 | n1I=2 323 | n1O=1 324 | mI=2 325 | I1=24 326 | I2=19 327 | mO=1 328 | tO=1 329 | O1=23 330 | ] 331 | [ 332 | ObjTp=Sm 333 | H=10 334 | SmC=409 335 | Nm=Logic Wave Pulse 336 | ObjVer=1 337 | PrH=4 338 | CF=2 339 | n1I=3 340 | n1O=2 341 | mI=3 342 | I1=21 343 | mO=2 344 | tO=2 345 | O1=24 346 | mP=1 347 | P1=1d 348 | ] 349 | [ 350 | ObjTp=Sg 351 | H=4 352 | Nm=Passcode_Mask$ 353 | SgTp=4 354 | ] 355 | [ 356 | ObjTp=Sg 357 | H=5 358 | Nm=[~UNUSED~] 359 | SgTp=31 360 | ] 361 | [ 362 | ObjTp=Sg 363 | H=6 364 | Nm=Set_Admin_Passcode 365 | ] 366 | [ 367 | ObjTp=Sg 368 | H=7 369 | Nm=Key_1 370 | ] 371 | [ 372 | ObjTp=Sg 373 | H=8 374 | Nm=Key_2 375 | ] 376 | [ 377 | ObjTp=Sg 378 | H=9 379 | Nm=Key_3 380 | ] 381 | [ 382 | ObjTp=Sg 383 | H=10 384 | Nm=Key_4 385 | ] 386 | [ 387 | ObjTp=Sg 388 | H=11 389 | Nm=Key_5 390 | ] 391 | [ 392 | ObjTp=Sg 393 | H=12 394 | Nm=Key_6 395 | ] 396 | [ 397 | ObjTp=Sg 398 | H=13 399 | Nm=Key_7 400 | ] 401 | [ 402 | ObjTp=Sg 403 | H=14 404 | Nm=Key_8 405 | ] 406 | [ 407 | ObjTp=Sg 408 | H=15 409 | Nm=Key_9 410 | ] 411 | [ 412 | ObjTp=Sg 413 | H=16 414 | Nm=Key_Clear 415 | ] 416 | [ 417 | ObjTp=Sg 418 | H=17 419 | Nm=Key_0 420 | ] 421 | [ 422 | ObjTp=Sg 423 | H=18 424 | Nm=Key_Enter 425 | ] 426 | [ 427 | ObjTp=Sg 428 | H=19 429 | Nm=Passcode_Entry$ 430 | SgTp=4 431 | ] 432 | [ 433 | ObjTp=Sg 434 | H=20 435 | Nm=Passcode_Wrong_Pulse 436 | ] 437 | [ 438 | ObjTp=Sg 439 | H=21 440 | Nm=Passcode_Saved_Pulse 441 | ] 442 | [ 443 | ObjTp=Sg 444 | H=22 445 | Nm=Passcode_Correct_Pulse 446 | ] 447 | [ 448 | ObjTp=Sg 449 | H=23 450 | Nm=Admin_Passcode$ 451 | SgTp=4 452 | ] 453 | [ 454 | ObjTp=Sg 455 | H=24 456 | Nm=Passcode_Saved_lwp 457 | ] 458 | -------------------------------------------------------------------------------- /Standard UI/KL Positive Negative Offset v1.0.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854,6114, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=KL Positive Negative Offset v1.0 21 | SmplCName=KL Positive Negative Offset v1.0.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | OutputList2Cue1=Positive_Offset 26 | OutputList2SigType1=Analog 27 | OutputList2Cue2=Negative_Offset 28 | OutputList2SigType2=Analog 29 | ParamCue1=[Reference Name] 30 | ParamCue2=Offset 31 | ParamSigType2=Constant 32 | MinVariableInputs=0 33 | MaxVariableInputs=0 34 | MinVariableInputsList2=0 35 | MaxVariableInputsList2=0 36 | MinVariableOutputs=0 37 | MaxVariableOutputs=0 38 | MinVariableOutputsList2=2 39 | MaxVariableOutputsList2=2 40 | MinVariableParams=1 41 | MaxVariableParams=1 42 | Expand=expand_separately 43 | Expand2=expand_separately 44 | ProgramTree=Logic 45 | SymbolTree=32 46 | Hint= 47 | PdfHelp= 48 | HelpID= 49 | Render=4 50 | Smpl-C=16 51 | CompilerCode=-48 52 | CompilerParamCode=27 53 | CompilerParamCode5=14 54 | NumFixedParams=1 55 | Pp1=1 56 | Pp2=2 57 | MPp=2 58 | NVStorage=10 59 | ParamSigType1=String 60 | SmplCInputCue1=o# 61 | SmplCOutputCue1=i# 62 | SmplCInputList2Cue1=an# 63 | SmplCOutputList2Cue1=ai# 64 | SPlus2CompiledName=S2_KL_Positive_Negative_Offset_v1_0 65 | SymJam=NonExclusive 66 | FileName=KL Positive Negative Offset v1.0.ush 67 | SIMPLPlusModuleEncoding=0 68 | [END] 69 | [BEGIN] 70 | ObjTp=Dp 71 | H=1 72 | Tp=1 73 | NoS=False 74 | [END] 75 | [BEGIN] 76 | ObjTp=Dp 77 | H=2 78 | Tp=1 79 | HD=False 80 | Sgn=0 81 | Lng=False 82 | NF=63 83 | NoS=True 84 | DNF=1 85 | VVS=0 86 | [END] 87 | -------------------------------------------------------------------------------- /Standard UI/KL Positive Negative Offset v1.0.usp: -------------------------------------------------------------------------------- 1 | // New Module 2 | // v1.0 3 | // 4 | // Dealer: 5 | // System: 6 | // Programmer: Kiel Lofstrand 7 | // Comments: 8 | 9 | // --- Compiler Directives ---------------------------------------------------- 10 | 11 | #DEFAULT_VOLATILE 12 | #ENABLE_STACK_CHECKING 13 | #ENABLE_TRACE 14 | 15 | // --- Libraries -------------------------------------------------------------- 16 | 17 | // --- Inputs ----------------------------------------------------------------- 18 | 19 | // --- Outputs ---------------------------------------------------------------- 20 | 21 | ANALOG_OUTPUT Positive_Offset; 22 | ANALOG_OUTPUT Negative_Offset; 23 | 24 | // --- Parameters ------------------------------------------------------------- 25 | 26 | INTEGER_PARAMETER Offset; 27 | 28 | // --- Sockets ---------------------------------------------------------------- 29 | 30 | // --- Structures ------------------------------------------------------------- 31 | 32 | // --- Global Variables ------------------------------------------------------- 33 | 34 | // --- Functions -------------------------------------------------------------- 35 | 36 | // --- Events ----------------------------------------------------------------- 37 | 38 | // --- Main ------------------------------------------------------------------- 39 | 40 | FUNCTION Main() 41 | { 42 | WaitForInitializationComplete(); 43 | 44 | Positive_Offset = Abs(Offset); 45 | Negative_Offset = 0 - Abs(Offset); 46 | } 47 | -------------------------------------------------------------------------------- /Standard UI/KL Simple Text Config Driver v1.1.usp: -------------------------------------------------------------------------------- 1 | // KL Simple Text Config Driver 2 | // v1.1 - Added Error_Code output 3 | // v1.0 - Initial version 4 | // 5 | // Dealer: 6 | // System: 7 | // Programmer: Kiel Lofstrand 8 | // Comments: 9 | 10 | // --- Compiler Directives ---------------------------------------------------- 11 | 12 | #DEFAULT_VOLATILE 13 | #ENABLE_STACK_CHECKING 14 | #ENABLE_TRACE 15 | 16 | #DEFINE_CONSTANT MAX_FILE_NAME_LEN 255 17 | #DEFINE_CONSTANT MAX_READ_BUF_LEN 2048 18 | #DEFINE_CONSTANT MAX_TEXT_BUF_LEN 4096 19 | #DEFINE_CONSTANT MAX_LINE_LEN 270 20 | #DEFINE_CONSTANT MAX_STRLEN 255 21 | #DEFINE_CONSTANT MAX_NUM_JOINS 100 22 | 23 | // --- Libraries -------------------------------------------------------------- 24 | 25 | // #USER_SIMPLSHARP_LIBRARY "" 26 | 27 | // --- Inputs ----------------------------------------------------------------- 28 | 29 | DIGITAL_INPUT Store; 30 | DIGITAL_INPUT Recall; 31 | 32 | DIGITAL_INPUT Digital[MAX_NUM_JOINS]; 33 | ANALOG_INPUT Analog[MAX_NUM_JOINS]; 34 | STRING_INPUT Serial[MAX_NUM_JOINS][MAX_STRLEN]; 35 | 36 | // --- Outputs ---------------------------------------------------------------- 37 | 38 | DIGITAL_OUTPUT Initialized_Fb; 39 | DIGITAL_OUTPUT Error_Fb; 40 | ANALOG_OUTPUT Error_Code; 41 | 42 | DIGITAL_OUTPUT Digital_Fb[MAX_NUM_JOINS]; 43 | ANALOG_OUTPUT Analog_Fb[MAX_NUM_JOINS]; 44 | STRING_OUTPUT Serial_Fb[MAX_NUM_JOINS]; 45 | 46 | // --- Parameters ------------------------------------------------------------- 47 | 48 | STRING_PARAMETER FileName[MAX_FILE_NAME_LEN]; 49 | 50 | // --- Sockets ---------------------------------------------------------------- 51 | 52 | // TCP_CLIENT 53 | // TCP_SERVER 54 | // UDP_SOCKET 55 | 56 | // --- Structures ------------------------------------------------------------- 57 | 58 | // STRUCTURE MyStruct 59 | // { 60 | // }; 61 | 62 | // --- Global Variables ------------------------------------------------------- 63 | 64 | STRING ReadBuf[MAX_READ_BUF_LEN]; 65 | STRING TextBuf[MAX_TEXT_BUF_LEN]; 66 | 67 | // --- Functions -------------------------------------------------------------- 68 | 69 | FUNCTION Parse(STRING text) 70 | { 71 | INTEGER index; 72 | INTEGER equals; 73 | STRING temp[16]; 74 | STRING sig[1]; 75 | 76 | equals = Find("=", text); 77 | 78 | If (equals > 0) 79 | { 80 | temp = Mid(text, 1, equals); 81 | sig = Left(temp, 1); 82 | index = AtoI(temp); 83 | 84 | If (sig = "D") 85 | Digital_Fb[index] = AtoI(Mid(text, equals + 1, Len(text) - equals)); 86 | Else If (sig = "A") 87 | Analog_Fb[index] = AtoI(Mid(text, equals + 1, Len(text) - equals)); 88 | Else If (sig = "S") 89 | Serial_Fb[index] = Mid(text, equals + 1, Len(text) - equals); 90 | } 91 | } 92 | 93 | // --- Events ----------------------------------------------------------------- 94 | 95 | THREADSAFE PUSH Store 96 | { 97 | SIGNED_INTEGER fileHandle; 98 | SIGNED_INTEGER error; 99 | INTEGER index; 100 | STRING text[MAX_LINE_LEN]; 101 | 102 | Error_Fb = 0; 103 | 104 | If (StartFileOperations() = 0) 105 | { 106 | fileHandle = FileOpen(FileName, _O_TEXT | _O_WRONLY | _O_TRUNC); 107 | 108 | If (fileHandle < 0) 109 | fileHandle = FileOpen(FileName, _O_TEXT | _O_WRONLY | _O_CREAT); 110 | 111 | If (fileHandle >= 0) 112 | { 113 | For (index = 1 To MAX_NUM_JOINS) 114 | { 115 | If (IsSignalDefined(Digital[index])) 116 | { 117 | MakeString(text, "D%d=%d\n", index, Digital[index]); 118 | 119 | error = FileWrite(fileHandle, text, Len(text)); 120 | 121 | If (error < 0) 122 | { 123 | Error_Fb = 1; 124 | Error_Code = error; 125 | } 126 | } 127 | } 128 | 129 | For (index = 1 To MAX_NUM_JOINS) 130 | { 131 | If (IsSignalDefined(Analog[index])) 132 | { 133 | MakeString(text, "A%d=%u\n", index, Analog[index]); 134 | 135 | error = FileWrite(fileHandle, text, Len(text)); 136 | 137 | If (error < 0) 138 | { 139 | Error_Fb = 1; 140 | Error_Code = error; 141 | } 142 | } 143 | } 144 | 145 | For (index = 1 To MAX_NUM_JOINS) 146 | { 147 | If (IsSignalDefined(Analog[index])) 148 | { 149 | MakeString(text, "S%d=%s\n", index, Serial[index]); 150 | 151 | error = FileWrite(fileHandle, text, Len(text)); 152 | 153 | If (error < 0) 154 | { 155 | Error_Fb = 1; 156 | Error_Code = error; 157 | } 158 | } 159 | } 160 | 161 | FileClose(fileHandle); 162 | } 163 | Else 164 | { 165 | Error_Fb = 1; 166 | Error_Code = fileHandle; 167 | } 168 | 169 | EndFileOperations(); 170 | } 171 | Else 172 | { 173 | Error_Fb = 1; 174 | } 175 | } 176 | 177 | THREADSAFE PUSH Recall 178 | { 179 | SIGNED_INTEGER fileHandle; 180 | SIGNED_INTEGER error; 181 | STRING text[MAX_LINE_LEN]; 182 | 183 | ReadBuf = ""; 184 | TextBuf = ""; 185 | Initialized_Fb = 0; 186 | Error_Fb = 0; 187 | 188 | If (StartFileOperations() = 0) 189 | { 190 | fileHandle = FileOpen(FileName, _O_TEXT | _O_RDONLY); 191 | 192 | If (fileHandle >= 0) 193 | { 194 | While (FileEOF(fileHandle) = 0) 195 | { 196 | error = FileRead(fileHandle, ReadBuf, MAX_READ_BUF_LEN); 197 | 198 | If (error < 0) 199 | { 200 | Error_Fb = 1; 201 | Error_Code = error; 202 | Break; 203 | } 204 | 205 | TextBuf = TextBuf + ReadBuf; 206 | 207 | While (Find("\n", TextBuf) > 0) 208 | { 209 | text = Remove("\n", TextBuf); 210 | Parse(Left(text, Len(text) - 2)); 211 | } 212 | } 213 | 214 | While (Find("\n", TextBuf) > 0) 215 | { 216 | text = Remove("\n", TextBuf); 217 | Parse(Left(text, Len(text) - 2)); 218 | } 219 | 220 | If (FileEOF(fileHandle) = 1) 221 | { 222 | Initialized_Fb = 1; 223 | Error_Code = 0; 224 | } 225 | 226 | FileClose(fileHandle); 227 | } 228 | Else 229 | { 230 | Error_Fb = 1; 231 | Error_Code = fileHandle; 232 | } 233 | 234 | EndFileOperations(); 235 | } 236 | Else 237 | { 238 | Error_Fb = 1; 239 | } 240 | } 241 | 242 | // --- Main ------------------------------------------------------------------- 243 | 244 | FUNCTION Main() 245 | { 246 | WaitForInitializationComplete(); 247 | } 248 | -------------------------------------------------------------------------------- /Standard UI/KL Switcher Feedback v1.3.ush: -------------------------------------------------------------------------------- 1 | [BEGIN] 2 | Version=1 3 | [END] 4 | [BEGIN] 5 | ObjTp=FSgntr 6 | Sgntr=UserSPlus 7 | RelVrs=1 8 | IntStrVrs=1 9 | SPlusVrs=4.04.01 10 | CrossCplrVrs=1.3 11 | [END] 12 | [BEGIN] 13 | ObjTp=Hd 14 | [END] 15 | [BEGIN] 16 | ObjTp=Symbol 17 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,718,756,854,6114, 18 | Exclusions_CDS=5 19 | Inclusions_CDS=6 20 | Name=KL Switcher Feedback v1.3 21 | SmplCName=KL Switcher Feedback v1.3.usp 22 | Code=1 23 | SysRev5=4.006 24 | SMWRev=3.00.00 25 | InputCue1=Enable 26 | InputSigType1=Digital 27 | InputCue2=Refresh 28 | InputSigType2=Digital 29 | OutputCue1=Single_Source_Fb 30 | OutputSigType1=Digital 31 | OutputCue2=Multiple_Source_Fb 32 | OutputSigType2=Digital 33 | InputList2Cue1=Presentation_Destination[1] 34 | InputList2SigType1=Analog 35 | InputList2Cue2=Presentation_Destination[2] 36 | InputList2SigType2=Analog 37 | InputList2Cue3=Presentation_Destination[3] 38 | InputList2SigType3=Analog 39 | InputList2Cue4=Presentation_Destination[4] 40 | InputList2SigType4=Analog 41 | InputList2Cue5=Presentation_Destination[5] 42 | InputList2SigType5=Analog 43 | InputList2Cue6=Presentation_Destination[6] 44 | InputList2SigType6=Analog 45 | InputList2Cue7=Presentation_Destination[7] 46 | InputList2SigType7=Analog 47 | InputList2Cue8=Presentation_Destination[8] 48 | InputList2SigType8=Analog 49 | InputList2Cue9=Video_Out_Fb[1] 50 | InputList2SigType9=Analog 51 | InputList2Cue10=Video_Out_Fb[2] 52 | InputList2SigType10=Analog 53 | InputList2Cue11=Video_Out_Fb[3] 54 | InputList2SigType11=Analog 55 | InputList2Cue12=Video_Out_Fb[4] 56 | InputList2SigType12=Analog 57 | InputList2Cue13=Video_Out_Fb[5] 58 | InputList2SigType13=Analog 59 | InputList2Cue14=Video_Out_Fb[6] 60 | InputList2SigType14=Analog 61 | InputList2Cue15=Video_Out_Fb[7] 62 | InputList2SigType15=Analog 63 | InputList2Cue16=Video_Out_Fb[8] 64 | InputList2SigType16=Analog 65 | InputList2Cue17=Video_Out_Fb[9] 66 | InputList2SigType17=Analog 67 | InputList2Cue18=Video_Out_Fb[10] 68 | InputList2SigType18=Analog 69 | InputList2Cue19=Video_Out_Fb[11] 70 | InputList2SigType19=Analog 71 | InputList2Cue20=Video_Out_Fb[12] 72 | InputList2SigType20=Analog 73 | InputList2Cue21=Video_Out_Fb[13] 74 | InputList2SigType21=Analog 75 | InputList2Cue22=Video_Out_Fb[14] 76 | InputList2SigType22=Analog 77 | InputList2Cue23=Video_Out_Fb[15] 78 | InputList2SigType23=Analog 79 | InputList2Cue24=Video_Out_Fb[16] 80 | InputList2SigType24=Analog 81 | InputList2Cue25=Codec_Input[1] 82 | InputList2SigType25=Analog 83 | InputList2Cue26=Codec_Input[2] 84 | InputList2SigType26=Analog 85 | InputList2Cue27=Source_Name[#] 86 | InputList2SigType27=Serial 87 | OutputList2Cue1=Source_Name_Out 88 | OutputList2SigType1=Serial 89 | ParamCue1=[Reference Name] 90 | ParamCue2=NoSourceName 91 | ParamSigType2=String 92 | MinVariableInputs=2 93 | MaxVariableInputs=2 94 | MinVariableInputsList2=27 95 | MaxVariableInputsList2=42 96 | MinVariableOutputs=2 97 | MaxVariableOutputs=2 98 | MinVariableOutputsList2=1 99 | MaxVariableOutputsList2=1 100 | MinVariableParams=1 101 | MaxVariableParams=1 102 | Expand=expand_separately 103 | Expand2=expand_separately 104 | ProgramTree=Logic 105 | SymbolTree=32 106 | Hint= 107 | PdfHelp= 108 | HelpID= 109 | Render=4 110 | Smpl-C=16 111 | CompilerCode=-48 112 | CompilerParamCode=27 113 | CompilerParamCode5=14 114 | NumFixedParams=1 115 | Pp1=1 116 | Pp2=2 117 | MPp=2 118 | NVStorage=10 119 | ParamSigType1=String 120 | SmplCInputCue1=o# 121 | SmplCOutputCue1=i# 122 | SmplCInputList2Cue1=an# 123 | SmplCOutputList2Cue1=ai# 124 | SPlus2CompiledName=S2_KL_Switcher_Feedback_v1_3 125 | SymJam=NonExclusive 126 | FileName=KL Switcher Feedback v1.3.ush 127 | SIMPLPlusModuleEncoding=0 128 | [END] 129 | [BEGIN] 130 | ObjTp=Dp 131 | H=1 132 | Tp=1 133 | NoS=False 134 | [END] 135 | [BEGIN] 136 | ObjTp=Dp 137 | H=2 138 | Tp=1 139 | HD=False 140 | NoS=False 141 | VVS=0 142 | [END] 143 | -------------------------------------------------------------------------------- /Standard UI/KL Switcher Feedback v1.3.usp: -------------------------------------------------------------------------------- 1 | // New Module 2 | // v1.0 3 | // 4 | // Dealer: 5 | // System: 6 | // Programmer: Kiel Lofstrand 7 | // Comments: 8 | 9 | // --- Compiler Directives ---------------------------------------------------- 10 | 11 | #DEFAULT_VOLATILE 12 | #ENABLE_STACK_CHECKING 13 | #ENABLE_TRACE 14 | 15 | #DEFINE_CONSTANT MAX_STRLEN 50 16 | #DEFINE_CONSTANT MAX_DESTS 8 17 | #DEFINE_CONSTANT MAX_CODEC_INS 2 18 | #DEFINE_CONSTANT MAX_DM_INS 16 19 | #DEFINE_CONSTANT MAX_DM_OUTS 16 20 | 21 | // --- Libraries -------------------------------------------------------------- 22 | 23 | // #USER_SIMPLSHARP_LIBRARY "" 24 | 25 | // --- Inputs ----------------------------------------------------------------- 26 | 27 | DIGITAL_INPUT Enable; 28 | DIGITAL_INPUT Refresh; 29 | ANALOG_INPUT Presentation_Destination[MAX_DESTS]; 30 | ANALOG_INPUT Video_Out_Fb[MAX_DM_OUTS]; 31 | ANALOG_INPUT Codec_Input[MAX_CODEC_INS]; 32 | STRING_INPUT Source_Name[MAX_DM_INS][MAX_STRLEN]; 33 | 34 | // --- Outputs ---------------------------------------------------------------- 35 | 36 | DIGITAL_OUTPUT Single_Source_Fb; 37 | DIGITAL_OUTPUT Multiple_Source_Fb; 38 | STRING_OUTPUT Source_Name_Out; 39 | 40 | // --- Parameters ------------------------------------------------------------- 41 | 42 | STRING_PARAMETER NoSourceName[MAX_STRLEN]; 43 | 44 | // --- Sockets ---------------------------------------------------------------- 45 | 46 | // --- Structures ------------------------------------------------------------- 47 | 48 | // --- Global Variables ------------------------------------------------------- 49 | 50 | INTEGER PresentationSource; 51 | 52 | // --- Functions -------------------------------------------------------------- 53 | 54 | FUNCTION SingleOrMultipleSources () 55 | { 56 | INTEGER i; 57 | INTEGER j; 58 | INTEGER k; 59 | 60 | PresentationSource = 0; 61 | 62 | For (i = 1 To MAX_DESTS) 63 | { 64 | If (Presentation_Destination[i] > 0) 65 | { 66 | k = 0; 67 | 68 | // Codec inputs do not count as presentation sources 69 | For (j = 1 To MAX_CODEC_INS) 70 | { 71 | If (Codec_Input[j] > 0) 72 | { 73 | If (Presentation_Destination[i] = Codec_Input[j]) 74 | { 75 | k = Codec_Input[j]; 76 | Break; 77 | } 78 | } 79 | } 80 | 81 | // Skip if we found a codec input 82 | If (k = 0) 83 | { 84 | If (PresentationSource = 0) 85 | { 86 | PresentationSource = Video_Out_Fb[Presentation_Destination[i]]; 87 | } 88 | Else 89 | { 90 | If (Video_Out_Fb[Presentation_Destination[i]] <> PresentationSource) 91 | { 92 | Single_Source_Fb = 0; 93 | Multiple_Source_Fb = 1; 94 | Source_Name_Out = "Multiple"; 95 | Return; 96 | } 97 | } 98 | } 99 | } 100 | } 101 | 102 | Multiple_Source_Fb = 0; 103 | 104 | If (PresentationSource = 0) 105 | { 106 | Single_Source_Fb = 0; 107 | Source_Name_Out = NoSourceName; 108 | } 109 | Else 110 | { 111 | Single_Source_Fb = 1; 112 | Source_Name_Out = Source_Name[PresentationSource]; 113 | } 114 | } 115 | 116 | // --- Events ----------------------------------------------------------------- 117 | 118 | PUSH Enable 119 | { 120 | SingleOrMultipleSources(); 121 | } 122 | 123 | PUSH Refresh 124 | { 125 | If (Enable) 126 | { 127 | SingleOrMultipleSources(); 128 | } 129 | } 130 | 131 | // --- Main ------------------------------------------------------------------- 132 | 133 | FUNCTION Main() 134 | { 135 | WaitForInitializationComplete(); 136 | } 137 | -------------------------------------------------------------------------------- /Timed Pop Up/KL Timed Pop Up v1.0.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.17.03 8 | IntStrVrs=2 9 | MinSMWVrs=4.14.0 10 | MinTIOVrs=0 11 | SavedBy=SMW4.1700.03 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Timed Pop Up v1.0.umc 19 | DbVr=207.00.001.00 20 | DvcDbVr=200.100.004.00 21 | PgmNm=Kiel Lofstrand 22 | DlrNm=IMT 23 | Incl=1766,2574,2651,2817,2886,2938,2947,3181,3197,3233,3710,3735,3736,3816,3888,4176,4308,4476,4591,4769,5360,5388,5420,5455,5497,5699,5813,5919,6150,6161,6089,6101,6114,6136,6343,6356,6357,6423, 24 | McNm=KL Timed Pop Up v1.0 25 | SmVr=1149 26 | DvVr=1149 27 | TpN1=1 28 | TpN2=2 29 | TpN3=3 30 | TpN4=4 31 | TpN5=5 32 | APg=1 33 | FltTmp=1 34 | FpCS=0 35 | EnType=0 36 | ZeroOnIoOk=0 37 | SGMethod=1 38 | ] 39 | [ 40 | ObjTp=Bk 41 | Nm1=\ 42 | Sx1=0 43 | Sy1=0 44 | Mx1=0 45 | ] 46 | [ 47 | ObjTp=Bw 48 | H=1 49 | Lx=14 50 | Ly=12 51 | Rx=479 52 | Ry=229 53 | Xm=-1 54 | Ym=-1 55 | SH=7 56 | Z=100 57 | Ht=1 58 | Hi=3 59 | ] 60 | [ 61 | ObjTp=Bw 62 | H=1 63 | Lx=13 64 | Ly=638 65 | Rx=607 66 | Ry=838 67 | Xm=-1 68 | Ym=-1 69 | SH=12 70 | Z=100 71 | Ht=1 72 | Hi=2 73 | ] 74 | [ 75 | ObjTp=Bw 76 | H=1 77 | Lx=460 78 | Ly=232 79 | Rx=915 80 | Ry=432 81 | Xm=-1 82 | Ym=-1 83 | SH=10 84 | Z=100 85 | Ht=4 86 | Hi=2 87 | ] 88 | [ 89 | ObjTp=Bw 90 | H=1 91 | Lx=576 92 | Ly=431 93 | Rx=1018 94 | Ry=631 95 | Xm=-1 96 | Ym=-1 97 | SH=11 98 | Z=100 99 | Ht=4 100 | Hi=1 101 | ] 102 | [ 103 | ObjTp=Bw 104 | H=1 105 | Lx=14 106 | Ly=438 107 | Rx=570 108 | Ry=634 109 | Xm=-1 110 | Ym=-1 111 | SH=9 112 | Z=100 113 | Ht=4 114 | Hi=1 115 | ] 116 | [ 117 | ObjTp=Bw 118 | H=1 119 | Lx=15 120 | Ly=233 121 | Rx=458 122 | Ry=433 123 | Xm=-1 124 | Ym=-1 125 | SH=8 126 | Z=100 127 | Ht=1 128 | Hi=1 129 | ] 130 | [ 131 | ObjTp=Symbol 132 | Name=KL Timed Pop Up v1.0 133 | Code=1 134 | SmplCName=KL Timed Pop Up v1.0.umc 135 | Smpl-C=3 136 | CompilerTimePrecision=Single_Or_Double_Precision 137 | SMWRev=4.14.0 138 | TIORev=0 139 | HelpID=1055 140 | APg=1 141 | StdCmd=0 142 | FltTmp=1 143 | FpCS=0 144 | NumFixedInputs=3 145 | NumFixedOutputs=3 146 | NumFixedParams=1 147 | MinVariableInputs=0 148 | MinVariableInputsList2=0 149 | MinVariableInputsList3=0 150 | MinVariableOutputs=0 151 | MinVariableOutputsList2=0 152 | MinVariableOutputsList3=0 153 | MinVariableParams=0 154 | SymbolTree=32 155 | OutputSigType1=Digital 156 | OutputSigType2=Digital 157 | OutputSigType3=Digital|Analog|Serial|String 158 | ParamSigType1=Time|Constant 159 | InputCue1=Set 160 | InputCue2=Reset 161 | InputCue3=Toggle 162 | OutputCue1=Out 163 | OutputCue2=Out* 164 | OutputCue3=[~UNUSED~] 165 | ParamCue1=Duration 166 | MPp=1 167 | Pp1=1 168 | FileName=KL Timed Pop Up v1.0.umc 169 | EncodingType=0 170 | ZeroOnIoOk=0 171 | ] 172 | [ 173 | ObjTp=Sm 174 | H=1 175 | SmC=157 176 | Nm=Central Control Modules 177 | ObjVer=1 178 | CF=2 179 | n1I=1 180 | n1O=1 181 | mI=1 182 | mO=1 183 | tO=1 184 | mP=1 185 | P1= 186 | ] 187 | [ 188 | ObjTp=Sm 189 | H=2 190 | SmC=157 191 | Nm=Network Modules 192 | ObjVer=1 193 | CF=2 194 | n1I=1 195 | n1O=1 196 | mI=1 197 | mO=1 198 | tO=1 199 | mP=1 200 | P1= 201 | ] 202 | [ 203 | ObjTp=Sm 204 | H=3 205 | SmC=157 206 | Nm=Ethernet 207 | ObjVer=1 208 | CF=2 209 | n1I=1 210 | n1O=1 211 | mI=1 212 | mO=1 213 | tO=1 214 | mP=1 215 | P1= 216 | ] 217 | [ 218 | ObjTp=Sm 219 | H=4 220 | SmC=156 221 | Nm=Logic 222 | ObjVer=1 223 | CF=2 224 | mC=6 225 | C1=7 226 | C2=8 227 | C3=10 228 | C4=9 229 | C5=11 230 | C6=12 231 | ] 232 | [ 233 | ObjTp=Sm 234 | H=5 235 | SmC=157 236 | Nm=DefineArguments 237 | ObjVer=1 238 | CF=2 239 | n1I=1 240 | n1O=1 241 | mC=1 242 | C1=6 243 | mI=1 244 | mO=1 245 | tO=1 246 | mP=1 247 | P1= 248 | ] 249 | [ 250 | ObjTp=Sm 251 | H=6 252 | SmC=55 253 | Nm=Argument Definition 254 | ObjVer=1 255 | PrH=5 256 | CF=2 257 | n1I=3 258 | n1O=3 259 | mI=3 260 | I1=5 261 | I2=6 262 | I3=4 263 | mO=3 264 | tO=3 265 | O1=7 266 | O2=8 267 | O3=9 268 | mP=1 269 | P1=Duration 270 | MPp=1 271 | Pp1=1 272 | ] 273 | [ 274 | ObjTp=Sm 275 | H=7 276 | SmC=13 277 | Nm=Toggle 278 | ObjVer=1 279 | PrH=4 280 | CF=2 281 | n1I=3 282 | n1O=2 283 | mI=3 284 | I1=5 285 | I2=15 286 | I3=4 287 | mO=2 288 | tO=2 289 | O1=7 290 | O2=8 291 | ] 292 | [ 293 | ObjTp=Sm 294 | H=8 295 | SmC=205 296 | Nm=NOT 297 | ObjVer=1 298 | PrH=4 299 | CF=2 300 | n1I=1 301 | n1O=1 302 | mI=1 303 | I1=5 304 | mO=1 305 | tO=1 306 | O1=10 307 | ] 308 | [ 309 | ObjTp=Sm 310 | H=9 311 | SmC=9 312 | Nm=One Shot 313 | ObjVer=1 314 | PrH=4 315 | CF=2 316 | n1I=3 317 | n1O=2 318 | mI=3 319 | I1=11 320 | I3=5 321 | mO=2 322 | tO=2 323 | O1=12 324 | mP=1 325 | P1=#Duration 326 | ] 327 | [ 328 | ObjTp=Sm 329 | H=10 330 | SmC=20 331 | Nm=Buffer 332 | ObjVer=1 333 | PrH=4 334 | CF=2 335 | n1I=3 336 | n1O=2 337 | mI=3 338 | I1=10 339 | I2=7 340 | I3=14 341 | mO=2 342 | tO=2 343 | O1=11 344 | O2=16 345 | ] 346 | [ 347 | ObjTp=Sm 348 | H=11 349 | SmC=9 350 | Nm=One Shot 351 | ObjVer=1 352 | PrH=4 353 | CF=2 354 | n1I=3 355 | n1O=2 356 | mI=3 357 | I1=13 358 | I2=12 359 | mO=2 360 | tO=2 361 | O1=14 362 | mP=1 363 | P1=.1s 364 | ] 365 | [ 366 | ObjTp=Sm 367 | H=12 368 | SmC=3 369 | Nm=OR 370 | ObjVer=1 371 | PrH=4 372 | CF=2 373 | n1I=2 374 | n1O=1 375 | mI=2 376 | I1=6 377 | I2=16 378 | mO=1 379 | tO=1 380 | O1=15 381 | ] 382 | [ 383 | ObjTp=Sg 384 | H=4 385 | Nm=Toggle 386 | ] 387 | [ 388 | ObjTp=Sg 389 | H=5 390 | Nm=Set 391 | ] 392 | [ 393 | ObjTp=Sg 394 | H=6 395 | Nm=Reset 396 | ] 397 | [ 398 | ObjTp=Sg 399 | H=7 400 | Nm=Out 401 | ] 402 | [ 403 | ObjTp=Sg 404 | H=8 405 | Nm=Out* 406 | ] 407 | [ 408 | ObjTp=Sg 409 | H=9 410 | Nm=[~UNUSED~] 411 | SgTp=31 412 | ] 413 | [ 414 | ObjTp=Sg 415 | H=10 416 | Nm=Set* 417 | ] 418 | [ 419 | ObjTp=Sg 420 | H=11 421 | Nm=Out_b 422 | ] 423 | [ 424 | ObjTp=Sg 425 | H=12 426 | Nm=Out_mv 427 | ] 428 | [ 429 | ObjTp=Sg 430 | H=13 431 | Nm=//__digital_reserved__ 432 | ] 433 | [ 434 | ObjTp=Sg 435 | H=14 436 | Nm=Reset_mv 437 | ] 438 | [ 439 | ObjTp=Sg 440 | H=15 441 | Nm=Reset_or 442 | ] 443 | [ 444 | ObjTp=Sg 445 | H=16 446 | Nm=Reset_b 447 | ] 448 | [ 449 | ObjTp=Dp 450 | H=1 451 | Tp=1 452 | NF=48 453 | DNF=16 454 | EncFmt=0 455 | DVLF=1 456 | Sgn=0 457 | ] 458 | -------------------------------------------------------------------------------- /Visionary PacketAV/KL Visionary PacketAV Decoder v1.0.umc: -------------------------------------------------------------------------------- 1 | [ 2 | Version=1 3 | ] 4 | [ 5 | ObjTp=FSgntr 6 | Sgntr=UserMacro 7 | RelVrs=4.1801.16 8 | IntStrVrs=2 9 | MinSMWVrs=3.00.00 10 | MinTIOVrs=0 11 | SavedBy=SMW4.1801.16 12 | ] 13 | [ 14 | ObjTp=Hd 15 | S0Nd=1 16 | S1Nd=2 17 | SLNd=3 18 | PrNm=KL Visionary PacketAV Decoder v1.0.umc 19 | DbVr=211.00.002.00 20 | DvcDbVr=200.150.002.00 21 | PgmNm=Kiel Lofstrand 22 | DlrNm=IMT 23 | SmVr=1159 24 | DvVr=1159 25 | TpN1=1 26 | TpN2=2 27 | TpN3=3 28 | TpN4=4 29 | TpN5=5 30 | APg=1 31 | FltTmp=1 32 | FpCS=0 33 | EnType=0 34 | ZeroOnIoOk=0 35 | SGMethod=1 36 | ] 37 | [ 38 | ObjTp=Bk 39 | Nm1=\ 40 | Sx1=0 41 | Sy1=0 42 | Mx1=0 43 | ] 44 | [ 45 | ObjTp=Symbol 46 | Name=KL Visionary PacketAV Decoder v1.0 47 | Code=1 48 | SmplCName=KL Visionary PacketAV Decoder v1.0.umc 49 | Smpl-C=3 50 | CompilerTimePrecision=Single_Or_Double_Precision 51 | Exclusions=1,19,20,21,88,89,167,168,179,213,214,215,216,217,225,226,248,249,266,267,310,362,378,380,405,407,408,409,478,522,537,554,586,590,611,624,718,756,767,830,841,842,854,883,955,1032,1062,1079,1128,1129,1134,1140,1157,1158,1195,1199,1220,1221,1222,1223,1299,1348,1349,1439,1472,1473,1499,1746,1803,1975,2229,2354,2514,2523,2532,2706,2707,3235,3236,3427,3454,3567,3568,3601,3602,3708,3902,3903,3912,3918,3925,3926,4206,4207, 52 | SMWRev=3.00.00 53 | TIORev=0 54 | S+=1 55 | HelpID=1055 56 | APg=1 57 | StdCmd=0 58 | FltTmp=1 59 | FpCS=0 60 | NumFixedInputs=11 61 | NumFixedOutputs=11 62 | MinVariableInputs=0 63 | MinVariableInputsList2=0 64 | MinVariableInputsList3=0 65 | MinVariableOutputs=0 66 | MinVariableOutputsList2=0 67 | MinVariableOutputsList3=0 68 | MinVariableParams=0 69 | SymbolTree=32 70 | InputSigType1=Digital 71 | InputSigType2=Digital|Analog|Serial|String 72 | InputSigType3=Serial 73 | InputSigType4=Digital|Analog|Serial|String 74 | InputSigType5=Digital|Analog|Serial|String 75 | InputSigType6=Digital|Analog|Serial|String 76 | InputSigType7=Digital|Analog|Serial|String 77 | InputSigType8=Digital|Analog|Serial|String 78 | InputSigType9=Digital|Analog|Serial|String 79 | InputSigType10=Digital|Analog|Serial|String 80 | InputSigType11=Serial 81 | OutputSigType1=Digital 82 | OutputSigType2=Digital|Analog|Serial|String 83 | OutputSigType3=Serial 84 | OutputSigType4=Digital|Analog|Serial|String 85 | OutputSigType5=Serial 86 | OutputSigType6=Serial 87 | OutputSigType7=Serial 88 | OutputSigType8=Serial 89 | OutputSigType9=Serial 90 | OutputSigType10=Digital|Analog|Serial|String 91 | OutputSigType11=Serial 92 | ParamSigType1=Time|Percent|Constant|String|FileName|HexAddress|Any 93 | InputCue1=Initialize 94 | InputCue2=[~UNUSED~] 95 | InputCue3=Stream_Host 96 | InputCue4=[~UNUSED~] 97 | InputCue5=[~UNUSED~] 98 | InputCue6=[~UNUSED~] 99 | InputCue7=[~UNUSED~] 100 | InputCue8=[~UNUSED~] 101 | InputCue9=[~UNUSED~] 102 | InputCue10=[~UNUSED~] 103 | InputCue11=From_Device 104 | OutputCue1=Initialize_Fb 105 | OutputCue2=[~UNUSED~] 106 | OutputCue3=Stream_Host_Fb 107 | OutputCue4=[~UNUSED~] 108 | OutputCue5=ID_Fb 109 | OutputCue6=Model_Fb 110 | OutputCue7=Firmware_Fb 111 | OutputCue8=MAC_Address_Fb 112 | OutputCue9=IP_Address_Fb 113 | OutputCue10=[~UNUSED~] 114 | OutputCue11=To_Device 115 | ParamCue1=p1 116 | FileName=KL Visionary PacketAV Decoder v1.0.umc 117 | EncodingType=0 118 | ZeroOnIoOk=0 119 | ] 120 | [ 121 | ObjTp=Sm 122 | H=1 123 | SmC=157 124 | Nm=Central Control Modules 125 | ObjVer=1 126 | CF=2 127 | n1I=1 128 | n1O=1 129 | mI=1 130 | mO=1 131 | tO=1 132 | mP=1 133 | P1= 134 | ] 135 | [ 136 | ObjTp=Sm 137 | H=2 138 | SmC=157 139 | Nm=Network Modules 140 | ObjVer=1 141 | CF=2 142 | n1I=1 143 | n1O=1 144 | mI=1 145 | mO=1 146 | tO=1 147 | mP=1 148 | P1= 149 | ] 150 | [ 151 | ObjTp=Sm 152 | H=3 153 | SmC=157 154 | Nm=Ethernet 155 | ObjVer=1 156 | CF=2 157 | n1I=1 158 | n1O=1 159 | mI=1 160 | mO=1 161 | tO=1 162 | mP=1 163 | P1= 164 | ] 165 | [ 166 | ObjTp=Sm 167 | H=4 168 | SmC=156 169 | Nm=Logic 170 | ObjVer=1 171 | CF=2 172 | mC=1 173 | C1=63 174 | ] 175 | [ 176 | ObjTp=Sm 177 | H=5 178 | SmC=157 179 | Nm=DefineArguments 180 | ObjVer=1 181 | CF=2 182 | n1I=1 183 | n1O=1 184 | mC=1 185 | C1=62 186 | mI=1 187 | mO=1 188 | tO=1 189 | mP=1 190 | P1= 191 | ] 192 | [ 193 | ObjTp=Sm 194 | H=62 195 | SmC=55 196 | Nm=Argument Definition 197 | ObjVer=1 198 | PrH=5 199 | CF=2 200 | n1I=11 201 | n1O=11 202 | mI=11 203 | I1=4 204 | I2=8 205 | I3=15 206 | I4=8 207 | I5=8 208 | I6=8 209 | I7=8 210 | I8=8 211 | I9=8 212 | I10=8 213 | I11=9 214 | mO=11 215 | tO=11 216 | O1=7 217 | O2=8 218 | O3=25 219 | O4=8 220 | O5=24 221 | O6=26 222 | O7=27 223 | O8=28 224 | O9=29 225 | O10=8 226 | O11=14 227 | mP=1 228 | P1= 229 | ] 230 | [ 231 | ObjTp=Sm 232 | H=63 233 | SmC=103 234 | Nm=KL Visionary PacketAV Driver v1.0.usp 235 | ObjVer=1 236 | PrH=4 237 | CF=2 238 | n1I=1 239 | n2I=2 240 | n1O=1 241 | mI=3 242 | I1=4 243 | I2=15 244 | I3=9 245 | mO=8 246 | tO=8 247 | O1=7 248 | O2=24 249 | O3=26 250 | O4=27 251 | O5=28 252 | O6=29 253 | O7=25 254 | O8=14 255 | mP=1 256 | P1= 257 | ] 258 | [ 259 | ObjTp=Sg 260 | H=4 261 | Nm=Initialize 262 | ] 263 | [ 264 | ObjTp=Sg 265 | H=7 266 | Nm=Initialize_Fb 267 | ] 268 | [ 269 | ObjTp=Sg 270 | H=8 271 | Nm=[~UNUSED~] 272 | SgTp=31 273 | ] 274 | [ 275 | ObjTp=Sg 276 | H=9 277 | Nm=From_Device 278 | SgTp=4 279 | ] 280 | [ 281 | ObjTp=Sg 282 | H=14 283 | Nm=To_Device 284 | SgTp=4 285 | ] 286 | [ 287 | ObjTp=Sg 288 | H=15 289 | Nm=Stream_Host 290 | SgTp=4 291 | ] 292 | [ 293 | ObjTp=Sg 294 | H=24 295 | Nm=ID_Fb 296 | SgTp=4 297 | ] 298 | [ 299 | ObjTp=Sg 300 | H=25 301 | Nm=Stream_Host_Fb 302 | SgTp=4 303 | ] 304 | [ 305 | ObjTp=Sg 306 | H=26 307 | Nm=Model_Fb 308 | SgTp=4 309 | ] 310 | [ 311 | ObjTp=Sg 312 | H=27 313 | Nm=Firmware_Fb 314 | SgTp=4 315 | ] 316 | [ 317 | ObjTp=Sg 318 | H=28 319 | Nm=MAC_Address_Fb 320 | SgTp=4 321 | ] 322 | [ 323 | ObjTp=Sg 324 | H=29 325 | Nm=IP_Address_Fb 326 | SgTp=4 327 | ] 328 | -------------------------------------------------------------------------------- /Visionary PacketAV/KL Visionary PacketAV Decoder v1.0_archive.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kielthecoder/crestron/07a4516273f441658767b6ab8dfa869f90da03cc/Visionary PacketAV/KL Visionary PacketAV Decoder v1.0_archive.zip -------------------------------------------------------------------------------- /Visionary PacketAV/KL Visionary PacketAV Driver v1.0.usp: -------------------------------------------------------------------------------- 1 | /* 2 | Dealer Name: IMT 3 | System Name: 4 | System Number: 5 | Programmer: Kiel Lofstrand 6 | Comments: 7 | */ 8 | 9 | // COMPILER DIRECTIVES ///////////////////////////////////////////////////////////////////// 10 | 11 | #DEFAULT_VOLATILE 12 | #ENABLE_STACK_CHECKING 13 | #ENABLE_TRACE 14 | // #DIGITAL_EXPAND 15 | // #ANALOG_SERIAL_EXPAND 16 | 17 | #DEFINE_CONSTANT BUFFER_SIZE 1500 18 | #DEFINE_CONSTANT KEY_LEN 50 19 | #DEFINE_CONSTANT HOST_LEN 50 20 | #DEFINE_CONSTANT TEXT_LEN 500 21 | 22 | /* 23 | #HELP_BEGIN 24 | (add additional lines of help lines) 25 | #HELP_END 26 | */ 27 | 28 | // INPUTS ////////////////////////////////////////////////////////////////////////////////// 29 | 30 | DIGITAL_INPUT Initialize; 31 | DIGITAL_INPUT Audio_Mute_On, Audio_Mute_Off; 32 | 33 | STRING_INPUT Stream_Host[HOST_LEN]; 34 | 35 | BUFFER_INPUT From_Device[BUFFER_SIZE]; 36 | 37 | // OUTPUTS ///////////////////////////////////////////////////////////////////////////////// 38 | 39 | DIGITAL_OUTPUT Initialize_Fb; 40 | 41 | STRING_OUTPUT ID_Fb; 42 | STRING_OUTPUT Model_Fb; 43 | STRING_OUTPUT Firmware_Fb; 44 | STRING_OUTPUT MAC_Address_Fb; 45 | STRING_OUTPUT IP_Address_Fb; 46 | STRING_OUTPUT Stream_Host_Fb; 47 | 48 | STRING_OUTPUT To_Device; 49 | 50 | // GLOBAL VARIABLES //////////////////////////////////////////////////////////////////////// 51 | 52 | STRING gsStreamHost[HOST_LEN]; 53 | 54 | // FUNCTIONS /////////////////////////////////////////////////////////////////////////////// 55 | 56 | // EVENT HANDLERS ////////////////////////////////////////////////////////////////////////// 57 | 58 | PUSH Initialize 59 | { 60 | Initialize_Fb = 0; 61 | To_Device = "CMD=START&UNIT.ID=ALL&QUERY.STATUS=TRUE&CMD=END\x0A"; 62 | } 63 | 64 | PUSH Audio_Mute_On 65 | { 66 | To_Device = "CMD=START&UNIT.ID=ALL&AUDIO.MUTE=TRUE&CMD=END\x0A"; 67 | } 68 | 69 | PUSH Audio_Mute_Off 70 | { 71 | To_Device = "CMD=START&UNIT.ID=ALL&AUDIO.MUTE=FALSE&CMD=END\x0A"; 72 | } 73 | 74 | CHANGE Stream_Host 75 | { 76 | gsStreamHost = Stream_Host; 77 | 78 | If (gsStreamHost = "") 79 | { 80 | Stream_Host_Fb = ""; 81 | To_Device = "CMD=START&UNIT.ID=ALL&STREAM.CONNECT=FALSE&CMD=END\x0A"; 82 | } 83 | Else 84 | { 85 | To_Device = "CMD=START&UNIT.ID=ALL&STREAM.HOST=" + gsStreamHost + "&STREAM.CONNECT=TRUE&CMD=END\x0A"; 86 | } 87 | } 88 | 89 | THREADSAFE CHANGE From_Device 90 | { 91 | STRING text[TEXT_LEN]; 92 | STRING key[KEY_LEN]; 93 | STRING value[TEXT_LEN]; 94 | INTEGER n; 95 | 96 | While (1) 97 | { 98 | text = Gather("&", From_Device); 99 | n = Find("=", text); 100 | 101 | If (n > 0) 102 | { 103 | key = Mid(text, 1, n - 1); 104 | value = Mid(text, n + 1, Len(text) - n - 1); 105 | 106 | If (key = "UNIT.ID") 107 | { 108 | ID_Fb = value; 109 | } 110 | Else If (key = "UNIT.MODEL") 111 | { 112 | Model_Fb = value; 113 | } 114 | Else If (key = "UNIT.FIRMWARE") 115 | { 116 | Firmware_Fb = value; 117 | } 118 | Else If (key = "UNIT.MAC_ADDRESS") 119 | { 120 | MAC_Address_Fb = value; 121 | } 122 | Else If (key = "IP.ADDRESS") 123 | { 124 | IP_Address_Fb = value; 125 | } 126 | Else If (key = "QUERY.STATUS") 127 | { 128 | If (value = "OK") 129 | { 130 | Initialize_Fb = 1; 131 | } 132 | } 133 | Else If (key = "STREAM.CONNECT") 134 | { 135 | If (value = "queue_next_switch") 136 | { 137 | Stream_Host_Fb = gsStreamHost; 138 | } 139 | } 140 | } 141 | } 142 | } 143 | 144 | // MAIN //////////////////////////////////////////////////////////////////////////////////// 145 | 146 | FUNCTION Main() 147 | { 148 | WaitForInitializationComplete(); 149 | } 150 | -------------------------------------------------------------------------------- /Visionary PacketAV/KL Visionary PacketAV Driver v1.3.usp: -------------------------------------------------------------------------------- 1 | /* 2 | Dealer Name: IMT 3 | System Name: 4 | System Number: 5 | Programmer: Kiel Lofstrand 6 | Comments: 7 | */ 8 | 9 | // COMPILER DIRECTIVES ///////////////////////////////////////////////////////////////////// 10 | 11 | #DEFAULT_VOLATILE 12 | #ENABLE_STACK_CHECKING 13 | #ENABLE_TRACE 14 | // #DIGITAL_EXPAND 15 | // #ANALOG_SERIAL_EXPAND 16 | 17 | #DEFINE_CONSTANT BUFFER_SIZE 4000 18 | #DEFINE_CONSTANT KEY_LEN 50 19 | #DEFINE_CONSTANT HOST_LEN 50 20 | #DEFINE_CONSTANT TEXT_LEN 2000 21 | 22 | /* 23 | #HELP_BEGIN 24 | (add additional lines of help lines) 25 | #HELP_END 26 | */ 27 | 28 | // INPUTS ////////////////////////////////////////////////////////////////////////////////// 29 | 30 | DIGITAL_INPUT Initialize; 31 | DIGITAL_INPUT Query_Video; 32 | DIGITAL_INPUT Audio_Mute_On, Audio_Mute_Off; 33 | 34 | DIGITAL_INPUT Enable_Debug; 35 | 36 | STRING_INPUT Stream_Host[HOST_LEN]; 37 | 38 | BUFFER_INPUT From_Device[BUFFER_SIZE]; 39 | 40 | // OUTPUTS ///////////////////////////////////////////////////////////////////////////////// 41 | 42 | DIGITAL_OUTPUT Initialize_Fb; 43 | 44 | ANALOG_OUTPUT Video_Horizontal_Fb; 45 | ANALOG_OUTPUT Video_Vertical_Fb; 46 | ANALOG_OUTPUT Video_Refresh_Fb; 47 | 48 | STRING_OUTPUT ID_Fb; 49 | STRING_OUTPUT Model_Fb; 50 | STRING_OUTPUT Firmware_Fb; 51 | STRING_OUTPUT MAC_Address_Fb; 52 | STRING_OUTPUT IP_Address_Fb; 53 | STRING_OUTPUT Stream_Host_Fb; 54 | 55 | STRING_OUTPUT Debug_Key; 56 | STRING_OUTPUT Debug_Value; 57 | 58 | STRING_OUTPUT To_Device; 59 | 60 | // GLOBAL VARIABLES //////////////////////////////////////////////////////////////////////// 61 | 62 | STRING gsStreamHost[HOST_LEN]; 63 | STRING gsLastHost[HOST_LEN]; 64 | STRING gsLastVideoTiming[TEXT_LEN]; 65 | 66 | // FUNCTIONS /////////////////////////////////////////////////////////////////////////////// 67 | 68 | FUNCTION SendCommand (STRING cmd) 69 | { 70 | MakeString(To_Device, "CMD=START&UNIT.ID=ALL&%s&CMD=END", cmd); 71 | } 72 | 73 | // EVENT HANDLERS ////////////////////////////////////////////////////////////////////////// 74 | 75 | PUSH Initialize 76 | { 77 | Initialize_Fb = 0; 78 | // To_Device = "CMD=START&UNIT.ID=ALL&QUERY.STATUS=TRUE&CMD=END"; 79 | SendCommand("QUERY.STATUS=TRUE"); 80 | } 81 | 82 | PUSH Query_Video 83 | { 84 | SendCommand("QUERY.VIDEO_TIMING=TRUE"); 85 | } 86 | 87 | PUSH Audio_Mute_On 88 | { 89 | // To_Device = "CMD=START&UNIT.ID=ALL&AUDIO.MUTE=TRUE&CMD=END"; 90 | SendCommand("AUDIO.MUTE=TRUE"); 91 | } 92 | 93 | PUSH Audio_Mute_Off 94 | { 95 | // To_Device = "CMD=START&UNIT.ID=ALL&AUDIO.MUTE=FALSE&CMD=END"; 96 | SendCommand("AUDIO.MUTE=FALSE"); 97 | } 98 | 99 | CHANGE Stream_Host 100 | { 101 | STRING temp[100]; 102 | 103 | gsStreamHost = Stream_Host; 104 | 105 | If (gsStreamHost = "") 106 | { 107 | Stream_Host_Fb = ""; 108 | //To_Device = "CMD=START&UNIT.ID=ALL&STREAM.HOST=&STREAM.CONNECT=FALSE&CMD=END"; 109 | SendCommand("VIDEO.OUTPUT=OFF"); 110 | } 111 | Else 112 | { 113 | If (gsStreamHost != gsLastHost) 114 | { 115 | // To_Device = "CMD=START&UNIT.ID=ALL&STREAM.HOST=" + gsStreamHost + "&STREAM.CONNECT=TRUE&CMD=END"; 116 | temp = "STREAM.HOST=" + gsStreamHost + "&STREAM.CONNECT=TRUE"; 117 | SendCommand(temp); 118 | 119 | gsLastHost = gsStreamHost; 120 | } 121 | 122 | // To_Device = "CMD=START&UNIT.ID=ALL&VIDEO.OUTPUT=NORMAL&CMD=END"; 123 | SendCommand("VIDEO.OUTPUT=NORMAL"); 124 | } 125 | } 126 | 127 | THREADSAFE CHANGE From_Device 128 | { 129 | STRING text[TEXT_LEN]; 130 | STRING key[KEY_LEN]; 131 | STRING value[TEXT_LEN]; 132 | 133 | INTEGER n; 134 | INTEGER horz; 135 | INTEGER vert; 136 | INTEGER ref; 137 | 138 | // VIDEO.TIMING= will likely return multiple chunks of text so handle differently 139 | If (Find("VIDEO.TIMING=", From_Device)) 140 | { 141 | // Will be something like VIDEO.TIMING=Timing Table: Serial Number[0x006B] [3840]x[2160] [30]Hz\x0A\x09.... 142 | text = Gather("QUERY.VIDEO_TIMING=OK", From_Device); 143 | key = Remove("VIDEO.TIMING=", text); 144 | 145 | // Grab everything before "&QUERY.VIDEO_TIMING=OK" 146 | value = Left(text, Len(text) - Len("QUERY.VIDEO_TIMING=OK") - 1); 147 | 148 | // "Not Available" means no source detected 149 | If (value = "Not Available") 150 | { 151 | If (gsLastVideoTiming != "Not Available") 152 | { 153 | gsLastVideoTiming = value; 154 | //Video_Timing_Fb = gsLastVideoTiming; 155 | 156 | Video_Horizontal_Fb = 0; 157 | Video_Vertical_Fb = 0; 158 | Video_Refresh_Fb = 0; 159 | } 160 | } 161 | Else 162 | { 163 | // Looking for "Serial Number[0x006B] [3840]X[2160] [30]Hz" 164 | key = Remove("]", value); 165 | key = Remove("[", value); 166 | horz = AtoI(value); 167 | key = Remove("[", value); 168 | vert = AtoI(value); 169 | key = Remove("[", value); 170 | ref = AtoI(value); 171 | 172 | // Turn it into something more readable 173 | MakeString(value, "%dx%d@%d", horz, vert, ref); 174 | 175 | If (gsLastVideoTiming != value) 176 | { 177 | gsLastVideoTiming = value; 178 | //Video_Timing_Fb = gsLastVideoTiming; 179 | Video_Horizontal_Fb = horz; 180 | Video_Vertical_Fb = vert; 181 | Video_Refresh_Fb = ref; 182 | } 183 | } 184 | } 185 | Else 186 | { 187 | While (Find("=", From_Device)) 188 | { 189 | n = Find("=", From_Device); 190 | key = Mid(From_Device, 1, n - 1); 191 | 192 | If (Find("&", From_Device)) 193 | { 194 | text = Gather("&", From_Device); 195 | } 196 | Else 197 | { 198 | text = From_Device; 199 | ClearBuffer(From_Device); 200 | } 201 | 202 | value = Mid(text, n + 1, Len(text) - n - 1); 203 | 204 | If (Enable_Debug) 205 | { 206 | Debug_Key = key; 207 | Debug_Value = value; 208 | } 209 | 210 | If (key = "UNIT.ID") 211 | { 212 | ID_Fb = value; 213 | } 214 | Else If (key = "UNIT.MODEL") 215 | { 216 | Model_Fb = value; 217 | } 218 | Else If (key = "UNIT.FIRMWARE") 219 | { 220 | Firmware_Fb = value; 221 | } 222 | Else If (key = "UNIT.MAC_ADDRESS") 223 | { 224 | MAC_Address_Fb = value; 225 | } 226 | Else If (key = "IP.ADDRESS") 227 | { 228 | IP_Address_Fb = value; 229 | } 230 | Else If (key = "QUERY.STATUS") 231 | { 232 | If (value = "OK") 233 | { 234 | Initialize_Fb = 1; 235 | } 236 | } 237 | Else If (key = "STREAM.CONNECT") 238 | { 239 | If (value = "queue_next_switch") 240 | { 241 | Stream_Host_Fb = gsStreamHost; 242 | } 243 | } 244 | } 245 | } 246 | } 247 | 248 | // MAIN //////////////////////////////////////////////////////////////////////////////////// 249 | 250 | FUNCTION Main() 251 | { 252 | WaitForInitializationComplete(); 253 | } 254 | --------------------------------------------------------------------------------