# # Template driver for the Lakeshore 218 Temperature Monitor # vim: ft=tcl ts=8 sts=2 sw=2 expandtab autoindent smartindent nocindent # driver lakeshore_218 = { vendor = lakeshore; device = ls218; protocol = std; class = NXdetector; simulation_group = detector_simulation; make_args = '{num_chans 8}'; group = { data = false; nxsave = false; control = false; readable = 1; var krdg = { type = text; read_command = "KRDG? 0"; read_function = read_krdg; value = '"Hidden in real_data property"'; property real_data = '0,0,0,0,0,0,0,0'; } } group sensor = { priv = user; mutable = true; type = float; readable = 15; fetch_function = getTemp; var ch1 = { read_command = '0'; conditional = '${num_chans} > 0'; } var ch2 = { read_command = '1'; conditional = '${num_chans} > 1'; } var ch3 = { read_command = '2'; conditional = '${num_chans} > 2'; } var ch4 = { read_command = '3'; conditional = '${num_chans} > 3'; } var ch5 = { read_command = '4'; conditional = '${num_chans} > 4'; } var ch6 = { read_command = '5'; conditional = '${num_chans} > 5'; } var ch7 = { read_command = '6'; conditional = '${num_chans} > 6'; } var ch8 = { read_command = '7'; conditional = '${num_chans} > 7'; } } code fetch_function getTemp = {%% set temps [split "[hgetpropval ${tc_root}/krdg real_data]" ","] sct result [lindex ${temps} ${cmd_str}] set cmd "@@NOSEND@@" %%} code read_krdg = {%% sct real_data "${data}" set data "Hidden in real_data property" %%} }