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

From Planimate Knowledge Base
Jump to navigation Jump to search
(Created page with "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 forma...")
 
No edit summary
Line 437: Line 437:
the code and make routine lines execute faster, particularly
the code and make routine lines execute faster, particularly
the ones that are likely to be executing in lookahead.
the ones that are likely to be executing in lookahead.
[[Category:Release Note]]

Revision as of 16:03, 18 March 2014

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.