You can now set the privilege and type for MakeSICSObj in an sct template.
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
# vim: ts=8 sts=2 sw=2 expandtab autoindent smartindent nocindent
|
# vim: ts=8 sts=2 sw=2 expandtab autoindent smartindent nocindent
|
||||||
driver protekmm = {
|
driver protekmm = {
|
||||||
protocol = protek608
|
protocol = protek608
|
||||||
|
sobj_priv_type = 'user float'
|
||||||
class = environment
|
class = environment
|
||||||
simulation_group = environment_simulation
|
simulation_group = environment_simulation
|
||||||
code mkDriver = {%%
|
code mkDriver = {%%
|
||||||
|
@ -129,7 +129,6 @@ proc MakeProtek {name sctName {scale 1.0} {offset 0.0} {interval 0.5} {cbFunc "r
|
|||||||
set soState "so_state_$name"
|
set soState "so_state_$name"
|
||||||
clientput "MakeSICSObj $sobjName SCT_OBJECT"
|
clientput "MakeSICSObj $sobjName SCT_OBJECT"
|
||||||
MakeSICSObj $soState SCT_OBJECT
|
MakeSICSObj $soState SCT_OBJECT
|
||||||
MakeSICSObj $sobjName SCT_OBJECT user float
|
|
||||||
sicslist setatt $sobjName long_name $sobjName
|
sicslist setatt $sobjName long_name $sobjName
|
||||||
|
|
||||||
hfactory /sics/$soState/state plain user text
|
hfactory /sics/$soState/state plain user text
|
||||||
|
@ -32,7 +32,7 @@ proc ::scobj::protekmm::mkDriver { sct_controller name } {
|
|||||||
set ns "[namespace current]"
|
set ns "[namespace current]"
|
||||||
set catch_status [ catch {
|
set catch_status [ catch {
|
||||||
|
|
||||||
MakeSICSObj ${name} SCT_OBJECT
|
MakeSICSObj ${name} SCT_OBJECT user float
|
||||||
|
|
||||||
sicslist setatt ${name} klass environment
|
sicslist setatt ${name} klass environment
|
||||||
sicslist setatt ${name} long_name ${name}
|
sicslist setatt ${name} long_name ${name}
|
||||||
|
@ -86,6 +86,7 @@ reserved = {
|
|||||||
'CODE' : 'CODE',
|
'CODE' : 'CODE',
|
||||||
'ADD_ARGS' : 'ADD_ARGS',
|
'ADD_ARGS' : 'ADD_ARGS',
|
||||||
'MAKE_ARGS' : 'MAKE_ARGS',
|
'MAKE_ARGS' : 'MAKE_ARGS',
|
||||||
|
'SOBJ_PRIV_TYPE' : 'SOBJ_PRIV_TYPE',
|
||||||
'PROTOCOL_ARGS' : 'PROTOCOL_ARGS',
|
'PROTOCOL_ARGS' : 'PROTOCOL_ARGS',
|
||||||
# Group keywords
|
# Group keywords
|
||||||
'GROUP' : 'GROUP',
|
'GROUP' : 'GROUP',
|
||||||
@ -314,6 +315,7 @@ def p_driver_assignment(p):
|
|||||||
| SIMULATION_GROUP EQUALS id_or_str
|
| SIMULATION_GROUP EQUALS id_or_str
|
||||||
| ADD_ARGS EQUALS text_string
|
| ADD_ARGS EQUALS text_string
|
||||||
| MAKE_ARGS EQUALS text_string
|
| MAKE_ARGS EQUALS text_string
|
||||||
|
| SOBJ_PRIV_TYPE EQUALS text_string
|
||||||
| PROTOCOL_ARGS EQUALS text_string
|
| PROTOCOL_ARGS EQUALS text_string
|
||||||
| DEBUG_THRESHOLD EQUALS value
|
| DEBUG_THRESHOLD EQUALS value
|
||||||
'''
|
'''
|
||||||
@ -1313,7 +1315,12 @@ def put_mkDriver(MyDriver):
|
|||||||
else:
|
else:
|
||||||
txt += [' set permlink_device_number [format "%02d" [incr ::scobj::permlink_device_counter]]']
|
txt += [' set permlink_device_number [format "%02d" [incr ::scobj::permlink_device_counter]]']
|
||||||
txt += ['']
|
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 += ['']
|
||||||
txt += [' sicslist setatt ${name} klass %s' % MyDriver['class']]
|
txt += [' sicslist setatt ${name} klass %s' % MyDriver['class']]
|
||||||
txt += [' sicslist setatt ${name} long_name ${name}']
|
txt += [' sicslist setatt ${name} long_name ${name}']
|
||||||
|
Reference in New Issue
Block a user