Use fwd_enc_lim for SICS motor lower-limit when positive steps drive an axis in the negative direction for our standard coordinate system.
This commit is contained in:
@ -93,7 +93,11 @@ proc gen_attval {mot att} {
|
||||
if [info exists ::${mot}_attarr(absenchome)] {
|
||||
set enc_home_val [expr double([set ::${mot}_attarr(absenchome)])]
|
||||
} else {
|
||||
set enc_home_val [expr double([set ::${mot}_encatts(rev_enc_lim)])]
|
||||
if {$sign < 0} {
|
||||
set enc_home_val [expr double([set ::${mot}_encatts(fwd_enc_lim)])]
|
||||
} else {
|
||||
set enc_home_val [expr double([set ::${mot}_encatts(rev_enc_lim)])]
|
||||
}
|
||||
}
|
||||
if [info exists ::${mot}_attarr(home)] {
|
||||
set home_val [expr double([set ::${mot}_attarr(home)])]
|
||||
@ -103,7 +107,7 @@ proc gen_attval {mot att} {
|
||||
switch $att {
|
||||
"absenchome" {
|
||||
if [info exists ::${mot}_encatts(rev_enc_lim)] {
|
||||
return [set ::${mot}_encatts(rev_enc_lim)]
|
||||
return $enc_home_val
|
||||
} else {
|
||||
return "NOATT"
|
||||
}
|
||||
@ -113,7 +117,11 @@ proc gen_attval {mot att} {
|
||||
"maxdecel" {return 1}
|
||||
"rev_lim" {
|
||||
if { [info exists ::${mot}_encatts(rev_enc_lim)] && [info exists ::${mot}_encatts(cnts_per_x)] } {
|
||||
return [expr {$sign * ($rev_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
||||
if {$sign < 0} {
|
||||
return [expr {($fwd_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
||||
} else {
|
||||
return [expr {($rev_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
||||
}
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
@ -121,7 +129,11 @@ proc gen_attval {mot att} {
|
||||
"home" {return 0}
|
||||
"fwd_lim" {
|
||||
if { [info exists ::${mot}_encatts(fwd_enc_lim)] && [info exists ::${mot}_encatts(cnts_per_x)] } {
|
||||
return [expr {$sign * ($fwd_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
||||
if {$sign < 0} {
|
||||
return [expr {($rev_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
||||
} else {
|
||||
return [expr {($fwd_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
||||
}
|
||||
} else {
|
||||
return 1
|
||||
}
|
||||
|
Reference in New Issue
Block a user