ReleaseNotes:Planimate 4.12 Release Notes

From Planimate Knowledge Base
Revision as of 14:24, 22 December 2008 by Craig.Chandler (talk | contribs) (Planimate 4.12 Release Notes moved to ReleaseNotes:Planimate 4.12 Release Notes: move to namespace)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Release notes, bug fixes and misc enhancements to Planimate 4.12


  • Test version for new compiler
  • had problem loading its own model (the version number needs to be advanced by 1)


  • route's have an option to guess intermediate points; this helps where a route has obvious steps but will report any ambiguity requiring either extra steps to be included or a complete route definition (with this option off)
  • trip assignment at change option has new option

local : works as before, enables a local, arbitrary route/index selection
global: uses the global route list and the index defined with the route

  • automatically tracks changes to the route list
  • new explicit "delete" button to remove the trip assignment
  • pipes now track moving portal


  • Fixed switches so they can now handle an item of the same class visiting them just after an item has moved but before the move has completed. Queues and Splitters in loops with switches highlighted this problem since they push the item out before returning (and completing) the move which caused the first item to enter them - ie. they work recursively.
  • Button message dispatching changed from direct call of function to posted message dispatch, to reduce "winding in" of the process when buttons are used to continue a run - should not be noticeable in any way
  • Dispatcher now "forgets" target when switched back to "Normal" mode
  • Entry "User Click" options changed
  • no longer puts confirm message for creating item without continue
  • fixed path validation bug when click/continue option used
  • does not report "no paths" when click on a normal entry which has finished its schedule


TABLES: GREATLY sped up block row insert and deletes

  • A new message "_system close" is sent to paused/ready model when user quits/closes planimate

Planimate must process this message without user intervention

  • can read arbitrary file length into VLT

nb: table does not shrink if less data is loaded than required but it will expand to fit total rows read

  • reading into a block offset is supported, the table is padded with rows to achieve the required block row offset

eg: if a block read is started at table row 1000, an empty table will have rows 1...999 inserted before row 1000 (the first read row)

  • fixed bug with 24hr time display - rounding caused silly time displays for times at 59 minutes and more than 30 seconds

