ReleaseNotes:Planimate 6.x Release Notes: Difference between revisions

From Planimate Knowledge Base
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
6.6.0 (new file format)
=== 6.8.1  ===


NEW         Graph RHS scales can now also be given a title
*'''NEW''' Copying routine code between PL and other apps now more straightforward.<br> when you use CTRL-C to copy routine lines, it makes a memory copy of the routine and also puts the text of the routine in the clipboard.<br> If you paste into the model (eg: with CTRL-V) without switching to another application, an in-imemory copy is performed, which also copies any needed routine attributes.<br> If you switch away from Planimate and back again, and the clipboard still contains what appears to be routine code, then a subsequent paste in a routine will paste using the clipboard text.<br>
*'''NOTE'''&nbsp; a couple of routine operations like Dialog() are not supported in text form<br>


NEW         Graph Y axis property YScaleFmtOverride and YScaleFmtOverrideRHS
*
allow the formatting used when displaying a scale to be overridden.
'''NEW''' "#AARRGGBB" including the quotes can be used to specify a colour constant in routine parameters/assignment. _corporate_logo.png _dss_logo.png _frms_logo.png _generic_logo.png _interdynamics_logo.png


Note that you cannot override using a label list format but a
column formatted for label list can be overridden with numbers.


This is particularly useful for giving the RHS scale its own format
*'''NEW''' _!System.db includes new InterDynamics corporate icons:<br><br>


CHANGE      Graph Y Scales now allocate separate space for graph Y
*'''FIX''' Change track build section details to assign a section its network details row id even if an error such as bad section type or bad length configuration occurs to avoid subsequent errors<br>
titles if enabled instead of the y titles sharing the
same space with the Y scales


FIX         Buttons configured to popup a panel would corrupt
*'''FIX''' The File / Add Module To Current Model option was causing a fault due to caching of DB and PMB files closing the load file. This has been broken since version 5.<br>
Planimate if clicked whilst the panel was already popped up


6.5.3
*'''FIX''' Cleaned up some double-to-colourvalue problems in text formatter which should not have affected release versions of Planimate<br>


FIX        Tool tips which appeared over the window that owned them (eg:
=== 6.8.0  ===
top row of palettes) were disappearing in Windows 7 (and likely
later versions) due to a change in Windows' messaging behaviour.


Generally this affected editing more than model run as the panel
*'''NEW''' The RenameLabel() operation can now rename an object label. This can be used to rename a location portal label to name/title associated with the object using:<br> r.OwnerObject = s.OwningPortalLocation r.objtitle $= s.OwningPortalLocation r.OwnerObject = RenameLabel(r.objtitle) (r.ObjectOwner must be formatted for l._Object_label so RenameLAbel knows the label list to work on)<br>
display is double buffered during run which prevents the problem
occuring.


6.5.2
*'''NEW''' The layout code for Planimate editing forms and the Dialog() operation has been rewritten to better support scaling nad higher resolution screens.<br> Two new INI settings give additional font control<br> [Routine] RoutineEditFontSize This enables you to set the size of routine line text. This affects the routine listing in the routine editor.<br> [Edit] DialogFontAdjust This is an adjustment factor to the default font that the operating system uses for fields, buttons, lists and static text in dialog boxes. A positive value will make the font bigger with dialog boxes scaling appropriately. A negative value will make the font smaller.<br> This font size is also affected by Windows font scaling settings, hence the setting will be very specific to a given installation.. This value does not impact objects and table views on panels. These can be adjusted via the settings-&gt;Fonts.<br>


FIX        Pipe load monitoring / limiting was broken in 6.5.0
*'''NOTE''' Windows 8 has more extensive scaling capabilities to support high resolution screens.<br> By default if you set a font scaling in the Personalisation Control Panel, the entire application is scaled including text, icons, palettes etc. This is useful if you have a high resolution screen and the user interface is too small. Windows offers the option to switch off the scaling of non font elements globally (which will then act like earlier versions of windows where only fonts are scaled).<br> Alternatively you may want ot use scaling but not for Planimate. In this case you can edit the properties of your Planimate EXE or shortcut, under Compatibility, selecting "Disable Display scaling on high DPI settings" will cause Windows to run Planimate un-scaled.<br> Model editors can then use Planimate's scaling capabilities to tune how it appears: [Routine] RoutineEditFontSize to adjust the routine editor - [Edit] DialogFontAdjust to adjust the planimate editor dialogs - View / Zoom (All Panels) in the menubar to adjust panel scaling<br>


CHANGE     Border styles for views and dials now default to single rect
*'''CHANGE''' The behaviour of initialising track sections from a section running table has changed. The Length and LengthMode columns now always set the section properties from the table.<br> In prior versions the table would be initialised FROM the section if it had a zero length. This no longer occurs.<br>


6.5.1
*'''FIX''' If LengthMode is set for a section then the Length must be non zero. This is now validated at the time section running details are applied to the section.<br>


FIX         Reworked the gantt bar click popup to use a multi-column
*'''FIX''' The FEC is better able to display the location that caused events with bad times to be scheduled. In previous versions it was not reporting the location reliably.<br>
list with auto-sizing


FIX        No longer repeat database open error messages in map paint objects
=== 6.7.5  ===


NOTE        Developers should be aware that the manifest change in 6.5.0
*'''FIX''' 6.7.0 had broken non length mode Track sections<br>
prevents Planimate models from writing to the Program Files
directory, any attempt to do so triggers a file open failure
instead of running Planimate in compatibility mode (with
associated messages from Windows).


This is as intended. To summarise:
*'''NOTE''' Internal build project files clean up to fix issues identified when testing with latest Visual Studio 2013<br>
Planimate applications should not expect write access to files
in the "Program Files" folder.


6.5.0
*'''FIX''' Internal code renames to avoid conflicts with VS2013 runtime library<br>


NEW        Panels have a new option "Broadcast Pipe Clicks" which causes
*'''FIX''' Remove PlgBlt work around when running under Wine. If this affects anybody it could be made an INI option. This avoids use of an API that has become deprecated.<br>
pipes on the panel to send the new broadcast "_pipe_clicked"
instead of displaying the default popup.


NEW        Pipe Load Limiting can now be enabled and disabled on the fly.
=== 6.7.4  ===


The pipe "Load Limit" reference can always be edited.
*'''NEW''' New system attribute s.MultiServerLookThrough is set to 1 when a lookahead has been initiated by a multiserver. This can be used to indicate to code that capacity is being explored, not an imminent train movement.<br>
The pipe option "Load Limiting Active" selects whether
the pipe will start the run with load limiting enabled.


The Object property ObjectPipeLoadLimiting enables the limiting
*'''FIX''' The switch multi-condition error had an uninitialised member that could cause Planimate to close as the dialog opened and restored custom window positioning.<br>
behaviour to be read and controlled during a run.
Note that the runtime setting of this property does not
affect the option set during editing and the pipe will revert
to this setting on a restart of the model.


