ReleaseNotes:Planimate 4.10 Release Notes
Planimate 4.10I j 22/12/97 Planimate
- 1 4.10i
- 2 4.10h
- 3 4.10h
- 4 4.10g
- 5 4.10g
- 6 4.10f
- 7 4.10f
- 8 4.10e
- 9 4.10e
- 10 4.10d
- 11 4.10d
- 12 4.10c
- 13 4.10c
- 14 4.10b
- 15 4.10b
- 16 4.10a
- 17 4.10a
- 18 4.09f
- 19 4.09f
- 20 4.09e
- 21 4.09e
- 22 4.09c
- 23 4.09c
- 24 4.09a
- 25 4.09a
- 26 4.08e
- 27 4.08e
- 28 4.08d
- 29 4.08d
- 30 4.08c
- 31 4.08c
- 32 4.07o
- 33 4.07k
- 34 4.07j
- 35 4.07i
- 36 4.07g
- 37 4.07g
- 38 4.07f
- 39 4.07e
- 40 4.07d
- 41 4.07c
- 42 4.07b
- 43 4.07b
- 44 4.07a
- 45 4.06g
- 46 4.06f
- 47 4.06d
- 48 4.06c
- 49 4.06b
- 50 4.05c
- 51 4.05b
- 52 4.05a
j 22/12/97 New Features
Enhancements • When Routine editing, Endifs, End loops, End selects are automatically added when the opening statement is added.
• Prev/Next buttons in routine edit dialog.
• File extensions now include descriptions.
• Paint image is now BMP by default.
• "Back" option (Under Window in Menu Bar) or Ctrl-B goes back to the last screen. This is only a one level back, selecting back again gets you back where you started. Useful when a hot jump takes you somewhere you dont want to be
• F2 key edits table cells
Known Bug Minor memory leak, source not yet identified.
18/12/97 New Features
Enhancements • Implemented renaming of attrefs when a portal, item or class attribute is renamed for portal attributes, only attrefs in scope are renamed for item, all item attrefs (for any class) referencing the given name are renamed.
• Implemented copy/paste of calculation lines (replaces the block move). Copy buffer is retained between change object edits but cleared when model run or refs scanned for any reason (find refs, delete attribute)
• A new "Add item" at the bottom of the routine list enables paste (right button menu) or quick add (double click)
BugFixes • Fixed dispatcher mode dialog
08/12/97 New Features
Enhancements • New dialog based routine step editing (instead of the pop up list)
• Gathering RTF notes.
• Clicking in "icon area" in status bar brings up item class list
• Default field/default button/field selection of many dialogs reworked.
• Shortcuts / rework of attribute, table, label, multilabel dialogs, plus return to list after editing content.
BugFixes • More dialog ordering bugs fixed (dist pattern).
• Built using a different compiler header/library (report any unusual behaviour in previously fine dialogs).
New dialog based routine step editing (instead of the pop up list) You can use the Arrow Keys to highlight a line in the calculation list in the Routine Editor, then use the space bar to select the Line for Editing. A new dialog is now displayed, with new buttons and features.
Attribute reference dialog contents can be copy/pasted into each other.
Use the Copy Button if you wish to retain a reference for pasting. Subsequent Attribute selection Dialogs provide a paste Button.
(Once this is proven we will support multiple copied attrefs).
Gathering RTF notes There are new editing options in the context menu for the RTF Note Editor. A “Gather” operation has also been added to the Database editing utilities. You can now select all the RTF notes you want to bring together into a single RTF file.
20/11/97 New Features
Enhancements • Pasted and ctrl-pasted portals retain customised pentry/pexit names if the portal name does not change.
• Space bar now selects current item in multi-list as well
• Step column wider in routine list
• No longer treat single column tables differently in editor (so column label can be used).
• Navigate menu in window menu, CTRL-N as shortcut to the screen list.
BugFixes • Crash bug fixed, portal entry/exit ctrl-paste failed due to name matching problem.
• Variable length table resize - scroll gets reset so should not get empty window.
• Pasting new table (after copying using Selectall/copy in the table button dialog) - extra button now properly labelled as "Paste" not "Copy".
11/11/97 New Features
Enhancements • Editing changes
BugFixes • Splitter no longer includes extra items when "no items produced" which would cause crash if selected (cant have no-select items in list).
• Proper repaint when screen properties are changed.
Editing changes Accelerator / hot key enhancements (now started). Many dialogs now have working arrow keys in lists (focus set to list at start)
Table editing is now modal, shortcut keys on buttons and arrow keys work together.
The Space bar now has a role to play: It enables edits on the current cell of a table. You can no longer use the Enter key to edit table cells - only buttons can receive it. In a List Pick Dialog, Space moves item to other side. In an Item pick, Label pick etc: space selects highlighted item.
29/10/97 New Features
Screen Visible system attribute.
Play Sounds in Planimate
Enhancements • Spawn now avoids DOS box
• Entry: Pause-click with continue option - no message shown in this mode, model immediately continues after user clicks on it.
BugFixes • None
Play Sounds in Planimate Now you can have the user, or the system play a sound while working or running a model.
There is a new Button Click-action to play a sound. This play is asynchronous to the model run, so if you need to stop it before it is finished, use another button and click action with an empty name to enable the user to stop any playing sound.
File option in a Change Object can now be set to play a sound (async or sync is optional).
Screen Visible system attribute. Screen Visible system attribute. This new system attribute can be either Read or Set. To Read: Ask the model if the screen is visible: returns 1 if visible, 2 if it is not This way you can detect what the user is looking at, and perhaps alter the animation to suit them. To Set: Assigning a value of one to the screen visible attribute makes the screen visible! You might think of using this to jump to screens if errors or interesting behaviour occurs.
23/10/97 New Features
Enhancements • Portals can have names exported (no throw into portal though)
• Ctrl-paste of hierarchy over hierarchy with exported objects will attempt to transfer the export name/ids to the copied objects, where the systems match in structure and name. Unlike 'retain attributes' this works beyond the first level of the copied system
BugFixes • Load bug fixed: long export names corrupting memory
22/10/97 New Features
Enhancements • Can select/browse trip and object labels
• Only on move is now the default for change objects in a Meta Panel.
• Assume no blocking for all switches in a Meta Panel.
BugFixes • Correct object export name shown in label formatted column
• System Label list title is more useful.
20/10/97 New Features
Enhancements • Splitter can now transfer some item attributes and item icon
• Splitter avail in MetaPanel
• Added "Up To Owner" button action
• Longer export names supported (and default name)
• Object palette handled properly, does not stay at front
• Started adding support for "Object location" index (might be useful in loops?)
• Can edit export info within the export list, separate show and show/exit options
Planimate 4.10 18/10/97 Planimate 4.10 18/10/97 Important notes: • Compatibility window moved to 176 (last dos version) keep an older 3.90 - 4.07 EXE to convert older mdls.
• Removed track monitoring/limit/crews.
• Removed time tables.
• Removed all signal handling (Demand-Pull Assemblers), old models with signals cannot load, use old EXEs to remove them.
New Features • New name for the software product - Planimate™ • New System Label Lists:
_Model Routes label list enumerates all defined trips
_Model Objects label list enumerates all exported objects (The object’s index is used for place operations).
_Broadcasts label list enumerates all created Broadcasts.
• META Panels
• Capacity Switches
• ITEM Placement
• New system attributes
• New Exported Objects List
• Set Password for Editors
Enhancements • Entry: increased default limit & digits allocated increased default time range (10 "relative" Planimate years) default item interval now every minute
• Loading an older format model marks it as unsaved
• Status bar now prevents change of screen during animation, and in Interdyne mode
• “/saveonexit” command line option - saves model if not saved on exit.
• "Simulation paused" changed to "Model run paused"
• Calendar time calculations: / system attributes
• Enhancements to simulation engine
• Interdyne Enhancements:
• Internal engine change - optimisation to Move()
• Model Control: Pause/Stop enhancements
• Stack checking implemented for the key engine operations
BugFixes • Fixed entry bug (new defaults were overflowing instance short int).
• Fixed unblock bug (was doing error check wrong way around).
• Table editing rework- system adds tables/mappers to correct screen when clicking on portal, and system handles change of screen during table/mapper edit properly.
• Cannot now select meta portal into flow.
• References for tables now works.
• Dial lines should appear now on print, still needs more fixes on half oval.
• Deleting last column in a table is tolerated by graph views - an empty (no column) table will save/reload with one column in it though.
• Table read (edit and run) supports empty cells, and uses the cell's clear value
• Hid "View" selection in subsystem, menubar & prevent mode selection in status line.
• Item count now resets to 0 for exit once count limit reached.
• Printing now redraws screen once done.
• Item descriptions during mouse-drag over the palette changed.
META Panels META Panels A Meta Panel is an environment where configurations/changes to the model can be made rather than meshing these into the dynamic model itself. You can use a Meta Panel to distribute items and broadcasts around a model (and co-ordinate using broadcasts) In a Meta Panel, only a subset of objects from the standard Object Palette is available.
No queueing capacity is allowed other than at Splitters. Capacity switches handle the traditional problems now. Meta Panels are triggered into activity by using broadcast entries to listen for Broadcasts from elsewhere in the Model. You Add Meta Panels using the Object View Background menu in Dynamic subsystems. Meta Panels can be hierarchically arranged, as you do with regular Portals.
Technical note: A meta panel is a portal prefixed by name _META. A normal portal cannot become a meta panel and vica versa. A meta panel follows all the usual scoping rules for attribute/table access.
IMPORTANT: DONT use normal (scheduled arrival) entry mode in meta panels. It wont be supported later on, and your model will fail. Only use broadcasts. If your dynamic model continually needs to activate a meta panel, it should not be a meta panel...
Enhancements to simulation engine Capacity Switches
Internal engine change - optimisation to Move()
Model Control: Pause/Stop enhancements
Stack checking implemented for the key engine operations
Capacity Switches If a switch will not ever be blocked (indicated to it by the "Not Blocked" switch option) then it can safely defer decision making until an item actually moves into it - no lookahead is required past the switch by the object behind it. This means all tuple, dialog and table operations can be executed in the change object behind the switch and NO CAPACITY is required between the change object and the switch for the switch to make the right decision. In fact loops can be formed between switches (with no blocking on) and change objects without intervening queues, etc. Don’t have more than one switch in this kind of a loop.
Internal engine change - optimisation to Move() If the destination of an item movement is the same object from where the item is leaving, things are handled more effectively (recursion is avoided) which enables arbitrary length loops to be set up with the new "capacity switch" capability.
Model Control: Pause/Stop enhancements Should be more reliable. If the user selects "Stop" but animation continues, the engine is attempting to complete the current event. This can be interrupted by clicking again, the option is now shown as "Terminate" and aborts the model without completing the current event's processing.
Stack checking implemented for the key engine operations Gives descriptive error message (not error code!) Lookahead limit raised (from 10 to 1000!) but when its reached an error message is shown rather than switching to an iterative algorithm (which did not guarantee execution order).
ITEM Placement You can now “Place” an Item into an object, using the new Exit Object Mode “Place Item into Object”. This option is only avail for exits in a meta panel In this mode, the "Location" system-item attribute should be set up to point to a target. Appropriate use of the Exported Object List, and its corresponding _Model Objects Label List will enable you to “Point” to the correct object.
Items can only be placed at time 0 for now. Dont forget to assign trip/step when putting item into track objects.
New Exported Objects List New Exported Objects List A new list option called Exported Objects is now available from under Edit in the Menu Bar. This list is a collection of those objects Exported by the Modeller into this list. Items may be “placed” into these exported objects at the beginning of the model run. This option is only available for exits in a Meta panel. This enables the modeller to customise the startup state of a model, right down to specifying part-completion of processes (including track section traverses) and setting values on any item attributes that may be required to be set at the very beginning of the run. Apart from the Portal, which is a special case, only objects with a delay capability or capacity are exportable. Exportable objects are: Server Multi-Server Queue Dispatcher In Tray Out Tray Splitter Assembler Track Object Portal Items cannot yet be placed into Portals, however they are useful for identifying Route Steps. The Object Edit Menu now has a new option, called Export, where you may export an object, giving it a specific name to be displayed in the Exported Objects List.
New system attributes These system attributes enable you to “Place” an Item into an object, using the new Exit Object Mode “Place Item into Object”. (This option is only available for exits in a Meta panel).
Location Set this by making reference to the _Model Objects label list.
Item Total Delay Set first, so item knows what delay is involved
Item Delay Left Set ONLY after setting Item Total Delay, engine needs it to compute effective item entry time.
BROADCASTS A very powerful enhancement to modelling. We have a new mode for Entries (broadcast receiver) and Exit (broadcast sender). The Broadcasts themselves are collected into a list of Broadcasts. This list is available from under Edit in the Menu Bar. Broadcasts may be created from this list, or you can define them “on-the-fly” when you create a Broadcast Exit. A broadcast occurs every time an item is sent into a Broadcast Exit. A "clone" of the item (known as a Broadcast Item) gets sent to EACH broadcast entry associated with (ie. listening to) that broadcast. Apart from its own Item ID number, it is identical to the exiting Item. Unlike a Message Item, the model can do whatever it likes with the Broadcast Item, it doesn't get returned to the source of the Broadcast.
Start thinking in terms of using broadcasts to co-ordinate model-wide activities (like initialise, prepare user reports, load from files). Combined with Meta Panels this feature is intended to can help get the model administration out of the dynamic model, so that animations are more congruent.
Anticipate addition of some useful default broadcasts like:
• model finished pre-init
• model being paused
• model being continued
• (user defined) table / attribute has been edited
• return to Planimate from alt-tab
• other ideas??
Calendar time calculations: / system attributes Days in Month -> returns # of days in the month for the given date/time
Advance Month -> can advance a calendar time value +/- months (keeping the same date) NB: You will have problems if the date is say Jan31 and you advance to Feb, because you will end up in March instead. This is not currently detected so he careful. Later version will probably stop the model run when this happens.
Form Time: Translates 3 attrefs (date, month, year) into a calendar time
Interdyne Enhancements: • Objects named with leading '_' are hidden in Interdyne mode. Use of _! and !_ are also ok to keep names hidden during edit.
• Implemented model password saving/loading. Interdyne key users can edit their model by entering Ctrl-Shift-H, and providing the password (temporary only) if one was set by the builder.
Set Password for Editors Set the InterDyne editing password using the EDIT->Password option. If a password is already set, it must be entered before a new one can be entered. If an empty password is entered, empty (initial) password is assigned.
New Features None
Enhancements • Gantt time display can have different colour.
• Label content in gantt bar is centred.
• Times are not shown if not enough space.
• Can copy one overlay's graphical settings to all (copies colour, thickness, style, not y offset).
• Can set an overlay’s properties as default for new overlays.
02/10/97 New Features
Enhancements • Model Routes can be addressed as a label list <not the steps, the trips themselves> NB This is a beta implementation, so do not use until further development is completed.
• Reference tracking improved - You can click on Message Entries to show references. The reference list now shows a large number of objects properly, selecting one shows you the object.
• Reference tracking improved - You can double click on Message Mode Dispatcher to go to the screen containing the Targeted Message Entry.
• Gantt time label option enhancement - When a graph display is in "Gantt" mode, a new option appears enabling showing of times before and after gantt bar. Also, label text is no longer drawn outside of bar boundaries, to prevent overlap problems.
BugFixes • Blocked Message Entry message now includes item ref of the item which is blocked.
• Wait cursor shown on save model
• Fixed problem where many items moving from an object to a dispatcher produced an error reporting the message entry being blocked
• The Log Viewer can now be closed, using the Close Window Object, at top left of Window.
20/09/97 New Features
• Different update interval for different screens
Enhancements • Can relocate Table column during table edit (CELL stats for the column are lost however).
• Table sort available by clicking in table view title in stopped/user mode (if option user can sort is enabled)
• Table sort sped up (check), row swapping of row labels was inefficient.
• Improved section debugging display when attref error occurs
• Advance options added to paused background menu
• Advance for interval option added in run menu - enables stepping forward by a time increment even in calendar time mode.
• Screen background colour can be set in the "screen properties" background menu.
BugFixes • Fixed shared routine allocation
• Fixed dialog z-order handling (should not lose dialog/editor behind SV window) and control bugs eg: options dialog from table editor enabled table editor to be closed.
• Gantt (horz bar) display can now handle display when the y scale min/max values are reversed from usual.
• "Interactive dials" clip to dial value boundaries when dragged by the user.
• Keys function when palettes in front.
• Dialog fields with label lists have width set so labels will never be cropped (which would cause selection failure)
• Labels for all dialog widgets can now be empty, widget wont be deleted
• Palette/window title bars work properly when dragging objects off palettes - the palette used to be called "SimView".
• Relocating the column used for row labels is properly handled.
Fixed shared routine allocation Fixed shared routine allocation so "local" attributes from point where routine *invoked* can now be accessed Limitation: If a shared routine is *not* ever used, the engine still must initialise it - and it will use the point of reference of the screen where it is defined. This will cause a problem if the routine depends on a localised subsystem attribute which does not exist at the scope level of the routine, it will then complain.
Different update interval for different screens Different update interval for different screens can be set The run menu option is the "master" and scales whatever value is set for the current screen/panel, under its Properties option (Object View Screen Background Menu). ie: Screen’s animation update interval = Screen animation update scale value x Master animation update interval. By default, dynamic screens get a value of 1, (Panels get a value of 0). Hence if the master is say "5 minutes" then all dynamic screens will get refreshed every 5 minutes per the simulation time clock, all panels will not. E.g.
12/09/97 New Features
Change to Track Section Availability/Speed Scheduling
Enhancements • RTF note editing improved
• Increased density of time display (esp. around one->two day width) and included heuristic to avoid repeating date display multiple times.
• Many cleanups to time formatting / label formatting code, report any strange formatting problems. Eventually will support wider labels/format areas, this is first step
• Time entry filter supports times entered (& imported) as HH:MM:SS, but they will be shown as HH:MM SS.
• New Calendar time mode: "Calendar HHMM", original mode called Calendar HH:MM. Shows/parses times as HHMM with no colon, no seconds shown.
• Paint mode “Hide” works for objects again (useful for large paint objects, NB: hide state is temporary and not saved).
BugFixes • Real Time Scaling and Animation Update Interval work properly together. Animation update events were preventing accurate real delays from occuring.
• Run Menu time values properly updated when model first loaded
Change to Track Section Availability/Speed Scheduling We no longer have one individual schedule per section. Now an attribute reference dealing with Track Availability and Speed Restrictions can be associated with a Track Section in the new Section Details Option under Track in the Menu Bar. This enables references to be constructed by referring to table data, just like we do with Section Running Times. As per the previous schedule setting options, the attref value works as a percentage of SPEED, as follows:
Value State 0: section unavailable. 1..99: available but with decreasing speed slow down. 100: available, no restriction.
IF a constant of 100 is entered for the control, the section is always available, and it shows as <none>
The Section Times dialog is now the Section Details dialog:
You can now select a different item class without leaving the Dialog. Track Ordering is now performed in this Section Details dialog. The Edit Section Times/Edit Section Control button toggles selection of Section Time or Line Control editing when a line is selected.
RTF note editing improved • Right context menu now includes separate "Select" and "Edit" options.
• Left context menu (during edit) is same as selecting "Edit" from right context menu.
• Resize/drag bug fixed, does not forget position/size during editing.
• You can no longer to add "old" text note, these are becoming obsolete and will not be supported in future SV versions.
SV 4.09 10/09/97 SV 4.09 10/09/97
Multi Label List (in Edit menu)
New tuple operations:
Enhancements • Paint objects no longer move to front when clicked on, an explict menu option is added to do this.
• Save/load model names no longer converted to all uppercase.
• Flipped icon property now cloned to message items.
Multi Label List (in Edit menu) Multi Label List (in Edit menu) Multi label lists enable a number of label lists to be collected together into one cell/attribute value. They offer:
• memory efficient storage of multiple data elements in a single cell,
• ability to present contatenated strings (eg: in gantt label),
• powerful data move capability between multi labels and item tuples,
• another dimension in tables since data originally stored in several columns can now be packed into one, as long as it is discrete and has a label list associated with it.
Their disadvantage to current multiple columns:
• slower to process
• can only be decoded / encoded from an item tuple (you cannot directly address a component of a multi label as an attref)
• cannot import formatted multi labels yet
Multi labels work by packing the digits of a number of label list indicies together to form a number. This is automatically done, all the modeller has to do is nominate which label lists and how many digits each label list needs to represent all its possible index codes. Up to 6 digits are supported per label list. A total of 14 digits are available. Hence, its possible to have 14 single digit label lists combined together into a single cell (each single digit label list can hence have 10 states) For presentation, SV contatenates the label strings together. For each label list comprising the multi label, a formatting width limit can be specified as well as an additional "separator" character which may be a space, a character or left empty (no gap between labels)
New tuple operations: Decode MultiLabel To Tuple This takes the target attref (a label or multilabel) and places the label list indicies for each label list into an item attribute matching the name of the label list.
Set MultiLabel from Tuple This builds a multi label (into target). The target's label list type is examined and for each component label list, a value is fetched from an item attribute matching the name of the label list.
For these to work: • A given label list must only appear once in a multi label definition.
• Support for repeated label lists will be added later, the problem is that the multiple label lists will map to one item attribute without some extra detail (eg: location_1, location_2) added to them
• The format of the item attribute must be of the label list which it is named after. This is a "type check" to avoid accidently moving an index into a different label list's index range
• Clicking in a multi-label cell is supported for editing, importing of multi labels in a formatted manner is not.
• If a base label list (used in a multi label list) is edited (eg: indexes changed), the system will properly update all columns and attributes formatted using a multi label list that includes that label list.
• If the multi label list itself is edited (eg: label lists added, sizes changed), no attempt is made to retain value integrity of any columns and attributes formatted using that multi label list.
24/08/97 BugFix Fixed bug in gantt y column display (was not getting name from correct column).
Enhancements GANTT improvements • Label colour can be set for gantt, separately to bar colour.
• Gantt now shows column title next to bars instead of normal y value numbers.
• A given label is shown only once when a number of consecutive rows have the same value, using the space available to all of those rows.
• Bars extending off the right of the window are now drawn instead of missed. If the table ends with an "open" bar, it will now be drawn all the way to the right (maximum time).
• The initial scroller width (upon load) can be specified.
New dial display modes:
New graph mode: GANTT
Enhancements '• Auto-Run Features
• Inter-model copy/paste
• InterDyne Mode Changes
• Label list fill region option
• New Font Selections
• Only During Move routine option
• Right button implementation <still in progress)
• RTF Note Enhancements
• Table column menu change
• Table copy has changed
• Printing while paused now supported
• Can now duplicate and delete ranges of lines in the routine editor
• Iterations are interrupted after an error is reported rather than continuing with junk data
• Dialog editor now functional
• New Click action to toggle flow display
• In InterDyne mode, the "in place edit" option now takes effect to prevent editing
• During a model run the "constant during run" option also takes effect to prevent editing
• Table Row Index values of '0' were being treated as 1 and not reported as errors - this has been fixed and may expose bugs in existing models.
• Condition detail dialog no longer can get hidden behind condition editor
• Reworked reporting of routine error line numbers - should always give line number now
• Unblocking bug fix
• Chart recorder line drawing reworked
Chart recorder line drawing reworked The Chart Recorder Line is now drawn without using an "XOR" pen so that it won’t disappear on some display drivers/printer drivers due to scaling For wrap around charts the grid will be erased at points of the old trace as it gets replaced by the new one - the grid gets refreshed as the chart wraps around. This doesn't pose a problem for scrolling charts
RTF Note Enhancements SV will now show an opening RTF note, as long as the following conditions are met:
• its called "main"
• a paint object exists on the top screen for that note
• a normal text note called main does NOT exist
In place edit for RTF note implemented, with this paint option on, user can click on note and edit its contents. To end the note edit, right click in the note and select "End Edit", or simply left click on the model background (outside of the note), or press Esc, and wait for the DB file to be updated. To collapse the note, CTRL-click in it
Inter-model copy/paste Model merge: (inter-model copy/paste) To avoid carrying over unwanted information, only "used" label lists will be merged in during a copy of a subsystem or object from one model to another.
InterDyne Mode Changes • The object cursor is not shown in interdyne mode, just the arrow
• The clock is now shown on model load, if it was visible when the model was saved
• Hot keys to flow/edit/interact mode are now disabled when in the Interdyne mode
• System reverts to object mode when switched to interdyne mode
• A new "Stopped" title/prompt appears in the window title area when in Interdyne/stopped mode
Auto-Run Features The Display Option "Run on Load" option has replaced with "Run on program start" With this option turned on, the model run will start automatically, as long as the system is in InterDyne (user) mode
The '/RUN' command line option causes SV to auto run all models loaded. This is useful when a model is also specified on the command line.
New graph mode: GANTT The Table/Mapper Graphical View now has a new graph overlay feature:
Y-Offset - enables a given overlay to be offset relative to the other lines in the overlay. This avoids having to build the offset by setting the cell data. This is important for new Gantt mode
New graph mode: GANTT Each column (overlay) is interpreted as one row in a Gantt chart. The row is determined by the new Y-Offset value. A cell's value no longer determines the y-position of the bar. Instead, it is printed inside the bar. If the column is label-formatted, the string is printed inside the bar. The bar is drawn only when there is a value greater than zero in the Cell. A value of 0 causes no bar to be drawn
New Font Selections Note Link Font: the font used for all note-links is [* note]
Graph Labels: the font used for all GANTT bar string contents
Label list fill region option The Label list Fill Region option available when editing label lists - will map indices between labels to the lower label. e.g. for the following Label List:
Label Index Foo 1 Bar 5 Nellie 10
For Attributes formatted to use this list, the following values will be mapped to labels as follows:
Value Label 1 Foo 2 Foo 3 Foo 4 Foo 5 Bar 6 Bar 7 Bar 8 Bar 9 Bar 10 Nellie 11 Nellie etc. Nellie
Table copy has changed Table copy has changed: When creating a new table, a "Paste" button will appear in the table name dialog if a table has just been copied. To copy a table select the Select All/Copy option in the Table button menu in the table editor. This enables a table to be copied to anywhere in the model with all formatting retained
Table column menu change "Title" is the title for the column
"Name" is the internal name (used in setting up tuple transfers) The "Labels" item appears when the column is being formatted via a label list and enables the list to be directly changed
Right button implementation <still in progress) Right button implementation <still in progress> Many context (edit) menus now appear immediately on the right mouse button including interact menu when still in flow mode. Left button allows in-place edit of all attribute, table and cell stats while in edit mode...
New dial display modes: New dial display modes: Image display, control knob and label list Dials associated with stats with 'in place edit' can now be interactively dragged/turned etc. If you use this feature, you have to ctrl-click on the Dial Image to manipulate it rather than move it TIP: if the original attribute's rounding option is set to "Round Units" (in the distribution pattern dialog for the attribute) then the dial will "snap" to integral values when dragged! You will find that you cannot take advantage of this feature with Table Cells, due to their being unable to have a rounding value set for them (individually).
Unblocking bug fix Switches which open on the default condition now work An optimisation in the code caused a bug in switches that used the following kind of condition checking method:
Cond 1 = 0 True if A = B (Blocks if True) Cond 1 = 0 True if C = D (Blocks if True) Default = 1 Opens the Switch
In this case, the switch could block even when the B or D values moved away from equivalence to the A or C values respectively, which results in falling thru to the default (open) condition.
Technical detail: Switches with a condition where an attribute must match a constant (att = v) invoke an optimisation which prevents them being unblocked (time consuming) unless the attribute they depend on becomes set to the value it is being matched against in the switch's condition. This failed to work properly where the switch was blocked on the condition being "true" and open on the condition being false. The unblock was not done on the the attribute *no longer being equal* to the test constant. Now an unblock is performed both when the test attribute becomes equal and not equal to the test value. The extra unblock message will slow model runs to some degree (but it will still be faster than unblocking all switches whenever the attribute changes. A benefit does arise however - since an unblock is sent when an attribute becomes != to the test value as well as when it becomes =, conditions testing for "attribute != value" can now also be optimised using this mechanism.
Only During Move routine option Only During Move routine option has now been adjusted. SimView traces through a flow at least twice when moving an item, once to determine its viability (including exploration of switch options) and once to actually move the item. When Only During Move routine option is set to "on", SimView only executes the routine when the item is actually moving through the change object, not when searching for viable paths. In previous versions, if a change object’s routine was not executed, then the model was considered "dirty", and a switch downstream of the change object that depended upon an attribute would produce and error message, due to uncertainty whether the attribute might be changed inthe dirty routine. Now when using the adjusted Only During Move routine option, the model is not considered dirty, and hence a switch downstream of the change object can now depend on an attribute.
*BUT* the modeller must remember that the routine is not invoked from the switches decision-making point of view, and in fact the Only During Move routine option MUST NOT change any attribute which would otherwise change any downstream switches decision.
SV 4.07 U and V SV 4.07 U and V 9/7/97 File Format 173 Sample Model: OBJ.MDL
New Features None
Enhancements • SVW should now handle long Model file names.
• Safe Look Ahead Options modified
• Table Editor: column menu is more descriptive
• Column menu new option: Copy Format
Bug Fixes • Printing works in SVW!
• SVW icon printing colours fixed
• Bitmap refresh when paused
Safe Look Ahead Options modified The "During Move" Run Option, which appears in the change object menu after you define a routine in a change object, has been enhanced. This option reduces the need to place objects infront of switches etc. merely to “work around” safe look-ahead protection. The default behaviour (Run Option “Always”) for a look-ahead has not changed. This will continue to protect new and inexperienced users. Whenever a routine manipulates multiple values (row, column, tuple, block), or performs a control calculation (IF, Loop etc.), the safe lookahead feature detects that the look ahead has lost integrity, and no downstream decisions, nor icon, trip or capacity assignments which refer to attributes are allowed. In this case SimView will complain, and stop the run. You need to separate these kinds of routines, and downstream decisions or capacity assignments by placing capacity between them. But now you can selectively by-pass the safe lookahead mechanism, by setting the "During Move" option, which appears in the change object menu after you define a routine in a change object. Previously this option functioned to prevent unnecessary CPU-intensive tasks being performed during a look ahead (i.e. large searches). To do this the During Move option flagged the remaining look-ahead as being “dirty”, and evaluated no further calculations. Hence the look ahead lost integrity.
The operation of the Change object “Run Option” now provides an additional useful mechanism. Now, with During Move selected, only this routine itself will not be evaluated during the look ahead step. All other routines in the thread (i.e. in other change objects between this one and the next capacity) are now evaluated. When this option is On, a routine will no longer cause an error if an attribute is referenced immediately downstream of the change object. Decisions and assignments based upon these calculations can now be made in the same look-ahead. This option reduces the need to place objects infront of switches etc. merely to “work around” this safe look-ahead protection.
IMPORTANT: You (the modeller) become responsible for ensuring that downstream objects don’t expect that change object's calculations to occur. You will need to ensure that the routine you wish to “isolate” from the look ahead contains no calculations you later rely on in the same look ahead. If you get this wrong, unexpected things will happen at switches and multiservers, and there is no way the system can debug this accurately for you. This change will not affect earlier models, since they will have been built under the strict rules.
Printing works in SVW! Second Time Lucky!! The Print dialog now appears, and you are able to print the screen when the model is not paused. If you try to print when the model is paused, you will get no print out, and unpredictable results.
SVW icon printing colours fixed Dithering of SV icons is now handled, when printing to B&W printers. Use the sample file OBJ.MDL to test your printer's handling of SVW objects.
Bitmap refresh when paused There was a bug where if you forced a screen redraw when the model was paused, the bitmap layer would not be refreshed. This is now fixed.
SVW should now handle long Model file names. Still undergoing testing with other kinds of file names, like images, dat files etc. Please report any difficulties to InterDynamics.
NOTE: This marks a further departure from the DOS version. The DOS version will load a model created in SVW with a long file name, however when saving, the BAK file only uses the 8 character name you see in the status bar.
Table Editor: column menu is more descriptive Table Editor: column menu is more descriptive
Column menu new option: Copy Format Enables the current column's formatting to be applied to a range of columns.
SV 4.07 S and T New File Format 176
New Features Printing
Track Loop Object Controls
Shared Routines in Track Loop Objects
Table title can be set separately to its name
Enhancements Portal state saved on save model
Screen resize options are now off by default.
Routine editor retains current line display when editing lists longer than the window "Windows" icon shown in multi-column lists no longer appears
Bug Fixes Two bug fixes:
The Shared Routine selection dialog is now wider, enabling the user to read the entire routine name.
Trip/attribute assignment titles no longer appear in menu list. This was causing crashes
Printing Printing in SVW is finally with us! You can print the current screen to a printer’s page, by selecting File/Print, from the menu bar. The image is rendered at the Print device’s resolution, and produces high-quality lines and images. Bitmap colours are dithered when printing in black and white. Icon Colours are rendered as either black and white, on a B&W printer, and look much better on a colour printer.
Track Loop Object Controls The release of items from Track Loop objects can now be controlled by the modeller, using a condition list gating mechanism. (Simlar to a multi-condition switch). There is one gate for each direction out of a loop. These are represented by the “Up Decis”, and “Dn Decis” Loop menu options. NB: The Up direction is aligned with the start and end points of the track object itself. Up is the same as Forward, which is a movement from the start point to the end point of the track, as indicated in the Track Object Menu. An item travelling along the Track object having begun from the start point, is travelling Forward, Up the track. Each Loop Decision Gate enables the modeller to overlay a higher level of decision making concerning item movement along tracks. There is a hierarchy of assessment in the Track Loop object. Consider a train Item moving Up the track: Prior to moving an item from the loop, the system assessesfirst the Up Gate, then the Up Decis, and finally applies the internal track movement logic rules. The modeller now has a sophisticated means of controlling the movement of trains. For example, three-way junctions, themselves containing more logic are now more conveniently set up and incorporated into a train network. Also, rules can be created, which will force an item with a clear track ahead to wait until a higher priority item elsewhere in the system moves past.
Shared Routines in Track Loop Objects Track Loop objects can now call and run shared routines whenever an item enters, or departs the Loop. The running of the shared routine ocurs regardless of the direction of movement, so you need to ensure that you include a direction identifier in your routine, if a different set of calculations is to be performed depending on the item’s direction. NB: A shared routine can be called by a loop object, but you cannot edit the shared routine via this loop reference. You will need to link the shared routine to a routine option in a change object, in order to edit the routine.
Table title can be set separately to its name Tables now have a title field, where you can enter a longer, more descriptive title for the table. Tables now have a title, and an internal Name. The internal name is referenced when doing table lookups, and the title is displayed in Views of the table.
Portal state saved on save model Current Portal states are now saved when you save a model. Thi smeans that the next time you load the model, the icons representing the portals will be the same as the ones displayed when you saved the model.
Screen resize options are now off by default. Screen resize is now always applied to current screen only. The Recurse/Panel/Dynamic options are now off by default and enable propogation of change to sub panels/sub systems.
Routine editor retains current line display when editing lists longer than the window The Calculation/routine list editor now returns you to the current line’s scroll position. This is convenient when editing a calculation list that has more lines in it than fit into the list window display area.
"Windows" icon shown in multi-column lists no longer appears A more appropriate icon will replace this eventually.
SV4.07R 16/6/97 File Format 173
BUGFIXES - Col 1, 2nd or 3rd Key sort Bug
- Col 1, 2nd or 3rd Key sort Bug Tables that were being sorted during runtime with column 1 selected as the 2nd or 3rd sort criteria resulted in inconsistent results in the second column. Now fixed.
SV4.07Q 10/6/97 File Format 173
NEW FEATURES - Basic Table Column Edit Protection
- Bulk Copy / Paste of Paint Objects
- Custom Column Backgrounds and Text
- Custom Column Backgrounds and Text Table column background and text colour can be specified, overriding the table's default. This new option is available in the column edit menu of the table edit dialog.
- Basic Table Column Edit Protection Table columns can now be protected from direct editing by the user. A new option 'Protect from Edits' is available in the column edit menu of the table edit dialog, under 'Options'. Once this option is selected for a column, cells in the column will be unresponsive to Mouse clicks or the Enter key, thus preventing the user from being able to directly edit the column. This is a useful option if you expect to have inexperienced users who may try to edit columns which are not intended for editing - e.g. calculated columns.
NB: This feature has Limitations! You can still force an edit on to a protected column using these advanced editing options:
a) holding the Shift Key while selecting one or more cells, then clicking in the selected area and choosing 'Cut' or Clear'. b) using the Ctrl Key when clicking on a cell, and then choosing 'Paste' or 'Fill/Index Down/Across'. c) Clicking on a Row heading and choosing ANY option except Copy. d) Shift-Clicking on a Column Title, and and choosing 'Cut' or Clear'.
All the above will be available to users who read manuals, and c) and d) will be available to the inexperienced user.
- Bulk Copy / Paste of Paint Objects You can now copy an entire paint layer, and choose to either merge or replace upon pasting into another dynamic screen or panel. The bulk copy option is available from the Paint View background menu 'Other Options' option, called 'Copy All Visible'. Having copied all visible objects, you would normally go to another screen, and then you select the Paste Object option. Upon doing this from the background menu, you will be prompted to choose whether to merge or replace the objects.
Merge Option The Merge option will leave all existing paint objects as they are, and paste in all of your copied objects. NB: 'Duplicate' objects are not identified as such in the merge. If you find any objects that are identical you might want to remove one of them.
Replace Option The Replace option will remove all existing paint objects in the screen and paste in all of your copied objects.
ENHANCEMENTS - Label List alphabetic sorting
- Label List Listings now continuously Sorted
- New Attribute, Table and Mapper Stat View Defaults
- Label List alphabetic sorting Label list item sorting during editing has been sped up. Previously, large Label lists took a long time to appear.
- Label List Listings now continuously Sorted The list of Label-lists is now kept sorted after cross-model merges and list renaming. Selecting a Label list and then Cancelling the selection will force a re-sort of the current list of lists.
- New Attribute, Table and Mapper Stat View Defaults Attribute and Object Stat, and Graph Stat displays have the following display defaults:
- Single Indent Border style,
- Black border colour,
- Light Gray Background colour,
- Bright Blue Text colour.
Table Stat Displays have the following display defaults:
- Single Indent Border style,
- Light Gray border colour,
- White Background colour,
- Dark Blue Text colour.
BUGFIXES - Cell Stat Row Zero reference
- Cell Stat Row Zero reference Selecting a Cell stat view in a panel resulted in a Cell Stat with a Row index of zero. Now fixed.
SV4.07P 3/06/97 File Format 172
NEW FEATURES - Export your Routine Calculation list to a text file.
- Export your Routine Calculation list to a text file. The Routine Editor now contains an 'Options' Button. The option enables you to export the entire Routine to a wide format text file for which you provide the filename.
Each export requires its own filename. The entire calculation is provided, including comments.
The full description is now also given when choosing Display/Show Model Info/Object Details, but without the comments fields.
ENHANCEMENTS - 'Control' statements are fully validated during model startup
- 'Control' statements are fully validated during model startup If/While/Select/Iterate must now all be matched by their corresponding 'End..." statements. This is checked at the beginning of a model run. In previous releases, this was not enforced, so some models may require slight adjustments to add the End statements. This is easily done by using the 'Show Object' button on the error message to move to the location of the object. A Case statement must not be placed between the "Default" case, and End Select lines.
IMPORTANT NOTICE - Cell Stats are no longer enabled if a table is variable length.
- Cell Stats are no longer enabled if a table is variable length. The use of cel stats on variable length tables has proved problematic, and the feature has been removed. Cell stats may still be applied to fixed length table cells. Upon loading an older model that contains cell stats on VLT's, SV will notify you, and its default action will be to remove all the cell stats connected to VLT's. If you would prefer to retain your cell stats by converting your VLT into a fixed length table, you will need to do this PRIOR to using this version.
31/05/97 (Not released) File Format 172
ENHANCEMENTS - Calculation Editing
- Calculation Editing Added "Insert New", which enables a new calculation line to be inserted into an existing set of lines. Reworked list editing (in DOS only) - focus now remains on the last-edited line, enabling further editing by pressing the Enter Key.
BUGFIXES - 'While' calculation not reporting a missing "attribute" reference
- Copy / Paste across models - Font Manager Error corrected
- Default in Case Statement is fixed and can now be used.
- Unexpected interruption of a run without animation.
- Copy / Paste across models - Font Manager Error corrected Copy Across Models was being prevented in many cases due to font management problems. The model merge (dos and win) code has been reworked, and font management under DOS improved.
- Default in Case Statement is fixed and can now be used. - Default in Case Statement is fixed and can now be used.
- 'While' calculation not reporting a missing "attribute" reference Has now been fixed.
- Unexpected interruption of a run without animation. On long model runs, with lots of searching, SV sometimes detected an extra keyboard presses or mouse click when checking for these, and paused the run, giving the 'Interrupted During search' message.
SV4.07N 27/05/97 File Format 172
New Features - Embed a MDL file into a DB file (In Prototype).
- New control logic options in Change Object:
- New Database Admin option (EDIT->Database)
- New Database Admin option (EDIT->Database) This feature is for SVWin Only - DOS users still have to use the external utility F_Dbase.exe.
The formerly external utility for managing the contents of your DB file (images, notes and icons) has now been brought into the SVW interface, with added capabilities. Identification of the type of DB item (BMP Image, Text note, Icon) is provided to assist in identifying items to be exported or removed. You can import/export/delete database items as before, and you can now also merge database items from another database, with the following options:
- Review Copy List before proceeding Displays a list-picker dialog containing the contents of the chosen 'source' database file. This enables you to select those items you wish to merge into your current DB file. If this option is not checked, then the dialog does not appear, and all items from the 'source' DB file will be copied in to your current DB file.
- Copy Existing items only This option modifies the action of the merge, so that it becomes an 'update' action, rather than a full merge. With this option selected, the only items copied from the 'source' DB file will be those that are already present in your current DB file. Any items not currently in your DB file will not be imported. If this option is selected AND the Review option is also selected, then the List Picker dialog will display only those items that exist in both your current DB file and the 'source' DB file.
Either or both of these options may be selected, yielding four possibilities in use.
NB: Merging from a large DB file can take some time. Allow about 1 minute per MB before panicking.
- Embed a MDL file into a DB file (In Prototype). Sample Model: RUNMOD.MDL, and _HIROAD.DB
You can now embed a whole MDL file inside a SHARED DB file, using the enhanced features of the new database editor in SVW. This is in prototype only, but it is intended to evolve towards enabling a single DB file to be distributed, rather than an MDL and DB file. The sample file provided (_HIROAD.DB) contains its own MDL file emdedded into it. This model can be extracted using the command line option for launching a model. e.g. C:\SimView\SimViewW _HIROAD NB: _HIROAD is a shared DB file and hence must be located in the same directory as your SimView exe file.
You can therefore launch a Simview model that is contained in a shared library, from within a currently loaded Simview model. The MDL file itself need not be apparent, since SimView will find inside the shared DB file and automatically extract and load it. Once it has been extracted and loaded, you can place it onto the disk by saving it. Refer to the sample model RUNMOD.MDL for an example of this feature in action.
Accompanying notes: You can create a shared DB file by saving a model with a preceding underscore (e.g. _MYMOD.MDL). The _MYMOD.DB becomes a shared Library, when it is located in your SimView directory. Edit the Database for _MyMod.DB, and import a MDL file. This model can later be exported using the database editor, or launched using a command line, as described above. If you want to have icons and images for this model available, then the most efficient thing to do is to merge them into the shared DB file. (Notes are not available at this point in time).
- New control logic options in Change Object: Sample Models: GARBOT.MDL WHILEY.MDL
- IF / END IF Provides simple conditional execution of a calculation statement. You can 'nest' these if necessary. Be sure to include an 'End If' Line after the conditionally executed statement. This option is useful for user dialog prompts.
- SELECT/CASE/DEFAULT/END SELECT Provides complex conditional execution of a range of calculation statements. Can also be 'Nested'. Be sure to include an 'End Select' Line after your series of Case Statements. This option is also useful for delivering a variety of user dialog prompts.
KNOWN BUG: The Default statement is not yet working properly, so for the time being you need to use a specific Case line to define all possible default situations. This will be corrected in the next release.
- WHILE/ENDWHILE Enables arbitrary looping, basing the loop break-out on a condition rather than having a number set in an iteration. It enables a 'reverse' search/iteration capability, if you include a decrement calculation within the loop. This option is useful for user dialog prompts, the results of which can be evaluated within the loop, offering the capability to return the dialog to the user until various conditions are satisfied, before moving along to the next step in the model run. Be sure to include an 'End While' Line to set the end of your Loop.
ENHANCEMENTS - Model and DB file load time has been improved.
- Model and DB file load time has been improved. - Model and DB file load time has been improved.
KNOWN BUGS - Copy / Paste across models - Font Manager Error
- Copy / Paste across models - Font Manager Error Copying a Portal across models may cause a GPF on pasting, multiple pasting or saving after a paste, if the Source model contains an object which uses a font which is not included in the current machine. This may also occur if a default font assignment includes a font not on the current machine. Improvement in validation will correct this in the next release. (Copying across models is one of the most complex areas of the software).
The short term solution is to identify which object or default font assignment in the source model uses a font not resident on the current machine, and change to a resident font before doing the copy/paste procedure.
BUGFIXES - 'Attref Scan Count Inconsistent' message.
- Current Directory
- Shifting buttons during zoom
- 'Attref Scan Count Inconsistent' message. In Calculation editing, re-selecting a "function" mode such as Condition List or Search would not purge previous condition tests cleanly. This gave the "AttRef scan count inconsistent" message, which went away when SV was restarted.
- Shifting buttons during zoom Buttons sometimes shifted their positions on the screen after the screen was zoomed out. This was due to font scaling issues when zoomed out, and should now be fixed
- Current Directory If you browsed to load a model, and changed to another directory, then decided to cancel, the System decided the current directory was changed, and any bitmap image files being referenced lost their links, and an 'Unable to Load Image' message was posted. This is now corrected.
SV4.07M (Not released) SV4.07M (Not released)
SV4.07L 20/05/97 File Format 171
New Features - New Click Action for a Button or Paint Object.
- Time Functions
- Time Functions Newly added as calculations in the Change Object, Time Functions return a value reflecting the nature of a date value, like System Attributes can do. The returned value is applied to an Attribute. Functions available for any given Date (or Value): Time of Day (Seconds) Hour of Day (count from 0 to 23) Hour of Day+1 (count from 1 to 24) Day of Week (Sunday = 1 -> Sat = 7) (NB: If you are using relative time rather than calendar time, your model run always begins on a Sunday). Day of Month (Count 1 - 28,29,30,31 as reqd) Month of Year (count 1 - 12) Week of Year (count 1 - 53) (NB: First and Last week of the year may not be a full 7 days, since weeks are always counted from Sunday to Saturday).
- New Click Action for a Button or Paint Object. The System Command button option can invoke either DOS or Windows commands. This feature enables the user to execute a System command by clicking on a button. The model doesn't have to be running. With this feature, if the modeller can create a WinHelp file to accompany their InterDyne, then they can provide full context-sensitive help commands on any screen of the model. The user, upon clicking a "Help" button placed on the screen they are in, gets to see exactly what he/she needs to see in this WinHelp file. In other words, a help file can now be invoked from within SV at the click of a screen button, and can launch the Help file with a direction as to what Topic to open up on (context sensitivity). This is big news for those trying to provide step-by-step instructions in the InterDynes - now they can use a WinHelp file to supply the help data - either as a Help Topic in a Help file, or perhaps as a series of cue cards.
Enhancements - Optimised file copy (in database) for Windows
- Optimised SVW file reading (in loader)
- Optimised file copy (in database) for Windows DB files get updated *much* quicker.
- Optimised SVW file reading (in loader) models and tables will load quicker.
Bug Fixes - Fixed bug: bad table row/column with empty
- Fixed bug: bad table row/column with empty variable length table caused crash.
20/05/97 File Format 170
- KNOWN BUG:
- KNOWN BUG: - Copy/Paste across models was causing problems.
If you try to use the status bar navigation feature
If you try to use the status bar navigation feature If you try to use the status bar navigation feature while a model is running (i.e. without first pausing the run) then you risk crashing SimView
- it will produce a linked list error.
- Copy/Paste across models was causing problems. The cause of this has now been found and corrected.
19/05/97 File Format 170
- BUGFIX: crash upon loading new model (font manager problem fixed)
crash upon stopping model run
crash upon stopping model run crash upon stopping model run <when using the background menu to stop while animating>
crash upon loading new model (font manager problem fixed)
Enhancements - Auto-Purging of Redundant Parameters and References
- Improved error reporting
- More Font Categories Added
- New Table column formatting option: round column value,
- More Font Categories Added Fonts can be chosen for graph legend and log viewer overview.
- Improved error reporting SV now reports the location for attribute referencing errors for attributes referenced in shared routines and dialogs.
- Auto-Purging of Redundant Parameters and References In support of the new run-start attribute reference integrity checking, the following features are now in place. Distribution pattern details now get purged for unused classes at servers / multiservers Setup/teardown delay details get cleared if a server's More Options option is turned off.
- New Table column formatting option: round column value, Once selected, a rounding value can be selected from the list.
A positive value rounds to decimal places, A negative value rounds to factors of 10.
The underlying value is retained as a full double-precision number.
changes - Version gap closed:
New Features - Zoom in/out added, still under test but its improving.
- Zoom in/out added, still under test but its improving. Look for it under Window in the Menu Bar. Now works when in paused mode.
A window's scroll position is saved as you move between model screens and panels. Upon returning to a screen, it will be shown at the same scroll position as it was when you left it.
Enhancements - Attribute Reference Checking
- Delete portal bug:
- Item's track loop "stop" bit can now be read or set.
- Queue/Dispatcher Resource Problem in SVW
- Row delete validation added/fixed
- Table sorting:
- Row delete validation added/fixed - Row delete validation added/fixed
- Queue/Dispatcher Resource Problem in SVW The Queue/Dispatcher overflow count icon was using resources inefficiently in SVW, resulting in poor runtime performance of models with a large number of queues and or dispatchers. The overflow icon handling has been redesigned to avoid this and your models should work better now under SVW.
- Item's track loop "stop" bit can now be read or set. An Item's "stop" track control variable can be assigned/read If set, it forces train to stop at next loop until the next train through the loop crosses. This has limited workability at present, but further enhancements planned will be able to make use of this capability.
- Delete portal bug: (Was crashing on trying to save a model after deleting a portal) Now fixed. This occurred when the Portal being deleted was not informing panels owned by panels that it was being deleted. This would cause the model to lose integrity after a portal referenced by a panel owned by another panel was deleted.
- Table sorting: SV now defines a table as the target in a sort calculation and thus enables you to reference a table Column Label as a value to use in the sort. NB Currently this only applies to Ascending Sorts
- you will still need to use a Constant, Portal or Item attribute with a negative value to be able to do Descending sorts.
- Attribute Reference Checking Attribute References are checked at the beginning of a model run. Errors in portal attribute references are reported at this time. Prior to this version references were checked during the model run when the reference is actually used. Some models may now complain at run start if they contain references pointing to non-existent attributes - even if the particular reference was never made during previous runs.
- Version gap closed: This and future versions of SV will only read models with file versions > 150, this corresponds to SV 3.9V NB: This means that models saved in the last official release version of 3.8V will no longer load. You will need to use version
or earlier, back to Version 3.9V to "save-forward" your model. If you do not have one of these versions, then InterDynamics will be happy to do the save-forward for you.
30/04/97 File Format 168
- Agents can pass items carried over to message Entry
- Agents can pass items carried over to message Entry
- Agents can pass items carried over to message Entry (and back again).
- Sample Model - DRWHO.mdl
The message item feature has been enhanced to enable an agent to pass across to its message-item agent, all items it may be carrying. These items can be delivered to an In Tray by the message-item agent, who then 'returns' empty-handed back to the original agent, who carries on with no items.
Similarly, a message-item agent can collect items, and upon its 'return', pass them across to the original agent who then sets off now carrying these items.
You could use this feature to carry around a batch of items, then pass them over to a central processing location, where they are unloaded into a Tray, processed at this location (item attributes changed etc.), then collected again by the message-item agent, and then passed back to the original agent.
29/04/97 File Format 168
New Features - Iteration in Change Object
- Iteration in Change Object
- Sample Model - MRMAGOO.mdl
In the 'Special' group of change object calculations you can now select 'Iterate'. This feature enables you do do iterations inside a change object, where previously you had to build a graphical loop in SV with paths, capacity and switches etc. You can have calculations in your change object prior to an iteration calculation - for use in initialising the loop variables, for example.
ALL calculations AFTER an iteration are included in the iteration loop. This means you currently cannot place calculations below an iteration calculation that are not intended to be a part of the iteration. In future there will be an 'End Loop' marker, enabling final calculations to be included in the same change object after the iteration is completed.
For an Iteration calculation you can set three variables, any of which can be attributes:
Index Using: This is the attribute whose value is indexed First Value: Starting value for the Index Attribute Last Value : Ending Value for the Index Attribute
The index step is ALWAYS a value of 1.
HINTS: You can adjust the current value of your index attribute during the progress of the iteration, to create a different index step. You can set your index attribute to a value that enables you to break out of your iteration loop when necessary. This enables conditional branching, but you still need to use switch objects to do this (as you do now anyway).
26/04/97 File Format 166
FOR ADVANCED TRAIN NETWORK MODELLING
FOR ADVANCED TRAIN NETWORK MODELLING - New track type designation - 'Only Forward Traffic'
- New track type designation - 'Only Forward Traffic' To further support uni-directional traffic models, this option on a track object sets the track object to think of itself as only carrying traffic one way. The 'Forward' direction starts at the portal shown in the 'From' line of the track's menu. When SV looks for a track to use to send a train on its next trip step, it will only consider tracks which 'begin' from this portal. This includes Tracks that are bi-directional, (the default setup), and tracks set to 'Only forward traffic' who begin (the 'From' designation) at this Portal.
Behaviour in Lookaheads: An 'Only Forward' track will be ignored when the Track Logic does its lookahead through a portal, checking for ONCOMING traffic, (see previous version release note) and recognises that this track only moves traffic away from the portal. Loops placed in a track object with this option enabled will be used for overtaking if their capacity is > zero. Zero length loops will provide a 'signal point' where a train may wait until the next track section clears. (NB: Section running will still recognise these sections as separate, and require a time for each).
Special Behaviour: If you specify a trip in the opposite direction to this track's forward direction, and include one of its loop objects as a step in your trip, then SV will recognise that you wish to have a train move along this track in the opposite direction - thus enabling you to 'force' some bi-directional traffic flow over this track.
Use this option carefully - the fact that it is enabled is not indicated in the Track Object's main menu - you need to check under the 'Options' line in the track's menu. The fact that it is used should be noted in your model.
24/04/97 File Format 166
FOR ADVANCED TRAIN NETWORK MODELLING
FOR ADVANCED TRAIN NETWORK MODELLING - New Advanced Track Logic Option in Portal - 'Oncoming Train Check'
- New Advanced Track Logic Option in Portal - 'Oncoming Train Check' This option is enabled by default. SV Track Lookahead Logic normally includes this option. You now have the choice to turn it off.
Background: When SV wants to move a train on to a track, it must first test further down the line, to ensure that no conflicts will arise that prevent the train being able to leave the track object at the other end. It is necessarily conservative. If the train in question is on a trip whose steps extend beyond the portal at the other end of our track, then SV will look at the next track object used in the next trip steps for any oncoming traffic. The assumption here is that if a train is on this next section moving toward the portal at the other end of our current track, then a deadlock is possible. SV will wait until the oncoming train is off its track before moving the current train on to our track. With the introduction of Multiple Portal entries and exits, we can now build 'one-way' tracks, which can be threaded through a series of portals. Generally, such tracks need not interact with any other independently-threaded tracks. Trains on such tracks are only expected to have their progress blocked due to a lack of capacity immediately ahead of them. Hence we often do not need to test for oncoming traffic. Disabling this feature now prevents this check for oncoming traffic (as if the trip ends at the next portal). Use this option carefully - it is embedded deeply in the portal's menu structure (like the other advanced options). The fact that it is used is not obvious, and should be noted.
21/04/97 File Format 166
- New Feature:
- New Feature: - New 'hidden' Calculation - for parallel port interface hacking
- New 'Special' Calculation - round to "n"
- New System Attribute: "Week Of Year"
A modeller can edit a zero width table directly
A modeller can edit a zero width table directly A modeller can edit a zero width table directly (just click on the cell). no need to expand the width, edit & return to zero. Reselecting units will still reset the column width.
- New System Attribute: "Week Of Year" Usage for RELATIVE time mode: gives # of weeks since start of run (like Week)
for CALENDAR (Absolute) time mode: gives week within current calendar year
NB: As far as the system is concerned, Weeks are always measured from Sunday to Saturday, no matter what day the year starts on. Hence for 1997, (1st of Jan was a Wednesday) week 1 will have 4 days, then Sunday (5th of Jan 1997) will be the beginning of week 2.
- New 'Special' Calculation - round to "n" if n is a positive value, SV rounds to n decimal places if n is a negative value, SV rounds to n multiples of 10
e.g. n=3 => 1.34567 becomes 1.346 n=0 => 1.34567 becomes 1 n=0 => 1.567 becomes 2
n=-3 => 1234.56 becomes 1000 n=-3 => 1678.56 becomes 2000
- New 'hidden' Calculation - for parallel port interface hacking NB: These are provided for hacking purposes only! The options appear only when the "calculation mode" menu is brought up with the control key held down, they are in the "special" sub-menu.
- 'Port Read and Port Write' - inp and outp routine calcs Both take a single parameter, being the port number, in decimal. For most PCs the parallel port is at 378h (hex) which translates to 888 in decimal (so the status and control registers are at 889,890) Port Read reads the current port register. It works also during lookahead, so a switch can depend on the port value. It does not unblock though, so if the port value changes, the model wont unblock an item. Port Write is a little strange, it actually writes the value in "target" (on the left of the =) to the given port. CAUTION! Be careful what port you write to... things can go screwy quite easily if you hit the wrong port. This should work under Win95 and DOS Sv. It will fail if you run SVW under WinNT. Only rudimentary testing has been done, so please report back to us immediately if it doesn't work.
2 18/04/97 File Format 166
Bugfixes fixed Insert Row bug
fixed Insert Row bug fixed Insert Row bug
18/04/97 File Format 166
FOR THE INTERDYNE USER:
FOR THE INTERDYNE USER: Runtime Table import now enables adding of labels to label lists, or assignation of aliases. This makes importing data files easier during run time.
11/04/97 21:16:33 File Format 166
Enhancements reworked field handling so in place edit fields can scroll for
reworked sorting of widgets in run time user-built dialogs
safe lookahead option always on (no longer in menu)
safe lookahead option always on (no longer in menu) This means that some older models may complain when run in this and later versions. Use the new runtime error dialog to flush out these situations. Use capacity between the change object and the following switch. Reason is that SV does not store results of Row or column operations (where many cell values are changed) for use in downstream evaluation. Basically, you need to "commit" these kinds of changes before making decisions with them.
reworked sorting of widgets in run time user-built dialogs Radio button group assignments were getting mixed up.
reworked field handling so in place edit fields can scroll for attribute/table cell/table edit
SV4.07 11/04/97 21:16:33 File Format 166
- IT'S ALSO PROBABLY TIME TO WRITE UP TUPLES
- New Features
- New Features - New Global Clear Contents Table Option
- VARIABLE LENGTH TABLES
NB: VARIABLE vs FIXED LENGTH TABLE BEHAVIOURS
- VARIABLE LENGTH TABLES New options in a table enable the modeller to select a different kind of table behaviour. A Variable Length Table will grow (in Rows only), and shrink during the model run, if you insert or remove rows (and Tuples)
- Sample Model - VLT_01.mdl
- New Global Clear Contents Table Option
NB: VARIABLE vs FIXED LENGTH TABLE BEHAVIOURS
NB: VARIABLE vs FIXED LENGTH TABLE BEHAVIOURS In a Fixed Length (Standard) SV Table, the Bottom Row, or Rows, of the table is removed when an Insert Row or Insert Tuple calculation is performed. In a Variable Length Table, the Bottom Row of the table is not removed when an Insert Row or Insert Tuple calculation is performed, instead the table grows larger by the number of rows added.
In a Fixed Length (Standard) SV Table, the Bottom Row, or rows of the table is replaced when a Delete Row or Extract Tuple calculation is performed. In a Variable Length Table, the Bottom Row of the table is not removed when a Delete Row or Extract Tuple calculation is performed, however the table shrinks in size by the number of rows removed.
- New Global Clear Contents Table Option You can now choose a "Global" Table option to Clear All Contents of your Table at the start of a run. For Variable Length Tables, this means that your table will begin with NO ROWS in it at the start of a run. (SV will let you add a Row at index number 1 to begin the table off, and will not throw range errors at you).
- IT'S ALSO PROBABLY TIME TO WRITE UP TUPLES TUPLE INTRODUCTION:
- INSERT / DELETE ROW (Also came with Tuples)
TUPLE INTRODUCTION: A table in SV can be thought of as consisting of ROWS of data records. A Tuple is a group of attributes recorded in a table row. In SV, a Tuple comprises one or more attributes from a single table row. You can read, or extract Tuples, using Items, writing values INTO MATCHING Item Attributes. You can also write, or insert Tuples, using Items, writing values FROM MATCHING Item Attributes. SV automatically matches the appropriate Item Attribute and Table column. It matches the Column Label (NB: Not the Column Title) with the Item Attribute name. You do not need to know where a particular attribute appears in a table - i.e. what column it is in.
TUPLE CALCULATIONS The calculation list in the Change Object now has an extra category of options, called "Tuple". You can choose from the following:
Get Tuple - Read the Tuple Information on to the Item. (Write Cell Data into MATCHING Item Attributes)
Set Tuple - Write the Item Attribute Data into the Tuple. (Overwrites exsting MATCHING Tuple Data) (Non-matching cells are unchanged).
Extract - Read the Tuple Information on to the Item, (As in Get), and then delete the Row. (Non-matching cells' values will be lost).
Insert - Insert a Row into the table and Set the tuple using the MATCHING Item Attributes. (Non-matching cells are set to Zero).
E.G. You have a table with three columns, and their Column LABELS are:
Train No. Origin Destination
If you add three corresponding Item Attributes to an Item, then you can use the Tuple Operations to read and write data to this table. (NB: Doing this does not prevent you doing single-cell calcs) The advantage of this is that you need only one calculation line to set the values of three attributes. A neat thing with Tuples is that non-matching values are ignored by SV. Now, say you create a fourth column in your table, using the column label "Payload". This does not affect your existing calculations. SV simply ignores the existence of the fourth column when "Getting" or "Setting" a Tuple. Note that if you Delete a tuple, then the entire row will disappear, including non-matching Cells. Likewise when you Insert a tuple, the table cell for the fourth column will be set to Zero. (NB: NOT currently the table column's clear value).
If you then decide to include the fourth column's data in your existing tuple calculations, then you need only define a new Item Attribute called "Payload". This new attribute collects the fourth column's data. There is no need to edit any of the tuple calculations.
The obvious convenience here is in the initial structuring of a model. You can build up the data profiles carried in an Item conveniently, without incurring too much calculation list editing. You can also construct tables that will receive only selected Item Attributes into a row, in Tuple Operations. Thus you can pass information between tables readily, perhaps filtering the information, and re-ordering its sequence for a more convenient for screen display. You can use any available attribute to define the target row for a Tuple Operation. If your Row index value is out of range, you get the usual error messages. When you Insert a Tuple, the Targeted (Indexed) Row is moved DOWN, and the new Row is placed at the Target.
- INSERT / DELETE ROW (Also came with Tuples)
- INSERT / DELETE ROW (Also came with Tuples) The calculation list in the Change Object now has an extra options, in the "Table" category. You can choose from the following:
Insert Row - Insert one or more Rows into the Table. All cells in the Row will be set to Zero. (NOT currently the table column's clear value).
Delete Row - Delete one or more Rows from the Table.
You can use any available attribute to define the target row, and the number of rows to be Inserted or Deleted in the Operation. If your Row index value is out of range, you get the usual error messages. When you Insert a Row, the Targeted (Indexed) Row is moved DOWN by the number of Rows you specify,and the new Row or row set is placed at the Target. When you Delete a Row, the Targeted (Indexed) Row and the rows below it up to the number you specified is removed.
20:41 2/04/97 File Format 166
- NEW FEATURES
- NEW FEATURES - Ability to make a direct reference to an item of
- Ability to make a direct reference to an item of - Ability to make a direct reference to an item of a Label List in the Attribute Selection Dialog. The value taken for the item is its list index value. Benefit is to make your model's logic easier for others to follow. The sample model is a good example of this. (Previously we had to create a bunch of attributes in order to deliver this degree of traceability in the logic of a model). Sample Model - HighRoad.mdl Where is it? In the Attribute selection dialog, under the Type Button, there is now an additional option, called "Label". When you select this option, you can first of all choose a label list, and then you get to choose the specific label. Note that the new attribute type has the prefix "L:" Note also that in the "button" display for the attribute, the source label list is not mentioned. You can change the name of the Label List when it is referenced in this manner. If you change the text of the label item, this change is reflected in all of the locations where it is referenced. You will get a count of the number of times a specific Label item is referenced in attribute dialogs, when you check the Refs button. You cannot delete a label list that still had references made to it from parts of the model.
17:38 25/03/97 File Format 166 (covers 406e also)
- NEW FEATURE
- NEW FEATURE **** IMPORTANT!!
- Connecting to Track Objects
- Multiple Portal Entries and Exits
- NB: AUTOMATIC RENUMBERING ON PORTAL NAME CHANGE
- Multiple Portal Entries and Exits
- Sample Models (These are pretty basic, and require further annotations, which will be done later). Multex01.mdl 406et01.mdl 406ex01.mdl MultiTrk.mdl Fortest.mdl Fortest2.mdl
- Multiple Portal Entries and Exits Enables the following: a) Direct control over incoming flows from specific objects located outside a Subsystem. b) Direct control over outgoing flows to specific objects located outside a Subsystem. c) An entirely new approach to handling item flows through a subsystem - you need no longer use switches and attributes to direct an item when its route through the subsystem depends upon the object from which it came into the subsystem. d) An entirely new approach to handling item flows out from a subsystem. You need no longer place switches and attributes immediately outside a Portal to direct an item when its route away from a Portal depends upon how it was processed inside the Subsystem. The "Switching" can now be done within the Portal, and the Portal Exit chosen determines the branch taken outside the Portal as the item leaves. e) Enables previously challenging (or impossible) train control logic, and capacity management issues to be handled cleanly. f) A far more congruent representation of incoming, outgoing and crossover schematics within subsystems. Multiple Portal Entries and Exits enable items to enter from the left, and depart to the right, and at the same time enter from the right and depart to the left, and enter from the top and depart to the bottom, and so on. This also makes logical constructs easier to build and follow.
You can now create as many alternate Portal Entry Objects, and Portal Exit Objects in a Subsystem as you wish. Choose the new option "Add Alternate Entry"/"Add Alternate Exit", and a new Entry/Exit is placed on the screen for you to use. Each can be assigned to be the link from, or link to, a specific object, outside the subsystem. When you assign an object to a Portal Entry, its name appears above the Portal Entry/Exit. A Portal Entry not specifically linked to an object (ie. linked to "Any") receives the items that are not directed to a specific Portal Entry. Only one Portal Entry should be set to "Any"... (this will be enforced in a later version). Portal Exits set to "Any" (i.e. no specific target object) will send items out of the subsystem along the first flow (lowest numbered path) or appropriate track leaving the Portal, as in previous SV versions. NB: Other Paths / Tracks are NOT taken, even if the lowest path is blocked.
- Connecting to Track Objects
- Multiple Portal Entries and Exits
- NB: AUTOMATIC RENUMBERING ON PORTAL NAME CHANGE
- NB: AUTOMATIC RENUMBERING ON PORTAL NAME CHANGE Each Portal Entry and Portal Exit can now be named independently. However if you rename the owning Portal (the Object containing this subsystem), then all of the Portal Entires and Exits are automatically renamed according to a special renaming/numbering system. All links to specific named objects are retained if you copy and paste the subsystem. This enables you to perform Ctrl-Pastes, without having to re-assign the Entries and Exits. If a specified object is not linked, or not present when the portal with multi entries is pasted, then the system will complain about: a) Being unable to form a link, when there is no object of that name present, or b) The absence of a link, (either Path or Track) where the object is present.
- Connecting to Track Objects
- Multiple Portal Entries and Exits
- NB: AUTOMATIC RENUMBERING ON PORTAL NAME CHANGE
- Connecting to Track Objects You can connect Portal Entries and Exits to Track Objects. To properly connect up a Track object and enable bi-directional travel, you need to assign both a Portal Entry, and a Portal Exit to it. This will enable two way flow. If your track is only uni-directional, then you need only assign an Entry or Exit, depending on the Track's direction. Note that if you connect a Portal Entry/Exit to a Double Track Object, then you will get traffic coming in from either of the two individual tracks, (Portal Entry) or departing on to either of the two individual tracks (Portal Exit). You may get more flexibility options by using two single tracks, rather than one double track - this will becme clearer with further testing.
- Connecting to Track Objects
- Multiple Portal Entries and Exits
- NB: AUTOMATIC RENUMBERING ON PORTAL NAME CHANGE
- Limitations: A link created between a Specific Object and a Specific Portal Entry applies to ALL ITEM CLASSES' with a path from the Object to the Portal. All items, regardless of Class, leaving the Specified Object and entering the Portal, will arrive at the Specified Portal Entry. As usual, you can have different paths for the different classes leaving the specified portal entry. A link created between a Specific Portal Exit and a Specific Object applies to ALL ITEM CLASSES' leading to this Portal Exit. All items, regardless of Class, passing through this Exit, will go to the Specified Object. The software doesn't complain if 2 Portal Entries are assigned to the same object. Only the earliest created (NOT earliest assigned to the object) Portal Entry will accept items. (2 exits can point to the same object - this makes sense). More validation will soon be added to prevent assigning multiple Portal Entries to the same object (or to <any> for that matter). The software currently provides no warnings if an object connected to the Portal is "left out" of the specifications, and there is no Portal Entry in the subsystem with the assignment of "Any". This object will simply become, and remain blocked. You cannot leave the earliest-created Portal Entry with an unconnected flow, even if all other Portal Entries are connected, and set to receive items from any object.
- Connecting to Track Objects
- Multiple Portal Entries and Exits
- NB: AUTOMATIC RENUMBERING ON PORTAL NAME CHANGE
**** IMPORTANT!! Ctrl-Pasting of Subsystems assigned specific connections in a track network will probably give link warnings since the connections made are so specific to each subsystem, and a great deal of re-connection maintenance will be required if you think you will be making changes that you will have to replicate many times if the subsystem flow structure must change for some reason. Either use Ctrl-Paste only on single objects inside the subsystem, or build logic into Portals within the Portal linked into the network infrastructure, (if you think that flow editing may be required as the model progresses).
- Connecting to Track Objects
- Multiple Portal Entries and Exits
- NB: AUTOMATIC RENUMBERING ON PORTAL NAME CHANGE
ENHANCEMENTS - Beginnings of Password access to the Model.
- Enhanced Debugging Info on Runtime errors.
- Enhanced Debugging Info on Runtime errors. When a runtime error occurs, the user is given more information now.
Line 1 gives the Subsystem path, and Name Line 2 gives the Object name Line 3 gives the Item ID number Line 4 gives the Error Message Details
A "Show Location" button enables you to see the location of the object where the error was detected. Object will flash for 5 seconds. An "Inspect Item" button enables you to inspect the attributes of the item that was involved in the error, and determine which object it was in when the error was detected.
- Beginnings of Password access to the Model. (Under Author Info, but not operational yet.)
19/03/97 8:45:17 File Format 165
- New features
- New features - Capabilities:
- creation of remote message item.
- Dispatcher Object now has a new mode, called "Send Message".
- creation of remote message item. Enables remote management of items in transit.
- Dispatcher Object now has a new mode, called "Send Message". Entry Object now has a new mode, called "Message Entry". When you set the Dispatcher to “Send Message” mode, you need to nominate an Entry from a list of available Message Entries. The Message Entry nominated need not be in the same subsystem. When an item enters this dispatcher, a "message" is sent to the nominated Entry, which then produces a "Message Item". This Message Item is identical to the original item except for its item ID. It contains all of the attributes and values of the original item in the dispatcher. The original item is held by the Dispatcher until the "Message Item" is taken out through an Exit object, whereupon the original item is then free to leave the Dispatcher. When the Message Item passes through the Exit, it passes back to the original item its characteristics, including Attributes, Trip details, Icon, and Class.
- creation of remote message item.
- Capabilities: Many Dispatchers can call upon a single Message Entry. You can centrally/remotely manage changes to any or all of an an item's: Attributes Icon Trip details Class
- Dispatcher Object now has a new mode, called "Send Message".
- Limitations: You can not pass information back to the original item if you destroy the Message Item in an Assembler, Splitter. The original Item will be held in the Dispatcher forever if this happens.
- NB: You cannot allow a Message Entry to be blocked. (Model complains when this occurs).
- creation of remote message item.
- Dispatcher Object now has a new mode, called "Send Message".
BUGFIXES - Bug with log system and big disks (> 2GB free) should be fixed
- Track animation on blocked section bug fixed
- Track loop no longer "puts aside" train which has trip step at the loop
- Track naming conflicts fixed
- Track animation on blocked section bug fixed (used to get extraneous animation of the blocked item)
- Track loop no longer "puts aside" train which has trip step at the loop (so zero capacity should be honoured)
- Bug with log system and big disks (> 2GB free) should be fixed (but > 4G free may still be a problem - cant test either ;( )
- Track naming conflicts fixed - 2 or more tracks between the same 2 portals would get the same name which would cause problems when loading trip steps (eg: loops) specifically on one of the tracks.
New Features - Paint text/buttons - new option - to hide on interdyne flag.
- Paint text/buttons - new option - to hide on interdyne flag. A button with a click action attached to it can be set so it is seen only by a modeller. It is not then seen in InterDyne view.
Enhancements - Label list selection dialog also enables adding label alias
- The table column label now adopts its column title's name when the title is
- yes/no/cancel dialog - proper button labels for different contexts
- yes/no/cancel dialog - proper button labels for different contexts - yes/no/cancel dialog - proper button labels for different contexts
- The table column label now adopts its column title's name when the title is The table column label now adopts its column title's name when the title is first set, and thereafter (while they are identical) upon any edit of the title, the user is asked whether they wish the label to follow the title.
- Label list selection dialog also enables adding label alias
## note alot of changes this version, commit with care ### * The windows version of this release is built with full optimisation and co-processor inline code (it will still work w/o a coprocessor)
Enhancements - File loader number read rewritten
- File loader number read rewritten - got 18% reduction in load time - please report any load anomalies
BugFixes - button alignment code rewritten
- Double tracks display properly at any angle
- Fixed bug with search
- table column / overlay
- Fixed bug with search - it was causing an unblock during lookahead this caused a model to get "stuck" - the clock stopped advancing
- Track bends added A section can have one or more bends inserted into it. Bend points appear as + during edit. You can shift-click select them to drag them as a group.
- Double tracks display properly at any angle
- table column / overlay column selection in graph views now uses new scrolling list
- button alignment code rewritten (computes base line of buttons) let me know of any overlaps
SV 4.06 - Windows editor fixed for auto track build (updates properly after edit)
- default track sort mode is now manual
- section up/down time dialog has proper z-order (wont get hidden)
- win icon mover shows paths and names
- label list clear button
- export section running time can export directly into a label list, starting at a given index
- win line drawing fixed (chart horz pixels) - was not drawing to end of line
- bitmap handling/mask generation bugs fixed in icon editor (windows icon/bitmap handling consolidated a lot)
- "round/trunc/min/max" implemented for columns - you can round a complete column, also take min/max of column vs. a scalar
- zero width columns - display as just a box
- table edit fill across - will ignore any row label column encountered - nb not for index across yet
- money presentation - if a decimal isn't entered it isn't added
- windows missing clock problem (now positions at window corner by default)
- windows - smaller clock, supports drag, click on it for menu
- windows clipboard - can copy data into SV tables - either via FILE->IMPORT from clipboard or from cell "Paste from clipboard" options (these only appear in SVW if there is data in the clipboard)
- fixed "close window" bug from SV4.05 (could cause memory tag errors or lock ups when closing)
- Box clipping problems fixed for object exits
- Icon choose directory browsing now works
- Icon choose no longer retains last directory used, it starts at the model's library (unless going to icon edit)
- Graphics engine now supports "clear colour", so its available in the colour palette again
- Half-oval dials now drawn/filled
- MessageLine handling - start to give windows their own message line
- better screen redraw (reduce flicker) when repainting with a scroll offset
- Started log viewer cleanup
- Fixed winnt startup problems in SVW
- Track runtime popup menus avoid no-select text
- Track section name is now generated from adjacent stations (internal name can still be set but its become redundant)
- '"'s are now filtered in SVW
- Icon editor Load/Quit now works but it meant locking SVW's main window while the editor is running - it needs to become a separate app or DLL
- fixed icon draw problems for icons which were not a multiple of 4 pixels wide
- control-key shortcuts, mode change, run and save CTRL-O, CTRL-F, CTRL-I, CTRL-S, CTRL-P
- better name filter for exported section name
- stat double click handling (table views) fixed - to edit double click in the name area (at the top)
- stat clipping (copy/load) uses proper bounding box - should not move
- portals track their scroll position separately (not saved yet)
- "Trips" renamed to "Routes"
- wider calc description area in calc dialog
- Colour palette handling improved to handle multiple images better in 256 colour modes
- make sure images which use less colours are redrawn first (ie. in the background) If possible, try running in 16 bit colour mode, images look nicer
- Table write problems (DOS) - appears file sharing extensions broken for file write mode so they are avoided under DOS
- icon browser now has working scrollbars, text descriptions
- selecting the same icon for several states no longer loses images
- Icon mover cleanup, partially operational now under Win (needs bit more work Icon editor still flaky so be careful
SV 4.05 - Bugfix to writing of DAT files during model run
- Introduction of new Tuple handling features and new reference mechanism for tables. This will be further documented soon.
SV 4.04 - Bugfix to loading of models saved in 4.03
SV 4.03 - Paint object clipping for windows with bigger workspace now fixed
- Table import crash bug fixed - redraw happening at bad time
- Trip list sort by name button (Win version only) added
- Export of section names now exports the names of the bounding stations/loops
- Run time and edit table import file access uses sharing to avoid the brown warning dialog and its problems on some systems
SV 4.02 - Fixed table/mapper edit dialog size (so it fits on 640x480 displays)
- Continue background popup works in panels
- Added: Row operations (only in table view, not in table edit yet)
- Cut, Copy, Paste, Insert-Paste, Clear, Insert Row & Delete Row
- These work during edit and runtime without resizing the actual table
- Paste pastes whatever is in the copy paste buffer starting at the first column of the selected row [no keyboard short cuts yet]
- Shift click on a row or column selects it, if already selected it gets deselected, if something else is selected the selection is extended to include the row/column
- These are available in InterDyne mode as well
- Cell select menu now enables selection from current cell to end of table (Select To End)
- Selection click: Now support cut (copies data and clears) and Clear (sets cells to their clear value) as well as copy
- DOS wait box display fixed
- model stop bug with preinit for track stoppages and conveyor co-ords fixed
- Simulation continue background menu works in interdyne mode
SV 4.01 Mainly bug fixes
- Fixed scrollbar redrawing
- Removed flicker on resize
- Fixed grow window with scroll bars problems
- Fixed glitches in animate during scroll
- Maximise window problem fixed
- New "Palette" style for palettes & clock
- "Clock" title => "Time"
- rewrote scrollbar handling for new Win95 style scrollbars
- fixed redraw problems with fields & rtf when paused and scroll
- new notes can be added again, fixed note dialog in Win version
- Cleaned up icon-attribute lookup table dialog
- Reimplemented mouse cursor handling
SV 4.0 New Features:
New Features: "Fit to Area"
Screen Workspace Size
Screen Workspace Size Each dynamic and Panel screen can have a different workspace size
Theres an option in the Windows menu (as well as the screen properties popup) to change the size for the current screen and those within its scope (dynamic and / or panel) Resizing existing screens is possible, but shrinking a screen will squash the objects at the bottom, also large objects (eg. tables) may fall outside of the "canvas" area if a large work area is shrunk. Maximising the SV window centres the work area
"Fit to Area" A "Fit to Area" option in the menubar resizes the SV window to fit the canvas, as much as possible
- Background menu now has a "View" popup for changing mode without going to the menubar (in flow mode do a ctrl-click and use the object menu)
- Animation now continues when SV is put into background, use left click in window to pause (via menu), right click forces pause. If animating with time box, click in timebox to pause
- attref dialog has better item alignment, and has the correct Zorder so it doesn't get hidden under the dialog which created it
- wait cursors (for model load etc) are now shown
- a new "Inner" about box (no splash screen yet...)
- Calculation list editor rewritten to reduce flicker
- Many more object popups formatted more nicely (eg. PV objects, file access menu, interaction menus)
Tracks - Tracks Objects (spanning from portal to portal) are named automatically with names derived from the objects at each end. They will be renamed if the portal either end of them is renamed.
- Label update now works for attributes as well
- Routine warnings in 39X2 were extraneous and have been fixed
- scroller drag now works - but animation glitches badly if scrollers are dragged while items are actually animating
- Changes to mouse button "focus" handling, no longer process the click which activates SV (when its in the background)
- Attref scanning did not include mark object attrefs - could have caused some problems if tables were referenced at mark objects
- double click on clock now starts model in SV win (and fixes DOS preinit bugs I hope)
SV39X2 Changes Misc
Routines - Calculation List Enhancements
Routines - Calculation List Enhancements New Row/Column Calculations
New Row/Column Calculations
- Compute a value from a row or column of a table
Min,Max - give index of cell with min/max value
Sum,Sum of Squares, Average, StdDev - sllow summing etc. of row or column
- Can duplicate a calculation in a routine during edit
- Problems in routine instances fixed but still not much testing...
Misc - Attribute stats no longer clip -ve values to 0
- Track crew usage would cause crash at end of run - fixed
- Colour palette now displays the colours :)
- Keys work for graph viewer
- Path numbers now hide properly, using new drawing technique
- Portal animation for entering item handles track/non track properly (animation to edge or centre)
- Keys work for graph "browse"
- Menubar "Run Start Time" was broken in SV39X, now fixed
- Scale handling for graphs handles big fonts and clipping more nicely
- Many more Object menus formatting changes for Win, facility state/stoppage etc. Please report problems in either version
SV39X - Label import has more validation
- Table import enhancement
Clipboard (for the Win version)
Item Edit Box
RTF paint object (for the Win version)
Track Productivity Enhancements
Routines A "routine" is the new name for "Calculation List". Instead of being stored in a change object, a change object can reference a routine associated with a portal in its parent hierarchy. This means that modification of the routine will immediately be reflected in all change objects using it (assisting in maintenance).
To come: Routine "calling", parameter passing and *ITERATION*
Clipboard (for the Win version) Copied table data is put into the Windows clipboard when another application is brought to the foreground.
Label Handling - The "new index" algorithm now uses the index of the first "gap" in the index range
- The sort can reindex from 0 or 1 - it makes a guess at the right option which the user can override
** Label Alias Several names can be given to one label, to enable matching of varying forms of the same string during label import
** Target Update When the label list is modified (edited, sorted, imported), all targets using the label list (eg: table columns) are updated to reflect the change in the index values.
- Merging supported Changing the index of a label to the index of another label enables a merge of the two labels
- Table import enhancement When importing labels via a table import, an unknown label can be handled in 3 ways
- add it as a new label
- substitute an existing label for it (once only)
- add it as an alias of an existing label
- Label import has more validation - checks against the same label index being used twice
- Label import now can read just a list of names (on separate lines) which will then get indexed automatically (from 1)
Track Productivity Enhancements You can export a list of section names from the section running time dialog. This can be imported into a label list (using the "Names Only" option since no index values are written The change object "Trip assignment table" can be exported - the names and index values are written - which can be imported into a label list NB: It is intended that these linkages will become internal and automatic
Tables As well as fill down / fill across, index down / index across are available in the table editor (enabling increments to be applied down a column, for example) A Table "Select All/Copy" option in the "Table" button menu facilitates quick copy of the table Keys now work (in the Windows version) for the selected table
RTF paint object (for the Win version) Like a note but enables text with formatting (Rich Text) to be used. Text can be pasted to/from Word, Wordpad etc. using the edit control keys. NB: RTF notes appear as empty boxes under DOS
Menu bar The menu bar has been rearranged, particularly the "Edit" menu. More changes to come (including a button bar)
Item Edit Box The item edit box (top right corner) now lives in the status bar (at the bottom right of the screen) in both versions. This now clears the way for growing the workspace in later versions...
Misc "Safe Lookahead" option (on for new models) strictly checks that change objects before switches dont make changes that conflict with the lookahead system (eg: clear table or invoke a user dialog). This helps clears up strange behaviour in models which have a switch depending on a table cell value preceeded by a table-change object. Turn it on for older models and watch for warnings during its run
- Many dialogs improved/fixed in the Win version (eg: switch multi-condition)
- Comments on calculations and attributes can be added
- The Portal Entry/Exit borders are properly hidden when the Portal "Keep PEntry/PExit Hidden" option is on
- Windows now confirms save on quit of the program
- Choose Icon palette now enables selections, more robust
- display option to hold clock on end of run
- The dial "Y" scale can have a time-formatted axis
- The "Journal" options are removed for now.
idkbase note 172