v2.1.2.2
05/01/12
|
- sensor objects can now be bound to incoming security element packets
- several encoding/decoding properties were added to the PkSecurityElem packet
- sensor events now return the Loconet packet that triggered them; on the scripting side, the packet is returned through e.Args
- exposed a few bitwise helper methods, for encoding/decoding packets bytes, through the API
|
v2.1.1.0
04/02/12
|
- serialized the engine auto bind packet submission to prevent binding corruption
|
v2.1.0.8
03/25/12
|
- Scripting changes:
- added CtcService.BindEvents()/UnbindEvents() for dynamic event binding in script
- overloaded CtcService.SubmitCmd() to simplify scripting with lambdas
- added new sequential execution scripting pattern
- added/updated several script templates
- added two new collection namespace imports to the generated scripting assembly
- removed line dividers in script text editors
- changed compilation target of RRAutoLib.dll to .NET 4.0
|
v2.0.36.1
02/06/12
|
- retargeted the update URL for ClickOnce deployment
- "change log" link in app now points to this page rather than a local file
- changed the throttle and switchboard controls legends from tooltip to popup panel for readability
- changed the throttle's button order to match the remote throttle
- better binding/unbinding engine to slot error reporting
- ICtcObjectListBase interface, in the API, is now enumerable
- optimized load times and UI performance for large layouts; should now be many orders of magnitude faster
- for stateful objects, pending dispositions are no longer saved between sessions; they are reset instead
|
v2.0.35.2
12/06/11
|
- added collapsable ribbon buttons
- added custom serialization to Packet classes
- renamed RaiseEventsSyncContext to SyncContext for consistency throughout the API
- added script template "Action based on transponder"
- changed the BDL16x zone decoding for transponding PkMultiSense packet
- Remoting changes:
- Packet properties (ID, ReqID, IsEchoe, TimeStamp) are now marshalled to remoting clients
- added remote TCP connection viewer/manager in RRAuto
|
v2.0.34
11/21/11
|
- added BDL16x address decoding for MULTI_SENSE packets
- Remoting changes:
- made service shutdown faster by properly closing all the open TCP channels
- client connection closures are now async
- the server now provides visibility of remote client connections (ID, IP, Service Host)
- client connections can now be individualy killed from the server
- fixed several edge case connect/disconnet exceptions
|
v2.0.33
11/16/11
|
- Remoting changes:
- fixed bug with EngineProxy.Disconnected event not synchronizing on the RemClient.SyncContext thread
- added ability for client proxies to gracefully disconnect
- renamed several method and events for clarity
- added a remoting proxy for the LoconetService
|
v2.0.32.1
11/07/11
|
- Remoting changes:
- rebuilt the entire system using the newer WCF library (since this will be supported in future versions of Windows)
- added better error handling for edge case scenarios
- better resource management and disposal
- fixed several packet corruption bugs caused by lingering event bindings
- simplified client API
|
v2.0.31.2
11/05/11
|
- refactored and unified the script event binding system
- added scripting events for Engine objects
- changed Route's scripting syntax for set/lock/unlock
- added more granular scripting events for routes
- restructured the events for the Sensor object
- transponder locomotive addresses are now passed to events and scripting
|
v2.0.30
10/27/11
|
- added ability for sensor object binding to MULTI_SENSE transponder events
|
v2.0.29.6
10/16/11
|
- added client/server infrastructure for remote control through TCP in the RRAuto class library
- the remoting listening service has been added to the Railroad Automation application UI
- the remote client connectoid is available in the RRAuto class library for developers
- fixed a script event binding bug introduced in the last version
- implemented the "Enabled" property for script objects
|
v2.0.28
09/22/11
|
- Scripting changes:
- added "BeforeStateChange" binding event for track turnouts, signals, and accessories in the scripting editor
- added "BeforeSetLock" and "BeforeUnlock" binding event for routes in the scripting editor
- the new "Before*" scripting events may now cancel the callers operation through their event arguments (e.Cancel = True)
- the new "Before*" scripting events now pass the requested change state through their event arguments (e.Args)
- scripting event arguments are now passed by reference and can pass values back to the caller on syncronous calls
- the signature for scripting event handlers has changed to support the above features and allow for future parameter expansion
- scripting templates have been updated to reflect the signature changes made to the event handlers
|
v2.0.27
09/11/11
|
- fixed bug where track connections would fail to render in certain exceptional cases
|
v2.0.26
08/29/11
|
- removed the decimal string byte representation from the "Loconet packets log" pane; the hex format seems to be the prefered type
- added custom icon to represent PkImmediate packets in "Loconet packets log" pane
- revamped the switchboard context menu hierarchy to be more flat
- converted more image icons to vector icons
- got rid of all signed datatypes for bitwise operations to prevent potential problems
- added ability to send PkImmediate DCC decoder control packets through the client UI
- added better index and value range checking for property input
|
v2.0.25.1
07/27/11
|
- Loconet API changes:
- the switch state is now reported by PkLongAck packets with SwitchStateResponse type
- fixed the decoding/encoding of the PkImmediate's DccBytes payload to take into account most significant bit
- all DCC instruction bits are now decoded from PkImmediate packets
- added support for controlling auxilary function 0-28 through PkImmediate
- added new PkLongAck description for PkImmediate responses
|
v2.0.24
05/10/11
|
- made the slot viewer more graphical and easier to read
- chanaged the default docking layout
|
v2.0.23
04/11/11
|
- removed Block.AllowStop property
- added Block.HasCatenary property
- simplified the unlock route switchboard context menu
- Loconet API changes:
- short-circuited the LoconetService transmission thread to not wait for echoes if an error occurs writing to the serial port
- events and callbacks without sync contexts are now executed on the Rx pooled worker threads rather than creating new ones
- Rx notification execution order was changed to delegate callbacks first and events second
- packets supplied with empty CallBack objects no longer error out, they just get ignored
- renamed Packet.CallBackOnRequest to Packet.CallBackOnEcho for clarity
- renamed LoconetService.TxPriorityBufferedSpeed to LoconetService.TxPrioritySpeed; "Buffered" was a misnomer
- renamed PkDccProgram.ReplyCode to PkDccProgram.ProgErrFlags and added the bitwise DccProgErrFlags enumeration to define the returned flags
- refactored all LoconetService members to be thread safe (can be called from any thread any time)
- added ability to transmit Loconet packets synchronously through LoconetService.TxSyncPacket()
- refactored Engine.UnbindSlot(True) to use the new properly implemented TxSyncPacket(); the old implementation failed with deeply stacked packet queues
|
v2.0.22
01/27/11
|
- added switchboard zooming shortcuts {_/-} and {+/=} for computers with no mouse-wheel and no numeric keypad
- added ability to bind scripts to the Route object's StateChanged event
- renamed StatesList to PkStatesList and IStates to IPkStates in the API
- added compatibility message when loading old formatted layouts
|
v2.0.21
01/19/11
|
- switched class library collections to generics
- CTC object lists now have greater type affinity (scripting will require less casting)
- refactored the layout deserialization system for maintaining better compatibility between versions
- fixed undefined signal creation when added through the object browser
|
v2.0.20
01/02/11
|
- CtcService.RaiseMessageEvent() has been renamed to CtcService.PostMessage() for clarity
- assigning invalid states to tracks/signals/accessories now displays a CTC warning message instead of throwing exceptions
- for script brevity:
- simplified the getting/setting of CTC object states
- getting/setting the state of CTC objects can now also be performed by state name
- changes made have broken some compatibility aspects; to fix previously saved layouts:
- states file .rrs is no longer compatible; a new one will be generated after first launch
- for a route's turnout members, positions have been reset to default; re-assign to previous states
- for scripting changes check the class library documentation
|
v2.0.19
12/25/10
|
- decoupled the Signal object's visual look from its operational primitive in the CTC API
- multiple visual looks are now supported for signals through the UI (localized looks will be easier to add in the future)
- better aspect packet retention when a signal's configuration is changed
- added generic signals; prior all signals looked Germanic
- all signal aspect names have been renamed from Germanic to generic
- signals are now organized by aspect count rather than role for clarity
- fundamental changes to the signal object broke compatibility; for previously saved layouts re-assign new types to each of your signal objects
|
v2.0.18.7
12/15/10
|
- the stack trace is now copied to clipboard rather than shown for unpredictable error dialogs
- introduced the Viewport term as it relates to the switchboard tabbed documents for clarification
- application now compiled against the .NET 4.0 framwwork; better clear type
- updated the ribbon control; fixes a mouse tilt-wheel bug for 64bit
- changed PkSwitchInput packet so now it can be sent from the PC for simulations
|
v2.0.17.1
09/20/10
|
- renamed Engine.AquireSlot/ReleaseSlot methods and corresponding events to BindSlot/UnbindSlot to be more consistent with other references
- renamed and consolidated the Engine object's events so that they all get raised on the sync thread; engine events on own thread have been removed
- enhanced the results reported through the Engine.BindSlotResponse event
- option to warn if an Engine's slot is in-use and ability to steal the slot is now supported
- ability to execute Engine.UnbindSlot syncronously has been made public in the API
|
v2.0.16
09/05/10
|
- engines can now be bound to slots without the requirement of an open throttle for better script support
- added property Engine.AutoBindInOpr to indicate if engine should automaticaly bind to a slot in operation mode
- added SlotReleased event to the API; was needed to support new features
- added toolbar button in throttle to manually bind/unbind to a slot
- added context menu option on engine object to manually bind/unbind to a slot
- throttles are now operational in edit mode and operation mode
- editability of engin's address and speed steps are no longer based on mode but on binding state
- engines bound to slots are now purged on layout changes and application close
- fixed bug where engine references not disposed of properly would cause object ghosting after layout changes
|
v2.0.15.3
08/31/10
|
- organized the script templates a little better
- added more inline documentation to the script templates
- added a few more script templates
- fixed issue with engine direction/function state corruption when setting them consecutivelty through script
- when deleating an engine, coresponding throttles are now closed to prevent unwanted lingering references
|
v2.0.14
08/29/10
|
- CtcService.SwitchboardSize has been removed from the class library as this was a limitation of the renderer rather than the API
- made the switchboard size unlimited; although the grid remains limited, objects can now be placed outside the grid
|
v2.0.13
08/09/10
|
- fixed layout deserialization error when loading a layout through the API that was created though the Railroad Automation application
- persisted tags can no longer break serialization; problem existed where altered user created types saved in the tags would break deserialization of the layout
- throttle configuration is now stored with the layout rather than the engine
- fixed "docking to last saved" not sticking to most recent save within a session
|
v2.0.12
08/06/10
|
- for methods LoconetService.Start/CtcService.SaveLayout/CtcService.LoadLayout, exceptions are now thrown instead or returned
- thrown exceptions from Save/Load layout are now a bit more descriptive
- ribbon's "recent documents" list is now culled on attempts to load layouts that no longer exist
|
v2.0.11.2
08/05/10
|
- added diagonal crossing track as an alternate to the square crossing track
- the curved track brush in the switchboard has been changed so that it can better participate with the "maintain orientation" system during track type changes
- for alternate track configurations (i.e. curves and crossings) the shortcut key can be pressed multiple times to toggle the alternates
- above changes broke layouts built with previous versions; to fix your layouts:
- rotate wrongly oriented curved tracks once to the right
- all other tracks that are shown with incorrect types, or not shown at all, need to have their track types changed one down from the track type list
|
v2.0.10
07/30/10
|
- selected tracks and signals can now be moved in the switchboard with the ArrowKeys
- changed switchboard panning shortcuts to Space-ArrowKeys to prevent conflict with new feature
|
v2.0.9.2
07/22/10
|
- the "check script" toolbar option in the script editor window has been implemented
- compiler error reporting has been enhanced to indicate code type and object location
- compiler error line numbers are now reported relative to the corresponding script rather than the entire assembly
- added line numbers to all script editors to complement the new script error reporting
- created new window for listing script errors to replace the previous message box
|
v2.0.8.1
07/05/10
|
- fixed an exception in the speech grammar builder that would occur on layouts with at least one track but no turnouts
|
v2.0.7.6
07/01/10
|
- allow directly opening a layout by lauching the app from an .rra file (never worked for ClickOnce deployment)
|
v2.0.6
06/17/10
|
- converted more bitmap icons to vector icons
- added generic packet PkSpecialOem for Intellibox control to the Loconet API
- changed LoconetService.ComPort property from enum to byte to support higher COM numbers
|
v2.0.5
05/31/10
|
- removed unused constructors in Tracks/TracksList and Signal/SignalsList objects
- maintain "last orientation used" in switchboard for new tracks
- added missing icons in switchboard context menu
- made it a bit more clear when tracks and signals are placed or replaced in the switchboard context menu
- configuration of turnout and signal states is now maintained whenever possible after a type change
- fixed possible route corruption when changing the track type contained in a route
|
v2.0.4.3
05/28/10
|
- improvements to the sequence system:
- made sequences thread safe so they can now be operated from scripting and UI simultaneously
- added ability to step enter/edit sequence items through the API; in the previous version only live record was possible
- added ability to batch substitute slot numbers of the packets in a sequence
- added icons that dynamically display the status of sequence nodes in the object browser tree view
- added icons in the object browser's context menu for Record, Play, and Stop actions
- added a scripting template for playing a sequence
- added sequence control through speech recognition
- got rid of the SOAP formatter for save/load layouts due to its lack of support for generics; the SerializationFormat will no longer need to be specified; the binary formatter will always be used
- toolbar help button now links to Railroad Automation tutorials channel on youtube.com
|
v2.0.3
05/09/10
|
- implemented the Sequence railroad object; before, this was a placeholder and not operational
- fixed problem with slot status list not being populated in some cases
|
v2.0.2
04/22/10
|
- fixed several UI refresh issues with the LocoIO programmer
- moved project to VS2010
- updated toolbar and docking control
|
v2.0.1
03/27/10
|
- changed the BaudRate enumeration to support more rates; specificaly added 38400 and 115200 which are used by Uhlenbrock
- allow to disable serial port flow control for Uhlenbrock interface
- fixed the LocoIO multi-port property grid editor
|
v2.0.0.168
02/20/10
|
- rewrote the entire front end in WPF; a couple WinForms controls are still hosted
- changed old menu/toolbar to a ribbon style and reorganized command structure
- new vector icons and app logo
- switched the user settings system from my custom one to the one provided by the .NET framework
- user guide was old and obsolete so I got rid of it; may write another one at some point
- got rid of the GDI+ and DirectX switchboard renderers in favor of the WPF renderer
- changed CTC object icons to be dynamicaly generated reflecting their actual configuration and state
- multiple switchboard view ports are now supported through tabbed documents
- script execution added to the voice recognition grammar
- default save/load layout location changed to user's documents folder rather than application root
- got rid of the CCW which allowed API calls from COM; .NET has been around for 8+ years so we can let go of COM
- switched API's layout serialization from SOAP to binary formatter to support generics
- changed API's event sync system from ISynchronizeInvoke to Dispatch pattern to support Win Forms and WPF UI thread synchronization
- added script binding for sensor objects
- changed application target compilation to .NET 3.5
- changed API's target compilation to .NET 3.0
- many of the internals where refactored
- deployment is now offered only through ClickOnce as updates are easier; an offline install package is also available but not updated as often
- libraries are now offered as a separate download for developers
|
v1.1.26
04/08/09
|
- fixed a permission error when saving application setting on Vista 64bit
|
v1.1.25
03/28/09
|
- created an all new switchboard in WPF (zooming, vector based, dynamic state context menus, etc.)
- CTC objects now have two types of tags (transient or persisted)
- sensors can now be manually simulated
|
v1.1.24
01/26/08
|
- changed application target compilation to .NET 3.0
- fixed problem with nag screens
|
v1.1.23
08/23/07
|
- added new "change direction" grammar to speech recognition
- changed the installer to bootstrap the .NET 3.0 redistributable rather than including .NET 3.0 DLLs with the release
- added ability to also set routes without locking them
- route icons now reflect their state
- added ClickOnce deployment
|
v1.1.22
08/03/07
|
- give more helpful error if speech recognition recording device is not found
- updated toolbar and docking control
|
v1.1.21
07/17/07
|
- added Engine.StartSpeedRamp() and Engine.StopSpeedRamp() methods to CTCService for automating throttle speed ramps
- added "ramp speed" and "hold speed" speech commands to start or interrupt speed ramps
- throttle speeds are now set to 0 when CTC service is stoped (leaving operation mode or closing application)
|
v1.1.20
07/15/07
|
- open throttles now reflects speed changes as they are made through speech control
- some speech grammar changes (check speech grammar help)
- slot status pane can now be opened/closed through speech
- setting an engine under speech control now automaticaly aquires a Loconet slot; before coresponding throttle had to be open
- closing throttle no longer purges the slot; this is because engine could also be controlled by speech in parallel
- fixed error handler catching exceptions thrown by executing CTC commands
- fixed speech grammar builder error occuring when having no objects in these CTC categories: Turnouts, Signals, Routes
|
v1.1.19
07/07/07
|
- added ability to control railroad operations through speech recognition (.NET v3.0 SAPI v5.3 Vista only feature)
- added help for speech recognition grammar outlining understandable phrases
|
v1.1.18
06/16/07
|
- refactored the scripting event system again
- switched to the native MenuStrip and ToolStrip (no longer using SandBar trial for those)
|
v1.1.17
04/16/07
|
- fixed the Vista compatibility issues (menu, toolbar, docking)
|
v1.1.16
04/14/07
|
- updated to a new script editor more compatible with .NET 2.0 and better featured
- restructured the scripting system to be more flexible and easier to use
- trigger scripting is gone and replaced by event binding
- save script without trim; triming now done during compiling
|
v1.1.15
01/24/07
|
- the LocoIO port refresh in the UI, that occurs after port configuration, no longer erases the setup
- PkLocoIO.RefreshPorts() helper method has been removed (this logic moved to the UI side)
- PkLocoIO.Request*() helper methods now support callbacks
- PkLocoIO.Setup class aquired the PortRefresh property again
|
v1.1.14
01/17/07
|
- updated support for second generation LocoIO devices; up to v1.471
- PkLocoIO packets are now emitted natively by the packet receive events; before received PkPeerXfer has to be casted to PkLocoIO
|
v1.1.13
09/22/06
|
- fixed a null color translation error in the GDI+ renderer
- added ability to move signals on the switchboard with mouse drag
- changed the signal selection bounding box in the switchboard
- shrunk the switchboard's page flip invalidation area back to its most optimum
- added ability use external decals for signals
|
v1.1.12
09/05/06
|
- added functional signaling to the switchboard area
- refactored the rendering system in the switchboard for easier layering
- started work on the CTC command sequencing (not working yet)
|
v1.1.11
07/17/06
|
- updated toolbar control
- added .Parent property to most Ctc objects
- changed fonts
- object states now are edited through the object tree view
- added ability to apply custom names to object states
- for better backwards compatibility, deserialization of obsolete classes will no longer throw exceptions
- added accessory objects and ability to control them through user defined states
|
v1.1.10
06/10/06
|
- changed PkLonkAck packet description for OpsRead responses
- chanaged save packets log format to be more readable (one line per packet event)
- fixed "out of sequence" packet responses
- echo packets for non UI syncronized events are now raised on the SerialPort's receive threads rather than a new worker thread
- fixed problem where in some instances response packets where not matched to request packets
|
v1.1.9
05/16/06
|
- updated docking control
- added decoder programming to the UI
|
v1.1.8.1
01/28/06
|
- fixed a significant bug that prevented PkDccProgram and PkComStatOps from encoding correctly
|
v1.1.8
01/24/06
|
- the LoconetService has been altered to support multiple instancing
- fixed script helpers that broke from previous version changes
- changed script errors to also show inner exceptions
|
v1.1.7
01/18/06
|
- throttle speed knob indicators now stay synchronized with speed changes from all sources
- renamed handlers for clarity
- added TimeStamp property to packet classes so Tx/Rx times can be reported more accurately
|
v1.1.6
12/28/05
|
- updated docking control and enabled dock window tabbing
- added delegate callback functionality for requests and responses on all Packet classes
- tag property of the Packet class now gets copied from request packet to response packet
- tag property now gets cloned by Packet.Clone(); also the new Packet.CallBack* members get cloned
- LoconetService events are now raised on worker threads rather than communication threads, when no synchronizing object is provided
- implemented CtcService.ResetStates method
- fixed an incorrect packet type cast for PkRdWrSlotData inheritors in the COM wrapper
- fixed an exception in the property grid that occured when switching modes by shortcut
- fixed a bug in the packet's parity byte calculation that would occur when sending same packet instance twice
|
v1.1.5
12/21/05
|
- updated docking control
- divided the members of PkRdWrSlotData into four new derived classes PkLocoSlot, PkFastClock, PkDccProgram, PkComStatOps
- added ability to program DCC decoders on the track with the new PkDccProgram class
|
v1.1.4
12/07/05
|
- added to the CTC documentation
- renamed some CTC methods for clarity
- the states and script editors are now accessible in the UI from several places for convenience
- throttle progressive interval setting is now saved with the engine object
- replaced the CtcService.TimerPool property with the broader CtcService.SubmitCmd method
- switched internal collections to strong typed generics
- added custom serialization to classes inherited from CtcObjectListBase for better backwards compatibility
|
v1.1.3
11/25/05
|
- updated docking control
- property grid fix for bug introduced by .NET 2.0 conversion
- added support for SE8 and DS64 to the PkMultiSense class
- added API documentation back in
- removed classes not implemented in CCW from type library allowing classes to have the same name in COM/.NET
- update VB6 project example to reflect class naming changes
- added enumeration of COM ports so only valid ones are shown in selection list
|
|
v1.1.2
|
- added COM Callable Wrapper support back in
- added a .bat file with the installer for those who want to register the CCW type library
- several code changes to better use .NET 2.0 changes
|
|
v1.1.1
|
- updated docking control
- fixed serial port timeout exception encountered when no Loconet network is connected
|
|
v1.1
|
- converted application to .NET 2.0
- got rid of most of the interop non-managed calls
- Loconet API now uses an event model rather than polling for serial comunication
- some threading changes (priority, handoffs, etc.)
- added Source column to Loconet Packets Log
- dropped COM Callable Wrapper support (may reinstate it at later time)
- dropped API documentation for this release until nDoc documentor is updated for .NET v2.0
|
v1.0.7
10/01/05
|
- fixed a COM Callable Wrapper interface bug for packet types that set engine functions
|
v1.0.6
08/09/05
|
- updated toolbar and docking controls
- the slot window has been added to the saved docking layout
- added line numbering in "Generated Assembly" code window to match with "Check Script" line messages
- preliminary implementation of "Line" objects
- added THROT_STAT op code but not implemented
|
v1.0.5
06/28/05
|
- updated toolbar control
- fixed scripting panes bug where editing would not be allowed unless first saved
- added slot speed step assignment support through the Engine object
- added length property to routes
|
v1.0.4
05/20/05
|
- updated toolbar and docking controls
- fixed context menu positioning triggered by the keyboard in the objects tree
- added OPC_LOCO_F912 packet support
- added OPC_IMM_PACKET packet support
- better support for custom packet classes in Loconet API
- added (Global Scripts/Custom Packet) template in script helper
- added PkLocoIO packet class as replacement for the old LocoIO class
- fixed Address property for PkSecurityElem; was off by 1
|
v1.0.3
03/02/05
|
- updated toolbar and docking controls
- changed to a new code editor control for the script windows
- updated some portions of the User Guide
- added reserved members to SpeedSteps enumeration (Loconet API)
|
v1.0.2
01/24/05
|
- added ThrottleID decoding/encoding to the PkRdWrSlotData class
- updated toolbar control
- converted all context menus to SandBar and got rid of the old ContextMenu.dll
- slots count is now auto detected by interogating the command station
- added command station OPS decoding/encoding to the PkRdWrSlotData class
|
v1.0.1
11/25/04
|
- added function buttons 5-8 to throttle windows
- updated toolbar and docking controls
- replaced MagicLibExt.dll with a smaller library ContextMenu.dll
- fixed a docking layout culture deserialization bug for foreign users
- fixed some short cut conflicts
- Loconet packet classes are now inheritable
- SLOT_STAT1 packets are now dynamically tracked in the slots viewer
- fixed some inaccuracies with consist and speed step reporting
|
v1.0
08/19/04
|
- added Tag property to CtcService where any serializable object can be placed to be saved with the layout
- docking definitions are now stored with each layout
- docking contents now get rebuit when opening a new layout or existing layout in same session
- added more docking options under the Windows menu group
- adopted SandBar menu and toolbar control
- menu and toolbar can now be docked along all edges
- added menu shortcuts
- consolidated controls for smaller foot-print
|
v0.9.10
08/12/04
|
- fixed some buffer flip errors on the DirectX renderer when messages get displayed on app load
- fixed a property grid error for Engine functions; functions array was not initialized
- reordered the resource loading on app start for better intended results
- throttle window now gets title bar refreshed when Engine name is changed
- fixed Slots docking window not initializing when window was saved in a floating state
|
v0.9.9
08/09/04
|
- added higher number COM port options for USB devices
- moved the throttle control functionality from the UI to the Engine object in the API
- throttle knob is now also synchronized to external speed changed
- for open throttles, slot gets released now when throttle is closed or application closes
- for open throttles, mode changes between Operation/Edit now aquire/release slots respectively
- adopted SandDock docking and document control
- now all docking windows save their layouts between sessions
- other miscelenious docking enhancements and fixes
|
v0.9.8
07/19/04
|
- got rid of SubmitCmd method; no longer needed since new public methods call it on your behalf
- simplified the call to manualy execute trigger scripts and made it thread aware
- clear script trigger instance references when exiting operation mode
- changed the trigger bindings to be performed by the library instead of the auto-generated script
- made references to compiled script trigger instances private
- added a new property to the Scripting shared class to check if script is bound
- made the route locking mechanism more robust
- made the TimerPool thread safe
- added a new exception: CalledOnCtcThreadException
- fixed a clean-up problem when terminating the CTC thread
- reimplemented the query sensors function with switch packets rather then power on packet
- removed the pending and delay stage when switching turnouts/signals that are already in the correct position
- added AquireSlot/ReleaseSlot mothods to the Engine object
- Speed/Functions/Direction now can be read/written through the Engine object
|
v0.9.7
06/27/04
|
- reworked the event bubbling system and thread marchaling through the API layers
- sensors now restore their states between sessions
- disabled "Global Script" editing and "Check Script" menu items in operation mode
- fixed some issues regarding opening a new or existing layout while in operation mode
- added CtcService property to check if CTC is currently running
- changed the default docking possition for the CTC Event window
- added context menu with "Clear" and "Save" options for CTC Event window
- open throttle option now apears only in operation mode
- object names in the property grid are now ReadOnly during operation mode
- added exceptions to prevent object configuration changes while the CTC is running
- added exceptions to prevent state changes while the CTC is stopped
- state changes are now thread aware rather than being resynchronised to the CTC thread every time
- simplified some scripting commands; moved more of the work in the API
- changed all the script template helpers to reflect the script changes
- optimized the trigger mechanism initiating the validation of script triggers
- depricated the SubmitCmd method from Scripting; should only be called internally or through the API
- added range validation on some of the object properties
- fixed a sticky state problem on initial layout load
|
v0.9.6
06/12/04
|
- added global scripting
- fixed exception errors occuring when OPC_THROT_STAT messages are encountered
|
v0.9.5
06/04/04
|
- added key shortcuts to frequently used switchboard context menu items
- added new switchboard track element types (sharp curve and crossing)
- fixed garbage collection problem when deleting tracks or sensors
- suppress State param when reading OPS with PkMultiSense
- refined the PkLongAck reporting for OPS programming
|
v0.9.4
05/26/04
|
- added OPS programming for PM4 and BDL16 through PkMultiSense packet type
- added OPC_SE packet support
- added better reporting for the PkLongAck packet type
|
v0.9.3
05/19/04
|
- added OPC_LINK_SLOTS packet support
- added OPC_UNLINK_SLOTS packet support
- added a new script template for sending Loconet messages
- added more error handling with user script
- all command classes now check for null references and report to the CTC Events window
- fixes some reporting problems with PkMultiSense message
|
v0.9.2
05/10/04
|
- added OPC_FIND packet support
- added the user guide
- added more decoding memebers to OPC_SW_REP packets
|
v0.9.1
04/24/04
|
- fixed several bit shifting problems that were causing incorrect packet decoding
- added the decoding of DS54 address and input pair for OPC_SW_REP packets
|
v0.9.0
04/21/04
|
- fixed bug with script editor text box crashing if deleting the last character
- added runtime scripting error handling which gets reported through the CTC events window
- trigger execute code now can be manually executed from object tree
- revamped the trigger window, added template helpers, and object documentation link
- enhanced scripting capabilities (i.e. recursive calls; passing argumens)
- fixed overflow error that occured in PkMultiSense.PmAddress get property
- added partial support for OPS_SW_REP packet type
- fixed PkMultiSense.TrDevAddress reporting addresses 1 less than actual
- added link to this file from About window
|
v0.8.34
04/12/04
|
- removed Events which have been replaced by Triggers and are now implemented
- added scripting capability (Triggers are supported through scripting)
|
v0.8.33
01/12/04
|
- added DirectX 9.0 acceleration to the switchboard pane
|
v0.8.32
12/08/03
|
- added switch time interval for state objects (ie. turnouts, signals)
- fixed exception error occuring while activating routes that send no packets
- added Locobuffer reporting (version, bad frame counter, collision counter)
- the mode when the app is closed is now saved in settings.xml and restored on next app start
- removed slot 0 from slot status windows since it did not belong in this context
- added functions 5-8 in slot status window
|
v0.8.31
11/15/03
|
- modified the serialization proccess to remove redundant states stored in the definition file
- fixed an exception thrown while opening a throttle, introduced with the last release
- added support for DS54 devices and device independent input addressing
- re-did the LocoIO classes; they were to convoluted before
- fixes problem with OPC_INPUT_REP packets not reporting back to open transactions
|
v0.8.30
11/01/03
|
- added MSDN style documentation for the API
- added support for OPC_LOCO_SND packet type
- states are now syncronized with the physical layout when going into operation mode
- launching associated layout files(.rra) now automaticaly load up when the application starts
- switchboard display can now be scrolled with the Ctrl-LeftClick.
- object definitions and states now saved in separate files; the main definition file(.rra) is saved on user request, while the states file(.rrs) is auto saved on every application close; when opening an ".rra" file the ".rrs" file with the same name is also opened and matched
- fixed a null pointer exception bug caused by an unexpected graphics back surface buffer flip
|
v0.8.29
10/13/03
|
- optimised the CPU efficiency and responsiveness of CTC background thread
- sensors can now be assigned to blocks
- tracks can now also be assigned to blocks through the property grid
- added sorting for blocks and sensors drop-downs
- blocks now show occupancy
- redesigned the hierarchical transactional system
- added Sychronize States options in the Actions menu
- added transponding parameter reporting for OPC_MULTI_SENSE packet type
|
v0.8.28
09/13/03
|
- moved occupancy from track to block
- added customized serialization for better backward compatibility of saved files
- added PM4 parameter reporting for OPC_MULTI_SENSE packet type
- added switchboard object selection context menu in operational mode
- added ability to save Loconet traffic log to file
- OPS_BUSY packets can now be sent by PC to support new version reporting feature of Locobuffer v1.5
- added child group sorting to objects tree view
- switch board pannel is now guaranteed to be innermost
|
v0.8.27.2
09/01/03
|
- fixed drawing glitch with connected block tracks
|
v0.8.27.1
08/30/03
|
- fixed problem with not being able to reference RRAutoLib.dll because it was missing from app dir
- removed install of RRAutoLib.dll to GAC; wasn't needed for CCW after all
- removed strong name from RRAutoLib.dll that was neccesary for GAC
- installer now makes registry entries so RRAutoLib.dll is available in the .NET add reference tab
|
v0.8.27
08/30/03
|
- on install RRAutoLib.dll now gets installed in the GAC
- added CCW (COM Callable Wrapper) around the Loconet API portion of RRAutoLib.dll (i.e for VB6 clients)
- changed connector ends look for tracks in switchboard display
- 'reservations' are now called 'blocks'
- tracks that are part of the same block are now shown as connected
- turnouts now have a color indicator for when they are locked by a route or pending a state change
- added new color configurations in the Settings window
- fixed a problem with "SortPropGridConverter" and added sorting to Settings window
- allow only one instance of the app to be launched
|
v0.8.26
08/12/03
|
- routes are fully functional now
- interlocking of turnouts has been implemented
- pending states changes are now flagged
- all states changes now only occur in operation mode
- changed Save/Load errors to have friendlier messages
|
v0.8.25
08/08/03
|
- state delta now built directly into CTC objects and reported through NotifyObjectChange() event
- added route configuration through the UI
- CTC commands now wait for packet send confirmation before being reported as complete
- changed the baud rate to an enumeration
- fixed some issues with the high resolution timer functions in the Loconet API
|
v0.8.24
07/28/03
|
- added "Requery Sensors" menu item
- fixed exception which occured when INPUT_REP packets did not match any existing sensors
- implemented a packet ID scheme to match sent packets with echoes and responses for better packet flow control
- added packet ID to available fields in packet traffic inspector
- removed unsupported LocoIO configurations
- added visual states in status bar
- moved sensor event handling to the CTC operation mode thread to fix synchronization problem
- the Loconet API can now simultaneously raise evens on its native thread as well as on the ISynchronizeInvoke object
- added ISynchronizeInvoke for events to the CTC dispacher API as well
|
v0.8.23
07/24/03
|
- sensor objects are now implemented and respond to INPUT_REP packets
- API users can now specify an object implementing the ISynchronizeInvoke interface so that the API can raise events on that object's thread
- fixed bug where panes saved in an undocked state, on app exit, caused them to lock up, on next app restart
- fixed an Address packet decoding bug in LocoIO programmer for INPUT_REP generating inputs
- changed incorrect descriptions and superfluous fields in LocoIO programmer for inputs
- operational mode context menu added in layout view for turnouts
- context property objects now only get selected from the tree view in operational mode
- changed operational mode double click state changes in layout view to single click
|
v0.8.22
07/18/03
|
- support for button On/Off states for SW_REQ packets in Loconet API
- SW_REQ packets in UI can now be assigned an On/Off key press state
- LocoIO can now be programmed to respond to SW_REQ packets depending on their On/Off key press state
- On/Off key paramter is now shown in Loconet packet inspector for SW_REQ packets
- changed the Loconet packet inspector to allow customized columns
- moved to new type of context menus with icon representations
|
v0.8.21
07/13/03
|
- moved to VS.NET 2003
- optimised bit wise operations
- added LocoIO programming for all 6 types of input configurations
- added class wrappers for sorting properties of packet types
|
v0.8.20
06/20/03
|
- added reading/writing port states in LocoIO programmer window
- added support for LocoIO setup byte programming
- added LocoIO multi-port OPS_PEER_XFER packet type for controling signals and switches
|
v0.8.19
06/15/03
|
- OPS_MULTI_SENSE packet is now recognized
- added reservation editing
- cleaned up some problems with switchboard's context menu
- cycle track orientation in both directions
|
v0.8.18
05/16/03
|
- consolidated tracks and turnouts into the tracks group
- unified the state class for turnouts and signals
- misc. GUI fixes
|
v0.8.17
04/29/03
|
- added manual control of turnouts
- added reporting of "switch state" Loconet packet type
- made decals an embedded resource
- changed all track decals to smaller square look with 8 rotating possitions
- changed track decals to be dynamicaly created and cached
- added all switchboard colors to settings
- config.xml has been removed and consolidated to settings.xml
- settings.xml is no longer copied by the installer; first run creates it with defaults
|
v0.8.16
04/07/03
|
- Added key shortcuts (Home)/(End) for Forward/Reverse
- Changed LocoIO address range to 81-255
- Added broadcast address feature for LocoIO programmer
|
v0.8.15
03/24/03
|
- removed the obsolete "Sections" object
- updated to a new version of the docking control
- cleaned up release of registered events for closed windows
- added "hide all", "show all" in Windows menu
- removed some variable bloat for all dynamic context menus
- fixed bugs with object browser context menu
- implemented progressive throttle increment
- changed install banner
|
v0.8.14
03/18/03
|
- fixed issues with keyboard shortcuts and multiple throttles
- reversed mouse wheel behavior
- turnout configuration has been added
- added context menu for Loconet packets log
|
v0.8.13
02/25/03
|
- added dynamic attribute binding wrapper for propertygrid classes
- added background dispacher thread
- added dispacher message docking window
- signal state changes now runs on dispacher thread
|
v0.8.12
01/18/03
|
- added ability to configure signals
- added manual control of signals
|
|
v0.8.0 to v0.8.11
|
Prior to this change log.
|