diff --git a/site_ansto/instrument/config/environment/protekmm.sct b/site_ansto/instrument/config/environment/protekmm.sct index e8316a8e..68924230 100644 --- a/site_ansto/instrument/config/environment/protekmm.sct +++ b/site_ansto/instrument/config/environment/protekmm.sct @@ -1,6 +1,7 @@ # vim: ts=8 sts=2 sw=2 expandtab autoindent smartindent nocindent driver protekmm = { protocol = protek608 + sobj_priv_type = 'user float' class = environment simulation_group = environment_simulation code mkDriver = {%% diff --git a/site_ansto/instrument/config/environment/sct_protek_common.tcl b/site_ansto/instrument/config/environment/sct_protek_common.tcl index 7558835d..04621577 100644 --- a/site_ansto/instrument/config/environment/sct_protek_common.tcl +++ b/site_ansto/instrument/config/environment/sct_protek_common.tcl @@ -129,7 +129,6 @@ proc MakeProtek {name sctName {scale 1.0} {offset 0.0} {interval 0.5} {cbFunc "r set soState "so_state_$name" clientput "MakeSICSObj $sobjName SCT_OBJECT" MakeSICSObj $soState SCT_OBJECT - MakeSICSObj $sobjName SCT_OBJECT user float sicslist setatt $sobjName long_name $sobjName hfactory /sics/$soState/state plain user text diff --git a/site_ansto/instrument/config/environment/sct_protekmm.tcl b/site_ansto/instrument/config/environment/sct_protekmm.tcl index f473265d..b7acc976 100644 --- a/site_ansto/instrument/config/environment/sct_protekmm.tcl +++ b/site_ansto/instrument/config/environment/sct_protekmm.tcl @@ -32,7 +32,7 @@ proc ::scobj::protekmm::mkDriver { sct_controller name } { set ns "[namespace current]" set catch_status [ catch { - MakeSICSObj ${name} SCT_OBJECT + MakeSICSObj ${name} SCT_OBJECT user float sicslist setatt ${name} klass environment sicslist setatt ${name} long_name ${name} diff --git a/site_ansto/instrument/util/gen_sct.py b/site_ansto/instrument/util/gen_sct.py index 162c5caf..87d168ca 100755 --- a/site_ansto/instrument/util/gen_sct.py +++ b/site_ansto/instrument/util/gen_sct.py @@ -86,6 +86,7 @@ reserved = { 'CODE' : 'CODE', 'ADD_ARGS' : 'ADD_ARGS', 'MAKE_ARGS' : 'MAKE_ARGS', + 'SOBJ_PRIV_TYPE' : 'SOBJ_PRIV_TYPE', 'PROTOCOL_ARGS' : 'PROTOCOL_ARGS', # Group keywords 'GROUP' : 'GROUP', @@ -314,6 +315,7 @@ def p_driver_assignment(p): | SIMULATION_GROUP EQUALS id_or_str | ADD_ARGS EQUALS text_string | MAKE_ARGS EQUALS text_string + | SOBJ_PRIV_TYPE EQUALS text_string | PROTOCOL_ARGS EQUALS text_string | DEBUG_THRESHOLD EQUALS value ''' @@ -1313,7 +1315,12 @@ def put_mkDriver(MyDriver): else: txt += [' set permlink_device_number [format "%02d" [incr ::scobj::permlink_device_counter]]'] txt += [''] - txt += [' MakeSICSObj ${name} SCT_OBJECT'] + if 'sobj_priv_type' in MyDriver: + priv_type = MyDriver['sobj_priv_type'].split() + ms_line = ' MakeSICSObj ${name} SCT_OBJECT %s %s' % (priv_type[0], priv_type[1]) + else: + ms_line = ' MakeSICSObj ${name} SCT_OBJECT' + txt += [ms_line] txt += [''] txt += [' sicslist setatt ${name} klass %s' % MyDriver['class']] txt += [' sicslist setatt ${name} long_name ${name}']