10:59 59
This did not compromise internal data integrity


  • 24:00 is now a valid Time Of Day
  • Portal's have a new option to avoid them being ctrl-paste updated (good for the odd control subsystem on a screen with many generic stations)
  • right button click in preinit/paused in table view now handled by the table view rather than showing the background menu
  • gantt bar labels are now omitted when they are too wide for the bar (ie. many events in the view)
  • scenario extention message added


  • Terminology changes
  • "Run Pre-Init" -> "Run Ready"
  • "Exported Object List" -> "Objects List"" need a name for the "Export..." object option?
  • model can set sys att "Run Start Time Reference"
  • this forces a restart of a model; invoke with care!
  • model can set sys att "Advance To Time" to initiate/stop a fast advancement

  • fixed bug which caused "time left" box to remain on screen when error occured during run
  • scenario can now load into VLTs
  • RTF note exporting: no longer appends to file (which would "lose" the appended text anyway - use gather notes to append together.

default export/import file name is now the note name
run gets

  • "Up To Owning Screen" user button adds current screen to the "Go Back" list
  • double click on name in status bar goes to owner for panels as well
  • display option to hide "Animation Starting" message
  • display option to override table/attribute scenario setting and include them all when scenarios are saved

(the individual setting for each object is not lost and will return if this option is switched off again)

  • append row in table now sets values to CLEAR


  • splitter editor bug fixed (again)
  • gantt min/update interval and scroller updating now work properly
  • new value formatting modes:

1. Value x,xxx.xxxx Like "Value" except commas delimit every 3rd digit
2. Time Of Day HHMM A four digit time, from 0000 to 2359
Modified value parsing algorithm to handle new modes more reliably

  • now handles k,m,b in short in place edits for unit modes
  • please report any interpretatin anomalies or unexpected value mode changes.
  • "duplicate" row menu option added for user mode


  • fixed crash problem with gantt on non visible screen at start of run
  • still problem with
  • gantt min update interval not working (nothing draws if its non zero)
  • scroller forgets setting upon redraw



  • rewrote internal table structure handing
  • row insertion, deletion and table growing much quicker (using many more block memory moves rather than element by element copy)
  • tables can grow much bigger (8192 elements vs. 8) before incremental rather than binary growth increment is used
  • preallocate Planimate tables as they load, rather than having them reallocate dynamically
  • the combination of these changes ==> *** S P E E D ***

Please report any anomolies immediately - all else same as v.12k


  • fixed loading of gantts in panels (oops)
  • implemented "Real time" mode
  • the display option "Run Model In Realtime" causes the scheduler to fast-forward the model until the model's calendar time equals the "real" calendar time (from the PC clock); the model is then animated in "real time"
  • its useful to have an update interval of 1 second in this mode

(the clock window is updated nonetheless)

  • this mode wont be much use in relative time mode


  • fixed crash with old graph code
  • fixed gantt redraws on wrong panel
  • can now add gantt from panel background menu
  • password and no edit field now properly handled for labels
  • click on bar in new gantt (for popup) implemented
  • table columns have a new option item to flag inclusion in this popup
  • start/end times of event are always shown in the popup


note: this version seems to crash on a lot of models I load. I've probably broken something with the "old" graph views. Please report crashes and what was happening

  • new gantt display (add via the "Add View" button in table/graph views
  • needs testing
  • usage docs to follow

basically, it requires these labelled columns
_time -> determines x axis, should be ascending _position -> determines row # _state -> 0 = inactive, 1..15 map to system colours for now _id -> unused _label -> shown in the bar if that option selected

_time,_position & _state are required to get a display, the others are optional

  • click on bar for info on row to follow v.soon
  • some scale parameters (eg min/max values do not alter things as it currently always auto-scales itself
  • model option to restart on stop
  • model will still go to stop state if an error occurs, or a stop occurs/is selected while the CTRL key is down (to avoid getting trapped in a running model)

This option is most useful with "Pause at pre-init" and "Run on load" as the user does not get exposed to the stopped model under normal circumstances

  • password option on dialog fields (displays '*' for each character)
  • Read only option on dialog fields

nb: For list box fields, the password option is ignored and the read only option does not prevent a selection being made, it just gets ignored when the dialog is ok'ed.

  • fixed bug with spatial link: was rounding co-ords which caused running times sto be slightly > than expected (about 1%)


  • fixed bug with graph displays not being drawn properly where the graph range was between 2 graph x points

the problem was made worse by not handling drawing beyond graph's last point when the first graph point was plotted - caused bars in the gantt display

  • right button on table cell now brings up ctrl-left menu
  • table row edit menu
  • added append row
  • implemented "User Cannot Add/Delete Rows" option (was previously the "User Can Add Row" option and was not implemented
  • scroller range edit now uses format of target column
  • File remapping support
  • The Edit->Files Accessed option enables review of files accessed during runtime (via change object read/write file) and bitmap images
  • The Edit->Initialisation File option enables an ini file to be associated with the model

When the model is loaded (or this option is selected) the ini file is loaded
currently ini file only supports file name remapping and must be of form:
[FILES] <from-name> <to-name> : :
names are quoted, example:
[FILES] "TEST1.DAT" "c:\rick\sv\data\test1.dat" "TEST2.DAT" "d:\moredata\test2.dat" "c:\rick\data\test3.dat" "d:\moredata\test3.dat"


  • item attributes have options

"Include In Item Panels" -> controls whether attribute will display in item panels (not yet implemented)
"Include In Item Popup" -> controls whether attribute will display in item clicked pop up list

  • By default this is on for old models and off for new attributes
  • A leading '!' overrides this and hides the attribute anyway

This means you dont have to name private attributes with a preceeding '!' which will make tupling management etc. easier

BUGFIX: external copy of date formatted fields copies entire date


  • Attref display reworked:

Now use a prefix letter without a ':' - use capital on attribute name for clarity:
pAttribute -> portal iAttribute -> item cAttribute -> class Attribute -> routine local

  • "Real Time" system attribute translates the real calendar time into a planimate time offset
  • routine attribute copy/paste offered when routine lines are copied to a routine without any routine attributes
  • routine attributes can be defined on-the-fly by selecting "Add New" when browsing attribute names
  • graph scroller
  • handles right click (to set start/end/step/resolution)
  • responds to keypad keys left/right/home/end
  • new button editing
  • can clear push stack for screen change
  • can review/change options for broadcast and screen change button
  • can reselect menubar commands
  • "Start/Restart" button added


  • object label list index editing updates targets as for label lists
  • missing routine attribute dialog bug (once attribute deleted)
  • changed "!=" notation to "<>"

fixes (also in l):

  • pipe redrawing if model started on other scrn
  • track handling of blocked train
  • conveyor gap handling (in




  • removed PV object code from EXE - models containing PV objects will fail to load
  • fix to track logic / switches (was not resetting switches BEFORE unblocking)


[file version 196]
  • ROUTINES can now have local attributes defined and referenced via R:attribute. These are private attributes to the routine

Routine attributes get set to the initial (edit) value whenever the routine is invoked

  • Attribute and table "Refs" now mark items which potentially modify them with a '*'

Let me know of cases I've missed

  • Can add all objects on a given screen to the export list from the Exported Objects dialog

misc fixes

  • z-ordering bugs with attribute edit dialog fixed
  • "VScreen() null message" when selecting portal entry in paused mode fixed


  • fixed bug with sequential switch becoming blocked
  • fixed crash bug when copying model with table column formatted for "model objects"

note: exported objects do not get their export details copied

  • fixed crash bug when copying model with trips in it... (no one found this?)
  • new broadcasts are indexed from 1, not from the system broadcast ids
  • fixed a bug introduced recently which would cause shuttle conveyor used at t>0 to give an error

anyone using shuttling conveyors? Under consideration for removal

  • switches now load with the right icon for their mode

Note: In this version I rewrote the way the Future Events Chain (FEC) gets events placed in it to make it more efficient. After running some debugging metrics I noticed the FEC could do with some optimisations.

<file version same as


I have completely rewritten the way the Planimate engine handles looking ahead and "resetting" of switch states as it explores options. I did this to:

  • abolish "Reset scan" loop bugs when portals or tracks are tightly connected back to back (using multiple portal entries/exits) - the reset scan mechanism could not follow the specific entries that the items had taken using the previous structure
  • attempt to cut down the search overhead (the old way, after an item had moved, the engine had to do another search of the tree just explored to "reset" switches. Models should be noticeably faster now

again remember that using the "Non blocking" switch option on switches you dont expect to block items makes a big difference to performance... more so now.

  • fix the long standing bug in the engine which manifested in the following object arrangement:

b e--- / \ / |>---a c \ / \ d f---
a,c are switches, b, d are change objects, e, f are servers
If c depended on an attribute which is set differently for b and d, and a explored both a-b-c and a-d-c paths (as happens with "any avail") then c would stick to the setting it got for the first test made, which may not be the appropriate one for the path actually taken
This is now handled properly

  • consolidate the way lookahead is handled in the various places it gets invoked
  • REDRAW bug fix for attribute stats with user button messages

idkbase note 163