NEW        Change object "Save Panel Image" now supports PNG and JPG
=== 6.7.3  ===
formats as well as BMP. The file type determines the
encoding mode.


CHANGE      Routine listings now write to a file name based on the name
*'''NEW''' For track modelling, multiservers have a new option "Look Through Test". When enabled, the multiserver will test the outgoing flow with an item that is about to enter it.<br> The item enters the multiserver in any case. The result of this test is available to the multiserver's time distribution as s.LookThroughBlock which will be 0 if the item could leave the multiserver and 1 if it would be blocked.<br> The result can be used to add extra time for a stopping train in a station, eg:multi server time: p.NominalTime + s.LookThroughBlock * p.ExtraTime<br> When enabled, a new multiserver reference "Look Through Control" (default 1 = enable) can be used to enable/disable the look through operation on a case by case basis. This is useful in cases where you know the train must stop and you can save runtime by preventing the unnecessary look ahead.<br> if Look Through Test is not enabled or the Look Through Enable reference is 0, s.LookThroughBlock will be zero.<br><br>
of the change object.


FIX        Updated Planimate's manifest to prevent bogus compatibility warnings
=== 6.7.1  ===
under Windows 7/8 on some models.


FIX        If the option was selected, PL was doing a restart on error
*'''CHANGE''' Train reversal now supports reversal if the train's tail is in a multiserver in a track node.<br> Additionally the route pointer is now advanced when as the reversal occurs (since the train is not entering a node via the usual entry where this normally occurs).<br>
even when a close was being forced by its owner when running
as a DLL


CLEAN      Removed obsolete term-within-term code since PL as a DLL
*'''NOTE''' A note that whilst train reversal is a new capability, no model file format changes have been required so far and the file format index has not been increased yet during this experimental stage.<br>
is only supported with PL running in its own thread.


6.4.3
=== 6.7.0  ===


NEW       Can add item attribute to watch list by selecting it in the item
*'''NEW''' Initial implementation of train reversal.<br> If a train in a track node on a network using train length instead of loop delays re-enters the section its tail is still occupying, the train performs a direction reversal.<br> The back of the train becomes the front and the train proceeds in the opposite direction.<br> This is useful in situations where a train stops and the crew swaps ends.<br> Trains whose length extends over multiple roads and multiservers (inside locations) are supported. It is an error to try reverse a train whose length is not completely consumed by tracks or multiservers (ie: one still entering the model).<br> Currently reversing when the tail of the train is in a multiserver is not implemented. This will be added shortly.<br>
click pop up menu


FIX        View "Edit Order" could not be returned to zero after being made non
=== 6.6.1  ===
zero


FIX        Can select routine attribute from the routine editor while
*'''NEW''' Help menu has option to show release notes (assuming ReleaseNotes.txt is in the same folder as Planimate.EXE)<br>
paused, this gives access to the watch list add menu.


FIX       Watch list was causing huge slowdowns once opened as it was updating
*'''FIX''' Planimate no longer displays an error if saving over an existing model and the option to replace an existing database is answered no.<br>
itself unnecessarily when items that were not being watched were
deleted.


6.4.2
*'''FIX''' Copying and pasting routine lines now carries through any referenced routine attributes more intelligently. It no longer asks to create them.<br>


FIX       Graph Views and the settings dialogs had an incorrect datatype which
*'''FIX''' Added extra tests to prevent code evaluated on an IF test that fails with a model error<br>
would mess up AARRGGBB colours under 64 bit versions only.


FIX       Column overlay graph grid lines/scales are now drawn behind the
*'''FIX''' For the case that a newer model format is attempted to be loaded by an older planimate version, it is no longer removed from the recent history list<br>
graph making them consistent with Log Driven Graphs.


6.4.1
=== 6.6.0 (new file format)  ===


NEW       File operations "TestFileLines" and "TestFileColumns" now support
*'''NEW''' Graph RHS scales can now also be given a title<br>
the "Show File Browser First" option and set the
s.LastAccessedFilePath / s.LastAccessedFile attributes.
This is useful as you can test the file's column column count
then use the value to control how you read it, using the
file/path that the user selected.


6.4.0
*'''NEW''' Graph Y axis property YScaleFmtOverride and YScaleFmtOverrideRHS allow the formatting used when displaying a scale to be overridden.<br> Note that you cannot override using a label list format but a column formatted for label list can be overridden with numbers.<br> This is particularly useful for giving the RHS scale its own format<br>


NEW        Right clicking on a watch list item enables its siblings to be added
*'''CHANGE''' Graph Y Scales now allocate separate space for graph Y titles if enabled instead of the y titles sharing the same space with the Y scales<br>
or removed from the watch list


NEW        Attribute editor enables siblings of an existing attribute to
*'''FIX''' Buttons configured to popup a panel would corrupt Planimate if clicked whilst the panel was already popped up<br>
be added/removed from the watch list


NEW        File operation "TestFileColumns" returns the number of columns in
=== 6.5.3  ===
the first line of the specified file. Tab delimiting is used unless
the "Delimit using commas" option is set, in which case the file
is treated as CSV and any commas in double quoted enclosed
text are ignored.


CHANGE    Closing the watch window now hides it without removing its contents,
*'''FIX''' Tool tips which appeared over the window that owned them (eg: top row of palettes) were disappearing in Windows 7 (and likely later versions) due to a change in Windows' messaging behaviour.<br> Generally this affected editing more than model run as the panel display is double buffered during run which prevents the problem occuring.<br>
enabling it to be restored.
Note loading any model clears the watch list


NEW        PL as a DLL API now supports PL_SuspendThread() being
=== 6.5.2  ===
invoked multiple times or recursively as long as each call
is matched by a PL_ReleaseThread() and all the calls occur
from one thread, separate to Pl's work thread


NEW        Key linked lists now report their owner in LinkedList errors
*'''FIX''' Pipe load monitoring / limiting was broken in 6.5.0<br>


6.3.1
*'''CHANGE''' Border styles for views and dials now default to single rect<br>


FIX        StdDev was broken for > about 45000 values
=== 6.5.1  ===
due to an integer overflow


6.3.0 (new file version)
*'''FIX''' Reworked the gantt bar click popup to use a multi-column list with auto-sizing<br>


NEW      Column overlay graphs can now plot points on lines and area
*'''FIX''' No longer repeat database open error messages in map paint objects<br>
graphs using an icon selected in the overlay's settings menu.
This is useful with graphs configured to allow dragging of points.


Log Driven graphs will get this capability in a future version
*'''NOTE''' Developers should be aware that the manifest change in 6.5.0 prevents Planimate models from writing to the Program Files directory, any attempt to do so triggers a file open failure instead of running Planimate in compatibility mode (with associated messages from Windows).<br> This is as intended. To summarise: Planimate applications should not expect write access to files in the "Program Files" folder.<br>


CHANGE    Internal rewrites (icon nametables, graph plot cache)
=== 6.5.0  ===


