Release 20.2:
 RSearch() function (reverse search()).
 Alert variables available in OnAlert
 IntSum variable in PID loops
 Optimized overall DAQFactory memory use
 Can't click on component that is not visible
 Fixed calendar not closing when click on another calendar
 Fixed properties sub-popups (for example multibrush) appearing in random screen locations, sometimes off screen.
 Fixed left/right click events for Spin Button
Release 20.1:
 No more Express mode.
 Toolbox, onscreen keyboard, notes bar, analysis menu and DAQConnect menu items removed
 Improved component group editing
 Rescaling a group rescales included components
 Many new controls, removal of some old controls
 Component.Invalidate() to force redraw of component
 Code snippets in events in place of Actions
 "Windows" replace page popups
 alarm.DisplayAlarms() function
 Time / Goto removed from script
 Eliminated device commands (will only affect LabJack U12 specialized support)
 Removed MakeNaN() and graph capture
 Error in ? does not cause script to stop
 New command/alert window with levels, ?, ??, ??? and ???? print commands
 System.debugMode along with ASSERT() function
 IsNumber / IsObject / isString / IsKindof functions for variable type determination
 FromJson() with no classname parameter will still create an object of generic type
 new() with no classname creates a generic and empty object
 {} can describe an object directly in script using json
 double clicking on alert items will jump to appropriate script
 wait() now synonomous with delay()
 Sequences and Pages can be grouped in the workspace
 SetupPersist() function allows persist capability in variables
 AssignDoesAddValue() function causes assignment to a variable to act like addValue()
 expVisible / expCanInteract / expParentObject properties of all components
 Established, lastTransmitTime, lastReceiveTime variables of serial / ethernet devices
 Class declarations appear in the Workspace under the Sequence in which they are declared
 Presets for changing colors, brushes and fonts for components
 Doing return(1) from an event will stop event processing to underlying components
 system.AppPath() function
 Updated browser component with latest Chromium
 FormatDateTime() works on arrays
 Speed keys back for pages, but default to none
 Channel.StopAll() will stop all Timings in channels until Restart() or change of channel info
 Time of last mouse move / click available from Window object
 Space across/down works better
 QueryToClassArray() returns an object for each record
 Tree Component adds sorted, individual item colorization and other customizations
 Table component adds the ability to colorize rows based on an expression
 global. will force access to the global namespace (instead of the local object)
 System.GetDAQFactoryVersion() / GetWindowsVersion()
 GraphToPixel() and PixelToGraph() functions of 2d graphs
 External files option for sequences and pages
 System.ShowPaintMouseErrors option
 Subset lookup, i.e. x[{3,5,6}] returns the 4th, 6th and 7th element of x
 ... and much more ...
Release 19.1:
 Modbus Slave events: OnMBSlaveUpdate / OnMBSlaveGetValue
 System.DetailedErrorMessages = 1 gives more detailed error messages from script
 strLastErrorDetail in catch()
 Unflatten() function
 Between() function
 InvertArray() function
 Ability to set TreeList font size
 File.GetFileCreateTime() / GetFileModifiedTIme()
 Fixed issue with 3d graphs
 Removed 2nd instance check notice
 Removed speed keys from pages.
Release 18.1: (SmartScreen may appear during install due to renewal of code signing certificate)
 Lock Mouse Selection of Components
 Page Scaling
 Page.ScreenWidth / ScreenHeight variables
 Page.WaitForClosePopup() to make user popups blocking
 Resize constraints (with shift key)
 ComponentName variable inside components
 PNG/GIF support, LoadImage() function for Symbol Component
 GetPixel() / GetPixels() in Canvas Component
 Graphs init without having to view page
 Plus/Minus key to cycle trace marker is attached to
 Visible parameter for graph traces
 Graph.PauseDataUpdate() for viewing non-realtime data efficiently
 OPC supports writing to read tags
 Variable.AliasFor() function to connect variable to channel
 Variable.MakeNaN() function
 HTTP.Get() with additional headers
 System.SaveWithData() function
Release 17.1:
 Resolved issue addressed in ICSA-17-241-01
 Fixed issue with file path list function
 Fixed other minor issues
