Wasp 3 Version Information ========================== 2019-06-04 Version 03.00.0012 // # Correction to TBit2D::TextToScanDirection - was returning out-of-range values. 2019-05-21 Version 03.00.0011 // # Current Working Directory saved and restored for Load/Save Interrupted State (France) (File dialog changes CWD) 2019-05-08 Version 03.00.0010 // + Improved Channel Usage, showing Z/V arm and SolutionName; sortable Alias List. 2019-04-24 Version 03.00.0009 // + Improved error reporting for StringArray - names the element at fault. 2019-03-29 Version 03.00.0008 // + WindowFunctions::EditFile now launches one of two possible editors, depending on Alt key state. 2019-03-28 Version 03.00.0007 // # WaspEngineFuncs::WellAddress corrected to add array start offset to array position in returning WellLegend 2018-08-10 Version 03.00.0006 // + Allows multiple instances in Checking mode 2018-08-06 Version 03.00.0005 // + /-prompts to allow unattended checking. 2018-07-10 Version 03.00.0004 // # Fixed Stefan's bug: WEMoves.TransferMultipleDrops and MM.GetSourceChannelBits corrections for volume tracking. 2018-06-11 Version 03.00.0003 // # WaspArray.VolumesChanged WaspArrayVOLUME_CLEAR (special bit 31) was being treated as solution index. 2018-04-24 Version 03.00.0002 // ~ GitHub Wasp3/IncDec brought up to date. Recompiled as check. No functional changes. 2018-04-07 Version 03.00.0001 // # TransferDrops volume tracking fixed. +MachineManager::GetSourceChannelBits. +TWaspArray::AddVolumes(). 2018-03-09 Version 03.00.0000 // ~ Moved to GitHub. 2018-01-29 Version 02.11.0013 // ~ Default DipCount changed from 1 to 0 for Additive experiment, where dipping is done in bottle. 2017-08-01 Version 02.11.0012 // ~ Set CAPTION to , accepts long string, using '|' separator for anotating different wells. 2017-07-26 Version 02.11.0011 // + Function MoveNumber(). # Corrected TVariable::Clear for record arrays. 2017-03-14 Version 02.11.0010 // + RaiseFromLastWell, which uses last set VslowUp and Zslow 2017-01-19 Version 02.11.0009 // + floor(), ceil(), nint() 2016-12-20 Version 02.11.0008 // ~ Mechanism to display location of a trapped error. 2016-12-14 Version 02.11.0007 // + DragAndDrop for files# OnError event handling fixed 2016-12-12 Version 02.10.0007 // # OnError event handling fixed 2016-12-02 Version 02.10.0006 // + Break Points Enabled menu item (default=true) to disable breakpoints without removing them. 2016-11-23 Version 02.10.0005 // + /vs switch to show source on opening. 2016-11-23 Version 02.10.0004 // # ElementCount() had no break in case statement. 2016-07-27 Version 02.10.0003 // + LOADING ul/s parameter added to Set Transfer Source statement. 2016-06-10 Version 02.10.0002 // + ChannelProperty(ChannelName, "SyringeType") in addition to (ChannelName,"Syringe") for consistency. 2016-04-22 Version 02.10.0001 // = First fully working version. 2016-02-24 Version 02.10.0000 // + Language extensions : Set Volume[i] to, Set Transfer Source to , Transfer 2016-02-24 ================================== Multidrop Dispensing ========================= 2015-03-25 Version 02.09.0013 // + Set ResumeResponse statement to supply pseudo responses for different flow paths. 2014-11-11 Version 02.09.0012 // + WASPError statement to raise Wasp errors - particularly Cancel, allowing return to WaspRun 2014-11-05 Version 02.09.0011 // ~ InputString and InputNumeric modified to use FP on execution (Command counting and result history) 2014-10-27 Version 02.09.0010 // # SyrPos logic corrected when UseSolutionTextSyntax=true. 2014-10-08 Version 02.09.0009 // + UseSolutionTextSyntax for detection of new syntax, to suppress original behaviour of 'name' attribute. 2014-09-25 Version 02.09.0008 // + Channel Name=Value -> independent properties Alias and Solution. Original Channel Name functionality retained. 2014-09-23 Version 02.09.0007 // ~ InputBox calls ForceForegroundWindow() 2014-09-19 Version 02.09.0006 // ~ TChannel.InstallSyringe() now uses registry value of dV, if available. 2014-08-26 Version 02.09.0005 // + Modulo operator (%) fixed. 2014-08-03 Version 02.09.0004 // + PlateProperties.ReservoirCount 2014-07-30 Version 02.09.0003 // # New error trapped ERR_NO_VALUE declaring variable without initialization. 2014-07-22 Version 02.09.0002 // + ChannelProperties("Name"/"ChannelName") 2014-06-30 Version 02.09.0001 // + InputNumeric() now accepts general numeric expression for Default value. 2014-06-24 Version 02.09.0000 // + InputNumeric(), InputString() 2014-06-24 ================================== WASP for Version 25 - LCP Dispensing ========================= 2014-06-23 Version 02.08.0028 // # TPlateList.LoadFromFile no longer faults if Plates(User).dat 'Included' but not present. 2014-05-30 Version 02.08.0027 // + Transfer now reads (and issues to FP) a pause time. 2014-05-29 Version 02.08.0026 // # Fix to TPlateList to replace overridden plates in linked list. 2014-03-07 Version 02.08.0025 // + Address() function for testing variable validity. 2014-03-05 Version 02.08.0024 // + SET LOWERING ENABLED TO {TRUE | FALSE} 2014-02-10 Version 02.08.0023 // ~ More rigorous checking of function call syntax/identifiers 2014-01-30 Version 02.08.0022 // ~ LASTCOM.POS writing sequence. 2014-01-24 Version 02.08.0021 // + /PENDING switch for SetChannelAttribute command to FP, based on RepositionFlag. changed to int[]. 2014-01-17 Version 02.08.0020 // # LastStateRestore calls Commands.Reset when user chooses to restart so that Commands.Active is true at beginning of experiment. 2014-01-07 Version 02.08.0019 // ~ Built WITHOUT runtime stlp*.dll dependency. 2013-12-13 Version 02.08.0018 // + FORTH statement, for Forth/ForthMove v. FrontPanel/FrontPanelMove congruence. (MCCForth retained for compatibility) 2013-12-12 Version 02.08.0017 // + com_Channel() now sends NAME attribute through to FP (for RAB LCP script - previously not necessary) 2013-12-09 Version 02.08.0016 // # Prompt/Pause allow comments at end of line containing string expression. 2013-11-25 Version 02.08.0015 // + MessageBox(Prompt, Title, Buttons, Image) function and user response history in LASTCOM.POS 2013-11-07 Version 02.08.0014 // # Corrected multiple well rinsing parsing. 2013-11-05 Version 02.08.0013 // # Negative rinse corrected, and volume tracking restores syringe to original (last) air position. 2013-10-25 Version 02.08.0012 // + Plates.dat can use INCLUDE statement to use multiple plate definitions. 2013-10-18 Version 02.08.0011 // + Scheme to allow different Versions to run in numbered subfolders, without changing parent folder in registry. 2013-10-15 Version 02.08.0010 // + Function Reference allows reassignment of different functions to same function name. 2013-10-15 Version 02.08.0009 // + OnCancel, OnStop, OnBreak, OnError, OnExit event handlers. 2013-09-11 Version 02.08.0008 // ~ String functions taking no arguments now require () when calling 2013-09-03 Version 02.08.0007 // # Fault trapping for nested function calls restructured. 2013-07-30 Version 02.08.0006 // ~ Codeguard turned off, stack and heap size doubled. 2013-06-03 Version 02.08.0005 // + LeftStr(), MidStr() and RightStr() string functions to avoid reserved word conflicts. 2013-05-03 Version 02.08.0004 // + Left() and Right() string functions. 2013-02-27 Version 02.08.0003 // + Transfer 2013-02-26 Version 02.08.0002 // + SET array-name {VOLUME[Channel-name] TO v ul | VOLUMES TO v ul} + TWaspArray.Volume[8] 2013-02-26 Version 02.08.0001 // + More generalized transfer specification : Set Transfer {Source|Target|Reference} to 2013-02-26 Version 02.08.0000 // ~ Multidrop, multicomponent transfers 2013-01-17 Version 02.07.0062 // ~ QuantizeVolumes not called in TrackVolumes (volumes already rounded) 2013-01-17 Version 02.07.0061 // ~ double FPVolumeLoaded(CNo) now returns internal value if not checking (connected to Front Panel). 2013-01-09 Version 02.07.0060 // # Variable declaration isolated correctly in nested function calls. + Variable List by Function 2012-09-10 Version 02.07.0059 // + Len(string) function. 2012-09-05 Version 02.07.0058 // # COMPILER FAULT : TVariableList::Term case 10(fnptrOfString) and 20(fnptrOf2Strings) must NOT use intermediate function pointers. 2012-08-16 Version 02.07.0057 // + FrontPanelCommand etc handles escape sequences. 2012-07-27 Version 02.07.0056 // # TDoubleStore::Release() inhibited for this<0. 2012-06-28 Version 02.07.0055 // + Type implemented for handling arbitrary types. 2012-06-11 Version 02.07.0054 // + LoadOil, more flexible Deliver call to Wasp 2012-06-07 Version 02.07.0053 // + ElementCount(VariableName) returns number of array elements in VariableName or 0 if not an array. 2012-04-03 Version 02.07.0052 // # Fix to TVariableList::Assign returns ERR_BAD_EXPRESSION to trigger interpretation of string as command. (eg RAB's AirCommand) 2012-03-14 Version 02.07.0051 // + WaspEngineMoves::GetVolumeArray accepts string variables as parameters. Better highlighting, WaspVal(). + Ctrl-G. 2012-03-02 Version 02.07.0050 // + WaspEngineMoves::ReadDeliveryData now uses +striphrase() - new case-insensitive function in support.c 2012-03-02 Version 02.07.0050 // # ReadDeliveryData now uses +striphrase() - new case-insensitive function in support.c 2012-01-13 Version 02.07.0049 // # frmASP.CurrentFile updated by user click on TTabbedEditor tab (allows correct file to be externally edited) 2011-12-22 Version 02.07.0048 // # Flow rates now applied for the Dispense command. 2011-12-21 Version 02.07.0047 // ~ 'C' escape sequences (\t, \n, \r) in Prompt strings translated into ASCII for Front Panel display. CodeGuard turned off. 2011-12-21 Version 02.07.0046 // ~ Improvements to Set Clearance command parameter interpretation - ambiguities removed, efficiency improved. 2011-12-13 Version 02.07.0045 // ~ Change of Include folder search order. For Wasp dir(Global) first use ; for .xpt dir(Local) use "FileName". 2011-11-03 Version 02.07.0044 // # Correction to Record template copying on instantiation. 2011-11-01 Version 02.07.0043 // + Record template reporting in Variable list. 2011-10-31 Version 02.07.0042 // # Temporary fix to instantiation of records containing arrays. 2011-08-25 Version 02.07.0041 // ~ Correction to '&&' and '||' operators. + Power(^) and XOR(!) operators. 2011-08-24 Version 02.07.0040 // ~ Running on \\Saturn under CB6 (Build 10.165) (\\Peter2 has same compiler) 2011-05-23 Version 02.07.0039 // ~ Logical operators now return -1 instead of 1. 2011-01-12 Version 02.07.0038 // ~ Error handling on STOP from FP Pause dialog - WASP/source made visible. 2010-11-02 Version 02.07.0037 // + ArrayProperties() can now return START.X, START.Y, SIZE.X, SIZE.Y 2010-11-02 Version 02.07.0036 // # Error 251 cleared on start of Evaluate(); exception handling simplified in Interpreter.cpp 2010-09-07 Version 02.07.0035 // # Highlighting corrected (EditWindow->WordWrap = false). 2010-08-16 Version 02.07.0034 // + Vastly improved source file display, and highlighting. 2010-08-08 Version 02.07.0033 // + Record aggregate assignment with { named item list } 2010-08-06 Version 02.07.0032 // + Timing (cf ping) test in Machine Manager - allowed reduction in Channel latency from 100ms to 50ms 2010-07-30 Version 02.07.0031 // + Improved and more efficient Variable display. Improved screen updating and reduced delay before FP starts. 2010-07-15 Version 02.07.0030 // + String and Numeric array aggregate assignment. Declaration : ArrayName[] = {...}; Assignment : ArrayName = {...} 2010-07-14 Version 02.07.0029 // + Record arrays; Records and record arrays within records. Record array element passing and assignment. 2010-07-06 Version 02.07.0028 // + Records and record member access. +Mask for Variable view. 2010-06-29 Version 02.07.0027 // # TVariableList : hash table update error. Fixed variable assignment invoking function call. (Numeric x = fn()) 2010-06-25 Version 02.07.0026 // ~ Improved error reporting on bad indexing of variables, eg trapping () vs. [] and illegally indexed simple variables. 2010-06-21 Version 02.07.0025 // + STOP statement for prematurely ending script. 2010-06-10 Version 02.07.0024 // + Channel properties available with function ChannelProperty(ChannelName, Property) 2010-05-17 Version 02.07.0023 // ~ ScriptName and Version NOT sent to FP if Version statement not present in script 2010-05-12 Version 02.07.0022 // + External editing using DDE to TextPad etc (Command = "\"C:\\Program Files\\TextPad 5\\SYSTEM\\DDEOPN32.EXE\" TextPad.dde") 2010-02-11 Version 02.07.0021 // ~ Volume tracking improved vastly to handle reloading situations, particularly oil reloading. 2010-01-31 Version 02.07.0020 // + VolumeLoaded function to query Front Panel available volumes. 2010-01-28 Version 02.07.0019 // + Version statement; Wasp sends script filename and Version to FP. 2010-01-25 Version 02.07.0018 // + ArrayProperty functions, SubWellName function, ShelfHeight/Depth properties for oil dropping calcs. 2010-01-15 Version 02.07.0017 // - All use of PLATE_DATA removed. Replaced by TPlateData/TPlateLocationList. -UseCompoundWells. 2010-01-15 Version 02.07.0016 // + Functions allowed in INCLUDE files, allowing library files. Single pass file structure scanning and display. 2009-12-08 Version 02.07.0015 // + Addition of \t and \n interpretation in Format strings. 2009-06-26 Version 02.07.0014 // + Function calls with arguments, to reduce script complexity. Only String and Numeric types allowed. 2009-03-22 Version 02.07.0013 // # Bug fix to nested IF..ELSEIF..ELSE..ENDIF depth tracking. Flow structure viewable in Report window. 2009-03-01 Version 02.07.0012 // ~ Modernization of MCCForth syntax to use Format() etc. 2009-02-27 Version 02.07.0011 // + Set FILLING ORDER, for correct loading of Protein, Seed (Protein first), fixes to error returning in Report function. 2009-02-19 Version 02.07.0010 // ~ Improved reporting and automatic report file name generation. 2009-02-18 Version 02.07.0009 // ~ Generalization of XML report writing to include ALL variables, not just those starting "xmlr" 2009-02-17 Version 02.07.0008 // + ReportAppend 2009-02-13 Version 02.07.0007 // # Faulty indexing of string and numeric arrays trapped. 2008-06-16 Version 02.07.0006 // # FrontPanelMove command counting (Ncoms++) fixed. 2008-06-14 Version 02.07.0005 // # TWaspArray.PropertiesChanged set when modifiying StirNum and StirDistance 2008-02-19 Version 02.07.0004 // + Trapping of "Cancelled" in FP call to ClearPlates. 2008-02-07 Version 02.07.0003 // # Structure scanning and execution jumps corrected for ElseIf/Else/Endif 2008-02-07 Version 02.07.0002 // + ImageList moved to ImageListHolder, and Windows Version tested for XP, before loading form/associating images. 2008-02-04 Version 02.07.0001 // #### Special Release - Win2K compatible, no ImageLists. 2008-01-10 Version 02.06.0025 // # Current Directory prevented from changing when using Load/Save file dialog. 2008-01-10 Version 02.06.0024 // ~ User is now NOT asked for report folder, if previous report file not found in registry. Default=Crystallization Experiments\Reports. 2008-01-02 Version 02.06.0023 // + Expression evaluator now raises an error if a string variable is referenced in a numeric expression. 2008-01-02 Version 02.06.0022 // + SET CLEARANCE now accepts an array name, as well as plate and absolute specification. 2007-12-31 Version 02.06.0021 // + Variable allowed as in ARRAY statement and STIR statement. 2007-10-29 Version 02.06.0020 // # Correction Set when string variable used for array name. 2007-09-11 Version 02.06.0019 // # Correction RINSE waste discharge height. Ncoms++ when (ASPError==ERR_BREAK_AFTER). 2007-08-24 Version 02.06.0018 // + Trapping of special errors 9-12 showing user interrupt of MCC movement, now cause quiet EndExperiment. 2007-08-15 Version 02.06.0017 // + "Execution resumed here .......... inserted into reports at point where experiment is continued. 2007-08-06 Version 02.06.0016 // ~ Air command used for reloading air at end of rinse, so FP tracks solution volume correctly. 2007-07-17 Version 02.06.0015 // ~ Reporting/screen updating changed for greater efficiency. Auto numbering report files. Report output NOT appended to Pause text. 2007-07-11 Version 02.06.0014 // + Better single stepping control, and also BREAK function by inserting '>' in col 1 of statement 2007-07-11 Version 02.06.0013 // # ToolTip for Wasp icon in SysTray fixed. Non-existent channel error reporting. 2007-07-10 Version 02.06.0012 // # Writing of XML output fixed. Autonumbering of report filenames, to ensure uniqueness. 2007-07-06 Version 02.06.0011 // # WaspEnginMoves::Array INHERITS calls SetFrontPanelArray. 2007-06-28 Version 02.06.0010 // # MachineManager::Connect now has Sleep() inserted into FP FindWindow polling loop. 2007-06-28 Version 02.06.0009 // # Fix to processing of line continuation character '\' with trailing comment. 2007-06-27 Version 02.06.0008 // + Channel Properties Clear, NeedsRinsing, NeedsFlushing and VolumesValid for forcing FP to invalidate solutions etc. 2007-06-25 Version 02.06.0007 // + TransferDrop calculations also transferred to Front Panel, for more efficient comms between apps. 2007-06-22 Version 02.06.0006 // + Dispense calculations now transferred to Front Panel, for more efficient comms between apps. 2007-06-21 Version 02.06.0005 // + TransferDrop now uses SetTransferArrayDetails to allow FP to transfer between different plates. 2007-06-18 Version 02.06.0004 // + Introduction of TipToWell and UpdateFrontPanelArrayProperties, to transfer calculations to FP. 2007-05-30 Version 02.06.0003 // + ARRAY INHERITS , SET SUBWELL TO 2007-05-28 Version 02.06.0002 // + Comment/EndComment, // line comment and max(), min() functions. 2007-05-25 Version 02.06.0001 // + New single threaded interpreter. New script flow control (while/endwhile and elseif) and error reporting. 2007-05-25 Version 02.06.0000 // + TWaspArray, TWaspArrayList with all direction scanning and bitmap selection. 2007-01-23 Version 02.05.0027 // ~ Use Shield traps [Cancel] from FP and treats as user break. 2007-01-22 Version 02.05.0026 // + /parent= switch to return focus to parent process on Close(). 2007-01-22 Version 02.05.0025 // + ForceForegroundWindow for error situations. 2007-01-18 Version 02.05.0024 // ~ Wasp window restored on any failure to connect to FP, to make it easier to see/find on taskbar. 2007-01-17 Version 02.05.0023 // # Fixed thread synchronization on message dialogs when failing to connect to FP. 2007-01-17 Version 02.05.0022 // # VariableList increased to 512 elements. Hashing algorithm improved. DoubleArray ItemCount corrected. 2007-01-16 Version 02.05.0021 // ~ Variables/Includes forms improved. 2007-01-16 Version 02.05.0020 // + "OPTIONS:" syntax in PLATE statement, to allow "AT x, y, z /REQUEST..." 2006-12-20 Version 02.05.0019 // + /autostart and /autoclose switches. 2006-11-29 Version 02.05.0018 // + Forced disconnection from FP on error, regardless of checking mode. 2006-11-29 Version 02.05.0017 // # SetClearance command inhibited in checking mode. 2006-05-10 Version 02.05.0016 // + Better reporting/reaction to FP connection problems, with [Retry] MessageBox 2006-04-20 Version 02.05.0015 // + Withdraw/Dispense/Rinse functions can use string variables for array names. 2006-04-12 Version 02.05.0014 // ~ CurrentWorkingDir set to same as path of current file. 2006-04-12 Version 02.05.0013 // + "ClearPlates /CLEAN" issued if experiment restarted. 2006-04-10 Version 02.05.0012 // # LastStateRestore accepts CellGroup in LASTCOM.POS for correct Shield repositioning. 2006-04-03 Version 02.05.0011 // + Array captions for FP (Set CAPTION TO ), case insensitive look_up. 2006-03-30 Version 02.05.0010 // + Array definitions fed through to WASP. 2006-02-27 Version 02.05.0009 // + Format, FrontPanel, FrontPanelMove, ReadRegistryString, WellLegend, MidString functions now return error codes correctly. 2006-01-18 Version 02.05.0008 // + Prevented from running twice. (Original code lost with new compiler) 2006-01-16 Version 02.05.0007 // - CodeGuard switched off. 2006-01-16 Version 02.05.0006 // ~ Overrun error fixed for long file paths passed on command line. 2006-01-12 Version 02.05.0005 // + TMCC::Terminate() allows Wasp kick out of waiting for FP. 2006-01-09 Version 02.05.0004 // ~ Eliminated memory leak due to repeated calls to ReadChannelData(). 2005-12-29 Version 02.05.0003 // ~ Overrun error fixed in TfrmASP::ErrorReport (formatting with %.1900s) 2005-12-29 Version 02.05.0002 // ~ Memory leak eliminated due to getpgmdir(). 2005-12-19 Version 02.05.0001 // ~ Recompiled with CB6 - many memory leaks eliminated. 2005-12-19 Version 02.04.0016 // ~ TSyringeForm::AddSyringe - bool Match initialized - could be cause of error in .0015 2005-12-14 Version 02.04.0015 // + Access violation errors showing up on HP notebook - debugging code inserted in com_Channel 2005-12-05 Version 02.04.0014 // ~ NAN detection corrected, so no hiccoughs on array values == 0 2005-12-05 Version 02.04.0013 // + ReadRegistry(Root, Key, Value):string - Include file Registry.xph 2005-12-05 Version 02.04.0012 // + Improved ability to quit if FP freezes. 2005-12-01 Version 02.04.0011 // + Improved checking of Front Panel busy status, corrections to Wasp.err. 2005-10-20 Version 02.04.0010 // + Front Panel SetClearance used to push Clearance height through to Front Panel. 2005-10-17 Version 02.04.0009 // + "Cancelled" trapped on return from Reposition call to Front Panel. 2005-10-06 Version 02.04.0008 // + Plate statement also checks for "Cancelled" response from Front Panel. 2005-10-06 Version 02.04.0007 // + FrontPanel "Cancelled" response trapped and reported as ERR_CANCELLED(12) 2005-10-05 Version 02.04.0006 // ~ Plate file names limited to Plates(Oryx).dat or Plates(IMPAX).dat for all system names. 2005-09-29 Version 02.04.0005 // ~ MachineManager::TransferDrop modified to use channels, not syringe numbers. 2005-09-01 Version 02.04.0005 // ~ VolumeCheck() improved and moved to WaspEngineMain.cpp 2005-09-01 Version 02.04.0004 // ~ Syringes form improved - renamed to "Channel Details" : shows channels/names 2005-09-01 Version 02.04.0003 // + TMachineManager::TrackVolume. All Sno references changed to Cno/Chan. 2005-09-01 Version 02.04.0002 // + TLiquidChannel::UpdatePosition, TLiquidChannel::SyringeRound(). 2005-09-01 Version 02.04.0001 // ~ Volume tracking arrays and airvol array moved to TLiquidChannel. 2005-08-31 Version 02.03.0250 // ~ Most Sno references converted to Channel references. Now channel orientated except for volume tracking. 2005-08-30 Version 02.03.0249 // + Channel statement, to replace Syringe statement. 2005-08-30 Version 02.03.0248 // ~ TLiquidChannel separated from MachineManager // + reading from registry. 2005-08-30 Version 02.03.0247 // ~ TMotor separated from MachineManager, reading from registry enhanced. 2005-08-27 Version 02.03.0246 // + TLookup class -> ChannelMap. 2005-08-22 Version 02.03.0245 // + Plate .... /REQUEST {NONE | THIS | ALL} to control FP requesting of plates. 2005-08-08 Version 02.03.0244 // ~ VolumeArray[6]->[8] for 8 channel compatibility 2005-07-12 Version 02.03.0243 // ~ Number of statements allowed in sequence loop increased from 256 to 512 2005-07-12 Version 02.03.0242 // ~ Extended to maximum of 8 syringes. Reads SyringeCount (actual number) from registry. 2005-07-11 Version 02.03.0241 // + SubWell reported for Withdraw, Dispense, Rinse and Transfer 2005-05-06 Version 02.03.0240 // ~ Shield information for LASTCOM.POS now obtained completely from Front Panel 2005-05-05 Version 02.03.0239 // ~ Use new Version of GetMotorPositions call to FP to write shield data to LASTCOM.POS 2005-04-26 Version 02.03.0238 // ~ Recompile to synchronize Version numbers/dates 2005-04-22 Version 02.03.0238 // + Automated Versioning using ResMod.exe 2005-04-14 Version 02.03.0237 // + Reporting of Front Panel errors to Output. 2005-04-13 Version 02.03.0236 // + [Continue Experiment] positions shield. Abort stores shield details in LASTCOM.POS 2005-04-09 Version 02.03.0235 // + Use Evaporation Shield 2005-04-05 Version 02.03.0234 // ~ Volume tracking and channel position recording adjusted to accomodate new TransferDrop. 2005-03-31 Version 02.03.0233 // + FrontPanelMove entry added to command table (code was there, but entry absent). 2005-03-31 Version 02.03.0232 // ~ TransferDrop() suppresses dispense, if no "MIXING WITH" clause. 2005-03-31 Version 02.03.0231 // ~ main::Output() memReport->Lines line cutting corrected. 2005-01-24 Version 02.03.0230 // ~ Correction to parse_Air() to update air_vol[]/position etc. during Resume expt. 2005-01-18 Version 02.03.0229 // ~ TMachineManager::SendCom() altered to avoid thread synchronization problem observed when returning dialog values. 2004-12-08 Version 02.03.0228 // + TMachineManager::MCCRxError() altered to release thread - report error to output, no "Unknown error: " dialog. 2004-11-08 Version 02.03.0227 // + TMachineManager::UpdateFlowRates(), called before all syringe move functions 2004-11-08 Version 02.03.0226 // + TLiquidChannel::SetFlow(), TMotorData::SetSpeed(), bool TMotorData::SpeedSent 2004-11-08 Version 02.03.0225 // ~ CHANNEL->TLiquidChannel, MOTOR_DATA->TMotorData, ROBOT->TRobot, SYRINGE_DATA->TSyringeData 2004-11-03 Version 02.03.0224 // ~ Fixed bug in finding end of process queue for conditional/nested sequence loops. 2004-10-31 Version 02.03.0223 // ~ Single stepping in checking pass and resulting "Bad WASP state" corrected. 2004-10-30 Version 02.03.0222 // + FrontPanel/FrontPanelMove functions/statements. 2004-09-23 Version 02.03.0221 // ~ SetForegroundWindow() in MachineManager::MCCRxError // + updated error analysis. 2004-09-22 Version 02.03.0220 // ~ Specifies Transfer Discharge Volume, and volume tracks Transfer. 2004-09-21 Version 02.03.0219 // ~ Accepts /last on command line to load last file. 2004-09-21 Version 02.03.0218 // ~ Express.cpp::evaluate() now correctly sets global int error for correct IF operation 2004-09-07 Version 02.03.0217 // ~ main TfrmASP::PrepareToInterpret - recover from FP not starting. Report ERROR 1400 2004-08-19 Version 02.03.0216 // ~ Transferdrop() : erroneous volume tracking correction removed 2004-08-10 Version 02.03.0215 // ~ fix to LastStateRestore - Restart was always being imposed 2004-08-10 Version 02.03.0214 // ~ MachineManager::shutdown uses new FP command GetPlateLoaderPosition to save to LASTCOM.POS 2004-08-10 Version 02.03.0213 // ~ main.cpp::LastStateRestore() explicitly sets Restart=true, unless LASTCOM.POS says otherwise 2004-08-10 Version 02.03.0212 // ~ WaspEngineMoves::TransferDrop() now passes air volume, not backlash volume 2004-08-10 Version 02.03.0212 // ~ Hopefully fixed volume tracking for TransferDrop() 2004-08-03 Version 02.03.0211 // + SET SingleStep {ON/OFF} 2004-05-24 Version 02.03.0210 // ~ FrontPanel button threading - changed call to MachineManager->MCC->SendCom() 2004-05-19 Version 02.03.0209 // + Sweep height incorporated into TransferDrop 2004-03-02 Version 02.03.0208 // ~ Removed option to close while running. 2004-02-27 Version 02.03.0207 // ~ Recompiled to avoid Version number clash. 2004-02-03 Version 02.03.0204 // ~ STOP/Start/Step/Continue button control improved. Can't close during run. 2004-01-15 Version 02.03.0202 // ~ Error checking of Set Flow value moved to checking pass. 2003-12-13 Version 02.03.0103 // ~ Thread synchronization of interpreter with FP interface to prevent jams 2003-12-01 Version 02.03.0102 // ~ New arrays are preinitialized - don't issue warnings 2003-12-01 Version 02.03.0102 // ~ Various improvements to Logging/Reporting file/folder selection 2003-12-01 Version 02.03.0001 // + Separate diameter factor compensation for each height->TTipHeight inTArrayData 2003-09-16 Version 02.02.0612 // ~ MenuItem "Run|Logging to Disk" -> "Run|Report Logging to Disk". 2003-09-16 Version 02.02.0611 // + Errors trapped for bad or missing Version file. 2003-09-16 Version 02.02.0603 // + Logging/Tracing paths default to "\My Documents", not "C:\My Documents". 2003-09-16 Version 02.02.0602 // + Version Info in About Box. 2003-09-09 Version 02.02.0601 // + New History.Log cumulative summary log of all runs. 2003-09-08 Version 02.02.0534 // + New (changeable) default directories for trace files. 2003-09-02 Version 02.02.0533 // + Trace file generated in it's own right as autoincremented WaspTraceNN.log 2003-09-01 Version 02.02.0530 // + New report logging. Removed trace entries from report. 2003-08-26 Version 02.02.0526 // + LogFile statement 2003-07-23 Version 02.02.0509 // ~ OilDrop uses compound wells, allowing oiling of droplet wells 2003-07-22 Version 02.02.0508 // + Reading from registry of X offset of V arm 2003-05-21 Version 02.02.03xx // ~ Set Clearance to accept absolute height in mm. 2003-04-22 Version 02.02.02xx // + SetTransferParameters introduced to automate protein transfer on CClear type sitting drop plates. 2003-03-26 Version 01.06.01xx // + Synchronize(LastStateRestore), Synchronize(PrepareToInterpret)for Win2000 thread compatibility.; 2001-11-09 Version 01.05.0103 // ~ WaspEngineMoves::parse_Rinse - Height specification corrected to prevent incorrect raising at beginning of rinse. 2000-09-18 Version 01.03.0401 // + TPlateLocationList Plates etc. 2000-07-15 Version 01.03.0201 // + D.PreventLowering explicitly set in all functions 2000-07-14 Version 01.03.0104 // + PLATE_DATA.WellDiameter, RimWidth and Volume // + capitilazation in MemberNames 2000-06-26 Version 01.03.0003 // + Reposition command - explicit reposition 2000-06-26 Version 01.03.0002 // + OilDrop command for fast microbatch oiling. 2000-06-26 Version 01.03.0001 // + Registry reading for Plates(IMPAX/Oryx).dat