NEW       Planimate DLL API enables a callback function to be registered
*'''NEW''' Panels have a new option "Broadcast Pipe Clicks" which causes pipes on the panel to send the new broadcast "_pipe_clicked" instead of displaying the default popup.<br>
for when the model becomes paused. This simplifies a container
application tracking when a running model reaches a target time
and becomes paused.


Other enhancements to support advancing to time are documented in
*'''NEW''' Pipe Load Limiting can now be enabled and disabled on the fly.<br> The pipe "Load Limit" reference can always be edited. The pipe option "Load Limiting Active" selects whether the pipe will start the run with load limiting enabled.<br> The Object property ObjectPipeLoadLimiting enables the limiting behaviour to be read and controlled during a run. Note that the runtime setting of this property does not affect the option set during editing and the pipe will revert to this setting on a restart of the model.<br>
the Planimate API release notes and on the wiki page:


http://wiki.planimate.com/Planimate_as_a_DLL
*'''NEW''' Change object "Save Panel Image" now supports PNG and JPG formats as well as BMP. The file type determines the encoding mode.<br>


CHANGE   Run pause reasons (different to stop reasons) have been extended
*'''CHANGE''' Routine listings now write to a file name based on the name of the change object.<br>
to include AdvanceTimeReached. These are enumerated in
the planidll header for users of the Planimate DLL.


Internal cleanups and renames of code related to run pause and
*'''FIX''' Updated Planimate's manifest to prevent bogus compatibility warnings under Windows 7/8 on some models.<br>
advance to new event time.


6.2.1
*'''FIX''' If the option was selected, PL was doing a restart on error even when a close was being forced by its owner when running as a DLL<br>


NEW      Added logging of SetPortalIcon() to the debug logger.
*'''CLEAN''' Removed obsolete term-within-term code since PL as a DLL is only supported with PL running in its own thread.<br>
These get displayed under the "Info/Notes" category (for now)
as "GraphicsOps" events and include the new icon name
in the Info column.


NEW      Added "Show Watch Window" to breakpoint dialog menu
=== 6.4.3  ===


FIX      If the table column list was used with a column that was
*'''NEW''' Can add item attribute to watch list by selecting it in the item click pop up menu<br>
too wide for a table view, it would cause PL to close.


FIX       Cells with "Rename Instead of Adding Labels" now work with sub
*'''FIX''' View "Edit Order" could not be returned to zero after being made non zero<br>
label lists.


FIX       SetColorPaletteEntry() was flipping red and blue in 6.2.0
*'''FIX''' Can select routine attribute from the routine editor while paused, this gives access to the watch list add menu.<br>


6.2.0
*'''FIX''' Watch list was causing huge slowdowns once opened as it was updating itself unnecessarily when items that were not being watched were deleted.<br>


CHANGED  Renamed routine operation ChooseColor to ChoosePaletteColor
=== 6.4.2  ===
Existing uses will be automatically updated


NEW      Routine operation ChooseColor enables selection of an
*'''FIX''' Graph Views and the settings dialogs had an incorrect datatype which would mess up AARRGGBB colours under 64 bit versions only.<br>
RGB colour by an end user.


Returns the AARRGGBB colour (AA always FF) or -1
*'''FIX''' Column overlay graph grid lines/scales are now drawn behind the graph making them consistent with Log Driven Graphs.<br>
if colour selection was cancelled by the user.


Modellers must check for the -1 case. It will appear
=== 6.4.1  ===
as FFFFFFFF in an ARGB formatted cell but its not actually
a valid colour.


CHANGE    The routine operations ColorPaletteEntry and SetColorPaletteEntry
*'''NEW''' File operations "TestFileLines" and "TestFileColumns" now support the "Show File Browser First" option and set the s.LastAccessedFilePath / s.LastAccessedFile attributes. This is useful as you can test the file's column column count then use the value to control how you read it, using the file/path that the user selected.<br>
now return and expect alpha values as well.


Existing models and colour data need to be updated to include
=== 6.4.0  ===
the alpha value. Table data should be formatted as
"Colour AARRGGBB". The alpha value needs to be FF
to make the colour fully opaque.


A reminder that user colour values are stored as
*'''NEW''' Right clicking on a watch list item enables its siblings to be added or removed from the watch list<br>
0xAABBGGRR but the BB and RR get swapped by the
format code. This was explained in 6.0.0 release notes


*'''NEW''' Attribute editor enables siblings of an existing attribute to be added/removed from the watch list<br>


5.1.8
*'''NEW''' File operation "TestFileColumns" returns the number of columns in the first line of the specified file. Tab delimiting is used unless the "Delimit using commas" option is set, in which case the file is treated as CSV and any commas in double quoted enclosed text are ignored.<br>


FIX      When setting a paint buttons's text, it now re-evaluates
*'''CHANGE''' Closing the watch window now hides it without removing its contents, enabling it to be restored. Note loading any model clears the watch list<br>
its state first, making it possible to set the text for other
states by changing the control attribute then setting the text.


FIX      Moved "Add To Watch List" to bottom of attribute menu and
*'''NEW''' PL as a DLL API now supports PL_SuspendThread() being invoked multiple times or recursively as long as each call is matched by a PL_ReleaseThread() and all the calls occur from one thread, separate to Pl's work thread<br>
ensure it does not appear for item attributes when editing a class


6.1.7
*'''NEW''' Key linked lists now report their owner in LinkedList errors<br>


NEW      Watch list (tools menu)
=== 6.3.1  ===
This enables watching of portal, routine and item attribute
values at a fine grained level with watching controllable
by model code as well as by selection from the attribute editor.


Its useful in conjunction with stepping through routines.
*'''FIX''' StdDev was broken for &gt; about 45000 values due to an integer overflow<br>


Note that watching table cells is not supported as they do
=== 6.3.0 (new file version)  ===
not inherit from attributes. Tables can have table views
unlike routine and item attributes in a routine.


Item attributes are watched per attribute per item.
*'''NEW''' Column overlay graphs can now plot points on lines and area graphs using an icon selected in the overlay's settings menu. This is useful with graphs configured to allow dragging of points.<br> Log Driven graphs will get this capability in a future version<br>


The routine operations WatchListAdd() and WatchListRemove()
*'''CHANGE''' Internal rewrites (icon nametables, graph plot cache)<br>
enable attributes (item, portal, routine) to be added and removed
from the watch list on-the-fly. They are the only way to
watch an item attribute.


NEW       Debug Log window and Watch List now save their positions
*'''NEW''' Planimate DLL API enables a callback function to be registered for when the model becomes paused. This simplifies a container application tracking when a running model reaches a target time and becomes paused.<br> Other enhancements to support advancing to time are documented in the Planimate API release notes and on the wiki page:<br> http://wiki.planimate.com/Planimate_as_a_DLL<br>
in the INI file. This can be controlled using
[Edit] SaveDebugWindow and [Edit] SaveWatchWindow.


