ReleaseNotes:Planimate 5.08 Release Notes
From Planimate Knowledge Base
- NEW Routine display window includes a "Last Invoked" field above the list which shows the simulation time at which the routine was last invoked (in lookahead or move)
This field is reset when the engine restarts
This is useful for verifying that a given routine has been executed when expected.
- NEW Table columns have a new options "Open With Combo List". This causes cells with combo boxes to open with the list down when the cell is clicked.
- FIX Dialogs in Yes/No/Cancel mode were not returning -1 on cancel due to an extra validation
- FIX GetColumnProperty now works when passed a column as well as a cell reference
- CHANGE Column and block selsction broadcasts now set the _data_row and _data_col fields as well. For a block broadcast, this corresponds to the top left corner of the block
- NEW New Change Object->File Write option "Write precision as displayed" causes formatted tables to be written using any column specified display rounding.
By default this is not enabled (to prevent unexpected loss of precision) but in some cases the format as displayed is desired
- NEW Routine operation "SetLastDataFile" enables the last data file read/written to be explicitly set. This is useful if the filename is being shown in the titlebar and you are using DataSet2 (which does not set this name).
- FIX In the case where a number of pipes used matched cells for their source limiting together with control attributes in the same table a pipe updating its source limit could mess up the scheduling of the other pipe events.
Reworked things in the pipe event handling to prevent this interaction
The use of matched cells with pipes isn't recommended but if you want to use it then performance will be much better if the control attributes come from a table which is not changing very often.
- NEW Modeller defined dialogs have a Yes/No/Cancel button configuration clicking Yes returns 1, No returns 0 and Cancel returns -1.
Clicking the [x] to close the dialog returns -1 as well
- NEW Planimate can now import DLL's into a model's DB file and execute routines in them without extracting them. This means a standalone EXE can be shipped with some code in DLLs which remain hidden.
A modeller needs to put the DLL into the model's DB file (not a shared DB file). Use the Resource File Admin menu option.
The file browser for the DLL Call selector can also browse into DB files.
Its a good idea to keep the original DLL files away from the folder with the model to guarantee the right version (the one placed into the DB file) is read during editing and building of the standalone EXE.
Remember that the standalone EXE builder will not include the DLL unless its placed in the model's DB.
- NEW Routine operation "TrackSectionType" returns the type of a track section, using the "_section types" label list
- NEW Route system attributes are now available during lookahead at the location which is the last step in the route. This is useful in enabling processing of the entire route at the last location during lookahead.
s.routestepidnex at the last location will be set to 1 past the number of steps in the route. This is consistent with the route step index always pointing to the next step in the route once you the train enters a location that was in the route.
The modeller can assign the route step index 1 beyond the last step, important if the modeller is "exploring" the route during lookahead.
Attempting to obtain the location while the index is beyond the last step will result in a model error, since logically the route has "finished" and there is no next step.
- CHANGE Have cleaned up the portal's lookahead code; this involves tracks, spatial links and normal item flows. There should be no noticeable difference; possibly a speed increase.
- CHANGE Removed re-initialisation of menubar when clearing for a custom menubar which should remove the flicker as long as the custom menubar is added immediately after the clear
- CHANGE Increased the maximum # of steps in a route to 512
- FIX The new Advance to time dialog was adding a random offset to the time entered. An internal field was not being initialised properly
- NEW The title of the free text editor form can be set by the modeller using the "SetFreeTextTitle" routine operation.
This can be set in a pre-edit cell click broadcast, enabling the title to be dynamically changed for different columns and rows.
- NEW Ctrl-Enter in the note editor dialog closes/accepts the edit
- FIX If an error occurred while resolving a reference used in a dataset, it could crash the platform - fixed
- FIX Dataset2 loader has extra validation against a dataset file which results in no header XML being read.
- FIX If a table view had a scroll set and the target table had columns removed, the platform would crash if there was only one column in the table OR if a fixed number of columns was specified.
- FIX Pasting paint objects clips them against the panel so they wont paste outside of the viewable area
- FIX Pasting objects now pastes them relative to the place where the mouse was originally clicked, not where the mouse is at the time the option is selected from the context menu
- CHANGE PL no longer warns when loading an "older version" model and no no longer marks it as modified by default (there is no need to save a model to "upgrade" it if just running it).
You can restore the message (reworded) by setting the new WarnOldVersion INI value to 1.
This defaults to 0 to reduce distractions for first time users.
- FIX Restored use of the red block when PL cannot load an icon. It was defaulting to a 0x0 empty image which didn't give visual feedback of the load error.
- FIX Printing of panels containing cached BMPs/ICNs was broken (JPGs and Paint-Image objects were OK). This is now fixed.
Printing of partially transparent icons will print white for the transparent parts; the Win32 printer api does not guarantee services that are needed for layering and doing it using an offscreen buffer could potentially use too much memory when printing large panels on high resolution devices.
If you want an exact image of what you see on the screen, use a screen capture or Planimate's in built save panel to BMP routine operation.
The printing operation is intended for high resolution printouts of tables and report panels (does font substitution) rather than an accurate rendering of the graphics/transparency.
- CHANGE Special case handling for replacing a reference in a routine:
If the 'from' and 'to' are both table references, then any matching references to the 'from' table name (cell, column etc) will be replaced with the 'to' table name EXCEPT if the from or to references are dynamic or item table references.
In this case, only exactly matching references will be replaced.
This is because dynamic and item table references use extra fields to specify them which are not available in all the reference types.
- FIX Comparison testing for references was comparing fields which are not visible/used in some modes, leading to lack of a match when the references were actually the same.
- FIX Fixed a few editors which could generate "invalid screen" errors if used from the context popup when right clicking on a portal in the sidebar (choosing icons, object attribute mapping).
- NEW Routine operation "GetProgramName"
This retrieves the folder where the currently running PL EXE (or standalone EXE) is located and appends a given filename to it.
The resulting file/path is available in s.LastAccessedDataFilePath
This is useful where a Planimate based applications wants to read or write a file in the same directory as the program EXE (which is common to every user on the system) instead of the Documents And Settings area (which is specific to every user).
Note that on some corporate environments, writing to the program directory will be restricted.
- NEW Referencing s.NullAttribute (system null attribute) in a place where Planimate expects a label reference will now resolve to an empty string rather than a 0. This can be useful sometimes in string operations.
- NEW Delete confirmation messages for portals include the portal's name
- FIX Fix a memory corruption when the "Model File Info" option was used. An incorrect string buffer was being passed and being overwritten, corrupting the model in memory.
- FIX Fix printing of foreground object icons
- CHANGE Removed the automatic redraw after a table's row or column scroll is set by code. This was causing flickering when printing.
If a modeller is setting a table view's scrolls and the view is currently visible the modeller now needs to force a repaint once the new settings are made. This is not required when printing.
- FIX Enhanced broadcast handling to prevent a "page printed" broadcast handler from processing windows events, causing unexpected redraws and other things to happen in the middle of a print job. This was an issue for the "_page printed" broadcast handlers.
- FIX The "point browser" option was not being put into the correct menu in the Graph Options dialog. This made it look like it was on when it was off. Selecting OK in the dialog with it in the "enabled" menu actually enabled it.
- FIX The updated animation manager was not allowing object icons to correctly print as it was rendering them into offscreen buffers during a print job.
- NEW A new Advance For Interval/Advance To Time dialog
You can toggle between advance to date/interval within the dialog
Advance for interval remembers the separate components of intervals like 2M 5d without collapsing into a single value.
IT correctly advances by months and years specified, based on the current calendar time.
- advancing by "28w" will retain "28w" next time you advance - advancing by "1Y 1M" will actually advance by 1 year and 1 month based on the current calendar date - fractions are allowed, so you can advance 1.5M
This will be interpreted as 1 "calendar" month plus 0.5 of a "relative" 30 day month = 15d.
The dialog also works in relative (non calendar) time modes.
- CHANGE Rework of the calendar time code to better support dates beyond the year 2035.
Planimate will now read the system date correctly if its set beyond 2035.
A model can now have edit and run start dates beyond 2035.
Previously, a run could pass year 2035 but not start at a date beyond it due to 32 bit overflow. The representation of start dates has been changed to 64 bit values, eliminating the constraint.
There is a hard coded limit at year 3000AD. Please let InterDynamics know if you need to model beyond this year.
- CHANGE Rework of IDKBase code to use new 64 bit time code. This wont affect anyone unless you are using a VPN connection to the server to access the knowledge base directly.
- CHANGE 4 digit years in menus and clock
- CHANGE The default calendar edit base time is now 1-jan-2007.
Note that Planimate still starts in "relative" time mode, as previously. this is the initial date that will be suggested when a new model is first switched to calendar time mode.
This default only applies to new models when first switched to calendar time mode.
The date is common to previously chosen start dates in that its a Monday.
- FIX Pressing ESC on the pause/continue simulation dialog is now like selecting pause
- NEW System attribute s.CPUID
This returns a value identifying the type and revision of the CPU. This is intended to help modellers secure their models from copying.
Its not a unique CPU serial number as modern cpus do not support this
- NEW System attribute s.SystemID
This returns the volume serial number of the drive containing the Windows system32 directory. It may be useful to modellers wishing to help secure their models from copying.
Note that a user can set the volume serial number of a drive.
- CHANGE The condition editor confirms before allowing a "None" selection to wipe all the conditions under it.
- FIX Adding/Removing columns from a view when column filters were enabled would cause a crash
- NEW The portal attribute list and routine attribute value list (accessed during a breakpoint) now have an additional display of the "raw" value of the attribute. This is always formatted as a value with 15 digits of precision, so expect to see long fractions in calculated values.
This is useful for displaying to the developer the underlying index for a label as well as values whose formatting otherwise strips the precision
- NEW Routine operation "SetOncomingCheck" enables the "Oncoming Train Check" portal option to be set/cleared by the modeller.
For Portals which are not acting as a junction, this option may be turned off. It should remain on for portals acting as a junction.
- FIX Removing columns from a scrolled customised table view would cause a crash if there remained no columns in the scrolled region
- FIX The ICN to BMP converter will no longer overwrite any BMP with the same name as an ICN in a DB file. It will report a message and continue on, leaving the ICN. (now working)
- CHANGE Default of INI option "UseFullAttrefEdit" is now 1.
This will only affect when starting without an INI file and keeps PL consistent with the tutorials.
Experienced users will want to set this option to 0 if starting with a new install.
- CHANGE Inner about box credits
- NEW SMALLER EXE
The 2 large about box BMPs for editor and standalone compilations have been converted to JPGs and included as resources within the PL EXE itself. This makes the EXE much smaller and means the
_!system.db need no longer contain a _PLBANNER.BMP which will reduce its size too.
This was done to prevent the main about box depending on an external BMP in the _!system.db file (which could have been tampered with).
_PLBANNER.BMP should be left in _!system.db if you plan on using older PL EXEs in the same directory.
Note that whilst the EXE is smaller, there isn't a saving when its compressed as the BMPs were compressing by 95% or so.