Regen SCT driver

This commit is contained in:
Douglas Clowes
2014-12-03 12:12:28 +11:00
parent f28115552a
commit 06a0ebad19

View File

@ -81,21 +81,45 @@ proc ::scobj::aerolas_doppler::getFloat {tc_root nextState cmd_str} {
}
# function to request the read of a parameter on a device
proc ::scobj::aerolas_doppler::getInteger {tc_root nextState cmd_str} {
proc ::scobj::aerolas_doppler::getULong {tc_root nextState cmd_str} {
set catch_status [ catch {
debug_log ${tc_root} 1 "getInteger tc_root=${tc_root} sct=[sct] cmd=${cmd_str}"
debug_log ${tc_root} 1 "getULong tc_root=${tc_root} sct=[sct] cmd=${cmd_str}"
if { [hpropexists [sct] geterror] } {
hdelprop [sct] geterror
}
set cmd "${cmd_str}"
# getInteger hook code starts
set cmd "1:3:${cmd_str}:1:U16"
# getInteger hook code ends
# getULong hook code starts
set cmd "1:3:${cmd_str}:1:U32"
# getULong hook code ends
if { [hpropexists [sct] geterror] } {
debug_log ${tc_root} 9 "[sct] error: [sct geterror]"
error "[sct geterror]"
}
debug_log ${tc_root} 1 "getInteger sct send ${cmd}"
debug_log ${tc_root} 1 "getULong sct send ${cmd}"
if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} {
sct send "${cmd}"
}
return ${nextState}
} catch_message ]
handle_exception ${catch_status} ${catch_message}
}
# function to request the read of a parameter on a device
proc ::scobj::aerolas_doppler::getUShort {tc_root nextState cmd_str} {
set catch_status [ catch {
debug_log ${tc_root} 1 "getUShort tc_root=${tc_root} sct=[sct] cmd=${cmd_str}"
if { [hpropexists [sct] geterror] } {
hdelprop [sct] geterror
}
set cmd "${cmd_str}"
# getUShort hook code starts
set cmd "1:3:${cmd_str}:1:U16"
# getUShort hook code ends
if { [hpropexists [sct] geterror] } {
debug_log ${tc_root} 9 "[sct] error: [sct geterror]"
error "[sct geterror]"
}
debug_log ${tc_root} 1 "getUShort sct send ${cmd}"
if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} {
sct send "${cmd}"
}
@ -141,9 +165,9 @@ proc ::scobj::aerolas_doppler::rdFloat {tc_root} {
}
# function to parse the read of a parameter on a device
proc ::scobj::aerolas_doppler::rdInteger {tc_root} {
proc ::scobj::aerolas_doppler::rdULong {tc_root} {
set catch_status [ catch {
debug_log ${tc_root} 1 "rdInteger tc_root=${tc_root} sct=[sct] result=[sct result]"
debug_log ${tc_root} 1 "rdULong tc_root=${tc_root} sct=[sct] result=[sct result]"
if { [hpropexists [sct] geterror] } {
hdelprop [sct] geterror
}
@ -154,7 +178,7 @@ proc ::scobj::aerolas_doppler::rdInteger {tc_root} {
sct geterror "${data}"
error "[sct geterror]"
}
# rdInteger hook code goes here
# rdULong hook code goes here
if { ${data} != [sct oldval] } {
debug_log ${tc_root} 1 "[sct] changed to new:${data}, from old:[sct oldval]"
sct oldval ${data}
@ -166,6 +190,56 @@ proc ::scobj::aerolas_doppler::rdInteger {tc_root} {
handle_exception ${catch_status} ${catch_message}
}
# function to parse the read of a parameter on a device
proc ::scobj::aerolas_doppler::rdUShort {tc_root} {
set catch_status [ catch {
debug_log ${tc_root} 1 "rdUShort tc_root=${tc_root} sct=[sct] result=[sct result]"
if { [hpropexists [sct] geterror] } {
hdelprop [sct] geterror
}
set data [sct result]
set nextState "idle"
if {[string equal -nocase -length 7 ${data} "ASCERR:"]} {
# the protocol driver has reported an error
sct geterror "${data}"
error "[sct geterror]"
}
# rdUShort hook code goes here
if { ${data} != [sct oldval] } {
debug_log ${tc_root} 1 "[sct] changed to new:${data}, from old:[sct oldval]"
sct oldval ${data}
sct update ${data}
sct utime readtime
}
return ${nextState}
} catch_message ]
handle_exception ${catch_status} ${catch_message}
}
# function to write a parameter value on a device
proc ::scobj::aerolas_doppler::setValue {tc_root nextState cmd_str} {
set catch_status [ catch {
debug_log ${tc_root} 1 "setValue tc_root=${tc_root} sct=[sct] cmd=${cmd_str}"
if { [hpropexists [sct] geterror] } {
hdelprop [sct] geterror
}
set par [sct target]
set cmd "${cmd_str}${par}"
# setValue hook code goes here
if { [hpropexists [sct] driving] } {
if { [hpropexists [sct] writestatus] && [sct writestatus] == "start" } {
sct driving 1
}
}
debug_log ${tc_root} 1 "setValue sct send ${cmd}"
if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} {
sct send "${cmd}"
}
return ${nextState}
} catch_message ]
handle_exception ${catch_status} ${catch_message}
}
# function to write a parameter value on a device
proc ::scobj::aerolas_doppler::wrFloat {tc_root nextState cmd_str} {
set catch_status [ catch {
@ -197,17 +271,17 @@ proc ::scobj::aerolas_doppler::wrFloat {tc_root nextState cmd_str} {
}
# function to write a parameter value on a device
proc ::scobj::aerolas_doppler::wrInteger {tc_root nextState cmd_str} {
proc ::scobj::aerolas_doppler::wrULong {tc_root nextState cmd_str} {
set catch_status [ catch {
debug_log ${tc_root} 1 "wrInteger tc_root=${tc_root} sct=[sct] cmd=${cmd_str}"
debug_log ${tc_root} 1 "wrULong tc_root=${tc_root} sct=[sct] cmd=${cmd_str}"
if { [hpropexists [sct] geterror] } {
hdelprop [sct] geterror
}
set par [sct target]
set cmd "${cmd_str}${par}"
# wrInteger hook code starts
set cmd "1:16:${cmd_str}:1:U16:${par}"
# wrInteger hook code ends
# wrULong hook code starts
set cmd "1:16:${cmd_str}:1:U32:${par}"
# wrULong hook code ends
if { [hpropexists [sct] geterror] } {
debug_log ${tc_root} 9 "[sct] error: [sct geterror]"
error "[sct geterror]"
@ -217,7 +291,37 @@ proc ::scobj::aerolas_doppler::wrInteger {tc_root nextState cmd_str} {
sct driving 1
}
}
debug_log ${tc_root} 1 "wrInteger sct send ${cmd}"
debug_log ${tc_root} 1 "wrULong sct send ${cmd}"
if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} {
sct send "${cmd}"
}
return ${nextState}
} catch_message ]
handle_exception ${catch_status} ${catch_message}
}
# function to write a parameter value on a device
proc ::scobj::aerolas_doppler::wrUShort {tc_root nextState cmd_str} {
set catch_status [ catch {
debug_log ${tc_root} 1 "wrUShort tc_root=${tc_root} sct=[sct] cmd=${cmd_str}"
if { [hpropexists [sct] geterror] } {
hdelprop [sct] geterror
}
set par [sct target]
set cmd "${cmd_str}${par}"
# wrUShort hook code starts
set cmd "1:16:${cmd_str}:1:U16:${par}"
# wrUShort hook code ends
if { [hpropexists [sct] geterror] } {
debug_log ${tc_root} 9 "[sct] error: [sct geterror]"
error "[sct geterror]"
}
if { [hpropexists [sct] driving] } {
if { [hpropexists [sct] writestatus] && [sct writestatus] == "start" } {
sct driving 1
}
}
debug_log ${tc_root} 1 "wrUShort sct send ${cmd}"
if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} {
sct send "${cmd}"
}
@ -249,6 +353,9 @@ proc ::scobj::aerolas_doppler::mkDriver { sct_controller name device_class simul
hsetprop ${scobj_hpath}/amplitude data true
hsetprop ${scobj_hpath}/amplitude mutable true
hsetprop ${scobj_hpath}/amplitude nxsave true
hsetprop ${scobj_hpath}/amplitude lowerlimit 0
hsetprop ${scobj_hpath}/amplitude upperlimit 75
hsetprop ${scobj_hpath}/amplitude units mm
hsetprop ${scobj_hpath}/amplitude oldval 0.0
hsetprop ${scobj_hpath}/amplitude klass "parameter"
hsetprop ${scobj_hpath}/amplitude sdsinfo "::nexus::scobj::sdsinfo"
@ -265,9 +372,9 @@ proc ::scobj::aerolas_doppler::mkDriver { sct_controller name device_class simul
}
hfactory ${scobj_hpath}/run_cmd plain user int
hsetprop ${scobj_hpath}/run_cmd read ${ns}::getInteger ${scobj_hpath} rdInteger {1}
hsetprop ${scobj_hpath}/run_cmd rdInteger ${ns}::rdInteger ${scobj_hpath}
hsetprop ${scobj_hpath}/run_cmd write ${ns}::wrInteger ${scobj_hpath} noResponse {1}
hsetprop ${scobj_hpath}/run_cmd read ${ns}::getUShort ${scobj_hpath} rdUShort {1}
hsetprop ${scobj_hpath}/run_cmd rdUShort ${ns}::rdUShort ${scobj_hpath}
hsetprop ${scobj_hpath}/run_cmd write ${ns}::wrUShort ${scobj_hpath} noResponse {1}
hsetprop ${scobj_hpath}/run_cmd noResponse ${ns}::noResponse ${scobj_hpath}
hsetprop ${scobj_hpath}/run_cmd check ${ns}::checkrange ${scobj_hpath}
hsetprop ${scobj_hpath}/run_cmd control true
@ -300,6 +407,9 @@ proc ::scobj::aerolas_doppler::mkDriver { sct_controller name device_class simul
hsetprop ${scobj_hpath}/velocity data true
hsetprop ${scobj_hpath}/velocity mutable true
hsetprop ${scobj_hpath}/velocity nxsave true
hsetprop ${scobj_hpath}/velocity lowerlimit 0
hsetprop ${scobj_hpath}/velocity upperlimit 4700
hsetprop ${scobj_hpath}/velocity units mm/S
hsetprop ${scobj_hpath}/velocity oldval 0.0
hsetprop ${scobj_hpath}/velocity klass "parameter"
hsetprop ${scobj_hpath}/velocity sdsinfo "::nexus::scobj::sdsinfo"
@ -318,6 +428,357 @@ proc ::scobj::aerolas_doppler::mkDriver { sct_controller name device_class simul
hsetprop ${scobj_hpath} data "true"
hsetprop ${scobj_hpath} klass "@none"
hsetprop ${scobj_hpath} type "part"
hfactory ${scobj_hpath}/read_only plain spy none
hfactory ${scobj_hpath}/read_only/arc_state plain user int
hsetprop ${scobj_hpath}/read_only/arc_state read ${ns}::getUShort ${scobj_hpath} rdUShort {1017}
hsetprop ${scobj_hpath}/read_only/arc_state rdUShort ${ns}::rdUShort ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/arc_state control true
hsetprop ${scobj_hpath}/read_only/arc_state data false
hsetprop ${scobj_hpath}/read_only/arc_state mutable false
hsetprop ${scobj_hpath}/read_only/arc_state nxsave false
hsetprop ${scobj_hpath}/read_only/arc_state oldval 0
hsetprop ${scobj_hpath}/read_only/arc_state sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/arc_state type "part"
hsetprop ${scobj_hpath}/read_only/arc_state nxalias "${name}_read_only_arc_state"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/arc_state 1
hsetprop ${scobj_hpath}/read_only/arc_state simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/arc_state simulated true
}
hfactory ${scobj_hpath}/read_only/braking_distance plain user float
hsetprop ${scobj_hpath}/read_only/braking_distance read ${ns}::getFloat ${scobj_hpath} rdFloat {1022}
hsetprop ${scobj_hpath}/read_only/braking_distance rdFloat ${ns}::rdFloat ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/braking_distance control true
hsetprop ${scobj_hpath}/read_only/braking_distance data false
hsetprop ${scobj_hpath}/read_only/braking_distance mutable false
hsetprop ${scobj_hpath}/read_only/braking_distance nxsave false
hsetprop ${scobj_hpath}/read_only/braking_distance oldval 0.0
hsetprop ${scobj_hpath}/read_only/braking_distance sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/braking_distance type "part"
hsetprop ${scobj_hpath}/read_only/braking_distance nxalias "${name}_read_only_braking_distance"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/braking_distance 1
hsetprop ${scobj_hpath}/read_only/braking_distance simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/braking_distance simulated true
}
hfactory ${scobj_hpath}/read_only/calc_error_code plain user int
hsetprop ${scobj_hpath}/read_only/calc_error_code read ${ns}::getULong ${scobj_hpath} rdULong {1020}
hsetprop ${scobj_hpath}/read_only/calc_error_code rdULong ${ns}::rdULong ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/calc_error_code control true
hsetprop ${scobj_hpath}/read_only/calc_error_code data false
hsetprop ${scobj_hpath}/read_only/calc_error_code mutable false
hsetprop ${scobj_hpath}/read_only/calc_error_code nxsave false
hsetprop ${scobj_hpath}/read_only/calc_error_code oldval 0
hsetprop ${scobj_hpath}/read_only/calc_error_code sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/calc_error_code type "part"
hsetprop ${scobj_hpath}/read_only/calc_error_code nxalias "${name}_read_only_calc_error_code"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/calc_error_code 1
hsetprop ${scobj_hpath}/read_only/calc_error_code simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/calc_error_code simulated true
}
hfactory ${scobj_hpath}/read_only/continuous_acceleration plain user float
hsetprop ${scobj_hpath}/read_only/continuous_acceleration read ${ns}::getFloat ${scobj_hpath} rdFloat {1026}
hsetprop ${scobj_hpath}/read_only/continuous_acceleration rdFloat ${ns}::rdFloat ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/continuous_acceleration control true
hsetprop ${scobj_hpath}/read_only/continuous_acceleration data false
hsetprop ${scobj_hpath}/read_only/continuous_acceleration mutable false
hsetprop ${scobj_hpath}/read_only/continuous_acceleration nxsave false
hsetprop ${scobj_hpath}/read_only/continuous_acceleration oldval 0.0
hsetprop ${scobj_hpath}/read_only/continuous_acceleration sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/continuous_acceleration type "part"
hsetprop ${scobj_hpath}/read_only/continuous_acceleration nxalias "${name}_read_only_continuous_acceleration"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/continuous_acceleration 1
hsetprop ${scobj_hpath}/read_only/continuous_acceleration simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/continuous_acceleration simulated true
}
hfactory ${scobj_hpath}/read_only/maximum_acceleration plain user float
hsetprop ${scobj_hpath}/read_only/maximum_acceleration read ${ns}::getFloat ${scobj_hpath} rdFloat {1028}
hsetprop ${scobj_hpath}/read_only/maximum_acceleration rdFloat ${ns}::rdFloat ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/maximum_acceleration control true
hsetprop ${scobj_hpath}/read_only/maximum_acceleration data false
hsetprop ${scobj_hpath}/read_only/maximum_acceleration mutable false
hsetprop ${scobj_hpath}/read_only/maximum_acceleration nxsave false
hsetprop ${scobj_hpath}/read_only/maximum_acceleration oldval 0.0
hsetprop ${scobj_hpath}/read_only/maximum_acceleration sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/maximum_acceleration type "part"
hsetprop ${scobj_hpath}/read_only/maximum_acceleration nxalias "${name}_read_only_maximum_acceleration"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/maximum_acceleration 1
hsetprop ${scobj_hpath}/read_only/maximum_acceleration simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/maximum_acceleration simulated true
}
hfactory ${scobj_hpath}/read_only/move_abs_counter plain user int
hsetprop ${scobj_hpath}/read_only/move_abs_counter read ${ns}::getULong ${scobj_hpath} rdULong {1006}
hsetprop ${scobj_hpath}/read_only/move_abs_counter rdULong ${ns}::rdULong ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/move_abs_counter control true
hsetprop ${scobj_hpath}/read_only/move_abs_counter data false
hsetprop ${scobj_hpath}/read_only/move_abs_counter mutable false
hsetprop ${scobj_hpath}/read_only/move_abs_counter nxsave false
hsetprop ${scobj_hpath}/read_only/move_abs_counter oldval 0
hsetprop ${scobj_hpath}/read_only/move_abs_counter sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/move_abs_counter type "part"
hsetprop ${scobj_hpath}/read_only/move_abs_counter nxalias "${name}_read_only_move_abs_counter"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/move_abs_counter 1
hsetprop ${scobj_hpath}/read_only/move_abs_counter simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/move_abs_counter simulated true
}
hfactory ${scobj_hpath}/read_only/move_amplitude_max plain user float
hsetprop ${scobj_hpath}/read_only/move_amplitude_max read ${ns}::getFloat ${scobj_hpath} rdFloat {1010}
hsetprop ${scobj_hpath}/read_only/move_amplitude_max rdFloat ${ns}::rdFloat ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/move_amplitude_max control true
hsetprop ${scobj_hpath}/read_only/move_amplitude_max data false
hsetprop ${scobj_hpath}/read_only/move_amplitude_max mutable false
hsetprop ${scobj_hpath}/read_only/move_amplitude_max nxsave false
hsetprop ${scobj_hpath}/read_only/move_amplitude_max oldval 0.0
hsetprop ${scobj_hpath}/read_only/move_amplitude_max sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/move_amplitude_max type "part"
hsetprop ${scobj_hpath}/read_only/move_amplitude_max nxalias "${name}_read_only_move_amplitude_max"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/move_amplitude_max 1
hsetprop ${scobj_hpath}/read_only/move_amplitude_max simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/move_amplitude_max simulated true
}
hfactory ${scobj_hpath}/read_only/move_amplitude_min plain user float
hsetprop ${scobj_hpath}/read_only/move_amplitude_min read ${ns}::getFloat ${scobj_hpath} rdFloat {1008}
hsetprop ${scobj_hpath}/read_only/move_amplitude_min rdFloat ${ns}::rdFloat ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/move_amplitude_min control true
hsetprop ${scobj_hpath}/read_only/move_amplitude_min data false
hsetprop ${scobj_hpath}/read_only/move_amplitude_min mutable false
hsetprop ${scobj_hpath}/read_only/move_amplitude_min nxsave false
hsetprop ${scobj_hpath}/read_only/move_amplitude_min oldval 0.0
hsetprop ${scobj_hpath}/read_only/move_amplitude_min sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/move_amplitude_min type "part"
hsetprop ${scobj_hpath}/read_only/move_amplitude_min nxalias "${name}_read_only_move_amplitude_min"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/move_amplitude_min 1
hsetprop ${scobj_hpath}/read_only/move_amplitude_min simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/move_amplitude_min simulated true
}
hfactory ${scobj_hpath}/read_only/move_error_code plain user int
hsetprop ${scobj_hpath}/read_only/move_error_code read ${ns}::getULong ${scobj_hpath} rdULong {1004}
hsetprop ${scobj_hpath}/read_only/move_error_code rdULong ${ns}::rdULong ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/move_error_code control true
hsetprop ${scobj_hpath}/read_only/move_error_code data false
hsetprop ${scobj_hpath}/read_only/move_error_code mutable false
hsetprop ${scobj_hpath}/read_only/move_error_code nxsave false
hsetprop ${scobj_hpath}/read_only/move_error_code oldval 0
hsetprop ${scobj_hpath}/read_only/move_error_code sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/move_error_code type "part"
hsetprop ${scobj_hpath}/read_only/move_error_code nxalias "${name}_read_only_move_error_code"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/move_error_code 1
hsetprop ${scobj_hpath}/read_only/move_error_code simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/move_error_code simulated true
}
hfactory ${scobj_hpath}/read_only/move_velocity_max plain user float
hsetprop ${scobj_hpath}/read_only/move_velocity_max read ${ns}::getFloat ${scobj_hpath} rdFloat {1014}
hsetprop ${scobj_hpath}/read_only/move_velocity_max rdFloat ${ns}::rdFloat ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/move_velocity_max control true
hsetprop ${scobj_hpath}/read_only/move_velocity_max data false
hsetprop ${scobj_hpath}/read_only/move_velocity_max mutable false
hsetprop ${scobj_hpath}/read_only/move_velocity_max nxsave false
hsetprop ${scobj_hpath}/read_only/move_velocity_max oldval 0.0
hsetprop ${scobj_hpath}/read_only/move_velocity_max sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/move_velocity_max type "part"
hsetprop ${scobj_hpath}/read_only/move_velocity_max nxalias "${name}_read_only_move_velocity_max"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/move_velocity_max 1
hsetprop ${scobj_hpath}/read_only/move_velocity_max simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/move_velocity_max simulated true
}
hfactory ${scobj_hpath}/read_only/move_velocity_min plain user float
hsetprop ${scobj_hpath}/read_only/move_velocity_min read ${ns}::getFloat ${scobj_hpath} rdFloat {1012}
hsetprop ${scobj_hpath}/read_only/move_velocity_min rdFloat ${ns}::rdFloat ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/move_velocity_min control true
hsetprop ${scobj_hpath}/read_only/move_velocity_min data false
hsetprop ${scobj_hpath}/read_only/move_velocity_min mutable false
hsetprop ${scobj_hpath}/read_only/move_velocity_min nxsave false
hsetprop ${scobj_hpath}/read_only/move_velocity_min oldval 0.0
hsetprop ${scobj_hpath}/read_only/move_velocity_min sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/move_velocity_min type "part"
hsetprop ${scobj_hpath}/read_only/move_velocity_min nxalias "${name}_read_only_move_velocity_min"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/move_velocity_min 1
hsetprop ${scobj_hpath}/read_only/move_velocity_min simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/move_velocity_min simulated true
}
hfactory ${scobj_hpath}/read_only/run_state plain user int
hsetprop ${scobj_hpath}/read_only/run_state read ${ns}::getUShort ${scobj_hpath} rdUShort {1001}
hsetprop ${scobj_hpath}/read_only/run_state rdUShort ${ns}::rdUShort ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/run_state control true
hsetprop ${scobj_hpath}/read_only/run_state data false
hsetprop ${scobj_hpath}/read_only/run_state mutable false
hsetprop ${scobj_hpath}/read_only/run_state nxsave false
hsetprop ${scobj_hpath}/read_only/run_state oldval 0
hsetprop ${scobj_hpath}/read_only/run_state sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/run_state type "part"
hsetprop ${scobj_hpath}/read_only/run_state nxalias "${name}_read_only_run_state"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/run_state 1
hsetprop ${scobj_hpath}/read_only/run_state simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/run_state simulated true
}
hfactory ${scobj_hpath}/read_only/velocity_ratio plain user float
hsetprop ${scobj_hpath}/read_only/velocity_ratio read ${ns}::getFloat ${scobj_hpath} rdFloat {1024}
hsetprop ${scobj_hpath}/read_only/velocity_ratio rdFloat ${ns}::rdFloat ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/velocity_ratio control true
hsetprop ${scobj_hpath}/read_only/velocity_ratio data false
hsetprop ${scobj_hpath}/read_only/velocity_ratio mutable false
hsetprop ${scobj_hpath}/read_only/velocity_ratio nxsave false
hsetprop ${scobj_hpath}/read_only/velocity_ratio oldval 0.0
hsetprop ${scobj_hpath}/read_only/velocity_ratio sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/velocity_ratio type "part"
hsetprop ${scobj_hpath}/read_only/velocity_ratio nxalias "${name}_read_only_velocity_ratio"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/velocity_ratio 1
hsetprop ${scobj_hpath}/read_only/velocity_ratio simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/velocity_ratio simulated true
}
hfactory ${scobj_hpath}/read_only/version_number plain user int
hsetprop ${scobj_hpath}/read_only/version_number read ${ns}::getUShort ${scobj_hpath} rdUShort {1019}
hsetprop ${scobj_hpath}/read_only/version_number rdUShort ${ns}::rdUShort ${scobj_hpath}
hsetprop ${scobj_hpath}/read_only/version_number control true
hsetprop ${scobj_hpath}/read_only/version_number data false
hsetprop ${scobj_hpath}/read_only/version_number mutable false
hsetprop ${scobj_hpath}/read_only/version_number nxsave false
hsetprop ${scobj_hpath}/read_only/version_number oldval 0
hsetprop ${scobj_hpath}/read_only/version_number sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_only/version_number type "part"
hsetprop ${scobj_hpath}/read_only/version_number nxalias "${name}_read_only_version_number"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_only/version_number 1
hsetprop ${scobj_hpath}/read_only/version_number simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_only/version_number simulated true
}
hsetprop ${scobj_hpath}/read_only data "false"
hsetprop ${scobj_hpath}/read_only klass "@none"
hsetprop ${scobj_hpath}/read_only type "part"
hfactory ${scobj_hpath}/read_write plain spy none
hfactory ${scobj_hpath}/read_write/move_profile plain user int
hsetprop ${scobj_hpath}/read_write/move_profile read ${ns}::getUShort ${scobj_hpath} rdUShort {7}
hsetprop ${scobj_hpath}/read_write/move_profile rdUShort ${ns}::rdUShort ${scobj_hpath}
hsetprop ${scobj_hpath}/read_write/move_profile control true
hsetprop ${scobj_hpath}/read_write/move_profile data false
hsetprop ${scobj_hpath}/read_write/move_profile mutable false
hsetprop ${scobj_hpath}/read_write/move_profile nxsave false
hsetprop ${scobj_hpath}/read_write/move_profile values 0,1
hsetprop ${scobj_hpath}/read_write/move_profile oldval 0
hsetprop ${scobj_hpath}/read_write/move_profile sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_write/move_profile type "part"
hsetprop ${scobj_hpath}/read_write/move_profile nxalias "${name}_read_write_move_profile"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_write/move_profile 1
hsetprop ${scobj_hpath}/read_write/move_profile simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_write/move_profile simulated true
}
hfactory ${scobj_hpath}/read_write/te_ok_cycles plain user int
hsetprop ${scobj_hpath}/read_write/te_ok_cycles read ${ns}::getULong ${scobj_hpath} rdULong {8}
hsetprop ${scobj_hpath}/read_write/te_ok_cycles rdULong ${ns}::rdULong ${scobj_hpath}
hsetprop ${scobj_hpath}/read_write/te_ok_cycles control true
hsetprop ${scobj_hpath}/read_write/te_ok_cycles data false
hsetprop ${scobj_hpath}/read_write/te_ok_cycles mutable false
hsetprop ${scobj_hpath}/read_write/te_ok_cycles nxsave false
hsetprop ${scobj_hpath}/read_write/te_ok_cycles oldval 0
hsetprop ${scobj_hpath}/read_write/te_ok_cycles sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_write/te_ok_cycles type "part"
hsetprop ${scobj_hpath}/read_write/te_ok_cycles nxalias "${name}_read_write_te_ok_cycles"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_write/te_ok_cycles 1
hsetprop ${scobj_hpath}/read_write/te_ok_cycles simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_write/te_ok_cycles simulated true
}
hfactory ${scobj_hpath}/read_write/te_ok_time plain user int
hsetprop ${scobj_hpath}/read_write/te_ok_time read ${ns}::getULong ${scobj_hpath} rdULong {10}
hsetprop ${scobj_hpath}/read_write/te_ok_time rdULong ${ns}::rdULong ${scobj_hpath}
hsetprop ${scobj_hpath}/read_write/te_ok_time control true
hsetprop ${scobj_hpath}/read_write/te_ok_time data false
hsetprop ${scobj_hpath}/read_write/te_ok_time mutable false
hsetprop ${scobj_hpath}/read_write/te_ok_time nxsave false
hsetprop ${scobj_hpath}/read_write/te_ok_time oldval 0
hsetprop ${scobj_hpath}/read_write/te_ok_time sdsinfo "::nexus::scobj::sdsinfo"
hsetprop ${scobj_hpath}/read_write/te_ok_time type "part"
hsetprop ${scobj_hpath}/read_write/te_ok_time nxalias "${name}_read_write_te_ok_time"
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/read_write/te_ok_time 1
hsetprop ${scobj_hpath}/read_write/te_ok_time simulated false
} else {
::scobj::aerolas_doppler::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for aerolas_doppler"
hsetprop ${scobj_hpath}/read_write/te_ok_time simulated true
}
hsetprop ${scobj_hpath}/read_write data "false"
hsetprop ${scobj_hpath}/read_write klass "@none"
hsetprop ${scobj_hpath}/read_write type "part"
hsetprop ${scobj_hpath} driver aerolas_doppler
hsetprop ${scobj_hpath} klass ${device_class}
hsetprop ${scobj_hpath} data true