The co-ordinates are saved in DebugWindowX,DebugWindowY and
*'''CHANGE''' Run pause reasons (different to stop reasons) have been extended to include AdvanceTimeReached. These are enumerated in the planidll header for users of the Planimate DLL.<br> Internal cleanups and renames of code related to run pause and advance to new event time.<br>
size in DebugWindowW and DebugWindowH, same for the watch
window except its WatchWindowX etc.


if the W/H values are 0 (initial default) then PL auto-positions
=== 6.2.1  ===
the window. Hence making the width/height values 0 and setting
SaveDebugWindow=0 will causae Planimate to act as it used to and
not save whatever position the debug window is in.


FIX      Double clicking a change object during run no longer
*'''NEW''' Added logging of SetPortalIcon() to the debug logger. These get displayed under the "Info/Notes" category (for now) as "GraphicsOps" events and include the new icon name in the Info column.<br>
causes intermittent crash if the model only contains one change object.
This was caused by the icon cache reloading the change icon


6.1.6
*'''NEW''' Added "Show Watch Window" to breakpoint dialog menu<br>


FIX       Routine line selection after cut/delete rows is now consistent
*'''FIX''' If the table column list was used with a column that was too wide for a table view, it would cause PL to close.<br>


FIX       Debug-stepping now supports panel open routines but
*'''FIX''' Cells with "Rename Instead of Adding Labels" now work with sub label lists.<br>
avoid changing panel whilst stepping through such routines.


REMOVE    Management of DataSet1 (Scenario) save structures. These
*'''FIX''' SetColorPaletteEntry() was flipping red and blue in 6.2.0<br>
were wasting memory and causing problems with dynamic portals


6.1.5 (new file version)
=== 6.2.0  ===


NEW      Cell text/background colour now supports RGB values as well as
*'''CHANGED''' Renamed routine operation ChooseColor to ChoosePaletteColor Existing uses will be automatically updated<br>
indexed colours.


In previous versions the only way to set/get cell colours
*'''NEW''' Routine operation ChooseColor enables selection of an RGB colour by an end user.<br> Returns the AARRGGBB colour (AA always FF) or -1 if colour selection was cancelled by the user.<br> Modellers must check for the -1 case. It will appear as FFFFFFFF in an ARGB formatted cell but its not actually a valid colour.<br>
was by using the "Property" value on a table cell
eg:  t.table[1][1].Property
which returned an integer consisting of the text and
background colours in the lowest and second lowest bytes
respectively.


This mechanism is unuseable for RGB colours and is now
*'''CHANGE''' The routine operations ColorPaletteEntry and SetColorPaletteEntry now return and expect alpha values as well.<br> Existing models and colour data need to be updated to include the alpha value. Table data should be formatted as "Colour AARRGGBB". The alpha value needs to be FF to make the colour fully opaque.<br> A reminder that user colour values are stored as 0xAABBGGRR but the BB and RR get swapped by the format code. This was explained in 6.0.0 release notes<br><br>
obsolete, though still supported for the time being.


4 now routine operations enable reading and setting table
=== 5.1.8  ===
cell text and background colours as full ARGB colours:


GetCellBackgroundColor()
*'''FIX''' When setting a paint buttons's text, it now re-evaluates its state first, making it possible to set the text for other states by changing the control attribute then setting the text.<br>
GetCellTextColor()
SetCellBackgroundColor()
SetCellTextColor()


These expect a cell reference in the first parameter and a
*'''FIX''' Moved "Add To Watch List" to bottom of attribute menu and ensure it does not appear for item attributes when editing a class<br>
Plaimate colour value (either colour index or ARGB) for
the colour they set/return.


If a cell does not have a specific colour set, the "none"
=== 6.1.7  ===
colour of 255 is used.


NOTE that partially transparent cell colours are not
*'''NEW''' Watch list (tools menu) This enables watching of portal, routine and item attribute values at a fine grained level with watching controllable by model code as well as by selection from the attribute editor.<br> Its useful in conjunction with stepping through routines.<br> Note that watching table cells is not supported as they do not inherit from attributes. Tables can have table views unlike routine and item attributes in a routine.<br> Item attributes are watched per attribute per item.<br> The routine operations WatchListAdd() and WatchListRemove() enable attributes (item, portal, routine) to be added and removed from the watch list on-the-fly. They are the only way to watch an item attribute.<br>
explicitly supported, in some circumstances there will
be overwrites if the data in the table changes dynamically.
You might be able to get around this by giving the table view
a transparent background colour but note that this will
impact redraw performance.


*'''NEW''' Debug Log window and Watch List now save their positions in the INI file. This can be controlled using [Edit] SaveDebugWindow and [Edit] SaveWatchWindow.<br> The co-ordinates are saved in DebugWindowX,DebugWindowY and size in DebugWindowW and DebugWindowH, same for the watch window except its WatchWindowX etc.<br> if the W/H values are 0 (initial default) then PL auto-positions the window. Hence making the width/height values 0 and setting SaveDebugWindow=0 will causae Planimate to act as it used to and not save whatever position the debug window is in.<br>


FIX      Expression parser now interprets AND, OR and XOR as '&&', '||' and '^'.
*'''FIX''' Double clicking a change object during run no longer causes intermittent crash if the model only contains one change object. This was caused by the icon cache reloading the change icon<br>
This fixes importing of routine listings generated by Planimate
which use AND, OR and XOR in conditions to be more friendly to
non C programmers.


NEW      Ctrl-A in the routine editor selects all routine lines
=== 6.1.6  ===


NEW      The pow(x,y) function (x to the power of y) is now available in
*'''FIX''' Routine line selection after cut/delete rows is now consistent<br>
expressions as well as a routine operation


FIX       Routine import from clipboard now sets undo
*'''FIX''' Debug-stepping now supports panel open routines but avoid changing panel whilst stepping through such routines.<br>


*'''REMOVE''' Management of DataSet1 (Scenario) save structures. These were wasting memory and causing problems with dynamic portals<br>


6.1.4
=== 6.1.5 (new file version)  ===


FIX      Repaint causing advance to time box to reappear when not needed
*'''NEW''' Cell text/background colour now supports RGB values as well as indexed colours.<br> In previous versions the only way to set/get cell colours was by using the "Property" value on a table cell<br><br>eg: t.table[1][1].Property which returned an integer consisting of the text and background colours in the lowest and second lowest bytes respectively.<br> This mechanism is unuseable for RGB colours and is now obsolete, though still supported for the time being.<br> 4 now routine operations enable reading and setting table cell text and background colours as full ARGB colours:<br> GetCellBackgroundColor() GetCellTextColor() SetCellBackgroundColor() SetCellTextColor()<br> These expect a cell reference in the first parameter and a Plaimate colour value (either colour index or ARGB) for the colour they set/return.<br> If a cell does not have a specific colour set, the "none" colour of 255 is used.<br> NOTE that partially transparent cell colours are not explicitly supported, in some circumstances there will be overwrites if the data in the table changes dynamically. You might be able to get around this by giving the table view a transparent background colour but note that this will impact redraw performance.<br><br>
and remain stuck open


