You can now set the privilege and type for MakeSICSObj in an sct template.

This commit is contained in:
Ferdi Franceschini
2014-07-11 17:14:08 +10:00
parent 867c6c8eaa
commit 47fbb1979e
4 changed files with 10 additions and 3 deletions

View File

@ -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 = {%%

View File

@ -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

View File

@ -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}

View File

@ -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}']