Force updates of sicsvariables if the save command is called when counting in blocking mode.
This is needed to make autosave work during scans.
This commit is contained in:
@@ -22,10 +22,10 @@ sicslist setatt timestamp units seconds
|
||||
sicslist setatt nexus_datatype mutable false
|
||||
|
||||
namespace eval nexus {
|
||||
nexus_datatype "UNKNOWN"
|
||||
nexus_datatype force "UNKNOWN"
|
||||
set exports [list newfile closefile save data newfile_collection save_collection]
|
||||
proc estartSetVal {} { estart [sicstime] }
|
||||
proc eendSetVal {} { eend [sicstime] }
|
||||
proc estartSetVal {} { estart force [sicstime] }
|
||||
proc eendSetVal {} { eend force [sicstime] }
|
||||
set FirstSaveList [list estartSetVal eendSetVal]
|
||||
set LastSaveList {list eendSetVal}
|
||||
eval namespace export $exports
|
||||
@@ -193,9 +193,9 @@ proc newFileName {idNum postfix} {
|
||||
array set save_count_arr ""
|
||||
array set start_seconds_array ""
|
||||
array set file_states {U "UNKNOWN" O "OPEN" C "CLOSED" S "SAVING"}
|
||||
save_count 0
|
||||
currpoint 0
|
||||
file_status UNKNOWN
|
||||
save_count force 0
|
||||
currpoint force 0
|
||||
file_status force UNKNOWN
|
||||
}
|
||||
|
||||
proc ::nexus::ic_initialize {} {
|
||||
@@ -346,7 +346,7 @@ proc ::nexus::newfile_collection {args} {
|
||||
lappend files $currFilename($fid)
|
||||
}
|
||||
}
|
||||
file_set_list [join $files ,]
|
||||
file_set_list force [join $files ,]
|
||||
} else {
|
||||
set state(file,fileset) "false"
|
||||
set state(file,labels) @singlefile
|
||||
@@ -358,14 +358,14 @@ proc ::nexus::newfile_collection {args} {
|
||||
set currFilename(@singlefile) [newFileName $idNum $file_suffix]
|
||||
}
|
||||
}
|
||||
save_count 0
|
||||
currpoint 0
|
||||
autosaveIndex 0
|
||||
file_status $file_states(U)
|
||||
save_count force 0
|
||||
currpoint force 0
|
||||
autosaveIndex force 0
|
||||
file_status force $file_states(U)
|
||||
if {$param(-filetype) == "clear"} {
|
||||
::hdb::set_save / false
|
||||
nexus_datatype "UNKNOWN"
|
||||
file_set_list "UNKNOWN"
|
||||
nexus_datatype force "UNKNOWN"
|
||||
file_set_list force "UNKNOWN"
|
||||
foreach l [array names isNewFile] {
|
||||
set isNewFile($l) "false"
|
||||
}
|
||||
@@ -380,8 +380,8 @@ proc ::nexus::newfile_collection {args} {
|
||||
}
|
||||
}
|
||||
::nexus::process_filetype_policy $param(-filetype)
|
||||
nexus_datatype $param(-filetype)
|
||||
file_status "NEWFILE"
|
||||
nexus_datatype force $param(-filetype)
|
||||
file_status force "NEWFILE"
|
||||
}
|
||||
} message ] {
|
||||
return -code error "([info level 0]) $message"
|
||||
@@ -446,7 +446,7 @@ proc ::nexus::save {{point 0} {callType "normalsave"}} {
|
||||
return -code error "([info level 0]) $message"
|
||||
}
|
||||
if {$callType == "normalsave"} {
|
||||
autosaveIndex [expr [SplitReply [data_run_number]] + 1]
|
||||
autosaveIndex force [expr [SplitReply [data_run_number]] + 1]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -476,7 +476,7 @@ proc ::nexus::save {{point 0} {callType "normalsave"}} {
|
||||
}
|
||||
|
||||
# ::data::gumtree_save -set run_number $point
|
||||
data_run_number $point
|
||||
data_run_number force $point
|
||||
|
||||
if [info exists param(-label)] {
|
||||
if {[lsearch -exact $state(file,labels) $param(-label)] == -1} {
|
||||
@@ -492,16 +492,16 @@ proc ::nexus::save {{point 0} {callType "normalsave"}} {
|
||||
if {$isNewFile($data_label)} {
|
||||
set isNewFile($data_label) "false"
|
||||
::nexus::createfile $currFilename($data_label)
|
||||
dataFileName $currFilename($data_label)
|
||||
dataFileName force $currFilename($data_label)
|
||||
|
||||
::nexus::CallSSProcs
|
||||
array unset start_seconds_array
|
||||
set start_seconds [clock seconds]
|
||||
# set start_seconds_array($data_label) $start_seconds
|
||||
timestamp 0
|
||||
file_status $file_states(O)
|
||||
timestamp force 0
|
||||
file_status force $file_states(O)
|
||||
::nexus::nxreopenfile $currFilename($data_label)
|
||||
file_status $file_states(S)
|
||||
file_status force $file_states(S)
|
||||
set baseName [getBaseName $currFilename($data_label)]
|
||||
set entryName [gen_NXentry_name $baseName]
|
||||
nxscript updatedictvar pa_entryName $entryName
|
||||
@@ -509,12 +509,12 @@ proc ::nexus::save {{point 0} {callType "normalsave"}} {
|
||||
} else {
|
||||
|
||||
::nexus::CallESProcs
|
||||
# timestamp [expr {[clock seconds] - $start_seconds_array($data_label)}]
|
||||
timestamp [expr {[clock seconds] - $start_seconds}]
|
||||
dataFileName $currFilename($data_label)
|
||||
file_status $file_states(O)
|
||||
# timestamp force [expr {[clock seconds] - $start_seconds_array($data_label)}]
|
||||
timestamp force [expr {[clock seconds] - $start_seconds}]
|
||||
dataFileName force $currFilename($data_label)
|
||||
file_status force $file_states(O)
|
||||
::nexus::nxreopenfile $currFilename($data_label)
|
||||
file_status $file_states(S)
|
||||
file_status force $file_states(S)
|
||||
set baseName [getBaseName $currFilename($data_label)]
|
||||
set entryName [gen_NXentry_name $baseName]
|
||||
nxscript updatedictvar pa_entryName $entryName
|
||||
@@ -526,10 +526,10 @@ proc ::nexus::save {{point 0} {callType "normalsave"}} {
|
||||
}
|
||||
if {[info exists data_label] && [info exists currFilename($data_label)]} {
|
||||
::nexus::nxclosefile $currFilename($data_label)
|
||||
file_status $file_states(C)
|
||||
file_status force $file_states(C)
|
||||
incr save_count_arr($data_label)
|
||||
save_count $save_count_arr($data_label)
|
||||
currpoint $point
|
||||
save_count force $save_count_arr($data_label)
|
||||
currpoint force $point
|
||||
} else {
|
||||
set message "$message !! FAILED ASSERTION: data_lable and/or currFilename undefined !!"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user