FIX       Importing text into routine now handles non breaking spaces
*'''FIX''' Expression parser now interprets AND, OR and XOR as '&amp;&amp;', '||' and '^'. This fixes importing of routine listings generated by Planimate which use AND, OR and XOR in conditions to be more friendly to non C programmers.<br>
(space character with high bit set).


NEW       The hierarchy and portal menus have a new option "Copy Path To Clipboard"
*'''NEW''' Ctrl-A in the routine editor selects all routine lines<br>
which copies the names of the steps in the hierarchy to reach the
portal


NEW       Tip text for portals is now shown in edit mode as well along with
*'''NEW''' The pow(x,y) function (x to the power of y) is now available in expressions as well as a routine operation<br>
the object name/type


NEW      If the first line of a routine is a comment, it is shown as
*'''FIX''' Routine import from clipboard now sets undo<br><br>
tip text for the change object in edit mode (experimental)


6.1.3
=== 6.1.4  ===


NEW      System attribute "s.LineTestMargin" sets how many pixels
*'''FIX''' Repaint causing advance to time box to reappear when not needed and remain stuck open<br>
(in Planimate panel co-ordinates) Planimate uses to detect
clicks on lines. In cases where lines are in close proximity,
the modeller may want to reduce this.


This is global to the model but can be
*'''FIX''' Importing text into routine now handles non breaking spaces (space character with high bit set).<br>
changed using a panel open broadcast to make it panel
specific. The value is not saved with the model and
is reset when a model is loaded.


The default is 5
*'''NEW''' The hierarchy and portal menus have a new option "Copy Path To Clipboard" which copies the names of the steps in the hierarchy to reach the portal<br>


NEW       Paint Map Object has a new option "Wrap Map At 180E"
*'''NEW''' Tip text for portals is now shown in edit mode as well along with the object name/type<br>
With this option on, the map display supports wrap-around
at its right where the International Date Line is normally
the limit.


This is useful when maps involve areas near New Zealand.
*'''NEW''' If the first line of a routine is a comment, it is shown as tip text for the change object in edit mode (experimental)<br>


When this option is on, co-ordinate calculations
=== 6.1.3  ===
have been updated to allow objects to be positioned East
of the date line (they will have longitutes co-ordinates > 180).


This option is only supported when the "Fixed Map Zoom"
*'''NEW''' System attribute "s.LineTestMargin" sets how many pixels (in Planimate panel co-ordinates) Planimate uses to detect clicks on lines. In cases where lines are in close proximity, the modeller may want to reduce this.<br> This is global to the model but can be changed using a panel open broadcast to make it panel specific. The value is not saved with the model and is reset when a model is loaded.<br> The default is 5<br>
option is also enabled.


NEW       PasteFromClipboard has been enhanced to now return a result
*'''NEW''' Paint Map Object has a new option "Wrap Map At 180E" With this option on, the map display supports wrap-around at its right where the International Date Line is normally the limit.<br> This is useful when maps involve areas near New Zealand.<br> When this option is on, co-ordinate calculations have been updated to allow objects to be positioned East of the date line (they will have longitutes co-ordinates &gt; 180).<br> This option is only supported when the "Fixed Map Zoom" option is also enabled.<br>
code. For older models this is set to s.NullAttributes.


The result code will be non zero if Planimate reported an
*'''NEW''' PasteFromClipboard has been enhanced to now return a result code. For older models this is set to s.NullAttributes.<br> The result code will be non zero if Planimate reported an error during the import operation.<br>
error during the import operation.


6.1.2
=== 6.1.2 ===


FIX       Broadcast Bug:
*'''FIX''' Broadcast Bug:<br> If in paused mode, a button click broadcast triggered code that dynamically changed the view panel of a viewport, and the new view panel of the viewport contained another viewport, then Planimate would "continue" the run even though this was not requested - the model should just pause after the button click broadcast.<br> This was caused by the nesting of panel visible broadcasts as the outer viewport opened its new panel and that panel opened its viewport and the panel it pointed to.<br> After a broadcast, the broadcast send code checks if the "continue" flag was set by the model, so it can instruct the engine to proceed with the "continue" after the broadcasting has completed (as set by s.ContinueRun = 1).<br> However this test was incomplete, it was detecting the "continue" flag set when the engine state was "continue &amp; pause after epoch" which is used to clear side effects of broadcasts.<br> Specifically, the recursed (inner) broadcast handler was converting the "continue and pause after epoch" state set by the outer broadcast handler into a "continue". The test is corrected.<br> Look out for any cases where a broadcast does not fully execute all expected same-time events/side effects.<br>


If in paused mode, a button click broadcast triggered code that
*'''FIX''' Handling of non gradient colours for paint rectangles<br>
dynamically changed the view panel of a viewport,
and the new view panel of the viewport contained another viewport,
then Planimate would "continue" the run even though this was not
requested - the model should just pause after the button click
broadcast.


This was caused by the nesting of panel visible
=== 6.1.1  ===
broadcasts as the outer viewport opened its new panel and that
panel opened its viewport and the panel it pointed to.


After a broadcast, the broadcast send code checks if the
*'''NEW''' Log Driven Graph mode "Point Rectangle" can be used to draw rectangles with co-ordinates based on graph-space values. Used with transparency, it is very effective for highlighting parts of a graph display.<br> If _borderstyle is set, a border can be shown with _bordercolor if the _Borderstyle is set to "Single" or "Double". The standard rectangle border styles are supported.<br> The _x and _y co-ords set the lower left corner of the rectangle. Additional columns _x2 and _y2 are used to specify the top right corner of the rectangle.<br>
"continue" flag was set by the model, so it can
instruct the engine to proceed with the "continue" after the
broadcasting has completed (as set by s.ContinueRun = 1).


However this test was incomplete, it was detecting the
*'''NEW''' Log Driven Graph mode "Point Line" can be used to draw a line with co-ordinates all passed in a single row of the data table. This requires columns _x, _y, _x2, _y2 and supports _color (or _linecolor if present), _width and _style columns.<br>
"continue" flag set when the engine state was "continue & pause
after epoch" which is used to clear side effects of broadcasts.


Specifically, the recursed (inner) broadcast handler was converting
=== 6.1.0  ===
the "continue and pause after epoch" state set by the outer
broadcast handler into a "continue". The test is corrected.


Look out for any cases where a broadcast does not fully execute
*'''SPEED''' Rewrote substantial parts of routine line processing to streamline the code and make routine lines execute faster, particularly the ones that are likely to be executing in lookahead.<br>
all expected same-time events/side effects.


FIX      Handling of non gradient colours for paint rectangles
<br>
 
6.1.1
 
