@ file : Suppress (" UNUSED _ VARIABLE ") Ċ Ċ package Ġes w . ocs . scripts . examples . par ad ox Ċ Ċ import Ġc sw . params . commands . Setup Ċ import Ġc sw . params . core . gener ics . Key Ċ import Ġc sw . params . core . gener ics . KeyType Ċ import Ġc sw . params . core . gener ics . Parameter Ċ import Ġc sw . params . core . models . Array Data Ċ import Ġc sw . params . core . models . Choice Ċ import Ġc sw . params . core . models . Matrix Data Ċ import Ġc sw . params . events . System Event Ċ import Ġc sw . params . jav ad sl . J KeyType Ċ import Ġc sw . params . jav ad sl . J Units Ċ import Ġc sw . time . core . models . UT CT ime Ċ import Ġes w . ocs . dsl . core . script Ċ import Ġes w . ocs . dsl . high level . models . W FOS Ċ import Ġes w . ocs . dsl . params .* Ċ Ċ script Ġ{ ĊĊĠĠĠ Ġval Ġgal il Assembly Ġ= ĠAssembly ( W FOS , Ġ" Filter Wheel ") ĊĊĠĠĠ Ġon Setup (" move ") Ġ{ Ġcommand Ġ-> ĊĠĠĠĠĠĠĠ Ġ// # keys ĊĠĠĠĠĠĠĠ Ġ// ĠPrimitive Ġkeys ĊĠĠĠĠĠĠĠ Ġval Ġencoder Key : ĠKey < Int > Ġ= Ġint Key (" encoder ") ĊĠĠĠĠĠĠĠ Ġval Ġflag Key : ĠKey < Boolean > Ġ= Ġboolean Key (" flag ") ĊĠĠĠĠĠĠĠ Ġval Ġevent Time Key : ĠKey < UT CT ime > Ġ= Ġut c Time Key (" event - time ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠArrays ĊĠĠĠĠĠĠĠ Ġval Ġarray Key : ĠKey < Array Data < Int >> Ġ= ĠintArray Key (" array Key ") ĊĠĠĠĠĠĠĠ Ġval Ġel ms : ĠArray < Int > Ġ= ĠarrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġvalues 1 : ĠArray Data < Int > Ġ= Ġarray Data ( el ms ) ĊĠĠĠĠĠĠĠ Ġval Ġvalues 2 : ĠArray Data < Int > Ġ= Ġarray Data ( 5 , Ġ 6 , Ġ 7 , Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġval Ġarray Param : ĠParameter < Array Data < Int >> Ġ= Ġarray Key . set ( values 1 , Ġvalues 2 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠMatrix ĊĠĠĠĠĠĠĠ Ġval Ġmatrix Key : ĠKey < Matrix Data < Int >> Ġ= Ġint Matrix Key (" matrix Key ") ĊĠĠĠĠĠĠĠ Ġval Ġarr 1 : ĠArray < Int > Ġ= ĠarrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġarr 2 : ĠArray < Int > Ġ= ĠarrayOf ( 5 , Ġ 6 , Ġ 7 , Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġval Ġel ms 1 : ĠArray < Array < Int >> Ġ= ĠarrayOf ( arr 1 , Ġarr 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġdata 1 : ĠMatrix Data < Int > Ġ= Ġmatrix Data ( el ms 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġdata 2 : ĠMatrix Data < Int > Ġ= Ġmatrix Data ( arr 1 , Ġarr 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġmatrix Parameter : ĠParameter < Matrix Data < Int >> Ġ= Ġmatrix Key . set ( data 1 , Ġdata 2 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠDomain Ġspecific Ġtypes ĊĠĠĠĠĠĠĠ Ġval Ġchoice Key : ĠKey < Choice > Ġ= Ġchoice Key (" choice ", Ġchoices Of (" A ", Ġ" B ", Ġ" C ")) ĊĠĠĠĠĠĠĠ Ġval Ġchoice Param : ĠParameter < Choice > Ġ= Ġchoice Key . set ( Choice (" A "), ĠChoice (" C ")) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwith Ġunits ĊĠĠĠĠĠĠĠ Ġval Ġtemperature In Kel vin Key : ĠKey < Int > Ġ= Ġint Key (" encoder ", ĠJ Units . kel vin ) ĊĠĠĠĠĠĠĠ Ġ// # keys ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġon Setup (" setup - wf os ") Ġ{ Ġcommand Ġ-> ĊĠĠĠĠĠĠĠ Ġ// # creating - params ĊĠĠĠĠĠĠĠ Ġ// # getting - values ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Key : ĠKey < Int > Ġ= Ġint Key (" temperature ") ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Param : ĠParameter < Int > Ġ= Ġtemperature Key . set ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġ// # getting - values ĊĊĠĠĠĠĠĠĠ Ġ// Ġwith Ġvalues Ġas ĠArray ĊĠĠĠĠĠĠĠ Ġval Ġencoder Key : ĠKey < Int > Ġ= Ġint Key (" encoder ") ĊĠĠĠĠĠĠĠ Ġval Ġencoder Values : ĠArray < Int > Ġ= ĠarrayOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġencoder Param : ĠParameter < Int > Ġ= Ġencoder Key . set All ( encoder Values ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwith Ġunits ĊĠĠĠĠĠĠĠ Ġval Ġpower Key : ĠKey < Double > Ġ= Ġdouble Key (" power ") ĊĠĠĠĠĠĠĠ Ġval Ġvalues : ĠArray < Double > Ġ= ĠarrayOf ( 1 . 1 , Ġ 2 . 2 , Ġ 3 . 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġpower Param : ĠParameter < Double > Ġ= Ġpower Key . set All ( values ). with Units ( J Units . w att ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġadding Ġa Ġparam Ġto Ġcommand Ġor Ġevent ĊĠĠĠĠĠĠĠ Ġval Ġsetup Command : ĠSetup Ġ= ĠSetup (" ES W . IR IS _ dark Night ", Ġ" move "). add ( temperature Param ) ĊĠĠĠĠĠĠĠ Ġval Ġsystem Event : ĠSystem Event Ġ= ĠSystem Event (" ES W . IR IS _ dark Night ", Ġ" movement "). add ( temperature Param ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġadding Ġmultiple Ġparams ĊĠĠĠĠĠĠĠ Ġval Ġsetup Command 2 : ĠSetup Ġ= ĠSetup (" ES W . IR IS _ dark Night ", Ġ" move "). m add ( temperature Param , Ġencoder Param ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġadding Ġparams Ġof Ġone Ġcommand Ġto Ġother ĊĠĠĠĠĠĠĠ Ġval Ġparams From Incoming Command : ĠParams Ġ= Ġcommand . params ĊĠĠĠĠĠĠĠ Ġval Ġcommand For Down stream : ĠSetup Ġ= ĠSetup (" ES W . IR IS _ dark Night ", Ġ" move "). add ( params From Incoming Command ) ĊĠĠĠĠĠĠĠ Ġ// Ġ# creating - params ĊĊĠĠĠĠĠĠĠ Ġ// # find ĊĠĠĠĠĠĠĠ Ġval Ġparams : ĠParams Ġ= Ġsetup Command . params ĊĠĠĠĠĠĠĠ Ġval Ġmaybe Param : ĠParameter < Int >? Ġ= Ġparams . k Find ( temperature Param ) ĊĠĠĠĠĠĠĠ Ġval Ġmaybe Param 2 : ĠParameter < Int >? Ġ= Ġsetup Command . k Find ( temperature Param ) ĊĠĠĠĠĠĠĠ Ġ// # find ĊĊĠĠĠĠĠĠĠ Ġ// # getting - param - by - key ĊĠĠĠĠĠĠĠ Ġ// Ġextracting Ġa Ġparam Ġfrom ĠParams Ġinstance ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Parameter : ĠParameter < Int >? Ġ= Ġsetup Command . params . k Get ( temperature Key ) ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Parameter 2 : ĠParameter < Int > Ġ= Ġ( setup Command . params )( temperature Key ) Ġ// Ġalternative ĊĊĠĠĠĠĠĠĠ Ġ// Ġextracting Ġa Ġparam Ġdirectly Ġfrom Ġthe Ġcommand Ġor Ġevent ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Parameter 3 : ĠParameter < Int >? Ġ= Ġsetup Command . k Get ( temperature Key ) ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Parameter 4 : ĠParameter < Int > Ġ= Ġsetup Command ( temperature Key ) Ġ// Ġalternative ĊĠĠĠĠĠĠĠ Ġ// # getting - param - by - key ĊĊĊĠĠĠĠĠĠĠ Ġ// # getting - param - by - key Name - key Type ĊĠĠĠĠĠĠĠ Ġval Ġkey Name Ġ= Ġ" temperature " ĊĠĠĠĠĠĠĠ Ġval Ġkey Type : ĠKey Type < Int > Ġ= ĠJ KeyType . Int Key () ĊĠĠĠĠĠĠĠ Ġval Ġparam : ĠParameter < Int >? Ġ= Ġsetup Command . params . k Get ( key Name , Ġkey Type ) ĊĠĠĠĠĠĠĠ Ġ// # getting - param - by - key Name - key Type ĊĊĊĠĠĠĠĠĠĠ Ġ// # getting - values ĊĊĠĠĠĠĠĠĠ Ġ// Ġextracting Ġvalues Ġfrom Ġparameter ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Values : ĠList < Int > Ġ= Ġtemperature Param . values ĊĊĠĠĠĠĠĠĠ Ġ// Ġextracting Ġfirst Ġvalue Ġfrom Ġparameter ĊĠĠĠĠĠĠĠ Ġval Ġfirst Value : ĠInt Ġ= Ġtemperature Param . first ĊĊĠĠĠĠĠĠĠ Ġ// Ġextracting Ġvalue Ġof Ġthe Ġparameter Ġat Ġa Ġgiven Ġindex ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Value : ĠInt ? Ġ= Ġtemperature Param . k Get ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Value 2 : ĠInt Ġ= Ġtemperature Param ( 1 ) Ġ// alternative ĊĠĠĠĠĠĠĠ Ġ// # getting - values ĊĊĠĠĠĠĠĠĠ Ġ// # remove ĊĠĠĠĠĠĠĠ Ġ// Ġremove Ġparam Ġfrom Ġparams Ġby Ġkey ĊĠĠĠĠĠĠĠ Ġval Ġupdated Params : ĠParams Ġ= Ġsetup Command . params . remove ( temperature Key ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġremove Ġparam Ġfrom Ġparams ĊĠĠĠĠĠĠĠ Ġval Ġupdated Params 2 : ĠParams Ġ= Ġsetup Command . params . remove ( temperature Parameter ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġremove Ġparam Ġfrom Ġcommand Ġby Ġkey ĊĠĠĠĠĠĠĠ Ġval Ġupdated Command : ĠSetup Ġ= Ġsetup Command . remove ( temperature Key ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġremove Ġparam Ġfrom Ġcommand ĊĠĠĠĠĠĠĠ Ġval Ġupdated Command 2 : ĠSetup Ġ= Ġsetup Command . remove ( temperature Parameter ) ĊĠĠĠĠĠĠĠ Ġ// # remove ĊĊĠĠĠĠĠĠĠ Ġ// # exists ĊĠĠĠĠĠĠĠ Ġ// Ġcheck Ġif Ġparameter Ġwith Ġspecified Ġkey Ġexists Ġin ĠParams ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Key Exists : ĠBoolean Ġ= Ġsetup Command . params . exists ( temperature Key ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġcheck Ġif Ġparameter Ġwith Ġspecified Ġkey Ġexists Ġdirectly Ġfrom Ġcommand ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Key Exists 2 : ĠBoolean Ġ= Ġsetup Command . exists ( temperature Key ) ĊĠĠĠĠĠĠĠ Ġ// # exists ĊĊĠĠĠ Ġ} Ċ }