Release 16.3:
 Added user application licensing / copy protection feature (see 3.9 in User's Guide)
 Fixed issue registry variables not writing to registry
Release 16.2:
 Added ability to bypass devices that are offline (see 6.13 in User's Guide)
 Fixed issue with pure virtual call error on shutdown in some instances
 Fixed issue with graph refresh rate slow when page refresh rate is fast
 Fixed issue with OEM runtime not displaying proper title
 Embedded chrome browser doesn't initialize unless used
Release 16.1:
 Redo of graphing for better stability.
 system.SetFocus() function.
 Webcam driver
 Image component can handle JPEG's
 Multiple attachments in email
 AddColor/ClearColors() functions for graph traces
 Screen draw time displayed in status bar.
 Changed DDE timeout to 0.5 from 0.1
 DDE supports single channel for both in/out
 Fixed time stamp resolution issue with alarm logging to database
 Fixed issue with right axis naming to 7-12
 Fixed issue with compile leaking memory when a compile error
 Fixed issue with line annotations not disappearing when deleted or out of range
 Fixed issue with refresh rate too fast
 Fixed issue where multicolors would stick when switch to single color
 Fixed issue with derived classes and parent variables
 Fixed issue where transparent backgrounds show white in captured jpegs.
Release 5.91:
 LabJackM (T7) streaming support.
 New Flatten() function for arrays.
 Updated embedded chrome browser
 Added priority to script dump
 Internal performance enhancements
Release 5.90:
Release 5.90.9:
 CEmail email object
 CFTP FTP object
 System.messagePump() function
 Alarms.ListAll() function
 Ability to duplicate alarms
 LeftCol and TopRow variables for Table component
 Log files automatically close (and thus can be opened by another program) when logging is stopped
 Fixed issue compiling classes if not indented
 Fixed issue with GetHistory
 Replaced external socket encryption with internal
 Fixed issue with hidden group's components still processing clicks
 Fixed issue with ReadDelim. Now properly strips enclosing "" and ''
 Fixed issue with Pop3 improperly returning body of email
 Fixed issue with Knob serialization causing .ctl files to appear corrupted
Release 5.90.8:
 SSL Email out
 Renamed LabJackM function calls to LJM_eReadName / LJM_eWriteName
 using("device.labjack") will bring both LabJack UD and M functions into global scope
 Fixed issue with Starter versions limiting to 2 pages
Release 5.90.7:
 Added LabJackM function calls for eReadName / eWriteName
 Added graph functions: saveJPEG, saveToFile, loadFromFile
 Added hexstring functions to To. and From. groups
 OnChange events for input controls
 Custom baud rate
 Script access to alarm priority
 System.FullScreen variable
 Improved DAQConnect access
 Fixed issue with fromJson and arrays of strings
 Allowed readDelim() to process quotes as strings
Release 5.90.6:
 Updated VC redistributables
 Fixed potential issue with current page tracking
 Fixed issue with deleting components when overlaid pages are displayed
Release 5.90.5:
 Fixed issue resource leak with alert icon
Release 5.90.4:
 Fixed issue with rendering that would cause crash
Release 5.90.3:
 Browser components now run as multi-process for better performance and stability
 Additional files for remote browser debugging
Release 5.90.2:
 Fixed issue with floating control bars (from menu)
Release 5.90.1:
 Fixed bug in Ethernet Server when an error occurs trying to create the socket
 Fixed bug when OnCreate script in component tries to access another component
 Fixed bug with Start/EndThread functions
 Fixed issue with installer where old DLL's would not get overwritten
 Fixed issue with cut/copy/paste of components
Release 5.90
 Built under newer compiler
 Embedded Browser component with remote debug option
 Logging/Export set custom time format, and time formatting in log file name
 Toolbox for drag / drop components
 Updated status bar with Edit/Operate mode switch
 Ability to dump all script to a single text file for review outside DAQFactory
 Starts in Edit mode if new doc, Operate if loading doc
 Components on pages appear in Workspace, allowing easy selection,
 Selection of components in a group without ungrouping using Workspace
 Box appears around each selected component making it easier to tell what is actually selected
 LabJack T7 support (preliminary)
 Device number can now be a string (only used by T7 currently)
 No longer switches to Express on expire or if hardware key removed
 Separate shortcut to run in Express mode (-runAsExpress flag)
 New installer
 Fixed bug where doc editing password would clear out if edited doc settings
Release 5.87c: (Dec 8, 2014)
 Fixed issue with printPDF() and character sets to allow for proper display.
 Fixed issue with Starter documents loading as Express.
Release 5.87b: (May 11, 2014)
 Split Express and regular based on startup flag. Regular will actually expire, with express only accessible from its shortcut.
 Fixed issue connecting to DAQConnect initially (selecting data source)
Release 5.87:
 SetFocus/GetFocus functions on components
 Web service call function
 Ability to hide the cursor with system.displayCursor variable
 Department Teaching Site license
 Fixed bug in scroll bar when mouse moves away without releasing mouse button
 Fixed bug in tree list causing it to jump to top and display nothing at random scroll points
Release 5.86:
 When trial expires, it becomes licensed version of Express for free
 Improved DAQConnect connectivity user interface
 Safe mode now restricts access to File., db., extern and shellExecute
 Updated help with new guided tours
 Eliminated built in web server for new apps and corresponding menu
 Fixed bug with exposed 20034 UDP port
Release 5.85:
 Encryption for DAQFactory networking (Standard and higher)
 Networking defaults to disabled in new documents
 New option to disable remote reboot / restart, default is disabled (Standard and higher)
 New JSON support for persisting object structures
 New and channel.readGroup() functions
 New push() / pop() functions for variables
 New system.minimize() / maximize() functions
 New option to disable the 2nd instance check on DAQFactory startup
 Fixed bug in TCP clients when continuously reiniting the port
 Fixed bug in OOP when doing something like: c[0].z(a[1].b[2])
Release 5.84:
 Control capability from DAQConnect (from the web)
 Change in device config for LabJack to remove confusion point
Release 5.83a:
 Minor bug when shutting down and DAQConnect push from 5.83
Release 5.83:
 Updated installer to properly overwrite older files
 Fixed bug in stddev() function
 Fixed minor bug in DAQConnect connection
Release 5.82:
 Support for the LabJack U6
 Fixed minor bug in format() function
Release 5.80:
 Easy real time web access from browser: support for DAQConnect service (
 Set/Clearcommbreak() functions
 Auto-updating Release number of documents (system.appRelease)
Release 5.79:
 5.79a: fixed: not all screen components available from Starter
 New QuickMod Pro
 Added CurrentScaleFrom/To to graph axes variables
 Remote help link in DAQFactory menu
 Added confirmation window for transfer license to hard key
 Added lastupdatetime variable to slave protocols
 Ethernet client doesn't init if port = 0
 modbus drivers display full error messages
 two copies of DF can now run on single PC
 Bug fix: ethernet server reinits better
 Bug fix: actions no longer active when component invisible
 Bug fix: actions of components under some controls fixed
 Bug fix: graph properly scales even when no data available
 Bug fix: compiler generates proper error when (, { or [ not closed properly
 Bug fix: server not resolved error on dev runtimes on non-networked pcs
Release 5.78:
 5.78a: Updated QuickMod to fit in 3 pages for DAQFactory-Starter
 Added System.IsDST() to return daylight savings flag
 Added System.IsRuntime() to return if in runtime mode
 Added strSetToValue for user protocols and devices
 Switch to runtime password entry now hidden
 New DAQFactory-Starter
 Changed default TAPI voice to "Sample TTS" for Vista support
 Made bitwise functions support full 32 bits
 Bug fix: memory problems with OPC client
 Bug fix: using() and subsetting in function calls
 Bug fix: negative exponents
Release 5.77:
 Added rbfloat to To. and From. functions
 Bug fix: TCPslave properly echoes transaction ID
 Bug fix: memory grabsby serial and alert windows
 Bug fix: db.CloseQuery()
Release 5.76:
 Added Abort function to terminate an FTP transfer
 Bug fix: hardware key issue
 Bug fix: user protocol bug when applied to multiple ports
Release 5.75:
 Updated LabJack driver and new Guide
 RemoveAt() now defaults to quantity 1
 Added option to Add Host in OPC browser
 Sockets / serial ports don't init in safe mode
 OnAlert system event
 I = 0 in PID causes I term not to be used
 Copy available from Command/Alert and Comm monitor
 TAPI only inits if used
 Watch window only refreshes if visible
 Bug fix: hardware key issues
 Bug fix: db.close()
 Bug fix: arrow keys move markers in runtime
 Bug fix: acces I/O wizard
 Bug fix: DF1 driver and the value 784
 Bug fix: d in hex values misinterpreted
 Bug fix: deleting of serial ports with capital letters
 Bug fix: history interval with persist
 Bug fix: .Time issue
 Bug fix: tcpslave not always responding correctly
 Bug fix: alarm list sorting
Release 5.74:
 Format() function now accepts arrays
 automatic scroll bars for table component
 if -f command parameter used, full screen only
 Bug fix: remote connections wouldn't establish on first try
 Bug fix: CR in expression wouldn't evaluate
 Bug fix: statics were redefining each time
 Bug fix: remote channels creating local persist files
 Bug fix: menu appears coming out of full screen in runtime
 Bug fix: memory leak in modbus / FX optimization
 Bug fix: memory build up in variable creation
Release 5.73:
 5.73b Release: Installer Bug fix
 5.73a Release: Bug fix: Modbus output fix
 Bug fix: UDP support under all non-Express releases
 Bug fix: Table component displays NULL column blank instead of duplicating previous column
Release 5.72:
 OPC driver supports string outputs
 Support for new hardware key
 Bug fix: global x clears out existing variable fixed
 Bug fix: doubletostr() occasionally getting too much precision
 Bug fix: channel table issue when first select Test device and I/O type selection
 Bug fix: setting IP of ethernet connection to "" will actually close existing connection
Release 5.71:
 New Filter() function
 Parse() with -1 Index returns array with fully parsed string
 Bug fix: Development runtimes coming up in trial
 Bug fix: space between function and ( would cause error
 Bug fix: subsetting immediately following a function would return wrong value
 Bug fix in 5.71a: Sidebar help failing under IE7
Release 5.70:
 New script editor
 New auto-hide docking windows and other general GUI enhancements
 FTP capability
 POP3 capability (SMTP already available)
 Serial monitor docking window
 Grouping of components and creation of user components
 ModbusTCP slave and Ethernet server
 ModbusTCP and RTU now allow single channel for input and output
 Component events and properties, with docking window
 Mean/Sum and other similar functions ignore NaN
 UpdateEdits() for comboboxes and editboxes
 AddValue, Append, InsertAt, RemoveAt() functions for variables
 Setting serial port to 0 disables, same with Ethernet (and address to "")
 global and private variables will now redefine if declaration rerun
 ClearGlobals() function
 True/False define 1/0
 Right click on command/alert window allows clear
 Alerts from channels include timing/offset info
 include() function to pull in constants from .h files
 using() function to put internal functions into the global namespace
 edit mode for those that don't like to hold down the Ctrl key
 Alarm import / export
 Action page of components improved with Expand option
 Component name autoincrement when duplicated
 Programmatic starting of threads (separate to sequences)
 Modbus autoaddressing improvement
 Password edit box
 System.SaveDocument() to programmatically save a document
 LabJack driver improved to make it look very similar to their samples
 Help changed to docking window / Flash driven
 Fullscreen mode is a document setting
 Persist file path is a document setting
 Xon/Xoff option for serial port
 Client UDP support
 LoadJPEG() function allows loading of symbols at runtime
 new types for FFI to align with C
 Mitsubishi Melsec A/Q protocol driver
 Easy multi-language support
 DataForth IsoLynx protocol driver
 StrToTime() function
 Search() function for finding the index of based on a criterea
 iif() function: inline if.
 startup flags to trigger runtime, fullscreen, or for user definable flags
 db.Execute() function for non-SELECT queries
 expression parser updated
 return() works without ()
 NumRows, Cols, Depth() returns 0 if a null value
 x = NULL will actually set x to an empty value
 Added newline option in comm monitor for ASCII streams
 Exportset no longer fails if a column is empty
 Bug fix: = in comment after declaration mistakenly taken as assignment
 Bug fix: in optimization for protocols that optimize
 Bug fix: subsetting by time correctly excludes first point past range
 Bug fix: \ in comment would be interpretted as newline
 Bug fix: // in string were interpretted as comment
Release 5.40:
 removed locale specific settings of 5.38 because of issues introduced for international users because of different format for decimal point ("," vs ".")
Release 5.39:
 new functions for easily reading and writing delimited and binary files
 file.closeall() function
 modbus setdelay() function for slower devices
 System.HideSystemMenu() function to prevent closing of Runtime
 PDF creation directly from Page.PrintPageDirect()
 StrToDouble() returns NaN when invalid string passed
 Checkbox component adds array of checkboxes feature
 fixed bug with reverse slider introduced in 5.38
 fixed bug with alarm log overwriting existing files
 fixed bug with defines used in code compiled before define executed
 fixed bug in modbus protocol for 40,000 style notation
Release 5.38:
 User's locale properly detected for number / date display etc.
 Encryption of sequence text in document
 Ability to set property of multiple components with same name, global or page
 Updated slider control to fix issues
 ODBC read will load NULL's as NaN
 Table component displays NaN's properly
 Fixed bug with %G and %E in format()
 Fixed bug when debugging sequence and a user function is in the watch
 fixed bug when modbus ID is set to 0 leaving port locked
 hardware key detection extended to 5 seconds to remove occasional glitches
 fixed bug with channel.time and made more efficient
Release 5.37:
 Individual component movement lock
 Modbus auto-addressing
 Modbus optimized reads from channels
 Disable alarm logging option
 Knob fixes and improvements: jog function
 Component.x.y will affect all components of same name
 Locals visible globally
 Can delete user comm devices
 Debug-Start / F5 saves, compiles and restarts sequence
 Separate sequence editor windows
 Alert bar no longer flashes from ?
 Fixed max history bug
Release 5.36:
 Small bug fixes
Release 5.35:
 Fixed speed issue starting event code
 Fixed issue with popups with specified locations not painting
 Fixed issue with old serial driver not saving parameters
 Added code to ensure positive delay / wait / waitfor parameters
 Fixed QuickMod output window
Release 5.34:
 New serial / ethernet communications guide
 Added update rate option for sliders and knobs
 Added Modbus ASCII Slave protocol driver
 Added variable sized shading of symbols
 To. functions accept 1D array
 Communication speed improved
Release 5.33:
 Fixed bug in ModbusTCP in writing outputs
 Fixed bug with events and channels (renaming and duplicating channels)
Release 5.32:
 New Mitsubishi FX protocol driver
 Automatic Poll function added to user poll protocol
 strLastError in catch block, throw() rethrows error
 Improved error handling and display in user protocols
 Fixed persist problems with ClearHistory and History Interval
 Fixed comment dialog not accepting CR
 Fixed Close button becoming default in serial monitor
Release 5.31:
 Ability to capture a page to a .jpeg file from script
 New free QuickMod Modbus scanning tool
Release 5.30:
 System events like OnKeyDown, OnMouseMove, OnShutDown, etc.
 Combined runtime into development executable to allow easy switch between two modes
 TAPI support for auto-dialer apps, text to speech and other voice modem features
 Format specifier and serial monitor now accept backslash modifiers for CR, LF and tab (\r,\n,\t)
 Functions that used to have to be called from main thread can now be called from a sequence
 Trigger comm monitor from sequence
 Added To and From.Bit() functions for splitting bytes/words into bits and back
 New ModbusRTU/TCP protocol allows comm on multiple ports
 New AB DF1 SLC5 protocol allows comm on multiple ports, fixes issues with floats and bit settings
 New ModbusRTU slave protocol makes DF into a modbus slave
 Ability to import/export channel list to text file
 Duplicate channel will increment a channel name that ends in a number, as well as a Specifier
 Ability to control when alarms are checked (for apps with large # of alarms)
 String declaration (eliminated "str" prefix requirement)
 Functions can be declared to define parameter names, + argc option
 Concat takes a variable number of args
 Component position functions for easy component movement
 Eliminated component paste offset except for duplicate
 Channel persistance allows seamless access to archived data
 New command line interface added to alert window
 ? command in sequences and flag to turn all ?'s off (debugging tool)
 Ability to read data from an ODBC database
 New execute() statement for running scripts stored in strings. Evaluate fixed to work with privates
 Dynamic creation, deletion of channels, ability to list channels into string array
 Script access to channel properties
 Popup + popupmodeless allow location and keep user from closing with X
 Define function to create defined constants for compiler
 To and From functions to convert byte arrays to real values and back
 Improved PID with integral limit, new algorithm option and detailed display
 Regular expressions search in strings and ReadUntil serial comm
 ErrorMessage() function
 Easier selection of overlapped screen components
 New serial and Ethernet communications with new monitor,
 User definable protocols using scripting and more
 New canvas component for scripted drawing to the screen
 Ability to load and call most any external DLL from within DAQFactory without any wrapping.
 New device support can be created by the user using DAQFactory scripting
 Declaration of variables instead of using Var. and Private. notation
 Watch now displays private variables during debugging
 New ShellExecute() function allows starting other apps from within DAQFactory
 New Xor operator (#)
 Format function now supports non-floating types and multiple arguments
 StrToDouble accepts hex and binary notated strings
 New Find / Replace on components makes it easy to change the properties of components
 Channel table remembers column widths
 Sequence functions are now properly reentrant
 PrintPageDirect() function for printing without prompting the user
 Tool tips with function prototypes on all functions
 Printing pages now works on all printers
 Charset set correctly for displaying non-english character sets
 Fixed bug with graphs in popups
 Fixed PID dropout issue when viewing PID graph
 Fixed problem with watch when a watch returns an error
 Fixed Channels as second parameter to sequence function bug
 Fixed issue with AddValue and multiple rows being flipped
 Fixed doubling of displayed component variables when the component is duplicated
 ...and many other improvements and bug fixes.
Release 5.15:
 Added Modbus TCP driver
 Added LabJack UE9 driver
 Removed trial Release allows selection of Release to try
 Replaced Robohelp with HTML help because of XP-SP2
 Fixed date/time component bug when only time displayed
 Fixed combobox programmatic adding of choices
 added 3D graph component
 added tree list component
 added TimeOffset variable for logging to workaround a bug in MS-SQL
 added SQL string variables to allow adjusting SQL commands
 negative align threshold now ignores alignment by time
 fixed issue with Private. used as subsetting on the left side of an assignment
 fixed/improved a variety of user interface issues, especially with the sequence editor
Release 5.12:
 Trial Release allows selection of Release to try
 Removed Online Help
Release 5.11:
 Fixed logging issue
Release 5.10:
 DAQFactory Developer
 DAQFactory Express
 Online Help
 Fixed speed key issue
Release 5.05:
 Mouse down event for "jog" style controls
 Logging restart on error option
 .MarkerX variable returns in DF time
 ClearTime() channel function
 Fixed some component refreshes in popups
 Fixed marx key refresh
 Enhanced modbus driver optimizes reads/writes on contiguous blocks
Release 5.04:
 Sequence loop check disabled in runtime
 DF no longer case sensitive
 Block indenting, find/replace added to sequence editor
 Sequences: block comment, backslash for line continuation
 Max page refresh up to 30/sec
Release 5.03:
 Table component
 "ignore" sequence command
 B+W images
 Flash window / alert box in preferences
 Limited continuous alert generation
 Initial page property
 Autonaming in logging sets can use date. Postfix put before the file extension.
 Component variables
Release 5.02:
 Fixed sequence issue: "readone()" getting interpretted as "read()"
Release 5.01:
 Fixed problem unlocking Lite Release
Release 5.0:
 A major new release with too many features to list here. Download it now and give it a try!
Release 4.11:
 OPC servers now available bundled with DAQFactory
 Transfer license to expired trial
Release 4.10:
 Full text string support as data type and in function parser
 Addition of Edit Box component
 Device wizards for LabJack, OPC, and Serial
 New advanced serial driver with live monitor
 Database logging in Local Conditional Logging
 New bitwise functions: TestBit, ClearBit, SetBit
 New thermocouple conRelease functions
 Comments in sequences
 Driver Releaseing
Release 4.00:
 Changed name to DAQFactory
 DAQFactory X - DAQFactory in an ActiveX control
 DDE client and server capability
 ODBC database logging
 New web based installer
 Simplified LabJack stream mode
Release 3.55:
 Added multiple actions for when clicking a Component
 Persistance (save with data and autosave), keeps graph data between restarts
 Multiple local conditional logging sets
Release 3.53:
 Eliminated network requirement for 98/Me
Release 3.52:
 Enabled Images and Advanced Graphing features in Lite and OEM Releases
Release 3.51:
 Added ability to send comments in trial mode
Release 3.5:
 Now works with 98/Me
 Combined Acquire and Control into single program with option of running as two programs
 Added Concat function and SortTime
 Changed image rendering routine for 98 support
 New help system
 New unlock mechanism - single program download
 Many minor changes
Release 3.11:
 Added Control Local Logging
Release 3.10:
 Sequence table columns change with Command to refect their meaning
 Added quick note / special to channel table and froze 1st column (name)
 Timing of 0 no longer executes once at startup
 Added sequence ordering
 Stream data mode + channel commands
 Extended demo to 25 days
 800 more images
 Tutorial + start-up dialog
Release 3.09:
 Automated (and much easier manual) unlocking
Release 3.05:
 Sorted drop downs in sequence grid
Release 3.03:
 Removed .dds requirement. Device info downloaded from Acquire
 Fixed Quick Add Channel and Add Sequence
 Added image rotation and flipping
 Sequences not stopped on Save, must stop and restart to accept changes
 Control does not automatically open maximized, instead it restores to the last state
Release 3.0: (Dec 15, 2001)
 First public release.