NEW      Log Driven Graph mode "Point Rectangle" can be used to
draw rectangles with co-ordinates based on graph-space
values. Used with transparency, it is very effective for
highlighting parts of a graph display.
 
If _borderstyle is set, a border can be shown with
_bordercolor if the _Borderstyle is set to "Single" or "Double".
The standard rectangle border styles are supported.
 
The _x and _y co-ords set the lower left corner of the rectangle.
Additional columns _x2 and _y2 are used to specify the
top right corner of the rectangle.
 
NEW      Log Driven Graph mode "Point Line" can be used to draw a line
with co-ordinates all passed in a single row of the data table.
This requires columns _x, _y, _x2, _y2 and supports _color (or
_linecolor if present), _width and _style columns.
 
6.1.0
 
SPEED    Rewrote substantial parts of routine line processing to streamline
the code and make routine lines execute faster, particularly
the ones that are likely to be executing in lookahead.


[[Category:Release Note]]
[[Category:Release Note]]

Revision as of 19:53, 29 May 2014

6.8.1

  • NEW Copying routine code between PL and other apps now more straightforward.
    when you use CTRL-C to copy routine lines, it makes a memory copy of the routine and also puts the text of the routine in the clipboard.
    If you paste into the model (eg: with CTRL-V) without switching to another application, an in-imemory copy is performed, which also copies any needed routine attributes.
    If you switch away from Planimate and back again, and the clipboard still contains what appears to be routine code, then a subsequent paste in a routine will paste using the clipboard text.
  • NOTE  a couple of routine operations like Dialog() are not supported in text form

NEW "#AARRGGBB" including the quotes can be used to specify a colour constant in routine parameters/assignment. _corporate_logo.png _dss_logo.png _frms_logo.png _generic_logo.png _interdynamics_logo.png


  • NEW _!System.db includes new InterDynamics corporate icons:

  • FIX Change track build section details to assign a section its network details row id even if an error such as bad section type or bad length configuration occurs to avoid subsequent errors
  • FIX The File / Add Module To Current Model option was causing a fault due to caching of DB and PMB files closing the load file. This has been broken since version 5.
  • FIX Cleaned up some double-to-colourvalue problems in text formatter which should not have affected release versions of Planimate

6.8.0

  • NEW The RenameLabel() operation can now rename an object label. This can be used to rename a location portal label to name/title associated with the object using:
    r.OwnerObject = s.OwningPortalLocation r.objtitle $= s.OwningPortalLocation r.OwnerObject = RenameLabel(r.objtitle) (r.ObjectOwner must be formatted for l._Object_label so RenameLAbel knows the label list to work on)
  • NEW The layout code for Planimate editing forms and the Dialog() operation has been rewritten to better support scaling nad higher resolution screens.
    Two new INI settings give additional font control
    [Routine] RoutineEditFontSize This enables you to set the size of routine line text. This affects the routine listing in the routine editor.
    [Edit] DialogFontAdjust This is an adjustment factor to the default font that the operating system uses for fields, buttons, lists and static text in dialog boxes. A positive value will make the font bigger with dialog boxes scaling appropriately. A negative value will make the font smaller.
    This font size is also affected by Windows font scaling settings, hence the setting will be very specific to a given installation.. This value does not impact objects and table views on panels. These can be adjusted via the settings->Fonts.
  • NOTE Windows 8 has more extensive scaling capabilities to support high resolution screens.
    By default if you set a font scaling in the Personalisation Control Panel, the entire application is scaled including text, icons, palettes etc. This is useful if you have a high resolution screen and the user interface is too small. Windows offers the option to switch off the scaling of non font elements globally (which will then act like earlier versions of windows where only fonts are scaled).
    Alternatively you may want ot use scaling but not for Planimate. In this case you can edit the properties of your Planimate EXE or shortcut, under Compatibility, selecting "Disable Display scaling on high DPI settings" will cause Windows to run Planimate un-scaled.
    Model editors can then use Planimate's scaling capabilities to tune how it appears: [Routine] RoutineEditFontSize to adjust the routine editor - [Edit] DialogFontAdjust to adjust the planimate editor dialogs - View / Zoom (All Panels) in the menubar to adjust panel scaling
  • CHANGE The behaviour of initialising track sections from a section running table has changed. The Length and LengthMode columns now always set the section properties from the table.
    In prior versions the table would be initialised FROM the section if it had a zero length. This no longer occurs.
  • FIX If LengthMode is set for a section then the Length must be non zero. This is now validated at the time section running details are applied to the section.
  • FIX The FEC is better able to display the location that caused events with bad times to be scheduled. In previous versions it was not reporting the location reliably.

6.7.5

  • FIX 6.7.0 had broken non length mode Track sections
  • NOTE Internal build project files clean up to fix issues identified when testing with latest Visual Studio 2013
  • FIX Internal code renames to avoid conflicts with VS2013 runtime library
  • FIX Remove PlgBlt work around when running under Wine. If this affects anybody it could be made an INI option. This avoids use of an API that has become deprecated.

6.7.4

  • NEW New system attribute s.MultiServerLookThrough is set to 1 when a lookahead has been initiated by a multiserver. This can be used to indicate to code that capacity is being explored, not an imminent train movement.
  • FIX The switch multi-condition error had an uninitialised member that could cause Planimate to close as the dialog opened and restored custom window positioning.

6.7.3

  • NEW For track modelling, multiservers have a new option "Look Through Test". When enabled, the multiserver will test the outgoing flow with an item that is about to enter it.
    The item enters the multiserver in any case. The result of this test is available to the multiserver's time distribution as s.LookThroughBlock which will be 0 if the item could leave the multiserver and 1 if it would be blocked.
    The result can be used to add extra time for a stopping train in a station, eg:multi server time: p.NominalTime + s.LookThroughBlock * p.ExtraTime
    When enabled, a new multiserver reference "Look Through Control" (default 1 = enable) can be used to enable/disable the look through operation on a case by case basis. This is useful in cases where you know the train must stop and you can save runtime by preventing the unnecessary look ahead.
    if Look Through Test is not enabled or the Look Through Enable reference is 0, s.LookThroughBlock will be zero.

6.7.1

  • CHANGE Train reversal now supports reversal if the train's tail is in a multiserver in a track node.
    Additionally the route pointer is now advanced when as the reversal occurs (since the train is not entering a node via the usual entry where this normally occurs).
  • NOTE A note that whilst train reversal is a new capability, no model file format changes have been required so far and the file format index has not been increased yet during this experimental stage.

6.7.0

  • NEW Initial implementation of train reversal.
    If a train in a track node on a network using train length instead of loop delays re-enters the section its tail is still occupying, the train performs a direction reversal.
    The back of the train becomes the front and the train proceeds in the opposite direction.
    This is useful in situations where a train stops and the crew swaps ends.
    Trains whose length extends over multiple roads and multiservers (inside locations) are supported. It is an error to try reverse a train whose length is not completely consumed by tracks or multiservers (ie: one still entering the model).
    Currently reversing when the tail of the train is in a multiserver is not implemented. This will be added shortly.

