ReleaseNotes:Feature Review December 2009

From Planimate Knowledge Base
Revision as of 18:43, 12 January 2010 by Rick (talk | contribs)
Jump to navigation Jump to search

2009 was a busy year for Planimate, releases started at 5.21k and ended with the release of 5.25c in late December. An exceptional number of groundbreaking achievements were made in both capability and usability. These are outlined on this page.

Platform Core

64 Bit Version

Planimate compiles as a 64 bit Windows application. This enables enormous tables and network model sizes, well beyond the 2GB limitation of the 32 bit version.

Planimate as-a-DLL

A programming interface has been created enabling Planimate to be embedded in other applications with mechanisms to access the Planimate model's data and engine. Capabilities include:

  • Retrieving a model's Data Object list which can be used as a data dictionary.
  • Retrieving and setting data objects in the model (tables, labels, attributes).
  • Initiating a broadcast to the model, with tuple attributes.
  • Receiving a broadcast from the model (as a “callback”) with attributes.
  • Embedding the PL window into a window provided by the DLL caller.
  • Creation of PBA DLLs from the PBA creation dialog.
  • Accessible either directly from C++ or under dotNET via an interface which provides higher level management of the PL DLL.
  • Supported for 32 and 64 bit PL versions.
  • Recent PL releases can make themselves a DLL, you do not need a separate download.

Planimate calling a DLL
Planimate has had the ability to call external code. This API now includes support for sending text and label list data to and from the DLL.
Certain types of DLLs can be packaged into a PBA in such a way that they are never exposed to the end user, giving security for valuable IP they may contain.
DLLs can directly refer and work with PL tables, avoiding copying/duplication of data across the interface.
DLLs can persist / hold state between runs of the engine.

Track/Train Modelling

Exposing more internal track management constructs to the modeller.
Support multiple track roads (up to 6 for now).
Modeller can determine roads a train is allowed to use at lookahead time.
Modeller can explicitly reserve a road for a train.
Loop Delay control and overrides.


Planimate calling an EXE
Wait for called EXE to complete option enables PL to wait but still look “alive” until another process it calls completes.
Option to “keep called EXE front” ensures PL stays behind another process window it has invoked.
Command lines can be built up from separate strings using '&' to combine them, avoiding having to use label lists.
Standalone Applications (PBAs)
Can build 32/64 bit application/DLL from a 64/32 bit version if you have both PL EXEs
Can customise the icon an end user sees for an application beyond the default PL icon
Corporate environment support
Platform gives access to directories for user data and application settings. New OS versions and corporate environments can be very restrictive.
Temporary folder used for copy/paste as default might be read only.
PL can retrieve username / location information available on LDAP managed networks.
Existing ability to login as different user for PL and to map drives under that different user credential.
Model Editing
Consolidated View Panels, Dynamic Panels and Application Panels into one panel type.
Enable any panel to contain views to out-of-scope data.
Panels/portals can be moved around the model without having to copy them.
Sidebar menu more consistent.
New option editor and initial support for editing multiple objects simultaneously.
Dynamically resized panels and simple anchoring supported (for viewports as well now).
Planimate Help menu getting more quick references as more of PL's internals are becoming table defined. Assistance needed writing some descriptions which can be embedded as context help.
Runtime Engine Changes
Realtime timer broadcast has been replaced with a mechanism where a modeller can request a broadcast after a real period of time. This enabled internal cleanup and helps prevent runaway situations.
View properties can be set in code for different view types (table, log driven graphs etc).
Button “Check Parents For Broadcast” option introduced a new broadcast method into PL, in addition to scoped, panel only and global. In this mode PL tries to send the broadcast as scoped to the destination panel. If no listener is found, then the scope is “raised” to the parent and it tries again, and so-on. This is useful for modular models where a handler is in a sibling to the portal where the broadcast initiates.
Click and drag broadcasts can be received by the model (map display).
Free Text has been extended to attributes. Together with new routine operations for assigning and appending strings plus over 15 text manipulation functions, Planimate is more adept at processing textual data which in the past required messy label list operations.
Multi-line text display/editing in table views.
Column filters support multiple match terms.
Item table references can be assigned to a data object reference which is a table.
Rewrote the table view code for more consistent display and operation.
Partially transparent icons
Ability to intercept table cell click broadcasts before and after an edit; the edit can be blocked or allowed.
Dynamic combo list updates contents as text is typed.
Routine operations to access, clear and reapply column filters.
A new random number generator is now on by default.
Many speed optimisations; better uses of caches, recycling data structures and binary trees for lookups
Dataset 2
External files can be bundled into a dataset2 file. They will be compressed and encrypted along with the rest of the data and can be extracted on demand by the modeller.
A dotNET Dataset2 API is being developed.
A new label list option, settable at runtime, enables a modeller to determine whether labels are loaded by name or by index.
Name Space
Label list names were the first names to have new naming rules imposed. This exposed a number of issues which have discouraged further progression.
It is recommended that the new naming conventions be followed in any case where possible.
D