1) Specifically on Mac: error when try to write to single file instead of multiple files. Here is the log file
can't read "useNodes(multiFileImg)": no such element in array
can't read "useNodes(multiFileImg)": no such element in array
while executing
"$winId.bbframe.table configure -image $useNodes(multiFileImg) -command [code $this MultiFileMode]"
(object "::helper4" method "::similescript::DataLogger20111205::ColumnMode" body line 2)
invoked from within
"::helper4 ColumnMode"
(in namespace inscope "::similescript::DataLogger20111205" script line 1)
invoked from within
"namespace inscope ::similescript::DataLogger20111205 {::helper4 ColumnMode}"
invoked from within
".mre2.mainpw.mainDisplayPane.notebook.fpage5.panedwindow.pane0.container.bbframe.table invoke"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list $w invoke]"
(procedure "tk::ButtonUp" line 23)
invoked from within
"tk::ButtonUp .mre2.mainpw.mainDisplayPane.notebook.fpage5.panedwindow.pane0.container.bbframe.table"
(command bound to event)
2) Specifically on Mac: after saving a configuration file with a plot, periodically get an error when reopening configuration file. Here is the message (no log): “An instance of the I/O tool "Plotter" has requested information about the component /size, but there is no component of this name in the current model.”
3) Specifically on Mac: after saving a configuration file with a data logger, periodically get an error when reopening configuration file. Here is the log:
A software error occurred while attempting to restore the I/O tool "Data logger" from the saved setup.
(The error message was:
can't read "::helperTable(node00000,stateName)": no such element in array
while executing
"file dirname $::helperTable($node,stateName)"
(object "::helper4" method "::similescript::DataLogger20111205::Stuff" body line 6)
invoked from within
"::helper4 Stuff ."
(in namespace inscope "::similescript::DataLogger20111205" script line 1)
invoked from within
"namespace inscope ::similescript::DataLogger20111205 {::helper4 Stuff} ."
("uplevel" body line 1)
invoked from within
"uplevel \#0 $options(-characterdatacommand) [list $pcdata]"
(procedure "PCDATA" line 13)
invoked from within
"PCDATA [array get options] $text"
(procedure "::sgml::parseEvent" line 538)
invoked from within
"::sgml::parseEvent {{} {} {} {} hsf {} { simile_version="6.7" helper_id="::similescript::DataLogger20111205"} {
} target_dir {} { mode="relative"} . t..."
("eval" body line 1)
invoked from within
"eval ::sgml::parseEvent [list $tokenised] $parseOptions"
(procedure "parse" line 60)
invoked from within
"parse xmlparser3 {<hsf simile_version="6.7" helper_id="::similescript::DataLogger20111205">
<target_dir mode="relative">.</target_dir>
<to_separate_fi..."
(in namespace inscope "::xml::tclparser" script line 1)
invoked from within
"::namespace inscope ::xml::tclparser parse xmlparser3 {<hsf simile_version="6.7" helper_id="::similescript::DataLogger20111205">
<target_dir mode="rel..."
("eval" body line 1)
invoked from within
"eval $classinfo(-parsecommand) [list $name] $args"
(procedure "::xml::ParserCmd" line 48)
invoked from within
"::xml::ParserCmd xmlparser3 parse {<hsf simile_version="6.7" helper_id="::similescript::DataLogger20111205">
<target_dir mode="relative">.</target_dir..."
("eval" body line 1)
invoked from within
"eval ::xml::ParserCmd xmlparser3 [list $method] $args"
(procedure "xmlparser3" line 1)
invoked from within
"$hsfParser parse $state"
while constructing object "::helper4" in ::similescript::DataLogger20111205::constructor (body line 19)
invoked from within
"similescript::$helperId $inst $modelObj $helperTitle $state"
(procedure "CreateHelperWindow" line 7)
invoked from within
"CreateHelperWindow $helperId $helperTitle $oldStatus")
4) Looking at data in logged data file when run is paused
Sometimes I will want to look at the data logger after running a model for an initial number of time steps to see how things are going before running it for a longer time period. For example, I will have the model execute for 20 time steps. I will not reset the model, but rather want to look at the data in the logged data file. Sometimes, there is nothing in the logged data file, and the only way I can look at the data is to close the configuration file, or the software as a whole. Not that this is even the case after I reset the model. Other times, there will be data, but not for the full 20 time steps.
Comments
#1
OK, we've fixed issues 1 and 3 from this list -- neither were actually specific to the Mac version, just the exact sequence of events that lead to them.
I suspect issue 2 occurred because the setup data for the plot was in a .shf that had been incompletely read or written due to these problems with the data logger, rather than anything to do with the plotter tool itself, which is widely used. Please let us know if you come up against the plotter problem when not using the data logger.
Issue 4 happens because the OS caches data written to a file and writes it in large blocks. There is a way to override this, by 'flushing' the write pipe, but this might slow things down if done for every new value. I'll try adding a flush on model reset, so the data for the previous run will be visible in the file.
#2
Thanks. I look forward to these fixes and I'll keep you posted on any plotter issues.