6.6.1

  • NEW Help menu has option to show release notes (assuming ReleaseNotes.txt is in the same folder as Planimate.EXE)
  • FIX Planimate no longer displays an error if saving over an existing model and the option to replace an existing database is answered no.
  • FIX Copying and pasting routine lines now carries through any referenced routine attributes more intelligently. It no longer asks to create them.
  • FIX Added extra tests to prevent code evaluated on an IF test that fails with a model error
  • FIX For the case that a newer model format is attempted to be loaded by an older planimate version, it is no longer removed from the recent history list

6.6.0 (new file format)

  • NEW Graph RHS scales can now also be given a title
  • NEW Graph Y axis property YScaleFmtOverride and YScaleFmtOverrideRHS allow the formatting used when displaying a scale to be overridden.
    Note that you cannot override using a label list format but a column formatted for label list can be overridden with numbers.
    This is particularly useful for giving the RHS scale its own format
  • CHANGE Graph Y Scales now allocate separate space for graph Y titles if enabled instead of the y titles sharing the same space with the Y scales
  • FIX Buttons configured to popup a panel would corrupt Planimate if clicked whilst the panel was already popped up

6.5.3

  • FIX Tool tips which appeared over the window that owned them (eg: top row of palettes) were disappearing in Windows 7 (and likely later versions) due to a change in Windows' messaging behaviour.
    Generally this affected editing more than model run as the panel display is double buffered during run which prevents the problem occuring.

6.5.2

  • FIX Pipe load monitoring / limiting was broken in 6.5.0
  • CHANGE Border styles for views and dials now default to single rect

6.5.1

  • FIX Reworked the gantt bar click popup to use a multi-column list with auto-sizing
  • FIX No longer repeat database open error messages in map paint objects
  • NOTE Developers should be aware that the manifest change in 6.5.0 prevents Planimate models from writing to the Program Files directory, any attempt to do so triggers a file open failure instead of running Planimate in compatibility mode (with associated messages from Windows).
    This is as intended. To summarise: Planimate applications should not expect write access to files in the "Program Files" folder.

6.5.0

  • NEW Panels have a new option "Broadcast Pipe Clicks" which causes pipes on the panel to send the new broadcast "_pipe_clicked" instead of displaying the default popup.
  • NEW Pipe Load Limiting can now be enabled and disabled on the fly.
    The pipe "Load Limit" reference can always be edited. The pipe option "Load Limiting Active" selects whether the pipe will start the run with load limiting enabled.
    The Object property ObjectPipeLoadLimiting enables the limiting behaviour to be read and controlled during a run. Note that the runtime setting of this property does not affect the option set during editing and the pipe will revert to this setting on a restart of the model.
  • NEW Change object "Save Panel Image" now supports PNG and JPG formats as well as BMP. The file type determines the encoding mode.
  • CHANGE Routine listings now write to a file name based on the name of the change object.
  • FIX Updated Planimate's manifest to prevent bogus compatibility warnings under Windows 7/8 on some models.
  • FIX If the option was selected, PL was doing a restart on error even when a close was being forced by its owner when running as a DLL
  • CLEAN Removed obsolete term-within-term code since PL as a DLL is only supported with PL running in its own thread.

6.4.3

  • NEW Can add item attribute to watch list by selecting it in the item click pop up menu
  • FIX View "Edit Order" could not be returned to zero after being made non zero
  • FIX Can select routine attribute from the routine editor while paused, this gives access to the watch list add menu.
  • FIX Watch list was causing huge slowdowns once opened as it was updating itself unnecessarily when items that were not being watched were deleted.

6.4.2

  • FIX Graph Views and the settings dialogs had an incorrect datatype which would mess up AARRGGBB colours under 64 bit versions only.
  • FIX Column overlay graph grid lines/scales are now drawn behind the graph making them consistent with Log Driven Graphs.

6.4.1

  • NEW File operations "TestFileLines" and "TestFileColumns" now support the "Show File Browser First" option and set the s.LastAccessedFilePath / s.LastAccessedFile attributes. This is useful as you can test the file's column column count then use the value to control how you read it, using the file/path that the user selected.

6.4.0

  • NEW Right clicking on a watch list item enables its siblings to be added or removed from the watch list
  • NEW Attribute editor enables siblings of an existing attribute to be added/removed from the watch list
  • NEW File operation "TestFileColumns" returns the number of columns in the first line of the specified file. Tab delimiting is used unless the "Delimit using commas" option is set, in which case the file is treated as CSV and any commas in double quoted enclosed text are ignored.
  • CHANGE Closing the watch window now hides it without removing its contents, enabling it to be restored. Note loading any model clears the watch list
  • NEW PL as a DLL API now supports PL_SuspendThread() being invoked multiple times or recursively as long as each call is matched by a PL_ReleaseThread() and all the calls occur from one thread, separate to Pl's work thread
  • NEW Key linked lists now report their owner in LinkedList errors

6.3.1

  • FIX StdDev was broken for > about 45000 values due to an integer overflow

6.3.0 (new file version)

  • NEW Column overlay graphs can now plot points on lines and area graphs using an icon selected in the overlay's settings menu. This is useful with graphs configured to allow dragging of points.
    Log Driven graphs will get this capability in a future version
  • CHANGE Internal rewrites (icon nametables, graph plot cache)
  • NEW Planimate DLL API enables a callback function to be registered for when the model becomes paused. This simplifies a container application tracking when a running model reaches a target time and becomes paused.
    Other enhancements to support advancing to time are documented in the Planimate API release notes and on the wiki page:
    http://wiki.planimate.com/Planimate_as_a_DLL
  • CHANGE Run pause reasons (different to stop reasons) have been extended to include AdvanceTimeReached. These are enumerated in the planidll header for users of the Planimate DLL.
    Internal cleanups and renames of code related to run pause and advance to new event time.

6.2.1

  • NEW Added logging of SetPortalIcon() to the debug logger. These get displayed under the "Info/Notes" category (for now) as "GraphicsOps" events and include the new icon name in the Info column.
  • NEW Added "Show Watch Window" to breakpoint dialog menu
  • FIX If the table column list was used with a column that was too wide for a table view, it would cause PL to close.
  • FIX Cells with "Rename Instead of Adding Labels" now work with sub label lists.
  • FIX SetColorPaletteEntry() was flipping red and blue in 6.2.0

6.2.0

  • CHANGED Renamed routine operation ChooseColor to ChoosePaletteColor Existing uses will be automatically updated
  • NEW Routine operation ChooseColor enables selection of an RGB colour by an end user.
    Returns the AARRGGBB colour (AA always FF) or -1 if colour selection was cancelled by the user.
    Modellers must check for the -1 case. It will appear as FFFFFFFF in an ARGB formatted cell but its not actually a valid colour.
  • CHANGE The routine operations ColorPaletteEntry and SetColorPaletteEntry now return and expect alpha values as well.
    Existing models and colour data need to be updated to include the alpha value. Table data should be formatted as "Colour AARRGGBB". The alpha value needs to be FF to make the colour fully opaque.
    A reminder that user colour values are stored as 0xAABBGGRR but the BB and RR get swapped by the format code. This was explained in 6.0.0 release notes

5.1.8

  • FIX When setting a paint buttons's text, it now re-evaluates its state first, making it possible to set the text for other states by changing the control attribute then setting the text.
  • FIX Moved "Add To Watch List" to bottom of attribute menu and ensure it does not appear for item attributes when editing a class

6.1.7

  • NEW Watch list (tools menu) This enables watching of portal, routine and item attribute values at a fine grained level with watching controllable by model code as well as by selection from the attribute editor.
    Its useful in conjunction with stepping through routines.
    Note that watching table cells is not supported as they do not inherit from attributes. Tables can have table views unlike routine and item attributes in a routine.
    Item attributes are watched per attribute per item.
    The routine operations WatchListAdd() and WatchListRemove() enable attributes (item, portal, routine) to be added and removed from the watch list on-the-fly. They are the only way to watch an item attribute.
  • NEW Debug Log window and Watch List now save their positions in the INI file. This can be controlled using [Edit] SaveDebugWindow and [Edit] SaveWatchWindow.
    The co-ordinates are saved in DebugWindowX,DebugWindowY and size in DebugWindowW and DebugWindowH, same for the watch window except its WatchWindowX etc.
    if the W/H values are 0 (initial default) then PL auto-positions the window. Hence making the width/height values 0 and setting SaveDebugWindow=0 will causae Planimate to act as it used to and not save whatever position the debug window is in.
  • FIX Double clicking a change object during run no longer causes intermittent crash if the model only contains one change object. This was caused by the icon cache reloading the change icon

6.1.6

  • FIX Routine line selection after cut/delete rows is now consistent
  • FIX Debug-stepping now supports panel open routines but avoid changing panel whilst stepping through such routines.
  • REMOVE Management of DataSet1 (Scenario) save structures. These were wasting memory and causing problems with dynamic portals

6.1.5 (new file version)

  • NEW Cell text/background colour now supports RGB values as well as indexed colours.
    In previous versions the only way to set/get cell colours was by using the "Property" value on a table cell

    eg: t.table[1][1].Property which returned an integer consisting of the text and background colours in the lowest and second lowest bytes respectively.
    This mechanism is unuseable for RGB colours and is now obsolete, though still supported for the time being.
    4 now routine operations enable reading and setting table cell text and background colours as full ARGB colours:
    GetCellBackgroundColor() GetCellTextColor() SetCellBackgroundColor() SetCellTextColor()
    These expect a cell reference in the first parameter and a Plaimate colour value (either colour index or ARGB) for the colour they set/return.
    If a cell does not have a specific colour set, the "none" colour of 255 is used.
    NOTE that partially transparent cell colours are not explicitly supported, in some circumstances there will be overwrites if the data in the table changes dynamically. You might be able to get around this by giving the table view a transparent background colour but note that this will impact redraw performance.

  • FIX Expression parser now interprets AND, OR and XOR as '&&', '||' and '^'. This fixes importing of routine listings generated by Planimate which use AND, OR and XOR in conditions to be more friendly to non C programmers.
  • NEW Ctrl-A in the routine editor selects all routine lines
  • NEW The pow(x,y) function (x to the power of y) is now available in expressions as well as a routine operation
  • FIX Routine import from clipboard now sets undo

6.1.4

  • FIX Repaint causing advance to time box to reappear when not needed and remain stuck open
  • FIX Importing text into routine now handles non breaking spaces (space character with high bit set).
  • NEW The hierarchy and portal menus have a new option "Copy Path To Clipboard" which copies the names of the steps in the hierarchy to reach the portal
  • NEW Tip text for portals is now shown in edit mode as well along with the object name/type
  • NEW If the first line of a routine is a comment, it is shown as tip text for the change object in edit mode (experimental)

6.1.3

  • NEW System attribute "s.LineTestMargin" sets how many pixels (in Planimate panel co-ordinates) Planimate uses to detect clicks on lines. In cases where lines are in close proximity, the modeller may want to reduce this.
    This is global to the model but can be changed using a panel open broadcast to make it panel specific. The value is not saved with the model and is reset when a model is loaded.
    The default is 5
  • NEW Paint Map Object has a new option "Wrap Map At 180E" With this option on, the map display supports wrap-around at its right where the International Date Line is normally the limit.
    This is useful when maps involve areas near New Zealand.
    When this option is on, co-ordinate calculations have been updated to allow objects to be positioned East of the date line (they will have longitutes co-ordinates > 180).
    This option is only supported when the "Fixed Map Zoom" option is also enabled.
  • NEW PasteFromClipboard has been enhanced to now return a result code. For older models this is set to s.NullAttributes.
    The result code will be non zero if Planimate reported an error during the import operation.

6.1.2

  • FIX Broadcast Bug:
    If in paused mode, a button click broadcast triggered code that dynamically changed the view panel of a viewport, and the new view panel of the viewport contained another viewport, then Planimate would "continue" the run even though this was not requested - the model should just pause after the button click broadcast.
    This was caused by the nesting of panel visible broadcasts as the outer viewport opened its new panel and that panel opened its viewport and the panel it pointed to.
    After a broadcast, the broadcast send code checks if the "continue" flag was set by the model, so it can instruct the engine to proceed with the "continue" after the broadcasting has completed (as set by s.ContinueRun = 1).
    However this test was incomplete, it was detecting the "continue" flag set when the engine state was "continue & pause after epoch" which is used to clear side effects of broadcasts.
    Specifically, the recursed (inner) broadcast handler was converting the "continue and pause after epoch" state set by the outer broadcast handler into a "continue". The test is corrected.
    Look out for any cases where a broadcast does not fully execute all expected same-time events/side effects.
  • FIX Handling of non gradient colours for paint rectangles

6.1.1

  • NEW Log Driven Graph mode "Point Rectangle" can be used to draw rectangles with co-ordinates based on graph-space values. Used with transparency, it is very effective for highlighting parts of a graph display.
    If _borderstyle is set, a border can be shown with _bordercolor if the _Borderstyle is set to "Single" or "Double". The standard rectangle border styles are supported.
    The _x and _y co-ords set the lower left corner of the rectangle. Additional columns _x2 and _y2 are used to specify the top right corner of the rectangle.
  • NEW Log Driven Graph mode "Point Line" can be used to draw a line with co-ordinates all passed in a single row of the data table. This requires columns _x, _y, _x2, _y2 and supports _color (or _linecolor if present), _width and _style columns.

6.1.0

  • SPEED Rewrote substantial parts of routine line processing to streamline the code and make routine lines execute faster, particularly the ones that are likely to be executing in lookahead.